diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 0250e2bbd8..a148cede8d 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6540,3 +6540,12 @@ Sorry for the inconvenience."; "TwoFactorSetup.PasswordRecovery.SkipAlertTitle" = "Attention!"; "TwoFactorSetup.PasswordRecovery.SkipAlertText" = "Skipping this step will disable 2-step verification for your account. Are you sure you want to skip?"; "TwoFactorSetup.PasswordRecovery.SkipAlertAction" = "Skip"; + +"TwoStepAuth.RecoveryUnavailableResetTitle" = "Reset Password"; +"TwoStepAuth.RecoveryUnavailableResetText" = "Since you haven't provided a recovery e-mail when setting up your password, your remaining options are either to remember your password or wait 7 days until your password is reset."; +"TwoStepAuth.RecoveryEmailResetText" = "If you don't have access to your recovery email, your remaining options are either to remember your password or wait 7 days until your password resets."; +"TwoStepAuth.RecoveryUnavailableResetAction" = "Reset"; +"TwoStepAuth.ResetPendingText" = "You can reset your password in %@."; +"TwoStepAuth.CancelResetTitle" = "Cancel Reset"; +"TwoStepAuth.ResetAction" = "Reset Password"; +"TwoStepAuth.CancelResetText" = "Cancel the password resetting process? If you proceed, the expired part of the 7-day delay will be lost."; diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift index 04c5a591e2..bef77594c3 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutControllerNode.swift @@ -944,7 +944,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz self.listNode.supernode?.insertSubnode(self.inProgressDimNode, aboveSubnode: self.listNode) - self.passwordTipDisposable = (twoStepVerificationConfiguration(account: self.context.account) + self.passwordTipDisposable = (self.context.engine.auth.twoStepVerificationConfiguration() |> deliverOnMainQueue).start(next: { [weak self] value in guard let strongSelf = self else { return @@ -1069,7 +1069,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz if let savedCredentialsToken = savedCredentialsToken { credentials = .saved(id: id, tempPassword: savedCredentialsToken.token) } else { - let _ = (cachedTwoStepPasswordToken(postbox: self.context.account.postbox) + let _ = (self.context.engine.auth.cachedTwoStepPasswordToken() |> deliverOnMainQueue).start(next: { [weak self] token in if let strongSelf = self { let timestamp = strongSelf.context.account.network.getApproximateRemoteTimestamp() @@ -1340,7 +1340,7 @@ final class BotCheckoutControllerNode: ItemListControllerNode, PKPaymentAuthoriz }), TextAlertAction(type: .genericAction, title: strongSelf.presentationData.strings.Common_Yes, action: { if let strongSelf = self { - let _ = cacheTwoStepPasswordToken(postbox: strongSelf.context.account.postbox, token: token).start() + let _ = strongSelf.context.engine.auth.cacheTwoStepPasswordToken(token: token).start() strongSelf.pay(savedCredentialsToken: token) } }) diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift index 7485437a0c..c2c0a5733e 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutPasswordEntryController.swift @@ -285,7 +285,7 @@ private final class BotCheckoutPasswordAlertContentNode: AlertContentNode { } self.isVerifying = true - self.disposable.set((requestTemporaryTwoStepPasswordToken(account: self.context.account, password: text, period: self.period, requiresBiometrics: self.requiresBiometrics) |> deliverOnMainQueue).start(next: { [weak self] token in + self.disposable.set((self.context.engine.auth.requestTemporaryTwoStepPasswordToken(password: text, period: self.period, requiresBiometrics: self.requiresBiometrics) |> deliverOnMainQueue).start(next: { [weak self] token in if let strongSelf = self { strongSelf.completion(token) } diff --git a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift index ec7421a578..5cefdf43e0 100644 --- a/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift +++ b/submodules/ChatImportUI/Sources/ChatImportActivityScreen.swift @@ -68,16 +68,16 @@ private final class ImportManager { private let account: Account private let archivePath: String? - private let entries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private let entries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] - private var session: ChatHistoryImport.Session? + private var session: TelegramEngine.HistoryImport.Session? private let disposable = MetaDisposable() private let totalBytes: Int private let totalMediaBytes: Int private let mainFileSize: Int - private var pendingEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private var pendingEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] private var entryProgress: [String: (Int, Int)] = [:] private var activeEntries: [String: Disposable] = [:] @@ -91,7 +91,7 @@ private final class ImportManager { return self.statePromise.get() } - init(account: Account, peerId: PeerId, mainFile: TempBoxFile, archivePath: String?, entries: [(SSZipEntry, String, ChatHistoryImport.MediaType)]) { + init(account: Account, peerId: PeerId, mainFile: TempBoxFile, archivePath: String?, entries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)]) { self.account = account self.archivePath = archivePath self.entries = entries @@ -114,7 +114,7 @@ private final class ImportManager { Logger.shared.log("ChatImportScreen", " \(entry.1)") } - self.disposable.set((ChatHistoryImport.initSession(account: self.account, peerId: peerId, file: mainFile, mediaCount: Int32(entries.count)) + self.disposable.set((TelegramEngine(account: self.account).historyImport.initSession(peerId: peerId, file: mainFile, mediaCount: Int32(entries.count)) |> mapError { error -> ImportError in switch error { case .chatAdminRequired: @@ -180,7 +180,7 @@ private final class ImportManager { self.failWithError(.generic) return } - self.disposable.set((ChatHistoryImport.startImport(account: self.account, session: session) + self.disposable.set((TelegramEngine(account: self.account).historyImport.startImport(session: session) |> deliverOnMainQueue).start(error: { [weak self] _ in guard let strongSelf = self else { return @@ -258,7 +258,7 @@ private final class ImportManager { if !pathExtension.isEmpty, let value = TGMimeTypeMap.mimeType(forExtension: pathExtension) { mimeType = value } - return ChatHistoryImport.uploadMedia(account: account, session: session, file: tempFile, disposeFileAfterDone: true, fileName: entry.0.path, mimeType: mimeType, type: entry.2) + return TelegramEngine(account: account).historyImport.uploadMedia(session: session, file: tempFile, disposeFileAfterDone: true, fileName: entry.0.path, mimeType: mimeType, type: entry.2) |> mapError { error -> ImportError in switch error { case .chatAdminRequired: @@ -732,7 +732,7 @@ public final class ChatImportActivityScreen: ViewController { private let mainEntry: TempBoxFile private let totalBytes: Int private let totalMediaBytes: Int - private let otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] + private let otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] private var importManager: ImportManager? private var progressEstimator: ProgressEstimator? @@ -749,14 +749,14 @@ public final class ChatImportActivityScreen: ViewController { } } - public init(context: AccountContext, cancel: @escaping () -> Void, peerId: PeerId, archivePath: String?, mainEntry: TempBoxFile, otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)]) { + public init(context: AccountContext, cancel: @escaping () -> Void, peerId: PeerId, archivePath: String?, mainEntry: TempBoxFile, otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)]) { self.context = context self.cancel = cancel self.peerId = peerId self.archivePath = archivePath self.mainEntry = mainEntry - self.otherEntries = otherEntries.map { entry -> (SSZipEntry, String, ChatHistoryImport.MediaType) in + self.otherEntries = otherEntries.map { entry -> (SSZipEntry, String, TelegramEngine.HistoryImport.MediaType) in return (entry.0, entry.1, entry.2) } diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index d59b617592..61dff0358e 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -2448,7 +2448,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.peerId, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.peerId, isBlocked: true).start() }) } })) diff --git a/submodules/GalleryUI/Sources/GalleryController.swift b/submodules/GalleryUI/Sources/GalleryController.swift index 4645ed80cb..d55e5ff53f 100644 --- a/submodules/GalleryUI/Sources/GalleryController.swift +++ b/submodules/GalleryUI/Sources/GalleryController.swift @@ -885,7 +885,7 @@ public class GalleryController: ViewController, StandalonePresentableController self.screenCaptureEventsDisposable = (screenCaptureEvents() |> deliverOnMainQueue).start(next: { [weak self] _ in if let strongSelf = self, strongSelf.traceVisibility() { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: id.peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: id.peerId).start() } }) } diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index 815dbeecf5..9ff8e0da6d 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -351,7 +351,7 @@ public final class SecretMediaPreviewController: ViewController { if strongSelf.messageId.peerId.namespace == Namespaces.Peer.CloudUser { let _ = enqueueMessages(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]).start() } else if strongSelf.messageId.peerId.namespace == Namespaces.Peer.SecretChat { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: strongSelf.messageId.peerId).start() } } }) diff --git a/submodules/GameUI/Sources/GameControllerNode.swift b/submodules/GameUI/Sources/GameControllerNode.swift index 51be76923e..02ef5c9839 100644 --- a/submodules/GameUI/Sources/GameControllerNode.swift +++ b/submodules/GameUI/Sources/GameControllerNode.swift @@ -147,7 +147,7 @@ final class GameControllerNode: ViewControllerTracingNode { if eventName == "share_score" { self.present(ShareController(context: self.context, subject: .fromExternal({ [weak self] peerIds, text, account in if let strongSelf = self { - let signals = peerIds.map { forwardGameWithScore(account: account, messageId: strongSelf.message.id, to: $0) } + let signals = peerIds.map { TelegramEngine(account: account).messages.forwardGameWithScore(messageId: strongSelf.message.id, to: $0) } return .single(.preparing) |> then( combineLatest(signals) diff --git a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h index fc190383be..b1e9361e08 100644 --- a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h +++ b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MTRequestErrorContext.h @@ -10,5 +10,6 @@ @property (nonatomic) NSUInteger floodWaitSeconds; @property (nonatomic) bool waitingForTokenExport; +@property (nonatomic, strong) id waitingForRequestToComplete; @end diff --git a/submodules/MtProtoKit/Sources/MTContext.m b/submodules/MtProtoKit/Sources/MTContext.m index b394ac923c..bde013a54e 100644 --- a/submodules/MtProtoKit/Sources/MTContext.m +++ b/submodules/MtProtoKit/Sources/MTContext.m @@ -379,14 +379,14 @@ static int32_t fixedTimeDifferenceValue = 0; NSDictionary *datacenterAuthInfoById = [keychain objectForKey:@"datacenterAuthInfoById" group:@"persistent"]; if (datacenterAuthInfoById != nil) { _datacenterAuthInfoById = [[NSMutableDictionary alloc] initWithDictionary:datacenterAuthInfoById]; -/*#if DEBUG +#if DEBUG NSArray *keys = [_datacenterAuthInfoById allKeys]; for (NSNumber *key in keys) { if (parseAuthInfoMapKeyInteger(key).selector != MTDatacenterAuthInfoSelectorPersistent) { [_datacenterAuthInfoById removeObjectForKey:key]; } } -#endif*/ +#endif } NSDictionary *datacenterPublicKeysById = [keychain objectForKey:@"datacenterPublicKeysById" group:@"ephemeral"]; diff --git a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m index da1ca4e98a..3a057c7c67 100644 --- a/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/Sources/MTDatacenterAuthMessageService.m @@ -13,6 +13,7 @@ #import #import "MTBuffer.h" #import +#import #import "MTInternalMessageParser.h" #import "MTServerDhInnerDataMessage.h" @@ -20,99 +21,133 @@ #import "MTServerDhParamsMessage.h" #import "MTSetClientDhParamsResponseMessage.h" -static NSArray *defaultPublicKeys() { - static NSArray *serverPublicKeys = nil; +@interface MTDatacenterAuthPublicKey : NSObject + +@property (nonatomic, strong, readonly) NSString *publicKey; +@property (nonatomic, readonly) bool usesModernPaddingScheme; + +@end + +@implementation MTDatacenterAuthPublicKey + +- (instancetype)initWithPublicKey:(NSString *)publicKey usesModernPaddingScheme:(bool)usesModernPaddingScheme { + self = [super init]; + if (self != nil) { + _publicKey = publicKey; + _usesModernPaddingScheme = usesModernPaddingScheme; + } + return self; +} + +- (uint64_t)fingerprintWithEncryptionProvider:(id)encryptionProvider { + return MTRsaFingerprint(encryptionProvider, _publicKey); +} + +@end + +static NSArray *defaultPublicKeys() { + static NSArray *serverPublicKeys = nil; static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^ - { - serverPublicKeys = [[NSArray alloc] initWithObjects: -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAxq7aeLAqJR20tkQQMfRn+ocfrtMlJsQ2Uksfs7Xcoo77jAid0bRt\n" -"ksiVmT2HEIJUlRxfABoPBV8wY9zRTUMaMA654pUX41mhyVN+XoerGxFvrs9dF1Ru\n" -"vCHbI02dM2ppPvyytvvMoefRoL5BTcpAihFgm5xCaakgsJ/tH5oVl74CdhQw8J5L\n" -"xI/K++KJBUyZ26Uba1632cOiq05JBUW0Z2vWIOk4BLysk7+U9z+SxynKiZR3/xdi\n" -"XvFKk01R3BHV+GUKM2RYazpS/P8v7eyKhAbKxOdRcFpHLlVwfjyM1VlDQrEZxsMp\n" -"NTLYXb6Sce1Uov0YtNx5wEowlREH1WOTlwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x9a996a1db11c729bUL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAsQZnSWVZNfClk29RcDTJQ76n8zZaiTGuUsi8sUhW8AS4PSbPKDm+\n" -"DyJgdHDWdIF3HBzl7DHeFrILuqTs0vfS7Pa2NW8nUBwiaYQmPtwEa4n7bTmBVGsB\n" -"1700/tz8wQWOLUlL2nMv+BPlDhxq4kmJCyJfgrIrHlX8sGPcPA4Y6Rwo0MSqYn3s\n" -"g1Pu5gOKlaT9HKmE6wn5Sut6IiBjWozrRQ6n5h2RXNtO7O2qCDqjgB2vBxhV7B+z\n" -"hRbLbCmW0tYMDsvPpX5M8fsO05svN+lKtCAuz1leFns8piZpptpSCFn7bWxiA9/f\n" -"x5x17D7pfah3Sy2pA+NDXyzSlGcKdaUmwQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xb05b2a6f70cdea78UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6\n" -"lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS\n" -"an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw\n" -"Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+\n" -"8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n\n" -"Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xc3b42b026ce86b21UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAwqjFW0pi4reKGbkc9pK83Eunwj/k0G8ZTioMMPbZmW99GivMibwa\n" -"xDM9RDWabEMyUtGoQC2ZcDeLWRK3W8jMP6dnEKAlvLkDLfC4fXYHzFO5KHEqF06i\n" -"qAqBdmI1iBGdQv/OQCBcbXIWCGDY2AsiqLhlGQfPOI7/vvKc188rTriocgUtoTUc\n" -"/n/sIUzkgwTqRyvWYynWARWzQg0I9olLBBC2q5RQJJlnYXZwyTL3y9tdb7zOHkks\n" -"WV9IMQmZmyZh/N7sMbGWQpt4NMchGpPGeJ2e5gHBjDnlIf2p1yZOYeUYrdbwcS0t\n" -"UiggS4UeE8TzIuXFQxw7fzEIlmhIaq3FnwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x71e025b6c76033e3UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX\n" -"riwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/\n" -"j1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2\n" -"e2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS\n" -"Lj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF\n" -"XGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xbc35f3509f7b7a5UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAvfLHfYH2r9R70w8prHblWt/nDkh+XkgpflqQVcnAfSuTtO05lNPs\n" -"pQmL8Y2XjVT4t8cT6xAkdgfmmvnvRPOOKPi0OfJXoRVylFzAQG/j83u5K3kRLbae\n" -"7fLccVhKZhY46lvsueI1hQdLgNV9n1cQ3TDS2pQOCtovG4eDl9wacrXOJTG2990V\n" -"jgnIKNA0UMoP+KF03qzryqIt3oTvZq03DyWdGK+AZjgBLaDKSnC6qD2cFY81UryR\n" -"WOab8zKkWAnhw2kFpcqhI0jdV5QaSCExvnsjVaX0Y1N0870931/5Jb9ICe4nweZ9\n" -"kSDF/gip3kWLG0o8XQpChDfyvsqB9OLV/wIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x15ae5fa8b5529542UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAs/ditzm+mPND6xkhzwFIz6J/968CtkcSE/7Z2qAJiXbmZ3UDJPGr\n" -"zqTDHkO30R8VeRM/Kz2f4nR05GIFiITl4bEjvpy7xqRDspJcCFIOcyXm8abVDhF+\n" -"th6knSU0yLtNKuQVP6voMrnt9MV1X92LGZQLgdHZbPQz0Z5qIpaKhdyA8DEvWWvS\n" -"Uwwc+yi1/gGaybwlzZwqXYoPOhwMebzKUk0xW14htcJrRrq+PXXQbRzTMynseCoP\n" -"Ioke0dtCodbA3qQxQovE16q9zz4Otv2k4j63cz53J+mhkVWAeWxVGI0lltJmWtEY\n" -"K6er8VqqWot3nqmWMXogrgRLggv/NbbooQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0xaeae98e13cd7f94fUL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAvmpxVY7ld/8DAjz6F6q05shjg8/4p6047bn6/m8yPy1RBsvIyvuD\n" -"uGnP/RzPEhzXQ9UJ5Ynmh2XJZgHoE9xbnfxL5BXHplJhMtADXKM9bWB11PU1Eioc\n" -"3+AXBB8QiNFBn2XI5UkO5hPhbb9mJpjA9Uhw8EdfqJP8QetVsI/xrCEbwEXe0xvi\n" -"fRLJbY08/Gp66KpQvy7g8w7VB8wlgePexW3pT13Ap6vuC+mQuJPyiHvSxjEKHgqe\n" -"Pji9NP3tJUFQjcECqcm0yV7/2d0t/pbCm+ZH1sadZspQCEPPrtbkQBlvHb4OLiIW\n" -"PGHKSMeRFvp3IWcmdJqXahxLCUS1Eh6MAQIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x5a181b2235057d98UL], @"fingerprint", nil], -[[NSDictionary alloc] initWithObjectsAndKeys:@"-----BEGIN RSA PUBLIC KEY-----\n" -"MIIBCgKCAQEAr4v4wxMDXIaMOh8bayF/NyoYdpcysn5EbjTIOZC0RkgzsRj3SGlu\n" -"52QSz+ysO41dQAjpFLgxPVJoOlxXokaOq827IfW0bGCm0doT5hxtedu9UCQKbE8j\n" -"lDOk+kWMXHPZFJKWRgKgTu9hcB3y3Vk+JFfLpq3d5ZB48B4bcwrRQnzkx5GhWOFX\n" -"x73ZgjO93eoQ2b/lDyXxK4B4IS+hZhjzezPZTI5upTRbs5ljlApsddsHrKk6jJNj\n" -"8Ygs/ps8e6ct82jLXbnndC9s8HjEvDvBPH9IPjv5JUlmHMBFZ5vFQIfbpo0u0+1P\n" -"n6bkEi5o7/ifoyVv2pAZTRwppTz0EuXD8QIDAQAB\n" -"-----END RSA PUBLIC KEY-----", @"key", [[NSNumber alloc] initWithUnsignedLongLong:0x9692106da14b9f02UL], @"fingerprint", nil], -nil]; + dispatch_once(&onceToken, ^{ + serverPublicKeys = @[ + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAxq7aeLAqJR20tkQQMfRn+ocfrtMlJsQ2Uksfs7Xcoo77jAid0bRt\n" + "ksiVmT2HEIJUlRxfABoPBV8wY9zRTUMaMA654pUX41mhyVN+XoerGxFvrs9dF1Ru\n" + "vCHbI02dM2ppPvyytvvMoefRoL5BTcpAihFgm5xCaakgsJ/tH5oVl74CdhQw8J5L\n" + "xI/K++KJBUyZ26Uba1632cOiq05JBUW0Z2vWIOk4BLysk7+U9z+SxynKiZR3/xdi\n" + "XvFKk01R3BHV+GUKM2RYazpS/P8v7eyKhAbKxOdRcFpHLlVwfjyM1VlDQrEZxsMp\n" + "NTLYXb6Sce1Uov0YtNx5wEowlREH1WOTlwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAsQZnSWVZNfClk29RcDTJQ76n8zZaiTGuUsi8sUhW8AS4PSbPKDm+\n" + "DyJgdHDWdIF3HBzl7DHeFrILuqTs0vfS7Pa2NW8nUBwiaYQmPtwEa4n7bTmBVGsB\n" + "1700/tz8wQWOLUlL2nMv+BPlDhxq4kmJCyJfgrIrHlX8sGPcPA4Y6Rwo0MSqYn3s\n" + "g1Pu5gOKlaT9HKmE6wn5Sut6IiBjWozrRQ6n5h2RXNtO7O2qCDqjgB2vBxhV7B+z\n" + "hRbLbCmW0tYMDsvPpX5M8fsO05svN+lKtCAuz1leFns8piZpptpSCFn7bWxiA9/f\n" + "x5x17D7pfah3Sy2pA+NDXyzSlGcKdaUmwQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6\n" + "lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS\n" + "an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw\n" + "Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+\n" + "8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n\n" + "Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAwqjFW0pi4reKGbkc9pK83Eunwj/k0G8ZTioMMPbZmW99GivMibwa\n" + "xDM9RDWabEMyUtGoQC2ZcDeLWRK3W8jMP6dnEKAlvLkDLfC4fXYHzFO5KHEqF06i\n" + "qAqBdmI1iBGdQv/OQCBcbXIWCGDY2AsiqLhlGQfPOI7/vvKc188rTriocgUtoTUc\n" + "/n/sIUzkgwTqRyvWYynWARWzQg0I9olLBBC2q5RQJJlnYXZwyTL3y9tdb7zOHkks\n" + "WV9IMQmZmyZh/N7sMbGWQpt4NMchGpPGeJ2e5gHBjDnlIf2p1yZOYeUYrdbwcS0t\n" + "UiggS4UeE8TzIuXFQxw7fzEIlmhIaq3FnwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX\n" + "riwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/\n" + "j1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2\n" + "e2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS\n" + "Lj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF\n" + "XGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAvfLHfYH2r9R70w8prHblWt/nDkh+XkgpflqQVcnAfSuTtO05lNPs\n" + "pQmL8Y2XjVT4t8cT6xAkdgfmmvnvRPOOKPi0OfJXoRVylFzAQG/j83u5K3kRLbae\n" + "7fLccVhKZhY46lvsueI1hQdLgNV9n1cQ3TDS2pQOCtovG4eDl9wacrXOJTG2990V\n" + "jgnIKNA0UMoP+KF03qzryqIt3oTvZq03DyWdGK+AZjgBLaDKSnC6qD2cFY81UryR\n" + "WOab8zKkWAnhw2kFpcqhI0jdV5QaSCExvnsjVaX0Y1N0870931/5Jb9ICe4nweZ9\n" + "kSDF/gip3kWLG0o8XQpChDfyvsqB9OLV/wIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAs/ditzm+mPND6xkhzwFIz6J/968CtkcSE/7Z2qAJiXbmZ3UDJPGr\n" + "zqTDHkO30R8VeRM/Kz2f4nR05GIFiITl4bEjvpy7xqRDspJcCFIOcyXm8abVDhF+\n" + "th6knSU0yLtNKuQVP6voMrnt9MV1X92LGZQLgdHZbPQz0Z5qIpaKhdyA8DEvWWvS\n" + "Uwwc+yi1/gGaybwlzZwqXYoPOhwMebzKUk0xW14htcJrRrq+PXXQbRzTMynseCoP\n" + "Ioke0dtCodbA3qQxQovE16q9zz4Otv2k4j63cz53J+mhkVWAeWxVGI0lltJmWtEY\n" + "K6er8VqqWot3nqmWMXogrgRLggv/NbbooQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAvmpxVY7ld/8DAjz6F6q05shjg8/4p6047bn6/m8yPy1RBsvIyvuD\n" + "uGnP/RzPEhzXQ9UJ5Ynmh2XJZgHoE9xbnfxL5BXHplJhMtADXKM9bWB11PU1Eioc\n" + "3+AXBB8QiNFBn2XI5UkO5hPhbb9mJpjA9Uhw8EdfqJP8QetVsI/xrCEbwEXe0xvi\n" + "fRLJbY08/Gp66KpQvy7g8w7VB8wlgePexW3pT13Ap6vuC+mQuJPyiHvSxjEKHgqe\n" + "Pji9NP3tJUFQjcECqcm0yV7/2d0t/pbCm+ZH1sadZspQCEPPrtbkQBlvHb4OLiIW\n" + "PGHKSMeRFvp3IWcmdJqXahxLCUS1Eh6MAQIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAr4v4wxMDXIaMOh8bayF/NyoYdpcysn5EbjTIOZC0RkgzsRj3SGlu\n" + "52QSz+ysO41dQAjpFLgxPVJoOlxXokaOq827IfW0bGCm0doT5hxtedu9UCQKbE8j\n" + "lDOk+kWMXHPZFJKWRgKgTu9hcB3y3Vk+JFfLpq3d5ZB48B4bcwrRQnzkx5GhWOFX\n" + "x73ZgjO93eoQ2b/lDyXxK4B4IS+hZhjzezPZTI5upTRbs5ljlApsddsHrKk6jJNj\n" + "8Ygs/ps8e6ct82jLXbnndC9s8HjEvDvBPH9IPjv5JUlmHMBFZ5vFQIfbpo0u0+1P\n" + "n6bkEi5o7/ifoyVv2pAZTRwppTz0EuXD8QIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:false], + [[MTDatacenterAuthPublicKey alloc] initWithPublicKey:@"-----BEGIN RSA PUBLIC KEY-----\n" + "MIIBCgKCAQEAyMEdY1aR+sCR3ZSJrtztKTKqigvO/vBfqACJLZtS7QMgCGXJ6XIR\n" + "yy7mx66W0/sOFa7/1mAZtEoIokDP3ShoqF4fVNb6XeqgQfaUHd8wJpDWHcR2OFwv\n" + "plUUI1PLTktZ9uW2WE23b+ixNwJjJGwBDJPQEQFBE+vfmH0JP503wr5INS1poWg/\n" + "j25sIWeYPHYeOrFp/eXaqhISP6G+q2IeTaWTXpwZj4LzXq5YOpk4bYEQ6mvRq7D1\n" + "aHWfYmlEGepfaYR8Q0YqvvhYtMte3ITnuSJs171+GDqpdKcSwHnd6FudwGO4pcCO\n" + "j4WcDuXc2CTHgH8gFTNhp/Y8/SpDOhvn9QIDAQAB\n" + "-----END RSA PUBLIC KEY-----" usesModernPaddingScheme:true] + ]; }); return serverPublicKeys; } -static NSDictionary *selectPublicKey(NSArray *fingerprints, NSArray *publicKeys) -{ - for (NSNumber *nFingerprint in fingerprints) - { - for (NSDictionary *keyDesc in publicKeys) - { - uint64_t keyFingerprint = [[keyDesc objectForKey:@"fingerprint"] unsignedLongLongValue]; +static MTDatacenterAuthPublicKey *selectPublicKey(id encryptionProvider, NSArray *fingerprints, NSArray *publicKeys, bool onlyModernPadding) { + for (NSNumber *nFingerprint in fingerprints) { + for (MTDatacenterAuthPublicKey *key in publicKeys) { + if (onlyModernPadding) { + if (!key.usesModernPaddingScheme) { + continue; + } + } + uint64_t keyFingerprint = [key fingerprintWithEncryptionProvider:encryptionProvider]; - if ([nFingerprint unsignedLongLongValue] == keyFingerprint) - return keyDesc; + if ([nFingerprint unsignedLongLongValue] == keyFingerprint) { + return key; + } } } @@ -150,7 +185,7 @@ typedef enum { MTDatacenterAuthKey *_authKey; NSData *_encryptedClientData; - NSArray *_publicKeys; + NSArray *_publicKeys; } @end @@ -168,6 +203,17 @@ typedef enum { return self; } +- (NSArray *)convertPublicKeysFromDictionaries:(NSArray *)list { + NSMutableArray *cdnKeys = [[NSMutableArray alloc] init]; + for (NSDictionary *dict in list) { + NSString *key = dict[@"key"]; + if ([key isKindOfClass:[NSString class]]) { + [cdnKeys addObject:[[MTDatacenterAuthPublicKey alloc] initWithPublicKey:key usesModernPaddingScheme:false]]; + } + } + return cdnKeys; +} + - (void)reset:(MTProto *)mtProto { _currentStageMessageId = 0; @@ -187,8 +233,8 @@ typedef enum { _encryptedClientData = nil; if (mtProto.cdn) { - _publicKeys = [mtProto.context publicKeysForDatacenterWithId:mtProto.datacenterId]; - if (_publicKeys == nil) { + _publicKeys = [self convertPublicKeysFromDictionaries:[mtProto.context publicKeysForDatacenterWithId:mtProto.datacenterId]]; + if (_publicKeys.count == 0) { _stage = MTDatacenterAuthStageWaitingForPublicKeys; [mtProto.context publicKeysForDatacenterWithIdRequired:mtProto.datacenterId]; } else { @@ -211,7 +257,7 @@ typedef enum { - (void)mtProtoPublicKeysUpdated:(MTProto *)mtProto datacenterId:(NSInteger)datacenterId publicKeys:(NSArray *)publicKeys { if (_stage == MTDatacenterAuthStageWaitingForPublicKeys) { if (mtProto.datacenterId == datacenterId) { - _publicKeys = publicKeys; + _publicKeys = [self convertPublicKeysFromDictionaries:publicKeys]; if (_publicKeys != nil && _publicKeys.count != 0) { _stage = MTDatacenterAuthStagePQ; [mtProto requestTransportTransaction]; @@ -238,7 +284,7 @@ typedef enum { } MTBuffer *reqPqBuffer = [[MTBuffer alloc] init]; - [reqPqBuffer appendInt32:(int32_t)0x60469778]; + [reqPqBuffer appendInt32:(int32_t)0xbe7e8ef1]; [reqPqBuffer appendBytes:_nonce.bytes length:_nonce.length]; NSString *messageDescription = [NSString stringWithFormat:@"reqPq nonce:%@", _nonce]; @@ -306,6 +352,178 @@ typedef enum { return nil; } +static NSData *aesCbcEncrypt(NSData *data, NSData *key, NSData *iv) { + size_t keyLength = kCCKeySizeAES256; + if (key.length != keyLength) { + return nil; + } + if (iv.length != 16) { + return nil; + } + if (data.length % 16 != 0) { + return nil; + } + + NSMutableData *outData = [[NSMutableData alloc] initWithLength:data.length]; + + CCOperation operation = kCCEncrypt; + CCAlgorithm algoritm = kCCAlgorithmAES128; + CCOptions options = 0; // No padding + + size_t outDataActualSize = 0; + + int status = CCCrypt( + operation, + algoritm, + options, + key.bytes, + keyLength, + iv.bytes, + data.bytes, + data.length, + outData.mutableBytes, + outData.length, + &outDataActualSize + ); + + if (status != kCCSuccess) { + return nil; + } + if (outDataActualSize != data.length) { + return nil; + } + + return outData; +} + +static NSData *encryptRSALegacy(id encryptionProvider, NSData *pqInnerData, NSString *publicKey) { + NSMutableData *dataWithHash = [[NSMutableData alloc] init]; + [dataWithHash appendData:MTSha1(pqInnerData)]; + [dataWithHash appendData:pqInnerData]; + while (dataWithHash.length < 255) { + uint8_t random = 0; + arc4random_buf(&random, 1); + [dataWithHash appendBytes:&random length:1]; + } + + NSData *encryptedData = MTRsaEncrypt(encryptionProvider, publicKey, dataWithHash); + + if (encryptedData.length < 256) { + NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; + for (int i = 0; i < 256 - (int)encryptedData.length; i++) + { + uint8_t random = 0; + arc4random_buf(&random, 1); + [newEncryptedData appendBytes:&random length:1]; + } + [newEncryptedData appendData:encryptedData]; + encryptedData = newEncryptedData; + } + + return encryptedData; +} + +static NSData *encryptRSAModernPadding(id encryptionProvider, NSData *pqInnerData, NSString *publicKey) { + NSMutableData *dataWithPadding = [[NSMutableData alloc] init]; + [dataWithPadding appendData:pqInnerData]; + if (dataWithPadding.length > 176) { + return nil; + } + if (dataWithPadding.length != 176) { + int originalLength = (int)dataWithPadding.length; + int numPaddingBytes = 176 - originalLength; + [dataWithPadding setLength:176]; + int randomResult = SecRandomCopyBytes(kSecRandomDefault, numPaddingBytes, ((uint8_t *)dataWithPadding.mutableBytes) + originalLength); + if (randomResult != errSecSuccess) { + return nil; + } + } + + NSMutableData *dataWithHash = [[NSMutableData alloc] init]; + [dataWithHash appendData:dataWithPadding]; + [dataWithHash appendData:MTSha256(dataWithPadding)]; + if (dataWithHash.length != 208) { + return nil; + } + + while (true) { + int randomResult = 0; + NSMutableData *tempKey = [[NSMutableData alloc] initWithLength:32]; + randomResult = SecRandomCopyBytes(kSecRandomDefault, tempKey.length, tempKey.mutableBytes); + if (randomResult != errSecSuccess) { + return nil; + } + + NSMutableData *tempIv = [[NSMutableData alloc] initWithLength:16]; + randomResult = SecRandomCopyBytes(kSecRandomDefault, tempIv.length, tempIv.mutableBytes); + if (randomResult != errSecSuccess) { + return nil; + } + + NSData *aesEncrypted = aesCbcEncrypt(dataWithHash, tempKey, tempIv); + if (aesEncrypted == nil) { + return nil; + } + + NSMutableData *tempIvPlusAesEncrypted = [[NSMutableData alloc] init]; + [tempIvPlusAesEncrypted appendData:tempIv]; + [tempIvPlusAesEncrypted appendData:aesEncrypted]; + NSData *shaTempIvPlusAesEncrypted = MTSha256(tempIvPlusAesEncrypted); + + NSMutableData *tempKeyXor = [[NSMutableData alloc] initWithLength:tempKey.length]; + if (tempKeyXor.length != shaTempIvPlusAesEncrypted.length) { + return nil; + } + for (NSUInteger i = 0; i < tempKey.length; i++) { + ((uint8_t *)tempKeyXor.mutableBytes)[i] = ((uint8_t *)tempKey.bytes)[i] ^ ((uint8_t *)shaTempIvPlusAesEncrypted.bytes)[i]; + } + + NSMutableData *keyAesEncrypted = [[NSMutableData alloc] init]; + [keyAesEncrypted appendData:tempKeyXor]; + [keyAesEncrypted appendData:tempIv]; + [keyAesEncrypted appendData:aesEncrypted]; + if (keyAesEncrypted.length != 256) { + return nil; + } + + id bignumContext = [encryptionProvider createBignumContext]; + if (bignumContext == nil) { + return nil; + } + id rsaPublicKey = [encryptionProvider parseRSAPublicKey:publicKey]; + if (rsaPublicKey == nil) { + return nil; + } + id rsaModule = [bignumContext rsaGetN:rsaPublicKey]; + if (rsaModule == nil) { + return nil; + } + id bignumKeyAesEncrypted = [bignumContext create]; + if (bignumKeyAesEncrypted == nil) { + return nil; + } + [bignumContext assignBinTo:bignumKeyAesEncrypted value:keyAesEncrypted]; + int compareResult = [bignumContext compare:rsaModule with:bignumKeyAesEncrypted]; + if (compareResult <= 0) { + continue; + } + + NSData *encryptedData = [encryptionProvider rsaEncryptWithPublicKey:publicKey data:keyAesEncrypted]; + NSMutableData *paddedEncryptedData = [[NSMutableData alloc] init]; + [paddedEncryptedData appendData:encryptedData]; + while (paddedEncryptedData.length < 256) { + uint8_t zero = 0; + [paddedEncryptedData replaceBytesInRange:NSMakeRange(0, 0) withBytes:&zero length:1]; + } + + if (paddedEncryptedData.length != 256) { + return nil; + } + + return paddedEncryptedData; + } +} + - (void)mtProto:(MTProto *)mtProto receivedMessage:(MTIncomingMessage *)message authInfoSelector:(MTDatacenterAuthInfoSelector)authInfoSelector { if (_stage == MTDatacenterAuthStagePQ && [message.body isKindOfClass:[MTResPqMessage class]]) @@ -314,10 +532,13 @@ typedef enum { if ([_nonce isEqualToData:resPqMessage.nonce]) { - NSDictionary *publicKey = selectPublicKey(resPqMessage.serverPublicKeyFingerprints, _publicKeys); + MTDatacenterAuthPublicKey *publicKey = selectPublicKey(_encryptionProvider, resPqMessage.serverPublicKeyFingerprints, _publicKeys, true); + if (publicKey == nil) { + publicKey = selectPublicKey(mtProto.context.encryptionProvider, resPqMessage.serverPublicKeyFingerprints, _publicKeys, false); + } if (publicKey == nil && mtProto.cdn && resPqMessage.serverPublicKeyFingerprints.count == 1 && _publicKeys.count == 1) { - publicKey = @{@"key": _publicKeys[0][@"key"], @"fingerprint": resPqMessage.serverPublicKeyFingerprints[0]}; + publicKey = _publicKeys[0]; } if (publicKey == nil) @@ -367,7 +588,7 @@ typedef enum { } while (q > 0); _dhQ = qBytes; - _dhPublicKeyFingerprint = [[publicKey objectForKey:@"fingerprint"] longLongValue]; + _dhPublicKeyFingerprint = [publicKey fingerprintWithEncryptionProvider:_encryptionProvider]; uint8_t nonceBytes[32]; __unused int result = SecRandomCopyBytes(kSecRandomDefault, 32, nonceBytes); @@ -390,37 +611,17 @@ typedef enum { [innerDataBuffer appendInt32:mtProto.context.tempKeyExpiration]; NSData *innerDataBytes = innerDataBuffer.data; - - NSMutableData *dataWithHash = [[NSMutableData alloc] init]; - [dataWithHash appendData:MTSha1(innerDataBytes)]; - [dataWithHash appendData:innerDataBytes]; - while (dataWithHash.length < 255) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [dataWithHash appendBytes:&random length:1]; + NSData *encryptedData = nil; + if (publicKey.usesModernPaddingScheme) { + encryptedData = encryptRSAModernPadding(_encryptionProvider, innerDataBytes, publicKey.publicKey); + } else { + encryptedData = encryptRSALegacy(_encryptionProvider, innerDataBytes, publicKey.publicKey); } - - NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); + if (MTLogEnabled()) { - MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d dataWithHash length %d]", self, (int)encryptedData.length, (int)dataWithHash.length); + MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d]", self, (int)encryptedData.length); } - if (encryptedData.length < 256) - { - NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; - for (int i = 0; i < 256 - (int)encryptedData.length; i++) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [newEncryptedData appendBytes:&random length:1]; - } - [newEncryptedData appendData:encryptedData]; - encryptedData = newEncryptedData; - } - #if DEBUG - assert(encryptedData.length == 256); - #endif - + _dhEncryptedData = encryptedData; } else { MTBuffer *innerDataBuffer = [[MTBuffer alloc] init]; @@ -433,42 +634,30 @@ typedef enum { [innerDataBuffer appendBytes:_newNonce.bytes length:_newNonce.length]; NSData *innerDataBytes = innerDataBuffer.data; - - NSMutableData *dataWithHash = [[NSMutableData alloc] init]; - [dataWithHash appendData:MTSha1(innerDataBytes)]; - [dataWithHash appendData:innerDataBytes]; - while (dataWithHash.length < 255) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [dataWithHash appendBytes:&random length:1]; - } - NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); - if (MTLogEnabled()) { - MTLog(@"[MTDatacenterAuthMessageService#%p encryptedData length %d dataWithHash length %d]", self, (int)encryptedData.length, (int)dataWithHash.length); - } - if (encryptedData.length < 256) - { - NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; - for (int i = 0; i < 256 - (int)encryptedData.length; i++) - { - uint8_t random = 0; - arc4random_buf(&random, 1); - [newEncryptedData appendBytes:&random length:1]; - } - [newEncryptedData appendData:encryptedData]; - encryptedData = newEncryptedData; + NSData *encryptedData = nil; + if (publicKey.usesModernPaddingScheme) { + encryptedData = encryptRSAModernPadding(_encryptionProvider, innerDataBytes, publicKey.publicKey); + } else { + encryptedData = encryptRSALegacy(_encryptionProvider, innerDataBytes, publicKey.publicKey); } _dhEncryptedData = encryptedData; } - - _stage = MTDatacenterAuthStageReqDH; - _currentStageMessageId = 0; - _currentStageMessageSeqNo = 0; - _currentStageTransactionId = nil; - [mtProto requestTransportTransaction]; + + if (_dhEncryptedData == nil) { + _stage = MTDatacenterAuthStagePQ; + _currentStageMessageId = 0; + _currentStageMessageSeqNo = 0; + _currentStageTransactionId = nil; + [mtProto requestTransportTransaction]; + } else { + _stage = MTDatacenterAuthStageReqDH; + _currentStageMessageId = 0; + _currentStageMessageSeqNo = 0; + _currentStageTransactionId = nil; + [mtProto requestTransportTransaction]; + } } } } diff --git a/submodules/MtProtoKit/Sources/MTRequestMessageService.m b/submodules/MtProtoKit/Sources/MTRequestMessageService.m index 2a3d4963d6..150b7dfc4f 100644 --- a/submodules/MtProtoKit/Sources/MTRequestMessageService.m +++ b/submodules/MtProtoKit/Sources/MTRequestMessageService.m @@ -196,6 +196,20 @@ { if (request.errorContext != nil) { + if (request.errorContext.waitingForRequestToComplete != nil) { + bool foundDependency = false; + for (MTRequest *anotherRequest in _requests) { + if (request.errorContext.waitingForRequestToComplete == anotherRequest.internalId) { + foundDependency = true; + break; + } + } + + if (!foundDependency) { + needTransaction = true; + } + } + if (request.requestContext == nil) { if (request.errorContext.minimalExecuteTime > currentTime + DBL_EPSILON) @@ -407,10 +421,23 @@ if (request.errorContext != nil) { - if (request.errorContext.minimalExecuteTime > currentTime) + if (request.errorContext.minimalExecuteTime > currentTime) { continue; - if (request.errorContext.waitingForTokenExport) + } + if (request.errorContext.waitingForTokenExport) { continue; + } + + bool foundDependency = false; + for (MTRequest *anotherRequest in _requests) { + if (request.errorContext.waitingForRequestToComplete == anotherRequest.internalId) { + foundDependency = true; + break; + } + } + if (foundDependency) { + continue; + } } if (request.requestContext == nil || (!request.requestContext.waitingForMessageId && !request.requestContext.delivered && request.requestContext.transactionId == nil)) @@ -690,6 +717,20 @@ request.errorContext.minimalExecuteTime = MAX(request.errorContext.minimalExecuteTime, MTAbsoluteSystemTime() + 2.0); } } + else if (rpcError.errorCode == 400 && [rpcError.errorDescription isEqualToString:@"MSG_WAIT_TIMEOUT"]) + { + if (request.errorContext == nil) { + request.errorContext = [[MTRequestErrorContext alloc] init]; + } + + for (MTRequest *anotherRequest in _requests) { + if (request.shouldDependOnRequest != nil && request.shouldDependOnRequest(anotherRequest)) { + request.errorContext.waitingForRequestToComplete = anotherRequest.internalId; + break; + } + } + restartRequest = true; + } else if (rpcError.errorCode == 420 || [rpcError.errorDescription rangeOfString:@"FLOOD_WAIT_"].location != NSNotFound) { if (request.errorContext == nil) diff --git a/submodules/MtProtoKit/Sources/MTResPqMessage.m b/submodules/MtProtoKit/Sources/MTResPqMessage.m index 6156721256..2aa73435cd 100644 --- a/submodules/MtProtoKit/Sources/MTResPqMessage.m +++ b/submodules/MtProtoKit/Sources/MTResPqMessage.m @@ -16,7 +16,14 @@ } - (NSString *)description { - return [NSString stringWithFormat:@"res_pq nonce:%@ serverNonce:%@ pq:%@ fingerprints:%@", _nonce, _serverNonce, _pq, _serverPublicKeyFingerprints]; + NSMutableString *fingerprintsString = [[NSMutableString alloc] init]; + for (NSNumber *value in _serverPublicKeyFingerprints) { + if (fingerprintsString.length != 0) { + [fingerprintsString appendString:@"\n"]; + } + [fingerprintsString appendFormat:@"%llx", [value longLongValue]]; + } + return [NSString stringWithFormat:@"res_pq nonce:%@ serverNonce:%@ pq:%@ fingerprints:%@", _nonce, _serverNonce, _pq, fingerprintsString]; } @end diff --git a/submodules/PassportUI/Sources/SecureIdAuthController.swift b/submodules/PassportUI/Sources/SecureIdAuthController.swift index 544912daef..0a2febc1b9 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthController.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthController.swift @@ -122,7 +122,7 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable } self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: PresentationResourcesRootController.navigationInfoIcon(self.presentationData.theme), style: .plain, target: self, action: #selector(self.infoPressed)) - self.challengeDisposable.set((twoStepAuthData(context.account.network) + self.challengeDisposable.set((context.engine.auth.twoStepAuthData() |> deliverOnMainQueue).start(next: { [weak self] data in if let strongSelf = self { let storedPassword = context.getStoredSecureIdPassword() @@ -512,13 +512,13 @@ public final class SecureIdAuthController: ViewController, StandalonePresentable guard let strongSelf = self else { return } - strongSelf.recoveryDisposable.set((requestTwoStepVerificationPasswordRecoveryCode(network: strongSelf.context.account.network) + strongSelf.recoveryDisposable.set((strongSelf.context.engine.auth.requestTwoStepVerificationPasswordRecoveryCode() |> deliverOnMainQueue).start(next: { emailPattern in guard let strongSelf = self else { return } var completionImpl: (() -> Void)? - let controller = resetPasswordController(context: strongSelf.context, emailPattern: emailPattern, completion: { + let controller = resetPasswordController(context: strongSelf.context, emailPattern: emailPattern, completion: { _ in completionImpl?() }) completionImpl = { [weak controller] in diff --git a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift index db3835105c..2b9d5e155a 100644 --- a/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift +++ b/submodules/PasswordSetupUI/Sources/ResetPasswordController.swift @@ -115,7 +115,7 @@ public enum ResetPasswordState: Equatable { case pendingVerification(emailPattern: String) } -public func resetPasswordController(context: AccountContext, emailPattern: String, completion: @escaping () -> Void) -> ViewController { +public func resetPasswordController(context: AccountContext, emailPattern: String, completion: @escaping (Bool) -> Void) -> ViewController { let statePromise = ValuePromise(ResetPasswordControllerState(), ignoreRepeated: true) let stateValue = Atomic(value: ResetPasswordControllerState()) let updateState: ((ResetPasswordControllerState) -> ResetPasswordControllerState) -> Void = { f in @@ -138,7 +138,20 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin } }, openHelp: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) + + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (context.engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + completion(false) + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) var initialFocusImpl: (() -> Void)? @@ -166,7 +179,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin state.checking = true return state } - saveDisposable.set((recoverTwoStepVerificationPassword(network: context.account.network, code: state.code) + saveDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: state.code) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state @@ -187,7 +200,7 @@ public func resetPasswordController(context: AccountContext, emailPattern: Strin let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) }, completed: { - completion() + completion(true) })) } }) diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift index 4326df99b4..478e8abc9d 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationController.swift @@ -11,8 +11,7 @@ import ProgressNavigationButtonNode import AccountContext public class SetupTwoStepVerificationController: ViewController { - private let network: Network - private let sharedContext: SharedAccountContext + private let context: AccountContext private let initialState: SetupTwoStepVerificationInitialState private let stateUpdated: (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void @@ -33,19 +32,14 @@ public class SetupTwoStepVerificationController: ViewController { private var presentationData: PresentationData private var presentationDataDisposable: Disposable? - - convenience public init(context: AccountContext, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { - self.init(sharedContext: context.sharedContext, network: context.account.network, initialState: initialState, stateUpdated: stateUpdated) - } - public init(sharedContext: SharedAccountContext, network: Network, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { - self.sharedContext = sharedContext - self.network = network + public init(context: AccountContext, initialState: SetupTwoStepVerificationInitialState, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool, SetupTwoStepVerificationController) -> Void) { + self.context = context self.initialState = initialState self.stateUpdated = stateUpdated - self.presentationData = self.sharedContext.currentPresentationData.with { $0 } + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: NavigationBarTheme(buttonColor: self.presentationData.theme.rootController.navigationBar.accentTextColor, disabledButtonColor: self.presentationData.theme.rootController.navigationBar.disabledButtonColor, primaryTextColor: self.presentationData.theme.rootController.navigationBar.primaryTextColor, backgroundColor: .clear, enableBackgroundBlur: false, separatorColor: .clear, badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear), strings: NavigationBarStrings(presentationStrings: self.presentationData.strings))) @@ -53,7 +47,7 @@ public class SetupTwoStepVerificationController: ViewController { self.navigationItem.setLeftBarButton(UIBarButtonItem(title: self.presentationData.strings.Common_Cancel, style: .plain, target: self, action: #selector(self.cancelPressed)), animated: false) - self.presentationDataDisposable = (self.sharedContext.presentationData + self.presentationDataDisposable = (self.context.sharedContext.presentationData |> deliverOnMainQueue).start(next: { [weak self] presentationData in if let strongSelf = self { let previousTheme = strongSelf.presentationData.theme @@ -103,7 +97,7 @@ public class SetupTwoStepVerificationController: ViewController { } override public func loadDisplayNode() { - self.displayNode = SetupTwoStepVerificationControllerNode(sharedContext: self.sharedContext, network: self.network, updateBackAction: { [weak self] action in + self.displayNode = SetupTwoStepVerificationControllerNode(context: self.context, updateBackAction: { [weak self] action in guard let strongSelf = self else { return } diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift index 90fb0a7ed7..0b1605df28 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift @@ -141,8 +141,7 @@ public enum SetupTwoStepVerificationStateUpdate { } final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { - private let sharedContext: SharedAccountContext - private let network: Network + private let context: AccountContext private var presentationData: PresentationData private let updateBackAction: (Bool) -> Void private let updateNextAction: (SetupTwoStepVerificationNextAction) -> Void @@ -155,15 +154,14 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { private var contentNode: SetupTwoStepVerificationContentNode? private let actionDisposable = MetaDisposable() - init(sharedContext: SharedAccountContext, network: Network, updateBackAction: @escaping (Bool) -> Void, updateNextAction: @escaping (SetupTwoStepVerificationNextAction) -> Void, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool) -> Void, present: @escaping (ViewController, Any?) -> Void, dismiss: @escaping () -> Void, initialState: SetupTwoStepVerificationInitialState) { - self.sharedContext = sharedContext - self.network = network + init(context: AccountContext, updateBackAction: @escaping (Bool) -> Void, updateNextAction: @escaping (SetupTwoStepVerificationNextAction) -> Void, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate, Bool) -> Void, present: @escaping (ViewController, Any?) -> Void, dismiss: @escaping () -> Void, initialState: SetupTwoStepVerificationInitialState) { + self.context = context self.updateBackAction = updateBackAction self.updateNextAction = updateNextAction self.stateUpdated = stateUpdated self.present = present self.dismiss = dismiss - self.presentationData = self.sharedContext.currentPresentationData.with { $0 } + self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } self.innerState = SetupTwoStepVerificationControllerInnerState(layout: nil, data: SetupTwoStepVerificationControllerDataState(activity: false, state: SetupTwoStepVerificationState(initialState: initialState))) self.activityIndicator = ActivityIndicator(type: .custom(self.presentationData.theme.list.itemAccentColor, 22.0, 2.0, false)) @@ -173,7 +171,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { self.processStateUpdated() if self.innerState.data.state == nil { - self.actionDisposable.set((twoStepAuthData(self.network) + self.actionDisposable.set((self.context.engine.auth.twoStepAuthData() |> deliverOnMainQueue).start(next: { [weak self] data in guard let strongSelf = self else { return @@ -342,7 +340,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: nil, updatedPassword: .none) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in guard let strongSelf = self else { return @@ -358,7 +356,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -395,7 +393,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((resendTwoStepRecoveryEmail(network: strongSelf.network) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.resendTwoStepRecoveryEmail() |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self else { return @@ -407,7 +405,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -528,7 +526,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { if password == confirmation { state.data.state = .enterHint(mode: mode, password: password, hint: "") } else { - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_SetupPasswordConfirmFailed, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.TwoStepAuth_SetupPasswordConfirmFailed, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) } case let .enterHint(mode, password, hint): switch mode { @@ -536,7 +534,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.state = .enterEmail(state: .create(password: password, hint: hint), email: "") case let .update(current, hasRecoveryEmail, hasSecureValues): state.data.activity = true - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: current, updatedPassword: .password(password: password, hint: hint, email: nil)) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: current, updatedPassword: .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -560,7 +558,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -572,7 +570,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true switch enterState { case let .create(password, hint): - strongSelf.actionDisposable.set((updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: nil, updatedPassword: .password(password: password, hint: hint, email: email)) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -604,7 +602,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -620,7 +618,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { state.data.activity = true return state }, transition: .animated(duration: 0.5, curve: .spring)) - strongSelf.actionDisposable.set((updateTwoStepVerificationEmail(network: strongSelf.network, currentPassword: password, updatedEmail: email) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { result in guard let strongSelf = self else { return @@ -646,7 +644,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { guard let strongSelf = self else { return } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: strongSelf.presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state state.data.activity = false @@ -656,7 +654,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { } case let .confirmEmail(confirmState, _, _, code): state.data.activity = true - strongSelf.actionDisposable.set((confirmTwoStepRecoveryEmail(network: strongSelf.network, code: code) + strongSelf.actionDisposable.set((strongSelf.context.engine.auth.confirmTwoStepRecoveryEmail(code: code) |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self else { return @@ -675,7 +673,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { case .generic: text = strongSelf.presentationData.strings.Login_UnknownError } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) + strongSelf.present(textAlertController(sharedContext: strongSelf.context.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), nil) strongSelf.updateState({ state in var state = state @@ -700,7 +698,7 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { }, transition: .animated(duration: 0.5, curve: .spring)) } if case let .enterEmail(enterEmailState, enterEmailEmail)? = self.innerState.data.state, case .create = enterEmailState, enterEmailEmail.isEmpty { - self.present(textAlertController(sharedContext: self.sharedContext, title: nil, text: self.presentationData.strings.TwoStepAuth_EmailSkipAlert, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .destructiveAction, title: self.presentationData.strings.TwoStepAuth_EmailSkip, action: { + self.present(textAlertController(sharedContext: self.context.sharedContext, title: nil, text: self.presentationData.strings.TwoStepAuth_EmailSkipAlert, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .destructiveAction, title: self.presentationData.strings.TwoStepAuth_EmailSkip, action: { continueImpl() })]), nil) } else { diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift index bfb96a896e..2d882e5c0c 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthDataInputScreen.swift @@ -35,14 +35,14 @@ public enum TwoFactorDataInputMode { public final class TwoFactorDataInputScreen: ViewController { private let sharedContext: SharedAccountContext - private let network: Network + private let engine: SomeTelegramEngine private var presentationData: PresentationData private let mode: TwoFactorDataInputMode private let stateUpdated: (SetupTwoStepVerificationStateUpdate) -> Void - public init(sharedContext: SharedAccountContext, network: Network, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorDataInputMode, stateUpdated: @escaping (SetupTwoStepVerificationStateUpdate) -> Void) { self.sharedContext = sharedContext - self.network = network + self.engine = engine self.mode = mode self.stateUpdated = stateUpdated @@ -101,7 +101,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: nil, password: values[0]), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) case let .passwordRecovery(recovery): let values = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText @@ -129,7 +129,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .passwordHint(recovery: recovery, password: values[0]), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) case let .emailAddress(password, hint): guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { @@ -138,7 +138,7 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - let _ = (updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: text)) + let _ = (strongSelf.engine.auth.updateTwoStepVerificationPassword(currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: text)) |> deliverOnMainQueue).start(next: { [weak statusController] result in statusController?.dismiss() @@ -163,7 +163,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, hint), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) } else { guard let navigationController = strongSelf.navigationController as? NavigationController else { @@ -178,7 +178,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) navigationController.setViewControllers(controllers, animated: true) } } @@ -205,120 +205,130 @@ public final class TwoFactorDataInputScreen: ViewController { } let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (updateTwoStepVerificationEmail(network: strongSelf.network, currentPassword: password, updatedEmail: text) - |> deliverOnMainQueue).start(next: { [weak statusController] result in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - switch result { - case .none: - break - case let .password(_, pendingEmail): - if let pendingEmail = pendingEmail { - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false - } - if controller is TwoFactorDataInputScreen { - return false - } - return true - } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailConfirmation(passwordAndHint: (password, ""), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) - navigationController.setViewControllers(controllers, animated: true) - } else { - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false - } - if controller is TwoFactorDataInputScreen { - return false - } - return true - } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) - navigationController.setViewControllers(controllers, animated: true) + + switch strongSelf.engine { + case let .authorized(engine): + let _ = (engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: text) + |> deliverOnMainQueue).start(next: { [weak statusController] result in + statusController?.dismiss() + + guard let strongSelf = self else { + return } - } - }, error: { [weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - let presentationData = strongSelf.presentationData - let alertText: String - switch error { - case .generic: - alertText = presentationData.strings.Login_UnknownError - case .invalidEmail: - alertText = presentationData.strings.TwoStepAuth_EmailInvalid - } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }) + + switch result { + case .none: + break + case let .password(_, pendingEmail): + if let pendingEmail = pendingEmail { + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailConfirmation(passwordAndHint: (password, ""), emailPattern: text, codeLength: pendingEmail.codeLength.flatMap(Int.init)), stateUpdated: strongSelf.stateUpdated)) + navigationController.setViewControllers(controllers, animated: true) + } else { + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) + navigationController.setViewControllers(controllers, animated: true) + } + } + }, error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + let presentationData = strongSelf.presentationData + let alertText: String + switch error { + case .generic: + alertText = presentationData.strings.Login_UnknownError + case .invalidEmail: + alertText = presentationData.strings.TwoStepAuth_EmailInvalid + } + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }) + case .unauthorized: + break + } case .emailConfirmation: guard let text = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !text.isEmpty else { return } let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (confirmTwoStepRecoveryEmail(network: strongSelf.network, code: text) - |> deliverOnMainQueue).start(error: { [weak statusController] error in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - let presentationData = strongSelf.presentationData - let text: String - switch error { - case .invalidEmail: - text = presentationData.strings.TwoStepAuth_EmailInvalid - case .invalidCode: - text = presentationData.strings.Login_InvalidCodeError - case .expired: - text = presentationData.strings.TwoStepAuth_EmailCodeExpired - case .flood: - text = presentationData.strings.TwoStepAuth_FloodError - case .generic: - text = presentationData.strings.Login_UnknownError - } - strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { [weak statusController] in - statusController?.dismiss() - - guard let strongSelf = self else { - return - } - - guard let navigationController = strongSelf.navigationController as? NavigationController else { - return - } - var controllers = navigationController.viewControllers.filter { controller in - if controller is TwoFactorAuthSplashScreen { - return false + + switch strongSelf.engine { + case let .authorized(engine): + let _ = (engine.auth.confirmTwoStepRecoveryEmail(code: text) + |> deliverOnMainQueue).start(error: { [weak statusController] error in + statusController?.dismiss() + + guard let strongSelf = self else { + return } - if controller is TwoFactorDataInputScreen { - return false + + let presentationData = strongSelf.presentationData + let text: String + switch error { + case .invalidEmail: + text = presentationData.strings.TwoStepAuth_EmailInvalid + case .invalidCode: + text = presentationData.strings.Login_InvalidCodeError + case .expired: + text = presentationData.strings.TwoStepAuth_EmailCodeExpired + case .flood: + text = presentationData.strings.TwoStepAuth_FloodError + case .generic: + text = presentationData.strings.Login_UnknownError } - return true - } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) - navigationController.setViewControllers(controllers, animated: true) - }) + strongSelf.present(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak statusController] in + statusController?.dismiss() + + guard let strongSelf = self else { + return + } + + guard let navigationController = strongSelf.navigationController as? NavigationController else { + return + } + var controllers = navigationController.viewControllers.filter { controller in + if controller is TwoFactorAuthSplashScreen { + return false + } + if controller is TwoFactorDataInputScreen { + return false + } + return true + } + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) + navigationController.setViewControllers(controllers, animated: true) + }) + case .unauthorized: + break + } case let .passwordHint(recovery, password): guard let value = (strongSelf.displayNode as! TwoFactorDataInputScreenNode).inputText.first, !value.isEmpty else { return @@ -327,7 +337,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: value) } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: value), stateUpdated: strongSelf.stateUpdated)) } } }, skipAction: { [weak self] in @@ -344,7 +354,7 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - let _ = (updateTwoStepVerificationPassword(network: strongSelf.network, currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: nil)) + let _ = (strongSelf.engine.auth.updateTwoStepVerificationPassword(currentPassword: "", updatedPassword: .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(next: { [weak statusController] result in statusController?.dismiss() @@ -368,7 +378,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .done)) + controllers.append(TwoFactorAuthSplashScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .done)) navigationController.setViewControllers(controllers, animated: true) } }, error: { [weak statusController] error in @@ -395,7 +405,7 @@ public final class TwoFactorDataInputScreen: ViewController { if let recovery = recovery { strongSelf.performRecovery(recovery: recovery, password: password, hint: "") } else { - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated)) + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: ""), stateUpdated: strongSelf.stateUpdated)) } case let .passwordRecovery(recovery): strongSelf.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertTitle, text: strongSelf.presentationData.strings.TwoFactorSetup_PasswordRecovery_SkipAlertText, actions: [ @@ -429,7 +439,7 @@ public final class TwoFactorDataInputScreen: ViewController { } return true } - controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated)) + controllers.append(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .emailAddress(password: password, hint: hint), stateUpdated: strongSelf.stateUpdated)) navigationController.setViewControllers(controllers, animated: true) } else { } @@ -443,8 +453,8 @@ public final class TwoFactorDataInputScreen: ViewController { let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(statusController, in: .window(.root)) - - let _ = (resendTwoStepRecoveryEmail(network: strongSelf.network) + + let _ = (strongSelf.engine.auth.resendTwoStepRecoveryEmail() |> deliverOnMainQueue).start(error: { [weak statusController] error in statusController?.dismiss() @@ -475,10 +485,13 @@ public final class TwoFactorDataInputScreen: ViewController { } private func performRecovery(recovery: TwoFactorDataInputMode.Recovery, password: String, hint: String) { - /*let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) + guard case let .unauthorized(engine) = self.engine else { + return + } + let statusController = OverlayStatusController(theme: self.presentationData.theme, type: .loading(cancelled: nil)) self.present(statusController, in: .window(.root)) - let _ = (performPasswordRecovery(accountManager: self.sharedContext.accountManager, account: recovery.account, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) + let _ = (engine.auth.performPasswordRecovery(accountManager: self.sharedContext.accountManager, code: recovery.code, syncContacts: recovery.syncContacts, updatedPassword: password.isEmpty ? .none : .password(password: password, hint: hint, email: nil)) |> deliverOnMainQueue).start(error: { [weak self, weak statusController] error in statusController?.dismiss() @@ -507,7 +520,7 @@ public final class TwoFactorDataInputScreen: ViewController { } strongSelf.dismiss() - })*/ + }) } } @@ -1126,7 +1139,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS return } switch strongSelf.mode { - case .emailAddress, .updateEmailAddress: + case .emailAddress, .updateEmailAddress, .passwordRecovery: let hasText = strongSelf.inputNodes.contains(where: { !$0.text.isEmpty }) strongSelf.buttonNode.isHidden = !hasText strongSelf.skipActionTitleNode.isHidden = hasText @@ -1148,7 +1161,7 @@ private final class TwoFactorDataInputScreenNode: ViewControllerTracingNode, UIS strongSelf.buttonNode.isHidden = !hasText strongSelf.skipActionTitleNode.isHidden = hasText strongSelf.skipActionButtonNode.isHidden = hasText - case .password, .passwordRecovery: + case .password: break } updateAnimations() diff --git a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift index 8a2fe0f068..8f62595254 100644 --- a/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift +++ b/submodules/PasswordSetupUI/Sources/TwoFactorAuthSplashScreen.swift @@ -19,13 +19,13 @@ public enum TwoFactorAuthSplashMode { public final class TwoFactorAuthSplashScreen: ViewController { private let sharedContext: SharedAccountContext - private let network: Network + private let engine: SomeTelegramEngine private var presentationData: PresentationData private var mode: TwoFactorAuthSplashMode - public init(sharedContext: SharedAccountContext, network: Network, mode: TwoFactorAuthSplashMode) { + public init(sharedContext: SharedAccountContext, engine: SomeTelegramEngine, mode: TwoFactorAuthSplashMode) { self.sharedContext = sharedContext - self.network = network + self.engine = engine self.mode = mode self.presentationData = self.sharedContext.currentPresentationData.with { $0 } @@ -57,7 +57,7 @@ public final class TwoFactorAuthSplashScreen: ViewController { } switch strongSelf.mode { case .intro: - strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.network, mode: .password, stateUpdated: { _ in + strongSelf.push(TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: strongSelf.engine, mode: .password, stateUpdated: { _ in })) case .done: guard let navigationController = strongSelf.navigationController as? NavigationController else { diff --git a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift index 540cce7c68..c60aa3387d 100644 --- a/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelPermissionsController.swift @@ -779,7 +779,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } let state = stateValue.with { $0 } if let modifiedSlowmodeTimeout = state.modifiedSlowmodeTimeout { - updateDefaultRightsDisposable.set(updateChannelSlowModeInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: view.peerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value).start()) + updateDefaultRightsDisposable.set(context.engine.peers.updateChannelSlowModeInteractively(peerId: view.peerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value).start()) } } else if let _ = view.peers[view.peerId] as? TelegramGroup, let _ = view.cachedData as? CachedGroupData { updateState { state in @@ -815,7 +815,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina } } |> mapToSignal { upgradedPeerId -> Signal in - return updateChannelSlowModeInteractively(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, peerId: upgradedPeerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value) + return context.engine.peers.updateChannelSlowModeInteractively(peerId: upgradedPeerId, timeout: modifiedSlowmodeTimeout == 0 ? nil : value) |> mapToSignal { _ -> Signal in return .complete() } diff --git a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift b/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift deleted file mode 100644 index 70c6a25db9..0000000000 --- a/submodules/PeerInfoUI/Sources/GroupsInCommonController.swift +++ /dev/null @@ -1,244 +0,0 @@ -import Foundation -import UIKit -import AsyncDisplayKit -import Display -import SwiftSignalKit -import Postbox -import TelegramCore -import SyncCore -import TelegramPresentationData -import TelegramUIPreferences -import ItemListUI -import PresentationDataUtils -import AccountContext -import ItemListPeerItem -import ContextUI - -private final class GroupsInCommonControllerArguments { - let context: AccountContext - - let openPeer: (PeerId) -> Void - let contextAction: (Peer, ASDisplayNode, ContextGesture?) -> Void - - init(context: AccountContext, openPeer: @escaping (PeerId) -> Void, contextAction: @escaping (Peer, ASDisplayNode, ContextGesture?) -> Void) { - self.context = context - self.openPeer = openPeer - self.contextAction = contextAction - } -} - -private enum GroupsInCommonSection: Int32 { - case peers -} - -private enum GroupsInCommonEntryStableId: Hashable { - case peer(PeerId) -} - -private enum GroupsInCommonEntry: ItemListNodeEntry { - case peerItem(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, Peer) - - var section: ItemListSectionId { - switch self { - case .peerItem: - return GroupsInCommonSection.peers.rawValue - } - } - - var stableId: GroupsInCommonEntryStableId { - switch self { - case let .peerItem(_, _, _, _, _, peer): - return .peer(peer.id) - } - } - - static func ==(lhs: GroupsInCommonEntry, rhs: GroupsInCommonEntry) -> Bool { - switch lhs { - case let .peerItem(lhsIndex, lhsTheme, lhsStrings, lhsDateTimeFormat, lhsNameOrder, lhsPeer): - if case let .peerItem(rhsIndex, rhsTheme, rhsStrings, rhsDateTimeFormat, rhsNameOrder, rhsPeer) = rhs { - if lhsIndex != rhsIndex { - return false - } - if lhsTheme !== rhsTheme { - return false - } - if lhsStrings !== rhsStrings { - return false - } - if lhsDateTimeFormat != rhsDateTimeFormat { - return false - } - if !lhsPeer.isEqual(rhsPeer) { - return false - } - if lhsNameOrder != rhsNameOrder { - return false - } - return true - } else { - return false - } - } - } - - static func <(lhs: GroupsInCommonEntry, rhs: GroupsInCommonEntry) -> Bool { - switch lhs { - case let .peerItem(index, _, _, _, _, _): - switch rhs { - case let .peerItem(rhsIndex, _, _, _, _, _): - return index < rhsIndex - } - } - } - - func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { - let arguments = arguments as! GroupsInCommonControllerArguments - switch self { - case let .peerItem(_, theme, strings, dateTimeFormat, nameDisplayOrder, peer): - return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, context: arguments.context, peer: peer, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { - arguments.openPeer(peer.id) - }, setPeerIdWithRevealedOptions: { _, _ in - }, removePeer: { _ in - }, contextAction: { node, gesture in - arguments.contextAction(peer, node, gesture) - }) - } - } -} - -private struct GroupsInCommonControllerState: Equatable { - static func ==(lhs: GroupsInCommonControllerState, rhs: GroupsInCommonControllerState) -> Bool { - return true - } -} - -private func groupsInCommonControllerEntries(presentationData: PresentationData, state: GroupsInCommonControllerState, peers: [Peer]?) -> [GroupsInCommonEntry] { - var entries: [GroupsInCommonEntry] = [] - - if let peers = peers { - var index: Int32 = 0 - for peer in peers { - entries.append(.peerItem(index, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, peer)) - index += 1 - } - } - - return entries -} - -public func groupsInCommonController(context: AccountContext, peerId: PeerId) -> ViewController { - let statePromise = ValuePromise(GroupsInCommonControllerState(), ignoreRepeated: true) - let stateValue = Atomic(value: GroupsInCommonControllerState()) - let updateState: ((GroupsInCommonControllerState) -> GroupsInCommonControllerState) -> Void = { f in - statePromise.set(stateValue.modify { f($0) }) - } - - let actionsDisposable = DisposableSet() - - let peersPromise = Promise<[Peer]?>(nil) - - var pushControllerImpl: ((ViewController) -> Void)? - var getNavigationControllerImpl: (() -> NavigationController?)? - - var contextActionImpl: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? - - let arguments = GroupsInCommonControllerArguments(context: context, openPeer: { memberId in - guard let navigationController = getNavigationControllerImpl?() else { - return - } - context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: context, chatLocation: .peer(memberId), animated: true)) - }, contextAction: { peer, node, gesture in - contextActionImpl?(peer, node, gesture) - }) - - let peersSignal: Signal<[Peer]?, NoError> = .single(nil) |> then(groupsInCommon(account: context.account, peerId: peerId) |> mapToSignal { peerIds -> Signal<[Peer], NoError> in - return context.account.postbox.transaction { transaction -> [Peer] in - var result: [Peer] = [] - for id in peerIds { - if let peer = transaction.getPeer(id.id) { - result.append(peer) - } - } - return result - } - } - |> map(Optional.init)) - - peersPromise.set(peersSignal) - - var previousPeers: [Peer]? - - let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), peersPromise.get()) - |> deliverOnMainQueue - |> map { presentationData, state, peers -> (ItemListControllerState, (ItemListNodeState, Any)) in - var emptyStateItem: ItemListControllerEmptyStateItem? - if peers == nil { - emptyStateItem = ItemListLoadingIndicatorEmptyStateItem(theme: presentationData.theme) - } - - let previous = previousPeers - previousPeers = peers - - let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.UserInfo_GroupsInCommon), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: groupsInCommonControllerEntries(presentationData: presentationData, state: state, peers: peers), style: .blocks, emptyStateItem: emptyStateItem, animateChanges: previous != nil && peers != nil && previous!.count >= peers!.count) - - return (controllerState, (listState, arguments)) - } |> afterDisposed { - actionsDisposable.dispose() - } - - let controller = ItemListController(context: context, state: signal) - pushControllerImpl = { [weak controller] c in - if let controller = controller { - (controller.navigationController as? NavigationController)?.pushViewController(c) - } - } - getNavigationControllerImpl = { [weak controller] in - return controller?.navigationController as? NavigationController - } - contextActionImpl = { [weak controller] peer, node, gesture in - guard let controller = controller else { - return - } - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - let chatController = context.sharedContext.makeChatController(context: context, chatLocation: .peer(peer.id), subject: nil, botStart: nil, mode: .standard(previewing: true)) - chatController.canReadHistory.set(false) - let items: [ContextMenuItem] = [ - .action(ContextMenuActionItem(text: presentationData.strings.Conversation_LinkDialogOpen, icon: { _ in nil }, action: { _, f in - f(.dismissWithoutContent) - arguments.openPeer(peer.id) - })) - ] - let contextController = ContextController(account: context.account, presentationData: presentationData, source: .controller(ContextControllerContentSourceImpl(controller: chatController, sourceNode: node)), items: .single(items), reactionItems: [], gesture: gesture) - controller.presentInGlobalOverlay(contextController) - } - return controller -} - -private final class ContextControllerContentSourceImpl: ContextControllerContentSource { - let controller: ViewController - weak var sourceNode: ASDisplayNode? - - let navigationController: NavigationController? = nil - - let passthroughTouches: Bool = true - - init(controller: ViewController, sourceNode: ASDisplayNode?) { - self.controller = controller - self.sourceNode = sourceNode - } - - func transitionInfo() -> ContextControllerTakeControllerInfo? { - let sourceNode = self.sourceNode - return ContextControllerTakeControllerInfo(contentAreaInScreenSpace: CGRect(origin: CGPoint(), size: CGSize(width: 10.0, height: 10.0)), sourceNode: { [weak sourceNode] in - if let sourceNode = sourceNode { - return (sourceNode, sourceNode.bounds) - } else { - return nil - } - }) - } - - func animatedIn() { - } -} diff --git a/submodules/PeerInfoUI/Sources/PeerReportController.swift b/submodules/PeerInfoUI/Sources/PeerReportController.swift index 0b7d57f71f..d13701fb43 100644 --- a/submodules/PeerInfoUI/Sources/PeerReportController.swift +++ b/submodules/PeerInfoUI/Sources/PeerReportController.swift @@ -107,19 +107,19 @@ public func presentPeerReportOptions(context: AccountContext, parent: ViewContro } else { switch subject { case let .peer(peerId): - let _ = (reportPeer(account: context.account, peerId: peerId, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeer(peerId: peerId, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) }) case let .messages(messageIds): - let _ = (reportPeerMessages(account: context.account, messageIds: messageIds, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeerMessages(messageIds: messageIds, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) }) case let .profilePhoto(peerId, photoId): - let _ = (reportPeerPhoto(account: context.account, peerId: peerId, reason: reportReason, message: "") + let _ = (context.engine.peers.reportPeerPhoto(peerId: peerId, reason: reportReason, message: "") |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, false) @@ -233,19 +233,19 @@ public func peerReportOptionsController(context: AccountContext, subject: PeerRe } else { switch subject { case let .peer(peerId): - let _ = (reportPeer(account: context.account, peerId: peerId, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeer(peerId: peerId, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) }) case let .messages(messageIds): - let _ = (reportPeerMessages(account: context.account, messageIds: messageIds, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeerMessages(messageIds: messageIds, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) }) case let .profilePhoto(peerId, photoId): - let _ = (reportPeerPhoto(account: context.account, peerId: peerId, reason: reportReason, message: message) + let _ = (context.engine.peers.reportPeerPhoto(peerId: peerId, reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { displaySuccess() completion(nil, true) diff --git a/submodules/Postbox/Sources/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift index 277598ec9e..4966a9dea8 100644 --- a/submodules/Postbox/Sources/MessageHistoryView.swift +++ b/submodules/Postbox/Sources/MessageHistoryView.swift @@ -904,20 +904,20 @@ public final class MessageHistoryView { public let isLoading: Bool public let isAddedToChatList: Bool - public init(tagMask: MessageTags?, namespaces: MessageIdNamespaces, entries: [MessageHistoryEntry], holeEarlier: Bool) { + public init(tagMask: MessageTags?, namespaces: MessageIdNamespaces, entries: [MessageHistoryEntry], holeEarlier: Bool, holeLater: Bool, isLoading: Bool) { self.tagMask = tagMask self.namespaces = namespaces self.anchorIndex = .lowerBound self.earlierId = nil self.laterId = nil self.holeEarlier = holeEarlier - self.holeLater = false + self.holeLater = holeLater self.entries = entries self.maxReadIndex = nil self.fixedReadStates = nil self.topTaggedMessages = [] self.additionalData = [] - self.isLoading = false + self.isLoading = isLoading self.isAddedToChatList = false } diff --git a/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift b/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift index 5be4d7c79c..f8d3dc0936 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/CreatePasswordController.swift @@ -274,7 +274,7 @@ func createPasswordController(context: AccountContext, createPasswordContext: Cr state.saving = true return state } - saveDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .password(password: state.passwordText, hint: state.hintText, email: email)) + saveDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .password(password: state.passwordText, hint: state.hintText, email: email)) |> deliverOnMainQueue).start(next: { update in switch update { case .none: @@ -356,7 +356,7 @@ func createPasswordController(context: AccountContext, createPasswordContext: Cr return state } - saveDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .none) + saveDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in updateState { state in var state = state diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift index 86596d241a..7f2ada099e 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift @@ -542,7 +542,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting } let updateHasTwoStepAuth: () -> Void = { - let signal = twoStepVerificationConfiguration(account: context.account) + let signal = context.engine.auth.twoStepVerificationConfiguration() |> map { value -> TwoStepVerificationAccessConfiguration? in return TwoStepVerificationAccessConfiguration(configuration: value, password: nil) } @@ -735,7 +735,7 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting case let .notSet(pendingEmail): //intro = pendingEmail == nil if pendingEmail == nil { - let controller = TwoFactorAuthSplashScreen(sharedContext: context.sharedContext, network: context.account.network, mode: .intro) + let controller = TwoFactorAuthSplashScreen(sharedContext: context.sharedContext, engine: .authorized(context.engine), mode: .intro) pushControllerImpl?(controller, true) return } else { diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift index 6a4ab372c1..b71f124495 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationPasswordEntryController.swift @@ -332,7 +332,7 @@ func twoStepVerificationPasswordEntryController(context: AccountContext, mode: T if case let .change(current) = mode { currentPassword = current } - updatePasswordDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: currentPassword, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { update in + updatePasswordDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: .password(password: password, hint: hint, email: email)) |> deliverOnMainQueue).start(next: { update in updateState { $0.withUpdatedUpdating(false) } @@ -357,7 +357,7 @@ func twoStepVerificationPasswordEntryController(context: AccountContext, mode: T presentControllerImpl?(textAlertController(context: context, title: nil, text: alertText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) })) case let .setupEmail(password): - updatePasswordDisposable.set((updateTwoStepVerificationEmail(network: context.account.network, currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { update in + updatePasswordDisposable.set((context.engine.auth.updateTwoStepVerificationEmail(currentPassword: password, updatedEmail: email) |> deliverOnMainQueue).start(next: { update in updateState { $0.withUpdatedUpdating(false) } diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift index 2f6091ea8e..e5e271efb4 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationResetController.swift @@ -140,7 +140,7 @@ private func twoStepVerificationResetControllerEntries(presentationData: Present return entries } -func twoStepVerificationResetController(context: AccountContext, emailPattern: String, result: Promise) -> ViewController { +func twoStepVerificationResetController(context: AccountContext, emailPattern: String, result: Promise, requestedRecoveryReset: @escaping () -> Void) -> ViewController { let initialState = TwoStepVerificationResetControllerState(codeText: "", checking: false) let statePromise = ValuePromise(initialState, ignoreRepeated: true) @@ -168,7 +168,7 @@ func twoStepVerificationResetController(context: AccountContext, emailPattern: S } } if let code = code { - resetPasswordDisposable.set((recoverTwoStepVerificationPassword(network: context.account.network, code: code) |> deliverOnMainQueue).start(error: { error in + resetPasswordDisposable.set((context.engine.auth.recoverTwoStepVerificationPassword(code: code) |> deliverOnMainQueue).start(error: { error in updateState { return $0.withUpdatedChecking(false) } @@ -202,7 +202,20 @@ func twoStepVerificationResetController(context: AccountContext, emailPattern: S checkCode() }, openEmailInaccessible: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryFailed, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryEmailResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (context.engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + requestedRecoveryReset() + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) let signal = combineLatest(context.sharedContext.presentationData, statePromise.get()) |> deliverOnMainQueue diff --git a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift index 3300fc404a..727eff38c6 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/TwoStepVerificationUnlockController.swift @@ -26,8 +26,10 @@ private final class TwoStepVerificationUnlockSettingsControllerArguments { let openResetPendingEmail: () -> Void let updateEmailCode: (String) -> Void let openConfirmEmail: () -> Void + let declinePasswordReset: () -> Void + let resetPassword: () -> Void - init(updatePasswordText: @escaping (String) -> Void, checkPassword: @escaping () -> Void, openForgotPassword: @escaping () -> Void, openSetupPassword: @escaping () -> Void, openDisablePassword: @escaping () -> Void, openSetupEmail: @escaping () -> Void, openResetPendingEmail: @escaping () -> Void, updateEmailCode: @escaping (String) -> Void, openConfirmEmail: @escaping () -> Void) { + init(updatePasswordText: @escaping (String) -> Void, checkPassword: @escaping () -> Void, openForgotPassword: @escaping () -> Void, openSetupPassword: @escaping () -> Void, openDisablePassword: @escaping () -> Void, openSetupEmail: @escaping () -> Void, openResetPendingEmail: @escaping () -> Void, updateEmailCode: @escaping (String) -> Void, openConfirmEmail: @escaping () -> Void, declinePasswordReset: @escaping () -> Void, resetPassword: @escaping () -> Void) { self.updatePasswordText = updatePasswordText self.checkPassword = checkPassword self.openForgotPassword = openForgotPassword @@ -37,6 +39,8 @@ private final class TwoStepVerificationUnlockSettingsControllerArguments { self.openResetPendingEmail = openResetPendingEmail self.updateEmailCode = updateEmailCode self.openConfirmEmail = openConfirmEmail + self.declinePasswordReset = declinePasswordReset + self.resetPassword = resetPassword } } @@ -132,47 +136,53 @@ private enum TwoStepVerificationUnlockSettingsEntry: ItemListNodeEntry { }, action: { arguments.checkPassword() }) - case let .passwordEntryInfo(theme, text): + case let .passwordEntryInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in switch action { - case .tap: - arguments.openForgotPassword() + case let .tap(item): + if item == "forgot" { + arguments.openForgotPassword() + } else if item == "declineReset" { + arguments.declinePasswordReset() + } else if item == "reset" { + arguments.resetPassword() + } } }) - case let .passwordSetup(theme, text): + case let .passwordSetup(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupPassword() }) - case let .passwordSetupInfo(theme, text): + case let .passwordSetupInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section) - case let .changePassword(theme, text): + case let .changePassword(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupPassword() }) - case let .turnPasswordOff(theme, text): + case let .turnPasswordOff(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openDisablePassword() }) - case let .setupRecoveryEmail(theme, text): + case let .setupRecoveryEmail(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openSetupEmail() }) - case let .passwordInfo(theme, text): + case let .passwordInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .pendingEmailConfirmInfo(theme, text): + case let .pendingEmailConfirmInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) - case let .pendingEmailConfirmCode(theme, strings, title, text): + case let .pendingEmailConfirmCode(_, _, title, text): return ItemListSingleLineInputItem(presentationData: presentationData, title: NSAttributedString(string: ""), text: text, placeholder: title, type: .number, sectionId: self.section, textUpdated: { value in arguments.updateEmailCode(value) }, action: {}) - case let .pendingEmailInfo(theme, text): + case let .pendingEmailInfo(_, text): return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section, linkAction: { action in switch action { case .tap: arguments.openResetPendingEmail() } }) - case let .pendingEmailOpenConfirm(theme, text): + case let .pendingEmailOpenConfirm(_, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openConfirmEmail() }) @@ -204,13 +214,28 @@ private func twoStepVerificationUnlockSettingsControllerEntries(presentationData entries.append(.passwordSetup(presentationData.theme, presentationData.strings.TwoStepAuth_SetPassword)) entries.append(.passwordSetupInfo(presentationData.theme, presentationData.strings.TwoStepAuth_SetPasswordHelp)) } - case let .set(hint, _, _): + case let .set(hint, _, _, pendingResetTimestamp): entries.append(.passwordEntry(presentationData.theme, presentationData.strings, presentationData.strings.TwoStepAuth_EnterPasswordPassword, state.passwordText)) - if hint.isEmpty { - entries.append(.passwordEntryInfo(presentationData.theme, presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)")) - } else { - entries.append(.passwordEntryInfo(presentationData.theme, presentationData.strings.TwoStepAuth_EnterPasswordHint(escapedPlaintextForMarkdown(hint)).0 + "\n\n" + presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)")) + var text: String = "" + if !hint.isEmpty { + text += presentationData.strings.TwoStepAuth_EnterPasswordHint(escapedPlaintextForMarkdown(hint)).0 } + + if let pendingResetTimestamp = pendingResetTimestamp { + text += "\n\n" + let remainingSeconds = pendingResetTimestamp - Int32(Date().timeIntervalSince1970) + if remainingSeconds <= 0 { + text += "[" + presentationData.strings.TwoStepAuth_ResetAction + "](reset)" + } else { + text.append(presentationData.strings.TwoStepAuth_ResetPendingText(timeIntervalString(strings: presentationData.strings, value: remainingSeconds)).0) + text.append("\n[\(presentationData.strings.TwoStepAuth_CancelResetTitle)](declineReset)") + } + } else { + text += "\n\n" + text += presentationData.strings.TwoStepAuth_EnterPasswordHelp + "\n\n[" + presentationData.strings.TwoStepAuth_EnterPasswordForgot + "](forgot)" + } + + entries.append(.passwordEntryInfo(presentationData.theme, text)) } } case let .manage(_, emailSet, pendingEmail, _): @@ -240,14 +265,14 @@ struct TwoStepVerificationPendingEmailState: Equatable { enum TwoStepVerificationAccessConfiguration: Equatable { case notSet(pendingEmail: TwoStepVerificationPendingEmailState?) - case set(hint: String, hasRecoveryEmail: Bool, hasSecureValues: Bool) + case set(hint: String, hasRecoveryEmail: Bool, hasSecureValues: Bool, pendingResetTimestamp: Int32?) init(configuration: TwoStepVerificationConfiguration, password: String?) { switch configuration { case let .notSet(pendingEmail): self = .notSet(pendingEmail: pendingEmail.flatMap({ TwoStepVerificationPendingEmailState(password: password, email: $0) })) - case let .set(hint, hasRecoveryEmail, _, hasSecureValues, _): - self = .set(hint: hint, hasRecoveryEmail: hasRecoveryEmail, hasSecureValues: hasSecureValues) + case let .set(hint, hasRecoveryEmail, _, hasSecureValues, pendingResetTimestamp): + self = .set(hint: hint, hasRecoveryEmail: hasRecoveryEmail, hasSecureValues: hasSecureValues, pendingResetTimestamp: pendingResetTimestamp) } } } @@ -291,7 +316,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } else { dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: nil)) |> then(remoteDataPromise.get())) - remoteDataPromise.set(twoStepVerificationConfiguration(account: context.account) + remoteDataPromise.set(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) }) } case let .manage(password, email, pendingEmail, hasSecureValues): @@ -330,7 +355,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: return state } if let code = code { - setupDisposable.set((confirmTwoStepRecoveryEmail(network: context.account.network, code: code) + setupDisposable.set((context.engine.auth.confirmTwoStepRecoveryEmail(code: code) |> deliverOnMainQueue).start(error: { error in updateState { state in var state = state @@ -379,7 +404,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.manage(password: password, emailSet: true, pendingEmail: nil, hasSecureValues: false))) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: pendingEmail.password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: pendingEmail.password)) })) } case let .manage(manage): dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.manage(password: manage.password, emailSet: true, pendingEmail: nil, hasSecureValues: manage.hasSecureValues))) @@ -416,11 +441,10 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: } if let password = password, !password.isEmpty, !wasChecking { - checkDisposable.set((requestTwoStepVerifiationSettings(network: context.account.network, password: password) + checkDisposable.set((context.engine.auth.requestTwoStepVerifiationSettings(password: password) |> mapToSignal { settings -> Signal<(TwoStepVerificationSettings, TwoStepVerificationPendingEmail?), AuthorizationPasswordVerificationError> in - return twoStepVerificationConfiguration(account: context.account) + return context.engine.auth.twoStepVerificationConfiguration() |> mapError { _ -> AuthorizationPasswordVerificationError in - return .generic } |> map { configuration in var pendingEmail: TwoStepVerificationPendingEmail? @@ -469,14 +493,14 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: if let configuration = configuration { let presentationData = context.sharedContext.currentPresentationData.with { $0 } switch configuration { - case let .set(_, hasRecoveryEmail, _): + case let .set(_, hasRecoveryEmail, _, pendingResetTimestamp): if hasRecoveryEmail { updateState { state in var state = state state.checking = true return state } - setupResultDisposable.set((requestTwoStepVerificationPasswordRecoveryCode(network: context.account.network) + setupResultDisposable.set((context.engine.auth.requestTwoStepVerificationPasswordRecoveryCode() |> deliverOnMainQueue).start(next: { emailPattern in updateState { state in var state = state @@ -484,17 +508,25 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: return state } - var completionImpl: (() -> Void)? - let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { - completionImpl?() + var completionImpl: ((Bool) -> Void)? + let controller = resetPasswordController(context: context, emailPattern: emailPattern, completion: { result in + completionImpl?(result) }) - completionImpl = { [weak controller] in - dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: .notSet(pendingEmail: nil)))) - controller?.view.endEditing(true) - controller?.dismiss() - - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) + completionImpl = { [weak controller] result in + if !result { + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + controller?.view.endEditing(true) + controller?.dismiss() + } else { + dataPromise.set(.single(TwoStepVerificationUnlockSettingsControllerData.access(configuration: .notSet(pendingEmail: nil)))) + controller?.view.endEditing(true) + controller?.dismiss() + + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) + } } presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, error: { _ in @@ -506,7 +538,40 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) })) } else { - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.TwoStepAuth_RecoveryUnavailable, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + if let pendingResetTimestamp = pendingResetTimestamp { + let remainingSeconds = pendingResetTimestamp - Int32(Date().timeIntervalSince1970) + if remainingSeconds <= 0 { + let _ = (context.engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) + } + } else { + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetTitle, text: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.TwoStepAuth_RecoveryUnavailableResetAction, action: { + let _ = (context.engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done, .waitingForReset: + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + } } case .notSet: break @@ -538,7 +603,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_EnabledSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -570,7 +635,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_PasswordChangeSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -612,7 +677,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: case let .manage(password, _, _, _): let presentationData = context.sharedContext.currentPresentationData.with { $0 } presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.TwoStepAuth_DisableSuccess, false)), nil) - return updateTwoStepVerificationPassword(network: context.account.network, currentPassword: password, updatedPassword: .none) + return context.engine.auth.updateTwoStepVerificationPassword(currentPassword: password, updatedPassword: .none) |> mapToSignal { _ -> Signal in return .complete() } @@ -665,7 +730,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(emailSet ? presentationData.strings.TwoStepAuth_EmailChangeSuccess : presentationData.strings.TwoStepAuth_EmailAddSuccess, false)), nil) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -681,7 +746,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: state.checking = true return state } - setupDisposable.set((updateTwoStepVerificationPassword(network: context.account.network, currentPassword: nil, updatedPassword: .none) + setupDisposable.set((context.engine.auth.updateTwoStepVerificationPassword(currentPassword: nil, updatedPassword: .none) |> deliverOnMainQueue).start(next: { _ in updateState { state in var state = state @@ -752,7 +817,7 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: dataPromise.set(.single(data)) } else { dataPromise.set(.single(.access(configuration: nil)) - |> then(twoStepVerificationConfiguration(account: context.account) |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) + |> then(context.engine.auth.twoStepVerificationConfiguration() |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: password)) })) } } if shouldDismiss { @@ -762,12 +827,62 @@ func twoStepVerificationUnlockSettingsController(context: AccountContext, mode: presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } }) + }, declinePasswordReset: { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(textAlertController(context: context, title: presentationData.strings.TwoStepAuth_CancelResetTitle, text: presentationData.strings.TwoStepAuth_CancelResetText, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Yes, action: { + let _ = (context.engine.auth.declineTwoStepPasswordReset() + |> deliverOnMainQueue).start(completed: { + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + }) + }), TextAlertAction(type: .genericAction, title: presentationData.strings.Common_No, action: { + })]), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, resetPassword: { + let _ = (context.engine.auth.requestTwoStepPasswordReset() + |> deliverOnMainQueue).start(next: { result in + switch result { + case .done: + dismissImpl?() + case .waitingForReset: + dataPromise.set(context.engine.auth.twoStepVerificationConfiguration() + |> map { TwoStepVerificationUnlockSettingsControllerData.access(configuration: TwoStepVerificationAccessConfiguration(configuration: $0, password: nil)) + }) + case .declined: + break + case let .error(reason): + break + } + }) }) var initialFocusImpl: (() -> Void)? var didAppear = false + + let dataWithTimer = dataPromise.get() + |> distinctUntilChanged + |> mapToSignal { data -> Signal in + switch data { + case let .access(configuration): + if let configuration = configuration { + switch configuration { + case let .set(_, _, _, pendingResetTimestamp): + if pendingResetTimestamp != nil { + return .single(data) + |> then(.complete() |> delay(0.5, queue: .mainQueue())) + |> restart + } + default: + break + } + } + default: + break + } + return .single(data) + } - let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), dataPromise.get() |> deliverOnMainQueue) |> deliverOnMainQueue + let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), dataWithTimer |> deliverOnMainQueue) |> deliverOnMainQueue |> map { presentationData, state, data -> (ItemListControllerState, (ItemListNodeState, Any)) in var rightNavigationButton: ItemListNavigationButton? var emptyStateItem: ItemListControllerEmptyStateItem? diff --git a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift index 3016ce0f12..d21e7b7cd1 100644 --- a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift +++ b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift @@ -314,7 +314,7 @@ public func callFeedbackController(sharedContext: SharedAccountContext, account: } comment.append(hashtags) - let _ = rateCallAndSendLogs(account: account, callId: callId, starsCount: rating, comment: comment, userInitiated: userInitiated, includeLogs: state.includeLogs).start() + let _ = rateCallAndSendLogs(engine: TelegramEngine(account: account), callId: callId, starsCount: rating, comment: comment, userInitiated: userInitiated, includeLogs: state.includeLogs).start() dismissImpl?() presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .starSuccess(presentationData.strings.CallFeedback_Success))) diff --git a/submodules/TelegramCallsUI/Sources/CallRatingController.swift b/submodules/TelegramCallsUI/Sources/CallRatingController.swift index 54a6d5e494..c771190737 100644 --- a/submodules/TelegramCallsUI/Sources/CallRatingController.swift +++ b/submodules/TelegramCallsUI/Sources/CallRatingController.swift @@ -240,24 +240,24 @@ private final class CallRatingAlertContentNode: AlertContentNode { } } -func rateCallAndSendLogs(account: Account, callId: CallId, starsCount: Int, comment: String, userInitiated: Bool, includeLogs: Bool) -> Signal { - let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(4244000)) +func rateCallAndSendLogs(engine: TelegramEngine, callId: CallId, starsCount: Int, comment: String, userInitiated: Bool, includeLogs: Bool) -> Signal { + let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id. _internalFromInt64Value(4244000)) - let rate = rateCall(account: account, callId: callId, starsCount: Int32(starsCount), comment: comment, userInitiated: userInitiated) + let rate = engine.calls.rateCall(callId: callId, starsCount: Int32(starsCount), comment: comment, userInitiated: userInitiated) if includeLogs { let id = Int64.random(in: Int64.min ... Int64.max) let name = "\(callId.id)_\(callId.accessHash).log.json" - let path = callLogsPath(account: account) + "/" + name + let path = callLogsPath(account: engine.account) + "/" + name let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: id), partialReference: nil, resource: LocalFileReferenceMediaResource(localFilePath: path, randomId: id), previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: "application/text", size: nil, attributes: [.FileName(fileName: name)]) let message = EnqueueMessage.message(text: comment, attributes: [], mediaReference: .standalone(media: file), replyToMessageId: nil, localGroupingKey: nil, correlationId: nil) return rate - |> then(enqueueMessages(account: account, peerId: peerId, messages: [message]) + |> then(enqueueMessages(account: engine.account, peerId: peerId, messages: [message]) |> mapToSignal({ _ -> Signal in return .single(Void()) })) } else if !comment.isEmpty { return rate - |> then(enqueueMessages(account: account, peerId: peerId, messages: [.message(text: comment, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]) + |> then(enqueueMessages(account: engine.account, peerId: peerId, messages: [.message(text: comment, attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]) |> mapToSignal({ _ -> Signal in return .single(Void()) })) @@ -284,7 +284,7 @@ public func callRatingController(sharedContext: SharedAccountContext, account: A if rating < 4 { push(callFeedbackController(sharedContext: sharedContext, account: account, callId: callId, rating: rating, userInitiated: userInitiated, isVideo: isVideo)) } else { - let _ = rateCallAndSendLogs(account: account, callId: callId, starsCount: rating, comment: "", userInitiated: userInitiated, includeLogs: false).start() + let _ = rateCallAndSendLogs(engine: TelegramEngine(account: account), callId: callId, starsCount: rating, comment: "", userInitiated: userInitiated, includeLogs: false).start() } }) diff --git a/submodules/TelegramCore/Sources/Account.swift b/submodules/TelegramCore/Sources/Account.swift index f20af92f54..5d6f379d4a 100644 --- a/submodules/TelegramCore/Sources/Account.swift +++ b/submodules/TelegramCore/Sources/Account.swift @@ -375,7 +375,7 @@ public struct TwoStepAuthData { public let pendingResetTimestamp: Int32? } -public func twoStepAuthData(_ network: Network) -> Signal { +func _internal_twoStepAuthData(_ network: Network) -> Signal { return network.request(Api.functions.account.getPassword()) |> map { config -> TwoStepAuthData in switch config { @@ -666,7 +666,7 @@ func securePasswordKDF(password: String, derivation: TwoStepSecurePasswordDeriva } func verifyPassword(_ account: UnauthorizedAccount, password: String) -> Signal { - return twoStepAuthData(account.network) + return _internal_twoStepAuthData(account.network) |> mapToSignal { authData -> Signal in guard let currentPasswordDerivation = authData.currentPasswordDerivation, let srpSessionData = authData.srpSessionData else { return .fail(MTRpcError(errorCode: 400, errorDescription: "INTERNAL_NO_PASSWORD")) diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index 3808504740..ef1acec2b7 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -373,41 +373,7 @@ public enum PasswordRecoveryError { case generic } -public func performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool) -> Signal { - return account.network.request(Api.functions.auth.recoverPassword(flags: 0, code: code, newSettings: nil)) - |> mapError { error -> PasswordRecoveryError in - if error.errorDescription.hasPrefix("FLOOD_WAIT") { - return .limitExceeded - } else if error.errorDescription.hasPrefix("PASSWORD_RECOVERY_EXPIRED") { - return .expired - } else { - return .invalidCode - } - } - |> mapToSignal { result -> Signal in - return account.postbox.transaction { transaction -> Signal in - switch result { - case let .authorization(_, _, user): - let user = TelegramUser(user: user) - let state = AuthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, peerId: user.id, state: nil) - /*transaction.updatePeersInternal([user], update: { current, peer -> Peer? in - return peer - })*/ - initializedAppSettingsAfterLogin(transaction: transaction, appVersion: account.networkArguments.appVersion, syncContacts: syncContacts) - transaction.setState(state) - return accountManager.transaction { transaction -> Void in - switchToAuthorizedAccount(transaction: transaction, account: account) - } - case .authorizationSignUpRequired: - return .complete() - } - } - |> switchToLatest - |> mapError { _ -> PasswordRecoveryError in } - } -} - -/*public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal { +public func checkPasswordRecoveryCode(network: Network, code: String) -> Signal { return network.request(Api.functions.auth.checkRecoveryPassword(code: code), automaticFloodWait: false) |> mapError { error -> PasswordRecoveryError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -423,8 +389,8 @@ public func performPasswordRecovery(accountManager: AccountManager, account: Una } } -public func performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return twoStepAuthData(account.network) +func _internal_performPasswordRecovery(accountManager: AccountManager, account: UnauthorizedAccount, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_twoStepAuthData(account.network) |> mapError { _ -> PasswordRecoveryError in return .generic } @@ -480,7 +446,7 @@ public func performPasswordRecovery(accountManager: AccountManager, account: Una |> mapError { _ -> PasswordRecoveryError in } } } -}*/ +} public enum AccountResetError { case generic diff --git a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift index 976766c460..a79b0a2a56 100644 --- a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift +++ b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift @@ -95,7 +95,7 @@ public func updateChannelOwnership(account: Account, accountStateManager: Accoun let updatedParticipant = ChannelParticipant.creator(id: user.id, adminInfo: nil, rank: currentParticipant?.rank) let updatedPreviousCreator = ChannelParticipant.member(id: accountUser.id, invitedAt: Int32(Date().timeIntervalSince1970), adminInfo: ChannelParticipantAdminInfo(rights: TelegramChatAdminRights(rights: flags), promotedBy: accountUser.id, canBeEditedByAccountPeer: false), banInfo: nil, rank: currentCreator?.rank) - let checkPassword = twoStepAuthData(account.network) + let checkPassword = _internal_twoStepAuthData(account.network) |> mapError { error -> ChannelOwnershipTransferError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded diff --git a/submodules/TelegramCore/Sources/ChatHistoryImport.swift b/submodules/TelegramCore/Sources/ChatHistoryImport.swift deleted file mode 100644 index d1e5811512..0000000000 --- a/submodules/TelegramCore/Sources/ChatHistoryImport.swift +++ /dev/null @@ -1,244 +0,0 @@ -import Foundation -import SwiftSignalKit -import Postbox -import SyncCore -import TelegramApi - -public enum ChatHistoryImport { - public struct Session { - fileprivate var peerId: PeerId - fileprivate var inputPeer: Api.InputPeer - fileprivate var id: Int64 - } - - public enum InitImportError { - case generic - case chatAdminRequired - case invalidChatType - case userBlocked - case limitExceeded - } - - public enum ParsedInfo { - case privateChat(title: String?) - case group(title: String?) - case unknown(title: String?) - } - - public enum GetInfoError { - case generic - case parseError - } - - public static func getInfo(account: Account, header: String) -> Signal { - return account.network.request(Api.functions.messages.checkHistoryImport(importHead: header)) - |> mapError { _ -> GetInfoError in - return .generic - } - |> mapToSignal { result -> Signal in - switch result { - case let .historyImportParsed(flags, title): - if (flags & (1 << 0)) != 0 { - return .single(.privateChat(title: title)) - } else if (flags & (1 << 1)) != 0 { - return .single(.group(title: title)) - } else { - return .single(.unknown(title: title)) - } - } - } - } - - public static func initSession(account: Account, peerId: PeerId, file: TempBoxFile, mediaCount: Int32) -> Signal { - return multipartUpload(network: account.network, postbox: account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: true, useLargerParts: true, increaseParallelParts: true, useMultiplexedRequests: false, useCompression: true) - |> mapError { _ -> InitImportError in - return .generic - } - |> mapToSignal { result -> Signal in - switch result { - case let .inputFile(inputFile): - return account.postbox.transaction { transaction -> Api.InputPeer? in - return transaction.getPeer(peerId).flatMap(apiInputPeer) - } - |> castError(InitImportError.self) - |> mapToSignal { inputPeer -> Signal in - guard let inputPeer = inputPeer else { - return .fail(.generic) - } - return account.network.request(Api.functions.messages.initHistoryImport(peer: inputPeer, file: inputFile, mediaCount: mediaCount), automaticFloodWait: false) - |> mapError { error -> InitImportError in - if error.errorDescription == "CHAT_ADMIN_REQUIRED" { - return .chatAdminRequired - } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { - return .invalidChatType - } else if error.errorDescription == "USER_IS_BLOCKED" { - return .userBlocked - } else if error.errorDescription == "FLOOD_WAIT" { - return .limitExceeded - } else { - return .generic - } - } - |> map { result -> Session in - switch result { - case let .historyImport(id): - return Session(peerId: peerId, inputPeer: inputPeer, id: id) - } - } - } - case .progress: - return .complete() - case .inputSecretFile: - return .fail(.generic) - } - } - } - - public enum MediaType { - case photo - case file - case video - case sticker - case voice - } - - public enum UploadMediaError { - case generic - case chatAdminRequired - } - - public static func uploadMedia(account: Account, session: Session, file: TempBoxFile, disposeFileAfterDone: Bool, fileName: String, mimeType: String, type: MediaType) -> Signal { - var forceNoBigParts = true - guard let size = fileSize(file.path), size != 0 else { - return .single(1.0) - } - if size >= 30 * 1024 * 1024 { - forceNoBigParts = false - } - - return multipartUpload(network: account.network, postbox: account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: forceNoBigParts, useLargerParts: true, useMultiplexedRequests: true) - |> mapError { _ -> UploadMediaError in - return .generic - } - |> mapToSignal { result -> Signal in - let inputMedia: Api.InputMedia - switch result { - case let .inputFile(inputFile): - switch type { - case .photo: - inputMedia = .inputMediaUploadedPhoto(flags: 0, file: inputFile, stickers: nil, ttlSeconds: nil) - case .file, .video, .sticker, .voice: - var attributes: [Api.DocumentAttribute] = [] - attributes.append(.documentAttributeFilename(fileName: fileName)) - var resolvedMimeType = mimeType - switch type { - case .video: - resolvedMimeType = "video/mp4" - case .sticker: - resolvedMimeType = "image/webp" - case .voice: - resolvedMimeType = "audio/ogg" - default: - break - } - inputMedia = .inputMediaUploadedDocument(flags: 0, file: inputFile, thumb: nil, mimeType: resolvedMimeType, attributes: attributes, stickers: nil, ttlSeconds: nil) - } - case let .progress(value): - return .single(value) - case .inputSecretFile: - return .fail(.generic) - } - return account.network.request(Api.functions.messages.uploadImportedMedia(peer: session.inputPeer, importId: session.id, fileName: fileName, media: inputMedia)) - |> mapError { error -> UploadMediaError in - switch error.errorDescription { - case "CHAT_ADMIN_REQUIRED": - return .chatAdminRequired - default: - return .generic - } - } - |> mapToSignal { result -> Signal in - return .single(1.0) - } - |> afterDisposed { - if disposeFileAfterDone { - TempBox.shared.dispose(file) - } - } - } - } - - public enum StartImportError { - case generic - } - - public static func startImport(account: Account, session: Session) -> Signal { - return account.network.request(Api.functions.messages.startHistoryImport(peer: session.inputPeer, importId: session.id)) - |> mapError { _ -> StartImportError in - return .generic - } - |> mapToSignal { result -> Signal in - if case .boolTrue = result { - return .complete() - } else { - return .fail(.generic) - } - } - } - - public enum CheckPeerImportResult { - case allowed - case alert(String) - } - - public enum CheckPeerImportError { - case generic - case chatAdminRequired - case invalidChatType - case userBlocked - case limitExceeded - case notMutualContact - } - - public static func checkPeerImport(account: Account, peerId: PeerId) -> Signal { - return account.postbox.transaction { transaction -> Peer? in - return transaction.getPeer(peerId) - } - |> castError(CheckPeerImportError.self) - |> mapToSignal { peer -> Signal in - guard let peer = peer else { - return .fail(.generic) - } - guard let inputPeer = apiInputPeer(peer) else { - return .fail(.generic) - } - - return account.network.request(Api.functions.messages.checkHistoryImportPeer(peer: inputPeer)) - |> mapError { error -> CheckPeerImportError in - if error.errorDescription == "CHAT_ADMIN_REQUIRED" { - return .chatAdminRequired - } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { - return .invalidChatType - } else if error.errorDescription == "USER_IS_BLOCKED" { - return .userBlocked - } else if error.errorDescription == "USER_NOT_MUTUAL_CONTACT" { - return .notMutualContact - } else if error.errorDescription == "FLOOD_WAIT" { - return .limitExceeded - } else { - return .generic - } - } - |> map { result -> CheckPeerImportResult in - switch result { - case let .checkedHistoryImportPeer(confirmText): - if confirmText.isEmpty { - return .allowed - } else { - return .alert(confirmText) - } - } - } - } - } -} diff --git a/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift b/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift deleted file mode 100644 index 7cf05d8aa9..0000000000 --- a/submodules/TelegramCore/Sources/GlobalTelegramCoreConfiguration.swift +++ /dev/null @@ -1,5 +0,0 @@ -import Foundation - -public final class GlobalTelegramCoreConfiguration { - public static var readMessages: Bool = true -} diff --git a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift b/submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift similarity index 88% rename from submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift rename to submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift index 13906bc270..8dba9e3b3c 100644 --- a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift +++ b/submodules/TelegramCore/Sources/SecretChats/SetSecretChatMessageAutoremoveTimeoutInteractively.swift @@ -4,7 +4,7 @@ import SwiftSignalKit import SyncCore -public func setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, peerId: PeerId, timeout: Int32?) -> Signal { +func _internal_setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, peerId: PeerId, timeout: Int32?) -> Signal { return account.postbox.transaction { transaction -> Void in if let peer = transaction.getPeer(peerId) as? TelegramSecretChat, let state = transaction.getPeerChatState(peerId) as? SecretChatState { if state.messageAutoremoveTimeout != timeout { @@ -23,7 +23,7 @@ public func setSecretChatMessageAutoremoveTimeoutInteractively(account: Account, } } -public func addSecretChatMessageScreenshot(account: Account, peerId: PeerId) -> Signal { +func _internal_addSecretChatMessageScreenshot(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Void in if let _ = transaction.getPeer(peerId) as? TelegramSecretChat, let state = transaction.getPeerChatState(peerId) as? SecretChatState { switch state.embeddedState { diff --git a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift index 797ff9fbbc..81d3a22a45 100644 --- a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift @@ -1676,49 +1676,49 @@ private func resolveMissingPeerChatInfos(network: Network, state: AccountMutable } } -func keepPollingChannel(postbox: Postbox, network: Network, peerId: PeerId, stateManager: AccountStateManager) -> Signal { - let signal: Signal = postbox.transaction { transaction -> Signal in - if let accountState = (transaction.getState() as? AuthorizedAccountState)?.state, let peer = transaction.getPeer(peerId) { - var channelStates: [PeerId: AccountStateChannelState] = [:] - if let channelState = transaction.getPeerChatState(peerId) as? ChannelState { - channelStates[peerId] = AccountStateChannelState(pts: channelState.pts) - } - let initialPeers: [PeerId: Peer] = [peerId: peer] - var peerChatInfos: [PeerId: PeerChatInfo] = [:] - let inclusion = transaction.getPeerChatListInclusion(peerId) - var hasValidInclusion = false - switch inclusion { - case .ifHasMessagesOrOneOf: - hasValidInclusion = true - case .notIncluded: - hasValidInclusion = false - } - if hasValidInclusion { - if let notificationSettings = transaction.getPeerNotificationSettings(peerId) as? TelegramPeerNotificationSettings { - peerChatInfos[peerId] = PeerChatInfo(notificationSettings: notificationSettings) - } - } - let initialState = AccountMutableState(initialState: AccountInitialState(state: accountState, peerIds: Set(), peerIdsRequiringLocalChatState: Set(), channelStates: channelStates, peerChatInfos: peerChatInfos, locallyGeneratedMessageTimestamps: [:], cloudReadStates: [:], channelsToPollExplicitely: Set()), initialPeers: initialPeers, initialReferencedMessageIds: Set(), initialStoredMessages: Set(), initialReadInboxMaxIds: [:], storedMessagesByPeerIdAndTimestamp: [:]) - return pollChannel(network: network, peer: peer, state: initialState) - |> mapToSignal { (finalState, _, timeout) -> Signal in - return resolveAssociatedMessages(network: network, state: finalState) - |> mapToSignal { resultingState -> Signal in - return resolveMissingPeerChatInfos(network: network, state: resultingState) - |> map { resultingState, _ -> AccountFinalState in - return AccountFinalState(state: resultingState, shouldPoll: false, incomplete: false, missingUpdatesFromChannels: Set(), discard: false) - } - } - |> mapToSignal { finalState -> Signal in - return stateManager.addReplayAsynchronouslyBuiltFinalState(finalState) - |> mapToSignal { _ -> Signal in - return .complete() |> delay(Double(timeout ?? 30), queue: Queue.concurrentDefaultQueue()) - } - } - } - } else { +func keepPollingChannel(postbox: Postbox, network: Network, peerId: PeerId, stateManager: AccountStateManager) -> Signal { + let signal: Signal = postbox.transaction { transaction -> Signal in + guard let accountState = (transaction.getState() as? AuthorizedAccountState)?.state, let peer = transaction.getPeer(peerId) else { return .complete() |> delay(30.0, queue: Queue.concurrentDefaultQueue()) } + + var channelStates: [PeerId: AccountStateChannelState] = [:] + if let channelState = transaction.getPeerChatState(peerId) as? ChannelState { + channelStates[peerId] = AccountStateChannelState(pts: channelState.pts) + } + let initialPeers: [PeerId: Peer] = [peerId: peer] + var peerChatInfos: [PeerId: PeerChatInfo] = [:] + let inclusion = transaction.getPeerChatListInclusion(peerId) + var hasValidInclusion = false + switch inclusion { + case .ifHasMessagesOrOneOf: + hasValidInclusion = true + case .notIncluded: + hasValidInclusion = false + } + if hasValidInclusion { + if let notificationSettings = transaction.getPeerNotificationSettings(peerId) as? TelegramPeerNotificationSettings { + peerChatInfos[peerId] = PeerChatInfo(notificationSettings: notificationSettings) + } + } + let initialState = AccountMutableState(initialState: AccountInitialState(state: accountState, peerIds: Set(), peerIdsRequiringLocalChatState: Set(), channelStates: channelStates, peerChatInfos: peerChatInfos, locallyGeneratedMessageTimestamps: [:], cloudReadStates: [:], channelsToPollExplicitely: Set()), initialPeers: initialPeers, initialReferencedMessageIds: Set(), initialStoredMessages: Set(), initialReadInboxMaxIds: [:], storedMessagesByPeerIdAndTimestamp: [:]) + return pollChannel(network: network, peer: peer, state: initialState) + |> mapToSignal { (finalState, _, timeout) -> Signal in + return resolveAssociatedMessages(network: network, state: finalState) + |> mapToSignal { resultingState -> Signal in + return resolveMissingPeerChatInfos(network: network, state: resultingState) + |> map { resultingState, _ -> AccountFinalState in + return AccountFinalState(state: resultingState, shouldPoll: false, incomplete: false, missingUpdatesFromChannels: Set(), discard: false) + } + } + |> mapToSignal { finalState -> Signal in + return stateManager.addReplayAsynchronouslyBuiltFinalState(finalState) + |> mapToSignal { _ -> Signal in + return .single(timeout ?? 30) |> then(.complete() |> delay(Double(timeout ?? 30), queue: Queue.concurrentDefaultQueue())) + } + } + } } |> switchToLatest |> restart diff --git a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift index dc71548147..93b2960fcf 100644 --- a/submodules/TelegramCore/Sources/State/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/State/AccountViewTracker.swift @@ -224,9 +224,21 @@ private final class CachedChannelParticipantsContext { private final class ChannelPollingContext { var subscribers = Bag() let disposable = MetaDisposable() + let isUpdated = Promise(false) + + private(set) var isUpdatedValue: Bool = false + private var isUpdatedDisposable: Disposable? + + init(queue: Queue) { + self.isUpdatedDisposable = (self.isUpdated.get() + |> deliverOn(queue)).start(next: { [weak self] value in + self?.isUpdatedValue = value + }) + } deinit { self.disposable.dispose() + self.isUpdatedDisposable?.dispose() } } @@ -1302,13 +1314,27 @@ public final class AccountViewTracker { if let current = self.channelPollingContexts[peerId] { context = current } else { - context = ChannelPollingContext() + context = ChannelPollingContext(queue: self.queue) self.channelPollingContexts[peerId] = context } if context.subscribers.isEmpty { if let account = self.account { - context.disposable.set(keepPollingChannel(postbox: account.postbox, network: account.network, peerId: peerId, stateManager: account.stateManager).start()) + let queue = self.queue + context.disposable.set(keepPollingChannel(postbox: account.postbox, network: account.network, peerId: peerId, stateManager: account.stateManager).start(next: { [weak context] isValidForTimeout in + queue.async { + guard let context = context else { + return + } + context.isUpdated.set( + .single(true) + |> then( + .single(false) + |> delay(Double(isValidForTimeout), queue: queue) + ) + ) + } + })) } } @@ -1378,34 +1404,68 @@ public final class AccountViewTracker { peerId = peerIdValue } if peerId.namespace == Namespaces.Peer.CloudChannel { - return Signal { subscriber in + return Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { subscriber in let combinedDisposable = MetaDisposable() self.queue.async { + let polled = self.polledChannel(peerId: peerId).start() + var addHole = false + let pollingCompleted: Signal if let context = self.channelPollingContexts[peerId] { - if context.subscribers.isEmpty { + if !context.isUpdatedValue { addHole = true } + pollingCompleted = context.isUpdated.get() } else { addHole = true + pollingCompleted = .single(true) } - if addHole { - let _ = self.account?.postbox.transaction({ transaction -> Void in - if transaction.getPeerChatListIndex(peerId) == nil { - if let message = transaction.getTopPeerMessageId(peerId: peerId, namespace: Namespaces.Message.Cloud) { - //transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: message.id + 1 ... (Int32.max - 1)) - } + let isAutomaticallyTracked = self.account!.postbox.transaction { transaction -> Bool in + if transaction.getPeerChatListIndex(peerId) == nil { + if addHole { + transaction.addHole(peerId: peerId, namespace: Namespaces.Message.Cloud, space: .everywhere, range: 1 ... (Int32.max - 1)) } - }).start() + return false + } else { + return true + } } - let disposable = history.start(next: { next in + + let historyIsValid = combineLatest(queue: self.queue, + pollingCompleted, + isAutomaticallyTracked + ) + |> map { lhs, rhs -> Bool in + return lhs || rhs + } + + var loaded = false + let validHistory = historyIsValid + |> distinctUntilChanged + |> take(until: { next in + if next { + return SignalTakeAction(passthrough: true, complete: true) + } else { + return SignalTakeAction(passthrough: true, complete: false) + } + }) + |> mapToSignal { isValid -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> in + if isValid { + assert(!loaded) + loaded = true + return history + } else { + let view = MessageHistoryView(tagMask: nil, namespaces: .all, entries: [], holeEarlier: true, holeLater: true, isLoading: true) + return .single((view, .Initial, nil)) + } + } + + let disposable = validHistory.start(next: { next in subscriber.putNext(next) - }, error: { error in - subscriber.putError(error) }, completed: { subscriber.putCompletion() }) - let polled = self.polledChannel(peerId: peerId).start() + combinedDisposable.set(ActionDisposable { disposable.dispose() polled.dispose() diff --git a/submodules/TelegramCore/Sources/State/CallSessionManager.swift b/submodules/TelegramCore/Sources/State/CallSessionManager.swift index b25a00c884..f2dcbe1adf 100644 --- a/submodules/TelegramCore/Sources/State/CallSessionManager.swift +++ b/submodules/TelegramCore/Sources/State/CallSessionManager.swift @@ -563,7 +563,7 @@ private final class CallSessionManagerContext { |> timeout(5.0, queue: strongSelf.queue, alternate: .single(nil)) |> deliverOnMainQueue).start(next: { debugLog in if let debugLog = debugLog { - let _ = saveCallDebugLog(network: network, callId: CallId(id: id, accessHash: accessHash), log: debugLog).start() + _internal_saveCallDebugLog(network: network, callId: CallId(id: id, accessHash: accessHash), log: debugLog).start() } }) } diff --git a/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift b/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift index 6d745cb599..46d81f30be 100644 --- a/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift +++ b/submodules/TelegramCore/Sources/State/SynchronizePeerReadState.swift @@ -206,10 +206,6 @@ private func validatePeerReadState(network: Network, postbox: Postbox, stateMana } private func pushPeerReadState(network: Network, postbox: Postbox, stateManager: AccountStateManager, peerId: PeerId, readState: PeerReadState) -> Signal { - if !GlobalTelegramCoreConfiguration.readMessages { - return .single(readState) - } - if peerId.namespace == Namespaces.Peer.SecretChat { return inputSecretChat(postbox: postbox, peerId: peerId) |> mapToSignal { inputPeer -> Signal in diff --git a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift similarity index 80% rename from submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift index dcc5c4433f..240ae7f8a0 100644 --- a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/ConfirmTwoStepRecoveryEmail.swift @@ -12,7 +12,7 @@ public enum ConfirmTwoStepRecoveryEmailError { case generic } -public func confirmTwoStepRecoveryEmail(network: Network, code: String) -> Signal { +func _internal_confirmTwoStepRecoveryEmail(network: Network, code: String) -> Signal { return network.request(Api.functions.account.confirmPasswordEmail(code: code), automaticFloodWait: false) |> mapError { error -> ConfirmTwoStepRecoveryEmailError in if error.errorDescription == "EMAIL_INVALID" { @@ -34,7 +34,7 @@ public enum ResendTwoStepRecoveryEmailError { case generic } -public func resendTwoStepRecoveryEmail(network: Network) -> Signal { +func _internal_resendTwoStepRecoveryEmail(network: Network) -> Signal { return network.request(Api.functions.account.resendPasswordEmail(), automaticFloodWait: false) |> mapError { error -> ResendTwoStepRecoveryEmailError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { @@ -49,7 +49,7 @@ public enum CancelTwoStepRecoveryEmailError { case generic } -public func cancelTwoStepRecoveryEmail(network: Network) -> Signal { +func _internal_cancelTwoStepRecoveryEmail(network: Network) -> Signal { return network.request(Api.functions.account.cancelPasswordEmail(), automaticFloodWait: false) |> mapError { _ -> CancelTwoStepRecoveryEmailError in return .generic diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift index d9dbf133d0..a23fcd2d02 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TelegramEngineAuth.swift @@ -1,6 +1,8 @@ import SwiftSignalKit import Postbox import TelegramApi +import MtProtoKit +import SyncCore public extension TelegramEngineUnauthorized { final class Auth { @@ -13,6 +15,22 @@ public extension TelegramEngineUnauthorized { public func exportAuthTransferToken(accountManager: AccountManager, otherAccountUserIds: [PeerId.Id], syncContacts: Bool) -> Signal { return _internal_exportAuthTransferToken(accountManager: accountManager, account: self.account, otherAccountUserIds: otherAccountUserIds, syncContacts: syncContacts) } + + public func twoStepAuthData() -> Signal { + return _internal_twoStepAuthData(self.account.network) + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_updateTwoStepVerificationPassword(network: self.account.network, currentPassword: currentPassword, updatedPassword: updatedPassword) + } + + public func performPasswordRecovery(accountManager: AccountManager, code: String, syncContacts: Bool, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_performPasswordRecovery(accountManager: accountManager, account: self.account, code: code, syncContacts: syncContacts, updatedPassword: updatedPassword) + } + + public func resendTwoStepRecoveryEmail() -> Signal { + return _internal_resendTwoStepRecoveryEmail(network: self.account.network) + } } } @@ -21,19 +39,120 @@ public enum DeleteAccountError { } public extension TelegramEngine { - final class Auth { - private let account: Account + final class Auth { + private let account: Account - init(account: Account) { - self.account = account - } + init(account: Account) { + self.account = account + } - public func deleteAccount() -> Signal { - return self.account.network.request(Api.functions.account.deleteAccount(reason: "GDPR")) - |> mapError { _ -> DeleteAccountError in - return .generic - } - |> ignoreValues - } - } + public func twoStepAuthData() -> Signal { + return _internal_twoStepAuthData(self.account.network) + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_updateTwoStepVerificationPassword(network: self.account.network, currentPassword: currentPassword, updatedPassword: updatedPassword) + } + + public func deleteAccount() -> Signal { + return self.account.network.request(Api.functions.account.deleteAccount(reason: "GDPR")) + |> mapError { _ -> DeleteAccountError in + return .generic + } + |> ignoreValues + } + + public func updateTwoStepVerificationEmail(currentPassword: String, updatedEmail: String) -> Signal { + return _internal_updateTwoStepVerificationEmail(network: self.account.network, currentPassword: currentPassword, updatedEmail: updatedEmail) + } + + public func confirmTwoStepRecoveryEmail(code: String) -> Signal { + return _internal_confirmTwoStepRecoveryEmail(network: self.account.network, code: code) + } + + public func resendTwoStepRecoveryEmail() -> Signal { + return _internal_resendTwoStepRecoveryEmail(network: self.account.network) + } + + public func cancelTwoStepRecoveryEmail() -> Signal { + return _internal_cancelTwoStepRecoveryEmail(network: self.account.network) + } + + public func twoStepVerificationConfiguration() -> Signal { + return _internal_twoStepVerificationConfiguration(account: self.account) + } + + public func requestTwoStepVerifiationSettings(password: String) -> Signal { + return _internal_requestTwoStepVerifiationSettings(network: self.account.network, password: password) + } + + public func requestTwoStepVerificationPasswordRecoveryCode() -> Signal { + return _internal_requestTwoStepVerificationPasswordRecoveryCode(network: self.account.network) + } + + public func recoverTwoStepVerificationPassword(code: String) -> Signal { + return _internal_recoverTwoStepVerificationPassword(network: self.account.network, code: code) + } + + public func cachedTwoStepPasswordToken() -> Signal { + return _internal_cachedTwoStepPasswordToken(postbox: self.account.postbox) + } + + public func cacheTwoStepPasswordToken(token: TemporaryTwoStepPasswordToken?) -> Signal { + return _internal_cacheTwoStepPasswordToken(postbox: self.account.postbox, token: token) + } + + public func requestTemporaryTwoStepPasswordToken(password: String, period: Int32, requiresBiometrics: Bool) -> Signal { + return _internal_requestTemporaryTwoStepPasswordToken(account: self.account, password: password, period: period, requiresBiometrics: requiresBiometrics) + } + + public func requestTwoStepPasswordReset() -> Signal { + return _internal_requestTwoStepPasswordReset(network: self.account.network) + } + + public func declineTwoStepPasswordReset() -> Signal { + return _internal_declineTwoStepPasswordReset(network: self.account.network) + } + } +} + +public extension SomeTelegramEngine { + final class Auth { + private let engine: SomeTelegramEngine + + init(engine: SomeTelegramEngine) { + self.engine = engine + } + + public func twoStepAuthData() -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.twoStepAuthData() + case let .unauthorized(engine): + return engine.auth.twoStepAuthData() + } + } + + public func updateTwoStepVerificationPassword(currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: updatedPassword) + case let .unauthorized(engine): + return engine.auth.updateTwoStepVerificationPassword(currentPassword: currentPassword, updatedPassword: updatedPassword) + } + } + + public func resendTwoStepRecoveryEmail() -> Signal { + switch self.engine { + case let .authorized(engine): + return engine.auth.resendTwoStepRecoveryEmail() + case let .unauthorized(engine): + return engine.auth.resendTwoStepRecoveryEmail() + } + } + } + + var auth: Auth { + return Auth(engine: self) + } } diff --git a/submodules/TelegramCore/Sources/TwoStepVerification.swift b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift similarity index 90% rename from submodules/TelegramCore/Sources/TwoStepVerification.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift index a07b04932c..e48acb914b 100644 --- a/submodules/TelegramCore/Sources/TwoStepVerification.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Auth/TwoStepVerification.swift @@ -11,14 +11,14 @@ public enum TwoStepVerificationConfiguration { case set(hint: String, hasRecoveryEmail: Bool, pendingEmail: TwoStepVerificationPendingEmail?, hasSecureValues: Bool, pendingResetTimestamp: Int32?) } -public func twoStepVerificationConfiguration(account: Account) -> Signal { +func _internal_twoStepVerificationConfiguration(account: Account) -> Signal { return account.network.request(Api.functions.account.getPassword()) |> retryRequest |> map { result -> TwoStepVerificationConfiguration in switch result { case let .password(password): if password.currentAlgo != nil { - return .set(hint: password.hint ?? "", hasRecoveryEmail: (password.flags & (1 << 0)) != 0, pendingEmail: password.emailUnconfirmedPattern.flatMap({ TwoStepVerificationPendingEmail(pattern: $0, codeLength: nil) }), hasSecureValues: (password.flags & (1 << 1)) != 0, pendingResetTimestamp: nil/*password.pendingResetDate*/) + return .set(hint: password.hint ?? "", hasRecoveryEmail: (password.flags & (1 << 0)) != 0, pendingEmail: password.emailUnconfirmedPattern.flatMap({ TwoStepVerificationPendingEmail(pattern: $0, codeLength: nil) }), hasSecureValues: (password.flags & (1 << 1)) != 0, pendingResetTimestamp: password.pendingResetDate) } else { return .notSet(pendingEmail: password.emailUnconfirmedPattern.flatMap({ TwoStepVerificationPendingEmail(pattern: $0, codeLength: nil) })) } @@ -37,8 +37,8 @@ public struct TwoStepVerificationSettings { public let secureSecret: TwoStepVerificationSecureSecret? } -public func requestTwoStepVerifiationSettings(network: Network, password: String) -> Signal { - return twoStepAuthData(network) +func _internal_requestTwoStepVerifiationSettings(network: Network, password: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { error -> AuthorizationPasswordVerificationError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded @@ -111,14 +111,14 @@ public enum UpdatedTwoStepVerificationPassword { case password(password: String, hint: String, email: String?) } -public func updateTwoStepVerificationPassword(network: Network, currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { - return twoStepAuthData(network) +func _internal_updateTwoStepVerificationPassword(network: Network, currentPassword: String?, updatedPassword: UpdatedTwoStepVerificationPassword) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } |> mapToSignal { authData -> Signal in if let _ = authData.currentPasswordDerivation { - return requestTwoStepVerifiationSettings(network: network, password: currentPassword ?? "") + return _internal_requestTwoStepVerifiationSettings(network: network, password: currentPassword ?? "") |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -130,7 +130,7 @@ public func updateTwoStepVerificationPassword(network: Network, currentPassword: } } |> mapToSignal { secureSecret -> Signal<(TwoStepAuthData, TwoStepVerificationSecureSecret?), UpdateTwoStepVerificationPasswordError> in - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -205,7 +205,7 @@ public func updateTwoStepVerificationPassword(network: Network, currentPassword: codeLength = value } } - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> map { result -> UpdateTwoStepVerificationPasswordResult in return .password(password: password, pendingEmail: result.unconfirmedEmailPattern.flatMap({ TwoStepVerificationPendingEmail(pattern: $0, codeLength: codeLength) })) } @@ -233,7 +233,7 @@ enum UpdateTwoStepVerificationSecureSecretError { } func updateTwoStepVerificationSecureSecret(network: Network, password: String, secret: Data) -> Signal { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationSecureSecretError in return .generic } @@ -263,8 +263,8 @@ func updateTwoStepVerificationSecureSecret(network: Network, password: String, s } } -public func updateTwoStepVerificationEmail(network: Network, currentPassword: String, updatedEmail: String) -> Signal { - return twoStepAuthData(network) +func _internal_updateTwoStepVerificationEmail(network: Network, currentPassword: String, updatedEmail: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> UpdateTwoStepVerificationPasswordError in return .generic } @@ -286,7 +286,7 @@ public func updateTwoStepVerificationEmail(network: Network, currentPassword: St } |> `catch` { error -> Signal in if error.errorDescription.hasPrefix("EMAIL_UNCONFIRMED") { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> map { result -> UpdateTwoStepVerificationPasswordResult in var codeLength: Int32? if error.errorDescription.hasPrefix("EMAIL_UNCONFIRMED_") { @@ -314,7 +314,7 @@ public enum RequestTwoStepVerificationPasswordRecoveryCodeError { case generic } -public func requestTwoStepVerificationPasswordRecoveryCode(network: Network) -> Signal { +func _internal_requestTwoStepVerificationPasswordRecoveryCode(network: Network) -> Signal { return network.request(Api.functions.auth.requestPasswordRecovery(), automaticFloodWait: false) |> mapError { _ -> RequestTwoStepVerificationPasswordRecoveryCodeError in return .generic @@ -334,8 +334,8 @@ public enum RecoverTwoStepVerificationPasswordError { case invalidCode } -public func recoverTwoStepVerificationPassword(network: Network, code: String) -> Signal { - return twoStepAuthData(network) +func _internal_recoverTwoStepVerificationPassword(network: Network, code: String) -> Signal { + return _internal_twoStepAuthData(network) |> mapError { _ -> RecoverTwoStepVerificationPasswordError in return .generic } @@ -363,7 +363,7 @@ public func recoverTwoStepVerificationPassword(network: Network, code: String) - } } -public func cachedTwoStepPasswordToken(postbox: Postbox) -> Signal { +func _internal_cachedTwoStepPasswordToken(postbox: Postbox) -> Signal { return postbox.transaction { transaction -> TemporaryTwoStepPasswordToken? in let key = ValueBoxKey(length: 1) key.setUInt8(0, value: 0) @@ -371,7 +371,7 @@ public func cachedTwoStepPasswordToken(postbox: Postbox) -> Signal Signal { +func _internal_cacheTwoStepPasswordToken(postbox: Postbox, token: TemporaryTwoStepPasswordToken?) -> Signal { return postbox.transaction { transaction -> Void in let key = ValueBoxKey(length: 1) key.setUInt8(0, value: 0) @@ -383,8 +383,8 @@ public func cacheTwoStepPasswordToken(postbox: Postbox, token: TemporaryTwoStepP } } -public func requestTemporaryTwoStepPasswordToken(account: Account, password: String, period: Int32, requiresBiometrics: Bool) -> Signal { - return twoStepAuthData(account.network) +func _internal_requestTemporaryTwoStepPasswordToken(account: Account, password: String, period: Int32, requiresBiometrics: Bool) -> Signal { + return _internal_twoStepAuthData(account.network) |> mapToSignal { authData -> Signal in guard let currentPasswordDerivation = authData.currentPasswordDerivation, let srpSessionData = authData.srpSessionData else { return .fail(MTRpcError(errorCode: 400, errorDescription: "NO_PASSWORD")) @@ -426,7 +426,7 @@ public enum RequestTwoStepPasswordResetResult { case error(reason: ErrorReason) } -/*public func requestTwoStepPasswordReset(network: Network) -> Signal { +func _internal_requestTwoStepPasswordReset(network: Network) -> Signal { return network.request(Api.functions.account.resetPassword(), automaticFloodWait: false) |> map { _ -> RequestTwoStepPasswordResetResult in return .done @@ -456,10 +456,10 @@ public enum RequestTwoStepPasswordResetResult { } } -public func declineTwoStepPasswordReset(network: Network) -> Signal { +func _internal_declineTwoStepPasswordReset(network: Network) -> Signal { return network.request(Api.functions.account.declinePasswordReset()) |> `catch` { _ -> Signal in return .single(.boolFalse) } |> ignoreValues -}*/ +} diff --git a/submodules/TelegramCore/Sources/RateCall.swift b/submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift similarity index 75% rename from submodules/TelegramCore/Sources/RateCall.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift index bac6cd7258..7a8ed6ebee 100644 --- a/submodules/TelegramCore/Sources/RateCall.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Calls/RateCall.swift @@ -4,7 +4,7 @@ import MtProtoKit import SwiftSignalKit import TelegramApi -public func rateCall(account: Account, callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { +func _internal_rateCall(account: Account, callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { var flags: Int32 = 0 if userInitiated { flags |= (1 << 0) @@ -14,7 +14,7 @@ public func rateCall(account: Account, callId: CallId, starsCount: Int32, commen |> map { _ in } } -public func saveCallDebugLog(network: Network, callId: CallId, log: String) -> Signal { +func _internal_saveCallDebugLog(network: Network, callId: CallId, log: String) -> Signal { if log.count > 1024 * 16 { return .complete() } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift b/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift new file mode 100644 index 0000000000..8f2dd214df --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Calls/TelegramEngineCalls.swift @@ -0,0 +1,19 @@ +import SwiftSignalKit + +public extension TelegramEngine { + final class Calls { + private let account: Account + + init(account: Account) { + self.account = account + } + + public func rateCall(callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { + return _internal_rateCall(account: self.account, callId: callId, starsCount: starsCount, comment: comment, userInitiated: userInitiated) + } + + public func saveCallDebugLog(callId: CallId, log: String) -> Signal { + return _internal_saveCallDebugLog(network: self.account.network, callId: callId, log: log) + } + } +} diff --git a/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift b/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift new file mode 100644 index 0000000000..309c0673a0 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/HistoryImport/TelegramEngineHistoryImport.swift @@ -0,0 +1,255 @@ +import Foundation +import SwiftSignalKit +import Postbox +import SyncCore +import TelegramApi + +public extension TelegramEngine { + final class HistoryImport { + private let account: Account + + init(account: Account) { + self.account = account + } + + public struct Session { + fileprivate var peerId: PeerId + fileprivate var inputPeer: Api.InputPeer + fileprivate var id: Int64 + } + + public enum InitImportError { + case generic + case chatAdminRequired + case invalidChatType + case userBlocked + case limitExceeded + } + + public enum ParsedInfo { + case privateChat(title: String?) + case group(title: String?) + case unknown(title: String?) + } + + public enum GetInfoError { + case generic + case parseError + } + + public func getInfo(header: String) -> Signal { + return self.account.network.request(Api.functions.messages.checkHistoryImport(importHead: header)) + |> mapError { _ -> GetInfoError in + return .generic + } + |> mapToSignal { result -> Signal in + switch result { + case let .historyImportParsed(flags, title): + if (flags & (1 << 0)) != 0 { + return .single(.privateChat(title: title)) + } else if (flags & (1 << 1)) != 0 { + return .single(.group(title: title)) + } else { + return .single(.unknown(title: title)) + } + } + } + } + + public func initSession(peerId: PeerId, file: TempBoxFile, mediaCount: Int32) -> Signal { + let account = self.account + return multipartUpload(network: self.account.network, postbox: self.account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: true, useLargerParts: true, increaseParallelParts: true, useMultiplexedRequests: false, useCompression: true) + |> mapError { _ -> InitImportError in + return .generic + } + |> mapToSignal { result -> Signal in + switch result { + case let .inputFile(inputFile): + return account.postbox.transaction { transaction -> Api.InputPeer? in + return transaction.getPeer(peerId).flatMap(apiInputPeer) + } + |> castError(InitImportError.self) + |> mapToSignal { inputPeer -> Signal in + guard let inputPeer = inputPeer else { + return .fail(.generic) + } + return account.network.request(Api.functions.messages.initHistoryImport(peer: inputPeer, file: inputFile, mediaCount: mediaCount), automaticFloodWait: false) + |> mapError { error -> InitImportError in + if error.errorDescription == "CHAT_ADMIN_REQUIRED" { + return .chatAdminRequired + } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { + return .invalidChatType + } else if error.errorDescription == "USER_IS_BLOCKED" { + return .userBlocked + } else if error.errorDescription == "FLOOD_WAIT" { + return .limitExceeded + } else { + return .generic + } + } + |> map { result -> Session in + switch result { + case let .historyImport(id): + return Session(peerId: peerId, inputPeer: inputPeer, id: id) + } + } + } + case .progress: + return .complete() + case .inputSecretFile: + return .fail(.generic) + } + } + } + + public enum MediaType { + case photo + case file + case video + case sticker + case voice + } + + public enum UploadMediaError { + case generic + case chatAdminRequired + } + + public func uploadMedia(session: Session, file: TempBoxFile, disposeFileAfterDone: Bool, fileName: String, mimeType: String, type: MediaType) -> Signal { + var forceNoBigParts = true + guard let size = fileSize(file.path), size != 0 else { + return .single(1.0) + } + if size >= 30 * 1024 * 1024 { + forceNoBigParts = false + } + + let account = self.account + return multipartUpload(network: self.account.network, postbox: self.account.postbox, source: .tempFile(file), encrypt: false, tag: nil, hintFileSize: nil, hintFileIsLarge: false, forceNoBigParts: forceNoBigParts, useLargerParts: true, useMultiplexedRequests: true) + |> mapError { _ -> UploadMediaError in + return .generic + } + |> mapToSignal { result -> Signal in + let inputMedia: Api.InputMedia + switch result { + case let .inputFile(inputFile): + switch type { + case .photo: + inputMedia = .inputMediaUploadedPhoto(flags: 0, file: inputFile, stickers: nil, ttlSeconds: nil) + case .file, .video, .sticker, .voice: + var attributes: [Api.DocumentAttribute] = [] + attributes.append(.documentAttributeFilename(fileName: fileName)) + var resolvedMimeType = mimeType + switch type { + case .video: + resolvedMimeType = "video/mp4" + case .sticker: + resolvedMimeType = "image/webp" + case .voice: + resolvedMimeType = "audio/ogg" + default: + break + } + inputMedia = .inputMediaUploadedDocument(flags: 0, file: inputFile, thumb: nil, mimeType: resolvedMimeType, attributes: attributes, stickers: nil, ttlSeconds: nil) + } + case let .progress(value): + return .single(value) + case .inputSecretFile: + return .fail(.generic) + } + return account.network.request(Api.functions.messages.uploadImportedMedia(peer: session.inputPeer, importId: session.id, fileName: fileName, media: inputMedia)) + |> mapError { error -> UploadMediaError in + switch error.errorDescription { + case "CHAT_ADMIN_REQUIRED": + return .chatAdminRequired + default: + return .generic + } + } + |> mapToSignal { result -> Signal in + return .single(1.0) + } + |> afterDisposed { + if disposeFileAfterDone { + TempBox.shared.dispose(file) + } + } + } + } + + public enum StartImportError { + case generic + } + + public func startImport(session: Session) -> Signal { + return self.account.network.request(Api.functions.messages.startHistoryImport(peer: session.inputPeer, importId: session.id)) + |> mapError { _ -> StartImportError in + return .generic + } + |> mapToSignal { result -> Signal in + if case .boolTrue = result { + return .complete() + } else { + return .fail(.generic) + } + } + } + + public enum CheckPeerImportResult { + case allowed + case alert(String) + } + + public enum CheckPeerImportError { + case generic + case chatAdminRequired + case invalidChatType + case userBlocked + case limitExceeded + case notMutualContact + } + + public func checkPeerImport(peerId: PeerId) -> Signal { + let account = self.account + return self.account.postbox.transaction { transaction -> Peer? in + return transaction.getPeer(peerId) + } + |> castError(CheckPeerImportError.self) + |> mapToSignal { peer -> Signal in + guard let peer = peer else { + return .fail(.generic) + } + guard let inputPeer = apiInputPeer(peer) else { + return .fail(.generic) + } + + return account.network.request(Api.functions.messages.checkHistoryImportPeer(peer: inputPeer)) + |> mapError { error -> CheckPeerImportError in + if error.errorDescription == "CHAT_ADMIN_REQUIRED" { + return .chatAdminRequired + } else if error.errorDescription == "IMPORT_PEER_TYPE_INVALID" { + return .invalidChatType + } else if error.errorDescription == "USER_IS_BLOCKED" { + return .userBlocked + } else if error.errorDescription == "USER_NOT_MUTUAL_CONTACT" { + return .notMutualContact + } else if error.errorDescription == "FLOOD_WAIT" { + return .limitExceeded + } else { + return .generic + } + } + |> map { result -> CheckPeerImportResult in + switch result { + case let .checkedHistoryImportPeer(confirmText): + if confirmText.isEmpty { + return .allowed + } else { + return .alert(confirmText) + } + } + } + } + } + } +} diff --git a/submodules/TelegramCore/Sources/ForwardGame.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift similarity index 89% rename from submodules/TelegramCore/Sources/ForwardGame.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift index f41b02e57b..7a592178fa 100644 --- a/submodules/TelegramCore/Sources/ForwardGame.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/ForwardGame.swift @@ -3,7 +3,7 @@ import Postbox import TelegramApi import SwiftSignalKit -public func forwardGameWithScore(account: Account, messageId: MessageId, to peerId: PeerId) -> Signal { +func _internal_forwardGameWithScore(account: Account, messageId: MessageId, to peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in if let _ = transaction.getMessage(messageId), let fromPeer = transaction.getPeer(messageId.peerId), let fromInputPeer = apiInputPeer(fromPeer), let toPeer = transaction.getPeer(peerId), let toInputPeer = apiInputPeer(toPeer) { return account.network.request(Api.functions.messages.forwardMessages(flags: 1 << 8, fromPeer: fromInputPeer, id: [messageId.id], randomId: [Int64.random(in: Int64.min ... Int64.max)], toPeer: toInputPeer, scheduleDate: nil)) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift index 614c827368..6bfa85422f 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/RequestMessageActionCallback.swift @@ -92,7 +92,7 @@ func _internal_requestMessageActionCallback(account: Account, messageId: Message if let password = password, !password.isEmpty { flags |= Int32(1 << 2) - checkPassword = twoStepAuthData(account.network) + checkPassword = _internal_twoStepAuthData(account.network) |> mapError { error -> MessageActionCallbackError in if error.errorDescription.hasPrefix("FLOOD_WAIT") { return .limitExceeded diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift index df12d4c2db..46a4e7a7d6 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift @@ -85,5 +85,14 @@ public extension TelegramEngine { public func requestEditLiveLocation(messageId: MessageId, stop: Bool, coordinate: (latitude: Double, longitude: Double, accuracyRadius: Int32?)?, heading: Int32?, proximityNotificationRadius: Int32?) -> Signal { return _internal_requestEditLiveLocation(postbox: self.account.postbox, network: self.account.network, stateManager: self.account.stateManager, messageId: messageId, stop: stop, coordinate: coordinate, heading: heading, proximityNotificationRadius: proximityNotificationRadius) } + + public func addSecretChatMessageScreenshot(peerId: PeerId) -> Signal { + return _internal_addSecretChatMessageScreenshot(account: self.account, peerId: peerId) + |> ignoreValues + } + + public func forwardGameWithScore(messageId: MessageId, to peerId: PeerId) -> Signal { + return _internal_forwardGameWithScore(account: self.account, messageId: messageId, to: peerId) + } } } diff --git a/submodules/TelegramCore/Sources/GroupsInCommon.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift similarity index 79% rename from submodules/TelegramCore/Sources/GroupsInCommon.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift index 91dce5ae96..e7734d21d2 100644 --- a/submodules/TelegramCore/Sources/GroupsInCommon.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/GroupsInCommon.swift @@ -154,36 +154,3 @@ public final class GroupsInCommonContext { } } } - -public func groupsInCommon(account: Account, peerId: PeerId) -> Signal<[Peer], NoError> { - return account.postbox.transaction { transaction -> Signal<[Peer], NoError> in - if let peer = transaction.getPeer(peerId), let inputUser = apiInputUser(peer) { - return account.network.request(Api.functions.messages.getCommonChats(userId: inputUser, maxId: 0, limit: 100)) - |> retryRequest - |> mapToSignal { result -> Signal<[Peer], NoError> in - let chats: [Api.Chat] - switch result { - case let .chats(chats: apiChats): - chats = apiChats - case let .chatsSlice(count: _, chats: apiChats): - chats = apiChats - } - - return account.postbox.transaction { transaction -> [Peer] in - var peers: [Peer] = [] - for chat in chats { - if let peer = parseTelegramGroupOrChannel(chat: chat) { - peers.append(peer) - } - } - updatePeers(transaction: transaction, peers: peers, update: { _, updated -> Peer? in - return updated - }) - return peers - } - } - } else { - return .single([]) - } - } |> switchToLatest -} diff --git a/submodules/TelegramCore/Sources/ReportPeer.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift similarity index 93% rename from submodules/TelegramCore/Sources/ReportPeer.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift index bc413ebf30..d58975a13f 100644 --- a/submodules/TelegramCore/Sources/ReportPeer.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/ReportPeer.swift @@ -6,7 +6,7 @@ import MtProtoKit import SyncCore -public func reportPeer(account: Account, peerId: PeerId) -> Signal { +func _internal_reportPeer(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId) { if let peer = peer as? TelegramSecretChat { @@ -110,7 +110,7 @@ private extension ReportReason { } } -public func reportPeer(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { +func _internal_reportPeer(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { return account.network.request(Api.functions.account.reportPeer(peer: inputPeer, reason: reason.apiReason, message: message)) @@ -126,7 +126,7 @@ public func reportPeer(account: Account, peerId: PeerId, reason: ReportReason, m } |> switchToLatest } -public func reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { +func _internal_reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { return account.network.request(Api.functions.account.reportProfilePhoto(peer: inputPeer, photoId: .inputPhotoEmpty, reason: reason.apiReason, message: message)) @@ -142,7 +142,7 @@ public func reportPeerPhoto(account: Account, peerId: PeerId, reason: ReportReas } |> switchToLatest } -public func reportPeerMessages(account: Account, messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { +func _internal_reportPeerMessages(account: Account, messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { return account.postbox.transaction { transaction -> Signal in let groupedIds = messagesIdsGroupedByPeerId(messageIds) let signals = groupedIds.values.compactMap { ids -> Signal? in @@ -165,7 +165,7 @@ public func reportPeerMessages(account: Account, messageIds: [MessageId], reason } |> switchToLatest } -public func dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal { +func _internal_dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in if let current = current as? CachedUserData { @@ -203,7 +203,7 @@ public func dismissPeerStatusOptions(account: Account, peerId: PeerId) -> Signal } |> switchToLatest } -public func reportRepliesMessage(account: Account, messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { +func _internal_reportRepliesMessage(account: Account, messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { if messageId.namespace != Namespaces.Message.Cloud { return .complete() } diff --git a/submodules/TelegramCore/Sources/SlowMode.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift similarity index 86% rename from submodules/TelegramCore/Sources/SlowMode.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift index 7134b47d08..a2f3ee94f0 100644 --- a/submodules/TelegramCore/Sources/SlowMode.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/SlowMode.swift @@ -9,7 +9,7 @@ public enum UpdateChannelSlowModeError { case tooManyChannels } -public func updateChannelSlowModeInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, timeout: Int32?) -> Signal { +func _internal_updateChannelSlowModeInteractively(postbox: Postbox, network: Network, accountStateManager: AccountStateManager, peerId: PeerId, timeout: Int32?) -> Signal { return postbox.transaction { transaction -> Peer? in return transaction.getPeer(peerId) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift index dcd213e42c..1fa3a9f0dc 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/TelegramEnginePeers.swift @@ -92,7 +92,41 @@ public extension TelegramEngine { } public func setChatMessageAutoremoveTimeoutInteractively(peerId: PeerId, timeout: Int32?) -> Signal { - return _internal_setChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + if peerId.namespace == Namespaces.Peer.SecretChat { + return _internal_setSecretChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + |> ignoreValues + |> castError(SetChatMessageAutoremoveTimeoutError.self) + } else { + return _internal_setChatMessageAutoremoveTimeoutInteractively(account: self.account, peerId: peerId, timeout: timeout) + } + } + + public func updateChannelSlowModeInteractively(peerId: PeerId, timeout: Int32?) -> Signal { + return _internal_updateChannelSlowModeInteractively(postbox: self.account.postbox, network: self.account.network, accountStateManager: self.account.stateManager, peerId: peerId, timeout: timeout) + } + + public func reportPeer(peerId: PeerId) -> Signal { + return _internal_reportPeer(account: self.account, peerId: peerId) + } + + public func reportPeer(peerId: PeerId, reason: ReportReason, message: String) -> Signal { + return _internal_reportPeer(account: self.account, peerId: peerId, reason: reason, message: message) + } + + public func reportPeerPhoto(peerId: PeerId, reason: ReportReason, message: String) -> Signal { + return _internal_reportPeerPhoto(account: self.account, peerId: peerId, reason: reason, message: message) + } + + public func reportPeerMessages(messageIds: [MessageId], reason: ReportReason, message: String) -> Signal { + return _internal_reportPeerMessages(account: account, messageIds: messageIds, reason: reason, message: message) + } + + public func dismissPeerStatusOptions(peerId: PeerId) -> Signal { + return _internal_dismissPeerStatusOptions(account: self.account, peerId: peerId) + } + + public func reportRepliesMessage(messageId: MessageId, deleteMessage: Bool, deleteHistory: Bool, reportSpam: Bool) -> Signal { + return _internal_reportRepliesMessage(account: self.account, messageId: messageId, deleteMessage: deleteMessage, deleteHistory: deleteHistory, reportSpam: reportSpam) } } } diff --git a/submodules/TelegramCore/Sources/BlockedPeers.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift similarity index 96% rename from submodules/TelegramCore/Sources/BlockedPeers.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift index c671ed35a4..bd5794c41c 100644 --- a/submodules/TelegramCore/Sources/BlockedPeers.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeers.swift @@ -41,7 +41,7 @@ public func requestBlockedPeers(account: Account) -> Signal<[Peer], NoError> { } } -public func requestUpdatePeerIsBlocked(account: Account, peerId: PeerId, isBlocked: Bool) -> Signal { +func _internal_requestUpdatePeerIsBlocked(account: Account, peerId: PeerId, isBlocked: Bool) -> Signal { return account.postbox.transaction { transaction -> Signal in if let peer = transaction.getPeer(peerId), let inputPeer = apiInputPeer(peer) { let signal: Signal diff --git a/submodules/TelegramCore/Sources/BlockedPeersContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift similarity index 99% rename from submodules/TelegramCore/Sources/BlockedPeersContext.swift rename to submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift index 06985ae459..fae1f08062 100644 --- a/submodules/TelegramCore/Sources/BlockedPeersContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/BlockedPeersContext.swift @@ -3,7 +3,6 @@ import TelegramApi import Postbox import SwiftSignalKit import MtProtoKit - import SyncCore public struct BlockedPeersContextState: Equatable { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift new file mode 100644 index 0000000000..807a6c1a58 --- /dev/null +++ b/submodules/TelegramCore/Sources/TelegramEngine/Privacy/TelegramEnginePrivacy.swift @@ -0,0 +1,16 @@ +import SwiftSignalKit +import Postbox + +public extension TelegramEngine { + final class Privacy { + private let account: Account + + init(account: Account) { + self.account = account + } + + public func requestUpdatePeerIsBlocked(peerId: PeerId, isBlocked: Bool) -> Signal { + return _internal_requestUpdatePeerIsBlocked(account: self.account, peerId: peerId, isBlocked: isBlocked) + } + } +} diff --git a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift index 196162d568..96e678f46e 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/AccessSecureId.swift @@ -154,7 +154,7 @@ public enum SecureIdAccessError { } func _internal_accessSecureId(network: Network, password: String) -> Signal<(context: SecureIdAccessContext, settings: TwoStepVerificationSettings), SecureIdAccessError> { - return requestTwoStepVerifiationSettings(network: network, password: password) + return _internal_requestTwoStepVerifiationSettings(network: network, password: password) |> mapError { error -> SecureIdAccessError in return .passwordError(error) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift index 06fb9d5cdb..1523513f4c 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/SecureId/SaveSecureIdValue.swift @@ -276,7 +276,7 @@ public func deleteSecureIdValues(network: Network, keys: Set) } public func dropSecureId(network: Network, currentPassword: String) -> Signal { - return twoStepAuthData(network) + return _internal_twoStepAuthData(network) |> mapError { _ -> AuthorizationPasswordVerificationError in return .generic } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift index 9fd8d6412e..c246adbccc 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/TelegramEngine.swift @@ -47,6 +47,18 @@ public final class TelegramEngine { public lazy var messages: Messages = { return Messages(account: self.account) }() + + public lazy var privacy: Privacy = { + return Privacy(account: self.account) + }() + + public lazy var calls: Calls = { + return Calls(account: self.account) + }() + + public lazy var historyImport: HistoryImport = { + return HistoryImport(account: self.account) + }() } public final class TelegramEngineUnauthorized { @@ -64,3 +76,8 @@ public final class TelegramEngineUnauthorized { return Localization(account: self.account) }() } + +public enum SomeTelegramEngine { + case unauthorized(TelegramEngineUnauthorized) + case authorized(TelegramEngine) +} diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 4260e1dbcb..ebbc549339 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -617,5126 +617,5139 @@ public final class PresentationStrings: Equatable { public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[398]!, self._r[398]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[399]! } - public var Passport_Phone_Title: String { return self._s[401]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[402]! } - public var Channel_LinkItem: String { return self._s[403]! } - public var VoiceChat_EndConfirmationText: String { return self._s[404]! } + public var TwoStepAuth_CancelResetTitle: String { return self._s[399]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[400]! } + public var Passport_Phone_Title: String { return self._s[402]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[403]! } + public var Channel_LinkItem: String { return self._s[404]! } + public var VoiceChat_EndConfirmationText: String { return self._s[405]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[405]!, self._r[405]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[406]!, self._r[406]!, [_1, _2, _3]) } - public var Conversation_DeleteManyMessages: String { return self._s[407]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[408]! } - public var Channel_AddUserLeftError: String { return self._s[410]! } - public var AuthSessions_AddedDeviceTitle: String { return self._s[412]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[413]! } - public var Settings_ProxyConnecting: String { return self._s[414]! } - public var Theme_Colors_Accent: String { return self._s[416]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[417]! } + public var Conversation_DeleteManyMessages: String { return self._s[408]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[409]! } + public var Channel_AddUserLeftError: String { return self._s[411]! } + public var AuthSessions_AddedDeviceTitle: String { return self._s[413]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[414]! } + public var Settings_ProxyConnecting: String { return self._s[415]! } + public var Theme_Colors_Accent: String { return self._s[417]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[418]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[419]!, self._r[419]!, [_1]) + return formatWithArgumentRanges(self._s[420]!, self._r[420]!, [_1]) } - public var Passport_Language_lo: String { return self._s[420]! } + public var Passport_Language_lo: String { return self._s[421]! } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[422]!, self._r[422]!, [_1, _2]) + return formatWithArgumentRanges(self._s[423]!, self._r[423]!, [_1, _2]) } - public var Permissions_NotificationsText_v0: String { return self._s[423]! } - public var BroadcastGroups_LimitAlert_Title: String { return self._s[424]! } - public var Settings_CheckPasswordText: String { return self._s[425]! } - public var ChatList_Context_RemoveFromRecents: String { return self._s[426]! } - public var Watch_GroupInfo_Title: String { return self._s[427]! } - public var Settings_AddDevice: String { return self._s[429]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[430]! } + public var Permissions_NotificationsText_v0: String { return self._s[424]! } + public var BroadcastGroups_LimitAlert_Title: String { return self._s[425]! } + public var Settings_CheckPasswordText: String { return self._s[426]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[427]! } + public var Watch_GroupInfo_Title: String { return self._s[428]! } + public var Settings_AddDevice: String { return self._s[430]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[431]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[431]!, self._r[431]!, [_1]) + return formatWithArgumentRanges(self._s[432]!, self._r[432]!, [_1]) } - public var ImportStickerPack_Create: String { return self._s[432]! } - public var Conversation_AutoremoveActionEdit: String { return self._s[433]! } - public var TwoStepAuth_Disable: String { return self._s[435]! } + public var ImportStickerPack_Create: String { return self._s[433]! } + public var Conversation_AutoremoveActionEdit: String { return self._s[434]! } + public var TwoStepAuth_Disable: String { return self._s[436]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[436]!, self._r[436]!, [_0]) + return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_0]) } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_1, _2, _3]) } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_0]) + return formatWithArgumentRanges(self._s[439]!, self._r[439]!, [_0]) } - public var Channel_AdminLog_BanReadMessages: String { return self._s[439]! } - public var Undo_ChatDeleted: String { return self._s[440]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[441]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[440]! } + public var Undo_ChatDeleted: String { return self._s[441]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[442]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[442]!, self._r[442]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[443]!, self._r[443]!, [_1, _2, _3]) } - public var FastTwoStepSetup_EmailHelp: String { return self._s[443]! } - public var Contacts_SelectAll: String { return self._s[444]! } - public var Privacy_ContactsReset: String { return self._s[445]! } - public var AttachmentMenu_File: String { return self._s[447]! } - public var PasscodeSettings_EncryptData: String { return self._s[448]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[449]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[444]! } + public var Contacts_SelectAll: String { return self._s[445]! } + public var Privacy_ContactsReset: String { return self._s[446]! } + public var AttachmentMenu_File: String { return self._s[448]! } + public var PasscodeSettings_EncryptData: String { return self._s[449]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[450]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[451]!, self._r[451]!, [_0, _1]) - } - public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[452]!, self._r[452]!, [_0, _1]) } - public var PhotoEditor_ShadowsTint: String { return self._s[454]! } - public var GroupInfo_ChatAdmins: String { return self._s[455]! } - public var ArchivedChats_IntroTitle2: String { return self._s[456]! } - public var Cache_LowDiskSpaceText: String { return self._s[457]! } - public var CreatePoll_Anonymous: String { return self._s[458]! } - public var Report_AdditionalDetailsText: String { return self._s[459]! } - public var Checkout_PaymentMethod_New: String { return self._s[460]! } - public var Invitation_JoinGroup: String { return self._s[461]! } + public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[453]!, self._r[453]!, [_0, _1]) + } + public var PhotoEditor_ShadowsTint: String { return self._s[455]! } + public var GroupInfo_ChatAdmins: String { return self._s[456]! } + public var ArchivedChats_IntroTitle2: String { return self._s[457]! } + public var Cache_LowDiskSpaceText: String { return self._s[458]! } + public var CreatePoll_Anonymous: String { return self._s[459]! } + public var Report_AdditionalDetailsText: String { return self._s[460]! } + public var Checkout_PaymentMethod_New: String { return self._s[461]! } + public var Invitation_JoinGroup: String { return self._s[462]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[464]!, self._r[464]!, [_0]) + return formatWithArgumentRanges(self._s[465]!, self._r[465]!, [_0]) } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[465]! } - public var Notification_Reply: String { return self._s[467]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[466]! } + public var Notification_Reply: String { return self._s[468]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[468]!, self._r[468]!, [_0]) + return formatWithArgumentRanges(self._s[469]!, self._r[469]!, [_0]) } - public var Login_PhoneTitle: String { return self._s[469]! } - public var VoiceChat_UnmuteHelp: String { return self._s[470]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[471]! } + public var Login_PhoneTitle: String { return self._s[470]! } + public var VoiceChat_UnmuteHelp: String { return self._s[471]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[472]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[472]!, self._r[472]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[473]!, self._r[473]!, [_1, _2, _3]) } - public var Appearance_TextSize_Title: String { return self._s[473]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[475]! } - public var VoiceOver_Navigation_Compose: String { return self._s[476]! } + public var Appearance_TextSize_Title: String { return self._s[474]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[476]! } + public var VoiceOver_Navigation_Compose: String { return self._s[477]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutRemove(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1]) + return formatWithArgumentRanges(self._s[478]!, self._r[478]!, [_1]) } - public var Passport_InfoText: String { return self._s[478]! } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[479]! } - public var MessagePoll_LabelClosed: String { return self._s[481]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[482]! } - public var KeyCommand_FocusOnInputField: String { return self._s[483]! } - public var Conversation_ContextViewThread: String { return self._s[484]! } - public var ChatImport_SelectionErrorGroupGeneric: String { return self._s[485]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[487]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[488]! } - public var Conversation_ContextMenuMention: String { return self._s[490]! } - public var CreatePoll_QuizInfo: String { return self._s[491]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[492]! } - public var Username_LinkCopied: String { return self._s[493]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[494]! } - public var TwoStepAuth_ChangePassword: String { return self._s[495]! } - public var Watch_Suggestion_Thanks: String { return self._s[496]! } - public var Channel_TitleInfo: String { return self._s[497]! } - public var ChatList_ChatTypesSection: String { return self._s[498]! } + public var Passport_InfoText: String { return self._s[479]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[480]! } + public var MessagePoll_LabelClosed: String { return self._s[482]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[483]! } + public var KeyCommand_FocusOnInputField: String { return self._s[484]! } + public var Conversation_ContextViewThread: String { return self._s[485]! } + public var ChatImport_SelectionErrorGroupGeneric: String { return self._s[486]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[488]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[489]! } + public var Conversation_ContextMenuMention: String { return self._s[491]! } + public var CreatePoll_QuizInfo: String { return self._s[492]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[493]! } + public var Username_LinkCopied: String { return self._s[494]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[495]! } + public var TwoStepAuth_ChangePassword: String { return self._s[496]! } + public var Watch_Suggestion_Thanks: String { return self._s[497]! } + public var Channel_TitleInfo: String { return self._s[498]! } + public var ChatList_ChatTypesSection: String { return self._s[499]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[499]!, self._r[499]!, [_0]) - } - public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[500]!, self._r[500]!, [_0]) } + public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_0]) + } public func Channel_AdminLog_MessageRemovedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_1, _2]) + return formatWithArgumentRanges(self._s[502]!, self._r[502]!, [_1, _2]) } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[502]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[503]! } public func Call_MicrophoneOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[503]!, self._r[503]!, [_0]) + return formatWithArgumentRanges(self._s[504]!, self._r[504]!, [_0]) } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[504]! } - public var Profile_MessageLifetimeForever: String { return self._s[505]! } - public var ArchivedChats_IntroText1: String { return self._s[506]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[507]! } - public var Map_PullUpForPlaces: String { return self._s[509]! } - public var UserInfo_TelegramCall: String { return self._s[510]! } - public var Conversation_ShareMyContactInfo: String { return self._s[511]! } - public var ChatList_Tabs_All: String { return self._s[512]! } - public var Notification_PassportValueEmail: String { return self._s[513]! } - public var Notification_VideoCallIncoming: String { return self._s[514]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[515]! } - public var Channel_Username_InvalidTaken: String { return self._s[516]! } - public var GroupPermission_EditingDisabled: String { return self._s[517]! } - public var InviteLink_PeopleJoinedShortNone: String { return self._s[518]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[519]! } - public var Passport_Language_pl: String { return self._s[521]! } - public var Call_Accept: String { return self._s[522]! } - public var ChatListFolder_NameSectionHeader: String { return self._s[523]! } - public var InviteLink_ExpiredLinkStatus: String { return self._s[524]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[505]! } + public var Profile_MessageLifetimeForever: String { return self._s[506]! } + public var ArchivedChats_IntroText1: String { return self._s[507]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[508]! } + public var Map_PullUpForPlaces: String { return self._s[510]! } + public var UserInfo_TelegramCall: String { return self._s[511]! } + public var Conversation_ShareMyContactInfo: String { return self._s[512]! } + public var ChatList_Tabs_All: String { return self._s[513]! } + public var Notification_PassportValueEmail: String { return self._s[514]! } + public var Notification_VideoCallIncoming: String { return self._s[515]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[516]! } + public var Channel_Username_InvalidTaken: String { return self._s[517]! } + public var GroupPermission_EditingDisabled: String { return self._s[518]! } + public var InviteLink_PeopleJoinedShortNone: String { return self._s[519]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[520]! } + public var Passport_Language_pl: String { return self._s[522]! } + public var Call_Accept: String { return self._s[523]! } + public var ChatListFolder_NameSectionHeader: String { return self._s[524]! } + public var InviteLink_ExpiredLinkStatus: String { return self._s[525]! } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[525]!, self._r[525]!, [_0]) + return formatWithArgumentRanges(self._s[526]!, self._r[526]!, [_0]) } - public var ClearCache_Forever: String { return self._s[526]! } - public var VoiceChat_TapToEditTitle: String { return self._s[528]! } + public var ClearCache_Forever: String { return self._s[527]! } + public var VoiceChat_TapToEditTitle: String { return self._s[529]! } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[529]!, self._r[529]!, [_0]) + return formatWithArgumentRanges(self._s[530]!, self._r[530]!, [_0]) } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[530]! } - public var Calls_SubmitRating: String { return self._s[531]! } - public var Location_LiveLocationRequired_ShareLocation: String { return self._s[532]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[531]! } + public var Calls_SubmitRating: String { return self._s[532]! } + public var Location_LiveLocationRequired_ShareLocation: String { return self._s[533]! } public func ChatList_AddedToFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[533]!, self._r[533]!, [_1, _2]) + return formatWithArgumentRanges(self._s[534]!, self._r[534]!, [_1, _2]) } - public var IntentsSettings_MainAccountInfo: String { return self._s[534]! } - public var Map_Hybrid: String { return self._s[536]! } - public var ChatList_Context_Archive: String { return self._s[537]! } - public var Message_PinnedDocumentMessage: String { return self._s[538]! } - public var State_ConnectingToProxyInfo: String { return self._s[539]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[541]! } - public var Settings_AppLanguage: String { return self._s[542]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[535]! } + public var Map_Hybrid: String { return self._s[537]! } + public var ChatList_Context_Archive: String { return self._s[538]! } + public var Message_PinnedDocumentMessage: String { return self._s[539]! } + public var State_ConnectingToProxyInfo: String { return self._s[540]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[542]! } + public var Settings_AppLanguage: String { return self._s[543]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[543]!, self._r[543]!, [_0]) + return formatWithArgumentRanges(self._s[544]!, self._r[544]!, [_0]) } - public var Notifications_PermissionsEnable: String { return self._s[545]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[546]! } + public var Notifications_PermissionsEnable: String { return self._s[546]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[547]! } public func UserInfo_BlockActionTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[547]!, self._r[547]!, [_0]) - } - public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[548]!, self._r[548]!, [_0]) } - public var NotificationsSound_Aurora: String { return self._s[551]! } - public var ScheduledMessages_ClearAll: String { return self._s[554]! } + public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[549]!, self._r[549]!, [_0]) + } + public var NotificationsSound_Aurora: String { return self._s[552]! } + public var ScheduledMessages_ClearAll: String { return self._s[555]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_0]) + return formatWithArgumentRanges(self._s[556]!, self._r[556]!, [_0]) } - public var Settings_BlockedUsers: String { return self._s[557]! } - public var Checkout_TipItem: String { return self._s[558]! } - public var VoiceOver_Keyboard: String { return self._s[560]! } + public var Settings_BlockedUsers: String { return self._s[558]! } + public var Checkout_TipItem: String { return self._s[559]! } + public var VoiceOver_Keyboard: String { return self._s[561]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[561]!, self._r[561]!, [_0]) + return formatWithArgumentRanges(self._s[562]!, self._r[562]!, [_0]) } - public var Passport_Language_hu: String { return self._s[562]! } + public var Passport_Language_hu: String { return self._s[563]! } public func Conversation_ScheduleMessage_SendTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[563]!, self._r[563]!, [_0]) + return formatWithArgumentRanges(self._s[564]!, self._r[564]!, [_0]) } - public var StickerPack_Share: String { return self._s[564]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[565]! } + public var StickerPack_Share: String { return self._s[565]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[566]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[566]!, self._r[566]!, [_0, _1]) + return formatWithArgumentRanges(self._s[567]!, self._r[567]!, [_0, _1]) } - public var Privacy_ContactsResetConfirmation: String { return self._s[567]! } - public var VoiceChat_EditTitle: String { return self._s[568]! } - public var AppleWatch_ReplyPresets: String { return self._s[569]! } - public var Bot_GenericBotStatus: String { return self._s[570]! } - public var Appearance_ShareThemeColor: String { return self._s[571]! } - public var AuthSessions_AddDevice_UrlLoginHint: String { return self._s[574]! } - public var ReportGroupLocation_Title: String { return self._s[575]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[568]! } + public var VoiceChat_EditTitle: String { return self._s[569]! } + public var AppleWatch_ReplyPresets: String { return self._s[570]! } + public var Bot_GenericBotStatus: String { return self._s[571]! } + public var Appearance_ShareThemeColor: String { return self._s[572]! } + public var AuthSessions_AddDevice_UrlLoginHint: String { return self._s[575]! } + public var ReportGroupLocation_Title: String { return self._s[576]! } public func Conversation_AutoremoveTimerSetUserYou(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[576]!, self._r[576]!, [_1]) + return formatWithArgumentRanges(self._s[577]!, self._r[577]!, [_1]) } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[577]!, self._r[577]!, [_0]) + return formatWithArgumentRanges(self._s[578]!, self._r[578]!, [_0]) } - public var Profile_CreateEncryptedChatError: String { return self._s[578]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[579]! } - public var Wallpaper_ErrorNotFound: String { return self._s[580]! } - public var Bot_GenericSupportStatus: String { return self._s[581]! } - public var Activity_UploadingPhoto: String { return self._s[583]! } - public var Intents_ErrorLockedTitle: String { return self._s[584]! } - public var Watch_UserInfo_Title: String { return self._s[586]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[587]! } - public var Appearance_ThemeDay: String { return self._s[588]! } + public var Profile_CreateEncryptedChatError: String { return self._s[579]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[580]! } + public var Wallpaper_ErrorNotFound: String { return self._s[581]! } + public var Bot_GenericSupportStatus: String { return self._s[582]! } + public var Activity_UploadingPhoto: String { return self._s[584]! } + public var Intents_ErrorLockedTitle: String { return self._s[585]! } + public var Watch_UserInfo_Title: String { return self._s[587]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[588]! } + public var Appearance_ThemeDay: String { return self._s[589]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[589]!, self._r[589]!, [_1]) + return formatWithArgumentRanges(self._s[590]!, self._r[590]!, [_1]) } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[590]!, self._r[590]!, [_0]) + return formatWithArgumentRanges(self._s[591]!, self._r[591]!, [_0]) } - public var InviteLink_AdditionalLinks: String { return self._s[591]! } - public var Passport_Title: String { return self._s[595]! } + public var InviteLink_AdditionalLinks: String { return self._s[592]! } + public var Passport_Title: String { return self._s[596]! } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[597]!, self._r[597]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[598]!, self._r[598]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[598]! } - public var VoiceChat_OpenGroup: String { return self._s[600]! } - public var SocksProxySetup_ShareLink: String { return self._s[602]! } - public var AuthSessions_OtherDevices: String { return self._s[603]! } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[604]! } - public var Watch_MessageView_Reply: String { return self._s[605]! } - public var Camera_FlashOn: String { return self._s[607]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[599]! } + public var VoiceChat_OpenGroup: String { return self._s[601]! } + public var SocksProxySetup_ShareLink: String { return self._s[603]! } + public var AuthSessions_OtherDevices: String { return self._s[604]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[605]! } + public var Watch_MessageView_Reply: String { return self._s[606]! } + public var Camera_FlashOn: String { return self._s[608]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[608]!, self._r[608]!, [_1, _2]) + return formatWithArgumentRanges(self._s[609]!, self._r[609]!, [_1, _2]) } - public var Conversation_ContextMenuBlock: String { return self._s[609]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[611]! } - public var Privacy_Calls_NeverAllow: String { return self._s[612]! } - public var BroadcastGroups_Cancel: String { return self._s[613]! } - public var SharedMedia_CategoryLinks: String { return self._s[614]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[617]! } - public var Passport_Identity_ScansHelp: String { return self._s[619]! } - public var ShareMenu_CopyShareLink: String { return self._s[620]! } - public var StickerSettings_MaskContextInfo: String { return self._s[621]! } - public var InviteLink_Create_EditTitle: String { return self._s[622]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[623]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[626]! } - public var ChatImportActivity_Success: String { return self._s[628]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[629]! } - public var NotificationsSound_Popcorn: String { return self._s[630]! } - public var FeatureDisabled_Oops: String { return self._s[631]! } + public var Conversation_ContextMenuBlock: String { return self._s[610]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[612]! } + public var Privacy_Calls_NeverAllow: String { return self._s[613]! } + public var BroadcastGroups_Cancel: String { return self._s[614]! } + public var SharedMedia_CategoryLinks: String { return self._s[615]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[618]! } + public var Passport_Identity_ScansHelp: String { return self._s[620]! } + public var ShareMenu_CopyShareLink: String { return self._s[621]! } + public var StickerSettings_MaskContextInfo: String { return self._s[622]! } + public var InviteLink_Create_EditTitle: String { return self._s[623]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[624]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[627]! } + public var ChatImportActivity_Success: String { return self._s[629]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[630]! } + public var NotificationsSound_Popcorn: String { return self._s[631]! } + public var FeatureDisabled_Oops: String { return self._s[632]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[632]!, self._r[632]!, [_0]) + return formatWithArgumentRanges(self._s[633]!, self._r[633]!, [_0]) } - public var Notification_PinnedMessage: String { return self._s[633]! } - public var Tour_Title4: String { return self._s[634]! } + public var Notification_PinnedMessage: String { return self._s[634]! } + public var Tour_Title4: String { return self._s[635]! } public func Notification_VoiceChatInvitationForYou(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[635]!, self._r[635]!, [_1]) + return formatWithArgumentRanges(self._s[636]!, self._r[636]!, [_1]) } - public var Watch_Suggestion_OK: String { return self._s[636]! } - public var Compose_TokenListPlaceholder: String { return self._s[637]! } - public var InviteLink_PermanentLink: String { return self._s[638]! } - public var EditTheme_Edit_TopInfo: String { return self._s[639]! } - public var Gif_NoGifsFound: String { return self._s[640]! } - public var Login_InvalidCountryCode: String { return self._s[641]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[642]! } - public var Call_VoiceOver_VideoCallMissed: String { return self._s[643]! } - public var VoiceChat_ChangeNameTitle: String { return self._s[645]! } + public var Watch_Suggestion_OK: String { return self._s[637]! } + public var Compose_TokenListPlaceholder: String { return self._s[638]! } + public var InviteLink_PermanentLink: String { return self._s[639]! } + public var EditTheme_Edit_TopInfo: String { return self._s[640]! } + public var Gif_NoGifsFound: String { return self._s[641]! } + public var Login_InvalidCountryCode: String { return self._s[642]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[643]! } + public var Call_VoiceOver_VideoCallMissed: String { return self._s[644]! } + public var VoiceChat_ChangeNameTitle: String { return self._s[646]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_1]) + return formatWithArgumentRanges(self._s[647]!, self._r[647]!, [_1]) } - public var Profile_CreateNewContact: String { return self._s[647]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[648]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[649]! } - public var Group_Setup_TypePublic: String { return self._s[650]! } - public var Weekday_ShortSaturday: String { return self._s[651]! } + public var Profile_CreateNewContact: String { return self._s[648]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[649]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[650]! } + public var Group_Setup_TypePublic: String { return self._s[651]! } + public var Weekday_ShortSaturday: String { return self._s[652]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[652]!, self._r[652]!, [_0]) + return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_0]) } - public var LiveLocation_MenuStopAll: String { return self._s[653]! } + public var LiveLocation_MenuStopAll: String { return self._s[654]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) + return formatWithArgumentRanges(self._s[655]!, self._r[655]!, [_0]) } - public var ChatListFolder_NamePlaceholder: String { return self._s[655]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[656]! } + public var ChatListFolder_NamePlaceholder: String { return self._s[656]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[657]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[657]!, self._r[657]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_1, _2, _3]) } - public var VoiceChat_ChatFullAlertText: String { return self._s[658]! } - public var Chat_GenericPsaTooltip: String { return self._s[660]! } - public var ChannelInfo_CreateVoiceChat: String { return self._s[661]! } + public var VoiceChat_ChatFullAlertText: String { return self._s[659]! } + public var Chat_GenericPsaTooltip: String { return self._s[661]! } + public var ChannelInfo_CreateVoiceChat: String { return self._s[662]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_0]) + return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[663]! } - public var Login_PhoneAndCountryHelp: String { return self._s[664]! } - public var SaveIncomingPhotosSettings_From: String { return self._s[666]! } - public var Conversation_JumpToDate: String { return self._s[667]! } - public var AuthSessions_AddDevice: String { return self._s[668]! } - public var Settings_FAQ: String { return self._s[670]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[664]! } + public var Login_PhoneAndCountryHelp: String { return self._s[665]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[667]! } + public var Conversation_JumpToDate: String { return self._s[668]! } + public var AuthSessions_AddDevice: String { return self._s[669]! } + public var Settings_FAQ: String { return self._s[671]! } public func ChatImport_CreateGroupAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[671]!, self._r[671]!, [_0]) + return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_0]) } - public var Username_Title: String { return self._s[672]! } - public var DialogList_Read: String { return self._s[673]! } - public var Conversation_InstantPagePreview: String { return self._s[674]! } - public var Report_Succeed: String { return self._s[676]! } - public var Login_ResetAccountProtected_Title: String { return self._s[677]! } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[678]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[679]! } + public var Username_Title: String { return self._s[673]! } + public var DialogList_Read: String { return self._s[674]! } + public var Conversation_InstantPagePreview: String { return self._s[675]! } + public var Report_Succeed: String { return self._s[677]! } + public var Login_ResetAccountProtected_Title: String { return self._s[678]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[679]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[680]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[680]!, self._r[680]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[681]!, self._r[681]!, [_1, _2, _3]) } - public var WallpaperPreview_PreviewBottomText: String { return self._s[682]! } - public var Privacy_SecretChatsTitle: String { return self._s[685]! } + public var WallpaperPreview_PreviewBottomText: String { return self._s[683]! } + public var Privacy_SecretChatsTitle: String { return self._s[686]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[686]!, self._r[686]!, [_1, _2]) + return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_1, _2]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[687]! } - public var Conversation_ClousStorageInfo_Description4: String { return self._s[688]! } - public var PasscodeSettings_TurnPasscodeOn: String { return self._s[689]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[690]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[688]! } + public var Conversation_ClousStorageInfo_Description4: String { return self._s[689]! } + public var PasscodeSettings_TurnPasscodeOn: String { return self._s[690]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[691]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[691]!, self._r[691]!, [_0]) + return formatWithArgumentRanges(self._s[692]!, self._r[692]!, [_0]) } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[693]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[694]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[695]! } - public var CallFeedback_ReasonDropped: String { return self._s[696]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[694]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[695]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[696]! } + public var CallFeedback_ReasonDropped: String { return self._s[697]! } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[697]!, self._r[697]!, [_0]) + return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) } - public var WebSearch_Images: String { return self._s[698]! } - public var Passport_Identity_Surname: String { return self._s[699]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[700]! } - public var TwoFactorSetup_Email_Title: String { return self._s[701]! } - public var Cache_ClearEmpty: String { return self._s[702]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[703]! } - public var Theme_Context_Apply: String { return self._s[704]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[705]! } - public var CallList_DeleteAllForEveryone: String { return self._s[706]! } + public var WebSearch_Images: String { return self._s[699]! } + public var Passport_Identity_Surname: String { return self._s[700]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[701]! } + public var TwoFactorSetup_Email_Title: String { return self._s[702]! } + public var Cache_ClearEmpty: String { return self._s[703]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[704]! } + public var Theme_Context_Apply: String { return self._s[705]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[706]! } + public var CallList_DeleteAllForEveryone: String { return self._s[707]! } public func BroadcastGroups_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[707]!, self._r[707]!, [_0]) + return formatWithArgumentRanges(self._s[708]!, self._r[708]!, [_0]) } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[708]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[709]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[709]!, self._r[709]!, [_0]) + return formatWithArgumentRanges(self._s[710]!, self._r[710]!, [_0]) } - public var Call_StatusRinging: String { return self._s[710]! } + public var Call_StatusRinging: String { return self._s[711]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[711]!, self._r[711]!, [_0]) - } - public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) } - public var Cache_ClearNone: String { return self._s[713]! } - public var PrivacyPolicy_Accept: String { return self._s[714]! } - public var Contacts_PhoneNumber: String { return self._s[715]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[716]! } - public var PhotoEditor_HighlightsTint: String { return self._s[718]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[719]! } - public var Checkout_PaymentMethod_Title: String { return self._s[722]! } - public var Month_GenAugust: String { return self._s[724]! } - public var DialogList_Draft: String { return self._s[725]! } - public var ChatList_EmptyChatListFilterText: String { return self._s[726]! } - public var PeopleNearby_Description: String { return self._s[727]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[728]! } - public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[729]! } - public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[730]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[732]! } - public var Watch_Message_ForwardedFrom: String { return self._s[733]! } - public var Notification_Mute1h: String { return self._s[734]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[735]! } - public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[737]! } - public var Channel_Edit_LinkItem: String { return self._s[738]! } - public var Presence_online: String { return self._s[739]! } - public var AutoDownloadSettings_Title: String { return self._s[740]! } - public var Conversation_MessageDialogRetry: String { return self._s[741]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[743]! } - public var Channel_About_Placeholder: String { return self._s[745]! } - public var Passport_Language_sl: String { return self._s[746]! } - public var AppleWatch_Title: String { return self._s[748]! } - public var RepliesChat_DescriptionText: String { return self._s[750]! } - public var Stats_Message_PrivateShares: String { return self._s[751]! } - public var Settings_ViewPhoto: String { return self._s[752]! } - public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[753]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[754]! } - public var Cache_ClearProgress: String { return self._s[755]! } - public var Cache_Music: String { return self._s[756]! } - public var Conversation_ContextMenuShare: String { return self._s[758]! } - public var AutoDownloadSettings_Unlimited: String { return self._s[759]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[760]! } - public var Contacts_PermissionsAllow: String { return self._s[761]! } - public var Passport_Language_vi: String { return self._s[763]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[764]! } + public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) + } + public var Cache_ClearNone: String { return self._s[714]! } + public var PrivacyPolicy_Accept: String { return self._s[715]! } + public var Contacts_PhoneNumber: String { return self._s[716]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[717]! } + public var PhotoEditor_HighlightsTint: String { return self._s[719]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[720]! } + public var Checkout_PaymentMethod_Title: String { return self._s[723]! } + public var Month_GenAugust: String { return self._s[725]! } + public var DialogList_Draft: String { return self._s[726]! } + public var ChatList_EmptyChatListFilterText: String { return self._s[727]! } + public var PeopleNearby_Description: String { return self._s[728]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[729]! } + public var VoiceChat_InviteLink_CopyListenerLink: String { return self._s[730]! } + public var VoiceChat_EditTitleRemoveSuccess: String { return self._s[731]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[733]! } + public var Watch_Message_ForwardedFrom: String { return self._s[734]! } + public var Notification_Mute1h: String { return self._s[735]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[736]! } + public var SettingsSearch_Synonyms_Privacy_AuthSessions: String { return self._s[738]! } + public var Channel_Edit_LinkItem: String { return self._s[739]! } + public var Presence_online: String { return self._s[740]! } + public var AutoDownloadSettings_Title: String { return self._s[741]! } + public var Conversation_MessageDialogRetry: String { return self._s[742]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[744]! } + public var Channel_About_Placeholder: String { return self._s[746]! } + public var Passport_Language_sl: String { return self._s[747]! } + public var AppleWatch_Title: String { return self._s[749]! } + public var RepliesChat_DescriptionText: String { return self._s[751]! } + public var Stats_Message_PrivateShares: String { return self._s[752]! } + public var Settings_ViewPhoto: String { return self._s[753]! } + public var Conversation_ForwardTooltip_SavedMessages_One: String { return self._s[754]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[755]! } + public var Cache_ClearProgress: String { return self._s[756]! } + public var Cache_Music: String { return self._s[757]! } + public var Conversation_ContextMenuShare: String { return self._s[759]! } + public var AutoDownloadSettings_Unlimited: String { return self._s[760]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[761]! } + public var Contacts_PermissionsAllow: String { return self._s[762]! } + public var Passport_Language_vi: String { return self._s[764]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderPassword: String { return self._s[765]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[767]!, self._r[767]!, [_1, _2]) + return formatWithArgumentRanges(self._s[768]!, self._r[768]!, [_1, _2]) } - public var Passport_Language_de: String { return self._s[768]! } - public var Notifications_PermissionsText: String { return self._s[770]! } - public var GroupRemoved_AddToGroup: String { return self._s[771]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[772]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[773]! } - public var Login_TermsOfServiceAgree: String { return self._s[774]! } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[775]! } + public var Passport_Language_de: String { return self._s[769]! } + public var Notifications_PermissionsText: String { return self._s[771]! } + public var GroupRemoved_AddToGroup: String { return self._s[772]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[773]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[774]! } + public var Login_TermsOfServiceAgree: String { return self._s[775]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[776]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[776]!, self._r[776]!, [_1, _2]) + return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[778]! } - public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[779]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[779]! } + public var VoiceChat_VideoPreviewStopScreenSharing: String { return self._s[780]! } public func PUSH_CHAT_VOICECHAT_START(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[780]!, self._r[780]!, [_1, _2]) + return formatWithArgumentRanges(self._s[781]!, self._r[781]!, [_1, _2]) } - public var ChatListFolder_NameGroups: String { return self._s[781]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[782]! } - public var VoiceChat_EditDescriptionSave: String { return self._s[783]! } + public var ChatListFolder_NameGroups: String { return self._s[782]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[783]! } + public var VoiceChat_EditDescriptionSave: String { return self._s[784]! } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[784]!, self._r[784]!, [_1, _2]) + return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_1, _2]) } - public var Watch_Suggestion_TalkLater: String { return self._s[785]! } - public var Checkout_ShippingOption_Title: String { return self._s[786]! } - public var Conversation_TitleRepliesEmpty: String { return self._s[787]! } - public var CreatePoll_TextHeader: String { return self._s[788]! } - public var VoiceOver_Chat_Message: String { return self._s[790]! } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[791]! } - public var ContactInfo_Note: String { return self._s[793]! } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[794]! } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[795]! } - public var AutoDownloadSettings_Photos: String { return self._s[796]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[797]! } + public var Watch_Suggestion_TalkLater: String { return self._s[786]! } + public var Checkout_ShippingOption_Title: String { return self._s[787]! } + public var Conversation_TitleRepliesEmpty: String { return self._s[788]! } + public var CreatePoll_TextHeader: String { return self._s[789]! } + public var VoiceOver_Chat_Message: String { return self._s[791]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[792]! } + public var ContactInfo_Note: String { return self._s[794]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[795]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[796]! } + public var AutoDownloadSettings_Photos: String { return self._s[797]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[798]! } public func Conversation_ForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_0]) + return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) } - public var Channel_Info_Subscribers: String { return self._s[799]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[800]! } - public var ChatListFolderSettings_FoldersSection: String { return self._s[801]! } - public var ChannelInfo_ScheduleVoiceChat: String { return self._s[802]! } - public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[803]! } + public var Channel_Info_Subscribers: String { return self._s[800]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[801]! } + public var ChatListFolderSettings_FoldersSection: String { return self._s[802]! } + public var ChannelInfo_ScheduleVoiceChat: String { return self._s[803]! } + public var VoiceOver_ChatList_OutgoingMessage: String { return self._s[804]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[807]!, self._r[807]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[808]!, self._r[808]!, [_1, _2, _3]) } - public var AutoNightTheme_System: String { return self._s[808]! } - public var Call_StatusWaiting: String { return self._s[809]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[810]! } + public var AutoNightTheme_System: String { return self._s[809]! } + public var Call_StatusWaiting: String { return self._s[810]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[811]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[811]!, self._r[811]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[812]!, self._r[812]!, [_1, _2, _3]) } - public var Conversation_ContextMenuCopy: String { return self._s[813]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[814]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[815]! } + public var Conversation_ContextMenuCopy: String { return self._s[814]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[815]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[816]! } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[816]!, self._r[816]!, [_0]) + return formatWithArgumentRanges(self._s[817]!, self._r[817]!, [_0]) } - public var Group_Status: String { return self._s[818]! } - public var Group_Setup_HistoryVisible: String { return self._s[819]! } - public var Conversation_UploadFileTooLarge: String { return self._s[820]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[821]! } - public var Paint_Edit: String { return self._s[822]! } - public var PeerInfo_AutoremoveMessages: String { return self._s[823]! } + public var Group_Status: String { return self._s[819]! } + public var Group_Setup_HistoryVisible: String { return self._s[820]! } + public var Conversation_UploadFileTooLarge: String { return self._s[821]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[822]! } + public var Paint_Edit: String { return self._s[823]! } + public var PeerInfo_AutoremoveMessages: String { return self._s[824]! } public func ChatImport_SelectionConfirmationGroupWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[825]!, self._r[825]!, [_0]) + return formatWithArgumentRanges(self._s[826]!, self._r[826]!, [_0]) } - public var Channel_EditAdmin_CannotEdit: String { return self._s[826]! } - public var Username_InvalidTooShort: String { return self._s[827]! } - public var ClearCache_StorageOtherApps: String { return self._s[829]! } - public var Conversation_ViewMessage: String { return self._s[830]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[832]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[827]! } + public var Username_InvalidTooShort: String { return self._s[828]! } + public var ClearCache_StorageOtherApps: String { return self._s[830]! } + public var Conversation_ViewMessage: String { return self._s[831]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[833]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[833]!, self._r[833]!, [_0]) + return formatWithArgumentRanges(self._s[834]!, self._r[834]!, [_0]) } - public var CallSettings_Title: String { return self._s[834]! } + public var CallSettings_Title: String { return self._s[835]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) + return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_0]) + return formatWithArgumentRanges(self._s[839]!, self._r[839]!, [_0]) } - public var PUSH_SENDER_YOU: String { return self._s[841]! } + public var PUSH_SENDER_YOU: String { return self._s[842]! } public func Conversation_DeletedFromContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[842]!, self._r[842]!, [_0]) + return formatWithArgumentRanges(self._s[843]!, self._r[843]!, [_0]) } - public var Profile_ShareContactButton: String { return self._s[843]! } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[844]! } + public var Profile_ShareContactButton: String { return self._s[844]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[845]! } public func VoiceOver_Chat_StickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[845]!, self._r[845]!, [_0]) + return formatWithArgumentRanges(self._s[846]!, self._r[846]!, [_0]) } - public var Map_ShareLiveLocation: String { return self._s[846]! } - public var ChatListFolder_TitleEdit: String { return self._s[847]! } + public var Map_ShareLiveLocation: String { return self._s[847]! } + public var ChatListFolder_TitleEdit: String { return self._s[848]! } public func VoiceOver_Chat_AnimatedStickerFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[848]!, self._r[848]!, [_0]) + return formatWithArgumentRanges(self._s[849]!, self._r[849]!, [_0]) } - public var Passport_Address_Address: String { return self._s[850]! } - public var LastSeen_JustNow: String { return self._s[852]! } + public var Passport_Address_Address: String { return self._s[851]! } + public var LastSeen_JustNow: String { return self._s[853]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[853]!, self._r[853]!, [_0]) + return formatWithArgumentRanges(self._s[854]!, self._r[854]!, [_0]) } - public var ContactInfo_PhoneLabelOther: String { return self._s[854]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[855]! } - public var Weekday_Today: String { return self._s[858]! } - public var DialogList_Title: String { return self._s[859]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[860]! } - public var Cache_ClearCache: String { return self._s[861]! } - public var CreatePoll_ExplanationInfo: String { return self._s[862]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[864]! } - public var Stats_MessageTitle: String { return self._s[865]! } - public var Passport_Address_Street: String { return self._s[867]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[855]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[856]! } + public var Weekday_Today: String { return self._s[859]! } + public var DialogList_Title: String { return self._s[860]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[861]! } + public var Cache_ClearCache: String { return self._s[862]! } + public var CreatePoll_ExplanationInfo: String { return self._s[863]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[865]! } + public var Stats_MessageTitle: String { return self._s[866]! } + public var Passport_Address_Street: String { return self._s[868]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[868]!, self._r[868]!, [_0]) + return formatWithArgumentRanges(self._s[869]!, self._r[869]!, [_0]) } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[869]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[870]! } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) + return formatWithArgumentRanges(self._s[871]!, self._r[871]!, [_0]) } - public var TwoStepAuth_Email: String { return self._s[872]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[873]! } - public var PrivacySettings_PasscodeOn: String { return self._s[874]! } - public var Camera_SquareMode: String { return self._s[876]! } - public var SocksProxySetup_Port: String { return self._s[877]! } - public var Watch_LastSeen_JustNow: String { return self._s[879]! } + public var TwoStepAuth_Email: String { return self._s[873]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[874]! } + public var PrivacySettings_PasscodeOn: String { return self._s[875]! } + public var Camera_SquareMode: String { return self._s[877]! } + public var SocksProxySetup_Port: String { return self._s[878]! } + public var Watch_LastSeen_JustNow: String { return self._s[880]! } public func Location_ProximityAlertSetText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[880]!, self._r[880]!, [_1, _2]) - } - public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_1, _2]) } + public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_1, _2]) + } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) + return formatWithArgumentRanges(self._s[883]!, self._r[883]!, [_0]) } - public var VoiceChat_CancelVoiceChat: String { return self._s[883]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[884]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[885]! } - public var Watch_Suggestion_HoldOn: String { return self._s[888]! } + public var VoiceChat_CancelVoiceChat: String { return self._s[884]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[885]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[886]! } + public var Watch_Suggestion_HoldOn: String { return self._s[889]! } public func PUSH_CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[889]!, self._r[889]!, [_1]) + return formatWithArgumentRanges(self._s[890]!, self._r[890]!, [_1]) } - public var CallSettings_TabIcon: String { return self._s[890]! } - public var ScheduledMessages_SendNow: String { return self._s[891]! } - public var Stats_GroupTopWeekdaysTitle: String { return self._s[892]! } - public var ImportStickerPack_NamePlaceholder: String { return self._s[893]! } - public var UserInfo_PhoneCall: String { return self._s[894]! } - public var Month_GenMarch: String { return self._s[895]! } - public var Camera_Discard: String { return self._s[896]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[897]! } - public var Passport_RequestedInformation: String { return self._s[898]! } - public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[900]! } + public var CallSettings_TabIcon: String { return self._s[891]! } + public var ScheduledMessages_SendNow: String { return self._s[892]! } + public var Stats_GroupTopWeekdaysTitle: String { return self._s[893]! } + public var ImportStickerPack_NamePlaceholder: String { return self._s[894]! } + public var UserInfo_PhoneCall: String { return self._s[895]! } + public var Month_GenMarch: String { return self._s[896]! } + public var Camera_Discard: String { return self._s[897]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[898]! } + public var Passport_RequestedInformation: String { return self._s[899]! } + public var VoiceChat_RecordingTitlePlaceholder: String { return self._s[901]! } public func Notification_ProximityYouReached(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[901]!, self._r[901]!, [_1, _2]) + return formatWithArgumentRanges(self._s[902]!, self._r[902]!, [_1, _2]) } - public var Passport_Language_ro: String { return self._s[902]! } + public var Passport_Language_ro: String { return self._s[903]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[903]!, self._r[903]!, [_1, _2]) + return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_1, _2]) } - public var AutoDownloadSettings_ResetHelp: String { return self._s[904]! } - public var Passport_Identity_DocumentDetails: String { return self._s[906]! } - public var Passport_Address_ScansHelp: String { return self._s[907]! } - public var Location_LiveLocationRequired_Title: String { return self._s[908]! } - public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[909]! } - public var ClearCache_StorageCache: String { return self._s[910]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[911]! } - public var Conversation_RestrictedText: String { return self._s[912]! } - public var Notifications_MessageNotifications: String { return self._s[914]! } - public var Passport_Scans: String { return self._s[915]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[905]! } + public var Passport_Identity_DocumentDetails: String { return self._s[907]! } + public var Passport_Address_ScansHelp: String { return self._s[908]! } + public var Location_LiveLocationRequired_Title: String { return self._s[909]! } + public var WallpaperPreview_PreviewBottomTextAnimatable: String { return self._s[910]! } + public var ClearCache_StorageCache: String { return self._s[911]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[912]! } + public var Conversation_RestrictedText: String { return self._s[913]! } + public var Notifications_MessageNotifications: String { return self._s[915]! } + public var Passport_Scans: String { return self._s[916]! } public func VoiceChat_StatusStartsIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[917]!, self._r[917]!, [_0]) + return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_0]) } - public var TwoStepAuth_SetupHintTitle: String { return self._s[918]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[919]! } - public var Passport_Identity_SelfieHelp: String { return self._s[920]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[921]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[922]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[923]! } - public var PeerInfo_ButtonSearch: String { return self._s[924]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[919]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[920]! } + public var Passport_Identity_SelfieHelp: String { return self._s[921]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[922]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[923]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[924]! } + public var PeerInfo_ButtonSearch: String { return self._s[925]! } public func Notification_ProximityReachedYou(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[927]!, self._r[927]!, [_1, _2]) + return formatWithArgumentRanges(self._s[928]!, self._r[928]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[928]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[930]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[931]! } - public var Month_GenSeptember: String { return self._s[932]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[929]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[931]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[932]! } + public var Month_GenSeptember: String { return self._s[933]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[934]!, self._r[934]!, [_1, _2]) + return formatWithArgumentRanges(self._s[935]!, self._r[935]!, [_1, _2]) } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[935]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[936]! } public func Notification_VoiceChatInvitation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[937]!, self._r[937]!, [_1, _2]) + return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_1, _2]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_0]) + return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_0]) } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_1, _2]) - } - public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[941]!, self._r[941]!, [_1, _2]) } - public var Calls_NotNow: String { return self._s[943]! } - public var Settings_ChatFolders: String { return self._s[948]! } - public var Login_PadPhoneHelpTitle: String { return self._s[949]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[950]! } - public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[951]! } - public var VoiceChat_RecordingSaved: String { return self._s[952]! } - public var Settings_ChatBackground: String { return self._s[953]! } + public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[942]!, self._r[942]!, [_1, _2]) + } + public var Calls_NotNow: String { return self._s[944]! } + public var Settings_ChatFolders: String { return self._s[949]! } + public var Login_PadPhoneHelpTitle: String { return self._s[950]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[951]! } + public var Widget_MessageAutoremoveTimerRemoved: String { return self._s[952]! } + public var VoiceChat_RecordingSaved: String { return self._s[953]! } + public var Settings_ChatBackground: String { return self._s[954]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[955]!, self._r[955]!, [_1, _2]) + return formatWithArgumentRanges(self._s[956]!, self._r[956]!, [_1, _2]) } - public var ProxyServer_VoiceOver_Active: String { return self._s[956]! } - public var Call_StatusBusy: String { return self._s[957]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[958]! } - public var Login_NetworkError: String { return self._s[960]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[961]! } - public var Privacy_Calls_Integration: String { return self._s[962]! } - public var DialogList_SearchSectionMessages: String { return self._s[963]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[964]! } - public var Preview_DeletePhoto: String { return self._s[965]! } - public var VoiceChat_Video: String { return self._s[966]! } - public var PrivacySettings_PhoneNumber: String { return self._s[968]! } - public var Forward_ErrorDisabledForChat: String { return self._s[969]! } - public var Watch_Compose_CurrentLocation: String { return self._s[970]! } - public var Settings_CallSettings: String { return self._s[971]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[972]! } - public var Conversation_StickerRemovedFromFavorites: String { return self._s[973]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[974]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[975]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[976]! } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[977]! } - public var Map_LiveLocationFor1Hour: String { return self._s[978]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[957]! } + public var Call_StatusBusy: String { return self._s[958]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[959]! } + public var Login_NetworkError: String { return self._s[961]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[962]! } + public var Privacy_Calls_Integration: String { return self._s[963]! } + public var DialogList_SearchSectionMessages: String { return self._s[964]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[965]! } + public var Preview_DeletePhoto: String { return self._s[966]! } + public var VoiceChat_Video: String { return self._s[967]! } + public var PrivacySettings_PhoneNumber: String { return self._s[969]! } + public var Forward_ErrorDisabledForChat: String { return self._s[970]! } + public var Watch_Compose_CurrentLocation: String { return self._s[971]! } + public var Settings_CallSettings: String { return self._s[972]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[973]! } + public var Conversation_StickerRemovedFromFavorites: String { return self._s[974]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[975]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[976]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[977]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[978]! } + public var Map_LiveLocationFor1Hour: String { return self._s[979]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_0, _1]) + return formatWithArgumentRanges(self._s[980]!, self._r[980]!, [_0, _1]) } - public var VoiceChat_MutedByAdmin: String { return self._s[980]! } + public var VoiceChat_MutedByAdmin: String { return self._s[981]! } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_0]) + return formatWithArgumentRanges(self._s[982]!, self._r[982]!, [_0]) } - public var Conversation_UnvotePoll: String { return self._s[982]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[983]! } + public var Conversation_UnvotePoll: String { return self._s[983]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[984]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[984]!, self._r[984]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1, "\(_2)"]) } - public var Passport_InfoTitle: String { return self._s[985]! } + public var Passport_InfoTitle: String { return self._s[986]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[986]!, self._r[986]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[987]!, self._r[987]!, ["\(_0)"]) } - public var AccentColor_Title: String { return self._s[987]! } + public var AccentColor_Title: String { return self._s[988]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[989]!, self._r[989]!, [_1, _2]) } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[991]!, self._r[991]!, [_0]) + return formatWithArgumentRanges(self._s[992]!, self._r[992]!, [_0]) } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[992]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[993]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[994]! } - public var VoiceOver_Editing_ClearText: String { return self._s[995]! } - public var Conversation_Unarchive: String { return self._s[996]! } - public var Notification_CallOutgoing: String { return self._s[997]! } - public var Channel_Setup_PublicNoLink: String { return self._s[998]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[999]! } - public var Message_Animation: String { return self._s[1000]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1001]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[1002]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[993]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[994]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[995]! } + public var VoiceOver_Editing_ClearText: String { return self._s[996]! } + public var Conversation_Unarchive: String { return self._s[997]! } + public var Notification_CallOutgoing: String { return self._s[998]! } + public var Channel_Setup_PublicNoLink: String { return self._s[999]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1000]! } + public var Message_Animation: String { return self._s[1001]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[1002]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[1003]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1003]!, self._r[1003]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_1, _2]) } public func VoiceChat_StatusSpeakingVolume(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_0]) + return formatWithArgumentRanges(self._s[1005]!, self._r[1005]!, [_0]) } - public var Notification_CallBack: String { return self._s[1005]! } - public var Appearance_Title: String { return self._s[1008]! } - public var NotificationsSound_Glass: String { return self._s[1010]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[1012]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1014]! } - public var ChatSearch_SearchPlaceholder: String { return self._s[1015]! } - public var Passport_Identity_AddPassport: String { return self._s[1016]! } - public var GroupPermission_NoAddMembers: String { return self._s[1018]! } - public var ContactList_Context_SendMessage: String { return self._s[1019]! } - public var PhotoEditor_GrainTool: String { return self._s[1020]! } - public var Settings_CopyPhoneNumber: String { return self._s[1021]! } - public var Passport_Address_City: String { return self._s[1022]! } - public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1023]! } - public var ChannelRemoved_RemoveInfo: String { return self._s[1024]! } - public var SocksProxySetup_Password: String { return self._s[1026]! } - public var Settings_Passport: String { return self._s[1027]! } - public var Channel_MessagePhotoUpdated: String { return self._s[1029]! } - public var Stats_LanguagesTitle: String { return self._s[1030]! } - public var ChatList_PeerTypeGroup: String { return self._s[1031]! } - public var Privacy_Calls_P2PHelp: String { return self._s[1032]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[1033]! } - public var Embed_PlayingInPIP: String { return self._s[1034]! } - public var ImportStickerPack_GeneratingLink: String { return self._s[1036]! } - public var BlockedUsers_BlockUser: String { return self._s[1038]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1039]! } + public var Notification_CallBack: String { return self._s[1006]! } + public var Appearance_Title: String { return self._s[1009]! } + public var NotificationsSound_Glass: String { return self._s[1011]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[1013]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[1015]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[1016]! } + public var Passport_Identity_AddPassport: String { return self._s[1017]! } + public var GroupPermission_NoAddMembers: String { return self._s[1019]! } + public var ContactList_Context_SendMessage: String { return self._s[1020]! } + public var PhotoEditor_GrainTool: String { return self._s[1021]! } + public var Settings_CopyPhoneNumber: String { return self._s[1022]! } + public var Passport_Address_City: String { return self._s[1023]! } + public var VoiceChat_LeaveAndCancelVoiceChat: String { return self._s[1024]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[1025]! } + public var SocksProxySetup_Password: String { return self._s[1027]! } + public var Settings_Passport: String { return self._s[1028]! } + public var Channel_MessagePhotoUpdated: String { return self._s[1030]! } + public var Stats_LanguagesTitle: String { return self._s[1031]! } + public var ChatList_PeerTypeGroup: String { return self._s[1032]! } + public var Privacy_Calls_P2PHelp: String { return self._s[1033]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[1034]! } + public var Embed_PlayingInPIP: String { return self._s[1035]! } + public var ImportStickerPack_GeneratingLink: String { return self._s[1037]! } + public var BlockedUsers_BlockUser: String { return self._s[1039]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1040]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_1]) + return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_1]) } - public var AuthSessions_LoggedIn: String { return self._s[1041]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1042]! } - public var Activity_UploadingDocument: String { return self._s[1043]! } - public var PeopleNearby_NoMembers: String { return self._s[1044]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1047]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1048]! } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1049]! } - public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1050]! } - public var Settings_ViewVideo: String { return self._s[1051]! } - public var Map_ShowPlaces: String { return self._s[1053]! } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1054]! } - public var InviteLink_Create_Title: String { return self._s[1055]! } - public var Notification_CreatedGroup: String { return self._s[1056]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1057]! } + public var AuthSessions_LoggedIn: String { return self._s[1042]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[1043]! } + public var Activity_UploadingDocument: String { return self._s[1044]! } + public var PeopleNearby_NoMembers: String { return self._s[1045]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1048]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1049]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1050]! } + public var InstantPage_VoiceOver_IncreaseFontSize: String { return self._s[1051]! } + public var Settings_ViewVideo: String { return self._s[1052]! } + public var Map_ShowPlaces: String { return self._s[1054]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1055]! } + public var InviteLink_Create_Title: String { return self._s[1056]! } + public var Notification_CreatedGroup: String { return self._s[1057]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[1058]! } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1058]!, self._r[1058]!, [_0]) + return formatWithArgumentRanges(self._s[1059]!, self._r[1059]!, [_0]) } - public var Conversation_StatusLeftGroup: String { return self._s[1059]! } - public var Theme_Colors_Messages: String { return self._s[1060]! } - public var AuthSessions_EmptyText: String { return self._s[1061]! } + public var Conversation_StatusLeftGroup: String { return self._s[1060]! } + public var Theme_Colors_Messages: String { return self._s[1061]! } + public var AuthSessions_EmptyText: String { return self._s[1062]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1062]!, self._r[1062]!, [_1]) + return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1]) } - public var UserInfo_StartSecretChat: String { return self._s[1063]! } - public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1064]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1065]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1066]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1068]! } - public var PeerInfo_PaneFiles: String { return self._s[1069]! } - public var VoiceChat_DisplayAs: String { return self._s[1070]! } - public var PrivacySettings_AutoArchive: String { return self._s[1071]! } - public var Camera_VideoMode: String { return self._s[1072]! } - public var NotificationsSound_Alert: String { return self._s[1073]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1074]! } - public var Appearance_AutoNightTheme: String { return self._s[1075]! } - public var Passport_Language_he: String { return self._s[1076]! } - public var Passport_InvalidPasswordError: String { return self._s[1077]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1078]! } - public var UserInfo_InviteBotToGroup: String { return self._s[1079]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1080]! } - public var Common_TakePhoto: String { return self._s[1081]! } + public var UserInfo_StartSecretChat: String { return self._s[1064]! } + public var ChatListFolderSettings_EditFoldersInfo: String { return self._s[1065]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[1066]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1067]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1069]! } + public var PeerInfo_PaneFiles: String { return self._s[1070]! } + public var VoiceChat_DisplayAs: String { return self._s[1071]! } + public var PrivacySettings_AutoArchive: String { return self._s[1072]! } + public var Camera_VideoMode: String { return self._s[1073]! } + public var NotificationsSound_Alert: String { return self._s[1074]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1075]! } + public var Appearance_AutoNightTheme: String { return self._s[1076]! } + public var Passport_Language_he: String { return self._s[1077]! } + public var Passport_InvalidPasswordError: String { return self._s[1078]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1079]! } + public var UserInfo_InviteBotToGroup: String { return self._s[1080]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[1081]! } + public var Common_TakePhoto: String { return self._s[1082]! } public func Channel_AdminLog_RevokedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1082]!, self._r[1082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1083]!, self._r[1083]!, [_1, _2]) } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1083]! } - public var ChatList_Context_JoinChannel: String { return self._s[1084]! } - public var MediaPlayer_UnknownArtist: String { return self._s[1085]! } - public var VoiceChat_EditDescriptionText: String { return self._s[1086]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1089]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[1090]! } - public var EditTheme_UploadEditedTheme: String { return self._s[1091]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[1093]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1094]! } - public var MessagePoll_ViewResults: String { return self._s[1095]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[1096]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[1084]! } + public var ChatList_Context_JoinChannel: String { return self._s[1085]! } + public var MediaPlayer_UnknownArtist: String { return self._s[1086]! } + public var VoiceChat_EditDescriptionText: String { return self._s[1087]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[1090]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1091]! } + public var EditTheme_UploadEditedTheme: String { return self._s[1092]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[1094]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1095]! } + public var MessagePoll_ViewResults: String { return self._s[1096]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[1097]! } public func UserInfo_ContactForwardTooltip_Chat_One(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1097]!, self._r[1097]!, [_0]) + return formatWithArgumentRanges(self._s[1098]!, self._r[1098]!, [_0]) } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1098]! } - public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1099]! } - public var ChatList_Search_ShowLess: String { return self._s[1100]! } - public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1101]! } - public var UserInfo_ShareBot: String { return self._s[1102]! } - public var Privacy_Calls_P2P: String { return self._s[1104]! } - public var WebBrowser_InAppSafari: String { return self._s[1105]! } - public var SharedMedia_EmptyFilesText: String { return self._s[1108]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1109]! } - public var GroupInfo_SetSound: String { return self._s[1110]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1111]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1099]! } + public var Privacy_PaymentsClear_ShippingInfoCleared: String { return self._s[1100]! } + public var ChatList_Search_ShowLess: String { return self._s[1101]! } + public var InviteLink_Create_UsersLimitNoLimit: String { return self._s[1102]! } + public var UserInfo_ShareBot: String { return self._s[1103]! } + public var Privacy_Calls_P2P: String { return self._s[1105]! } + public var WebBrowser_InAppSafari: String { return self._s[1106]! } + public var SharedMedia_EmptyFilesText: String { return self._s[1109]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[1110]! } + public var GroupInfo_SetSound: String { return self._s[1111]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1112]! } public func Conversation_AutoremoveRemainingTime(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1112]!, self._r[1112]!, [_0]) + return formatWithArgumentRanges(self._s[1113]!, self._r[1113]!, [_0]) } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1113]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[1114]! } - public var CallSettings_UseLessData: String { return self._s[1115]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[1116]! } - public var NotificationsSound_Chord: String { return self._s[1117]! } - public var PhotoEditor_CurvesTool: String { return self._s[1118]! } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1119]! } - public var Resolve_ErrorNotFound: String { return self._s[1120]! } - public var Activity_PlayingGame: String { return self._s[1121]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1114]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[1115]! } + public var CallSettings_UseLessData: String { return self._s[1116]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[1117]! } + public var NotificationsSound_Chord: String { return self._s[1118]! } + public var PhotoEditor_CurvesTool: String { return self._s[1119]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1120]! } + public var Resolve_ErrorNotFound: String { return self._s[1121]! } + public var Activity_PlayingGame: String { return self._s[1122]! } public func VoiceChat_InvitedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1125]!, self._r[1125]!, [_0]) + return formatWithArgumentRanges(self._s[1126]!, self._r[1126]!, [_0]) } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1126]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1127]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1127]!, self._r[1127]!, [_1]) + return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_1]) } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1128]! } - public var Notification_CallIncoming: String { return self._s[1129]! } - public var Stats_EnabledNotifications: String { return self._s[1130]! } - public var Notification_VoiceChatStartedChannel: String { return self._s[1131]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1132]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1133]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1129]! } + public var Notification_CallIncoming: String { return self._s[1130]! } + public var Stats_EnabledNotifications: String { return self._s[1131]! } + public var Notification_VoiceChatStartedChannel: String { return self._s[1132]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1133]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1134]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1134]!, self._r[1134]!, [_0]) + return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_0]) } - public var VoiceChat_StatusMutedYou: String { return self._s[1135]! } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1136]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1137]! } - public var StickerPacksSettings_Title: String { return self._s[1138]! } + public var VoiceChat_StatusMutedYou: String { return self._s[1136]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[1137]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[1138]! } + public var StickerPacksSettings_Title: String { return self._s[1139]! } public func Channel_AdminLog_MessageGroupPreHistoryVisible(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1139]!, self._r[1139]!, [_0]) + return formatWithArgumentRanges(self._s[1140]!, self._r[1140]!, [_0]) } - public var Watch_NoConnection: String { return self._s[1140]! } - public var EncryptionKey_Title: String { return self._s[1141]! } - public var Widget_AuthRequired: String { return self._s[1142]! } + public var Watch_NoConnection: String { return self._s[1141]! } + public var EncryptionKey_Title: String { return self._s[1142]! } + public var Widget_AuthRequired: String { return self._s[1143]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1143]!, self._r[1143]!, [_1]) + return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_1]) } - public var Notifications_ExceptionsTitle: String { return self._s[1144]! } - public var EditTheme_Expand_TopInfo: String { return self._s[1145]! } + public var Notifications_ExceptionsTitle: String { return self._s[1145]! } + public var EditTheme_Expand_TopInfo: String { return self._s[1146]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1146]!, self._r[1146]!, [_0]) + return formatWithArgumentRanges(self._s[1147]!, self._r[1147]!, [_0]) } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1148]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1149]! } - public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1150]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[1151]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[1149]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1150]! } + public var VoiceChat_SpeakPermissionAdmin: String { return self._s[1151]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1152]! } public func VoiceChat_RemovePeerConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1154]!, self._r[1154]!, [_0]) + return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) } - public var Conversation_AddToContacts: String { return self._s[1155]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1156]! } - public var AuthSessions_LogOutApplications: String { return self._s[1158]! } - public var VoiceChat_LeaveVoiceChat: String { return self._s[1159]! } - public var ChatList_Context_Unpin: String { return self._s[1160]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[1161]! } - public var UserInfo_FakeBotWarning: String { return self._s[1162]! } - public var Notification_MessageLifetime1d: String { return self._s[1163]! } - public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1164]! } - public var ChatListFolder_CategoryChannels: String { return self._s[1165]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1166]! } - public var Notifications_PermissionsAllow: String { return self._s[1167]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[1168]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1170]! } - public var VoiceChat_ImproveYourProfileText: String { return self._s[1171]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1172]! } - public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1173]! } + public var Conversation_AddToContacts: String { return self._s[1156]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[1157]! } + public var AuthSessions_LogOutApplications: String { return self._s[1159]! } + public var VoiceChat_LeaveVoiceChat: String { return self._s[1160]! } + public var ChatList_Context_Unpin: String { return self._s[1161]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[1162]! } + public var UserInfo_FakeBotWarning: String { return self._s[1163]! } + public var Notification_MessageLifetime1d: String { return self._s[1164]! } + public var PrivacyLastSeenSettings_NeverShareWith_Title: String { return self._s[1165]! } + public var ChatListFolder_CategoryChannels: String { return self._s[1166]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[1167]! } + public var Notifications_PermissionsAllow: String { return self._s[1168]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[1169]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1171]! } + public var VoiceChat_ImproveYourProfileText: String { return self._s[1172]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1173]! } + public var ChatImportActivity_ErrorInvalidChatType: String { return self._s[1174]! } public func Conversation_ScheduledVoiceChatStartsToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1174]!, self._r[1174]!, [_0]) - } - public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1175]!, self._r[1175]!, [_0]) } - public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1177]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[1179]! } - public var WallpaperSearch_ColorPink: String { return self._s[1180]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[1181]! } - public var Passport_Identity_IssueDate: String { return self._s[1183]! } + public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1176]!, self._r[1176]!, [_0]) + } + public var Conversation_AutoremoveTimerRemovedChannel: String { return self._s[1178]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[1180]! } + public var WallpaperSearch_ColorPink: String { return self._s[1181]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[1182]! } + public var Passport_Identity_IssueDate: String { return self._s[1184]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1184]!, self._r[1184]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1185]!, self._r[1185]!, [_1, _2]) } - public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1185]! } - public var Channel_Info_Description: String { return self._s[1186]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1187]! } - public var Weekday_ShortTuesday: String { return self._s[1188]! } - public var Common_Back: String { return self._s[1189]! } - public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1191]! } - public var ChatListFolder_AddChats: String { return self._s[1192]! } - public var Common_Close: String { return self._s[1194]! } - public var Map_OpenIn: String { return self._s[1195]! } - public var Group_Setup_HistoryTitle: String { return self._s[1196]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1197]! } - public var Notification_MessageLifetime1h: String { return self._s[1198]! } + public var ChatList_DeleteForAllSubscribersConfirmationText: String { return self._s[1186]! } + public var Channel_Info_Description: String { return self._s[1187]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1188]! } + public var Weekday_ShortTuesday: String { return self._s[1189]! } + public var Common_Back: String { return self._s[1190]! } + public var Chat_PinnedMessagesHiddenTitle: String { return self._s[1192]! } + public var ChatListFolder_AddChats: String { return self._s[1193]! } + public var Common_Close: String { return self._s[1195]! } + public var Map_OpenIn: String { return self._s[1196]! } + public var Group_Setup_HistoryTitle: String { return self._s[1197]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1198]! } + public var Notification_MessageLifetime1h: String { return self._s[1199]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_0]) + return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) } - public var Watch_Contacts_NoResults: String { return self._s[1201]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1202]! } - public var Checkout_Phone: String { return self._s[1203]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[1204]! } + public var Watch_Contacts_NoResults: String { return self._s[1202]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1203]! } + public var Checkout_Phone: String { return self._s[1204]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[1205]! } public func Channel_CommentsGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_0]) + return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_0]) } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, ["\(_0)"]) } - public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1207]! } - public var ChatAdmins_Title: String { return self._s[1208]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1209]! } + public var Conversation_AudioRateTooltipSpeedUp: String { return self._s[1208]! } + public var ChatAdmins_Title: String { return self._s[1209]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[1210]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1210]!, self._r[1210]!, [_1]) + return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_1]) } - public var Common_Done: String { return self._s[1211]! } - public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1212]! } - public var Appearance_AppIconNew2: String { return self._s[1213]! } + public var Common_Done: String { return self._s[1212]! } + public var ChatList_HeaderImportIntoAnExistingGroup: String { return self._s[1213]! } + public var Appearance_AppIconNew2: String { return self._s[1214]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1217]!, self._r[1217]!, [_1]) + return formatWithArgumentRanges(self._s[1218]!, self._r[1218]!, [_1]) } - public var Appearance_ThemeCarouselNight: String { return self._s[1218]! } - public var InviteLink_Expired: String { return self._s[1220]! } - public var Preview_OpenInInstagram: String { return self._s[1221]! } - public var Wallpaper_SetColor: String { return self._s[1226]! } - public var VoiceOver_Media_PlaybackRate: String { return self._s[1227]! } - public var ChatSettings_Groups: String { return self._s[1228]! } + public var Appearance_ThemeCarouselNight: String { return self._s[1219]! } + public var InviteLink_Expired: String { return self._s[1221]! } + public var Preview_OpenInInstagram: String { return self._s[1222]! } + public var Wallpaper_SetColor: String { return self._s[1227]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[1228]! } + public var ChatSettings_Groups: String { return self._s[1229]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1229]!, self._r[1229]!, [_0]) + return formatWithArgumentRanges(self._s[1230]!, self._r[1230]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[1230]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1231]! } - public var Channel_Management_LabelCreator: String { return self._s[1232]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1233]! } + public var Contacts_SortedByName: String { return self._s[1231]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1232]! } + public var Channel_Management_LabelCreator: String { return self._s[1233]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1234]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1234]!, self._r[1234]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_0, _1]) } - public var Group_GroupMembersHeader: String { return self._s[1235]! } - public var Group_PublicLink_Title: String { return self._s[1236]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1237]! } - public var VoiceOver_Chat_Photo: String { return self._s[1238]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1239]! } - public var IntentsSettings_SuggestBy: String { return self._s[1240]! } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1241]! } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1242]! } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1243]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1244]! } - public var Map_OpenInMaps: String { return self._s[1245]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1246]! } - public var BlockedUsers_Unblock: String { return self._s[1247]! } + public var Group_GroupMembersHeader: String { return self._s[1236]! } + public var Group_PublicLink_Title: String { return self._s[1237]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1238]! } + public var VoiceOver_Chat_Photo: String { return self._s[1239]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[1240]! } + public var IntentsSettings_SuggestBy: String { return self._s[1241]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[1242]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1243]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1244]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1245]! } + public var Map_OpenInMaps: String { return self._s[1246]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[1247]! } + public var BlockedUsers_Unblock: String { return self._s[1248]! } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1248]!, self._r[1248]!, [_1, _2]) - } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1249]!, self._r[1249]!, [_1, _2]) } - public var ChatImport_CreateGroupAlertTitle: String { return self._s[1251]! } - public var Conversation_Block: String { return self._s[1252]! } - public var VoiceChat_PersonalAccount: String { return self._s[1253]! } - public var Passport_Scans_UploadNew: String { return self._s[1254]! } - public var Share_Title: String { return self._s[1255]! } - public var Conversation_ApplyLocalization: String { return self._s[1256]! } - public var SharedMedia_EmptyLinksText: String { return self._s[1257]! } - public var Settings_NotificationsAndSounds: String { return self._s[1258]! } - public var Stats_ViewsByHoursTitle: String { return self._s[1259]! } - public var PhotoEditor_QualityMedium: String { return self._s[1260]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[1261]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1250]!, self._r[1250]!, [_1, _2]) + } + public var ChatImport_CreateGroupAlertTitle: String { return self._s[1252]! } + public var Conversation_Block: String { return self._s[1253]! } + public var VoiceChat_PersonalAccount: String { return self._s[1254]! } + public var Passport_Scans_UploadNew: String { return self._s[1255]! } + public var Share_Title: String { return self._s[1256]! } + public var Conversation_ApplyLocalization: String { return self._s[1257]! } + public var SharedMedia_EmptyLinksText: String { return self._s[1258]! } + public var Settings_NotificationsAndSounds: String { return self._s[1259]! } + public var Stats_ViewsByHoursTitle: String { return self._s[1260]! } + public var PhotoEditor_QualityMedium: String { return self._s[1261]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[1262]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1263]!, self._r[1263]!, [_1, _2]) } - public var Conversation_RestrictedInline: String { return self._s[1263]! } - public var Passport_Language_tr: String { return self._s[1264]! } - public var Call_Mute: String { return self._s[1265]! } + public var Conversation_RestrictedInline: String { return self._s[1264]! } + public var Passport_Language_tr: String { return self._s[1265]! } + public var Call_Mute: String { return self._s[1266]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_0]) + return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_0]) } - public var Passport_Language_bn: String { return self._s[1267]! } - public var Common_Save: String { return self._s[1269]! } - public var AccessDenied_LocationTracking: String { return self._s[1271]! } - public var Month_ShortOctober: String { return self._s[1272]! } - public var AutoDownloadSettings_WiFi: String { return self._s[1273]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[1275]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1276]! } + public var Passport_Language_bn: String { return self._s[1268]! } + public var Common_Save: String { return self._s[1270]! } + public var AccessDenied_LocationTracking: String { return self._s[1272]! } + public var Month_ShortOctober: String { return self._s[1273]! } + public var AutoDownloadSettings_WiFi: String { return self._s[1274]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[1276]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[1277]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1277]!, self._r[1277]!, [_0]) + return formatWithArgumentRanges(self._s[1278]!, self._r[1278]!, [_0]) } - public var Watch_ChannelInfo_Title: String { return self._s[1278]! } - public var State_Updating: String { return self._s[1279]! } - public var Conversation_UnblockUser: String { return self._s[1280]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1281]! } - public var Map_GetDirections: String { return self._s[1282]! } - public var Watch_Compose_AddContact: String { return self._s[1284]! } - public var Conversation_Dice_u26BD: String { return self._s[1285]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1286]! } + public var Watch_ChannelInfo_Title: String { return self._s[1279]! } + public var State_Updating: String { return self._s[1280]! } + public var Conversation_UnblockUser: String { return self._s[1281]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1282]! } + public var Map_GetDirections: String { return self._s[1283]! } + public var Watch_Compose_AddContact: String { return self._s[1285]! } + public var Conversation_Dice_u26BD: String { return self._s[1286]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1287]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1287]!, self._r[1287]!, [_1]) + return formatWithArgumentRanges(self._s[1288]!, self._r[1288]!, [_1]) } - public var Map_LoadError: String { return self._s[1289]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1290]! } - public var PhotoEditor_CropAuto: String { return self._s[1291]! } + public var Map_LoadError: String { return self._s[1290]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[1291]! } + public var PhotoEditor_CropAuto: String { return self._s[1292]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1294]!, self._r[1294]!, [_0]) + return formatWithArgumentRanges(self._s[1295]!, self._r[1295]!, [_0]) } - public var Username_TooManyPublicUsernamesError: String { return self._s[1296]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[1297]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1297]!, self._r[1297]!, [_1]) + return formatWithArgumentRanges(self._s[1298]!, self._r[1298]!, [_1]) } - public var Settings_PhoneNumber: String { return self._s[1298]! } + public var Settings_PhoneNumber: String { return self._s[1299]! } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_1]) + return formatWithArgumentRanges(self._s[1300]!, self._r[1300]!, [_1]) } - public var Month_GenJune: String { return self._s[1301]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1302]! } - public var ChatListFolder_CategoryRead: String { return self._s[1303]! } - public var LoginPassword_ResetAccount: String { return self._s[1304]! } + public var Month_GenJune: String { return self._s[1302]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[1303]! } + public var ChatListFolder_CategoryRead: String { return self._s[1304]! } + public var LoginPassword_ResetAccount: String { return self._s[1305]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1305]!, self._r[1305]!, [_0]) + return formatWithArgumentRanges(self._s[1306]!, self._r[1306]!, [_0]) } - public var Call_CameraConfirmationConfirm: String { return self._s[1306]! } - public var Notification_RenamedChannel: String { return self._s[1307]! } + public var Call_CameraConfirmationConfirm: String { return self._s[1307]! } + public var Notification_RenamedChannel: String { return self._s[1308]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) + return formatWithArgumentRanges(self._s[1309]!, self._r[1309]!, [_0]) } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1309]! } - public var IntentsSettings_Title: String { return self._s[1311]! } - public var CallList_DeleteAllForMe: String { return self._s[1312]! } - public var Settings_AppleWatch: String { return self._s[1313]! } - public var Conversation_LinkCopied: String { return self._s[1314]! } - public var DialogList_NoMessagesText: String { return self._s[1315]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[1310]! } + public var IntentsSettings_Title: String { return self._s[1312]! } + public var CallList_DeleteAllForMe: String { return self._s[1313]! } + public var Settings_AppleWatch: String { return self._s[1314]! } + public var Conversation_LinkCopied: String { return self._s[1315]! } + public var DialogList_NoMessagesText: String { return self._s[1316]! } public func VoiceChat_SendPublicLinkText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1316]!, self._r[1316]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1, _2]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1317]! } - public var Channel_ErrorAccessDenied: String { return self._s[1319]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1320]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1318]! } + public var Channel_ErrorAccessDenied: String { return self._s[1320]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1321]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1321]!, self._r[1321]!, [_0]) + return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_0]) } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1322]! } - public var StickerPacksSettings_AnimatedStickers: String { return self._s[1323]! } - public var Month_ShortJanuary: String { return self._s[1324]! } - public var Conversation_UnreadMessages: String { return self._s[1325]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[1327]! } - public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1328]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[1330]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1331]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1323]! } + public var StickerPacksSettings_AnimatedStickers: String { return self._s[1324]! } + public var Month_ShortJanuary: String { return self._s[1325]! } + public var Conversation_UnreadMessages: String { return self._s[1326]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[1328]! } + public var Call_VoiceOver_VideoCallCanceled: String { return self._s[1329]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[1331]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1332]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_1, _2]) } - public var Widget_ApplicationLocked: String { return self._s[1336]! } + public var Widget_ApplicationLocked: String { return self._s[1337]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_0]) + return formatWithArgumentRanges(self._s[1338]!, self._r[1338]!, [_0]) } - public var Common_TakePhotoOrVideo: String { return self._s[1338]! } - public var Passport_Language_ru: String { return self._s[1340]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[1341]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[1342]! } + public var Common_TakePhotoOrVideo: String { return self._s[1339]! } + public var Passport_Language_ru: String { return self._s[1341]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[1342]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[1343]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_0]) + return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0]) } - public var VoiceChat_ShareShort: String { return self._s[1345]! } - public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1346]! } - public var Conversation_Owner: String { return self._s[1348]! } - public var Settings_FAQ_Intro: String { return self._s[1349]! } - public var PhotoEditor_QualityLow: String { return self._s[1351]! } - public var Widget_GalleryTitle: String { return self._s[1352]! } - public var Call_End: String { return self._s[1353]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1355]! } - public var Privacy_ContactsSyncHelp: String { return self._s[1356]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[1360]! } - public var Conversation_Call: String { return self._s[1362]! } - public var Watch_MessageView_Title: String { return self._s[1363]! } + public var VoiceChat_ShareShort: String { return self._s[1346]! } + public var Channel_Members_AddAdminErrorBlacklisted: String { return self._s[1347]! } + public var Conversation_Owner: String { return self._s[1349]! } + public var Settings_FAQ_Intro: String { return self._s[1350]! } + public var PhotoEditor_QualityLow: String { return self._s[1352]! } + public var Widget_GalleryTitle: String { return self._s[1353]! } + public var Call_End: String { return self._s[1354]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1356]! } + public var Privacy_ContactsSyncHelp: String { return self._s[1357]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[1361]! } + public var Conversation_Call: String { return self._s[1363]! } + public var Watch_MessageView_Title: String { return self._s[1364]! } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1364]!, self._r[1364]!, [_0]) + return formatWithArgumentRanges(self._s[1365]!, self._r[1365]!, [_0]) } - public var Passport_PasswordCompleteSetup: String { return self._s[1365]! } + public var Passport_PasswordCompleteSetup: String { return self._s[1366]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0]) + return formatWithArgumentRanges(self._s[1367]!, self._r[1367]!, [_0]) } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0]) + return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0]) } - public var Map_Location: String { return self._s[1369]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1370]! } - public var Login_CountryCode: String { return self._s[1371]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1373]! } - public var ChatState_ConnectingToProxy: String { return self._s[1374]! } - public var Login_CallRequestState3: String { return self._s[1375]! } - public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1378]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1379]! } - public var Widget_ChatsGalleryDescription: String { return self._s[1381]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1383]! } - public var InstantPage_FontSanFrancisco: String { return self._s[1384]! } - public var Call_StatusEnded: String { return self._s[1385]! } + public var Map_Location: String { return self._s[1370]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1371]! } + public var Login_CountryCode: String { return self._s[1372]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[1374]! } + public var ChatState_ConnectingToProxy: String { return self._s[1375]! } + public var Login_CallRequestState3: String { return self._s[1376]! } + public var NetworkUsageSettings_MediaAudioDataSection: String { return self._s[1379]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1380]! } + public var Widget_ChatsGalleryDescription: String { return self._s[1382]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[1384]! } + public var InstantPage_FontSanFrancisco: String { return self._s[1385]! } + public var Call_StatusEnded: String { return self._s[1386]! } public func Checkout_SuccessfulTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1388]!, self._r[1388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1389]!, self._r[1389]!, [_1, _2]) } - public var MusicPlayer_VoiceNote: String { return self._s[1389]! } - public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1390]! } + public var MusicPlayer_VoiceNote: String { return self._s[1390]! } + public var ChatImportActivity_ErrorUserBlocked: String { return self._s[1391]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1392]!, self._r[1392]!, [_1, _2]) } - public var VoiceOver_MessageContextShare: String { return self._s[1392]! } - public var ProfilePhoto_SearchWeb: String { return self._s[1393]! } - public var EditProfile_Title: String { return self._s[1394]! } + public var VoiceOver_MessageContextShare: String { return self._s[1393]! } + public var ProfilePhoto_SearchWeb: String { return self._s[1394]! } + public var EditProfile_Title: String { return self._s[1395]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1395]!, self._r[1395]!, [_0]) + return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0]) } - public var VoiceChat_Unmute: String { return self._s[1396]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1397]! } - public var NetworkUsageSettings_ResetStats: String { return self._s[1399]! } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1400]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[1401]! } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1402]! } + public var VoiceChat_Unmute: String { return self._s[1397]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[1398]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1400]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[1401]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[1402]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[1403]! } public func Call_ParticipantVideoVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1403]!, self._r[1403]!, [_0]) + return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0]) } - public var Location_ProximityNotification_Title: String { return self._s[1404]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1405]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1408]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1409]! } - public var Stats_GroupMembersTitle: String { return self._s[1410]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1411]! } - public var InviteLink_InviteLinkRevoked: String { return self._s[1412]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1413]! } - public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1414]! } - public var Settings_SetUsername: String { return self._s[1415]! } - public var GroupInfo_ActionRestrict: String { return self._s[1416]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1417]! } + public var Location_ProximityNotification_Title: String { return self._s[1405]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[1406]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1409]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[1410]! } + public var Stats_GroupMembersTitle: String { return self._s[1411]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[1412]! } + public var InviteLink_InviteLinkRevoked: String { return self._s[1413]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1414]! } + public var OpenFile_PotentiallyDangerousContentAlert: String { return self._s[1415]! } + public var Settings_SetUsername: String { return self._s[1416]! } + public var GroupInfo_ActionRestrict: String { return self._s[1417]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1418]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1418]!, self._r[1418]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1419]!, self._r[1419]!, [_1, _2, _3]) } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1420]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1421]! } - public var Conversation_ContextMenuDelete: String { return self._s[1422]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1423]! } - public var ChatList_PsaAlert_covid: String { return self._s[1426]! } - public var VoiceOver_SilentPostOn: String { return self._s[1427]! } - public var DialogList_Pin: String { return self._s[1428]! } - public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1429]! } - public var PrivacySettings_SecurityTitle: String { return self._s[1430]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1431]! } - public var PeopleNearby_Groups: String { return self._s[1432]! } - public var Message_File: String { return self._s[1433]! } - public var Calls_NoCallsPlaceholder: String { return self._s[1434]! } - public var ChatList_GenericPsaLabel: String { return self._s[1437]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[1438]! } - public var IntentsSettings_Reset: String { return self._s[1440]! } - public var Call_ConnectionErrorTitle: String { return self._s[1441]! } - public var PhotoEditor_SaturationTool: String { return self._s[1442]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1443]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1444]! } - public var Conversation_SearchNoResults: String { return self._s[1445]! } - public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1446]! } - public var Map_OpenInWaze: String { return self._s[1447]! } - public var InviteLink_PeopleJoinedNone: String { return self._s[1448]! } - public var WallpaperPreview_Title: String { return self._s[1449]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1421]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1422]! } + public var Conversation_ContextMenuDelete: String { return self._s[1423]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1424]! } + public var ChatList_PsaAlert_covid: String { return self._s[1427]! } + public var VoiceOver_SilentPostOn: String { return self._s[1428]! } + public var DialogList_Pin: String { return self._s[1429]! } + public var Channel_AdminLog_CanInviteUsersViaLink: String { return self._s[1430]! } + public var PrivacySettings_SecurityTitle: String { return self._s[1431]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[1432]! } + public var PeopleNearby_Groups: String { return self._s[1433]! } + public var Message_File: String { return self._s[1434]! } + public var Calls_NoCallsPlaceholder: String { return self._s[1435]! } + public var ChatList_GenericPsaLabel: String { return self._s[1438]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[1439]! } + public var IntentsSettings_Reset: String { return self._s[1441]! } + public var Call_ConnectionErrorTitle: String { return self._s[1442]! } + public var PhotoEditor_SaturationTool: String { return self._s[1443]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[1444]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1445]! } + public var Conversation_SearchNoResults: String { return self._s[1446]! } + public var Channel_DiscussionGroup_PrivateChannel: String { return self._s[1447]! } + public var Map_OpenInWaze: String { return self._s[1448]! } + public var InviteLink_PeopleJoinedNone: String { return self._s[1449]! } + public var WallpaperPreview_Title: String { return self._s[1450]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2]) } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1452]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1453]! } - public var VoiceOver_Chat_ChannelInfo: String { return self._s[1454]! } - public var Conversation_ImageCopied: String { return self._s[1455]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1456]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[1458]! } - public var Stats_Total: String { return self._s[1461]! } - public var Stats_GroupMessages: String { return self._s[1462]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1463]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1464]! } - public var VoiceChat_You: String { return self._s[1465]! } - public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1466]! } - public var Passport_Identity_Translation: String { return self._s[1467]! } - public var Notifications_TextTone: String { return self._s[1470]! } - public var Settings_RemoveConfirmation: String { return self._s[1472]! } - public var ScheduledMessages_Delete: String { return self._s[1473]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1474]! } - public var Passport_PasswordNext: String { return self._s[1475]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[1453]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[1454]! } + public var VoiceOver_Chat_ChannelInfo: String { return self._s[1455]! } + public var Conversation_ImageCopied: String { return self._s[1456]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[1457]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[1459]! } + public var Stats_Total: String { return self._s[1462]! } + public var Stats_GroupMessages: String { return self._s[1463]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1464]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[1465]! } + public var VoiceChat_You: String { return self._s[1466]! } + public var VoiceChat_DisplayAsInfoGroup: String { return self._s[1467]! } + public var Passport_Identity_Translation: String { return self._s[1468]! } + public var Notifications_TextTone: String { return self._s[1471]! } + public var Settings_RemoveConfirmation: String { return self._s[1473]! } + public var ScheduledMessages_Delete: String { return self._s[1474]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[1475]! } + public var Passport_PasswordNext: String { return self._s[1476]! } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1476]!, self._r[1476]!, [_1]) + return formatWithArgumentRanges(self._s[1477]!, self._r[1477]!, [_1]) } - public var Passport_Address_EditBankStatement: String { return self._s[1477]! } - public var PhotoEditor_ShadowsTool: String { return self._s[1478]! } - public var Notification_VideoCallMissed: String { return self._s[1479]! } - public var AccessDenied_CameraDisabled: String { return self._s[1481]! } - public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1482]! } - public var Notifications_ExceptionsMuted: String { return self._s[1483]! } - public var VoiceChat_TapToViewScreenVideo: String { return self._s[1484]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1485]! } - public var Channel_BlackList_Title: String { return self._s[1486]! } - public var PasscodeSettings_4DigitCode: String { return self._s[1487]! } - public var NotificationsSound_Bamboo: String { return self._s[1488]! } - public var Conversation_InputMenu: String { return self._s[1489]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[1490]! } - public var Passport_Address_TypeUtilityBill: String { return self._s[1491]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[1492]! } - public var GroupPermission_SectionTitle: String { return self._s[1493]! } - public var InviteLink_ContextRevoke: String { return self._s[1494]! } + public var Passport_Address_EditBankStatement: String { return self._s[1478]! } + public var PhotoEditor_ShadowsTool: String { return self._s[1479]! } + public var Notification_VideoCallMissed: String { return self._s[1480]! } + public var AccessDenied_CameraDisabled: String { return self._s[1482]! } + public var AuthSessions_AddDevice_ScanInfo: String { return self._s[1483]! } + public var Notifications_ExceptionsMuted: String { return self._s[1484]! } + public var VoiceChat_TapToViewScreenVideo: String { return self._s[1485]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[1486]! } + public var Channel_BlackList_Title: String { return self._s[1487]! } + public var PasscodeSettings_4DigitCode: String { return self._s[1488]! } + public var NotificationsSound_Bamboo: String { return self._s[1489]! } + public var Conversation_InputMenu: String { return self._s[1490]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[1491]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[1492]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[1493]! } + public var GroupPermission_SectionTitle: String { return self._s[1494]! } + public var InviteLink_ContextRevoke: String { return self._s[1495]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1495]!, self._r[1495]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1496]!, self._r[1496]!, [_0, _1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1496]! } - public var Channel_LeaveChannel: String { return self._s[1497]! } - public var Watch_Notification_Joined: String { return self._s[1498]! } - public var PeerInfo_ButtonMore: String { return self._s[1499]! } - public var Passport_FieldEmailHelp: String { return self._s[1500]! } - public var ChatList_Context_Pin: String { return self._s[1501]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1497]! } + public var Channel_LeaveChannel: String { return self._s[1498]! } + public var Watch_Notification_Joined: String { return self._s[1499]! } + public var PeerInfo_ButtonMore: String { return self._s[1500]! } + public var Passport_FieldEmailHelp: String { return self._s[1501]! } + public var ChatList_Context_Pin: String { return self._s[1502]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1502]!, self._r[1502]!, [_0]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) } - public var Group_Location_CreateInThisPlace: String { return self._s[1503]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[1504]! } - public var Tour_Title5: String { return self._s[1505]! } + public var Group_Location_CreateInThisPlace: String { return self._s[1504]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[1505]! } + public var Tour_Title5: String { return self._s[1506]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1507]!, self._r[1507]!, [_1, _2]) } - public var Passport_Language_en: String { return self._s[1507]! } - public var Checkout_Name: String { return self._s[1508]! } - public var ChatImport_Title: String { return self._s[1509]! } + public var Passport_Language_en: String { return self._s[1508]! } + public var Checkout_Name: String { return self._s[1509]! } + public var ChatImport_Title: String { return self._s[1510]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1510]!, self._r[1510]!, [_0]) + return formatWithArgumentRanges(self._s[1511]!, self._r[1511]!, [_0]) } - public var PhotoEditor_EnhanceTool: String { return self._s[1511]! } + public var PhotoEditor_EnhanceTool: String { return self._s[1512]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1512]!, self._r[1512]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1, _2]) } public func VoiceChat_UserCanNowSpeak(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) + return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) } - public var PeerInfo_CustomizeNotifications: String { return self._s[1514]! } + public var PeerInfo_CustomizeNotifications: String { return self._s[1515]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) + return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_0]) } - public var Group_ErrorSendRestrictedMedia: String { return self._s[1516]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[1517]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_0]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) } - public var Login_UnknownError: String { return self._s[1518]! } - public var Conversation_ImportedMessageHint: String { return self._s[1520]! } + public var Login_UnknownError: String { return self._s[1519]! } + public var Conversation_ImportedMessageHint: String { return self._s[1521]! } public func VoiceChat_ForwardTooltip_Chat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1521]!, self._r[1521]!, [_0]) + return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1523]! } - public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1524]! } - public var Watch_PhotoView_Title: String { return self._s[1525]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1526]! } - public var Checkout_TotalAmount: String { return self._s[1527]! } - public var ChatList_RemoveFolderAction: String { return self._s[1528]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1524]! } + public var ChatList_AutoarchiveSuggestion_Title: String { return self._s[1525]! } + public var Watch_PhotoView_Title: String { return self._s[1526]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[1527]! } + public var Checkout_TotalAmount: String { return self._s[1528]! } + public var ChatList_RemoveFolderAction: String { return self._s[1529]! } public func GroupInfo_Permissions_BroadcastConvertInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1529]!, self._r[1529]!, [_0]) + return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_0]) } - public var GroupInfo_SetGroupPhoto: String { return self._s[1530]! } - public var Watch_AppName: String { return self._s[1531]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1531]! } + public var Watch_AppName: String { return self._s[1532]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1532]!, self._r[1532]!, [_1]) + return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1]) } - public var Channel_Username_CheckingUsername: String { return self._s[1533]! } - public var ContactList_Context_Call: String { return self._s[1534]! } - public var ChatList_ReorderTabs: String { return self._s[1535]! } - public var Watch_ChatList_Compose: String { return self._s[1536]! } + public var Channel_Username_CheckingUsername: String { return self._s[1534]! } + public var ContactList_Context_Call: String { return self._s[1535]! } + public var ChatList_ReorderTabs: String { return self._s[1536]! } + public var Watch_ChatList_Compose: String { return self._s[1537]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) + return formatWithArgumentRanges(self._s[1538]!, self._r[1538]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1538]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1539]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[1539]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1540]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_1]) + return formatWithArgumentRanges(self._s[1541]!, self._r[1541]!, [_1]) } - public var Call_StatusRequesting: String { return self._s[1542]! } - public var Checkout_TotalPaidAmount: String { return self._s[1543]! } - public var Weekday_Friday: String { return self._s[1545]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[1546]! } + public var Call_StatusRequesting: String { return self._s[1543]! } + public var Checkout_TotalPaidAmount: String { return self._s[1544]! } + public var Weekday_Friday: String { return self._s[1546]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[1547]! } public func ChatImport_SelectionConfirmationUserWithoutTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1547]!, self._r[1547]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Watch_ChatList_NoConversationsText: String { return self._s[1548]! } - public var Group_Members_AddMembersHelp: String { return self._s[1549]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[1549]! } + public var Group_Members_AddMembersHelp: String { return self._s[1550]! } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1550]!, self._r[1550]!, [_0]) + return formatWithArgumentRanges(self._s[1551]!, self._r[1551]!, [_0]) } - public var SecretVideo_Title: String { return self._s[1551]! } + public var SecretVideo_Title: String { return self._s[1552]! } public func Notification_PinnedStickerMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1554]!, self._r[1554]!, [_0]) + return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_0]) } - public var Undo_Undo: String { return self._s[1555]! } - public var Watch_Microphone_Access: String { return self._s[1556]! } + public var Undo_Undo: String { return self._s[1556]! } + public var Watch_Microphone_Access: String { return self._s[1557]! } public func ChatImport_SelectionConfirmationGroupWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_1, _2]) - } - public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_1, _2]) } - public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) + public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_1, _2]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[1561]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1562]! } - public var Passport_Language_ne: String { return self._s[1563]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1565]! } - public var Profile_MessageLifetime2s: String { return self._s[1566]! } + public func ChatList_Search_NoResultsQueryDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[1562]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1563]! } + public var Passport_Language_ne: String { return self._s[1564]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1566]! } + public var Profile_MessageLifetime2s: String { return self._s[1567]! } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, ["\(_1)"]) } public func Items_NOfM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_1, _2]) } - public var VoiceChat_SendPublicLinkSend: String { return self._s[1570]! } - public var Media_LimitedAccessText: String { return self._s[1571]! } + public var VoiceChat_SendPublicLinkSend: String { return self._s[1571]! } + public var Media_LimitedAccessText: String { return self._s[1572]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1573]!, self._r[1573]!, [_1, _2]) } - public var GroupPermission_NoPinMessages: String { return self._s[1573]! } + public var GroupPermission_NoPinMessages: String { return self._s[1574]! } public func Notification_VoiceChatStarted(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1]) + return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_0]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_0]) } - public var FastTwoStepSetup_HintHelp: String { return self._s[1576]! } - public var VoiceOver_SilentPostOff: String { return self._s[1577]! } - public var WallpaperSearch_ColorRed: String { return self._s[1578]! } - public var Watch_ConnectionDescription: String { return self._s[1579]! } - public var Notification_Exceptions_AddException: String { return self._s[1580]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[1581]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1582]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1583]! } - public var Passport_PasswordPlaceholder: String { return self._s[1584]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1585]! } - public var Stats_MessageInteractionsTitle: String { return self._s[1586]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[1587]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1589]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1590]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[1592]! } - public var Watch_Message_Game: String { return self._s[1593]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1594]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1595]! } - public var EditTheme_FileReadError: String { return self._s[1596]! } - public var Group_ErrorAddBlocked: String { return self._s[1597]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1598]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[1577]! } + public var VoiceOver_SilentPostOff: String { return self._s[1578]! } + public var WallpaperSearch_ColorRed: String { return self._s[1579]! } + public var Watch_ConnectionDescription: String { return self._s[1580]! } + public var Notification_Exceptions_AddException: String { return self._s[1581]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[1582]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1583]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1584]! } + public var Passport_PasswordPlaceholder: String { return self._s[1585]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[1586]! } + public var Stats_MessageInteractionsTitle: String { return self._s[1587]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[1588]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1590]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1591]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[1593]! } + public var Watch_Message_Game: String { return self._s[1594]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1595]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[1596]! } + public var EditTheme_FileReadError: String { return self._s[1597]! } + public var Group_ErrorAddBlocked: String { return self._s[1598]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1599]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1600]!, self._r[1600]!, [_1]) + return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1]) } - public var GroupRemoved_ViewChannelInfo: String { return self._s[1601]! } + public var GroupRemoved_ViewChannelInfo: String { return self._s[1602]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1602]!, self._r[1602]!, [_0]) + return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1603]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1604]! } + public var CheckoutInfo_ShippingInfoAddress2Placeholder: String { return self._s[1604]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[1605]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) + return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_0]) } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1606]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[1607]! } - public var PhotoEditor_CurvesRed: String { return self._s[1608]! } - public var InstantPage_TapToOpenLink: String { return self._s[1609]! } - public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1610]! } - public var FastTwoStepSetup_PasswordHelp: String { return self._s[1611]! } - public var Conversation_DiscussionNotStarted: String { return self._s[1612]! } - public var Notification_CallMissedShort: String { return self._s[1613]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[1607]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[1608]! } + public var PhotoEditor_CurvesRed: String { return self._s[1609]! } + public var InstantPage_TapToOpenLink: String { return self._s[1610]! } + public var InviteLink_PeopleJoinedShortNoneExpired: String { return self._s[1611]! } + public var FastTwoStepSetup_PasswordHelp: String { return self._s[1612]! } + public var Conversation_DiscussionNotStarted: String { return self._s[1613]! } + public var Notification_CallMissedShort: String { return self._s[1614]! } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1614]!, self._r[1614]!, [_0]) + return formatWithArgumentRanges(self._s[1615]!, self._r[1615]!, [_0]) } - public var Conversation_DeleteMessagesForEveryone: String { return self._s[1615]! } - public var VoiceChat_UnpinVideo: String { return self._s[1616]! } - public var Permissions_SiriTitle_v0: String { return self._s[1617]! } - public var GroupInfo_AddUserLeftError: String { return self._s[1618]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[1619]! } - public var Paint_Duplicate: String { return self._s[1620]! } - public var AttachmentMenu_WebSearch: String { return self._s[1621]! } - public var Bot_Stop: String { return self._s[1623]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1624]! } - public var ReportGroupLocation_Report: String { return self._s[1625]! } - public var Compose_Create: String { return self._s[1626]! } - public var Stats_GroupViewers: String { return self._s[1627]! } - public var AutoDownloadSettings_Channels: String { return self._s[1628]! } - public var PhotoEditor_QualityHigh: String { return self._s[1629]! } - public var VoiceChat_Leave: String { return self._s[1630]! } - public var Call_Speaker: String { return self._s[1631]! } + public var Conversation_DeleteMessagesForEveryone: String { return self._s[1616]! } + public var VoiceChat_UnpinVideo: String { return self._s[1617]! } + public var Permissions_SiriTitle_v0: String { return self._s[1618]! } + public var GroupInfo_AddUserLeftError: String { return self._s[1619]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[1620]! } + public var Paint_Duplicate: String { return self._s[1621]! } + public var AttachmentMenu_WebSearch: String { return self._s[1622]! } + public var Bot_Stop: String { return self._s[1624]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[1625]! } + public var ReportGroupLocation_Report: String { return self._s[1626]! } + public var Compose_Create: String { return self._s[1627]! } + public var Stats_GroupViewers: String { return self._s[1628]! } + public var AutoDownloadSettings_Channels: String { return self._s[1629]! } + public var PhotoEditor_QualityHigh: String { return self._s[1630]! } + public var VoiceChat_Leave: String { return self._s[1631]! } + public var Call_Speaker: String { return self._s[1632]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1632]!, self._r[1632]!, [_0]) + return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0]) } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[1633]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1634]! } - public var ChatList_Context_AddToFolder: String { return self._s[1635]! } - public var InviteLink_QRCode_Info: String { return self._s[1636]! } - public var AutoremoveSetup_Title: String { return self._s[1637]! } - public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1638]! } - public var Conversation_Unblock: String { return self._s[1639]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1640]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[1634]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1635]! } + public var ChatList_Context_AddToFolder: String { return self._s[1636]! } + public var InviteLink_QRCode_Info: String { return self._s[1637]! } + public var AutoremoveSetup_Title: String { return self._s[1638]! } + public var ChatList_DeleteForAllMembersConfirmationText: String { return self._s[1639]! } + public var Conversation_Unblock: String { return self._s[1640]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[1641]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_1, _2, _3]) } - public var Conversation_ContextMenuReply: String { return self._s[1642]! } - public var Contacts_SearchLabel: String { return self._s[1643]! } - public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1644]! } - public var Stats_GroupMessagesTitle: String { return self._s[1646]! } - public var VoiceChat_NoiseSuppression: String { return self._s[1647]! } - public var Notification_CallCanceled: String { return self._s[1648]! } - public var VoiceOver_Chat_Selected: String { return self._s[1649]! } - public var NotificationsSound_Tremolo: String { return self._s[1651]! } - public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1652]! } - public var ChatList_Search_NoResultsDescription: String { return self._s[1653]! } - public var AccessDenied_PhotosAndVideos: String { return self._s[1654]! } - public var LogoutOptions_ClearCacheText: String { return self._s[1655]! } + public var Conversation_ContextMenuReply: String { return self._s[1643]! } + public var Contacts_SearchLabel: String { return self._s[1644]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[1645]! } + public var Stats_GroupMessagesTitle: String { return self._s[1647]! } + public var VoiceChat_NoiseSuppression: String { return self._s[1648]! } + public var Notification_CallCanceled: String { return self._s[1649]! } + public var VoiceOver_Chat_Selected: String { return self._s[1650]! } + public var NotificationsSound_Tremolo: String { return self._s[1652]! } + public var VoiceOver_AuthSessions_CurrentSession: String { return self._s[1653]! } + public var ChatList_Search_NoResultsDescription: String { return self._s[1654]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[1655]! } + public var LogoutOptions_ClearCacheText: String { return self._s[1656]! } public func VoiceChat_DisplayAsSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1657]!, self._r[1657]!, [_0]) + return formatWithArgumentRanges(self._s[1658]!, self._r[1658]!, [_0]) } - public var VoiceOver_Chat_Sticker: String { return self._s[1658]! } - public var ChatListFolder_NameUnread: String { return self._s[1659]! } - public var PeerInfo_ButtonMessage: String { return self._s[1661]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1662]! } - public var Settings_KeepPassword: String { return self._s[1663]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[1664]! } - public var ChatSettings_Other: String { return self._s[1665]! } - public var UserInfo_NotificationsEnabled: String { return self._s[1666]! } - public var CreatePoll_OptionsHeader: String { return self._s[1667]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1670]! } - public var Channel_Moderator_Title: String { return self._s[1671]! } + public var VoiceOver_Chat_Sticker: String { return self._s[1659]! } + public var ChatListFolder_NameUnread: String { return self._s[1660]! } + public var PeerInfo_ButtonMessage: String { return self._s[1662]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[1663]! } + public var Settings_KeepPassword: String { return self._s[1664]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[1665]! } + public var ChatSettings_Other: String { return self._s[1666]! } + public var UserInfo_NotificationsEnabled: String { return self._s[1667]! } + public var CreatePoll_OptionsHeader: String { return self._s[1668]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1671]! } + public var Channel_Moderator_Title: String { return self._s[1672]! } public func Conversation_ForwardTooltip_Chat_Many(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0]) + return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0]) } public func UserInfo_ContactForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0, _1]) } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1674]! } - public var WallpaperColors_Title: String { return self._s[1675]! } - public var InviteLink_InviteLink: String { return self._s[1677]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[1678]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1679]! } - public var Your_card_was_declined: String { return self._s[1680]! } - public var SettingsSearch_FAQ: String { return self._s[1682]! } - public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1683]! } - public var Conversation_ReportSpamConfirmation: String { return self._s[1684]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[1686]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1687]! } - public var Settings_About_Help: String { return self._s[1688]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[1675]! } + public var WallpaperColors_Title: String { return self._s[1676]! } + public var InviteLink_InviteLink: String { return self._s[1678]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[1679]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[1680]! } + public var Your_card_was_declined: String { return self._s[1681]! } + public var SettingsSearch_FAQ: String { return self._s[1683]! } + public var EditTheme_Expand_Preview_IncomingReplyName: String { return self._s[1684]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[1685]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[1687]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1688]! } + public var Settings_About_Help: String { return self._s[1689]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_0]) + return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_0]) } - public var Settings_Proxy: String { return self._s[1690]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1691]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[1693]! } - public var NotificationsSound_Bell: String { return self._s[1694]! } - public var PrivacySettings_Title: String { return self._s[1696]! } - public var PrivacySettings_DataSettings: String { return self._s[1697]! } - public var ConversationMedia_Title: String { return self._s[1698]! } + public var Settings_Proxy: String { return self._s[1691]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1692]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[1694]! } + public var NotificationsSound_Bell: String { return self._s[1695]! } + public var PrivacySettings_Title: String { return self._s[1697]! } + public var PrivacySettings_DataSettings: String { return self._s[1698]! } + public var ConversationMedia_Title: String { return self._s[1699]! } public func Channel_AdminLog_MessageAddedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, [_1]) + return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_1]) } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_0]) + return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1701]! } - public var ReportPeer_ReasonPornography: String { return self._s[1703]! } - public var Privacy_Calls: String { return self._s[1705]! } - public var TwoFactorSetup_Email_Text: String { return self._s[1706]! } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1707]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[1702]! } + public var ReportPeer_ReasonPornography: String { return self._s[1704]! } + public var Privacy_Calls: String { return self._s[1706]! } + public var TwoFactorSetup_Email_Text: String { return self._s[1707]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1708]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2]) } - public var Passport_Identity_FrontSideHelp: String { return self._s[1709]! } - public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1710]! } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1712]! } - public var ContactList_Context_VideoCall: String { return self._s[1713]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1714]! } - public var Passport_Identity_MiddleName: String { return self._s[1715]! } - public var MessagePoll_QuizNoUsers: String { return self._s[1716]! } + public var Passport_Identity_FrontSideHelp: String { return self._s[1710]! } + public var InstantPage_VoiceOver_DecreaseFontSize: String { return self._s[1711]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1713]! } + public var ContactList_Context_VideoCall: String { return self._s[1714]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1715]! } + public var Passport_Identity_MiddleName: String { return self._s[1716]! } + public var MessagePoll_QuizNoUsers: String { return self._s[1717]! } public func Channel_AdminLog_MutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1717]!, self._r[1717]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1718]!, self._r[1718]!, [_1, _2]) } - public var OldChannels_ChannelFormat: String { return self._s[1718]! } - public var Watch_Message_Call: String { return self._s[1719]! } - public var VoiceChat_OpenChannel: String { return self._s[1720]! } - public var Wallpaper_Title: String { return self._s[1721]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1722]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1723]! } - public var ReportGroupLocation_Text: String { return self._s[1724]! } - public var InviteText_URL: String { return self._s[1725]! } - public var ClearCache_StorageServiceFiles: String { return self._s[1726]! } - public var MessageTimer_Custom: String { return self._s[1727]! } - public var Message_PinnedLocationMessage: String { return self._s[1728]! } + public var OldChannels_ChannelFormat: String { return self._s[1719]! } + public var Watch_Message_Call: String { return self._s[1720]! } + public var VoiceChat_OpenChannel: String { return self._s[1721]! } + public var Wallpaper_Title: String { return self._s[1722]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[1723]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1724]! } + public var ReportGroupLocation_Text: String { return self._s[1725]! } + public var InviteText_URL: String { return self._s[1726]! } + public var ClearCache_StorageServiceFiles: String { return self._s[1727]! } + public var MessageTimer_Custom: String { return self._s[1728]! } + public var Message_PinnedLocationMessage: String { return self._s[1729]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1729]!, self._r[1729]!, [_0]) + return formatWithArgumentRanges(self._s[1730]!, self._r[1730]!, [_0]) } - public var EditTheme_UploadNewTheme: String { return self._s[1730]! } - public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1733]! } + public var EditTheme_UploadNewTheme: String { return self._s[1731]! } + public var ChatImportActivity_ErrorLimitExceeded: String { return self._s[1734]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1734]!, self._r[1734]!, [_0]) + return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[1736]! } + public var Login_CodeSentCall: String { return self._s[1737]! } public func Conversation_AutoremoveTimerSetUser(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_1, _2]) } - public var Conversation_Report: String { return self._s[1738]! } - public var NotificationSettings_ContactJoined: String { return self._s[1739]! } + public var Conversation_Report: String { return self._s[1739]! } + public var NotificationSettings_ContactJoined: String { return self._s[1740]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1740]!, self._r[1740]!, [_1]) + return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_1]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1741]! } - public var BroadcastGroups_IntroText: String { return self._s[1742]! } - public var IntentsSettings_SuggestByAll: String { return self._s[1744]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[1745]! } - public var AuthSessions_Title: String { return self._s[1746]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[1742]! } + public var BroadcastGroups_IntroText: String { return self._s[1743]! } + public var IntentsSettings_SuggestByAll: String { return self._s[1745]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[1746]! } + public var AuthSessions_Title: String { return self._s[1747]! } public func Notification_VoiceChatEnded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_0]) + return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) } - public var Settings_Tips: String { return self._s[1748]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1749]! } - public var WallpaperPreview_WallpaperColors: String { return self._s[1750]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1751]! } - public var VoiceChat_YouCanNowSpeak: String { return self._s[1754]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[1756]! } + public var Settings_Tips: String { return self._s[1749]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1750]! } + public var WallpaperPreview_WallpaperColors: String { return self._s[1751]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1752]! } + public var VoiceChat_YouCanNowSpeak: String { return self._s[1755]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[1757]! } public func UserInfo_LinkForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1757]!, self._r[1757]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1758]!, self._r[1758]!, [_0, _1]) } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1758]! } - public var ExplicitContent_AlertTitle: String { return self._s[1759]! } - public var Channel_UpdatePhotoItem: String { return self._s[1761]! } - public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1763]! } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1764]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[1759]! } + public var ExplicitContent_AlertTitle: String { return self._s[1760]! } + public var Channel_UpdatePhotoItem: String { return self._s[1762]! } + public var ChatList_AutoarchiveSuggestion_Text: String { return self._s[1764]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[1765]! } public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1765]!, self._r[1765]!, [_0]) + return formatWithArgumentRanges(self._s[1766]!, self._r[1766]!, [_0]) } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[1766]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[1767]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1768]! } - public var CommentsGroup_ErrorAccessDenied: String { return self._s[1769]! } - public var Appearance_AccentColor: String { return self._s[1771]! } - public var GroupInfo_SharedMedia: String { return self._s[1772]! } - public var Login_PhonePlaceholder: String { return self._s[1773]! } - public var Appearance_TextSize_Automatic: String { return self._s[1774]! } - public var EmptyGroupInfo_Line2: String { return self._s[1775]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[1767]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[1768]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1769]! } + public var CommentsGroup_ErrorAccessDenied: String { return self._s[1770]! } + public var Appearance_AccentColor: String { return self._s[1772]! } + public var GroupInfo_SharedMedia: String { return self._s[1773]! } + public var Login_PhonePlaceholder: String { return self._s[1774]! } + public var Appearance_TextSize_Automatic: String { return self._s[1775]! } + public var EmptyGroupInfo_Line2: String { return self._s[1776]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1776]!, self._r[1776]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1777]!, self._r[1777]!, [_1, _2]) } - public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1777]! } - public var Conversation_ClearChannel: String { return self._s[1778]! } - public var Conversation_MessageDoesntExist: String { return self._s[1779]! } - public var Appearance_AppIconDefaultX: String { return self._s[1781]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1782]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1783]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1784]! } + public var VoiceChat_TapToAddPhotoOrBio: String { return self._s[1778]! } + public var Conversation_ClearChannel: String { return self._s[1779]! } + public var Conversation_MessageDoesntExist: String { return self._s[1780]! } + public var Appearance_AppIconDefaultX: String { return self._s[1782]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1783]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[1784]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1785]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1785]!, self._r[1785]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_1, _2]) } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1786]! } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1789]! } - public var Chat_PinnedMessagesHiddenText: String { return self._s[1790]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1787]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[1790]! } + public var Chat_PinnedMessagesHiddenText: String { return self._s[1791]! } public func Message_PinnedGenericMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1791]!, self._r[1791]!, [_0]) - } - public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_0]) } - public var UserInfo_NotificationsEnable: String { return self._s[1793]! } - public var Checkout_PayWithTouchId: String { return self._s[1794]! } - public var SharedMedia_ViewInChat: String { return self._s[1795]! } - public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1796]!, self._r[1796]!, [_0, _1]) + public func Location_ProximityTip(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_0]) } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1797]! } + public var UserInfo_NotificationsEnable: String { return self._s[1794]! } + public var Checkout_PayWithTouchId: String { return self._s[1795]! } + public var SharedMedia_ViewInChat: String { return self._s[1796]! } + public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_0, _1]) + } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1798]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1799]!, self._r[1799]!, [_1, _2]) } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1800]!, self._r[1800]!, [_0]) + return formatWithArgumentRanges(self._s[1801]!, self._r[1801]!, [_0]) } - public var Conversation_PeerNearbyText: String { return self._s[1802]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[1803]! } - public var PhotoEditor_Skip: String { return self._s[1804]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1805]! } - public var ChatList_EmptyChatList: String { return self._s[1806]! } - public var Channel_BanUser_Unban: String { return self._s[1807]! } + public var Conversation_PeerNearbyText: String { return self._s[1803]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[1804]! } + public var PhotoEditor_Skip: String { return self._s[1805]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[1806]! } + public var ChatList_EmptyChatList: String { return self._s[1807]! } + public var Channel_BanUser_Unban: String { return self._s[1808]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_0]) + return formatWithArgumentRanges(self._s[1809]!, self._r[1809]!, [_0]) } - public var Appearance_TextSize_Apply: String { return self._s[1809]! } + public var Appearance_TextSize_Apply: String { return self._s[1810]! } public func Conversation_MessageViewCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2]) } - public var Login_InfoFirstNamePlaceholder: String { return self._s[1811]! } - public var VoiceOver_Chat_YourSticker: String { return self._s[1812]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1813]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1815]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1816]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1817]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[1812]! } + public var VoiceOver_Chat_YourSticker: String { return self._s[1813]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1814]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1816]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1817]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[1818]! } public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1818]!, self._r[1818]!, [_1]) + return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_1]) } - public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1820]! } - public var State_WaitingForNetwork: String { return self._s[1821]! } - public var AccessDenied_CameraRestricted: String { return self._s[1822]! } - public var ChatSettings_Appearance: String { return self._s[1823]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1824]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1825]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1826]! } - public var Conversation_SelectMessages: String { return self._s[1828]! } - public var Map_NoPlacesNearby: String { return self._s[1829]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1830]! } - public var GroupRemoved_Title: String { return self._s[1831]! } - public var ImportStickerPack_RemoveFromImport: String { return self._s[1832]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1834]! } - public var VoiceChat_Mute: String { return self._s[1835]! } - public var Paint_Marker: String { return self._s[1836]! } - public var Widget_ChatsGalleryTitle: String { return self._s[1837]! } + public var VoiceOver_Chat_GoToOriginalMessage: String { return self._s[1821]! } + public var State_WaitingForNetwork: String { return self._s[1822]! } + public var AccessDenied_CameraRestricted: String { return self._s[1823]! } + public var ChatSettings_Appearance: String { return self._s[1824]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1825]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[1826]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1827]! } + public var Conversation_SelectMessages: String { return self._s[1829]! } + public var Map_NoPlacesNearby: String { return self._s[1830]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1831]! } + public var GroupRemoved_Title: String { return self._s[1832]! } + public var ImportStickerPack_RemoveFromImport: String { return self._s[1833]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1835]! } + public var VoiceChat_Mute: String { return self._s[1836]! } + public var Paint_Marker: String { return self._s[1837]! } + public var Widget_ChatsGalleryTitle: String { return self._s[1838]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1838]!, self._r[1838]!, [_1]) + return formatWithArgumentRanges(self._s[1839]!, self._r[1839]!, [_1]) } - public var SocksProxySetup_ShareProxyList: String { return self._s[1839]! } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1840]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1840]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[1841]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1841]!, self._r[1841]!, [_0]) + return formatWithArgumentRanges(self._s[1842]!, self._r[1842]!, [_0]) } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[1842]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1843]! } - public var Notifications_GroupNotificationsAlert: String { return self._s[1844]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[1845]! } - public var Compose_NewGroup: String { return self._s[1847]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[1843]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[1844]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[1845]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[1846]! } + public var Compose_NewGroup: String { return self._s[1848]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_0]) + return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) } - public var Location_LiveLocationRequired_Description: String { return self._s[1850]! } - public var Conversation_ClearGroupHistory: String { return self._s[1851]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1854]! } - public var VoiceOver_BotKeyboard: String { return self._s[1855]! } - public var Channel_BanUser_BlockFor: String { return self._s[1856]! } - public var Bot_Start: String { return self._s[1857]! } - public var Your_card_has_expired: String { return self._s[1858]! } - public var Channel_About_Title: String { return self._s[1859]! } - public var VoiceChat_EditTitleTitle: String { return self._s[1860]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1861]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1863]! } - public var Conversation_FileDropbox: String { return self._s[1864]! } - public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1865]! } - public var Month_GenNovember: String { return self._s[1866]! } - public var IntentsSettings_SuggestByShare: String { return self._s[1867]! } + public var Location_LiveLocationRequired_Description: String { return self._s[1851]! } + public var Conversation_ClearGroupHistory: String { return self._s[1852]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1855]! } + public var VoiceOver_BotKeyboard: String { return self._s[1856]! } + public var Channel_BanUser_BlockFor: String { return self._s[1857]! } + public var Bot_Start: String { return self._s[1858]! } + public var Your_card_has_expired: String { return self._s[1859]! } + public var Channel_About_Title: String { return self._s[1860]! } + public var VoiceChat_EditTitleTitle: String { return self._s[1861]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1862]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[1864]! } + public var Conversation_FileDropbox: String { return self._s[1865]! } + public var ChatList_Search_NoResultsFitlerMusic: String { return self._s[1866]! } + public var Month_GenNovember: String { return self._s[1867]! } + public var IntentsSettings_SuggestByShare: String { return self._s[1868]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_0]) + return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) } - public var StickerPack_Add: String { return self._s[1869]! } - public var Theme_ErrorNotFound: String { return self._s[1870]! } - public var Wallpaper_SearchShort: String { return self._s[1872]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1873]! } - public var ConversationProfile_UsersTooMuchError: String { return self._s[1874]! } - public var ChatList_FolderAllChats: String { return self._s[1875]! } - public var VoiceChat_EndConfirmationEnd: String { return self._s[1876]! } - public var Passport_Authorize: String { return self._s[1877]! } + public var StickerPack_Add: String { return self._s[1870]! } + public var Theme_ErrorNotFound: String { return self._s[1871]! } + public var Wallpaper_SearchShort: String { return self._s[1873]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1874]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[1875]! } + public var ChatList_FolderAllChats: String { return self._s[1876]! } + public var VoiceChat_EndConfirmationEnd: String { return self._s[1877]! } + public var Passport_Authorize: String { return self._s[1878]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1878]!, self._r[1878]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1879]!, self._r[1879]!, [_1, _2]) } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1879]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1880]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_1]) + return formatWithArgumentRanges(self._s[1881]!, self._r[1881]!, [_1]) } - public var LocalGroup_ButtonTitle: String { return self._s[1881]! } - public var VoiceOver_Stickers: String { return self._s[1883]! } - public var UserInfo_GroupsInCommon: String { return self._s[1884]! } - public var LoginPassword_Title: String { return self._s[1886]! } - public var Wallpaper_Set: String { return self._s[1887]! } - public var Stats_InteractionsTitle: String { return self._s[1888]! } + public var LocalGroup_ButtonTitle: String { return self._s[1882]! } + public var VoiceOver_Stickers: String { return self._s[1884]! } + public var UserInfo_GroupsInCommon: String { return self._s[1885]! } + public var LoginPassword_Title: String { return self._s[1887]! } + public var Wallpaper_Set: String { return self._s[1888]! } + public var Stats_InteractionsTitle: String { return self._s[1889]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1890]!, self._r[1890]!, [_0]) + return formatWithArgumentRanges(self._s[1891]!, self._r[1891]!, [_0]) } - public var Conversation_MessageDialogEdit: String { return self._s[1891]! } - public var Paint_Outlined: String { return self._s[1892]! } + public var Conversation_MessageDialogEdit: String { return self._s[1892]! } + public var Paint_Outlined: String { return self._s[1893]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) - } - public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_0]) } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1895]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1896]! } - public var Appearance_ColorThemeNight: String { return self._s[1897]! } - public var ChannelInfo_Stats: String { return self._s[1898]! } - public var Widget_ShortcutsGalleryTitle: String { return self._s[1899]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1900]! } - public var MediaPicker_TimerTooltip: String { return self._s[1901]! } - public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1902]! } - public var Common_ChoosePhoto: String { return self._s[1903]! } - public var Media_LimitedAccessTitle: String { return self._s[1904]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[1905]! } - public var PeerInfo_PaneGroups: String { return self._s[1906]! } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1908]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1909]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1910]! } - public var OldChannels_ChannelsHeader: String { return self._s[1911]! } - public var MuteFor_Forever: String { return self._s[1912]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1913]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1915]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1916]! } - public var ContactInfo_Job: String { return self._s[1917]! } - public var Passport_Language_mk: String { return self._s[1918]! } - public var EditTheme_ShortLink: String { return self._s[1919]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1922]! } - public var Month_GenApril: String { return self._s[1924]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1926]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1927]! } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1928]! } - public var EditTheme_Title: String { return self._s[1929]! } - public var Conversation_LinkDialogCopy: String { return self._s[1930]! } + public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1895]!, self._r[1895]!, [_0]) + } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1896]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1897]! } + public var Appearance_ColorThemeNight: String { return self._s[1898]! } + public var ChannelInfo_Stats: String { return self._s[1899]! } + public var Widget_ShortcutsGalleryTitle: String { return self._s[1900]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1901]! } + public var MediaPicker_TimerTooltip: String { return self._s[1902]! } + public var ChatImportActivity_ErrorNotAdmin: String { return self._s[1903]! } + public var Common_ChoosePhoto: String { return self._s[1904]! } + public var Media_LimitedAccessTitle: String { return self._s[1905]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[1906]! } + public var PeerInfo_PaneGroups: String { return self._s[1907]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[1909]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1910]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1911]! } + public var OldChannels_ChannelsHeader: String { return self._s[1912]! } + public var MuteFor_Forever: String { return self._s[1913]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1914]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1916]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1917]! } + public var ContactInfo_Job: String { return self._s[1918]! } + public var Passport_Language_mk: String { return self._s[1919]! } + public var EditTheme_ShortLink: String { return self._s[1920]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1923]! } + public var Month_GenApril: String { return self._s[1925]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[1927]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1928]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[1929]! } + public var EditTheme_Title: String { return self._s[1930]! } + public var Conversation_LinkDialogCopy: String { return self._s[1931]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) } - public var Passport_ForgottenPassword: String { return self._s[1932]! } - public var WallpaperSearch_Recent: String { return self._s[1933]! } - public var ChatSettings_Title: String { return self._s[1938]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1939]! } + public var Passport_ForgottenPassword: String { return self._s[1933]! } + public var WallpaperSearch_Recent: String { return self._s[1934]! } + public var ChatSettings_Title: String { return self._s[1939]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1940]! } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_0]) + return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[1941]! } - public var LastSeen_WithinAMonth: String { return self._s[1942]! } - public var VoiceChat_Live: String { return self._s[1943]! } - public var PeerInfo_ButtonCall: String { return self._s[1944]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1945]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[1946]! } - public var Call_AudioRouteHide: String { return self._s[1947]! } - public var DialogList_SavedMessages: String { return self._s[1948]! } - public var ChatList_Context_Mute: String { return self._s[1949]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1950]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[1942]! } + public var LastSeen_WithinAMonth: String { return self._s[1943]! } + public var VoiceChat_Live: String { return self._s[1944]! } + public var PeerInfo_ButtonCall: String { return self._s[1945]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[1946]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[1947]! } + public var Call_AudioRouteHide: String { return self._s[1948]! } + public var DialogList_SavedMessages: String { return self._s[1949]! } + public var ChatList_Context_Mute: String { return self._s[1950]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1951]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_0]) + return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_0]) } - public var VoiceChat_StatusMutedForYou: String { return self._s[1952]! } - public var Passport_Language_et: String { return self._s[1953]! } - public var Conversation_MessageLeaveCommentShort: String { return self._s[1954]! } - public var PhotoEditor_CropReset: String { return self._s[1955]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1956]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1957]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1958]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1961]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1963]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1964]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1966]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1968]! } - public var Map_YouAreHere: String { return self._s[1970]! } - public var Core_ServiceUserStatus: String { return self._s[1971]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1974]! } - public var VoiceChat_StartRecording: String { return self._s[1975]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1976]! } - public var MediaPicker_Videos: String { return self._s[1978]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1980]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1981]! } - public var SharedMedia_CategoryMedia: String { return self._s[1982]! } + public var VoiceChat_StatusMutedForYou: String { return self._s[1953]! } + public var Passport_Language_et: String { return self._s[1954]! } + public var Conversation_MessageLeaveCommentShort: String { return self._s[1955]! } + public var PhotoEditor_CropReset: String { return self._s[1956]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[1957]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[1958]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[1959]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1962]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1964]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[1965]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[1967]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1969]! } + public var Map_YouAreHere: String { return self._s[1971]! } + public var Core_ServiceUserStatus: String { return self._s[1972]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1975]! } + public var VoiceChat_StartRecording: String { return self._s[1976]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[1977]! } + public var MediaPicker_Videos: String { return self._s[1979]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1981]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1982]! } + public var SharedMedia_CategoryMedia: String { return self._s[1983]! } public func MediaPicker_Nof(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_0]) + return formatWithArgumentRanges(self._s[1984]!, self._r[1984]!, [_0]) } - public var ChatSettings_AutoPlayGifs: String { return self._s[1984]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[1985]! } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1986]! } - public var Conversation_JoinVoiceChatAsListener: String { return self._s[1987]! } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1988]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[1985]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[1986]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[1987]! } + public var Conversation_JoinVoiceChatAsListener: String { return self._s[1988]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1989]! } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1989]!, self._r[1989]!, [_0]) + return formatWithArgumentRanges(self._s[1990]!, self._r[1990]!, [_0]) } - public var Web_Error: String { return self._s[1990]! } - public var PhotoEditor_SkinTool: String { return self._s[1991]! } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1992]! } - public var AutoremoveSetup_TimerInfoChat: String { return self._s[1993]! } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1995]! } - public var PasscodeSettings_Help: String { return self._s[1996]! } - public var Appearance_ColorTheme: String { return self._s[1997]! } + public var Web_Error: String { return self._s[1991]! } + public var PhotoEditor_SkinTool: String { return self._s[1992]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[1993]! } + public var AutoremoveSetup_TimerInfoChat: String { return self._s[1994]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[1996]! } + public var PasscodeSettings_Help: String { return self._s[1997]! } + public var Appearance_ColorTheme: String { return self._s[1998]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1998]!, self._r[1998]!, [_0]) + return formatWithArgumentRanges(self._s[1999]!, self._r[1999]!, [_0]) } - public var InviteLink_DeleteAllRevokedLinks: String { return self._s[1999]! } + public var InviteLink_DeleteAllRevokedLinks: String { return self._s[2000]! } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_1]) + return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1]) } - public var InviteLink_QRCode_Title: String { return self._s[2001]! } - public var GroupInfo_LeftStatus: String { return self._s[2002]! } - public var EditTheme_Preview: String { return self._s[2003]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[2004]! } + public var InviteLink_QRCode_Title: String { return self._s[2002]! } + public var GroupInfo_LeftStatus: String { return self._s[2003]! } + public var EditTheme_Preview: String { return self._s[2004]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[2005]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2005]!, self._r[2005]!, [_0]) + return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[2006]! } - public var VoiceChat_StatusWantsToSpeak: String { return self._s[2007]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2008]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[2009]! } - public var DialogList_AdNoticeAlert: String { return self._s[2010]! } - public var UserInfo_Invite: String { return self._s[2011]! } - public var Checkout_Email: String { return self._s[2012]! } - public var Stats_GroupActionsTitle: String { return self._s[2013]! } - public var Coub_TapForSound: String { return self._s[2014]! } - public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2015]! } - public var Theme_ThemeChangedText: String { return self._s[2016]! } - public var Call_ExternalCallInProgressMessage: String { return self._s[2017]! } - public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2018]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[2019]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[2020]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2021]! } + public var NotificationsSound_Keys: String { return self._s[2007]! } + public var VoiceChat_StatusWantsToSpeak: String { return self._s[2008]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[2009]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[2010]! } + public var DialogList_AdNoticeAlert: String { return self._s[2011]! } + public var UserInfo_Invite: String { return self._s[2012]! } + public var Checkout_Email: String { return self._s[2013]! } + public var Stats_GroupActionsTitle: String { return self._s[2014]! } + public var Coub_TapForSound: String { return self._s[2015]! } + public var Conversation_AutoremoveTimerRemovedUserYou: String { return self._s[2016]! } + public var Theme_ThemeChangedText: String { return self._s[2017]! } + public var Call_ExternalCallInProgressMessage: String { return self._s[2018]! } + public var AutoremoveSetup_TimerInfoChannel: String { return self._s[2019]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[2020]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[2021]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[2022]! } public func VoiceChat_InviteMemberToChannelFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2022]!, self._r[2022]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_1, _2]) } - public var Call_ReportIncludeLogDescription: String { return self._s[2023]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2025]! } - public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2026]! } - public var Channel_MessagePhotoRemoved: String { return self._s[2027]! } - public var Passport_Email_Delete: String { return self._s[2028]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2024]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2026]! } + public var Call_VoiceOver_VoiceCallMissed: String { return self._s[2027]! } + public var Channel_MessagePhotoRemoved: String { return self._s[2028]! } + public var Passport_Email_Delete: String { return self._s[2029]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_1]) + return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_1]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2030]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2031]! } public func Conversation_AutoremoveTimerRemovedUser(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_1]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_1]) } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[2032]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[2034]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2035]! } - public var Common_of: String { return self._s[2036]! } - public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2037]! } - public var VoiceChat_StartRecordingStart: String { return self._s[2038]! } - public var PeerInfo_ButtonUnmute: String { return self._s[2041]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[2033]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[2035]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[2036]! } + public var Common_of: String { return self._s[2037]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[2038]! } + public var VoiceChat_StartRecordingStart: String { return self._s[2039]! } + public var PeerInfo_ButtonUnmute: String { return self._s[2042]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_0]) + return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) } - public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2043]! } - public var ChatList_AddChatsToFolder: String { return self._s[2044]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2045]! } - public var Settings_Title: String { return self._s[2047]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2049]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2050]! } - public var InviteLink_OtherAdminsLinks: String { return self._s[2051]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2052]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2054]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2055]! } - public var SecretTimer_VideoDescription: String { return self._s[2056]! } - public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2057]! } - public var WallpaperPreview_Blurred: String { return self._s[2058]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2059]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2061]! } - public var Conversation_CancelForwardSelectChat: String { return self._s[2062]! } - public var DialogList_PasscodeLockHelp: String { return self._s[2063]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2064]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2065]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2066]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[2067]! } - public var SocksProxySetup_Connection: String { return self._s[2068]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[2069]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[2070]! } - public var Conversation_Unpin: String { return self._s[2071]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2072]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2073]! } - public var Call_ReportSkip: String { return self._s[2074]! } + public var Privacy_ContactsReset_ContactsDeleted: String { return self._s[2044]! } + public var ChatList_AddChatsToFolder: String { return self._s[2045]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2046]! } + public var Settings_Title: String { return self._s[2048]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2050]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2051]! } + public var InviteLink_OtherAdminsLinks: String { return self._s[2052]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2053]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2055]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2056]! } + public var SecretTimer_VideoDescription: String { return self._s[2057]! } + public var VoiceOver_Chat_AnimatedSticker: String { return self._s[2058]! } + public var WallpaperPreview_Blurred: String { return self._s[2059]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2060]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2062]! } + public var Conversation_CancelForwardSelectChat: String { return self._s[2063]! } + public var DialogList_PasscodeLockHelp: String { return self._s[2064]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2065]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2066]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2067]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[2068]! } + public var SocksProxySetup_Connection: String { return self._s[2069]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[2070]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[2071]! } + public var Conversation_Unpin: String { return self._s[2072]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[2073]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[2074]! } + public var Call_ReportSkip: String { return self._s[2075]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) + return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_0]) + return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[2078]! } - public var Passport_Language_az: String { return self._s[2080]! } + public var AutoNightTheme_Automatic: String { return self._s[2079]! } + public var Passport_Language_az: String { return self._s[2081]! } public func Conversation_AutoremoveChanged(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2081]!, self._r[2081]!, [_0]) + return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2082]! } - public var Watch_UserInfo_Unmute: String { return self._s[2083]! } - public var Channel_Stickers_YourStickers: String { return self._s[2084]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2085]! } - public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2086]! } - public var Tour_Text1: String { return self._s[2087]! } - public var Common_Delete: String { return self._s[2088]! } - public var Settings_EditPhoto: String { return self._s[2089]! } - public var Common_Edit: String { return self._s[2090]! } - public var ShareMenu_ShareTo: String { return self._s[2092]! } - public var Passport_Identity_ExpiryDate: String { return self._s[2093]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[2083]! } + public var Watch_UserInfo_Unmute: String { return self._s[2084]! } + public var Channel_Stickers_YourStickers: String { return self._s[2085]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2086]! } + public var PeerInfo_AutoremoveMessagesDisabled: String { return self._s[2087]! } + public var Tour_Text1: String { return self._s[2088]! } + public var Common_Delete: String { return self._s[2089]! } + public var Settings_EditPhoto: String { return self._s[2090]! } + public var Common_Edit: String { return self._s[2091]! } + public var ShareMenu_ShareTo: String { return self._s[2093]! } + public var Passport_Identity_ExpiryDate: String { return self._s[2094]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_1]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[2095]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2096]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2097]! } - public var Conversation_ViewReply: String { return self._s[2098]! } - public var Stats_LoadingText: String { return self._s[2099]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2100]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2101]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2102]! } + public var Preview_DeleteGif: String { return self._s[2096]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2097]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2098]! } + public var Conversation_ViewReply: String { return self._s[2099]! } + public var Stats_LoadingText: String { return self._s[2100]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2101]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2102]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2103]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, [_0]) + return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2107]! } - public var InviteLink_Share: String { return self._s[2109]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[2108]! } + public var InviteLink_Share: String { return self._s[2110]! } public func Conversation_ImportProgress(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, [_0]) + return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[2112]! } - public var Group_MessagePhotoRemoved: String { return self._s[2115]! } - public var Conversation_ContextMenuSelect: String { return self._s[2116]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2118]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2119]! } - public var Contacts_PermissionsEnable: String { return self._s[2120]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2121]! } - public var Common_NotNow: String { return self._s[2122]! } - public var Notification_CreatedChannel: String { return self._s[2123]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2125]! } - public var InviteLink_ContextShare: String { return self._s[2126]! } - public var Appearance_AppIconClassic: String { return self._s[2127]! } - public var PhotoEditor_QualityTool: String { return self._s[2128]! } - public var ClearCache_ClearCache: String { return self._s[2129]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2130]! } - public var AutoDownloadSettings_Videos: String { return self._s[2131]! } - public var GroupPermission_Duration: String { return self._s[2132]! } - public var ChatList_Read: String { return self._s[2133]! } + public var IntentsSettings_MainAccount: String { return self._s[2113]! } + public var Group_MessagePhotoRemoved: String { return self._s[2116]! } + public var Conversation_ContextMenuSelect: String { return self._s[2117]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2119]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2120]! } + public var Contacts_PermissionsEnable: String { return self._s[2121]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[2122]! } + public var Common_NotNow: String { return self._s[2123]! } + public var Notification_CreatedChannel: String { return self._s[2124]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2126]! } + public var InviteLink_ContextShare: String { return self._s[2127]! } + public var Appearance_AppIconClassic: String { return self._s[2128]! } + public var PhotoEditor_QualityTool: String { return self._s[2129]! } + public var ClearCache_ClearCache: String { return self._s[2130]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[2131]! } + public var AutoDownloadSettings_Videos: String { return self._s[2132]! } + public var GroupPermission_Duration: String { return self._s[2133]! } + public var ChatList_Read: String { return self._s[2134]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1, _2]) } public func ScheduleVoiceChat_ScheduleTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public var CallFeedback_Send: String { return self._s[2136]! } - public var Channel_Stickers_Searching: String { return self._s[2137]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[2138]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2139]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2140]! } - public var EditTheme_CreateTitle: String { return self._s[2142]! } - public var Application_Name: String { return self._s[2143]! } - public var Paint_Stickers: String { return self._s[2144]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2145]! } - public var Call_StatusFailed: String { return self._s[2146]! } - public var Stickers_FavoriteStickers: String { return self._s[2147]! } - public var ClearCache_Clear: String { return self._s[2148]! } - public var Passport_Language_mn: String { return self._s[2149]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2150]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2151]! } - public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2153]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2155]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2156]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2157]! } - public var Passport_Address_AddBankStatement: String { return self._s[2158]! } + public var CallFeedback_Send: String { return self._s[2137]! } + public var Channel_Stickers_Searching: String { return self._s[2138]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2139]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2140]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2141]! } + public var EditTheme_CreateTitle: String { return self._s[2143]! } + public var Application_Name: String { return self._s[2144]! } + public var Paint_Stickers: String { return self._s[2145]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2146]! } + public var Call_StatusFailed: String { return self._s[2147]! } + public var Stickers_FavoriteStickers: String { return self._s[2148]! } + public var ClearCache_Clear: String { return self._s[2149]! } + public var Passport_Language_mn: String { return self._s[2150]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2151]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2152]! } + public var Call_VoiceOver_VideoCallOutgoing: String { return self._s[2154]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2156]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2157]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2158]! } + public var Passport_Address_AddBankStatement: String { return self._s[2159]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2161]!, self._r[2161]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2162]! } - public var UserInfo_ShareContact: String { return self._s[2163]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2164]! } - public var Channel_ErrorAdminsTooMuch: String { return self._s[2166]! } - public var Call_RateCall: String { return self._s[2167]! } - public var Contacts_AccessDeniedError: String { return self._s[2168]! } - public var Invite_ChannelsTooMuch: String { return self._s[2169]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2170]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2171]! } - public var InviteLink_Create_TimeLimitInfo: String { return self._s[2172]! } - public var Cache_NoLimit: String { return self._s[2175]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2176]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2180]! } - public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2181]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2182]! } - public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2183]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2184]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2163]! } + public var UserInfo_ShareContact: String { return self._s[2164]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2165]! } + public var Channel_ErrorAdminsTooMuch: String { return self._s[2167]! } + public var Call_RateCall: String { return self._s[2168]! } + public var Contacts_AccessDeniedError: String { return self._s[2169]! } + public var Invite_ChannelsTooMuch: String { return self._s[2170]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2171]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2172]! } + public var InviteLink_Create_TimeLimitInfo: String { return self._s[2173]! } + public var Cache_NoLimit: String { return self._s[2176]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2177]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2181]! } + public var Notification_Exceptions_MessagePreviewAlwaysOff: String { return self._s[2182]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2183]! } + public var Privacy_PaymentsClear_AllInfoCleared: String { return self._s[2184]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2185]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1]) + return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2186]! } - public var Theme_ThemeChanged: String { return self._s[2187]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2189]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2190]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2187]! } + public var Theme_ThemeChanged: String { return self._s[2188]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2190]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2191]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2191]!, self._r[2191]!, [_0]) + return formatWithArgumentRanges(self._s[2192]!, self._r[2192]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2192]! } - public var Passport_Language_da: String { return self._s[2194]! } - public var Chat_SlowmodeSendError: String { return self._s[2195]! } - public var Application_Update: String { return self._s[2197]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2198]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2193]! } + public var Passport_Language_da: String { return self._s[2195]! } + public var Chat_SlowmodeSendError: String { return self._s[2196]! } + public var Application_Update: String { return self._s[2198]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2199]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_1, _2]) } - public var Privacy_AddNewPeer: String { return self._s[2201]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2203]! } - public var Channel_Members_Title: String { return self._s[2204]! } - public var StickerPacks_ActionDelete: String { return self._s[2205]! } - public var Conversation_ScheduledVoiceChat: String { return self._s[2206]! } - public var Settings_LogoutConfirmationText: String { return self._s[2208]! } - public var Chat_UnsendMyMessages: String { return self._s[2209]! } - public var PeerInfo_ReportProfilePhoto: String { return self._s[2210]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2212]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2213]! } - public var Passport_FloodError: String { return self._s[2214]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2215]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2216]! } - public var CallSettings_TabIconDescription: String { return self._s[2217]! } - public var Group_Setup_HistoryHeader: String { return self._s[2219]! } + public var Privacy_AddNewPeer: String { return self._s[2202]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2204]! } + public var Channel_Members_Title: String { return self._s[2205]! } + public var StickerPacks_ActionDelete: String { return self._s[2206]! } + public var Conversation_ScheduledVoiceChat: String { return self._s[2207]! } + public var Settings_LogoutConfirmationText: String { return self._s[2209]! } + public var Chat_UnsendMyMessages: String { return self._s[2210]! } + public var PeerInfo_ReportProfilePhoto: String { return self._s[2211]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2213]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2214]! } + public var Passport_FloodError: String { return self._s[2215]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2216]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2217]! } + public var CallSettings_TabIconDescription: String { return self._s[2218]! } + public var Group_Setup_HistoryHeader: String { return self._s[2220]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_1]) + return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1]) } - public var TwoStepAuth_EmailTitle: String { return self._s[2221]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2222]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2223]! } - public var Contacts_Title: String { return self._s[2225]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2222]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2223]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2224]! } + public var Contacts_Title: String { return self._s[2226]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2229]! } + public var ChatList_PeerTypeBot: String { return self._s[2230]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2231]!, self._r[2231]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2231]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2232]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2234]! } + public var Camera_PhotoMode: String { return self._s[2235]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2236]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2237]! } - public var Call_CallAgain: String { return self._s[2238]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2239]! } - public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2240]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2237]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2238]! } + public var Call_CallAgain: String { return self._s[2239]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2240]! } + public var VoiceChat_EditDescriptionPlaceholder: String { return self._s[2241]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_0]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2242]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2243]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2244]! } - public var Group_LeaveGroup: String { return self._s[2245]! } - public var Channel_Setup_LinkTypePrivate: String { return self._s[2247]! } - public var GroupInfo_LabelAdmin: String { return self._s[2249]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2251]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2252]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2243]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2244]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2245]! } + public var Group_LeaveGroup: String { return self._s[2246]! } + public var Channel_Setup_LinkTypePrivate: String { return self._s[2248]! } + public var GroupInfo_LabelAdmin: String { return self._s[2250]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2252]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2253]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_0]) + return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2254]! } - public var Appearance_Preview: String { return self._s[2255]! } - public var VoiceOver_Chat_Contact: String { return self._s[2256]! } - public var Passport_Language_th: String { return self._s[2257]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2259]! } - public var LastSeen_Offline: String { return self._s[2262]! } - public var Map_OpenInHereMaps: String { return self._s[2263]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2264]! } - public var InviteLink_ContextEdit: String { return self._s[2266]! } - public var AutoDownloadSettings_Reset: String { return self._s[2267]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2268]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2269]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2255]! } + public var Appearance_Preview: String { return self._s[2256]! } + public var VoiceOver_Chat_Contact: String { return self._s[2257]! } + public var Passport_Language_th: String { return self._s[2258]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2260]! } + public var LastSeen_Offline: String { return self._s[2263]! } + public var Map_OpenInHereMaps: String { return self._s[2264]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2265]! } + public var InviteLink_ContextEdit: String { return self._s[2267]! } + public var AutoDownloadSettings_Reset: String { return self._s[2268]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2269]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2270]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2272]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2273]! } - public var Username_Placeholder: String { return self._s[2274]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2273]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2274]! } + public var Username_Placeholder: String { return self._s[2275]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_1]) + return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1]) } - public var Passport_Language_it: String { return self._s[2276]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2277]! } + public var Passport_Language_it: String { return self._s[2277]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2278]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2278]!, self._r[2278]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2279]! } - public var VoiceOver_DismissContextMenu: String { return self._s[2281]! } - public var MessagePoll_NoVotes: String { return self._s[2284]! } - public var Message_Wallpaper: String { return self._s[2285]! } - public var Conversation_JoinVoiceChat: String { return self._s[2286]! } - public var Appearance_Other: String { return self._s[2287]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2289]! } - public var Group_PublicLink_Placeholder: String { return self._s[2293]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2294]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2295]! } - public var ChatListFolder_NameBots: String { return self._s[2296]! } - public var Conversation_StopPollConfirmation: String { return self._s[2297]! } - public var UserInfo_DeleteContact: String { return self._s[2298]! } + public var NotificationsSound_Pulse: String { return self._s[2280]! } + public var VoiceOver_DismissContextMenu: String { return self._s[2282]! } + public var MessagePoll_NoVotes: String { return self._s[2285]! } + public var Message_Wallpaper: String { return self._s[2286]! } + public var Conversation_JoinVoiceChat: String { return self._s[2287]! } + public var Appearance_Other: String { return self._s[2288]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2290]! } + public var Group_PublicLink_Placeholder: String { return self._s[2294]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2295]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2296]! } + public var ChatListFolder_NameBots: String { return self._s[2297]! } + public var Conversation_StopPollConfirmation: String { return self._s[2298]! } + public var UserInfo_DeleteContact: String { return self._s[2299]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2299]!, self._r[2299]!, [_0]) + return formatWithArgumentRanges(self._s[2300]!, self._r[2300]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2301]! } + public var Wallpaper_Wallpaper: String { return self._s[2302]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_1]) + return formatWithArgumentRanges(self._s[2303]!, self._r[2303]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2303]! } - public var FeaturedStickerPacks_Title: String { return self._s[2304]! } - public var Paint_Pen: String { return self._s[2305]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2306]! } - public var ChatListFolderSettings_Info: String { return self._s[2307]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2308]! } - public var PhotoEditor_CurvesAll: String { return self._s[2310]! } + public var LoginPassword_ForgotPassword: String { return self._s[2304]! } + public var FeaturedStickerPacks_Title: String { return self._s[2305]! } + public var Paint_Pen: String { return self._s[2306]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2307]! } + public var ChatListFolderSettings_Info: String { return self._s[2308]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2309]! } + public var PhotoEditor_CurvesAll: String { return self._s[2311]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2312]!, self._r[2312]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2313]!, self._r[2313]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2314]! } - public var Message_ImageExpired: String { return self._s[2315]! } - public var Call_ConnectionErrorMessage: String { return self._s[2316]! } - public var SearchImages_NoImagesFound: String { return self._s[2318]! } - public var PeerInfo_PaneGifs: String { return self._s[2319]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2320]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2321]! } - public var PhotoEditor_VignetteTool: String { return self._s[2322]! } - public var Passport_Language_dz: String { return self._s[2323]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2324]! } - public var Conversation_BlockUser: String { return self._s[2325]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2328]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2330]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2315]! } + public var Message_ImageExpired: String { return self._s[2316]! } + public var Call_ConnectionErrorMessage: String { return self._s[2317]! } + public var SearchImages_NoImagesFound: String { return self._s[2319]! } + public var PeerInfo_PaneGifs: String { return self._s[2320]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2321]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2322]! } + public var PhotoEditor_VignetteTool: String { return self._s[2323]! } + public var Passport_Language_dz: String { return self._s[2324]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2325]! } + public var Conversation_BlockUser: String { return self._s[2326]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2329]! } + public var TwoStepAuth_CancelResetText: String { return self._s[2331]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2332]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) + return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2332]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2335]! } + public var KeyCommand_NewMessage: String { return self._s[2334]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2337]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2338]! } - public var VoiceOver_Chat_File: String { return self._s[2339]! } - public var ChatList_EditFolder: String { return self._s[2341]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2342]! } - public var PeerInfo_PaneAudio: String { return self._s[2343]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2345]! } - public var VoiceOver_ScheduledMessages: String { return self._s[2346]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2340]! } + public var VoiceOver_Chat_File: String { return self._s[2341]! } + public var ChatList_EditFolder: String { return self._s[2343]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2344]! } + public var PeerInfo_PaneAudio: String { return self._s[2345]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2347]! } + public var VoiceOver_ScheduledMessages: String { return self._s[2348]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2349]!, self._r[2349]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2348]! } - public var VoiceOver_Navigation_Search: String { return self._s[2349]! } - public var Settings_Search: String { return self._s[2350]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2351]! } - public var Login_PhoneBannedError: String { return self._s[2352]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2353]! } - public var Passport_Language_fa: String { return self._s[2354]! } - public var Settings_About: String { return self._s[2355]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2356]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2357]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2358]! } + public var ChatList_PeerTypeChannel: String { return self._s[2350]! } + public var VoiceOver_Navigation_Search: String { return self._s[2351]! } + public var Settings_Search: String { return self._s[2352]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2353]! } + public var Login_PhoneBannedError: String { return self._s[2354]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2355]! } + public var Passport_Language_fa: String { return self._s[2356]! } + public var Settings_About: String { return self._s[2357]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2358]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2359]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2360]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2359]!, self._r[2359]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2360]! } - public var Contacts_SortBy: String { return self._s[2361]! } - public var ImportStickerPack_LinkTaken: String { return self._s[2362]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2363]! } + public var Common_OK: String { return self._s[2362]! } + public var Contacts_SortBy: String { return self._s[2363]! } + public var ImportStickerPack_LinkTaken: String { return self._s[2364]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2365]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) + return formatWithArgumentRanges(self._s[2367]!, self._r[2367]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2368]! } + public var CallFeedback_IncludeLogs: String { return self._s[2370]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) + return formatWithArgumentRanges(self._s[2371]!, self._r[2371]!, [_0]) } - public var ImportStickerPack_ChooseLink: String { return self._s[2371]! } - public var Passcode_AppLockedAlert: String { return self._s[2372]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2373]! } - public var Channel_NotificationLoading: String { return self._s[2375]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2376]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2377]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2378]! } - public var Weekday_ShortFriday: String { return self._s[2379]! } - public var Conversation_TitleMute: String { return self._s[2380]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2381]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2382]! } - public var DialogList_LanguageTooltip: String { return self._s[2384]! } - public var BroadcastGroups_IntroTitle: String { return self._s[2385]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2386]! } + public var ImportStickerPack_ChooseLink: String { return self._s[2373]! } + public var Passcode_AppLockedAlert: String { return self._s[2374]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2375]! } + public var Channel_NotificationLoading: String { return self._s[2377]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2378]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2379]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2380]! } + public var Weekday_ShortFriday: String { return self._s[2381]! } + public var Conversation_TitleMute: String { return self._s[2382]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2383]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2384]! } + public var DialogList_LanguageTooltip: String { return self._s[2386]! } + public var BroadcastGroups_IntroTitle: String { return self._s[2387]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2388]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_0]) + return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2389]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2390]! } - public var Settings_EditVideo: String { return self._s[2391]! } - public var VoiceOver_Common_Off: String { return self._s[2392]! } - public var Stickers_FrequentlyUsed: String { return self._s[2393]! } - public var GroupPermission_Title: String { return self._s[2394]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2395]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2396]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2391]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2392]! } + public var Settings_EditVideo: String { return self._s[2393]! } + public var VoiceOver_Common_Off: String { return self._s[2394]! } + public var Stickers_FrequentlyUsed: String { return self._s[2395]! } + public var GroupPermission_Title: String { return self._s[2396]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2397]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2398]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2397]!, self._r[2397]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2399]!, self._r[2399]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2398]! } - public var Tour_Title6: String { return self._s[2399]! } - public var EmptyGroupInfo_Title: String { return self._s[2400]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2400]! } + public var Tour_Title6: String { return self._s[2401]! } + public var EmptyGroupInfo_Title: String { return self._s[2402]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_0]) + return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2402]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2403]! } - public var Preview_SaveToCameraRoll: String { return self._s[2404]! } + public var Passport_Language_sk: String { return self._s[2404]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2405]! } + public var Preview_SaveToCameraRoll: String { return self._s[2406]! } public func VoiceChat_YouCanNowSpeakIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_0]) + return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2406]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2407]! } - public var Conversation_ContextMenuMore: String { return self._s[2408]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2409]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2410]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2412]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2408]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2409]! } + public var Conversation_ContextMenuMore: String { return self._s[2410]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2411]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2412]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2414]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2413]!, self._r[2413]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2414]! } + public var UserInfo_NotificationsDisable: String { return self._s[2416]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) + return formatWithArgumentRanges(self._s[2418]!, self._r[2418]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2417]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2419]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2420]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2422]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_0]) + return formatWithArgumentRanges(self._s[2423]!, self._r[2423]!, [_0]) } - public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2423]! } - public var Conversation_RestrictedMedia: String { return self._s[2424]! } - public var Group_MessageVideoUpdated: String { return self._s[2425]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2426]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2427]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2428]! } - public var Media_ShareThisVideo: String { return self._s[2430]! } - public var DialogList_Replies: String { return self._s[2432]! } + public var VoiceChat_NoiseSuppressionDisabled: String { return self._s[2425]! } + public var Conversation_RestrictedMedia: String { return self._s[2426]! } + public var Group_MessageVideoUpdated: String { return self._s[2427]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2428]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2429]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2430]! } + public var Media_ShareThisVideo: String { return self._s[2432]! } + public var DialogList_Replies: String { return self._s[2434]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) + return formatWithArgumentRanges(self._s[2435]!, self._r[2435]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2434]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2435]! } - public var ImportStickerPack_ImportingStickers: String { return self._s[2436]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2437]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2436]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2437]! } + public var ImportStickerPack_ImportingStickers: String { return self._s[2438]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2439]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2440]!, self._r[2440]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2439]!, self._r[2439]!, [_0]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2440]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2441]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2442]! } - public var Channel_Members_InviteLink: String { return self._s[2443]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2444]! } - public var WatchRemote_AlertText: String { return self._s[2445]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2442]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2443]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2444]! } + public var Channel_Members_InviteLink: String { return self._s[2445]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2446]! } + public var WatchRemote_AlertText: String { return self._s[2447]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2448]!, self._r[2448]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2447]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2448]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2449]! } - public var Conversation_CancelForwardTitle: String { return self._s[2450]! } + public var Conversation_Pin: String { return self._s[2449]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2450]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2451]! } + public var Conversation_CancelForwardTitle: String { return self._s[2452]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_0]) + return formatWithArgumentRanges(self._s[2453]!, self._r[2453]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2452]! } - public var StickerPack_ErrorNotFound: String { return self._s[2453]! } + public var Appearance_AppIconFilled: String { return self._s[2454]! } + public var StickerPack_ErrorNotFound: String { return self._s[2455]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_1]) + return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2455]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2457]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_1]) + return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_1]) } - public var Call_Camera: String { return self._s[2458]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2459]! } - public var Group_Location_Info: String { return self._s[2460]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2461]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2462]! } + public var Call_Camera: String { return self._s[2460]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2461]! } + public var Group_Location_Info: String { return self._s[2462]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2463]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2464]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) + return formatWithArgumentRanges(self._s[2465]!, self._r[2465]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2464]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2465]! } - public var InviteLink_Create_UsersLimit: String { return self._s[2466]! } + public var Weekday_Yesterday: String { return self._s[2466]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2467]! } + public var InviteLink_Create_UsersLimit: String { return self._s[2468]! } public func Notification_VoiceChatScheduledTodayChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) + return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) } - public var ArchivedPacksAlert_Title: String { return self._s[2468]! } - public var PeerInfo_PaneMembers: String { return self._s[2469]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2470]! } + public var ArchivedPacksAlert_Title: String { return self._s[2470]! } + public var PeerInfo_PaneMembers: String { return self._s[2471]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2472]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2472]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2474]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2474]! } - public var Channel_DiscussionGroup: String { return self._s[2475]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2476]! } - public var InviteLink_Create_TimeLimit: String { return self._s[2478]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2479]! } - public var VoiceOver_MessageContextForward: String { return self._s[2480]! } - public var SocksProxySetup_TypeNone: String { return self._s[2481]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2483]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2485]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2486]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2487]! } - public var Group_Username_InvalidTooShort: String { return self._s[2488]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2489]! } - public var VoiceChat_EditTitleText: String { return self._s[2490]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2476]! } + public var Channel_DiscussionGroup: String { return self._s[2477]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2478]! } + public var InviteLink_Create_TimeLimit: String { return self._s[2480]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2481]! } + public var VoiceOver_MessageContextForward: String { return self._s[2482]! } + public var SocksProxySetup_TypeNone: String { return self._s[2483]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2485]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2487]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2488]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2489]! } + public var Group_Username_InvalidTooShort: String { return self._s[2490]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2491]! } + public var VoiceChat_EditTitleText: String { return self._s[2492]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2491]!, self._r[2491]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2493]!, self._r[2493]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2492]! } - public var ConvertToSupergroup_Title: String { return self._s[2493]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2494]! } - public var Cache_KeepMediaHelp: String { return self._s[2495]! } - public var Channel_Management_Title: String { return self._s[2496]! } + public var Passport_Language_tk: String { return self._s[2494]! } + public var ConvertToSupergroup_Title: String { return self._s[2495]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2496]! } + public var Cache_KeepMediaHelp: String { return self._s[2497]! } + public var Channel_Management_Title: String { return self._s[2498]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_1]) + return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2498]! } - public var Passport_Language_bg: String { return self._s[2499]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2500]! } - public var Permissions_PrivacyPolicy: String { return self._s[2501]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2502]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2503]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2504]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2505]! } - public var Report_AdditionalDetailsPlaceholder: String { return self._s[2506]! } - public var Activity_UploadingVideo: String { return self._s[2507]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2509]! } - public var Widget_LongTapToEdit: String { return self._s[2510]! } - public var VoiceChat_InviteLink_Listener: String { return self._s[2512]! } - public var SocksProxySetup_Credentials: String { return self._s[2513]! } - public var Preview_SaveGif: String { return self._s[2514]! } - public var Cache_Photos: String { return self._s[2515]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2516]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2517]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2518]! } + public var Conversation_ForwardChats: String { return self._s[2500]! } + public var Passport_Language_bg: String { return self._s[2501]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2502]! } + public var Permissions_PrivacyPolicy: String { return self._s[2503]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2504]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2505]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2506]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2507]! } + public var Report_AdditionalDetailsPlaceholder: String { return self._s[2508]! } + public var Activity_UploadingVideo: String { return self._s[2509]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2511]! } + public var Widget_LongTapToEdit: String { return self._s[2512]! } + public var VoiceChat_InviteLink_Listener: String { return self._s[2514]! } + public var SocksProxySetup_Credentials: String { return self._s[2515]! } + public var Preview_SaveGif: String { return self._s[2516]! } + public var Cache_Photos: String { return self._s[2517]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2518]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2519]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2520]! } public func VoiceChat_RemoveAndBanPeerConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2521]!, self._r[2521]!, [_1, _2]) } - public var Passport_Language_lt: String { return self._s[2520]! } - public var Passport_DeleteDocument: String { return self._s[2522]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2523]! } + public var Passport_Language_lt: String { return self._s[2522]! } + public var Passport_DeleteDocument: String { return self._s[2524]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2525]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2525]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2527]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2526]!, self._r[2526]!, [_0]) - } - public var AccessDenied_VideoCallCamera: String { return self._s[2527]! } - public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2528]!, self._r[2528]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2529]! } - public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_1]) + public var AccessDenied_VideoCallCamera: String { return self._s[2529]! } + public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_0]) } - public var DialogList_Unpin: String { return self._s[2531]! } - public var Stickers_NoStickersFound: String { return self._s[2532]! } - public var UserInfo_AddContact: String { return self._s[2534]! } + public var PhotoEditor_SharpenTool: String { return self._s[2531]! } + public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_1]) + } + public var DialogList_Unpin: String { return self._s[2533]! } + public var Stickers_NoStickersFound: String { return self._s[2534]! } + public var UserInfo_AddContact: String { return self._s[2536]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) + return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) + return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2538]! } - public var Tour_Text2: String { return self._s[2539]! } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2540]! } + public var Tour_Text2: String { return self._s[2541]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2543]!, self._r[2543]!, [_1, _2]) } - public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2543]! } - public var Paint_Delete: String { return self._s[2544]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Text: String { return self._s[2545]! } + public var Paint_Delete: String { return self._s[2546]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2547]!, self._r[2547]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2546]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2548]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_0]) + return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2549]! } - public var Notification_CallOutgoingShort: String { return self._s[2550]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2551]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2552]! } - public var Notification_MessageLifetime1m: String { return self._s[2553]! } - public var BlockedUsers_AddNew: String { return self._s[2555]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2556]! } - public var Settings_SaveEditedPhotos: String { return self._s[2557]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2558]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2551]! } + public var Notification_CallOutgoingShort: String { return self._s[2552]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2553]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2554]! } + public var Notification_MessageLifetime1m: String { return self._s[2555]! } + public var BlockedUsers_AddNew: String { return self._s[2557]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2558]! } + public var Settings_SaveEditedPhotos: String { return self._s[2559]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2560]! } public func ImportStickerPack_Of(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_1, _2]) } - public var Channel_AboutItem: String { return self._s[2560]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2561]! } - public var Privacy_Calls_P2PNever: String { return self._s[2563]! } - public var Passport_Language_uk: String { return self._s[2564]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2565]! } - public var Conversation_Moderate_Report: String { return self._s[2566]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2567]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2568]! } - public var Permissions_SiriText_v0: String { return self._s[2569]! } - public var Theme_Colors_Background: String { return self._s[2570]! } - public var Notification_CallMissed: String { return self._s[2571]! } - public var Stats_ZoomOut: String { return self._s[2572]! } - public var Profile_AddToExisting: String { return self._s[2573]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2576]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2577]! } - public var Undo_DeletedChannel: String { return self._s[2578]! } + public var Channel_AboutItem: String { return self._s[2562]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2563]! } + public var Privacy_Calls_P2PNever: String { return self._s[2565]! } + public var Passport_Language_uk: String { return self._s[2566]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2567]! } + public var Conversation_Moderate_Report: String { return self._s[2568]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2569]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2570]! } + public var Permissions_SiriText_v0: String { return self._s[2571]! } + public var Theme_Colors_Background: String { return self._s[2572]! } + public var Notification_CallMissed: String { return self._s[2573]! } + public var Stats_ZoomOut: String { return self._s[2574]! } + public var Profile_AddToExisting: String { return self._s[2575]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2578]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2579]! } + public var Undo_DeletedChannel: String { return self._s[2580]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) + return formatWithArgumentRanges(self._s[2581]!, self._r[2581]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2580]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2581]! } - public var Passport_InfoFAQ_URL: String { return self._s[2582]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2585]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2582]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2583]! } + public var Passport_InfoFAQ_URL: String { return self._s[2584]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2587]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_1]) + return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_1]) } - public var State_connecting: String { return self._s[2587]! } - public var Passport_Identity_Country: String { return self._s[2588]! } - public var Passport_PasswordDescription: String { return self._s[2589]! } - public var ChatList_PsaLabel_covid: String { return self._s[2590]! } + public var State_connecting: String { return self._s[2589]! } + public var Passport_Identity_Country: String { return self._s[2590]! } + public var Passport_PasswordDescription: String { return self._s[2591]! } + public var ChatList_PsaLabel_covid: String { return self._s[2592]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2591]!, self._r[2591]!, [_1]) + return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2592]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2593]! } - public var ClearCache_Description: String { return self._s[2594]! } - public var Localization_LanguageName: String { return self._s[2595]! } + public var Contacts_AddPeopleNearby: String { return self._s[2594]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2595]! } + public var ClearCache_Description: String { return self._s[2596]! } + public var Localization_LanguageName: String { return self._s[2597]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2596]!, self._r[2596]!, [_0]) + return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) } - public var Conversation_AddMembers: String { return self._s[2597]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2598]! } - public var UserInfo_CreateNewContact: String { return self._s[2599]! } - public var Channel_Stickers_NotFound: String { return self._s[2601]! } - public var Message_FakeAccount: String { return self._s[2602]! } - public var Watch_Message_Poll: String { return self._s[2603]! } - public var Group_Members_Title: String { return self._s[2604]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2605]! } + public var Conversation_AddMembers: String { return self._s[2599]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2600]! } + public var UserInfo_CreateNewContact: String { return self._s[2601]! } + public var Channel_Stickers_NotFound: String { return self._s[2603]! } + public var Message_FakeAccount: String { return self._s[2604]! } + public var Watch_Message_Poll: String { return self._s[2605]! } + public var Group_Members_Title: String { return self._s[2606]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2607]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0, _1]) } - public var VoiceChat_CancelConfirmationText: String { return self._s[2607]! } - public var BroadcastGroups_Convert: String { return self._s[2608]! } - public var Login_InfoDeletePhoto: String { return self._s[2609]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2610]! } - public var InstantPage_FeedbackButton: String { return self._s[2611]! } - public var Appearance_PreviewReplyText: String { return self._s[2612]! } - public var Passport_FieldPhoneHelp: String { return self._s[2613]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2614]! } - public var Media_SendingOptionsTooltip: String { return self._s[2615]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2616]! } - public var Notifications_Badge: String { return self._s[2617]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2618]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2619]! } + public var VoiceChat_CancelConfirmationText: String { return self._s[2609]! } + public var BroadcastGroups_Convert: String { return self._s[2610]! } + public var Login_InfoDeletePhoto: String { return self._s[2611]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2612]! } + public var InstantPage_FeedbackButton: String { return self._s[2613]! } + public var Appearance_PreviewReplyText: String { return self._s[2614]! } + public var Passport_FieldPhoneHelp: String { return self._s[2615]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2616]! } + public var Media_SendingOptionsTooltip: String { return self._s[2617]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2618]! } + public var Notifications_Badge: String { return self._s[2619]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2620]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2621]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_0]) + return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_0]) } - public var Passport_InfoLearnMore: String { return self._s[2622]! } - public var EnterPasscode_EnterTitle: String { return self._s[2623]! } - public var Appearance_EditTheme: String { return self._s[2624]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2625]! } - public var Stats_FollowersTitle: String { return self._s[2626]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2627]! } - public var Channel_Subscribers_Title: String { return self._s[2628]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2629]! } - public var ChatImportActivity_ErrorGeneric: String { return self._s[2630]! } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2631]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2632]! } - public var Conversation_AddToReadingList: String { return self._s[2633]! } - public var VoiceChat_EditBioPlaceholder: String { return self._s[2634]! } + public var Passport_InfoLearnMore: String { return self._s[2624]! } + public var EnterPasscode_EnterTitle: String { return self._s[2625]! } + public var Appearance_EditTheme: String { return self._s[2626]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2627]! } + public var Stats_FollowersTitle: String { return self._s[2628]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2629]! } + public var Channel_Subscribers_Title: String { return self._s[2630]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2631]! } + public var ChatImportActivity_ErrorGeneric: String { return self._s[2632]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2633]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2634]! } + public var Conversation_AddToReadingList: String { return self._s[2635]! } + public var VoiceChat_EditBioPlaceholder: String { return self._s[2636]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_0]) + return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2636]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2637]! } - public var Watch_Location_Current: String { return self._s[2638]! } - public var Appearance_AppIconNew1: String { return self._s[2639]! } - public var PrivacyPolicy_Title: String { return self._s[2640]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2647]! } - public var Channel_TypeSetup_Title: String { return self._s[2651]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2652]! } - public var Passport_Language_ja: String { return self._s[2653]! } - public var ReportPeer_ReasonSpam: String { return self._s[2654]! } - public var Widget_GalleryDescription: String { return self._s[2655]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2656]! } - public var VoiceChat_ChangePhoto: String { return self._s[2658]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2659]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2660]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2661]! } + public var Group_AdminLog_EmptyText: String { return self._s[2638]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2639]! } + public var Watch_Location_Current: String { return self._s[2640]! } + public var Appearance_AppIconNew1: String { return self._s[2641]! } + public var PrivacyPolicy_Title: String { return self._s[2642]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2649]! } + public var Channel_TypeSetup_Title: String { return self._s[2653]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2654]! } + public var Passport_Language_ja: String { return self._s[2655]! } + public var ReportPeer_ReasonSpam: String { return self._s[2656]! } + public var Widget_GalleryDescription: String { return self._s[2657]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2658]! } + public var VoiceChat_ChangePhoto: String { return self._s[2660]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2661]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2662]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2663]! } public func InviteLink_ExpiresIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2662]!, self._r[2662]!, [_0]) + return formatWithArgumentRanges(self._s[2664]!, self._r[2664]!, [_0]) } - public var Call_Audio: String { return self._s[2663]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2664]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2665]! } - public var Settings_PrivacySettings: String { return self._s[2666]! } - public var InviteLink_UsageLimitReached: String { return self._s[2667]! } - public var Stats_Followers: String { return self._s[2668]! } - public var Notifications_AddExceptionTitle: String { return self._s[2669]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2670]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2671]! } - public var OldChannels_NoticeText: String { return self._s[2672]! } - public var Conversation_SavedMessages: String { return self._s[2673]! } - public var Intents_ErrorLockedText: String { return self._s[2674]! } + public var Call_Audio: String { return self._s[2665]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2666]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2667]! } + public var Settings_PrivacySettings: String { return self._s[2668]! } + public var InviteLink_UsageLimitReached: String { return self._s[2669]! } + public var Stats_Followers: String { return self._s[2670]! } + public var Notifications_AddExceptionTitle: String { return self._s[2671]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2672]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2673]! } + public var OldChannels_NoticeText: String { return self._s[2674]! } + public var Conversation_SavedMessages: String { return self._s[2675]! } + public var Intents_ErrorLockedText: String { return self._s[2676]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2677]! } - public var Appearance_ThemeNightBlue: String { return self._s[2678]! } - public var Notification_ChannelInviterSelf: String { return self._s[2679]! } - public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2680]! } - public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2682]! } - public var Watch_UserInfo_Service: String { return self._s[2683]! } - public var ChatList_Context_Back: String { return self._s[2684]! } - public var Passport_Email_Title: String { return self._s[2685]! } - public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2686]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2687]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2679]! } + public var Appearance_ThemeNightBlue: String { return self._s[2680]! } + public var Notification_ChannelInviterSelf: String { return self._s[2681]! } + public var Conversation_ForwardTooltip_SavedMessages_Many: String { return self._s[2682]! } + public var InviteLink_Create_TimeLimitExpiryDateNever: String { return self._s[2684]! } + public var Watch_UserInfo_Service: String { return self._s[2685]! } + public var ChatList_Context_Back: String { return self._s[2686]! } + public var Passport_Email_Title: String { return self._s[2687]! } + public var ImportStickerPack_AddToExistingStickerSet: String { return self._s[2688]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2689]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_1]) + return formatWithArgumentRanges(self._s[2690]!, self._r[2690]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2689]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2690]! } - public var Privacy_TopPeersHelp: String { return self._s[2692]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2693]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2694]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2695]! } + public var Conversation_UnsupportedMedia: String { return self._s[2691]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2692]! } + public var Privacy_TopPeersHelp: String { return self._s[2694]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2695]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2696]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2697]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2696]!, self._r[2696]!, [_0]) + return formatWithArgumentRanges(self._s[2698]!, self._r[2698]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2697]! } - public var Map_Map: String { return self._s[2698]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2699]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2700]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2701]! } - public var ChatList_Search_FilterMusic: String { return self._s[2702]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2703]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2704]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2706]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2699]! } + public var Map_Map: String { return self._s[2700]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2701]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2702]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } + public var ChatList_Search_FilterMusic: String { return self._s[2704]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2705]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2706]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2708]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2707]!, self._r[2707]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_0]) + return formatWithArgumentRanges(self._s[2710]!, self._r[2710]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2709]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2710]! } - public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2712]! } - public var GroupInfo_Location: String { return self._s[2713]! } - public var Passport_Language_ka: String { return self._s[2714]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2711]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2712]! } + public var VoiceOver_ChatList_MessageEmpty: String { return self._s[2714]! } + public var GroupInfo_Location: String { return self._s[2715]! } + public var Passport_Language_ka: String { return self._s[2716]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_0]) + return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2716]! } - public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2718]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2720]! } - public var DialogList_SearchSectionRecent: String { return self._s[2721]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2722]! } - public var Conversation_Timer_Send: String { return self._s[2723]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2718]! } + public var ChatImport_SelectionConfirmationAlertTitle: String { return self._s[2720]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2722]! } + public var DialogList_SearchSectionRecent: String { return self._s[2723]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2724]! } + public var Conversation_Timer_Send: String { return self._s[2725]! } public func VoiceOver_ScrollStatus(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2725]!, self._r[2725]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_1, _2]) } - public var ChatState_Updating: String { return self._s[2726]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2727]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2728]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2729]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2730]! } - public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2731]! } - public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2732]! } - public var ChatList_Search_NoResults: String { return self._s[2733]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2735]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2736]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2737]! } - public var VoiceOver_SelfDestructTimerOff: String { return self._s[2739]! } + public var ChatState_Updating: String { return self._s[2728]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2729]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2730]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2731]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2732]! } + public var InviteLink_Create_TimeLimitExpiryTime: String { return self._s[2733]! } + public var ChannelInfo_InviteLink_RevokeAlert_Text: String { return self._s[2734]! } + public var ChatList_Search_NoResults: String { return self._s[2735]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2737]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2738]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2739]! } + public var VoiceOver_SelfDestructTimerOff: String { return self._s[2741]! } public func Channel_AdminLog_DeletedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2740]!, self._r[2740]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_1, _2]) } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2741]!, self._r[2741]!, [_0]) + return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2742]! } - public var Passport_Address_Postcode: String { return self._s[2743]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2744]! } + public var PrivacySettings_AuthSessions: String { return self._s[2744]! } + public var Passport_Address_Postcode: String { return self._s[2745]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2746]! } public func VoiceChat_ForwardTooltip_ManyChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2745]!, self._r[2745]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2747]!, self._r[2747]!, [_0, _1]) } - public var Passport_Address_Street2Placeholder: String { return self._s[2746]! } - public var Group_Location_Title: String { return self._s[2747]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2748]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2749]! } - public var Conversation_ContextMenuSpeak: String { return self._s[2751]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2752]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2748]! } + public var Group_Location_Title: String { return self._s[2749]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2750]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2751]! } + public var Conversation_ContextMenuSpeak: String { return self._s[2753]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2754]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2754]!, self._r[2754]!, [_0]) + return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2755]! } - public var Map_Search: String { return self._s[2756]! } - public var VoiceChat_CancelConfirmationTitle: String { return self._s[2757]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2758]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2759]! } + public var Proxy_TooltipUnavailable: String { return self._s[2757]! } + public var Map_Search: String { return self._s[2758]! } + public var VoiceChat_CancelConfirmationTitle: String { return self._s[2759]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2760]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2761]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2760]!, self._r[2760]!, [_0]) + return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2761]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2762]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2763]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2764]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2765]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2766]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2767]! } - public var ImportStickerPack_InProgress: String { return self._s[2768]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2769]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2770]! } - public var Notifications_GroupNotifications: String { return self._s[2771]! } - public var AccessDenied_SaveMedia: String { return self._s[2772]! } - public var InviteLink_Create_Revoke: String { return self._s[2773]! } - public var GroupInfo_LabelOwner: String { return self._s[2774]! } - public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2775]! } - public var Passport_Language_id: String { return self._s[2777]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2778]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2779]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2763]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2764]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2765]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2766]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2767]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2768]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2769]! } + public var ImportStickerPack_InProgress: String { return self._s[2770]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2771]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2772]! } + public var Notifications_GroupNotifications: String { return self._s[2773]! } + public var AccessDenied_SaveMedia: String { return self._s[2774]! } + public var InviteLink_Create_Revoke: String { return self._s[2775]! } + public var GroupInfo_LabelOwner: String { return self._s[2776]! } + public var TwoFactorSetup_PasswordRecovery_Action: String { return self._s[2777]! } + public var Passport_Language_id: String { return self._s[2779]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2780]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2781]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2780]!, self._r[2780]!, [_0]) + return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_0]) } public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) - } - public var TwoFactorSetup_Done_Text: String { return self._s[2782]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_0]) } - public var NetworkUsageSettings_BytesSent: String { return self._s[2784]! } - public var Conversation_AudioRateTooltipNormal: String { return self._s[2785]! } - public var VoiceChat_EditDescriptionSuccess: String { return self._s[2786]! } - public var OwnershipTransfer_Transfer: String { return self._s[2787]! } + public var TwoFactorSetup_Done_Text: String { return self._s[2784]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) + } + public var NetworkUsageSettings_BytesSent: String { return self._s[2786]! } + public var Conversation_AudioRateTooltipNormal: String { return self._s[2787]! } + public var VoiceChat_EditDescriptionSuccess: String { return self._s[2788]! } + public var OwnershipTransfer_Transfer: String { return self._s[2789]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) + return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2789]! } - public var PrivacySettings_WebSessions: String { return self._s[2790]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2792]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2793]! } + public var Passport_Language_pt: String { return self._s[2791]! } + public var PrivacySettings_WebSessions: String { return self._s[2792]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2794]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2795]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0]) + return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2795]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2796]! } - public var AutoNightTheme_Scheduled: String { return self._s[2797]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2798]! } - public var Calls_TabTitle: String { return self._s[2799]! } - public var VoiceChat_RecordingInProgress: String { return self._s[2800]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2801]! } - public var Notification_VideoCallCanceled: String { return self._s[2802]! } - public var Login_CodeSentInternal: String { return self._s[2803]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2804]! } - public var Call_RecordingDisabledMessage: String { return self._s[2806]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2797]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2798]! } + public var AutoNightTheme_Scheduled: String { return self._s[2799]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2800]! } + public var Calls_TabTitle: String { return self._s[2801]! } + public var VoiceChat_RecordingInProgress: String { return self._s[2802]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2803]! } + public var Notification_VideoCallCanceled: String { return self._s[2804]! } + public var Login_CodeSentInternal: String { return self._s[2805]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2806]! } + public var Call_RecordingDisabledMessage: String { return self._s[2808]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2807]!, self._r[2807]!, [_0]) + return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) } - public var Conversation_UsersTooMuchError: String { return self._s[2809]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2810]! } - public var VoiceChat_StopScreenSharingShort: String { return self._s[2811]! } - public var Channel_Info_Stickers: String { return self._s[2812]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2813]! } + public var Conversation_UsersTooMuchError: String { return self._s[2811]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2812]! } + public var VoiceChat_StopScreenSharingShort: String { return self._s[2813]! } + public var Channel_Info_Stickers: String { return self._s[2814]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2815]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2814]!, self._r[2814]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2815]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2817]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_0]) + return formatWithArgumentRanges(self._s[2818]!, self._r[2818]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2817]! } - public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2818]! } - public var Localization_LanguageOther: String { return self._s[2819]! } - public var Conversation_EncryptionCanceled: String { return self._s[2820]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2821]! } - public var ReportPeer_ReasonFake: String { return self._s[2823]! } + public var Passport_DiscardMessageTitle: String { return self._s[2819]! } + public var Call_VoiceOver_VideoCallIncoming: String { return self._s[2820]! } + public var Localization_LanguageOther: String { return self._s[2821]! } + public var Conversation_EncryptionCanceled: String { return self._s[2822]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2823]! } + public var ReportPeer_ReasonFake: String { return self._s[2825]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2824]!, self._r[2824]!, [_0]) + return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2826]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2827]! } - public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2828]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2828]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2829]! } + public var InviteLink_Create_UsersLimitNumberOfUsers: String { return self._s[2830]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_1]) + return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2831]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2832]! } - public var LocalGroup_Title: String { return self._s[2833]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2835]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2836]! } - public var VoiceChat_SelectAccount: String { return self._s[2837]! } - public var Login_PhoneFloodError: String { return self._s[2838]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2839]! } - public var Username_InvalidTaken: String { return self._s[2841]! } - public var SocksProxySetup_AddProxy: String { return self._s[2843]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2844]! } - public var MediaPicker_UngroupDescription: String { return self._s[2845]! } - public var Login_CodeExpired: String { return self._s[2846]! } - public var Localization_ChooseLanguage: String { return self._s[2847]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2848]! } + public var Conversation_ScamWarning: String { return self._s[2833]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2834]! } + public var LocalGroup_Title: String { return self._s[2835]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2837]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2838]! } + public var VoiceChat_SelectAccount: String { return self._s[2839]! } + public var Login_PhoneFloodError: String { return self._s[2840]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2841]! } + public var Username_InvalidTaken: String { return self._s[2843]! } + public var SocksProxySetup_AddProxy: String { return self._s[2845]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2846]! } + public var MediaPicker_UngroupDescription: String { return self._s[2847]! } + public var Login_CodeExpired: String { return self._s[2848]! } + public var Localization_ChooseLanguage: String { return self._s[2849]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2850]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0]) + return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) } public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2850]!, self._r[2850]!, [_0]) + return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2852]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2853]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[2854]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2855]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2854]!, self._r[2854]!, [_0]) + return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2855]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2856]! } - public var Call_StatusNoAnswer: String { return self._s[2857]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2859]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2860]! } - public var Conversation_UnarchiveDone: String { return self._s[2861]! } - public var LogoutOptions_AddAccountText: String { return self._s[2862]! } - public var Message_PinnedContactMessage: String { return self._s[2863]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2857]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2858]! } + public var Call_StatusNoAnswer: String { return self._s[2859]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2861]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2862]! } + public var Conversation_UnarchiveDone: String { return self._s[2863]! } + public var LogoutOptions_AddAccountText: String { return self._s[2864]! } + public var Message_PinnedContactMessage: String { return self._s[2865]! } public func ChatList_DeleteAndLeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2864]!, self._r[2864]!, [_0]) + return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) } - public var VoiceChat_EditBioTitle: String { return self._s[2866]! } + public var VoiceChat_EditBioTitle: String { return self._s[2868]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2867]!, self._r[2867]!, [_0]) + return formatWithArgumentRanges(self._s[2869]!, self._r[2869]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2868]! } - public var Passport_FieldAddressHelp: String { return self._s[2869]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2870]! } + public var Passport_FieldAddressHelp: String { return self._s[2871]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2870]!, self._r[2870]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2872]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2873]! } - public var Message_Photo: String { return self._s[2874]! } - public var Media_LimitedAccessManage: String { return self._s[2876]! } - public var MediaPicker_AddCaption: String { return self._s[2877]! } - public var LogoutOptions_Title: String { return self._s[2878]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2874]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2875]! } + public var Message_Photo: String { return self._s[2876]! } + public var Media_LimitedAccessManage: String { return self._s[2878]! } + public var MediaPicker_AddCaption: String { return self._s[2879]! } + public var LogoutOptions_Title: String { return self._s[2880]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_1]) + return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2880]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2881]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2882]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2883]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2884]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2885]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2886]! } - public var ChannelIntro_Title: String { return self._s[2887]! } - public var Stats_Message_Views: String { return self._s[2888]! } - public var Stickers_Install: String { return self._s[2889]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2882]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2883]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2884]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2885]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2886]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2887]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2888]! } + public var ChannelIntro_Title: String { return self._s[2889]! } + public var Stats_Message_Views: String { return self._s[2890]! } + public var Stickers_Install: String { return self._s[2891]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2890]!, self._r[2890]!, [_0]) + return formatWithArgumentRanges(self._s[2892]!, self._r[2892]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2891]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2893]! } - public var Settings_Username: String { return self._s[2896]! } - public var FastTwoStepSetup_Title: String { return self._s[2897]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2898]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2899]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2901]! } - public var CallFeedback_ReasonEcho: String { return self._s[2902]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2893]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2895]! } + public var Settings_Username: String { return self._s[2898]! } + public var FastTwoStepSetup_Title: String { return self._s[2899]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2900]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2901]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2903]! } + public var CallFeedback_ReasonEcho: String { return self._s[2904]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2903]!, self._r[2903]!, [_0]) + return formatWithArgumentRanges(self._s[2905]!, self._r[2905]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2904]! } - public var SocksProxySetup_Title: String { return self._s[2905]! } - public var CallFeedback_Success: String { return self._s[2906]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2908]! } - public var InstantPage_AutoNightTheme: String { return self._s[2910]! } - public var Watch_Conversation_Reply: String { return self._s[2911]! } - public var VoiceChat_Share: String { return self._s[2913]! } - public var VoiceChat_AddPhoto: String { return self._s[2914]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2915]! } - public var WallpaperPreview_Pattern: String { return self._s[2916]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2917]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2906]! } + public var SocksProxySetup_Title: String { return self._s[2907]! } + public var CallFeedback_Success: String { return self._s[2908]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2910]! } + public var InstantPage_AutoNightTheme: String { return self._s[2912]! } + public var Watch_Conversation_Reply: String { return self._s[2913]! } + public var VoiceChat_Share: String { return self._s[2915]! } + public var VoiceChat_AddPhoto: String { return self._s[2916]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2917]! } + public var WallpaperPreview_Pattern: String { return self._s[2918]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2919]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2918]!, self._r[2918]!, [_0]) + return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2919]! } - public var VoiceOver_Chat_GroupInfo: String { return self._s[2920]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2922]! } - public var Update_Title: String { return self._s[2923]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2924]! } - public var WallpaperPreview_CropTopText: String { return self._s[2927]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2928]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2929]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2930]! } - public var Message_PinnedPhotoMessage: String { return self._s[2931]! } - public var Appearance_ThemeDayClassic: String { return self._s[2932]! } - public var VoiceChat_ChangeName: String { return self._s[2933]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2935]! } - public var VoiceChat_DisplayAsInfo: String { return self._s[2937]! } - public var AccessDenied_Wallpapers: String { return self._s[2942]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2921]! } + public var VoiceOver_Chat_GroupInfo: String { return self._s[2922]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2924]! } + public var Update_Title: String { return self._s[2925]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2926]! } + public var WallpaperPreview_CropTopText: String { return self._s[2929]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2930]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2931]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2932]! } + public var Message_PinnedPhotoMessage: String { return self._s[2933]! } + public var Appearance_ThemeDayClassic: String { return self._s[2934]! } + public var VoiceChat_ChangeName: String { return self._s[2935]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2937]! } + public var VoiceChat_DisplayAsInfo: String { return self._s[2939]! } + public var AccessDenied_Wallpapers: String { return self._s[2944]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2943]!, self._r[2943]!, [_0]) + return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2944]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2946]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2947]! } - public var AccessDenied_LocationDisabled: String { return self._s[2948]! } - public var Tour_Text3: String { return self._s[2949]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2950]! } + public var Weekday_Sunday: String { return self._s[2946]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2948]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2949]! } + public var AccessDenied_LocationDisabled: String { return self._s[2950]! } + public var Tour_Text3: String { return self._s[2951]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2952]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2951]!, self._r[2951]!, [_0]) + return formatWithArgumentRanges(self._s[2953]!, self._r[2953]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2952]! } - public var Conversation_ClearCache: String { return self._s[2953]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2954]! } - public var ChatList_Tabs_AllChats: String { return self._s[2955]! } - public var DialogList_RecentTitlePeople: String { return self._s[2956]! } - public var Stickers_AddToFavorites: String { return self._s[2957]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2958]! } - public var VoiceChat_CancelSpeakRequest: String { return self._s[2959]! } - public var Settings_RemoveVideo: String { return self._s[2960]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2961]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2962]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2963]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2965]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2966]! } - public var VoiceChat_TapToAddBio: String { return self._s[2967]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2968]! } - public var Map_SendThisLocation: String { return self._s[2970]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2972]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2973]! } - public var CloudStorage_Title: String { return self._s[2974]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2975]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2976]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2978]! } - public var Undo_LeftGroup: String { return self._s[2979]! } - public var Conversation_StopLiveLocation: String { return self._s[2980]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2981]! } - public var Message_PinnedInvoice: String { return self._s[2982]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2983]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2954]! } + public var Conversation_ClearCache: String { return self._s[2955]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2956]! } + public var ChatList_Tabs_AllChats: String { return self._s[2957]! } + public var DialogList_RecentTitlePeople: String { return self._s[2958]! } + public var Stickers_AddToFavorites: String { return self._s[2959]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2960]! } + public var VoiceChat_CancelSpeakRequest: String { return self._s[2961]! } + public var Settings_RemoveVideo: String { return self._s[2962]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2963]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2964]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2965]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2967]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2968]! } + public var VoiceChat_TapToAddBio: String { return self._s[2969]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2970]! } + public var Map_SendThisLocation: String { return self._s[2972]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2974]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2975]! } + public var CloudStorage_Title: String { return self._s[2976]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2977]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2978]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2980]! } + public var Undo_LeftGroup: String { return self._s[2981]! } + public var Conversation_StopLiveLocation: String { return self._s[2982]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2983]! } + public var Message_PinnedInvoice: String { return self._s[2984]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2985]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2985]!, self._r[2985]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2986]!, self._r[2986]!, [_0]) + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) } - public var Weekday_Tuesday: String { return self._s[2987]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2988]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[2989]! } - public var Calls_CallTabDescription: String { return self._s[2990]! } - public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2991]! } - public var SocksProxySetup_UseProxy: String { return self._s[2993]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2994]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[2995]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[2996]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[2998]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2999]! } - public var Exceptions_AddToExceptions: String { return self._s[3000]! } - public var UserInfo_Title: String { return self._s[3001]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[3003]! } - public var VoiceChat_EditDescription: String { return self._s[3005]! } - public var ChatList_Unmute: String { return self._s[3006]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3007]! } + public var TwoStepAuth_RecoveryUnavailableResetTitle: String { return self._s[2989]! } + public var Weekday_Tuesday: String { return self._s[2990]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2991]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2992]! } + public var Calls_CallTabDescription: String { return self._s[2993]! } + public var ChatImport_SelectionErrorNotAdmin: String { return self._s[2994]! } + public var SocksProxySetup_UseProxy: String { return self._s[2996]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2997]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[2998]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[2999]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[3001]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[3002]! } + public var Exceptions_AddToExceptions: String { return self._s[3003]! } + public var UserInfo_Title: String { return self._s[3004]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[3006]! } + public var VoiceChat_EditDescription: String { return self._s[3008]! } + public var ChatList_Unmute: String { return self._s[3009]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[3010]! } public func Channel_AdminLog_MessageChangedAutoremoveTimeoutSet(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3008]!, self._r[3008]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1, _2]) } - public var Stats_GroupTopPostersTitle: String { return self._s[3009]! } - public var Username_CheckingUsername: String { return self._s[3011]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3012]! } - public var PeerSelection_ImportIntoNewGroup: String { return self._s[3016]! } - public var Location_ProximityAlertSetTitle: String { return self._s[3017]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3018]! } - public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3019]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3020]! } - public var Settings_ChangePhoneNumber: String { return self._s[3021]! } - public var PeerInfo_PaneLinks: String { return self._s[3022]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3025]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3027]! } + public var Stats_GroupTopPostersTitle: String { return self._s[3012]! } + public var Username_CheckingUsername: String { return self._s[3014]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3015]! } + public var PeerSelection_ImportIntoNewGroup: String { return self._s[3019]! } + public var Location_ProximityAlertSetTitle: String { return self._s[3020]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3021]! } + public var Conversation_JoinVoiceChatAsSpeaker: String { return self._s[3022]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[3023]! } + public var Settings_ChangePhoneNumber: String { return self._s[3024]! } + public var PeerInfo_PaneLinks: String { return self._s[3025]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3028]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[3030]! } public func PUSH_CHAT_VOICECHAT_INVITE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3028]!, self._r[3028]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_1, _2]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3029]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3030]! } - public var VoiceChat_CancelConfirmationEnd: String { return self._s[3031]! } - public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3032]! } - public var Stats_FollowersBySourceTitle: String { return self._s[3034]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3032]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3033]! } + public var VoiceChat_CancelConfirmationEnd: String { return self._s[3034]! } + public var BroadcastGroups_ConfirmationAlert_Title: String { return self._s[3035]! } + public var Stats_FollowersBySourceTitle: String { return self._s[3037]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3035]!, self._r[3035]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[3036]! } - public var Channel_CommentsGroup_Header: String { return self._s[3038]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3039]! } + public var Channel_CommentsGroup_Header: String { return self._s[3041]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0]) + return formatWithArgumentRanges(self._s[3045]!, self._r[3045]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_1]) + return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3045]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3048]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3046]!, self._r[3046]!, [_0]) + return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_0]) } - public var Conversation_ReportMessages: String { return self._s[3047]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3048]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3049]! } - public var PrivacySettings_LastSeen: String { return self._s[3051]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3052]! } - public var Theme_Colors_Proceed: String { return self._s[3053]! } - public var UserInfo_ScamBotWarning: String { return self._s[3054]! } - public var LogoutOptions_LogOut: String { return self._s[3056]! } - public var Conversation_SendMessage: String { return self._s[3057]! } - public var Conversation_CancelForwardCancelForward: String { return self._s[3058]! } - public var VoiceChat_Scheduled: String { return self._s[3060]! } - public var Passport_Address_Region: String { return self._s[3061]! } - public var MediaPicker_CameraRoll: String { return self._s[3063]! } + public var Conversation_ReportMessages: String { return self._s[3050]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3051]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3052]! } + public var PrivacySettings_LastSeen: String { return self._s[3054]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[3055]! } + public var Theme_Colors_Proceed: String { return self._s[3056]! } + public var UserInfo_ScamBotWarning: String { return self._s[3057]! } + public var LogoutOptions_LogOut: String { return self._s[3059]! } + public var Conversation_SendMessage: String { return self._s[3060]! } + public var Conversation_CancelForwardCancelForward: String { return self._s[3061]! } + public var VoiceChat_Scheduled: String { return self._s[3063]! } + public var Passport_Address_Region: String { return self._s[3064]! } + public var MediaPicker_CameraRoll: String { return self._s[3066]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_0]) + return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) } - public var Call_ReportSend: String { return self._s[3067]! } - public var VoiceOver_ChatList_Message: String { return self._s[3068]! } - public var Month_ShortJune: String { return self._s[3069]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[3070]! } + public var Call_ReportSend: String { return self._s[3070]! } + public var VoiceOver_ChatList_Message: String { return self._s[3071]! } + public var Month_ShortJune: String { return self._s[3072]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[3073]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) + return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[3074]! } - public var Cache_KeepMedia: String { return self._s[3075]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[3077]! } + public var Cache_KeepMedia: String { return self._s[3078]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, _2, _3]) } - public var Appearance_LargeEmoji: String { return self._s[3077]! } + public var Appearance_LargeEmoji: String { return self._s[3080]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3079]! } - public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3080]! } - public var Call_CameraConfirmationText: String { return self._s[3081]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3082]! } + public var Privacy_PaymentsClear_PaymentInfoCleared: String { return self._s[3083]! } + public var Call_CameraConfirmationText: String { return self._s[3084]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_0]) + return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_0]) } - public var DialogList_SearchSectionChats: String { return self._s[3084]! } - public var VoiceOver_MessageContextReport: String { return self._s[3086]! } - public var VoiceChat_RemovePeer: String { return self._s[3087]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3088]! } - public var InviteLink_ContextCopy: String { return self._s[3089]! } - public var NotificationsSound_Tritone: String { return self._s[3091]! } - public var VoiceChat_YouAreSharingScreen: String { return self._s[3093]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3095]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[3096]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3097]! } - public var PeerInfo_AddToContacts: String { return self._s[3098]! } - public var VoiceChat_OpenChat: String { return self._s[3099]! } - public var AccessDenied_Title: String { return self._s[3100]! } - public var InviteLink_QRCode_InfoChannel: String { return self._s[3101]! } - public var Tour_Title1: String { return self._s[3102]! } - public var VoiceOver_AttachMedia: String { return self._s[3103]! } + public var DialogList_SearchSectionChats: String { return self._s[3087]! } + public var VoiceOver_MessageContextReport: String { return self._s[3089]! } + public var VoiceChat_RemovePeer: String { return self._s[3090]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[3091]! } + public var InviteLink_ContextCopy: String { return self._s[3092]! } + public var NotificationsSound_Tritone: String { return self._s[3094]! } + public var VoiceChat_YouAreSharingScreen: String { return self._s[3096]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3098]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[3099]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertText: String { return self._s[3100]! } + public var TwoStepAuth_ResetAction: String { return self._s[3101]! } + public var PeerInfo_AddToContacts: String { return self._s[3102]! } + public var VoiceChat_OpenChat: String { return self._s[3103]! } + public var AccessDenied_Title: String { return self._s[3104]! } + public var InviteLink_QRCode_InfoChannel: String { return self._s[3105]! } + public var Tour_Title1: String { return self._s[3106]! } + public var VoiceOver_AttachMedia: String { return self._s[3107]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_0]) - } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[3106]! } - public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3107]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3108]! } - public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3110]! } - public var OldChannels_Title: String { return self._s[3111]! } - public var LoginPassword_FloodError: String { return self._s[3112]! } - public var ChatImportActivity_InProgress: String { return self._s[3114]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[3115]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[3110]! } + public var Privacy_DeleteDrafts_DraftsDeleted: String { return self._s[3111]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[3112]! } + public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_0]) + } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[3114]! } + public var OldChannels_Title: String { return self._s[3115]! } + public var LoginPassword_FloodError: String { return self._s[3116]! } + public var ChatImportActivity_InProgress: String { return self._s[3118]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[3119]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_0]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[3119]! } - public var Passport_CorrectErrors: String { return self._s[3121]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[3123]! } + public var Passport_CorrectErrors: String { return self._s[3125]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3122]!, self._r[3122]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[3123]! } + public var ChatListFolderSettings_Title: String { return self._s[3127]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3124]!, self._r[3124]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[3125]! } - public var Contacts_NotRegisteredSection: String { return self._s[3128]! } + public var PhotoEditor_HighlightsTool: String { return self._s[3129]! } + public var Contacts_NotRegisteredSection: String { return self._s[3132]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1]) + return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1]) } - public var InviteLink_Create_UsersLimitInfo: String { return self._s[3131]! } - public var User_DeletedAccount: String { return self._s[3132]! } - public var Conversation_ViewContactDetails: String { return self._s[3133]! } - public var Conversation_Dice_u1F3B3: String { return self._s[3134]! } - public var WebSearch_GIFs: String { return self._s[3135]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3136]! } - public var Appearance_PreviewOutgoingText: String { return self._s[3137]! } - public var Calls_CallTabTitle: String { return self._s[3138]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[3139]! } - public var Checkout_OptionalTipItem: String { return self._s[3140]! } + public var InviteLink_Create_UsersLimitInfo: String { return self._s[3135]! } + public var User_DeletedAccount: String { return self._s[3136]! } + public var Conversation_ViewContactDetails: String { return self._s[3137]! } + public var Conversation_Dice_u1F3B3: String { return self._s[3138]! } + public var WebSearch_GIFs: String { return self._s[3139]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3140]! } + public var Appearance_PreviewOutgoingText: String { return self._s[3141]! } + public var Calls_CallTabTitle: String { return self._s[3142]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[3143]! } + public var Checkout_OptionalTipItem: String { return self._s[3144]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3141]!, self._r[3141]!, [_0]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_0]) } - public var Channel_Status: String { return self._s[3142]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3144]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[3145]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3146]! } + public var Channel_Status: String { return self._s[3146]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[3148]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[3149]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3150]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3149]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[3151]! } - public var Month_ShortDecember: String { return self._s[3152]! } - public var Username_Help: String { return self._s[3153]! } - public var Login_InfoAvatarAdd: String { return self._s[3154]! } - public var Month_ShortMay: String { return self._s[3155]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3156]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3157]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[3158]! } - public var VoiceChat_StopScreenSharing: String { return self._s[3159]! } - public var VoiceChat_AskedToSpeak: String { return self._s[3160]! } - public var Weekday_ShortSunday: String { return self._s[3161]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3162]! } - public var AuthSessions_TerminateSession: String { return self._s[3163]! } - public var Passport_Identity_FilesTitle: String { return self._s[3164]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3153]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[3155]! } + public var Month_ShortDecember: String { return self._s[3156]! } + public var Username_Help: String { return self._s[3157]! } + public var Login_InfoAvatarAdd: String { return self._s[3158]! } + public var Month_ShortMay: String { return self._s[3159]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3160]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[3161]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[3162]! } + public var VoiceChat_StopScreenSharing: String { return self._s[3163]! } + public var VoiceChat_AskedToSpeak: String { return self._s[3164]! } + public var Weekday_ShortSunday: String { return self._s[3165]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3166]! } + public var AuthSessions_TerminateSession: String { return self._s[3167]! } + public var Passport_Identity_FilesTitle: String { return self._s[3168]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3165]!, self._r[3165]!, [_0]) + return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[3167]! } + public var PeopleNearby_MakeVisible: String { return self._s[3171]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3168]!, self._r[3168]!, [_0]) + return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_0]) } - public var Widget_UpdatedAt: String { return self._s[3169]! } + public var Widget_UpdatedAt: String { return self._s[3173]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_0]) + return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3172]! } - public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3173]! } - public var ImportStickerPack_ChooseStickerSet: String { return self._s[3175]! } - public var Conversation_ContextMenuForward: String { return self._s[3176]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[3177]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3176]! } + public var VoiceChat_VideoPreviewShareScreen: String { return self._s[3177]! } + public var ImportStickerPack_ChooseStickerSet: String { return self._s[3179]! } + public var Conversation_ContextMenuForward: String { return self._s[3180]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[3181]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[3181]! } - public var Privacy_Forwards_NeverLink: String { return self._s[3182]! } - public var AuthSessions_CurrentSession: String { return self._s[3183]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[3184]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3185]! } - public var ChatSearch_ResultsTooltip: String { return self._s[3187]! } - public var CheckoutInfo_Pay: String { return self._s[3188]! } + public var Notification_GroupInviterSelf: String { return self._s[3185]! } + public var Privacy_Forwards_NeverLink: String { return self._s[3186]! } + public var AuthSessions_CurrentSession: String { return self._s[3187]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[3188]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3189]! } + public var ChatSearch_ResultsTooltip: String { return self._s[3191]! } + public var CheckoutInfo_Pay: String { return self._s[3192]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3190]!, self._r[3190]!, [_0]) + return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[3191]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[3192]! } + public var GroupInfo_AddParticipant: String { return self._s[3195]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[3196]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) + return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0]) } - public var Localization_LanguageCustom: String { return self._s[3194]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[3195]! } - public var Settings_UsernameEmpty: String { return self._s[3196]! } - public var Settings_FAQ_URL: String { return self._s[3197]! } - public var ChatList_UndoArchiveText1: String { return self._s[3198]! } - public var Common_Select: String { return self._s[3200]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3201]! } - public var Notification_PassportValueAddress: String { return self._s[3202]! } - public var Conversation_MessageDialogDelete: String { return self._s[3203]! } - public var Map_OpenInYandexNavigator: String { return self._s[3205]! } - public var DialogList_SearchSectionDialogs: String { return self._s[3206]! } - public var AccessDenied_Contacts: String { return self._s[3207]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3209]! } - public var Passport_ScanPassportHelp: String { return self._s[3210]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3211]! } - public var ChatListFolder_NameChannels: String { return self._s[3212]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3213]! } + public var Localization_LanguageCustom: String { return self._s[3198]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[3199]! } + public var Settings_UsernameEmpty: String { return self._s[3200]! } + public var Settings_FAQ_URL: String { return self._s[3201]! } + public var ChatList_UndoArchiveText1: String { return self._s[3202]! } + public var Common_Select: String { return self._s[3204]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[3205]! } + public var Notification_PassportValueAddress: String { return self._s[3206]! } + public var Conversation_MessageDialogDelete: String { return self._s[3207]! } + public var Map_OpenInYandexNavigator: String { return self._s[3209]! } + public var DialogList_SearchSectionDialogs: String { return self._s[3210]! } + public var AccessDenied_Contacts: String { return self._s[3211]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3213]! } + public var Passport_ScanPassportHelp: String { return self._s[3214]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3215]! } + public var ChatListFolder_NameChannels: String { return self._s[3216]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3217]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3215]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3219]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3216]!, self._r[3216]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1, _2]) } - public var Conversation_GifTooltip: String { return self._s[3217]! } - public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3218]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3220]! } - public var VoiceChat_Connecting: String { return self._s[3221]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3222]! } + public var Conversation_GifTooltip: String { return self._s[3221]! } + public var Widget_MessageAutoremoveTimerUpdated: String { return self._s[3222]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3224]! } + public var VoiceChat_Connecting: String { return self._s[3225]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3226]! } public func Channel_AdminLog_CreatedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1, _2]) } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3224]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3225]! } - public var CreatePoll_Quiz: String { return self._s[3226]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3228]! } - public var Watch_Message_Invoice: String { return self._s[3229]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3230]! } - public var Watch_Message_Unsupported: String { return self._s[3231]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3228]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3229]! } + public var CreatePoll_Quiz: String { return self._s[3230]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3232]! } + public var Watch_Message_Invoice: String { return self._s[3233]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3234]! } + public var Watch_Message_Unsupported: String { return self._s[3235]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_0]) + return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3234]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3236]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3237]! } - public var Call_IncomingVoiceCall: String { return self._s[3238]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3238]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3240]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3241]! } + public var Call_IncomingVoiceCall: String { return self._s[3242]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3239]!, self._r[3239]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3243]!, self._r[3243]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3240]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3241]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3242]! } - public var Group_ErrorAccessDenied: String { return self._s[3243]! } - public var PasscodeSettings_HelpTop: String { return self._s[3244]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3245]! } - public var AddContact_SharedContactException: String { return self._s[3246]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3247]! } - public var Privacy_TopPeers: String { return self._s[3248]! } - public var Web_OpenExternal: String { return self._s[3249]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3250]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3251]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3244]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3245]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3246]! } + public var Group_ErrorAccessDenied: String { return self._s[3247]! } + public var PasscodeSettings_HelpTop: String { return self._s[3248]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3249]! } + public var AddContact_SharedContactException: String { return self._s[3250]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3251]! } + public var Privacy_TopPeers: String { return self._s[3252]! } + public var Web_OpenExternal: String { return self._s[3253]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3254]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3255]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) + return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0]) } - public var Conversation_PhoneCopied: String { return self._s[3253]! } - public var Permissions_Skip: String { return self._s[3254]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3255]! } + public var Conversation_PhoneCopied: String { return self._s[3257]! } + public var Permissions_Skip: String { return self._s[3258]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3259]! } public func VoiceChat_ForwardTooltip_TwoChats(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_0, _1]) } - public var PeopleNearby_Title: String { return self._s[3257]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3258]! } + public var PeopleNearby_Title: String { return self._s[3261]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3262]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_1]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3261]! } + public var Profile_MessageLifetime1w: String { return self._s[3265]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3263]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3265]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3266]! } - public var Privacy_Forwards_Preview: String { return self._s[3267]! } - public var Settings_EditAccount: String { return self._s[3268]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3267]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3269]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3270]! } + public var Privacy_Forwards_Preview: String { return self._s[3271]! } + public var Settings_EditAccount: String { return self._s[3272]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) + return formatWithArgumentRanges(self._s[3273]!, self._r[3273]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3270]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3274]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1]) + return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3273]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3277]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0]) + return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3275]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3276]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3277]! } - public var Profile_MessageLifetime1d: String { return self._s[3278]! } - public var Group_UpgradeConfirmation: String { return self._s[3279]! } + public var Login_InfoHelp: String { return self._s[3279]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3280]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3281]! } + public var Profile_MessageLifetime1d: String { return self._s[3282]! } + public var Group_UpgradeConfirmation: String { return self._s[3283]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3281]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3282]! } + public var Appearance_RemoveThemeColor: String { return self._s[3285]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3286]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) + return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3284]! } + public var UserInfo_BotSettings: String { return self._s[3288]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0]) + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3287]! } - public var Conversation_PinMessagesForMe: String { return self._s[3288]! } - public var VoiceChat_PanelJoin: String { return self._s[3289]! } - public var Conversation_DiscussionStarted: String { return self._s[3291]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3292]! } - public var SharedMedia_SearchNoResults: String { return self._s[3294]! } + public var Permissions_ContactsText_v0: String { return self._s[3291]! } + public var Conversation_PinMessagesForMe: String { return self._s[3292]! } + public var VoiceChat_PanelJoin: String { return self._s[3293]! } + public var Conversation_DiscussionStarted: String { return self._s[3295]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3296]! } + public var SharedMedia_SearchNoResults: String { return self._s[3298]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) + return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3298]!, self._r[3298]!, [_0]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3299]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3300]! } - public var Call_AudioRouteHeadphones: String { return self._s[3301]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3303]! } + public func TwoStepAuth_ResetPendingText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_0]) + } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3305]! } + public var Call_AudioRouteHeadphones: String { return self._s[3306]! } public func Notification_VoiceChatScheduledTomorrowChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) + return formatWithArgumentRanges(self._s[3308]!, self._r[3308]!, [_0]) } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3304]!, self._r[3304]!, [_1]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3305]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3306]! } - public var Widget_ApplicationStartRequired: String { return self._s[3307]! } - public var PhotoEditor_Original: String { return self._s[3308]! } - public var Call_YourMicrophoneOff: String { return self._s[3309]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3310]! } - public var Conversation_CardNumberCopied: String { return self._s[3311]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3312]! } - public var PrivacyPolicy_Decline: String { return self._s[3313]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3314]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3315]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3316]! } + public var Passport_Identity_FilesView: String { return self._s[3310]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3311]! } + public var Widget_ApplicationStartRequired: String { return self._s[3312]! } + public var PhotoEditor_Original: String { return self._s[3313]! } + public var Call_YourMicrophoneOff: String { return self._s[3314]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3315]! } + public var Conversation_CardNumberCopied: String { return self._s[3316]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3317]! } + public var PrivacyPolicy_Decline: String { return self._s[3318]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3319]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3320]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3321]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3317]!, self._r[3317]!, [_0]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3318]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3320]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3321]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3323]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3324]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3325]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3326]! } - public var IntentsSettings_ResetAll: String { return self._s[3327]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3329]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3330]! } - public var ChatList_DeleteForAllSubscribers: String { return self._s[3331]! } - public var Notification_Exceptions_Add: String { return self._s[3332]! } - public var Group_DeleteGroup: String { return self._s[3333]! } - public var Cache_Help: String { return self._s[3334]! } - public var Call_AudioRouteMute: String { return self._s[3335]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3336]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3337]! } + public var Passport_Identity_Name: String { return self._s[3323]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3325]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3326]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3328]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3329]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3330]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3331]! } + public var IntentsSettings_ResetAll: String { return self._s[3332]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3334]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3335]! } + public var ChatList_DeleteForAllSubscribers: String { return self._s[3336]! } + public var Notification_Exceptions_Add: String { return self._s[3337]! } + public var Group_DeleteGroup: String { return self._s[3338]! } + public var Cache_Help: String { return self._s[3339]! } + public var Call_AudioRouteMute: String { return self._s[3340]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3341]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3342]! } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_1]) + return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_1]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3341]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3342]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3346]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3347]! } public func PUSH_CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_1, _2, _3]) } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3344]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3345]! } - public var ClearCache_StorageFree: String { return self._s[3346]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3349]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3350]! } + public var ClearCache_StorageFree: String { return self._s[3351]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) + return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3348]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3353]! } public func Channel_AdminLog_EditedInviteLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3350]!, self._r[3350]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2]) } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3351]! } - public var DialogList_Typing: String { return self._s[3352]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3356]! } + public var DialogList_Typing: String { return self._s[3357]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_0]) + return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3354]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3355]! } + public var Target_SelectGroup: String { return self._s[3359]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3360]! } + public var TwoStepAuth_RecoveryEmailResetText: String { return self._s[3361]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3357]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3358]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3363]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3364]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) + return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3360]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3361]! } - public var ChatSettings_TextSize: String { return self._s[3362]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3364]! } - public var Map_SendThisPlace: String { return self._s[3365]! } - public var Conversation_TextCopied: String { return self._s[3366]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3367]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3368]! } - public var Call_ShareStats: String { return self._s[3369]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3366]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3367]! } + public var ChatSettings_TextSize: String { return self._s[3368]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3370]! } + public var Map_SendThisPlace: String { return self._s[3371]! } + public var Conversation_TextCopied: String { return self._s[3372]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3373]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3374]! } + public var Call_ShareStats: String { return self._s[3375]! } public func PUSH_CHAT_VOICECHAT_END(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_1, _2]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3372]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3373]! } - public var Settings_Support: String { return self._s[3374]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3375]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3378]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3379]! } + public var Settings_Support: String { return self._s[3380]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3381]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_0]) + return formatWithArgumentRanges(self._s[3383]!, self._r[3383]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3378]! } - public var Tour_Text4: String { return self._s[3379]! } - public var VoiceChat_CancelReminder: String { return self._s[3380]! } - public var Calls_StartNewCall: String { return self._s[3381]! } - public var UserInfo_FakeUserWarning: String { return self._s[3383]! } - public var PasscodeSettings_AutoLock: String { return self._s[3384]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3385]! } - public var Bot_DescriptionTitle: String { return self._s[3387]! } - public var Map_LocationTitle: String { return self._s[3388]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3389]! } - public var Conversation_HashtagCopied: String { return self._s[3390]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3384]! } + public var Tour_Text4: String { return self._s[3385]! } + public var VoiceChat_CancelReminder: String { return self._s[3386]! } + public var Calls_StartNewCall: String { return self._s[3387]! } + public var UserInfo_FakeUserWarning: String { return self._s[3389]! } + public var PasscodeSettings_AutoLock: String { return self._s[3390]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3391]! } + public var Bot_DescriptionTitle: String { return self._s[3393]! } + public var Map_LocationTitle: String { return self._s[3394]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3395]! } + public var Conversation_HashtagCopied: String { return self._s[3396]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) + return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_1]) } - public var VoiceChat_ReminderNotify: String { return self._s[3392]! } - public var Login_EmailNotConfiguredError: String { return self._s[3393]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3394]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3395]! } - public var Permissions_CellularDataText_v0: String { return self._s[3396]! } - public var Conversation_EncryptionProcessing: String { return self._s[3397]! } - public var GroupPermission_Delete: String { return self._s[3399]! } - public var Contacts_SortByName: String { return self._s[3400]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3401]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3402]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3404]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3405]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3406]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3408]! } + public var VoiceChat_ReminderNotify: String { return self._s[3398]! } + public var Login_EmailNotConfiguredError: String { return self._s[3399]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3400]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3401]! } + public var Permissions_CellularDataText_v0: String { return self._s[3402]! } + public var Conversation_EncryptionProcessing: String { return self._s[3403]! } + public var GroupPermission_Delete: String { return self._s[3405]! } + public var Contacts_SortByName: String { return self._s[3406]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3407]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3408]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3410]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3411]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3412]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3414]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_1]) + return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_0]) + return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3411]! } - public var VoiceChat_InviteMember: String { return self._s[3412]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3413]! } - public var Conversation_Processing: String { return self._s[3414]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3415]! } - public var ChatSettings_Stickers: String { return self._s[3416]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3417]! } - public var Passport_Language_cs: String { return self._s[3418]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3420]! } - public var Conversation_Contact: String { return self._s[3421]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3422]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3424]! } - public var Theme_Unsupported: String { return self._s[3425]! } - public var Privacy_TopPeersWarning: String { return self._s[3426]! } + public var ChatList_Context_Delete: String { return self._s[3417]! } + public var VoiceChat_InviteMember: String { return self._s[3418]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3419]! } + public var Conversation_Processing: String { return self._s[3420]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3421]! } + public var ChatSettings_Stickers: String { return self._s[3422]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3423]! } + public var Passport_Language_cs: String { return self._s[3424]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3426]! } + public var Conversation_Contact: String { return self._s[3427]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3428]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3430]! } + public var Theme_Unsupported: String { return self._s[3431]! } + public var Privacy_TopPeersWarning: String { return self._s[3432]! } public func Conversation_ScheduledVoiceChatStartsTodayShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_0]) } - public var InviteLink_Title: String { return self._s[3429]! } + public var InviteLink_Title: String { return self._s[3435]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3430]!, self._r[3430]!, [_0]) + return formatWithArgumentRanges(self._s[3436]!, self._r[3436]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3431]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3432]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3433]! } - public var PeopleNearby_Users: String { return self._s[3434]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3435]! } - public var Settings_SetProfilePhoto: String { return self._s[3436]! } - public var Conversation_ContextMenuBan: String { return self._s[3437]! } - public var KeyCommand_ScrollUp: String { return self._s[3438]! } - public var Settings_ChatSettings: String { return self._s[3440]! } - public var CallList_RecentCallsHeader: String { return self._s[3441]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3437]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3438]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3439]! } + public var PeopleNearby_Users: String { return self._s[3440]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3441]! } + public var Settings_SetProfilePhoto: String { return self._s[3442]! } + public var Conversation_ContextMenuBan: String { return self._s[3443]! } + public var KeyCommand_ScrollUp: String { return self._s[3444]! } + public var Settings_ChatSettings: String { return self._s[3446]! } + public var CallList_RecentCallsHeader: String { return self._s[3447]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3442]!, self._r[3442]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3448]!, self._r[3448]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3443]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3444]! } - public var VoiceChat_StartRecordingTitle: String { return self._s[3445]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3449]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3450]! } + public var VoiceChat_StartRecordingTitle: String { return self._s[3451]! } public func Notification_VoiceChatScheduledToday(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3446]!, self._r[3446]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3452]!, self._r[3452]!, [_1, _2]) } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3448]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3449]! } - public var VoiceOver_ChatList_MessageRead: String { return self._s[3451]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3454]! } - public var Cache_Title: String { return self._s[3455]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3454]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3455]! } + public var VoiceOver_ChatList_MessageRead: String { return self._s[3457]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3460]! } + public var Cache_Title: String { return self._s[3461]! } public func Conversation_AutoremoveTimerSetToastText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) + return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_0]) } - public var Clipboard_SendPhoto: String { return self._s[3457]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3459]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3460]! } - public var WatchRemote_AlertTitle: String { return self._s[3463]! } - public var Appearance_ReduceMotion: String { return self._s[3464]! } + public var Clipboard_SendPhoto: String { return self._s[3463]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3465]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3466]! } + public var WatchRemote_AlertTitle: String { return self._s[3469]! } + public var Appearance_ReduceMotion: String { return self._s[3470]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3468]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3469]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3470]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3474]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3475]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3476]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3471]!, self._r[3471]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_1, _2]) } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_0]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3474]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3480]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) + return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) } - public var InstantPage_Search: String { return self._s[3477]! } - public var ChatState_WaitingForNetwork: String { return self._s[3478]! } - public var GroupInfo_Sound: String { return self._s[3479]! } - public var NotificationsSound_Telegraph: String { return self._s[3480]! } + public var InstantPage_Search: String { return self._s[3483]! } + public var ChatState_WaitingForNetwork: String { return self._s[3484]! } + public var GroupInfo_Sound: String { return self._s[3485]! } + public var NotificationsSound_Telegraph: String { return self._s[3486]! } public func VoiceChat_ParticipantIsSpeaking(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) + return formatWithArgumentRanges(self._s[3487]!, self._r[3487]!, [_1]) } - public var NotificationsSound_Hello: String { return self._s[3482]! } - public var VoiceChat_LeaveConfirmation: String { return self._s[3483]! } - public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3484]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3485]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3486]! } - public var Conversation_HoldForVideo: String { return self._s[3487]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3488]! } - public var Appearance_ShareTheme: String { return self._s[3489]! } - public var TwoStepAuth_SetupHint: String { return self._s[3490]! } - public var Stats_GrowthTitle: String { return self._s[3493]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3494]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3495]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3496]! } - public var GroupPermission_NoSendMessages: String { return self._s[3499]! } - public var Conversation_SetReminder_Title: String { return self._s[3500]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3501]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3502]! } + public var NotificationsSound_Hello: String { return self._s[3488]! } + public var VoiceChat_LeaveConfirmation: String { return self._s[3489]! } + public var UserInfo_LinkForwardTooltip_SavedMessages_One: String { return self._s[3490]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3491]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3492]! } + public var Conversation_HoldForVideo: String { return self._s[3493]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3494]! } + public var Appearance_ShareTheme: String { return self._s[3495]! } + public var TwoStepAuth_SetupHint: String { return self._s[3496]! } + public var Stats_GrowthTitle: String { return self._s[3499]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3500]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3501]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3502]! } + public var GroupPermission_NoSendMessages: String { return self._s[3505]! } + public var Conversation_SetReminder_Title: String { return self._s[3506]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3507]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3508]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3503]!, self._r[3503]!, [_0]) + return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) } - public var InviteLinks_InviteLinkExpired: String { return self._s[3505]! } - public var Undo_SecretChatDeleted: String { return self._s[3506]! } - public var PhotoEditor_ContrastTool: String { return self._s[3507]! } - public var Privacy_Forwards: String { return self._s[3508]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3509]! } - public var KeyCommand_SendMessage: String { return self._s[3511]! } - public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3512]! } + public var InviteLinks_InviteLinkExpired: String { return self._s[3511]! } + public var Undo_SecretChatDeleted: String { return self._s[3512]! } + public var PhotoEditor_ContrastTool: String { return self._s[3513]! } + public var Privacy_Forwards: String { return self._s[3514]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3515]! } + public var KeyCommand_SendMessage: String { return self._s[3517]! } + public var Conversation_PrivateMessageLinkCopiedLong: String { return self._s[3518]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_1, _2]) } - public var VoiceChat_VideoPaused: String { return self._s[3514]! } - public var GroupPermission_NoSendGifs: String { return self._s[3515]! } + public var VoiceChat_VideoPaused: String { return self._s[3520]! } + public var GroupPermission_NoSendGifs: String { return self._s[3521]! } public func Notification_VoiceChatEndedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_1, _2]) } - public var Notification_MessageLifetime2s: String { return self._s[3517]! } - public var Message_Theme: String { return self._s[3518]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3521]! } + public var Notification_MessageLifetime2s: String { return self._s[3523]! } + public var Message_Theme: String { return self._s[3524]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3527]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3522]!, self._r[3522]!, [_0]) + return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3524]! } - public var PeerInfo_BioExpand: String { return self._s[3525]! } - public var Passport_DeletePersonalDetails: String { return self._s[3526]! } - public var Widget_NoUsers: String { return self._s[3527]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3528]! } - public var VoiceChat_VideoPreviewDescription: String { return self._s[3529]! } - public var Login_TermsOfServiceDecline: String { return self._s[3530]! } - public var VoiceChat_UnmuteSuggestion: String { return self._s[3531]! } - public var CreatePoll_QuizTip: String { return self._s[3533]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3534]! } - public var MessagePoll_SubmitVote: String { return self._s[3536]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3537]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3538]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3539]! } - public var Conversation_UpdateTelegram: String { return self._s[3540]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3530]! } + public var PeerInfo_BioExpand: String { return self._s[3531]! } + public var Passport_DeletePersonalDetails: String { return self._s[3532]! } + public var Widget_NoUsers: String { return self._s[3533]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3534]! } + public var VoiceChat_VideoPreviewDescription: String { return self._s[3535]! } + public var Login_TermsOfServiceDecline: String { return self._s[3536]! } + public var VoiceChat_UnmuteSuggestion: String { return self._s[3537]! } + public var CreatePoll_QuizTip: String { return self._s[3539]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3540]! } + public var MessagePoll_SubmitVote: String { return self._s[3542]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3543]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3544]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3545]! } + public var Conversation_UpdateTelegram: String { return self._s[3546]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) + return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3542]! } - public var CallSettings_Always: String { return self._s[3543]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3544]! } - public var VoiceChat_MutedByAdminHelp: String { return self._s[3545]! } - public var Login_TermsOfServiceHeader: String { return self._s[3546]! } - public var KeyCommand_ChatInfo: String { return self._s[3547]! } - public var MessagePoll_LabelPoll: String { return self._s[3548]! } - public var Paint_Clear: String { return self._s[3549]! } - public var PeerInfo_ButtonMute: String { return self._s[3550]! } - public var LastSeen_WithinAWeek: String { return self._s[3551]! } - public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3552]! } - public var Passport_Identity_FrontSide: String { return self._s[3553]! } - public var Stickers_GroupStickers: String { return self._s[3554]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3555]! } + public var UserInfo_About_Placeholder: String { return self._s[3548]! } + public var CallSettings_Always: String { return self._s[3549]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3550]! } + public var VoiceChat_MutedByAdminHelp: String { return self._s[3551]! } + public var Login_TermsOfServiceHeader: String { return self._s[3552]! } + public var KeyCommand_ChatInfo: String { return self._s[3553]! } + public var MessagePoll_LabelPoll: String { return self._s[3554]! } + public var Paint_Clear: String { return self._s[3555]! } + public var PeerInfo_ButtonMute: String { return self._s[3556]! } + public var LastSeen_WithinAWeek: String { return self._s[3557]! } + public var Invitation_JoinVoiceChatAsSpeaker: String { return self._s[3558]! } + public var Passport_Identity_FrontSide: String { return self._s[3559]! } + public var Stickers_GroupStickers: String { return self._s[3560]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3561]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_0]) + return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) } - public var VoiceOver_BotCommands: String { return self._s[3557]! } + public var VoiceOver_BotCommands: String { return self._s[3563]! } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, [_1]) + return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3561]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3562]! } - public var InviteLink_ContextDelete: String { return self._s[3563]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3567]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3568]! } + public var InviteLink_ContextDelete: String { return self._s[3569]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_0]) + return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_0]) } - public var WebSearch_SearchNoResults: String { return self._s[3566]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3567]! } - public var Passport_Language_es: String { return self._s[3568]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3569]! } - public var Map_LiveLocationShowAll: String { return self._s[3570]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3572]! } - public var Map_OpenInGoogleMaps: String { return self._s[3573]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3575]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3576]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3577]! } + public var WebSearch_SearchNoResults: String { return self._s[3572]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3573]! } + public var Passport_Language_es: String { return self._s[3574]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3575]! } + public var Map_LiveLocationShowAll: String { return self._s[3576]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3578]! } + public var Map_OpenInGoogleMaps: String { return self._s[3579]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3581]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3582]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3583]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3579]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3580]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3581]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3582]! } + public var Passport_Phone_Delete: String { return self._s[3585]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3586]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3587]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3588]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3584]! } - public var Cache_ByPeerHeader: String { return self._s[3586]! } - public var Username_InvalidCharacters: String { return self._s[3587]! } - public var Checkout_ShippingAddress: String { return self._s[3589]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3590]! } + public var Cache_ByPeerHeader: String { return self._s[3592]! } + public var Username_InvalidCharacters: String { return self._s[3593]! } + public var Checkout_ShippingAddress: String { return self._s[3595]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_1, _2, _3, _4]) } - public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3592]! } - public var Conversation_AddContact: String { return self._s[3593]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3594]! } - public var InviteLink_ContextGetQRCode: String { return self._s[3595]! } - public var Conversation_ChecksTooltip_Delivered: String { return self._s[3597]! } + public var VoiceChat_LeaveAndEndVoiceChat: String { return self._s[3598]! } + public var Conversation_AddContact: String { return self._s[3599]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3600]! } + public var InviteLink_ContextGetQRCode: String { return self._s[3601]! } + public var Conversation_ChecksTooltip_Delivered: String { return self._s[3603]! } public func Channel_AdminLog_MessageAddedAdminNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2]) } - public var Message_Video: String { return self._s[3599]! } + public var Message_Video: String { return self._s[3605]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) + return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, ["\(_0)"]) } - public var InviteLink_ReactivateLink: String { return self._s[3602]! } - public var Passport_Language_km: String { return self._s[3604]! } + public var InviteLink_ReactivateLink: String { return self._s[3608]! } + public var Passport_Language_km: String { return self._s[3610]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3611]!, self._r[3611]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3606]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3608]! } - public var Notification_CallCanceledShort: String { return self._s[3609]! } - public var PhotoEditor_FadeTool: String { return self._s[3610]! } - public var Group_PublicLink_Info: String { return self._s[3611]! } - public var Contacts_DeselectAll: String { return self._s[3612]! } - public var Conversation_Moderate_Delete: String { return self._s[3614]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3615]! } - public var NotificationsSound_Note: String { return self._s[3618]! } + public var EmptyGroupInfo_Line4: String { return self._s[3612]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3614]! } + public var Notification_CallCanceledShort: String { return self._s[3615]! } + public var PhotoEditor_FadeTool: String { return self._s[3616]! } + public var Group_PublicLink_Info: String { return self._s[3617]! } + public var Contacts_DeselectAll: String { return self._s[3618]! } + public var Conversation_Moderate_Delete: String { return self._s[3620]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3621]! } + public var NotificationsSound_Note: String { return self._s[3624]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) + return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3620]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3622]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3623]! } - public var AccessDenied_Settings: String { return self._s[3624]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3625]! } - public var AuthSessions_EmptyTitle: String { return self._s[3626]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3627]! } - public var GroupInfo_GroupType: String { return self._s[3628]! } - public var Calls_Missed: String { return self._s[3629]! } - public var Contacts_VoiceOver_AddContact: String { return self._s[3630]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3632]! } - public var Passport_Language_uz: String { return self._s[3633]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3634]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3635]! } - public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3636]! } - public var Map_ChooseLocationTitle: String { return self._s[3637]! } - public var Checkout_EnterPassword: String { return self._s[3638]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3639]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3640]! } - public var NetworkUsageSettings_Title: String { return self._s[3641]! } - public var Location_ProximityAlertCancelled: String { return self._s[3642]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3643]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3644]! } - public var Compose_NewChannel: String { return self._s[3645]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3647]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3626]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3628]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3629]! } + public var AccessDenied_Settings: String { return self._s[3630]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3631]! } + public var AuthSessions_EmptyTitle: String { return self._s[3632]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3633]! } + public var GroupInfo_GroupType: String { return self._s[3634]! } + public var Calls_Missed: String { return self._s[3635]! } + public var Contacts_VoiceOver_AddContact: String { return self._s[3636]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3638]! } + public var Passport_Language_uz: String { return self._s[3639]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3640]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3641]! } + public var VoiceChat_CreateNewVoiceChatStartNow: String { return self._s[3642]! } + public var Map_ChooseLocationTitle: String { return self._s[3643]! } + public var Checkout_EnterPassword: String { return self._s[3644]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3645]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3646]! } + public var NetworkUsageSettings_Title: String { return self._s[3647]! } + public var Location_ProximityAlertCancelled: String { return self._s[3648]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3649]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3650]! } + public var Compose_NewChannel: String { return self._s[3651]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3653]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_1]) + return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3649]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3650]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3653]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3654]! } - public var Appearance_AppIconDefault: String { return self._s[3655]! } - public var StickerSettings_ContextInfo: String { return self._s[3658]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3659]! } - public var Passport_FieldPhone: String { return self._s[3661]! } - public var Contacts_PermissionsTitle: String { return self._s[3662]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3663]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3655]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3656]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3659]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3660]! } + public var Appearance_AppIconDefault: String { return self._s[3661]! } + public var StickerSettings_ContextInfo: String { return self._s[3664]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3665]! } + public var Passport_FieldPhone: String { return self._s[3667]! } + public var Contacts_PermissionsTitle: String { return self._s[3668]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3669]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3664]!, self._r[3664]!, [_0]) + return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_0]) } - public var Bot_Unblock: String { return self._s[3665]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3666]! } - public var InviteLink_InviteLinkCopiedText: String { return self._s[3667]! } - public var Passport_PasswordHelp: String { return self._s[3668]! } - public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3669]! } - public var Watch_Conversation_UserInfo: String { return self._s[3670]! } + public var Bot_Unblock: String { return self._s[3671]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3672]! } + public var InviteLink_InviteLinkCopiedText: String { return self._s[3673]! } + public var Passport_PasswordHelp: String { return self._s[3674]! } + public var TwoFactorSetup_PasswordRecovery_PlaceholderConfirmPassword: String { return self._s[3675]! } + public var Watch_Conversation_UserInfo: String { return self._s[3676]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3674]!, self._r[3674]!, [_0]) - } - public var State_Connecting: String { return self._s[3676]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3677]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3678]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3679]! } - public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3680]!, self._r[3680]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3681]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3682]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3683]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3685]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3686]! } - public var Conversation_AutoremoveOff: String { return self._s[3687]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3688]! } - public var Weekday_Saturday: String { return self._s[3689]! } - public var DialogList_Unread: String { return self._s[3690]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3691]! } - public var Stats_GroupPosters: String { return self._s[3692]! } - public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_1]) + public var State_Connecting: String { return self._s[3682]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3683]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3684]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3685]! } + public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3686]!, self._r[3686]!, [_0]) } - public var Conversation_AlsoClearCacheTitle: String { return self._s[3694]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3687]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3688]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3689]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3691]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3692]! } + public var Conversation_AutoremoveOff: String { return self._s[3693]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3694]! } + public var Weekday_Saturday: String { return self._s[3695]! } + public var DialogList_Unread: String { return self._s[3696]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3697]! } + public var Stats_GroupPosters: String { return self._s[3698]! } + public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_1]) + } + public var Conversation_AlsoClearCacheTitle: String { return self._s[3700]! } public func Conversation_ForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0, _1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3699]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3705]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3701]! } - public var Conversation_EmailCopied: String { return self._s[3703]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3704]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3705]! } - public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3706]! } - public var VoiceChat_LateBy: String { return self._s[3707]! } - public var Passport_Language_dv: String { return self._s[3708]! } - public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3709]! } - public var GroupPermission_AddSuccess: String { return self._s[3711]! } - public var Passport_Email_Help: String { return self._s[3712]! } - public var Call_ReportPlaceholder: String { return self._s[3713]! } - public var CreatePoll_AddOption: String { return self._s[3714]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3716]! } - public var PeerInfo_ButtonLeave: String { return self._s[3717]! } - public var PhotoEditor_TiltShift: String { return self._s[3720]! } - public var SecretGif_Title: String { return self._s[3722]! } - public var GroupInfo_InviteLinks: String { return self._s[3723]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3724]! } - public var SocksProxySetup_Connecting: String { return self._s[3726]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3727]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3728]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3729]! } - public var Compose_NewMessage: String { return self._s[3730]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3731]! } - public var NotificationsSound_Synth: String { return self._s[3732]! } - public var ChatImport_UserErrorNotMutual: String { return self._s[3733]! } - public var Conversation_FileOpenIn: String { return self._s[3734]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3735]! } - public var UserInfo_SendMessage: String { return self._s[3736]! } - public var Checkout_PayWithFaceId: String { return self._s[3737]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3707]! } + public var Conversation_EmailCopied: String { return self._s[3709]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3710]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3711]! } + public var Call_VoiceOver_VoiceCallCanceled: String { return self._s[3712]! } + public var VoiceChat_LateBy: String { return self._s[3713]! } + public var Passport_Language_dv: String { return self._s[3714]! } + public var TwoFactorSetup_PasswordRecovery_Text: String { return self._s[3715]! } + public var GroupPermission_AddSuccess: String { return self._s[3717]! } + public var Passport_Email_Help: String { return self._s[3718]! } + public var Call_ReportPlaceholder: String { return self._s[3719]! } + public var CreatePoll_AddOption: String { return self._s[3720]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3722]! } + public var PeerInfo_ButtonLeave: String { return self._s[3723]! } + public var PhotoEditor_TiltShift: String { return self._s[3726]! } + public var SecretGif_Title: String { return self._s[3728]! } + public var GroupInfo_InviteLinks: String { return self._s[3729]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3730]! } + public var SocksProxySetup_Connecting: String { return self._s[3732]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3733]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3734]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3735]! } + public var Compose_NewMessage: String { return self._s[3736]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3737]! } + public var NotificationsSound_Synth: String { return self._s[3738]! } + public var ChatImport_UserErrorNotMutual: String { return self._s[3739]! } + public var Conversation_FileOpenIn: String { return self._s[3740]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3741]! } + public var UserInfo_SendMessage: String { return self._s[3742]! } + public var Checkout_PayWithFaceId: String { return self._s[3743]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3738]!, self._r[3738]!, [_0]) + return formatWithArgumentRanges(self._s[3744]!, self._r[3744]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3739]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3740]! } - public var Conversation_ViewChannel: String { return self._s[3741]! } + public var TextFormat_Strikethrough: String { return self._s[3745]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3746]! } + public var Conversation_ViewChannel: String { return self._s[3747]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3742]!, self._r[3742]!, [_0]) + return formatWithArgumentRanges(self._s[3748]!, self._r[3748]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3743]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3744]! } - public var Message_ScamAccount: String { return self._s[3745]! } - public var Camera_FlashAuto: String { return self._s[3746]! } - public var Conversation_EncryptedDescription1: String { return self._s[3747]! } - public var LocalGroup_Text: String { return self._s[3748]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3749]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3750]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3751]! } - public var Conversation_EncryptedDescription2: String { return self._s[3752]! } - public var Conversation_CancelForwardText: String { return self._s[3753]! } - public var Notification_GroupActivated: String { return self._s[3754]! } - public var LastSeen_Lately: String { return self._s[3755]! } - public var Conversation_EncryptedDescription3: String { return self._s[3756]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3757]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3758]! } - public var Conversation_EncryptedDescription4: String { return self._s[3759]! } - public var SharedMedia_EmptyTitle: String { return self._s[3760]! } - public var Appearance_CreateTheme: String { return self._s[3762]! } - public var Stats_SharesPerPost: String { return self._s[3763]! } - public var Contacts_TabTitle: String { return self._s[3764]! } - public var Weekday_ShortThursday: String { return self._s[3765]! } - public var MessageTimer_Forever: String { return self._s[3766]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3767]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3768]! } - public var EditTheme_Create_TopInfo: String { return self._s[3770]! } + public var Channel_Stickers_Placeholder: String { return self._s[3749]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3750]! } + public var Message_ScamAccount: String { return self._s[3751]! } + public var Camera_FlashAuto: String { return self._s[3752]! } + public var Conversation_EncryptedDescription1: String { return self._s[3753]! } + public var LocalGroup_Text: String { return self._s[3754]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3755]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3756]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3757]! } + public var Conversation_EncryptedDescription2: String { return self._s[3758]! } + public var Conversation_CancelForwardText: String { return self._s[3759]! } + public var Notification_GroupActivated: String { return self._s[3760]! } + public var LastSeen_Lately: String { return self._s[3761]! } + public var Conversation_EncryptedDescription3: String { return self._s[3762]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3763]! } + public var TwoStepAuth_RecoveryUnavailableResetText: String { return self._s[3764]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3765]! } + public var Conversation_EncryptedDescription4: String { return self._s[3766]! } + public var SharedMedia_EmptyTitle: String { return self._s[3767]! } + public var Appearance_CreateTheme: String { return self._s[3769]! } + public var Stats_SharesPerPost: String { return self._s[3770]! } + public var Contacts_TabTitle: String { return self._s[3771]! } + public var Weekday_ShortThursday: String { return self._s[3772]! } + public var MessageTimer_Forever: String { return self._s[3773]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3774]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3775]! } + public var EditTheme_Create_TopInfo: String { return self._s[3777]! } public func VoiceOver_ChatList_MessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) + return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) } - public var Month_GenDecember: String { return self._s[3772]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3773]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3774]! } - public var PeopleNearby_CreateGroup: String { return self._s[3776]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3777]! } - public var Paint_ClearConfirm: String { return self._s[3778]! } - public var ChatList_ReadAll: String { return self._s[3779]! } - public var ChatSettings_IntentsSettings: String { return self._s[3780]! } - public var Passport_PassportInformation: String { return self._s[3782]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3784]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3787]! } - public var PhotoEditor_ExposureTool: String { return self._s[3788]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3789]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3790]! } - public var Stats_GroupTopPoster_History: String { return self._s[3791]! } - public var UserInfo_AddPhone: String { return self._s[3792]! } - public var Media_SendWithTimer: String { return self._s[3794]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3795]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3796]! } - public var GroupInfo_GroupHistoryShort: String { return self._s[3797]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3798]! } - public var ChatList_Context_Unarchive: String { return self._s[3800]! } + public var Month_GenDecember: String { return self._s[3779]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3780]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3781]! } + public var PeopleNearby_CreateGroup: String { return self._s[3783]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3784]! } + public var Paint_ClearConfirm: String { return self._s[3785]! } + public var ChatList_ReadAll: String { return self._s[3786]! } + public var ChatSettings_IntentsSettings: String { return self._s[3787]! } + public var Passport_PassportInformation: String { return self._s[3789]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3791]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3794]! } + public var PhotoEditor_ExposureTool: String { return self._s[3795]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3796]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3797]! } + public var Stats_GroupTopPoster_History: String { return self._s[3798]! } + public var UserInfo_AddPhone: String { return self._s[3799]! } + public var Media_SendWithTimer: String { return self._s[3801]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3802]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3803]! } + public var GroupInfo_GroupHistoryShort: String { return self._s[3804]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3805]! } + public var ChatList_Context_Unarchive: String { return self._s[3807]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3803]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3804]! } - public var Media_ShareThisPhoto: String { return self._s[3805]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3806]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3807]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3811]! } - public var CallFeedback_ReasonNoise: String { return self._s[3813]! } - public var WebBrowser_Title: String { return self._s[3814]! } + public var BlockedUsers_Title: String { return self._s[3810]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3811]! } + public var Media_ShareThisPhoto: String { return self._s[3812]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3813]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3814]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3818]! } + public var CallFeedback_ReasonNoise: String { return self._s[3820]! } + public var WebBrowser_Title: String { return self._s[3821]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_0]) + return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3817]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3818]! } - public var Profile_MessageLifetime1m: String { return self._s[3820]! } - public var Passport_ScanPassport: String { return self._s[3821]! } - public var Stats_LoadingTitle: String { return self._s[3822]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3824]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3825]! } - public var Login_InvalidFirstNameError: String { return self._s[3826]! } - public var Undo_ChatCleared: String { return self._s[3828]! } + public var Notification_MessageLifetime5s: String { return self._s[3824]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3825]! } + public var Profile_MessageLifetime1m: String { return self._s[3827]! } + public var Passport_ScanPassport: String { return self._s[3828]! } + public var Stats_LoadingTitle: String { return self._s[3829]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3831]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3832]! } + public var Login_InvalidFirstNameError: String { return self._s[3833]! } + public var Undo_ChatCleared: String { return self._s[3835]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3831]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3838]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3839]!, self._r[3839]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1]) + return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3834]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3835]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3837]! } - public var VoiceChat_InviteLink_Speaker: String { return self._s[3838]! } - public var CallSettings_RecentCalls: String { return self._s[3839]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3840]! } - public var AuthSessions_OtherSessions: String { return self._s[3841]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3842]! } - public var Tour_Text5: String { return self._s[3843]! } - public var Login_PadPhoneHelp: String { return self._s[3844]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3847]! } - public var Conversation_ViewGroup: String { return self._s[3848]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3850]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3851]! } - public var Watch_AuthRequired: String { return self._s[3852]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3854]! } - public var Conversation_ForwardContacts: String { return self._s[3855]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3856]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3841]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3842]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3844]! } + public var VoiceChat_InviteLink_Speaker: String { return self._s[3845]! } + public var CallSettings_RecentCalls: String { return self._s[3846]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3847]! } + public var AuthSessions_OtherSessions: String { return self._s[3848]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3849]! } + public var Tour_Text5: String { return self._s[3850]! } + public var Login_PadPhoneHelp: String { return self._s[3851]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3854]! } + public var Conversation_ViewGroup: String { return self._s[3855]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3857]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3858]! } + public var Watch_AuthRequired: String { return self._s[3859]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3861]! } + public var Conversation_ForwardContacts: String { return self._s[3862]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3863]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) + return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3858]!, self._r[3858]!, [_0]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3859]! } + public var Channel_Setup_TypePrivate: String { return self._s[3866]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_0]) + return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_0]) } - public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3861]! } - public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3862]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3863]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3864]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3865]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3866]! } + public var Checkout_OptionalTipItemPlaceholder: String { return self._s[3868]! } + public var InviteLink_Create_TimeLimitExpiryDate: String { return self._s[3869]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3870]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3871]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3872]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3873]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3867]!, self._r[3867]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0, _1, _2]) } public func Conversation_ForwardTooltip_TwoChats_Many(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0, _1]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3870]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3871]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3872]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3874]! } - public var NewContact_Title: String { return self._s[3877]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3878]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3879]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3880]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3877]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3878]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3879]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3881]! } + public var NewContact_Title: String { return self._s[3884]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3885]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3886]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3887]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_0]) + return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3883]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3890]! } public func Time_MediumDate(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3885]!, self._r[3885]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_1, _2]) } - public var ContactInfo_PhoneLabelHome: String { return self._s[3886]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3887]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3888]! } - public var Conversation_MessageEditedLabel: String { return self._s[3891]! } - public var CallList_ActiveVoiceChatsHeader: String { return self._s[3892]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3893]! } - public var ChatList_Context_AddToContacts: String { return self._s[3894]! } - public var Passport_Language_is: String { return self._s[3895]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3896]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3897]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3893]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3894]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3895]! } + public var Conversation_MessageEditedLabel: String { return self._s[3898]! } + public var CallList_ActiveVoiceChatsHeader: String { return self._s[3899]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3900]! } + public var ChatList_Context_AddToContacts: String { return self._s[3901]! } + public var Passport_Language_is: String { return self._s[3902]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3903]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3904]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3898]!, self._r[3898]!, [_0]) + return formatWithArgumentRanges(self._s[3905]!, self._r[3905]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3899]! } - public var Login_SmsRequestState3: String { return self._s[3900]! } - public var Message_PinnedVideoMessage: String { return self._s[3901]! } - public var SharedMedia_TitleLink: String { return self._s[3902]! } - public var Passport_FieldIdentity: String { return self._s[3903]! } - public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3905]! } + public var SocksProxySetup_Username: String { return self._s[3906]! } + public var Login_SmsRequestState3: String { return self._s[3907]! } + public var Message_PinnedVideoMessage: String { return self._s[3908]! } + public var SharedMedia_TitleLink: String { return self._s[3909]! } + public var Passport_FieldIdentity: String { return self._s[3910]! } + public var GroupInfo_Permissions_BroadcastConvert: String { return self._s[3912]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0]) + return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3911]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3912]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3913]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3914]! } - public var Call_StatusIncoming: String { return self._s[3915]! } - public var ChatAdmins_AdminLabel: String { return self._s[3916]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3918]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3919]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3920]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3921]! } + public var Call_StatusIncoming: String { return self._s[3922]! } + public var ChatAdmins_AdminLabel: String { return self._s[3923]! } public func InstantPage_OpenInBrowser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) + return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3920]! } - public var VoiceChat_TapToViewCameraVideo: String { return self._s[3921]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3922]! } - public var Preview_CopyAddress: String { return self._s[3923]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3925]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3926]! } - public var Map_OpenInYandexMaps: String { return self._s[3928]! } + public var Message_PinnedAnimationMessage: String { return self._s[3927]! } + public var VoiceChat_TapToViewCameraVideo: String { return self._s[3928]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3929]! } + public var Preview_CopyAddress: String { return self._s[3930]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3932]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3933]! } + public var Map_OpenInYandexMaps: String { return self._s[3935]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3932]! } - public var ChatListFolder_TitleCreate: String { return self._s[3933]! } + public var GroupRemoved_Remove: String { return self._s[3939]! } + public var ChatListFolder_TitleCreate: String { return self._s[3940]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3936]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3943]! } public func UserInfo_LinkForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0, _1]) } - public var Group_UpgradeNoticeText2: String { return self._s[3939]! } - public var Stats_GroupGrowthTitle: String { return self._s[3940]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3943]! } - public var Month_GenOctober: String { return self._s[3944]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3945]! } - public var Settings_Appearance: String { return self._s[3946]! } + public var Group_UpgradeNoticeText2: String { return self._s[3946]! } + public var Stats_GroupGrowthTitle: String { return self._s[3947]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3950]! } + public var Month_GenOctober: String { return self._s[3951]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3952]! } + public var Settings_Appearance: String { return self._s[3953]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) + return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) } - public var UserInfo_AddToExisting: String { return self._s[3948]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3950]! } - public var Map_HomeAndWorkInfo: String { return self._s[3951]! } - public var VoiceChat_ContextAudio: String { return self._s[3952]! } - public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3953]! } - public var Paint_Arrow: String { return self._s[3954]! } - public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3955]! } + public var UserInfo_AddToExisting: String { return self._s[3955]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3957]! } + public var Map_HomeAndWorkInfo: String { return self._s[3958]! } + public var VoiceChat_ContextAudio: String { return self._s[3959]! } + public var InstantPage_VoiceOver_ResetFontSize: String { return self._s[3960]! } + public var Paint_Arrow: String { return self._s[3961]! } + public var InviteLink_CreatePrivateLinkHelp: String { return self._s[3962]! } public func DialogList_MultipleTypingPair(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0, _1]) } - public var CancelResetAccount_Title: String { return self._s[3957]! } - public var NotificationsSound_Circles: String { return self._s[3958]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3959]! } - public var ChatState_Connecting: String { return self._s[3961]! } - public var Profile_MessageLifetime5s: String { return self._s[3962]! } + public var CancelResetAccount_Title: String { return self._s[3964]! } + public var NotificationsSound_Circles: String { return self._s[3965]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3966]! } + public var ChatState_Connecting: String { return self._s[3968]! } + public var Profile_MessageLifetime5s: String { return self._s[3969]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0]) - } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3964]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3965]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3966]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3968]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3969]! } - public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3971]! } - public var Privacy_ContactsSync: String { return self._s[3972]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3973]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3975]! } - public var Map_SendMyCurrentLocation: String { return self._s[3976]! } - public var Map_AddressOnMap: String { return self._s[3977]! } - public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3979]! } - public var DialogList_SearchLabel: String { return self._s[3980]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3981]! } - public var GroupInfo_FakeGroupWarning: String { return self._s[3982]! } - public var Conversation_ChecksTooltip_Read: String { return self._s[3984]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3986]! } - public var ChatList_Search_ShowMore: String { return self._s[3987]! } - public var DialogList_EncryptionRejected: String { return self._s[3988]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3989]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3990]! } - public var VoiceChat_StartRecordingText: String { return self._s[3991]! } - public var Privacy_TopPeersDelete: String { return self._s[3992]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3994]! } - public var ChatList_GenericPsaAlert: String { return self._s[3996]! } - public var SecretTimer_ImageDescription: String { return self._s[3998]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3971]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3972]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3973]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3975]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3976]! } + public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_0]) + } + public var Passport_Phone_Help: String { return self._s[3978]! } + public var Privacy_ContactsSync: String { return self._s[3979]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3980]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3982]! } + public var Map_SendMyCurrentLocation: String { return self._s[3983]! } + public var Map_AddressOnMap: String { return self._s[3984]! } + public var BroadcastGroups_ConfirmationAlert_Convert: String { return self._s[3986]! } + public var DialogList_SearchLabel: String { return self._s[3987]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3988]! } + public var GroupInfo_FakeGroupWarning: String { return self._s[3989]! } + public var Conversation_ChecksTooltip_Read: String { return self._s[3991]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3993]! } + public var ChatList_Search_ShowMore: String { return self._s[3994]! } + public var DialogList_EncryptionRejected: String { return self._s[3995]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3996]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3997]! } + public var VoiceChat_StartRecordingText: String { return self._s[3998]! } + public var Privacy_TopPeersDelete: String { return self._s[3999]! } + public var AttachmentMenu_SendAsFile: String { return self._s[4001]! } + public var ChatList_GenericPsaAlert: String { return self._s[4003]! } + public var SecretTimer_ImageDescription: String { return self._s[4005]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4006]!, self._r[4006]!, [_0, _1]) } - public var VoiceChat_EditNameSuccess: String { return self._s[4000]! } - public var ChatSettings_TextSizeUnits: String { return self._s[4001]! } - public var Notification_RenamedGroup: String { return self._s[4003]! } - public var Tour_Title2: String { return self._s[4004]! } - public var Settings_CopyUsername: String { return self._s[4005]! } - public var Compose_NewEncryptedChat: String { return self._s[4006]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[4007]! } - public var VoiceChat_SetReminder: String { return self._s[4008]! } - public var Month_ShortSeptember: String { return self._s[4009]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[4010]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4011]! } - public var VoiceChat_StartNow: String { return self._s[4012]! } - public var Call_StatusConnecting: String { return self._s[4014]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4015]! } - public var Map_ShareLiveLocationHelp: String { return self._s[4016]! } - public var Cache_Files: String { return self._s[4017]! } - public var Notifications_Reset: String { return self._s[4018]! } + public var VoiceChat_EditNameSuccess: String { return self._s[4007]! } + public var ChatSettings_TextSizeUnits: String { return self._s[4008]! } + public var Notification_RenamedGroup: String { return self._s[4010]! } + public var Tour_Title2: String { return self._s[4011]! } + public var Settings_CopyUsername: String { return self._s[4012]! } + public var Compose_NewEncryptedChat: String { return self._s[4013]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[4014]! } + public var VoiceChat_SetReminder: String { return self._s[4015]! } + public var Month_ShortSeptember: String { return self._s[4016]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[4017]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[4018]! } + public var VoiceChat_StartNow: String { return self._s[4019]! } + public var Call_StatusConnecting: String { return self._s[4021]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[4022]! } + public var Map_ShareLiveLocationHelp: String { return self._s[4023]! } + public var Cache_Files: String { return self._s[4024]! } + public var Notifications_Reset: String { return self._s[4025]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) + return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4020]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[4027]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[4022]! } - public var UserInfo_BotPrivacy: String { return self._s[4025]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4026]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[4027]! } - public var Conversation_ContextMenuLookUp: String { return self._s[4029]! } - public var Calls_RatingTitle: String { return self._s[4030]! } - public var SecretImage_Title: String { return self._s[4031]! } - public var Weekday_Monday: String { return self._s[4032]! } + public var Notification_CallIncomingShort: String { return self._s[4029]! } + public var UserInfo_BotPrivacy: String { return self._s[4032]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4033]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[4034]! } + public var Conversation_ContextMenuLookUp: String { return self._s[4036]! } + public var Calls_RatingTitle: String { return self._s[4037]! } + public var SecretImage_Title: String { return self._s[4038]! } + public var Weekday_Monday: String { return self._s[4039]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4034]! } - public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4035]! } - public var Invitation_JoinVoiceChatAsListener: String { return self._s[4036]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4041]! } + public var VoiceChat_InviteLink_CopySpeakerLink: String { return self._s[4042]! } + public var Invitation_JoinVoiceChatAsListener: String { return self._s[4043]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[4038]! } - public var Camera_Retake: String { return self._s[4039]! } - public var Conversation_SearchPlaceholder: String { return self._s[4041]! } + public var Stats_GroupMembers: String { return self._s[4045]! } + public var Camera_Retake: String { return self._s[4046]! } + public var Conversation_SearchPlaceholder: String { return self._s[4048]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) + return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[4043]! } - public var SocksProxySetup_Hostname: String { return self._s[4044]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4045]! } - public var Privacy_DeleteDrafts: String { return self._s[4047]! } - public var Login_CancelPhoneVerification: String { return self._s[4049]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[4050]! } - public var VoiceOver_Chat_Profile: String { return self._s[4051]! } + public var Channel_DiscussionGroup_Info: String { return self._s[4050]! } + public var SocksProxySetup_Hostname: String { return self._s[4051]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[4052]! } + public var Privacy_DeleteDrafts: String { return self._s[4054]! } + public var Login_CancelPhoneVerification: String { return self._s[4056]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[4057]! } + public var VoiceOver_Chat_Profile: String { return self._s[4058]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) + return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[4053]! } - public var Cache_Indexing: String { return self._s[4054]! } - public var Notifications_ExceptionsNone: String { return self._s[4055]! } - public var MessagePoll_LabelQuiz: String { return self._s[4056]! } - public var Call_EncryptionKey_Title: String { return self._s[4057]! } - public var Common_Yes: String { return self._s[4058]! } - public var Channel_ErrorAddBlocked: String { return self._s[4059]! } - public var Month_GenJanuary: String { return self._s[4060]! } - public var Checkout_NewCard_Title: String { return self._s[4061]! } + public var TwoStepAuth_EmailSent: String { return self._s[4060]! } + public var Cache_Indexing: String { return self._s[4061]! } + public var Notifications_ExceptionsNone: String { return self._s[4062]! } + public var MessagePoll_LabelQuiz: String { return self._s[4063]! } + public var Call_EncryptionKey_Title: String { return self._s[4064]! } + public var Common_Yes: String { return self._s[4065]! } + public var Channel_ErrorAddBlocked: String { return self._s[4066]! } + public var Month_GenJanuary: String { return self._s[4067]! } + public var Checkout_NewCard_Title: String { return self._s[4068]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) + return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_0]) } - public var Conversation_InputTextPlaceholderReply: String { return self._s[4064]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4065]! } - public var Conversation_SendDice: String { return self._s[4066]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[4071]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[4072]! } + public var Conversation_SendDice: String { return self._s[4073]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) + return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_0]) } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_0]) + return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[4069]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[4070]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[4071]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4072]! } - public var OldChannels_NoticeTitle: String { return self._s[4073]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[4074]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[4075]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4076]! } - public var Passport_Address_AddUtilityBill: String { return self._s[4077]! } + public var Weekday_Wednesday: String { return self._s[4076]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[4077]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[4078]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[4079]! } + public var OldChannels_NoticeTitle: String { return self._s[4080]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[4081]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[4082]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[4083]! } + public var Passport_Address_AddUtilityBill: String { return self._s[4084]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4081]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[4082]! } - public var Paint_Regular: String { return self._s[4084]! } - public var Message_Contact: String { return self._s[4085]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4086]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[4087]! } - public var Notification_Mute1hMin: String { return self._s[4088]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[4088]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[4089]! } + public var Paint_Regular: String { return self._s[4091]! } + public var Message_Contact: String { return self._s[4092]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[4093]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[4094]! } + public var Notification_Mute1hMin: String { return self._s[4095]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_0]) + return formatWithArgumentRanges(self._s[4096]!, self._r[4096]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[4090]! } - public var TwoStepAuth_GenericHelp: String { return self._s[4091]! } - public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4092]! } - public var TextFormat_Monospace: String { return self._s[4093]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4095]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[4096]! } - public var ChatList_DeleteChat: String { return self._s[4097]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4100]! } + public var Profile_MessageLifetime1h: String { return self._s[4097]! } + public var TwoStepAuth_GenericHelp: String { return self._s[4098]! } + public var TwoFactorSetup_PasswordRecovery_Skip: String { return self._s[4099]! } + public var TextFormat_Monospace: String { return self._s[4100]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[4102]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[4103]! } + public var ChatList_DeleteChat: String { return self._s[4104]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[4107]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[4108]!, self._r[4108]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[4102]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4103]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4104]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[4109]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[4110]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[4111]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_0]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_0]) } - public var Notifications_Badge_IncludeChannels: String { return self._s[4106]! } - public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4107]! } - public var StickerPack_ViewPack: String { return self._s[4110]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4112]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4113]! } - public var Notifications_Title: String { return self._s[4114]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[4115]! } - public var GroupInfo_PublicLink: String { return self._s[4116]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[4113]! } + public var InviteLink_CreatePrivateLinkHelpChannel: String { return self._s[4114]! } + public var StickerPack_ViewPack: String { return self._s[4117]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[4119]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[4120]! } + public var Notifications_Title: String { return self._s[4121]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[4122]! } + public var GroupInfo_PublicLink: String { return self._s[4123]! } public func ScheduleVoiceChat_GroupText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_0]) + return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[4118]! } - public var Conversation_Moderate_Ban: String { return self._s[4122]! } - public var InviteLink_Manage: String { return self._s[4123]! } - public var InstantPage_FontNewYork: String { return self._s[4124]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[4125]! } + public var Conversation_Moderate_Ban: String { return self._s[4129]! } + public var InviteLink_Manage: String { return self._s[4130]! } + public var InstantPage_FontNewYork: String { return self._s[4131]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) } - public var TextFormat_Underline: String { return self._s[4126]! } + public var TextFormat_Underline: String { return self._s[4133]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_1]) + return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_1]) } - public var PollResults_Collapse: String { return self._s[4130]! } - public var Contacts_GlobalSearch: String { return self._s[4131]! } + public var PollResults_Collapse: String { return self._s[4137]! } + public var Contacts_GlobalSearch: String { return self._s[4138]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) + return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[4134]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4136]! } - public var Conversation_Theme: String { return self._s[4137]! } + public var Channel_Management_LabelEditor: String { return self._s[4141]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[4143]! } + public var Conversation_Theme: String { return self._s[4144]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4138]!, self._r[4138]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[4139]! } - public var EnterPasscode_TouchId: String { return self._s[4140]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4141]! } - public var Group_ErrorAdminsTooMuch: String { return self._s[4142]! } - public var Stats_MessageOverview: String { return self._s[4143]! } - public var Privacy_Calls_P2PAlways: String { return self._s[4145]! } - public var Message_Sticker: String { return self._s[4146]! } - public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4147]! } - public var Conversation_Mute: String { return self._s[4150]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4151]! } - public var ContactInfo_Title: String { return self._s[4152]! } + public var Conversation_LinkDialogSave: String { return self._s[4146]! } + public var EnterPasscode_TouchId: String { return self._s[4147]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[4148]! } + public var Group_ErrorAdminsTooMuch: String { return self._s[4149]! } + public var Stats_MessageOverview: String { return self._s[4150]! } + public var Privacy_Calls_P2PAlways: String { return self._s[4152]! } + public var Message_Sticker: String { return self._s[4153]! } + public var TwoFactorSetup_PasswordRecovery_SkipAlertTitle: String { return self._s[4154]! } + public var Conversation_Mute: String { return self._s[4157]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[4158]! } + public var ContactInfo_Title: String { return self._s[4159]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1]) + return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[4154]! } - public var AuthSessions_LogOut: String { return self._s[4155]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4156]! } - public var VoiceChat_PinVideo: String { return self._s[4157]! } - public var Group_Info_Members: String { return self._s[4159]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[4160]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4161]! } - public var CreatePoll_Title: String { return self._s[4162]! } - public var EditTheme_EditTitle: String { return self._s[4163]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4164]! } - public var TwoStepAuth_SetPassword: String { return self._s[4165]! } + public var Channel_Setup_TypeHeader: String { return self._s[4161]! } + public var AuthSessions_LogOut: String { return self._s[4162]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4163]! } + public var VoiceChat_PinVideo: String { return self._s[4164]! } + public var Group_Info_Members: String { return self._s[4166]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[4167]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[4168]! } + public var CreatePoll_Title: String { return self._s[4169]! } + public var EditTheme_EditTitle: String { return self._s[4170]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[4171]! } + public var TwoStepAuth_SetPassword: String { return self._s[4172]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4166]!, self._r[4166]!, [_0]) + return formatWithArgumentRanges(self._s[4173]!, self._r[4173]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[4167]! } - public var AuthSessions_Sessions: String { return self._s[4168]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4169]! } - public var Common_ActionNotAllowedError: String { return self._s[4170]! } - public var WebPreview_GettingLinkInfo: String { return self._s[4171]! } - public var Appearance_AppIconFilledX: String { return self._s[4172]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[4173]! } - public var FeaturedStickers_OtherSection: String { return self._s[4174]! } - public var VoiceChat_RecordingStarted: String { return self._s[4175]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4176]! } - public var Profile_Username: String { return self._s[4177]! } - public var Settings_TipsUsername: String { return self._s[4178]! } - public var Appearance_RemoveTheme: String { return self._s[4179]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4180]! } - public var Message_PinnedStickerMessage: String { return self._s[4181]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4182]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[4183]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[4184]! } - public var Conversation_VoiceChat: String { return self._s[4185]! } - public var VoiceChat_EditBioSuccess: String { return self._s[4186]! } - public var ImportStickerPack_LinkAvailable: String { return self._s[4187]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4188]! } - public var TwoStepAuth_Title: String { return self._s[4189]! } - public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4190]! } - public var Checkout_WebConfirmation_Title: String { return self._s[4191]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4192]! } - public var ChatListFolder_CategoryGroups: String { return self._s[4194]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[4195]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[4196]! } - public var Month_GenJuly: String { return self._s[4197]! } - public var Passport_Identity_Gender: String { return self._s[4198]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4199]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[4200]! } - public var VoiceChat_StopRecording: String { return self._s[4201]! } + public var BlockedUsers_Info: String { return self._s[4174]! } + public var AuthSessions_Sessions: String { return self._s[4175]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4176]! } + public var Common_ActionNotAllowedError: String { return self._s[4177]! } + public var WebPreview_GettingLinkInfo: String { return self._s[4178]! } + public var Appearance_AppIconFilledX: String { return self._s[4179]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[4180]! } + public var FeaturedStickers_OtherSection: String { return self._s[4181]! } + public var VoiceChat_RecordingStarted: String { return self._s[4182]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[4183]! } + public var Profile_Username: String { return self._s[4184]! } + public var Settings_TipsUsername: String { return self._s[4185]! } + public var Appearance_RemoveTheme: String { return self._s[4186]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[4187]! } + public var Message_PinnedStickerMessage: String { return self._s[4188]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4189]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[4190]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[4191]! } + public var Conversation_VoiceChat: String { return self._s[4192]! } + public var VoiceChat_EditBioSuccess: String { return self._s[4193]! } + public var ImportStickerPack_LinkAvailable: String { return self._s[4194]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[4195]! } + public var TwoStepAuth_Title: String { return self._s[4196]! } + public var VoiceOver_Chat_YourAnimatedSticker: String { return self._s[4197]! } + public var Checkout_WebConfirmation_Title: String { return self._s[4198]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[4199]! } + public var ChatListFolder_CategoryGroups: String { return self._s[4201]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[4202]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[4203]! } + public var Month_GenJuly: String { return self._s[4204]! } + public var Passport_Identity_Gender: String { return self._s[4205]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4206]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[4207]! } + public var VoiceChat_StopRecording: String { return self._s[4208]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_0]) + return formatWithArgumentRanges(self._s[4209]!, self._r[4209]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4203]!, self._r[4203]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[4210]!, self._r[4210]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[4204]! } + public var Login_CodeSentSms: String { return self._s[4211]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_0]) + return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[4206]! } - public var Channel_DiscussionGroup_Header: String { return self._s[4207]! } + public var Login_CallRequestState2: String { return self._s[4213]! } + public var Channel_DiscussionGroup_Header: String { return self._s[4214]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4208]!, self._r[4208]!, [_0]) + return formatWithArgumentRanges(self._s[4215]!, self._r[4215]!, [_0]) } - public var Passport_Language_ms: String { return self._s[4209]! } - public var PeopleNearby_MakeInvisible: String { return self._s[4211]! } - public var ImportStickerPack_CreateStickerSet: String { return self._s[4213]! } - public var ChatList_Search_FilterVoice: String { return self._s[4214]! } - public var Camera_TapAndHoldForVideo: String { return self._s[4216]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4217]! } + public var Passport_Language_ms: String { return self._s[4216]! } + public var PeopleNearby_MakeInvisible: String { return self._s[4218]! } + public var ImportStickerPack_CreateStickerSet: String { return self._s[4220]! } + public var ChatList_Search_FilterVoice: String { return self._s[4221]! } + public var Camera_TapAndHoldForVideo: String { return self._s[4223]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[4224]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4218]!, self._r[4218]!, [_0]) + return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_0]) } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4219]!, self._r[4219]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_1, _2]) } - public var Map_Locating: String { return self._s[4220]! } + public var Map_Locating: String { return self._s[4227]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4222]!, self._r[4222]!, [_0]) + return formatWithArgumentRanges(self._s[4229]!, self._r[4229]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[4224]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4225]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4226]! } - public var Stickers_Installed: String { return self._s[4227]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[4228]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[4229]! } - public var CallSettings_Never: String { return self._s[4231]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[4232]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[4231]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[4232]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[4233]! } + public var Stickers_Installed: String { return self._s[4234]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[4235]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[4236]! } + public var CallSettings_Never: String { return self._s[4238]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[4239]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4234]!, self._r[4234]!, [_0]) + return formatWithArgumentRanges(self._s[4241]!, self._r[4241]!, [_0]) } - public var Message_Game: String { return self._s[4235]! } - public var Call_Message: String { return self._s[4236]! } + public var Message_Game: String { return self._s[4242]! } + public var Call_Message: String { return self._s[4243]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4237]!, self._r[4237]!, [_1]) + return formatWithArgumentRanges(self._s[4244]!, self._r[4244]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[4238]! } - public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4239]! } - public var StickerPack_Send: String { return self._s[4240]! } - public var Share_AuthDescription: String { return self._s[4241]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4242]! } - public var CallFeedback_WhatWentWrong: String { return self._s[4243]! } - public var Common_Create: String { return self._s[4246]! } - public var Passport_Language_hy: String { return self._s[4247]! } - public var CreatePoll_Explanation: String { return self._s[4248]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[4249]! } - public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4250]! } - public var PeerInfo_ButtonVoiceChat: String { return self._s[4251]! } - public var Undo_ChatClearedForBothSides: String { return self._s[4252]! } - public var DialogList_NoMessagesTitle: String { return self._s[4253]! } - public var GroupInfo_Title: String { return self._s[4255]! } + public var ChannelIntro_Text: String { return self._s[4245]! } + public var VoiceChat_NoiseSuppressionEnabled: String { return self._s[4246]! } + public var StickerPack_Send: String { return self._s[4247]! } + public var Share_AuthDescription: String { return self._s[4248]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[4249]! } + public var CallFeedback_WhatWentWrong: String { return self._s[4250]! } + public var Common_Create: String { return self._s[4253]! } + public var Passport_Language_hy: String { return self._s[4254]! } + public var CreatePoll_Explanation: String { return self._s[4255]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[4256]! } + public var ChatImport_CreateGroupAlertImportAction: String { return self._s[4257]! } + public var PeerInfo_ButtonVoiceChat: String { return self._s[4258]! } + public var Undo_ChatClearedForBothSides: String { return self._s[4259]! } + public var DialogList_NoMessagesTitle: String { return self._s[4260]! } + public var GroupInfo_Title: String { return self._s[4262]! } public func ScheduleVoiceChat_ScheduleToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4256]!, self._r[4256]!, [_0]) + return formatWithArgumentRanges(self._s[4263]!, self._r[4263]!, [_0]) } - public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4257]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[4258]! } - public var PhoneNumberHelp_Help: String { return self._s[4259]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4260]! } - public var Settings_Logout: String { return self._s[4261]! } - public var Privacy_PaymentsTitle: String { return self._s[4262]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[4263]! } - public var Tour_Text6: String { return self._s[4264]! } - public var ChatImportActivity_Title: String { return self._s[4266]! } - public var Channel_Username_Help: String { return self._s[4267]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4268]! } - public var AttachmentMenu_Poll: String { return self._s[4269]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4270]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4271]! } - public var Passport_DeletePassport: String { return self._s[4272]! } - public var Login_Code: String { return self._s[4273]! } - public var Notification_SecretChatScreenshot: String { return self._s[4274]! } - public var VoiceChat_AddBio: String { return self._s[4275]! } - public var Login_CodeFloodError: String { return self._s[4276]! } + public var UserInfo_ContactForwardTooltip_SavedMessages_One: String { return self._s[4264]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[4265]! } + public var PhoneNumberHelp_Help: String { return self._s[4266]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4267]! } + public var Settings_Logout: String { return self._s[4268]! } + public var Privacy_PaymentsTitle: String { return self._s[4269]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[4270]! } + public var Tour_Text6: String { return self._s[4271]! } + public var ChatImportActivity_Title: String { return self._s[4273]! } + public var Channel_Username_Help: String { return self._s[4274]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[4275]! } + public var AttachmentMenu_Poll: String { return self._s[4276]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[4277]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[4278]! } + public var Passport_DeletePassport: String { return self._s[4279]! } + public var Login_Code: String { return self._s[4280]! } + public var Notification_SecretChatScreenshot: String { return self._s[4281]! } + public var VoiceChat_AddBio: String { return self._s[4282]! } + public var Login_CodeFloodError: String { return self._s[4283]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4277]!, self._r[4277]!, [_0]) + return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_0]) } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4278]!, self._r[4278]!, [_0]) + return formatWithArgumentRanges(self._s[4285]!, self._r[4285]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[4279]! } - public var Generic_ErrorMoreInfo: String { return self._s[4280]! } + public var Watch_Stickers_Recents: String { return self._s[4286]! } + public var Generic_ErrorMoreInfo: String { return self._s[4287]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4281]!, self._r[4281]!, [_0]) - } - public var AutoDownloadSettings_DataUsage: String { return self._s[4282]! } - public var Conversation_ViewTheme: String { return self._s[4283]! } - public var Contacts_InviteSearchLabel: String { return self._s[4284]! } - public var Settings_CancelUpload: String { return self._s[4286]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[4287]! } - public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4288]!, self._r[4288]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[4289]! } - public var Conversation_Location: String { return self._s[4291]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4292]! } - public var DialogList_AdLabel: String { return self._s[4293]! } - public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { + public var AutoDownloadSettings_DataUsage: String { return self._s[4289]! } + public var Conversation_ViewTheme: String { return self._s[4290]! } + public var Contacts_InviteSearchLabel: String { return self._s[4291]! } + public var Settings_CancelUpload: String { return self._s[4293]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[4294]! } + public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4295]!, self._r[4295]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4296]! } - public var Channel_TooMuchBots: String { return self._s[4297]! } + public var ChatList_AddFolder: String { return self._s[4296]! } + public var Conversation_Location: String { return self._s[4298]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[4299]! } + public var DialogList_AdLabel: String { return self._s[4300]! } + public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4302]!, self._r[4302]!, [_0]) + } + public var Message_InvoiceLabel: String { return self._s[4303]! } + public var Channel_TooMuchBots: String { return self._s[4304]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_0]) + return formatWithArgumentRanges(self._s[4306]!, self._r[4306]!, [_0]) } - public var Call_IncomingVideoCall: String { return self._s[4300]! } - public var Conversation_LiveLocation: String { return self._s[4301]! } - public var VoiceChat_AskedToSpeakHelp: String { return self._s[4302]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4303]! } - public var Passport_Identity_EditPassport: String { return self._s[4304]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4306]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4307]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4308]! } + public var Call_IncomingVideoCall: String { return self._s[4307]! } + public var Conversation_LiveLocation: String { return self._s[4308]! } + public var VoiceChat_AskedToSpeakHelp: String { return self._s[4309]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4310]! } + public var Passport_Identity_EditPassport: String { return self._s[4311]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4313]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4314]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4315]! } public func VoiceChat_RemovePeerConfirmationChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4310]!, self._r[4310]!, [_0]) + return formatWithArgumentRanges(self._s[4317]!, self._r[4317]!, [_0]) } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4311]! } - public var Channel_MessageVideoUpdated: String { return self._s[4312]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4313]! } - public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4316]! } - public var AccessDenied_Camera: String { return self._s[4317]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4318]! } + public var Channel_MessageVideoUpdated: String { return self._s[4319]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4320]! } + public var AutoremoveSetup_TimeSectionHeader: String { return self._s[4323]! } + public var AccessDenied_Camera: String { return self._s[4324]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) + return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4319]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4320]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4321]! } - public var Login_CodeExpiredError: String { return self._s[4322]! } - public var State_ConnectingToProxy: String { return self._s[4323]! } - public var TextFormat_Link: String { return self._s[4324]! } - public var Passport_Language_lv: String { return self._s[4326]! } - public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4327]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4328]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4329]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4330]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4332]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4333]! } - public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4334]! } + public var Theme_Context_ChangeColors: String { return self._s[4326]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4327]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4328]! } + public var Login_CodeExpiredError: String { return self._s[4329]! } + public var State_ConnectingToProxy: String { return self._s[4330]! } + public var TextFormat_Link: String { return self._s[4331]! } + public var Passport_Language_lv: String { return self._s[4333]! } + public var Conversation_AutoremoveTimerRemovedGroup: String { return self._s[4334]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4335]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4336]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4337]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4339]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4340]! } + public var Calls_NoVoiceAndVideoCallsPlaceholder: String { return self._s[4341]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4335]!, self._r[4335]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4342]!, self._r[4342]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4336]! } - public var Checkout_PayNone: String { return self._s[4337]! } - public var NotificationsSound_Complete: String { return self._s[4339]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4340]! } - public var InviteLink_CreateInfo: String { return self._s[4341]! } - public var AuthSessions_DevicesTitle: String { return self._s[4342]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4343]! } + public var Checkout_PayNone: String { return self._s[4344]! } + public var NotificationsSound_Complete: String { return self._s[4346]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4347]! } + public var InviteLink_CreateInfo: String { return self._s[4348]! } + public var AuthSessions_DevicesTitle: String { return self._s[4349]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4350]!, self._r[4350]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4344]! } - public var Watch_Suggestion_BRB: String { return self._s[4345]! } - public var Channel_BanUser_Title: String { return self._s[4346]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4347]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4348]! } - public var Conversation_ClearSelfHistory: String { return self._s[4349]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4350]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4351]! } - public var Weekday_Thursday: String { return self._s[4352]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4353]! } - public var Privacy_ProfilePhoto: String { return self._s[4355]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4356]! } + public var Message_LiveLocation: String { return self._s[4351]! } + public var Watch_Suggestion_BRB: String { return self._s[4352]! } + public var Channel_BanUser_Title: String { return self._s[4353]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4354]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4355]! } + public var Conversation_ClearSelfHistory: String { return self._s[4356]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4357]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4358]! } + public var Weekday_Thursday: String { return self._s[4359]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4360]! } + public var Privacy_ProfilePhoto: String { return self._s[4362]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4363]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4357]!, self._r[4357]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4364]!, self._r[4364]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4358]! } - public var Conversation_Info: String { return self._s[4359]! } - public var Cache_Videos: String { return self._s[4360]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4361]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4362]! } + public var Message_Audio: String { return self._s[4365]! } + public var Conversation_Info: String { return self._s[4366]! } + public var Cache_Videos: String { return self._s[4367]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4368]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4369]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4363]!, self._r[4363]!, [_0]) + return formatWithArgumentRanges(self._s[4370]!, self._r[4370]!, [_0]) } - public var VoiceChat_EditBio: String { return self._s[4364]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4366]! } - public var VoiceChat_ShareScreen: String { return self._s[4369]! } - public var ScheduledMessages_Title: String { return self._s[4370]! } - public var ShareFileTip_Title: String { return self._s[4373]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4374]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4375]! } + public var VoiceChat_EditBio: String { return self._s[4371]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4373]! } + public var VoiceChat_ShareScreen: String { return self._s[4376]! } + public var ScheduledMessages_Title: String { return self._s[4377]! } + public var ShareFileTip_Title: String { return self._s[4380]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4381]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4382]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4376]!, self._r[4376]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4378]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4379]! } - public var PasscodeSettings_Title: String { return self._s[4380]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4381]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4382]! } + public var Conversation_ContextViewStats: String { return self._s[4385]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4386]! } + public var PasscodeSettings_Title: String { return self._s[4387]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4388]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4389]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1]) + return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4384]! } - public var ChannelInfo_FakeChannelWarning: String { return self._s[4385]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4386]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4387]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4388]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4389]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4391]! } + public var ChannelInfo_FakeChannelWarning: String { return self._s[4392]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4393]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4394]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4395]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4396]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_0]) + return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4392]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4395]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4396]! } + public var Passport_Identity_GenderFemale: String { return self._s[4399]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4402]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4403]! } public func Message_ImportedDateFormat(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4397]!, self._r[4397]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4404]!, self._r[4404]!, [_1, _2, _3]) } - public var VoiceChat_Audio: String { return self._s[4398]! } - public var SharedMedia_TitleAll: String { return self._s[4399]! } - public var Settings_Context_Logout: String { return self._s[4400]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4403]! } - public var Settings_About_Title: String { return self._s[4404]! } - public var StickerSettings_ContextHide: String { return self._s[4405]! } + public var VoiceChat_Audio: String { return self._s[4405]! } + public var SharedMedia_TitleAll: String { return self._s[4406]! } + public var Settings_Context_Logout: String { return self._s[4407]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4410]! } + public var Settings_About_Title: String { return self._s[4411]! } + public var StickerSettings_ContextHide: String { return self._s[4412]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4406]!, self._r[4406]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_0]) - } - public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4409]! } - public var Common_Cancel: String { return self._s[4410]! } - public var CallFeedback_Title: String { return self._s[4412]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4413]!, self._r[4413]!, [_0]) } - public var Conversation_StickerAddedToFavorites: String { return self._s[4414]! } - public var Activity_UploadingVideoMessage: String { return self._s[4416]! } - public var MediaPicker_Send: String { return self._s[4417]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4418]! } - public var Conversation_LiveLocationYou: String { return self._s[4419]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4420]! } + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4414]!, self._r[4414]!, [_0]) + } + public var ChatImport_SelectionConfirmationAlertImportAction: String { return self._s[4416]! } + public var Common_Cancel: String { return self._s[4417]! } + public var CallFeedback_Title: String { return self._s[4419]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4420]!, self._r[4420]!, [_0]) + } + public var Conversation_StickerAddedToFavorites: String { return self._s[4421]! } + public var Activity_UploadingVideoMessage: String { return self._s[4423]! } + public var MediaPicker_Send: String { return self._s[4424]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4425]! } + public var Conversation_LiveLocationYou: String { return self._s[4426]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4427]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4422]!, self._r[4422]!, [_0]) + return formatWithArgumentRanges(self._s[4429]!, self._r[4429]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4423]!, self._r[4423]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4430]!, self._r[4430]!, [_1, _2]) } - public var Checkout_PaymentLiabilityAlert: String { return self._s[4424]! } - public var Conversation_ViewBackground: String { return self._s[4425]! } - public var ChatSettings_PrivateChats: String { return self._s[4428]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4429]! } - public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4430]! } - public var Appearance_ThemeNight: String { return self._s[4431]! } - public var Common_Search: String { return self._s[4432]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4433]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4435]! } - public var InviteLink_QRCode_Share: String { return self._s[4436]! } - public var Stickers_SuggestAdded: String { return self._s[4438]! } + public var Checkout_PaymentLiabilityAlert: String { return self._s[4431]! } + public var Conversation_ViewBackground: String { return self._s[4432]! } + public var ChatSettings_PrivateChats: String { return self._s[4435]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4436]! } + public var BroadcastGroups_LimitAlert_LearnMore: String { return self._s[4437]! } + public var Appearance_ThemeNight: String { return self._s[4438]! } + public var Common_Search: String { return self._s[4439]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4440]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4442]! } + public var InviteLink_QRCode_Share: String { return self._s[4443]! } + public var Stickers_SuggestAdded: String { return self._s[4445]! } public func VoiceChat_VideoParticipantsLimitExceeded(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4440]!, self._r[4440]!, [_0]) + return formatWithArgumentRanges(self._s[4447]!, self._r[4447]!, [_0]) } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4442]! } - public var Widget_UpdatedTodayAt: String { return self._s[4443]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4444]! } - public var CheckoutInfo_Title: String { return self._s[4445]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4446]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4447]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4449]! } + public var Widget_UpdatedTodayAt: String { return self._s[4450]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4451]! } + public var CheckoutInfo_Title: String { return self._s[4452]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4453]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4454]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) + return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4450]! } - public var GroupRemoved_DeleteUser: String { return self._s[4452]! } - public var Contacts_ShareTelegram: String { return self._s[4453]! } - public var Group_UpgradeNoticeText1: String { return self._s[4454]! } + public var MaskStickerSettings_Info: String { return self._s[4457]! } + public var GroupRemoved_DeleteUser: String { return self._s[4459]! } + public var Contacts_ShareTelegram: String { return self._s[4460]! } + public var Group_UpgradeNoticeText1: String { return self._s[4461]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4455]!, self._r[4455]!, [_1]) + return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4456]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4460]! } - public var PhotoEditor_TintTool: String { return self._s[4461]! } - public var ChatImportActivity_OpenApp: String { return self._s[4463]! } - public var GroupPermission_NoSendPolls: String { return self._s[4464]! } - public var NotificationsSound_None: String { return self._s[4465]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4463]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4467]! } + public var PhotoEditor_TintTool: String { return self._s[4468]! } + public var ChatImportActivity_OpenApp: String { return self._s[4470]! } + public var GroupPermission_NoSendPolls: String { return self._s[4471]! } + public var NotificationsSound_None: String { return self._s[4472]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4466]!, self._r[4466]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4469]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4476]! } public func Conversation_AutoremoveTimerSetChannel(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_1]) + return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_1]) } - public var ExplicitContent_AlertChannel: String { return self._s[4472]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4473]! } - public var Contacts_SortedByPresence: String { return self._s[4474]! } - public var WallpaperSearch_ColorGray: String { return self._s[4475]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4476]! } - public var Conversation_ReportSpam: String { return self._s[4477]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4480]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4481]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4482]! } - public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4483]! } + public var ExplicitContent_AlertChannel: String { return self._s[4479]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4480]! } + public var Contacts_SortedByPresence: String { return self._s[4481]! } + public var WallpaperSearch_ColorGray: String { return self._s[4482]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4483]! } + public var Conversation_ReportSpam: String { return self._s[4484]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4487]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4488]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4489]! } + public var InviteLink_DeleteAllRevokedLinksAlert_Action: String { return self._s[4490]! } public func VoiceChat_PeerJoinedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4484]!, self._r[4484]!, [_0]) + return formatWithArgumentRanges(self._s[4491]!, self._r[4491]!, [_0]) } - public var Conversation_DefaultRestrictedText: String { return self._s[4485]! } - public var Settings_Devices: String { return self._s[4486]! } - public var Call_AudioRouteSpeaker: String { return self._s[4487]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4488]! } - public var VoiceChat_StartsIn: String { return self._s[4489]! } - public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4490]! } - public var VoiceChat_EditDescriptionTitle: String { return self._s[4492]! } - public var Passport_Address_Country: String { return self._s[4493]! } - public var Cache_MaximumCacheSize: String { return self._s[4494]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4495]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4496]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4498]! } - public var Login_TermsOfServiceLabel: String { return self._s[4499]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4500]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4501]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4502]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4503]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4504]! } - public var ConvertToSupergroup_Note: String { return self._s[4506]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4507]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4508]! } - public var Common_More: String { return self._s[4509]! } - public var ShareMenu_SelectChats: String { return self._s[4511]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4492]! } + public var Settings_Devices: String { return self._s[4493]! } + public var Call_AudioRouteSpeaker: String { return self._s[4494]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4495]! } + public var VoiceChat_StartsIn: String { return self._s[4496]! } + public var VoiceChat_CreateNewVoiceChatSchedule: String { return self._s[4497]! } + public var VoiceChat_EditDescriptionTitle: String { return self._s[4499]! } + public var Passport_Address_Country: String { return self._s[4500]! } + public var Cache_MaximumCacheSize: String { return self._s[4501]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4502]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4503]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4505]! } + public var Login_TermsOfServiceLabel: String { return self._s[4506]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4507]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4508]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4509]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4510]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4511]! } + public var ConvertToSupergroup_Note: String { return self._s[4513]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4514]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4515]! } + public var Common_More: String { return self._s[4516]! } + public var ShareMenu_SelectChats: String { return self._s[4518]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4512]!, self._r[4512]!, [_0]) + return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_0]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4513]!, self._r[4513]!, [_0]) + return formatWithArgumentRanges(self._s[4520]!, self._r[4520]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4515]! } - public var VoiceChat_EditBioText: String { return self._s[4516]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4522]! } + public var VoiceChat_EditBioText: String { return self._s[4523]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4517]!, self._r[4517]!, [_0]) + return formatWithArgumentRanges(self._s[4524]!, self._r[4524]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4518]! } + public var WatchRemote_AlertOpen: String { return self._s[4525]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4526]!, self._r[4526]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4520]! } - public var Shortcut_SwitchAccount: String { return self._s[4521]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4522]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4527]! } + public var Shortcut_SwitchAccount: String { return self._s[4528]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4529]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4523]!, self._r[4523]!, [_0]) + return formatWithArgumentRanges(self._s[4530]!, self._r[4530]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4524]! } - public var DialogList_You: String { return self._s[4525]! } - public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4526]! } - public var ReportPeer_ReasonViolence: String { return self._s[4527]! } + public var Compose_NewGroupTitle: String { return self._s[4531]! } + public var DialogList_You: String { return self._s[4532]! } + public var Call_VoiceOver_VoiceCallOutgoing: String { return self._s[4533]! } + public var ReportPeer_ReasonViolence: String { return self._s[4534]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4528]!, self._r[4528]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4530]! } - public var KeyCommand_ScrollDown: String { return self._s[4533]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4534]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4535]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4536]! } - public var ArchivedChats_IntroText3: String { return self._s[4537]! } - public var HashtagSearch_AllChats: String { return self._s[4539]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4540]! } - public var Conversation_MessageCopied: String { return self._s[4542]! } - public var Channel_Info_BlackList: String { return self._s[4543]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4544]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4545]! } - public var Paint_Neon: String { return self._s[4547]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4548]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4549]! } - public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4550]! } + public var VoiceChat_Reconnecting: String { return self._s[4537]! } + public var KeyCommand_ScrollDown: String { return self._s[4540]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4541]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4542]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4543]! } + public var ArchivedChats_IntroText3: String { return self._s[4544]! } + public var HashtagSearch_AllChats: String { return self._s[4546]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4547]! } + public var Conversation_MessageCopied: String { return self._s[4549]! } + public var Channel_Info_BlackList: String { return self._s[4550]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4551]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4552]! } + public var Paint_Neon: String { return self._s[4554]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4555]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4556]! } + public var ImportStickerPack_CreateNewStickerSet: String { return self._s[4557]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4552]!, self._r[4552]!, [_0]) + return formatWithArgumentRanges(self._s[4559]!, self._r[4559]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4553]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4554]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4555]! } - public var InstantPage_Reference: String { return self._s[4557]! } - public var Group_Members_AddMembers: String { return self._s[4559]! } + public var Map_StopLiveLocation: String { return self._s[4560]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4561]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4562]! } + public var InstantPage_Reference: String { return self._s[4564]! } + public var Group_Members_AddMembers: String { return self._s[4566]! } public func Conversation_ScheduledVoiceChatStartsOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_0]) + return formatWithArgumentRanges(self._s[4567]!, self._r[4567]!, [_0]) } - public var ChatList_HideAction: String { return self._s[4561]! } - public var Conversation_FileICloudDrive: String { return self._s[4563]! } + public var ChatList_HideAction: String { return self._s[4568]! } + public var Conversation_FileICloudDrive: String { return self._s[4570]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4564]!, self._r[4564]!, [_1]) + return formatWithArgumentRanges(self._s[4571]!, self._r[4571]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4566]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4568]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4569]! } - public var Calls_AddTab: String { return self._s[4570]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4572]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4573]! } - public var Privacy_GroupsAndChannels: String { return self._s[4576]! } - public var Conversation_UsernameCopied: String { return self._s[4577]! } - public var AutoNightTheme_Disabled: String { return self._s[4578]! } - public var CreatePoll_MultipleChoice: String { return self._s[4579]! } + public var Passport_PasswordReset: String { return self._s[4573]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4575]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4576]! } + public var Calls_AddTab: String { return self._s[4577]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4579]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4580]! } + public var Privacy_GroupsAndChannels: String { return self._s[4583]! } + public var Conversation_UsernameCopied: String { return self._s[4584]! } + public var AutoNightTheme_Disabled: String { return self._s[4585]! } + public var CreatePoll_MultipleChoice: String { return self._s[4586]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4580]!, self._r[4580]!, [_1]) + return formatWithArgumentRanges(self._s[4587]!, self._r[4587]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4582]! } + public var Watch_Bot_Restart: String { return self._s[4589]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4583]!, self._r[4583]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4590]!, self._r[4590]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4585]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4586]! } - public var Appearance_PreviewIncomingText: String { return self._s[4587]! } - public var ChatSettings_WidgetSettings: String { return self._s[4588]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4589]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4591]! } - public var Stats_GroupOverview: String { return self._s[4593]! } - public var ScheduledMessages_EditTime: String { return self._s[4596]! } - public var Month_GenFebruary: String { return self._s[4597]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4598]! } - public var Stickers_ClearRecent: String { return self._s[4599]! } - public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4600]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4601]! } - public var Stats_Message_PublicShares: String { return self._s[4602]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4592]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4593]! } + public var Appearance_PreviewIncomingText: String { return self._s[4594]! } + public var ChatSettings_WidgetSettings: String { return self._s[4595]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4596]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4598]! } + public var Stats_GroupOverview: String { return self._s[4600]! } + public var ScheduledMessages_EditTime: String { return self._s[4603]! } + public var Month_GenFebruary: String { return self._s[4604]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4605]! } + public var Stickers_ClearRecent: String { return self._s[4606]! } + public var InviteLink_Create_UsersLimitNumberOfUsersUnlimited: String { return self._s[4607]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4608]! } + public var Stats_Message_PublicShares: String { return self._s[4609]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4603]!, self._r[4603]!, [_0]) + return formatWithArgumentRanges(self._s[4610]!, self._r[4610]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4604]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4605]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4606]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4607]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4609]! } - public var CreatePoll_Create: String { return self._s[4610]! } - public var ChatList_Search_FilterLinks: String { return self._s[4611]! } - public var Your_cards_number_is_invalid: String { return self._s[4612]! } - public var Month_ShortApril: String { return self._s[4613]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4614]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4615]! } - public var SocksProxySetup_Status: String { return self._s[4616]! } - public var VoiceChat_UnmuteForMe: String { return self._s[4617]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4618]! } - public var ChatListFolder_CategoryBots: String { return self._s[4619]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4621]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4622]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4623]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4624]! } - public var Conversation_TitleUnmute: String { return self._s[4625]! } - public var Group_Setup_TypeHeader: String { return self._s[4626]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4611]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4612]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4613]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4614]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4616]! } + public var CreatePoll_Create: String { return self._s[4617]! } + public var ChatList_Search_FilterLinks: String { return self._s[4618]! } + public var Your_cards_number_is_invalid: String { return self._s[4619]! } + public var Month_ShortApril: String { return self._s[4620]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4621]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4622]! } + public var SocksProxySetup_Status: String { return self._s[4623]! } + public var VoiceChat_UnmuteForMe: String { return self._s[4624]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4625]! } + public var ChatListFolder_CategoryBots: String { return self._s[4626]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4628]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4629]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4630]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4631]! } + public var Conversation_TitleUnmute: String { return self._s[4632]! } + public var Group_Setup_TypeHeader: String { return self._s[4633]! } public func Conversation_ForwardTooltip_ManyChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4627]!, self._r[4627]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_0, _1]) } - public var Stats_ViewsPerPost: String { return self._s[4628]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4629]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4630]! } + public var Stats_ViewsPerPost: String { return self._s[4635]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4636]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4637]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4631]!, self._r[4631]!, [_1]) + return formatWithArgumentRanges(self._s[4638]!, self._r[4638]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4632]! } + public var GroupInfo_Administrators_Title: String { return self._s[4639]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4633]!, self._r[4633]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4640]!, self._r[4640]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4634]!, self._r[4634]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4641]!, self._r[4641]!, [_1, _2, _3]) } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4635]! } - public var Passport_Language_my: String { return self._s[4637]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4638]! } - public var VoiceChat_Unpin: String { return self._s[4639]! } - public var Map_PlacesNearby: String { return self._s[4640]! } - public var Channel_About_Help: String { return self._s[4641]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4642]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4643]! } - public var Channel_Username_Title: String { return self._s[4644]! } - public var Activity_RecordingVideoMessage: String { return self._s[4645]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4642]! } + public var Passport_Language_my: String { return self._s[4644]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4645]! } + public var VoiceChat_Unpin: String { return self._s[4646]! } + public var Map_PlacesNearby: String { return self._s[4647]! } + public var Channel_About_Help: String { return self._s[4648]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4649]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4650]! } + public var Channel_Username_Title: String { return self._s[4651]! } + public var Activity_RecordingVideoMessage: String { return self._s[4652]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4646]!, self._r[4646]!, [_0]) + return formatWithArgumentRanges(self._s[4653]!, self._r[4653]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4647]! } - public var Passport_DiscardMessageDescription: String { return self._s[4648]! } - public var Conversation_LinkDialogOpen: String { return self._s[4649]! } - public var ChatList_Context_HideArchive: String { return self._s[4650]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4654]! } + public var Passport_DiscardMessageDescription: String { return self._s[4655]! } + public var Conversation_LinkDialogOpen: String { return self._s[4656]! } + public var ChatList_Context_HideArchive: String { return self._s[4657]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4651]!, self._r[4651]!, [_0]) + return formatWithArgumentRanges(self._s[4658]!, self._r[4658]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4652]! } - public var Conversation_Admin: String { return self._s[4653]! } - public var DialogList_TabTitle: String { return self._s[4654]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4659]! } + public var Conversation_Admin: String { return self._s[4660]! } + public var DialogList_TabTitle: String { return self._s[4661]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4655]!, self._r[4655]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4662]!, self._r[4662]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4656]! } - public var Passport_Identity_GenderMale: String { return self._s[4658]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4663]! } + public var Passport_Identity_GenderMale: String { return self._s[4665]! } public func VoiceChat_EditTitleSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4660]!, self._r[4660]!, [_0]) + return formatWithArgumentRanges(self._s[4667]!, self._r[4667]!, [_0]) } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4661]! } - public var PhoneNumberHelp_Alert: String { return self._s[4662]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4663]! } - public var Notifications_InAppNotifications: String { return self._s[4664]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4668]! } + public var PhoneNumberHelp_Alert: String { return self._s[4669]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4670]! } + public var Notifications_InAppNotifications: String { return self._s[4671]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4665]!, self._r[4665]!, [_0]) + return formatWithArgumentRanges(self._s[4672]!, self._r[4672]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4666]! } - public var Login_InvalidCodeError: String { return self._s[4667]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4668]! } + public var Notification_VideoCallOutgoing: String { return self._s[4673]! } + public var Login_InvalidCodeError: String { return self._s[4674]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4675]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4670]!, self._r[4670]!, [_0]) + return formatWithArgumentRanges(self._s[4677]!, self._r[4677]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4671]! } - public var ReportPeer_Report: String { return self._s[4672]! } - public var Camera_FlashOff: String { return self._s[4675]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4678]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4678]! } + public var ReportPeer_Report: String { return self._s[4679]! } + public var Camera_FlashOff: String { return self._s[4682]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4685]! } public func Notification_VoiceChatScheduledTomorrow(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4679]!, self._r[4679]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4686]!, self._r[4686]!, [_1, _2]) } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4682]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4683]! } - public var Passport_FieldEmail: String { return self._s[4684]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4689]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4690]! } + public var Passport_FieldEmail: String { return self._s[4691]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4685]!, self._r[4685]!, [_1]) + return formatWithArgumentRanges(self._s[4692]!, self._r[4692]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4686]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4687]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4688]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4689]! } - public var Login_PhoneNumberHelp: String { return self._s[4691]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4692]! } - public var Conversation_PinnedQuiz: String { return self._s[4693]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4694]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4695]! } - public var Group_MessagePhotoUpdated: String { return self._s[4696]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4697]! } - public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4698]! } - public var Passport_Identity_Translations: String { return self._s[4700]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4701]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4703]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4704]! } - public var Channel_Members_AddMembers: String { return self._s[4705]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4706]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4708]! } - public var Conversation_HoldForAudio: String { return self._s[4709]! } - public var Media_LimitedAccessChangeSettings: String { return self._s[4711]! } - public var Watch_LastSeen_Lately: String { return self._s[4712]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4713]! } - public var Conversation_PinnedMessage: String { return self._s[4714]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4715]! } - public var VoiceChat_StopRecordingStop: String { return self._s[4717]! } - public var Passport_UpdateRequiredError: String { return self._s[4718]! } - public var PrivacySettings_Passcode: String { return self._s[4719]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4693]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4694]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4695]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4696]! } + public var Login_PhoneNumberHelp: String { return self._s[4698]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4699]! } + public var Conversation_PinnedQuiz: String { return self._s[4700]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4701]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4702]! } + public var Group_MessagePhotoUpdated: String { return self._s[4703]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4704]! } + public var BroadcastGroups_ConfirmationAlert_Text: String { return self._s[4705]! } + public var Passport_Identity_Translations: String { return self._s[4707]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4708]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4710]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4711]! } + public var Channel_Members_AddMembers: String { return self._s[4712]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4713]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4715]! } + public var Conversation_HoldForAudio: String { return self._s[4716]! } + public var Media_LimitedAccessChangeSettings: String { return self._s[4718]! } + public var Watch_LastSeen_Lately: String { return self._s[4719]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4720]! } + public var Conversation_PinnedMessage: String { return self._s[4721]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4722]! } + public var VoiceChat_StopRecordingStop: String { return self._s[4724]! } + public var Passport_UpdateRequiredError: String { return self._s[4725]! } + public var PrivacySettings_Passcode: String { return self._s[4726]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4720]!, self._r[4720]!, [_0]) + return formatWithArgumentRanges(self._s[4727]!, self._r[4727]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4721]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4722]! } - public var VoiceOver_Common_On: String { return self._s[4723]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4724]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4725]! } - public var Channel_SignMessages_Help: String { return self._s[4726]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4727]! } - public var Conversation_TitleNoComments: String { return self._s[4728]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4729]! } - public var GroupInfo_Permissions: String { return self._s[4730]! } - public var GroupPermission_NoSendLinks: String { return self._s[4733]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4728]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4729]! } + public var VoiceOver_Common_On: String { return self._s[4730]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4731]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4732]! } + public var Channel_SignMessages_Help: String { return self._s[4733]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4734]! } + public var Conversation_TitleNoComments: String { return self._s[4735]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4736]! } + public var GroupInfo_Permissions: String { return self._s[4737]! } + public var GroupPermission_NoSendLinks: String { return self._s[4740]! } public func Conversation_ScheduledVoiceChatStartsTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4734]!, self._r[4734]!, [_0]) + return formatWithArgumentRanges(self._s[4741]!, self._r[4741]!, [_0]) } - public var Passport_Identity_ResidenceCountry: String { return self._s[4735]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4737]! } - public var ChatList_ArchiveAction: String { return self._s[4738]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4742]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4744]! } + public var ChatList_ArchiveAction: String { return self._s[4745]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4739]!, self._r[4739]!, [_0]) + return formatWithArgumentRanges(self._s[4746]!, self._r[4746]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4740]! } + public var GroupInfo_GroupHistory: String { return self._s[4747]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4742]!, self._r[4742]!, [_0]) + return formatWithArgumentRanges(self._s[4749]!, self._r[4749]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4744]! } - public var Channel_Info_Banned: String { return self._s[4745]! } - public var Paint_RecentStickers: String { return self._s[4746]! } - public var VoiceOver_MessageContextSend: String { return self._s[4747]! } - public var Group_ErrorNotMutualContact: String { return self._s[4748]! } - public var ReportPeer_ReasonOther: String { return self._s[4750]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4751]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4753]! } - public var KeyCommand_Find: String { return self._s[4754]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4751]! } + public var Channel_Info_Banned: String { return self._s[4752]! } + public var Paint_RecentStickers: String { return self._s[4753]! } + public var VoiceOver_MessageContextSend: String { return self._s[4754]! } + public var Group_ErrorNotMutualContact: String { return self._s[4755]! } + public var ReportPeer_ReasonOther: String { return self._s[4757]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4758]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4760]! } + public var KeyCommand_Find: String { return self._s[4761]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4755]!, self._r[4755]!, [_0]) + return formatWithArgumentRanges(self._s[4762]!, self._r[4762]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4756]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4757]! } - public var Stickers_GroupStickersHelp: String { return self._s[4758]! } - public var Checkout_Title: String { return self._s[4759]! } - public var Activity_RecordingAudio: String { return self._s[4760]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4761]! } - public var BlockedUsers_BlockTitle: String { return self._s[4762]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4764]! } - public var Calls_All: String { return self._s[4765]! } - public var Settings_FAQ_Button: String { return self._s[4767]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4769]! } + public var ChatList_Context_Unmute: String { return self._s[4763]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4764]! } + public var Stickers_GroupStickersHelp: String { return self._s[4765]! } + public var Checkout_Title: String { return self._s[4766]! } + public var Activity_RecordingAudio: String { return self._s[4767]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4768]! } + public var BlockedUsers_BlockTitle: String { return self._s[4769]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4771]! } + public var Calls_All: String { return self._s[4772]! } + public var Settings_FAQ_Button: String { return self._s[4774]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4776]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4770]!, self._r[4770]!, [_0]) + return formatWithArgumentRanges(self._s[4777]!, self._r[4777]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4771]! } - public var Passport_Scans_Upload: String { return self._s[4772]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4774]! } - public var ChatList_UnarchiveAction: String { return self._s[4775]! } - public var Stats_GroupTopInviter_History: String { return self._s[4776]! } - public var GroupInfo_Permissions_Title: String { return self._s[4777]! } - public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4778]! } - public var Passport_Language_el: String { return self._s[4779]! } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4780]! } + public var Conversation_ReportGroupLocation: String { return self._s[4778]! } + public var Passport_Scans_Upload: String { return self._s[4779]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4781]! } + public var ChatList_UnarchiveAction: String { return self._s[4782]! } + public var Stats_GroupTopInviter_History: String { return self._s[4783]! } + public var GroupInfo_Permissions_Title: String { return self._s[4784]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4785]! } + public var Passport_Language_el: String { return self._s[4786]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4787]! } public func UserInfo_ContactForwardTooltip_TwoChats_One(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4781]!, self._r[4781]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4788]!, self._r[4788]!, [_0, _1]) } - public var GroupInfo_ActionPromote: String { return self._s[4782]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4783]! } - public var Media_LimitedAccessSelectMore: String { return self._s[4784]! } + public var GroupInfo_ActionPromote: String { return self._s[4789]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4790]! } + public var Media_LimitedAccessSelectMore: String { return self._s[4791]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4785]!, self._r[4785]!, [_0]) + return formatWithArgumentRanges(self._s[4792]!, self._r[4792]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4786]! } - public var Month_GenMay: String { return self._s[4787]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4788]! } - public var Chat_PsaTooltip_covid: String { return self._s[4789]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4790]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4791]! } - public var AppUpgrade_Running: String { return self._s[4792]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4795]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4796]! } - public var SharedMedia_EmptyText: String { return self._s[4797]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4798]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4799]! } - public var Message_PinnedGame: String { return self._s[4800]! } - public var KeyCommand_SearchInChat: String { return self._s[4801]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4802]! } - public var ChatList_Search_FilterMedia: String { return self._s[4803]! } - public var Message_PinnedAudioMessage: String { return self._s[4804]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4806]! } + public var VoiceOver_Chat_Reply: String { return self._s[4793]! } + public var Month_GenMay: String { return self._s[4794]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4795]! } + public var Chat_PsaTooltip_covid: String { return self._s[4796]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4797]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4798]! } + public var AppUpgrade_Running: String { return self._s[4799]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4802]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4803]! } + public var SharedMedia_EmptyText: String { return self._s[4804]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4805]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4806]! } + public var Message_PinnedGame: String { return self._s[4807]! } + public var KeyCommand_SearchInChat: String { return self._s[4808]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4809]! } + public var ChatList_Search_FilterMedia: String { return self._s[4810]! } + public var Message_PinnedAudioMessage: String { return self._s[4811]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4813]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4807]!, self._r[4807]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4814]!, self._r[4814]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4808]! } - public var InviteLink_Create: String { return self._s[4809]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4815]! } + public var InviteLink_Create: String { return self._s[4816]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4810]!, self._r[4810]!, [_0]) + return formatWithArgumentRanges(self._s[4817]!, self._r[4817]!, [_0]) } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4811]!, self._r[4811]!, [_0]) + return formatWithArgumentRanges(self._s[4818]!, self._r[4818]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4812]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4813]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4814]! } - public var Channel_JoinChannel: String { return self._s[4815]! } - public var Watch_UserInfo_Unblock: String { return self._s[4816]! } - public var PhoneLabel_Title: String { return self._s[4817]! } - public var VoiceChat_EditPermissions: String { return self._s[4819]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4820]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4821]! } + public var Settings_AddAccount: String { return self._s[4819]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4820]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4821]! } + public var Channel_JoinChannel: String { return self._s[4822]! } + public var Watch_UserInfo_Unblock: String { return self._s[4823]! } + public var PhoneLabel_Title: String { return self._s[4824]! } + public var VoiceChat_EditPermissions: String { return self._s[4826]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4827]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4828]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4822]!, self._r[4822]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4829]!, self._r[4829]!, [_1, _2, _3, _4, _5, _6]) } - public var Channel_AddBotErrorHaveRights: String { return self._s[4823]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4824]! } - public var DialogList_EncryptionProcessing: String { return self._s[4825]! } - public var ChatList_Search_FilterChats: String { return self._s[4826]! } - public var WatchRemote_NotificationText: String { return self._s[4827]! } - public var EditTheme_ChangeColors: String { return self._s[4829]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4830]! } - public var CallSettings_OnMobile: String { return self._s[4832]! } - public var Month_ShortFebruary: String { return self._s[4834]! } - public var VoiceOver_MessageContextReply: String { return self._s[4835]! } - public var AutoremoveSetup_TimerValueNever: String { return self._s[4836]! } - public var Group_Location_ChangeLocation: String { return self._s[4838]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4830]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4831]! } + public var DialogList_EncryptionProcessing: String { return self._s[4832]! } + public var ChatList_Search_FilterChats: String { return self._s[4833]! } + public var WatchRemote_NotificationText: String { return self._s[4834]! } + public var EditTheme_ChangeColors: String { return self._s[4836]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4837]! } + public var CallSettings_OnMobile: String { return self._s[4839]! } + public var Month_ShortFebruary: String { return self._s[4841]! } + public var VoiceOver_MessageContextReply: String { return self._s[4842]! } + public var AutoremoveSetup_TimerValueNever: String { return self._s[4843]! } + public var Group_Location_ChangeLocation: String { return self._s[4845]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4839]!, self._r[4839]!, [_1]) + return formatWithArgumentRanges(self._s[4846]!, self._r[4846]!, [_1]) } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4840]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4841]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4842]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4847]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4848]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4849]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4844]!, self._r[4844]!, [_0]) + return formatWithArgumentRanges(self._s[4851]!, self._r[4851]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4845]! } - public var Login_InfoAvatarPhoto: String { return self._s[4846]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4847]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4848]! } - public var Map_PlacesInThisArea: String { return self._s[4849]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4850]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4851]! } + public var PhotoEditor_WarmthTool: String { return self._s[4852]! } + public var Login_InfoAvatarPhoto: String { return self._s[4853]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4854]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4855]! } + public var Map_PlacesInThisArea: String { return self._s[4856]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4857]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4858]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4852]!, self._r[4852]!, [_1]) - } - public var PeerInfo_ReportProfileVideo: String { return self._s[4853]! } - public var ShareMenu_Send: String { return self._s[4854]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4855]! } - public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4856]!, self._r[4856]!, [_1]) - } - public var Appearance_AppIconClassicX: String { return self._s[4857]! } - public var Report_Report: String { return self._s[4858]! } - public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4859]!, self._r[4859]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4860]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4862]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4863]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4864]! } - public var Conversation_Timer_Title: String { return self._s[4865]! } - public var Common_Next: String { return self._s[4866]! } - public var Notification_Exceptions_NewException: String { return self._s[4867]! } + public var PeerInfo_ReportProfileVideo: String { return self._s[4860]! } + public var ShareMenu_Send: String { return self._s[4861]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4862]! } + public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4863]!, self._r[4863]!, [_1]) + } + public var Appearance_AppIconClassicX: String { return self._s[4864]! } + public var Report_Report: String { return self._s[4865]! } + public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4866]!, self._r[4866]!, [_1]) + } + public var Conversation_StopPoll: String { return self._s[4867]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4869]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4870]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4871]! } + public var Conversation_Timer_Title: String { return self._s[4872]! } + public var Common_Next: String { return self._s[4873]! } + public var Notification_Exceptions_NewException: String { return self._s[4874]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4868]!, self._r[4868]!, [_0]) + return formatWithArgumentRanges(self._s[4875]!, self._r[4875]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4869]! } - public var VoiceChat_UnmutePeer: String { return self._s[4870]! } - public var ChatImportActivity_Retry: String { return self._s[4871]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4872]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4873]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4874]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4875]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4876]! } + public var AccessDenied_CallMicrophone: String { return self._s[4876]! } + public var VoiceChat_UnmutePeer: String { return self._s[4877]! } + public var ChatImportActivity_Retry: String { return self._s[4878]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4879]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4880]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4881]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4882]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4883]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4877]!, self._r[4877]!, [_0]) + return formatWithArgumentRanges(self._s[4884]!, self._r[4884]!, [_0]) } - public var Group_About_Help: String { return self._s[4878]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4879]! } - public var Tour_Title3: String { return self._s[4880]! } - public var Watch_Conversation_Unblock: String { return self._s[4881]! } - public var Watch_UserInfo_Block: String { return self._s[4882]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4883]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4884]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4885]! } - public var TextFormat_AddLinkTitle: String { return self._s[4886]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4887]! } + public var Group_About_Help: String { return self._s[4885]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4886]! } + public var Tour_Title3: String { return self._s[4887]! } + public var Watch_Conversation_Unblock: String { return self._s[4888]! } + public var Watch_UserInfo_Block: String { return self._s[4889]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4890]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4891]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4892]! } + public var TextFormat_AddLinkTitle: String { return self._s[4893]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4894]! } public func Notification_VoiceChatScheduled(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4888]!, self._r[4888]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4895]!, self._r[4895]!, [_1, _2]) } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4889]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4891]! } - public var Compose_ChannelMembers: String { return self._s[4892]! } - public var Conversation_ForwardTitle: String { return self._s[4893]! } - public var Conversation_PinnedPoll: String { return self._s[4896]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4896]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4898]! } + public var Compose_ChannelMembers: String { return self._s[4899]! } + public var Conversation_ForwardTitle: String { return self._s[4900]! } + public var Conversation_PinnedPoll: String { return self._s[4903]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4897]!, self._r[4897]!, [_0]) + return formatWithArgumentRanges(self._s[4904]!, self._r[4904]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4898]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4900]! } - public var Stats_Overview: String { return self._s[4901]! } - public var Map_HomeAndWorkTitle: String { return self._s[4902]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4905]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4907]! } + public var Stats_Overview: String { return self._s[4908]! } + public var Map_HomeAndWorkTitle: String { return self._s[4909]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4903]!, self._r[4903]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4910]!, self._r[4910]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4904]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4905]! } - public var Privacy_PhoneNumber: String { return self._s[4906]! } - public var ChatList_Search_FilterFiles: String { return self._s[4907]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4908]! } - public var ChannelIntro_CreateChannel: String { return self._s[4909]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4910]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4911]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4912]! } + public var Privacy_PhoneNumber: String { return self._s[4913]! } + public var ChatList_Search_FilterFiles: String { return self._s[4914]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4915]! } + public var ChannelIntro_CreateChannel: String { return self._s[4916]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4917]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4911]!, self._r[4911]!, [_0]) + return formatWithArgumentRanges(self._s[4918]!, self._r[4918]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4912]! } - public var Passport_Language_ar: String { return self._s[4914]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4915]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4916]! } - public var Calls_RatingFeedback: String { return self._s[4917]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4918]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4921]! } + public var Weekday_ShortMonday: String { return self._s[4919]! } + public var Passport_Language_ar: String { return self._s[4921]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4922]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4923]! } + public var Calls_RatingFeedback: String { return self._s[4924]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4925]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4928]! } public func VoiceOver_SelfDestructTimerOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4922]!, self._r[4922]!, [_0]) + return formatWithArgumentRanges(self._s[4929]!, self._r[4929]!, [_0]) } - public var Watch_Compose_Send: String { return self._s[4923]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4924]! } - public var WebSearch_RecentSectionClear: String { return self._s[4925]! } + public var Watch_Compose_Send: String { return self._s[4930]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4931]! } + public var WebSearch_RecentSectionClear: String { return self._s[4932]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4926]!, self._r[4926]!, [_0]) + return formatWithArgumentRanges(self._s[4933]!, self._r[4933]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4927]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4928]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4929]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4931]! } - public var Settings_SavedMessages: String { return self._s[4932]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4933]! } - public var Month_ShortMarch: String { return self._s[4934]! } - public var Message_Location: String { return self._s[4935]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4934]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4935]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4936]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4938]! } + public var Settings_SavedMessages: String { return self._s[4939]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4940]! } + public var Month_ShortMarch: String { return self._s[4941]! } + public var Message_Location: String { return self._s[4942]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4936]!, self._r[4936]!, [_1]) + return formatWithArgumentRanges(self._s[4943]!, self._r[4943]!, [_1]) } public func Channel_AdminLog_MessageRemovedAdminName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4937]!, self._r[4937]!, [_1]) + return formatWithArgumentRanges(self._s[4944]!, self._r[4944]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4938]!, self._r[4938]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4945]!, self._r[4945]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4940]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4947]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4941]!, self._r[4941]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4948]!, self._r[4948]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4942]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4943]! } - public var SharedMedia_CategoryDocs: String { return self._s[4944]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4945]! } - public var Paint_Framed: String { return self._s[4946]! } - public var Channel_Setup_LinkTypePublic: String { return self._s[4947]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4948]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4949]! } + public var GroupPermission_NoSendMedia: String { return self._s[4949]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4950]! } + public var SharedMedia_CategoryDocs: String { return self._s[4951]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4952]! } + public var Paint_Framed: String { return self._s[4953]! } + public var Channel_Setup_LinkTypePublic: String { return self._s[4954]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4955]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4956]! } public func ChatImport_SelectionConfirmationUserWithTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4950]!, self._r[4950]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4957]!, self._r[4957]!, [_1, _2]) } - public var Channel_SignMessages: String { return self._s[4951]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4952]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4953]! } + public var TwoStepAuth_RecoveryUnavailableResetAction: String { return self._s[4958]! } + public var Channel_SignMessages: String { return self._s[4959]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4960]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4961]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4954]!, self._r[4954]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4962]!, self._r[4962]!, [_1, _2]) } - public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4955]! } - public var ImportStickerPack_ChooseName: String { return self._s[4956]! } - public var GroupInfo_UpgradeButton: String { return self._s[4957]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4958]! } + public var InviteLink_Create_TimeLimitNoLimit: String { return self._s[4963]! } + public var ImportStickerPack_ChooseName: String { return self._s[4964]! } + public var GroupInfo_UpgradeButton: String { return self._s[4965]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4966]! } public func Conversation_ScheduledVoiceChatStartsTomorrowShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4959]!, self._r[4959]!, [_0]) + return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_0]) } - public var AutoDownloadSettings_Files: String { return self._s[4960]! } + public var AutoDownloadSettings_Files: String { return self._s[4968]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4961]!, self._r[4961]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4969]!, self._r[4969]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4963]! } - public var Update_UpdateApp: String { return self._s[4964]! } - public var Channel_Setup_TypePublic: String { return self._s[4965]! } - public var Watch_Compose_CreateMessage: String { return self._s[4966]! } + public var Login_SendCodeViaSms: String { return self._s[4971]! } + public var Update_UpdateApp: String { return self._s[4972]! } + public var Channel_Setup_TypePublic: String { return self._s[4973]! } + public var Watch_Compose_CreateMessage: String { return self._s[4974]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4967]!, self._r[4967]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4975]!, self._r[4975]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4968]! } - public var VoiceOver_Chat_Video: String { return self._s[4969]! } - public var Forward_ChannelReadOnly: String { return self._s[4970]! } - public var StickerPack_HideStickers: String { return self._s[4971]! } - public var ChatListFolder_NameContacts: String { return self._s[4972]! } - public var Profile_BotInfo: String { return self._s[4973]! } - public var Document_TargetConfirmationFormat: String { return self._s[4974]! } - public var GroupInfo_InviteByLink: String { return self._s[4975]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4976]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4977]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4978]! } - public var Passport_NotLoggedInMessage: String { return self._s[4979]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4980]! } - public var Checkout_PaymentMethod: String { return self._s[4981]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4986]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4987]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4988]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4989]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4990]! } - public var Conversation_GigagroupDescription: String { return self._s[4991]! } - public var Camera_Title: String { return self._s[4992]! } - public var Map_Directions: String { return self._s[4993]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4995]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4996]! } - public var Profile_EncryptionKey: String { return self._s[4997]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4976]! } + public var VoiceOver_Chat_Video: String { return self._s[4977]! } + public var Forward_ChannelReadOnly: String { return self._s[4978]! } + public var StickerPack_HideStickers: String { return self._s[4979]! } + public var ChatListFolder_NameContacts: String { return self._s[4980]! } + public var Profile_BotInfo: String { return self._s[4981]! } + public var Document_TargetConfirmationFormat: String { return self._s[4982]! } + public var GroupInfo_InviteByLink: String { return self._s[4983]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4984]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4985]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4986]! } + public var Passport_NotLoggedInMessage: String { return self._s[4987]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4988]! } + public var Checkout_PaymentMethod: String { return self._s[4989]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4994]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4995]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4996]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4997]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4998]! } + public var Conversation_GigagroupDescription: String { return self._s[4999]! } + public var Camera_Title: String { return self._s[5000]! } + public var Map_Directions: String { return self._s[5001]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[5003]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[5004]! } + public var Profile_EncryptionKey: String { return self._s[5005]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4998]!, self._r[4998]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[5006]!, self._r[5006]!, [_1, "\(_2)"]) } - public var VoiceChat_VideoPreviewShareCamera: String { return self._s[4999]! } + public var VoiceChat_VideoPreviewShareCamera: String { return self._s[5007]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5000]!, self._r[5000]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5008]!, self._r[5008]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[5001]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[5003]! } - public var Common_No: String { return self._s[5004]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5005]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5006]! } - public var Settings_AboutEmpty: String { return self._s[5007]! } - public var TwoStepAuth_FloodError: String { return self._s[5009]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5010]! } + public var Passport_Identity_TypePassport: String { return self._s[5009]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[5011]! } + public var Common_No: String { return self._s[5012]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[5013]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[5014]! } + public var Settings_AboutEmpty: String { return self._s[5015]! } + public var TwoStepAuth_FloodError: String { return self._s[5017]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[5018]! } public func Notification_VoiceChatScheduledChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5011]!, self._r[5011]!, [_0]) + return formatWithArgumentRanges(self._s[5019]!, self._r[5019]!, [_0]) } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5013]!, self._r[5013]!, [_1]) + return formatWithArgumentRanges(self._s[5021]!, self._r[5021]!, [_1]) } - public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5016]! } - public var Conversation_Edit: String { return self._s[5017]! } - public var CheckoutInfo_SaveInfo: String { return self._s[5019]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5020]! } - public var Call_CameraTooltip: String { return self._s[5022]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[5023]! } - public var Contacts_InviteToTelegram: String { return self._s[5024]! } - public var Notifications_ResetAllNotifications: String { return self._s[5025]! } - public var Calls_NewCall: String { return self._s[5026]! } - public var VoiceOver_Chat_Music: String { return self._s[5029]! } - public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5030]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5031]! } - public var Channel_Edit_AboutItem: String { return self._s[5032]! } - public var Message_VideoExpired: String { return self._s[5033]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5034]! } - public var Settings_TryEnterPassword: String { return self._s[5035]! } + public var Notification_Exceptions_MessagePreviewAlwaysOn: String { return self._s[5024]! } + public var Conversation_Edit: String { return self._s[5025]! } + public var CheckoutInfo_SaveInfo: String { return self._s[5027]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[5028]! } + public var Call_CameraTooltip: String { return self._s[5030]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[5031]! } + public var Contacts_InviteToTelegram: String { return self._s[5032]! } + public var Notifications_ResetAllNotifications: String { return self._s[5033]! } + public var Calls_NewCall: String { return self._s[5034]! } + public var VoiceOver_Chat_Music: String { return self._s[5037]! } + public var Channel_AdminLogFilter_EventsInviteLinks: String { return self._s[5038]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[5039]! } + public var Channel_Edit_AboutItem: String { return self._s[5040]! } + public var Message_VideoExpired: String { return self._s[5041]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[5042]! } + public var Settings_TryEnterPassword: String { return self._s[5043]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5036]!, self._r[5036]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5044]!, self._r[5044]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[5038]! } - public var Notifications_ClassicTones: String { return self._s[5039]! } - public var Conversation_StatusTyping: String { return self._s[5040]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5041]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5042]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5043]! } - public var Conversation_MessageLeaveComment: String { return self._s[5044]! } - public var UserInfo_TapToCall: String { return self._s[5045]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5046]! } + public var NotificationsSound_Input: String { return self._s[5046]! } + public var Notifications_ClassicTones: String { return self._s[5047]! } + public var Conversation_StatusTyping: String { return self._s[5048]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[5049]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[5050]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[5051]! } + public var Conversation_MessageLeaveComment: String { return self._s[5052]! } + public var UserInfo_TapToCall: String { return self._s[5053]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[5054]! } public func ScheduleVoiceChat_ScheduleOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5047]!, self._r[5047]!, [_0, _1]) + return formatWithArgumentRanges(self._s[5055]!, self._r[5055]!, [_0, _1]) } - public var Conversation_ClearAll: String { return self._s[5049]! } - public var UserInfo_NotificationsDefault: String { return self._s[5050]! } - public var Location_ProximityGroupTip: String { return self._s[5051]! } - public var Map_ChooseAPlace: String { return self._s[5052]! } - public var GroupInfo_AddParticipantTitle: String { return self._s[5054]! } - public var ChatList_PeerTypeNonContact: String { return self._s[5055]! } - public var Conversation_SlideToCancel: String { return self._s[5056]! } - public var Month_ShortJuly: String { return self._s[5057]! } - public var SocksProxySetup_ProxyType: String { return self._s[5058]! } + public var Conversation_ClearAll: String { return self._s[5057]! } + public var UserInfo_NotificationsDefault: String { return self._s[5058]! } + public var Location_ProximityGroupTip: String { return self._s[5059]! } + public var Map_ChooseAPlace: String { return self._s[5060]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[5062]! } + public var ChatList_PeerTypeNonContact: String { return self._s[5063]! } + public var Conversation_SlideToCancel: String { return self._s[5064]! } + public var Month_ShortJuly: String { return self._s[5065]! } + public var SocksProxySetup_ProxyType: String { return self._s[5066]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5059]!, self._r[5059]!, [_0]) + return formatWithArgumentRanges(self._s[5067]!, self._r[5067]!, [_0]) } - public var StickerPacks_ActionArchive: String { return self._s[5060]! } - public var ChatList_EditFolders: String { return self._s[5061]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[5062]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[5064]! } + public var StickerPacks_ActionArchive: String { return self._s[5068]! } + public var ChatList_EditFolders: String { return self._s[5069]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[5070]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[5072]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5065]!, self._r[5065]!, [_0]) + return formatWithArgumentRanges(self._s[5073]!, self._r[5073]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5066]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[5067]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[5069]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[5074]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[5075]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[5077]! } public func Conversation_ScheduledVoiceChatStartsOnShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5071]!, self._r[5071]!, [_0]) + return formatWithArgumentRanges(self._s[5079]!, self._r[5079]!, [_0]) } - public var Passport_DeleteAddress: String { return self._s[5072]! } - public var Passport_DeletePassportConfirmation: String { return self._s[5073]! } - public var Passport_Identity_ReverseSide: String { return self._s[5074]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5076]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[5077]! } - public var InviteLink_CreatedBy: String { return self._s[5078]! } - public var Passport_FieldAddress: String { return self._s[5079]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5080]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5083]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[5084]! } - public var Map_Home: String { return self._s[5085]! } - public var PollResults_Title: String { return self._s[5088]! } + public var Passport_DeleteAddress: String { return self._s[5080]! } + public var Passport_DeletePassportConfirmation: String { return self._s[5081]! } + public var Passport_Identity_ReverseSide: String { return self._s[5082]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[5084]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[5085]! } + public var InviteLink_CreatedBy: String { return self._s[5086]! } + public var Passport_FieldAddress: String { return self._s[5087]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[5088]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[5091]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[5092]! } + public var Map_Home: String { return self._s[5093]! } + public var PollResults_Title: String { return self._s[5096]! } public func InviteLink_OtherPermanentLinkInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[5089]!, self._r[5089]!, [_1, _2]) + return formatWithArgumentRanges(self._s[5097]!, self._r[5097]!, [_1, _2]) } - public var ArchivedChats_IntroText2: String { return self._s[5091]! } - public var VoiceChat_VideoPreviewTitle: String { return self._s[5092]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5093]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5094]! } - public var VoiceChat_Muted: String { return self._s[5096]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[5097]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[5098]! } - public var Conversation_AutoremoveActionEnable: String { return self._s[5100]! } - public var Group_Info_AdminLog: String { return self._s[5101]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[5102]! } - public var Appearance_Animations: String { return self._s[5103]! } - public var Appearance_TextSizeSetting: String { return self._s[5104]! } - public func ChatList_MessageFiles(_ 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 var ArchivedChats_IntroText2: String { return self._s[5099]! } + public var VoiceChat_VideoPreviewTitle: String { return self._s[5100]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[5101]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[5102]! } + public var VoiceChat_Muted: String { return self._s[5104]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[5105]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[5106]! } + public var Conversation_AutoremoveActionEnable: String { return self._s[5108]! } + public var Group_Info_AdminLog: String { return self._s[5109]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[5110]! } + public var Appearance_Animations: String { return self._s[5111]! } + public var Appearance_TextSizeSetting: String { return self._s[5112]! } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) } - 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[1 * 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[1 * 6 + Int(form.rawValue)]!, _1, _2) } - public func OldChannels_InactiveYear(_ value: Int32) -> String { + public func InstantPage_Views(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func SharedMedia_Photo(_ 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 Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 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[5 * 6 + Int(form.rawValue)]!, _1, _2) + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func Map_ETAMinutes(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) + public func LiveLocation_MenuChatsCount(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_Status_Members(_ value: Int32) -> String { + public func ForwardedPolls(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func InviteLink_PeopleCanJoin(_ 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 Stats_GroupTopPosterMessages(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func ScheduledIn_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) + public func ForwardedVideoMessages(_ 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 ScheduledIn_Hours(_ value: Int32) -> String { + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, _1, _2) + public func InviteText_ContactsCountText(_ 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 MessageTimer_Seconds(_ value: Int32) -> String { + public func StickerPacks_DeleteStickerPacksConfirmation(_ 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 SharedMedia_Generic(_ value: Int32) -> String { + 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[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) @@ -5746,473 +5759,472 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func Call_Days(_ 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 OldChannels_InactiveMonth(_ 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[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_ContextViewReplies(_ value: Int32) -> String { + public func Chat_MessagesUnpinned(_ 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 ForwardedAudios(_ value: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ 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 ScheduledIn_Months(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func MessagePoll_QuizCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_TitlePinnedMessages(_ value: Int32) -> String { + public func ScheduledIn_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 Conversation_StatusOnline(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { + 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[29 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_InviteLink_InviteSpeakers(_ value: Int32) -> String { + 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[30 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ 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 VoiceOver_Chat_UnreadMessages(_ value: Int32) -> String { + public func ChatList_MessagePhotos(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func MessageTimer_ShortWeeks(_ 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_TitleReplies(_ value: Int32) -> String { + public func MuteExpires_Hours(_ 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 Stats_GroupTopInviterInvites(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[35 * 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[36 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + public func Conversation_ContextMenuSelectAll(_ 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) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_AddStickerCount(_ 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_ShortMinutes(_ value: Int32) -> String { + public func OldChannels_InactiveWeek(_ 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 MuteExpires_Minutes(_ value: Int32) -> String { + public func Call_Seconds(_ 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 Stats_GroupShowMoreTopPosters(_ 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[41 * 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[42 * 6 + Int(form.rawValue)]!, _0, _1) + public func LastSeen_HoursAgo(_ 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 MessagePoll_VotedCount(_ value: Int32) -> String { + public func QuickSend_Photos(_ 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 Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopInviters(_ 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 ChatList_SelectedChats(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ 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 MuteFor_Hours(_ value: Int32) -> String { + public func ScheduledIn_Minutes(_ 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 ScheduledIn_Days(_ 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[47 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + public func UserCount(_ 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 Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + 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[50 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ 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 SharedMedia_Link(_ 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[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func Invitation_Members(_ value: Int32) -> String { + 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[53 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortSeconds(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Days(_ value: Int32) -> String { + public func MuteFor_Days(_ 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 Media_ShareItem(_ value: Int32) -> String { + public func ChatList_DeletedChats(_ 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 ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Map_ETAHours(_ value: Int32) -> String { + public func OldChannels_InactiveMonth(_ 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 ChatList_MessageVideos(_ value: Int32) -> String { + public func Notification_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 Stats_MessageForwards(_ value: Int32) -> String { + 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[60 * 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[61 * 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[62 * 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[63 * 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[64 * 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[65 * 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[66 * 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[67 * 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[68 * 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[69 * 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[70 * 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[71 * 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[72 * 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[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPacks_ArchiveStickerPacksConfirmation(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_AutoremoveRemainingDays(_ 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 InviteText_ContactsCountText(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[81 * 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[82 * 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[83 * 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[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 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[92 * 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[93 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) } public func ChatListFilter_ShowMoreChats(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageMusic(_ value: Int32) -> String { + public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ 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[96 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[64 * 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[97 * 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[65 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func ForwardedContacts(_ 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 StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) } 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[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ 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[101 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_Panel_Members(_ value: Int32) -> String { + public func ForwardedStickers(_ 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) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ 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) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public func Map_ETAHours(_ 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) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + 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[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideoMessages(_ value: Int32) -> String { + 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[73 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedMessages(_ 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) + return String(format: self._ps[74 * 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[75 * 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[76 * 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[77 * 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[78 * 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[79 * 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[80 * 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[81 * 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[82 * 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[83 * 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[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 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[91 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedGifs(_ 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 ChatList_SelectedChats(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ 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 StickerPacks_ArchiveStickerPacksConfirmation(_ 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 ForwardedVideos(_ 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 Stats_MessageForwards(_ 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 Conversation_AutoremoveRemainingDays(_ 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 SharedMedia_Video(_ 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 ScheduledIn_Seconds(_ 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 ChatList_MessageMusic(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[106 * 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[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ 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 VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { + public func Conversation_SelectedMessages(_ 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 Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + public func Notification_GameScoreSelfExtended(_ 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 OldChannels_InactiveWeek(_ value: Int32) -> String { + public func Conversation_MessageViewComments(_ 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 Notification_GameScoreExtended(_ value: Int32) -> String { + public func Chat_TitlePinnedMessages(_ 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 InstantPage_Views(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopPosters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + public func SharedMedia_Generic(_ 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 InviteLink_PeopleJoined(_ value: Int32) -> String { + public func Contacts_InviteContacts(_ 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) @@ -6222,297 +6234,295 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func ForwardedFiles(_ 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 ForwardedFiles(_ 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 PUSH_MESSAGE_PHOTOS(_ 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 Stats_GroupShowMoreTopAdmins(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { + public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + 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[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_TitleComments(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ 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_PeopleCanJoin(_ value: Int32) -> String { + public func Conversation_TitleReplies(_ 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_DOCS_FIX1(_ 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 Media_SharePhoto(_ 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 ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + public func Conversation_TitleComments(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[126 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Minutes(_ 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[127 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + 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[128 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func QuickSend_Photos(_ value: Int32) -> String { + 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[129 * 6 + Int(form.rawValue)]!, stringValue) } - public func Passport_Scans(_ value: Int32) -> String { + public func Stats_GroupTopAdminBans(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[131 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func CreatePoll_AddMoreOptions(_ 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 Conversation_ContextMenuSelectAll(_ 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[133 * 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[134 * 6 + Int(form.rawValue)]!, _1, _2) + public func Passport_Scans(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { + 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[135 * 6 + Int(form.rawValue)]!, stringValue) } - public func ScheduledIn_Years(_ value: Int32) -> String { + public func ScheduledIn_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[136 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func MessageTimer_Hours(_ 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 ScheduledIn_Minutes(_ 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[138 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleRemaining(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ 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 LastSeen_HoursAgo(_ value: Int32) -> String { + 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[140 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ 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[141 * 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[142 * 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[142 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ 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[144 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPacks_DeleteStickerPacksConfirmation(_ value: Int32) -> String { + public func ScheduledIn_Years(_ 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 Media_ShareVideo(_ 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[146 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func InviteLink_PeopleJoined(_ 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 OldChannels_Leave(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ 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 CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ 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 PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func InviteLink_InviteLinks(_ 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_Days(_ 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_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Call_Days(_ value: Int32) -> String { + public func MessageTimer_Months(_ 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) } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func Stats_MessageViews(_ 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 Notifications_Exceptions(_ value: Int32) -> String { + public func MuteFor_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortWeeks(_ 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[156 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteLink_PeopleJoinedShort(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ 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) } - public func Conversation_MessageViewComments(_ 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) + public func PUSH_MESSAGE_FILES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, _1, _2) } - public func SharedMedia_Video(_ value: Int32) -> String { + public func MessagePoll_VotedCount(_ 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 ChatList_Search_Messages(_ value: Int32) -> String { + public func ImportStickerPack_StickerCount(_ 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 AttachmentMenu_SendItem(_ value: Int32) -> String { + public func OldChannels_InactiveYear(_ 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 SharedMedia_File(_ value: Int32) -> String { + public func InviteLink_PeopleJoinedShort(_ 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 ForwardedPhotos(_ 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_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[163 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Call_Minutes(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ 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 ImportStickerPack_StickerCount(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ 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 MessagePoll_QuizCount(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[166 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + 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[167 * 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[168 * 6 + Int(form.rawValue)]!, _1, _2) + public func Call_Hours(_ 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 PollResults_ShowMore(_ value: Int32) -> String { + public func Call_ShortMinutes(_ 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 ScheduledIn_Seconds(_ 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[170 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminDeletions(_ 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[171 * 6 + Int(form.rawValue)]!, stringValue) } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func AttachmentMenu_SendPhoto(_ 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 ServiceMessage_GameScoreExtended(_ 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[173 * 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[174 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func Invitation_Members(_ 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 ForwardedStickers(_ value: Int32) -> String { + public func Call_Minutes(_ 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) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[176 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 836cf6c9df..234afe8552 100644 Binary files a/submodules/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/Resources/PresentationStrings.mapping differ diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index a68038b33a..f9530e9873 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -571,30 +571,6 @@ public final class AuthorizationSequenceController: NavigationController, MFMail controller?.inProgress = true - strongSelf.actionDisposable.set((performPasswordRecovery(accountManager: strongSelf.sharedContext.accountManager, account: strongSelf.account, code: code, syncContacts: syncContacts) |> deliverOnMainQueue).start(error: { error in - Queue.mainQueue().async { - if let strongSelf = self, let controller = controller { - controller.inProgress = false - - let text: String - switch error { - case .limitExceeded: - text = strongSelf.presentationData.strings.LoginPassword_FloodError - case .invalidCode: - text = strongSelf.presentationData.strings.Login_InvalidCodeError - case .expired: - text = strongSelf.presentationData.strings.Login_CodeExpiredError - case .generic: - text = strongSelf.presentationData.strings.Login_UnknownError - } - - controller.present(standardTextAlertController(theme: AlertControllerTheme(presentationData: strongSelf.presentationData), title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - } - } - })) - - /*controller?.inProgress = true - strongSelf.actionDisposable.set((checkPasswordRecoveryCode(network: strongSelf.account.network, code: code) |> deliverOnMainQueue).start(error: { error in guard let strongSelf = self, let controller = controller else { @@ -621,13 +597,13 @@ public final class AuthorizationSequenceController: NavigationController, MFMail } controller?.inProgress = false - let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, network: strongSelf.account.network, mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: code, syncContacts: syncContacts, account: strongSelf.account)), stateUpdated: { _ in + let setupController = TwoFactorDataInputScreen(sharedContext: strongSelf.sharedContext, engine: .unauthorized(TelegramEngineUnauthorized(account: strongSelf.account)), mode: .passwordRecovery(TwoFactorDataInputMode.Recovery(code: code, syncContacts: syncContacts, account: strongSelf.account)), stateUpdated: { _ in guard let _ = self else { return } }) strongSelf.setViewControllers(strongSelf.viewControllers + [setupController], animated: true) - }))*/ + })) } controller.noAccess = { [weak self, weak controller] in if let strongSelf = self, let controller = controller { diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 2f7d3a8833..5f9bedcc9d 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -5045,7 +5045,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G items.append(ActionSheetButtonItem(title: presentationData.strings.Report_Report, color: .accent, font: .bold, enabled: true, action: { dismissAction() strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState { $0.withoutSelectionState() } }, completion: { _ in - let _ = (reportPeerMessages(account: strongSelf.context.account, messageIds: Array(messageIds), reason: reportReason, message: message) + let _ = (strongSelf.context.engine.peers.reportPeerMessages(messageIds: Array(messageIds), reason: reportReason, message: message) |> deliverOnMainQueue).start(completed: { [weak self] in if let strongSelf = self, let path = getAppBundle().path(forResource: "PoliceCar", ofType: "tgs") { strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .emoji(path: path, text: presentationData.strings.Report_Succeed), elevatedLayout: false, action: { _ in return false }), in: .current) @@ -5110,12 +5110,12 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start() let context = strongSelf.context let _ = (context.account.postbox.transaction { transasction -> Void in context.engine.messages.deleteAllMessagesWithForwardAuthor(transaction: transasction, peerId: message.id.peerId, forwardAuthorId: peer.id, namespace: Namespaces.Message.Cloud) }).start() - let _ = reportRepliesMessage(account: strongSelf.context.account, messageId: message.id, deleteMessage: true, deleteHistory: true, reportSpam: reportSpam).start() + let _ = strongSelf.context.engine.peers.reportRepliesMessage(messageId: message.id, deleteMessage: true, deleteHistory: true, reportSpam: reportSpam).start() }) ] as [ActionSheetItem]) @@ -5815,7 +5815,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let peer = peer as? TelegramSecretChat { let controller = ChatSecretAutoremoveTimerActionSheetController(context: strongSelf.context, currentValue: peer.messageAutoremoveTimeout == nil ? 0 : peer.messageAutoremoveTimeout!, applyValue: { value in if let strongSelf = self { - let _ = setSecretChatMessageAutoremoveTimeoutInteractively(account: strongSelf.context.account, peerId: peer.id, timeout: value == 0 ? nil : value).start() + let _ = strongSelf.context.engine.peers.setChatMessageAutoremoveTimeoutInteractively(peerId: peer.id, timeout: value == 0 ? nil : value).start() } }) strongSelf.present(controller, in: .window(.root)) @@ -6511,7 +6511,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - strongSelf.reportIrrelvantGeoDisposable = (TelegramCore.reportPeer(account: strongSelf.context.account, peerId: peerId, reason: .irrelevantLocation, message: "") + strongSelf.reportIrrelvantGeoDisposable = (strongSelf.context.engine.peers.reportPeer(peerId: peerId, reason: .irrelevantLocation, message: "") |> deliverOnMainQueue).start(completed: { [weak self] in if let strongSelf = self { strongSelf.reportIrrelvantGeoNoticePromise.set(.single(true)) @@ -7111,7 +7111,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if case let .peer(peerId) = self.chatLocation, peerId.namespace == Namespaces.Peer.SecretChat, self.screenCaptureManager == nil { self.screenCaptureManager = ScreenCaptureDetectionManager(check: { [weak self] in if let strongSelf = self, strongSelf.canReadHistoryValue, strongSelf.traceVisibility() { - let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: peerId).start() + let _ = strongSelf.context.engine.messages.addSecretChatMessageScreenshot(peerId: peerId).start() return true } else { return false @@ -11312,7 +11312,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let user = self.presentationInterfaceState.renderedPeer?.peer as? TelegramUser, user.botInfo != nil { restartBot = true } - self.editMessageDisposable.set((requestUpdatePeerIsBlocked(account: self.context.account, peerId: peerId, isBlocked: false) + self.editMessageDisposable.set((self.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: false) |> afterDisposed({ [weak self] in Queue.mainQueue().async { unblockingPeer.set(false) @@ -11382,7 +11382,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let _ = requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start() + let _ = strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start() if let _ = chatPeer as? TelegramSecretChat { let _ = (strongSelf.context.account.postbox.transaction { transaction in terminateSecretChat(transaction: transaction, peerId: chatPeer.id, requestRemoteHistoryRemoval: true) @@ -11392,7 +11392,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = removePeerChat(account: strongSelf.context.account, peerId: chatPeer.id, reportChatSpam: reportSpam).start() strongSelf.effectiveNavigationController?.filterController(strongSelf, animated: true) } else if reportSpam { - let _ = TelegramCore.reportPeer(account: strongSelf.context.account, peerId: peer.id, reason: .spam, message: "").start() + let _ = strongSelf.context.engine.peers.reportPeer(peerId: peer.id, reason: .spam, message: "").start() } }) ] as [ActionSheetItem]) @@ -11512,7 +11512,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } else { dismissPeerId = peerId } - self.editMessageDisposable.set((dismissPeerStatusOptions(account: self.context.account, peerId: dismissPeerId) + self.editMessageDisposable.set((self.context.engine.peers.dismissPeerStatusOptions(peerId: dismissPeerId) |> afterDisposed({ Queue.mainQueue().async { } @@ -11528,7 +11528,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = removePeerChat(account: self.context.account, peerId: peerId, reportChatSpam: reportChatSpam).start() self.effectiveNavigationController?.popToRoot(animated: true) - let _ = requestUpdatePeerIsBlocked(account: self.context.account, peerId: peerId, isBlocked: true).start() + let _ = self.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: true).start() } private func startBot(_ payload: String?) { diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index 4c22d96741..b49f29d649 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -2331,10 +2331,16 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } else { webpage = self.chatPresentationInterfaceState.urlPreview?.1 } - #if DEBUG - //webpage = nil - #endif + messages.append(.message(text: text.string, attributes: attributes, mediaReference: webpage.flatMap(AnyMediaReference.standalone), replyToMessageId: self.chatPresentationInterfaceState.interfaceState.replyMessageId, localGroupingKey: nil, correlationId: nil)) + + #if DEBUG + if text.string == "sleep" { + messages.append(messages[0]) + messages.append(messages[0]) + messages.append(messages[0]) + } + #endif } } diff --git a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift index 2954278e19..f99b7b35fc 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift @@ -750,7 +750,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { scrollPosition = nil } - return (ChatHistoryViewUpdate.HistoryView(view: MessageHistoryView(tagMask: nil, namespaces: .all, entries: messages.reversed().map { MessageHistoryEntry(message: $0, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)) }, holeEarlier: hasMore), type: .Generic(type: ViewUpdateType.Initial), scrollPosition: scrollPosition, flashIndicators: false, originalScrollPosition: nil, initialData: ChatHistoryCombinedInitialData(initialData: nil, buttonKeyboardMessage: nil, cachedData: nil, cachedDataMessages: nil, readStateData: nil), id: 0), version, nil) + return (ChatHistoryViewUpdate.HistoryView(view: MessageHistoryView(tagMask: nil, namespaces: .all, entries: messages.reversed().map { MessageHistoryEntry(message: $0, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)) }, holeEarlier: hasMore, holeLater: false, isLoading: false), type: .Generic(type: ViewUpdateType.Initial), scrollPosition: scrollPosition, flashIndicators: false, originalScrollPosition: nil, initialData: ChatHistoryCombinedInitialData(initialData: nil, buttonKeyboardMessage: nil, cachedData: nil, cachedDataMessages: nil, readStateData: nil), id: 0), version, nil) } } else { historyViewUpdate = self.chatHistoryLocationPromise.get() @@ -906,9 +906,9 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { let historyView = (strongSelf.opaqueTransactionState as? ChatHistoryTransactionOpaqueState)?.historyView let displayRange = strongSelf.displayedItemRange if let filteredEntries = historyView?.filteredEntries, let visibleRange = displayRange.visibleRange { - let lastEntry = filteredEntries[filteredEntries.count - 1 - visibleRange.lastIndex] + let firstEntry = filteredEntries[filteredEntries.count - 1 - visibleRange.firstIndex] - strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .Navigation(index: .message(lastEntry.index), anchorIndex: .message(lastEntry.index), count: historyMessageCount, highlight: false), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) + strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .Navigation(index: .message(firstEntry.index), anchorIndex: .message(firstEntry.index), count: historyMessageCount, highlight: false), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) } else { if let subject = subject, case let .message(messageId, highlight) = subject { strongSelf.chatHistoryLocationValue = ChatHistoryLocationInput(content: .InitialSearch(location: .id(messageId), count: 60, highlight: highlight), id: (strongSelf.chatHistoryLocationValue?.id).flatMap({ $0 + 1 }) ?? 0) diff --git a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift index 85e1547ae8..7f42d9f06b 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryViewForLocation.swift @@ -153,6 +153,12 @@ func chatHistoryViewForLocation(_ location: ChatHistoryLocationInput, context: A } else if view.isAddedToChatList, let historyScrollState = (initialData?.chatInterfaceState as? ChatInterfaceState)?.historyScrollState, tagMask == nil { scrollPosition = .positionRestoration(index: historyScrollState.messageIndex, relativeOffset: CGFloat(historyScrollState.relativeOffset)) } else { + if case .peer = chatLocation, !view.isAddedToChatList { + if view.holeEarlier && view.entries.count <= 2 { + fadeIn = true + return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) + } + } if view.entries.isEmpty && (view.holeEarlier || view.holeLater) { fadeIn = true return .Loading(initialData: combinedInitialData, type: .Generic(type: updateType)) diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 841fd452d0..d8d38e7f28 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -2746,7 +2746,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD )) self.privacySettings.set(.single(nil) |> then(requestAccountPrivacySettings(account: context.account) |> map(Optional.init))) self.archivedPacks.set(.single(nil) |> then(context.engine.stickers.archivedStickerPacks() |> map(Optional.init))) - self.hasPassport.set(.single(false) |> then(twoStepAuthData(context.account.network) + self.hasPassport.set(.single(false) |> then(context.engine.auth.twoStepAuthData() |> map { value -> Bool in return value.hasSecretValues } @@ -4267,7 +4267,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD let presentationData = strongSelf.presentationData if let peer = peer as? TelegramUser, let _ = peer.botInfo { - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: block).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: block).start()) if !block { let _ = enqueueMessages(account: strongSelf.context.account, peerId: peer.id, messages: [.message(text: "/start", attributes: [], mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil, correlationId: nil)]).start() if let navigationController = strongSelf.controller?.navigationController as? NavigationController { @@ -4292,12 +4292,12 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD return } - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: true).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: true).start()) if deleteChat { let _ = removePeerChat(account: strongSelf.context.account, peerId: strongSelf.peerId, reportChatSpam: reportSpam).start() (strongSelf.controller?.navigationController as? NavigationController)?.popToRoot(animated: true) } else if reportSpam { - let _ = reportPeer(account: strongSelf.context.account, peerId: strongSelf.peerId, reason: .spam, message: "").start() + let _ = strongSelf.context.engine.peers.reportPeer(peerId: strongSelf.peerId, reason: .spam, message: "").start() } deleteSendMessageIntents(peerId: strongSelf.peerId) @@ -4318,7 +4318,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD guard let strongSelf = self else { return } - strongSelf.activeActionDisposable.set(requestUpdatePeerIsBlocked(account: strongSelf.context.account, peerId: peer.id, isBlocked: block).start()) + strongSelf.activeActionDisposable.set(strongSelf.context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peer.id, isBlocked: block).start()) })]), in: .window(.root)) } } diff --git a/submodules/TelegramUI/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Sources/ShareExtensionContext.swift index 91507ed685..d3a24f5dfc 100644 --- a/submodules/TelegramUI/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Sources/ShareExtensionContext.swift @@ -443,7 +443,7 @@ public class ShareRootControllerImpl { let fileExtension = (fileName as NSString).pathExtension var archivePathValue: String? - var otherEntries: [(SSZipEntry, String, ChatHistoryImport.MediaType)] = [] + var otherEntries: [(SSZipEntry, String, TelegramEngine.HistoryImport.MediaType)] = [] var mainFile: TempBoxFile? let appConfiguration = context.currentAppConfiguration.with({ $0 }) @@ -528,7 +528,7 @@ public class ShareRootControllerImpl { } else { let entryFileName = (entryPath as NSString).lastPathComponent if !entryFileName.isEmpty { - let mediaType: ChatHistoryImport.MediaType + let mediaType: TelegramEngine.HistoryImport.MediaType let fullRange = NSRange(entryFileName.startIndex ..< entryFileName.endIndex, in: entryFileName) if photoRegex.firstMatch(in: entryFileName, options: [], range: fullRange) != nil { mediaType = .photo @@ -641,7 +641,7 @@ public class ShareRootControllerImpl { navigationController.viewControllers = [TempController(context: context)] strongSelf.mainWindow?.present(navigationController, on: .root) - let _ = (ChatHistoryImport.getInfo(account: context.account, header: mainFileHeader) + let _ = (context.engine.historyImport.getInfo(header: mainFileHeader) |> deliverOnMainQueue).start(next: { parseInfo in switch parseInfo { case let .group(groupTitle): @@ -695,7 +695,7 @@ public class ShareRootControllerImpl { strongSelf.mainWindow?.present(controller, on: .root) } else { controller.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller.inProgress = false @@ -846,7 +846,7 @@ public class ShareRootControllerImpl { attemptSelectionImpl = { [weak controller] peer in controller?.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller?.inProgress = false @@ -921,7 +921,7 @@ public class ShareRootControllerImpl { attemptSelectionImpl = { [weak controller] peer in controller?.inProgress = true - let _ = (ChatHistoryImport.checkPeerImport(account: context.account, peerId: peer.id) + let _ = (context.engine.historyImport.checkPeerImport(peerId: peer.id) |> deliverOnMainQueue).start(next: { result in controller?.inProgress = false diff --git a/submodules/TelegramVoip/Sources/OngoingCallContext.swift b/submodules/TelegramVoip/Sources/OngoingCallContext.swift index 111e3dea81..d02f3014a6 100644 --- a/submodules/TelegramVoip/Sources/OngoingCallContext.swift +++ b/submodules/TelegramVoip/Sources/OngoingCallContext.swift @@ -904,7 +904,7 @@ public final class OngoingCallContext { if let callId = callId, !statsLogPath.isEmpty, let data = try? Data(contentsOf: URL(fileURLWithPath: statsLogPath)), let dataString = String(data: data, encoding: .utf8) { debugLogValue.set(.single(dataString)) if sendDebugLogs { - let _ = saveCallDebugLog(network: self.account.network, callId: callId, log: dataString).start() + let _ = TelegramEngine(account: self.account).calls.saveCallDebugLog(callId: callId, log: dataString).start() } } } diff --git a/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h b/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h index 5358bf382e..c83010f703 100644 --- a/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h +++ b/submodules/TgVoipWebrtc/PublicHeaders/TgVoipWebrtc/OngoingCallThreadLocalContext.h @@ -105,6 +105,8 @@ typedef NS_ENUM(int32_t, OngoingCallDataSavingWebrtc) { #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) - (void)setVideoContentMode:(CALayerContentsGravity _Nonnull )mode; - (void)setForceMirrored:(bool)forceMirrored; +- (void)setIsPaused:(bool)paused; +- (void)renderToSize:(NSSize)size animated: (bool)animated; #endif @end diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index f6251ca48d..76d781c09c 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit f6251ca48df94296d63272ee9b155eec2d7964b2 +Subproject commit 76d781c09cd4d827e417a56cc7bc39b0d2217e78 diff --git a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift index d56763ddfd..1796fe97d7 100644 --- a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift +++ b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift @@ -843,7 +843,7 @@ final class WatchPeerSettingsHandler: WatchRequestHandler { if let args = subscription as? TGBridgePeerUpdateNotificationSettingsSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { signal = togglePeerMuted(account: context.account, peerId: peerId) } else if let args = subscription as? TGBridgePeerUpdateBlockStatusSubscription, let peerId = makePeerIdFromBridgeIdentifier(args.peerId) { - signal = requestUpdatePeerIsBlocked(account: context.account, peerId: peerId, isBlocked: args.blocked) + signal = context.engine.privacy.requestUpdatePeerIsBlocked(peerId: peerId, isBlocked: args.blocked) } if let signal = signal { diff --git a/third-party/libvpx/libvpx b/third-party/libvpx/libvpx index 3a38edea2c..002f14078f 160000 --- a/third-party/libvpx/libvpx +++ b/third-party/libvpx/libvpx @@ -1 +1 @@ -Subproject commit 3a38edea2cd114d53914cab017cab2e43a600031 +Subproject commit 002f14078ff6aa1f0c1548aa1902b3af9d42087e