From 1cfbc5b7cdc6d7bd8ee4ea7bcf4fcdf10be03955 Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Tue, 2 Jul 2024 19:58:37 +0300 Subject: [PATCH 01/56] Version 10.13 --- .github/workflows/build.yml | 4 +- .gitignore | 2 + .gitmodules | 5 +- README.md | 17 +- Swiftgram/AppleStyleFolders/BUILD | 9 + .../AppleStyleFolders/Sources/File.swift | 1034 +++++++++++ Swiftgram/ChatControllerImplExtension/BUILD | 9 + .../Sources/ChatControllerImplExtension.swift | 225 +++ Swiftgram/FLEX/BUILD | 0 Swiftgram/FLEX/FLEX.BUILD | 68 + Swiftgram/SFSafariViewControllerPlus/BUILD | 17 + .../Sources/SFSafariViewControllerPlus.swift | 14 + Swiftgram/SGAPI/BUILD | 25 + Swiftgram/SGAPI/Sources/SGAPI.swift | 145 ++ Swiftgram/SGAPIToken/BUILD | 24 + Swiftgram/SGAPIToken/Sources/SGAPIToken.swift | 133 ++ Swiftgram/SGAPIWebSettings/BUILD | 23 + Swiftgram/SGAPIWebSettings/Sources/File.swift | 49 + .../SGActionRequestHandlerSanitizer/BUILD | 17 + .../Sources/File.swift | 15 + Swiftgram/SGConfig/BUILD | 18 + Swiftgram/SGConfig/Sources/File.swift | 20 + Swiftgram/SGContentAnalysis/BUILD | 18 + .../Sources/ContentAnalysis.swift | 64 + Swiftgram/SGDBReset/BUILD | 9 + Swiftgram/SGDBReset/Sources/File.swift | 47 + Swiftgram/SGDebugUI/BUILD | 46 + Swiftgram/SGDebugUI/Sources/SGDebugUI.swift | 105 ++ Swiftgram/SGDeviceToken/BUILD | 18 + Swiftgram/SGDeviceToken/Sources/File.swift | 31 + Swiftgram/SGDoubleTapMessageAction/BUILD | 9 + .../Sources/SGDoubleTapMessageAction.swift | 13 + Swiftgram/SGEmojiKeyboardDefaultFirst/BUILD | 9 + .../Sources/SGEmojiKeyboardDefaultFirst.swift | 23 + Swiftgram/SGItemListUI/BUILD | 30 + .../SGItemListUI/Sources/SGItemListUI.swift | 211 +++ .../Sources/SliderPercentageItem.swift | 353 ++++ Swiftgram/SGLogging/BUILD | 19 + Swiftgram/SGLogging/Sources/SGLogger.swift | 236 +++ Swiftgram/SGLogging/Sources/Utils.swift | 6 + Swiftgram/SGRegDate/BUILD | 27 + Swiftgram/SGRegDate/Sources/SGRegDate.swift | 45 + Swiftgram/SGRegDateScheme/BUILD | 17 + Swiftgram/SGRegDateScheme/Sources/File.swift | 7 + Swiftgram/SGRequests/BUILD | 18 + Swiftgram/SGRequests/Sources/File.swift | 72 + Swiftgram/SGSettingsBundle/BUILD | 10 + .../Settings.bundle/Root.plist | 29 + .../Settings.bundle/en.lproj/Root.strings | 5 + .../Settings.bundle/ru.lproj/Root.strings | 3 + Swiftgram/SGSettingsUI/BUILD | 42 + .../Images.xcassets/Contents.json | 6 + .../SaveToCloud.imageset/Contents.json | 12 + .../ic_lt_savetocloud.pdf | Bin 0 -> 6150 bytes .../Contents.json | 12 + .../swiftgram_context_menu.pdf | Bin 0 -> 1342 bytes .../SwiftgramSettings.imageset/Contents.json | 13 + .../SwiftgramSettings.imageset/Swiftgram.pdf | Bin 0 -> 7049 bytes .../Sources/SGSettingsController.swift | 636 +++++++ Swiftgram/SGShowMessageJson/BUILD | 9 + .../Sources/SGShowMessageJson.swift | 76 + Swiftgram/SGSimpleSettings/BUILD | 17 + .../Sources/AtomicWrapper.swift | 58 + .../SGSimpleSettings/Sources/RWLock.swift | 36 + .../Sources/SimpleSettings.swift | 394 ++++ .../Sources/UserDefaultsWrapper.swift | 406 ++++ Swiftgram/SGStrings/BUILD | 27 + .../Sources/LocalizationManager.swift | 121 ++ .../Strings/af.lproj/SGLocalizable.strings | 128 ++ .../Strings/ar.lproj/SGLocalizable.strings | 128 ++ .../Strings/ca.lproj/SGLocalizable.strings | 128 ++ .../Strings/cs.lproj/SGLocalizable.strings | 128 ++ .../Strings/da.lproj/SGLocalizable.strings | 128 ++ .../Strings/de.lproj/SGLocalizable.strings | 128 ++ .../Strings/el.lproj/SGLocalizable.strings | 128 ++ .../Strings/en.lproj/SGLocalizable.strings | 134 ++ .../Strings/es.lproj/SGLocalizable.strings | 134 ++ .../Strings/fa.lproj/SGLocalizable.strings | 9 + .../Strings/fi.lproj/SGLocalizable.strings | 128 ++ .../Strings/fr.lproj/SGLocalizable.strings | 128 ++ .../Strings/he.lproj/SGLocalizable.strings | 128 ++ .../Strings/hi.lproj/SGLocalizable.strings | 128 ++ .../Strings/hu.lproj/SGLocalizable.strings | 128 ++ .../Strings/id.lproj/SGLocalizable.strings | 128 ++ .../Strings/it.lproj/SGLocalizable.strings | 128 ++ .../Strings/ja.lproj/SGLocalizable.strings | 129 ++ .../Strings/km.lproj/SGLocalizable.strings | 8 + .../Strings/ko.lproj/SGLocalizable.strings | 128 ++ .../Strings/ku.lproj/SGLocalizable.strings | 10 + .../Strings/nl.lproj/SGLocalizable.strings | 128 ++ .../Strings/no.lproj/SGLocalizable.strings | 128 ++ .../Strings/pl.lproj/SGLocalizable.strings | 128 ++ .../Strings/pt.lproj/SGLocalizable.strings | 128 ++ .../Strings/ro.lproj/SGLocalizable.strings | 128 ++ .../Strings/ru.lproj/SGLocalizable.strings | 134 ++ .../Strings/si.lproj/SGLocalizable.strings | 2 + .../Strings/sk.lproj/SGLocalizable.strings | 4 + .../Strings/sr.lproj/SGLocalizable.strings | 128 ++ .../Strings/sv.lproj/SGLocalizable.strings | 128 ++ .../Strings/tr.lproj/SGLocalizable.strings | 128 ++ .../Strings/uk.lproj/SGLocalizable.strings | 134 ++ .../Strings/uz.lproj/SGLocalizable.strings | 128 ++ .../Strings/vi.lproj/SGLocalizable.strings | 128 ++ .../zh-hans.lproj/SGLocalizable.strings | 134 ++ .../zh-hant.lproj/SGLocalizable.strings | 128 ++ Swiftgram/SGTranslationLangFix/BUILD | 17 + .../Sources/SGTranslationLangFix.swift | 7 + Swiftgram/SGWebAppExtensions/BUILD | 17 + .../Sources/LocationHashParser.swift | 58 + Swiftgram/SGWebSettings/BUILD | 17 + Swiftgram/SGWebSettings/Sources/File.swift | 0 Swiftgram/SGWebSettingsScheme/BUILD | 17 + .../SGWebSettingsScheme/Sources/File.swift | 50 + Swiftgram/SwiftSoup/BUILD | 17 + Swiftgram/SwiftSoup/Sources/ArrayExt.swift | 21 + Swiftgram/SwiftSoup/Sources/Attribute.swift | 148 ++ Swiftgram/SwiftSoup/Sources/Attributes.swift | 235 +++ .../SwiftSoup/Sources/BinarySearch.swift | 95 + .../SwiftSoup/Sources/BooleanAttribute.swift | 26 + .../SwiftSoup/Sources/CharacterExt.swift | 81 + .../SwiftSoup/Sources/CharacterReader.swift | 320 ++++ Swiftgram/SwiftSoup/Sources/Cleaner.swift | 151 ++ Swiftgram/SwiftSoup/Sources/Collector.swift | 59 + .../Sources/CombiningEvaluator.swift | 127 ++ Swiftgram/SwiftSoup/Sources/Comment.swift | 66 + Swiftgram/SwiftSoup/Sources/Connection.swift | 10 + Swiftgram/SwiftSoup/Sources/CssSelector.swift | 166 ++ Swiftgram/SwiftSoup/Sources/DataNode.swift | 85 + Swiftgram/SwiftSoup/Sources/DataUtil.swift | 24 + Swiftgram/SwiftSoup/Sources/Document.swift | 562 ++++++ .../SwiftSoup/Sources/DocumentType.swift | 129 ++ Swiftgram/SwiftSoup/Sources/Element.swift | 1316 +++++++++++++ Swiftgram/SwiftSoup/Sources/Elements.swift | 657 +++++++ Swiftgram/SwiftSoup/Sources/Entities.swift | 338 ++++ Swiftgram/SwiftSoup/Sources/Evaluator.swift | 720 ++++++++ Swiftgram/SwiftSoup/Sources/Exception.swift | 22 + Swiftgram/SwiftSoup/Sources/FormElement.swift | 125 ++ .../SwiftSoup/Sources/HtmlTreeBuilder.swift | 781 ++++++++ .../Sources/HtmlTreeBuilderState.swift | 1585 ++++++++++++++++ .../Sources/HttpStatusException.swift | 10 + Swiftgram/SwiftSoup/Sources/Info.plist | 26 + Swiftgram/SwiftSoup/Sources/InfoMac.plist | 26 + Swiftgram/SwiftSoup/Sources/InfoWatchOS.plist | 26 + Swiftgram/SwiftSoup/Sources/InfotvOS.plist | 26 + Swiftgram/SwiftSoup/Sources/Mutex.swift | 53 + Swiftgram/SwiftSoup/Sources/Node.swift | 808 ++++++++ .../SwiftSoup/Sources/NodeTraversor.swift | 51 + Swiftgram/SwiftSoup/Sources/NodeVisitor.swift | 37 + Swiftgram/SwiftSoup/Sources/OrderedSet.swift | 453 +++++ Swiftgram/SwiftSoup/Sources/ParseError.swift | 42 + .../SwiftSoup/Sources/ParseErrorList.swift | 52 + .../SwiftSoup/Sources/ParseSettings.swift | 57 + Swiftgram/SwiftSoup/Sources/Parser.swift | 201 ++ Swiftgram/SwiftSoup/Sources/Pattern.swift | 84 + Swiftgram/SwiftSoup/Sources/QueryParser.swift | 322 ++++ .../Sources/SerializationException.swift | 10 + .../SwiftSoup/Sources/SimpleDictionary.swift | 39 + .../SwiftSoup/Sources/StreamReader.swift | 89 + Swiftgram/SwiftSoup/Sources/String.swift | 218 +++ .../SwiftSoup/Sources/StringBuilder.swift | 163 ++ Swiftgram/SwiftSoup/Sources/StringUtil.swift | 249 +++ .../Sources/StructuralEvaluator.swift | 174 ++ Swiftgram/SwiftSoup/Sources/SwiftSoup.h | 10 + Swiftgram/SwiftSoup/Sources/SwiftSoup.swift | 242 +++ Swiftgram/SwiftSoup/Sources/Tag.swift | 347 ++++ Swiftgram/SwiftSoup/Sources/TextNode.swift | 199 ++ Swiftgram/SwiftSoup/Sources/Token.swift | 396 ++++ Swiftgram/SwiftSoup/Sources/TokenQueue.swift | 429 +++++ Swiftgram/SwiftSoup/Sources/Tokeniser.swift | 303 +++ .../SwiftSoup/Sources/TokeniserState.swift | 1644 +++++++++++++++++ Swiftgram/SwiftSoup/Sources/TreeBuilder.swift | 98 + Swiftgram/SwiftSoup/Sources/UnfairLock.swift | 38 + .../SwiftSoup/Sources/UnicodeScalar.swift | 67 + Swiftgram/SwiftSoup/Sources/Validate.swift | 133 ++ Swiftgram/SwiftSoup/Sources/Whitelist.swift | 650 +++++++ .../SwiftSoup/Sources/XmlDeclaration.swift | 77 + .../SwiftSoup/Sources/XmlTreeBuilder.swift | 146 ++ Swiftgram/Wrap/BUILD | 17 + Swiftgram/Wrap/Sources/Wrap.swift | 568 ++++++ Telegram/BUILD | 236 ++- .../Sources/NotificationService.swift | 87 +- Telegram/SGActionRequestHandler/Action.js | 21 + .../Media.xcassets/Contents.json | 6 + .../TouchBarBezel.colorset/Contents.json | 14 + .../SGActionRequestHandler.swift | 62 + .../BlackFilledIcon.appiconset/Contents.json | 115 -- .../Icon4@120x120-1.png | Bin 4376 -> 0 bytes .../Icon4@120x120.png | Bin 4376 -> 0 bytes .../Icon4@152x152.png | Bin 5622 -> 0 bytes .../Icon4@167x167.png | Bin 6168 -> 0 bytes .../Icon4@180x180.png | Bin 6569 -> 0 bytes .../Icon4@20x20.png | Bin 555 -> 0 bytes .../Icon4@29x29.png | Bin 831 -> 0 bytes .../Icon4@40x40-1.png | Bin 1315 -> 0 bytes .../Icon4@40x40-2.png | Bin 1315 -> 0 bytes .../Icon4@40x40.png | Bin 1315 -> 0 bytes .../Icon4@58x58-2.png | Bin 1954 -> 0 bytes .../Icon4@58x58.png | Bin 1954 -> 0 bytes .../Icon4@60x60.png | Bin 2060 -> 0 bytes .../Icon4@76x76.png | Bin 2663 -> 0 bytes .../Icon4@80x80-1.png | Bin 2866 -> 0 bytes .../Icon4@80x80.png | Bin 2866 -> 0 bytes .../Icon4@87x87.png | Bin 3102 -> 0 bytes .../BlackIcon.appiconset/Contents.json | 115 -- .../BlackIcon.appiconset/Icon2@120x120-1.png | Bin 4807 -> 0 bytes .../BlackIcon.appiconset/Icon2@120x120.png | Bin 4807 -> 0 bytes .../BlackIcon.appiconset/Icon2@152x152.png | Bin 6383 -> 0 bytes .../BlackIcon.appiconset/Icon2@167x167.png | Bin 7046 -> 0 bytes .../BlackIcon.appiconset/Icon2@180x180.png | Bin 7555 -> 0 bytes .../BlackIcon.appiconset/Icon2@20x20.png | Bin 592 -> 0 bytes .../BlackIcon.appiconset/Icon2@29x29.png | Bin 929 -> 0 bytes .../BlackIcon.appiconset/Icon2@40x40-1.png | Bin 1361 -> 0 bytes .../BlackIcon.appiconset/Icon2@40x40-2.png | Bin 1361 -> 0 bytes .../BlackIcon.appiconset/Icon2@40x40.png | Bin 1361 -> 0 bytes .../BlackIcon.appiconset/Icon2@58x58-1.png | Bin 2039 -> 0 bytes .../BlackIcon.appiconset/Icon2@58x58.png | Bin 2039 -> 0 bytes .../BlackIcon.appiconset/Icon2@60x60.png | Bin 2142 -> 0 bytes .../BlackIcon.appiconset/Icon2@76x76.png | Bin 2957 -> 0 bytes .../BlackIcon.appiconset/Icon2@80x80-1.png | Bin 3105 -> 0 bytes .../BlackIcon.appiconset/Icon2@80x80.png | Bin 3105 -> 0 bytes .../BlackIcon.appiconset/Icon2@87x87.png | Bin 3404 -> 0 bytes .../BlueFilledIcon.appiconset/Contents.json | 115 -- .../Icon3@120x120-1.png | Bin 4187 -> 0 bytes .../Icon3@120x120.png | Bin 4187 -> 0 bytes .../Icon3@152x152.png | Bin 5279 -> 0 bytes .../Icon3@167x167.png | Bin 5790 -> 0 bytes .../Icon3@180x180.png | Bin 6257 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@20x20.png | Bin 549 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@29x29.png | Bin 802 -> 0 bytes .../Icon3@40x40-1.png | Bin 1284 -> 0 bytes .../Icon3@40x40-2.png | Bin 1284 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@40x40.png | Bin 1284 -> 0 bytes .../Icon3@58x58-1.png | Bin 1920 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@58x58.png | Bin 1920 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@60x60.png | Bin 1747 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@76x76.png | Bin 2199 -> 0 bytes .../Icon3@80x80-1.png | Bin 2759 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@80x80.png | Bin 2759 -> 0 bytes .../BlueFilledIcon.appiconset/Icon3@87x87.png | Bin 2929 -> 0 bytes .../BlueIcon.appiconset/Contents.json | 115 -- .../BlueIcon.appiconset/Icon1@120x120-1.png | Bin 4612 -> 0 bytes .../BlueIcon.appiconset/Icon1@120x120.png | Bin 4612 -> 0 bytes .../BlueIcon.appiconset/Icon1@152x152.png | Bin 5983 -> 0 bytes .../BlueIcon.appiconset/Icon1@167x167.png | Bin 6625 -> 0 bytes .../BlueIcon.appiconset/Icon1@180x180.png | Bin 7167 -> 0 bytes .../BlueIcon.appiconset/Icon1@20x20.png | Bin 597 -> 0 bytes .../BlueIcon.appiconset/Icon1@29x29.png | Bin 925 -> 0 bytes .../BlueIcon.appiconset/Icon1@40x40-1.png | Bin 1333 -> 0 bytes .../BlueIcon.appiconset/Icon1@40x40-2.png | Bin 1333 -> 0 bytes .../BlueIcon.appiconset/Icon1@40x40.png | Bin 1333 -> 0 bytes .../BlueIcon.appiconset/Icon1@58x58-1.png | Bin 1972 -> 0 bytes .../BlueIcon.appiconset/Icon1@58x58.png | Bin 1972 -> 0 bytes .../BlueIcon.appiconset/Icon1@60x60.png | Bin 2047 -> 0 bytes .../BlueIcon.appiconset/Icon1@76x76.png | Bin 2849 -> 0 bytes .../BlueIcon.appiconset/Icon1@80x80-1.png | Bin 2994 -> 0 bytes .../BlueIcon.appiconset/Icon1@80x80.png | Bin 2994 -> 0 bytes .../BlueIcon.appiconset/Icon1@87x87.png | Bin 3208 -> 0 bytes .../AppIcons.xcassets/Contents.json | 6 - .../BlackClassicIcon@2x.png | Bin 5170 -> 0 bytes .../BlackClassicIcon@3x.png | Bin 8288 -> 0 bytes .../BlackClassicIconIpad.png | Bin 3144 -> 0 bytes .../BlackClassicIconIpad@2x.png | Bin 6970 -> 0 bytes .../BlackClassicIconLargeIpad@2x.png | Bin 7721 -> 0 bytes .../BlackClassicNotificationIcon.png | Bin 737 -> 0 bytes .../BlackClassicNotificationIcon@2x.png | Bin 2172 -> 0 bytes .../BlackClassicNotificationIcon@3x.png | Bin 4032 -> 0 bytes .../BlackFilledIcon@2x.png | Bin 4383 -> 0 bytes .../BlackFilledIcon@3x.png | Bin 6564 -> 0 bytes .../BlackFilledIconIpad.png | Bin 2498 -> 0 bytes .../BlackFilledIconIpad@2x.png | Bin 13622 -> 0 bytes .../BlackFilledIconLargeIpad@2x.png | Bin 6168 -> 0 bytes .../BlackIcon.alticon/BlackIcon@2x.png | Bin 4807 -> 0 bytes .../BlackIcon.alticon/BlackIcon@3x.png | Bin 7555 -> 0 bytes .../BlackIcon.alticon/BlackIconIpad.png | Bin 2957 -> 0 bytes .../BlackIcon.alticon/BlackIconIpad@2x.png | Bin 6383 -> 0 bytes .../BlackIconLargeIpad@2x.png | Bin 7046 -> 0 bytes .../BlackNotificationIcon.png | Bin 749 -> 0 bytes .../BlackNotificationIcon@2x.png | Bin 2116 -> 0 bytes .../BlackNotificationIcon@3x.png | Bin 3946 -> 0 bytes .../BlueClassicIcon@2x.png | Bin 4139 -> 0 bytes .../BlueClassicIcon@3x.png | Bin 6484 -> 0 bytes .../BlueClassicIconIpad.png | Bin 2535 -> 0 bytes .../BlueClassicIconIpad@2x.png | Bin 5318 -> 0 bytes .../BlueClassicIconLargeIpad@2x.png | Bin 6070 -> 0 bytes .../BlueClassicNotificationIcon.png | Bin 715 -> 0 bytes .../BlueClassicNotificationIcon@2x.png | Bin 1840 -> 0 bytes .../BlueClassicNotificationIcon@3x.png | Bin 3292 -> 0 bytes .../BlueFilledIcon@2x.png | Bin 3663 -> 0 bytes .../BlueFilledIcon@3x.png | Bin 5454 -> 0 bytes .../BlueFilledIconIpad.png | Bin 2199 -> 0 bytes .../BlueFilledIconIpad@2x.png | Bin 5279 -> 0 bytes .../BlueFilledIconLargeIpad@2x.png | Bin 5790 -> 0 bytes .../BlueIcon.alticon/BlueIcon@2x.png | Bin 3871 -> 0 bytes .../BlueIcon.alticon/BlueIcon@3x.png | Bin 6013 -> 0 bytes .../BlueIcon.alticon/BlueIconIpad.png | Bin 2382 -> 0 bytes .../BlueIcon.alticon/BlueIconIpad@2x.png | Bin 4939 -> 0 bytes .../BlueIcon.alticon/BlueIconLargeIpad@2x.png | Bin 5604 -> 0 bytes .../BlueIcon.alticon/BlueNotificationIcon.png | Bin 665 -> 0 bytes .../BlueNotificationIcon@2x.png | Bin 1781 -> 0 bytes .../BlueNotificationIcon@3x.png | Bin 3428 -> 0 bytes .../AppIconLLC.appiconset/BlueIcon@2x-1.png | Bin 7776 -> 0 bytes .../AppIconLLC.appiconset/BlueIcon@2x.png | Bin 3871 -> 0 bytes .../AppIconLLC.appiconset/BlueIcon@3x.png | Bin 6013 -> 0 bytes .../AppIconLLC.appiconset/BlueIconIpad@2x.png | Bin 10649 -> 0 bytes .../BlueIconLargeIpad@2x.png | Bin 5604 -> 0 bytes .../BlueNotificationIcon.png | Bin 665 -> 0 bytes .../BlueNotificationIcon@2x-1.png | Bin 1781 -> 0 bytes .../BlueNotificationIcon@2x.png | Bin 1781 -> 0 bytes .../BlueNotificationIcon@3x.png | Bin 3428 -> 0 bytes .../AppIconLLC.appiconset/Contents.json | 107 +- .../Simple-iTunesArtwork.png | Bin 162976 -> 0 bytes .../AppIconLLC.appiconset/Simple@29x29.png | Bin 1202 -> 0 bytes .../AppIconLLC.appiconset/Simple@40x40-1.png | Bin 1840 -> 0 bytes .../AppIconLLC.appiconset/Simple@58x58-1.png | Bin 2993 -> 0 bytes .../AppIconLLC.appiconset/Simple@58x58.png | Bin 2993 -> 0 bytes .../AppIconLLC.appiconset/Simple@80x80-1.png | Bin 4568 -> 0 bytes .../AppIconLLC.appiconset/Simple@80x80.png | Bin 4568 -> 0 bytes .../AppIconLLC.appiconset/Simple@87x87.png | Bin 5071 -> 0 bytes .../AppIconLLC.appiconset/Swiftgram.png | Bin 0 -> 587747 bytes .../DefaultAppIcon.xcassets/Contents.json | 6 +- Telegram/Telegram-iOS/IconDefault-60@2x.png | Bin 4612 -> 0 bytes Telegram/Telegram-iOS/IconDefault-60@3x.png | Bin 7167 -> 0 bytes Telegram/Telegram-iOS/IconDefault-76.png | Bin 2849 -> 0 bytes Telegram/Telegram-iOS/IconDefault-76@2x.png | Bin 5983 -> 0 bytes Telegram/Telegram-iOS/IconDefault-83.5@2x.png | Bin 6625 -> 0 bytes .../Telegram-iOS/IconDefault-Small-40.png | Bin 1333 -> 0 bytes .../Telegram-iOS/IconDefault-Small-40@2x.png | Bin 2994 -> 0 bytes .../Telegram-iOS/IconDefault-Small-40@3x.png | Bin 4612 -> 0 bytes Telegram/Telegram-iOS/IconDefault-Small.png | Bin 925 -> 0 bytes .../Telegram-iOS/IconDefault-Small@2x.png | Bin 1972 -> 0 bytes .../Telegram-iOS/IconDefault-Small@3x.png | Bin 3208 -> 0 bytes .../Telegram-iOS/New1.alticon/New1-76.png | Bin 4665 -> 0 bytes .../Telegram-iOS/New1.alticon/New1-76@2x.png | Bin 12770 -> 0 bytes .../New1.alticon/New1-83.5@2x.png | Bin 14404 -> 0 bytes .../Telegram-iOS/New1.alticon/New1@2x.png | Bin 8737 -> 0 bytes .../Telegram-iOS/New1.alticon/New1@3x.png | Bin 16247 -> 0 bytes .../Telegram-iOS/New1.alticon/New1_29x29.png | Bin 1411 -> 0 bytes .../Telegram-iOS/New1.alticon/New1_58x58.png | Bin 3246 -> 0 bytes .../Telegram-iOS/New1.alticon/New1_80x80.png | Bin 5048 -> 0 bytes .../Telegram-iOS/New1.alticon/New1_87x87.png | Bin 5670 -> 0 bytes .../New1.alticon/New1_notification.png | Bin 889 -> 0 bytes .../New1.alticon/New1_notification@2x.png | Bin 2081 -> 0 bytes .../New1.alticon/New1_notification@3x.png | Bin 3422 -> 0 bytes .../Telegram-iOS/New2.alticon/New2-76.png | Bin 4835 -> 0 bytes .../Telegram-iOS/New2.alticon/New2-76@2x.png | Bin 13454 -> 0 bytes .../New2.alticon/New2-83.5@2x.png | Bin 15384 -> 0 bytes .../New2.alticon/New2-Small-40.png | Bin 2094 -> 0 bytes .../New2.alticon/New2-Small-40@2x.png | Bin 5181 -> 0 bytes .../Telegram-iOS/New2.alticon/New2-Small.png | Bin 1467 -> 0 bytes .../New2.alticon/New2-Small@2x.png | Bin 3364 -> 0 bytes .../New2.alticon/New2-Small@3x.png | Bin 5914 -> 0 bytes .../Telegram-iOS/New2.alticon/New2@2x.png | Bin 9143 -> 0 bytes .../Telegram-iOS/New2.alticon/New2@3x.png | Bin 17358 -> 0 bytes .../New2.alticon/New2_notification.png | Bin 917 -> 0 bytes .../New2.alticon/New2_notification@3x.png | Bin 3543 -> 0 bytes .../Premium.alticon/Premium@2x.png | Bin 6639 -> 0 bytes .../Premium.alticon/Premium@3x.png | Bin 10965 -> 0 bytes .../PremiumBlack.alticon/PremiumBlack@2x.png | Bin 9767 -> 0 bytes .../PremiumBlack.alticon/PremiumBlack@3x.png | Bin 18173 -> 0 bytes .../PremiumTurbo.alticon/PremiumTurbo@2x.png | Bin 8740 -> 0 bytes .../PremiumTurbo.alticon/PremiumTurbo@3x.png | Bin 16405 -> 0 bytes .../Resources/intro/telegram_plane1@2x.png | Bin 1248 -> 2416 bytes .../Resources/intro/telegram_sphere@2x.png | Bin 7872 -> 82336 bytes .../Telegram-iOS/SGBeta.alticon/SGBeta@2x.png | Bin 0 -> 19450 bytes .../Telegram-iOS/SGBeta.alticon/SGBeta@3x.png | Bin 0 -> 39304 bytes .../SGBlack.alticon/SGBlack@2x.png | Bin 0 -> 9205 bytes .../SGBlack.alticon/SGBlack@3x.png | Bin 0 -> 12096 bytes .../SGDefault.alticon/SGDefault@2x.png | Bin 0 -> 13594 bytes .../SGDefault.alticon/SGDefault@3x.png | Bin 0 -> 28303 bytes .../SGGlass.alticon/SGGlass@2x.png | Bin 0 -> 15866 bytes .../SGGlass.alticon/SGGlass@3x.png | Bin 0 -> 32044 bytes .../SGInverted.alticon/SGInverted@2x.png | Bin 0 -> 3295 bytes .../SGInverted.alticon/SGInverted@3x.png | Bin 0 -> 5882 bytes .../SGLegacy.alticon/SGLegacy@2x.png | Bin 0 -> 14169 bytes .../SGLegacy.alticon/SGLegacy@3x.png | Bin 0 -> 29095 bytes .../Telegram-iOS/SGNeon.alticon/SGNeon@2x.png | Bin 0 -> 15530 bytes .../Telegram-iOS/SGNeon.alticon/SGNeon@3x.png | Bin 0 -> 31269 bytes .../SGNeonBlue.alticon/SGNeonBlue@2x.png | Bin 0 -> 19702 bytes .../SGNeonBlue.alticon/SGNeonBlue@3x.png | Bin 0 -> 39692 bytes .../SGNight.alticon/SGNight@2x.png | Bin 0 -> 15866 bytes .../SGNight.alticon/SGNight@3x.png | Bin 0 -> 32484 bytes .../Telegram-iOS/SGSky.alticon/SGSky@2x.png | Bin 0 -> 14017 bytes .../Telegram-iOS/SGSky.alticon/SGSky@3x.png | Bin 0 -> 28229 bytes .../SGSparkling.alticon/SGSparkling@2x.png | Bin 0 -> 17294 bytes .../SGSparkling.alticon/SGSparkling@3x.png | Bin 0 -> 35001 bytes .../SGTitanium.alticon/SGTitanium@2x.png | Bin 0 -> 10666 bytes .../SGTitanium.alticon/SGTitanium@3x.png | Bin 0 -> 21180 bytes .../SGWhite.alticon/SGWhite@2x.png | Bin 0 -> 2131 bytes .../SGWhite.alticon/SGWhite@3x.png | Bin 0 -> 3887 bytes .../WhiteFilledIcon@2x.png | Bin 9992 -> 0 bytes .../WhiteFilledIcon@3x.png | Bin 12364 -> 0 bytes .../ar.lproj/AppIntentVocabulary.plist | 2 +- .../Telegram-iOS/ar.lproj/InfoPlist.strings | 2 +- .../be.lproj/AppIntentVocabulary.plist | 2 +- .../ca.lproj/AppIntentVocabulary.plist | 2 +- .../de.lproj/AppIntentVocabulary.plist | 2 +- .../en.lproj/AppIntentVocabulary.plist | 2 +- .../Telegram-iOS/en.lproj/InfoPlist.strings | 8 +- .../Telegram-iOS/en.lproj/Localizable.strings | 202 +- .../es.lproj/AppIntentVocabulary.plist | 2 +- .../fa.lproj/AppIntentVocabulary.plist | 2 +- .../fr.lproj/AppIntentVocabulary.plist | 2 +- .../id.lproj/AppIntentVocabulary.plist | 2 +- .../it.lproj/AppIntentVocabulary.plist | 2 +- .../ko.lproj/AppIntentVocabulary.plist | 2 +- .../ms.lproj/AppIntentVocabulary.plist | 2 +- .../nl.lproj/AppIntentVocabulary.plist | 2 +- .../pl.lproj/AppIntentVocabulary.plist | 2 +- .../pt.lproj/AppIntentVocabulary.plist | 2 +- .../ru.lproj/AppIntentVocabulary.plist | 2 +- .../tr.lproj/AppIntentVocabulary.plist | 2 +- .../uk.lproj/AppIntentVocabulary.plist | 2 +- .../uz.lproj/AppIntentVocabulary.plist | 2 +- WORKSPACE | 9 + build-system/Make/BuildConfiguration.py | 13 +- build-system/Make/Make.py | 14 +- build-system/Make/ProjectGeneration.py | 3 +- build-system/bazel-rules/apple_support | 2 +- build-system/bazel-rules/rules_apple | 2 +- build-system/bazel-rules/rules_swift | 2 +- build-system/bazel-rules/rules_xcodeproj | 2 +- ...ate_minimal_development_configuration.json | 5 +- crowdin.yml | 6 + submodules/AccountContext/BUILD | 6 +- .../Sources/AccountContext.swift | 3 + .../Sources/ChatController.swift | 14 + .../Sources/PeerNameColors.swift | 88 +- .../AccountUtils/Sources/AccountUtils.swift | 7 +- submodules/AppLock/Sources/AppLock.swift | 4 +- .../Sources/AttachmentPanel.swift | 4 +- submodules/AuthorizationUI/BUILD | 6 +- .../AuthorizationSequenceController.swift | 11 +- ...rizationSequencePhoneEntryController.swift | 5 + ...tionSequencePhoneEntryControllerNode.swift | 2 +- submodules/BuildConfig/BUILD | 2 + .../PublicHeaders/BuildConfig/BuildConfig.h | 1 + submodules/BuildConfig/Sources/BuildConfig.m | 2 + submodules/Camera/BUILD | 6 +- submodules/Camera/Sources/CameraOutput.swift | 6 + submodules/ChatListUI/BUILD | 13 +- .../Sources/ChatListContainerItemNode.swift | 2 +- .../Sources/ChatListController.swift | 167 +- .../Sources/ChatListControllerNode.swift | 45 +- .../ChatListFilterTabContainerNode.swift | 64 +- .../Sources/Node/ChatListItem.swift | 47 +- .../Sources/Node/ChatListNode.swift | 56 +- .../Sources/Node/ChatListNodeEntries.swift | 1 + .../Sources/Node/ChatListNoticeItem.swift | 6 + .../ChatPanelInterfaceInteraction.swift | 12 +- ...ChatSendMessageActionSheetController.swift | 2 + ...SendMessageActionSheetControllerNode.swift | 1 - .../ChatSendMessageContextScreen.swift | 79 +- ...onSequenceCountrySelectionController.swift | 4 +- .../Sources/CountryList.swift | 2 + submodules/DebugSettingsUI/BUILD | 8 +- .../Sources/DebugController.swift | 51 +- submodules/Display/Source/DeviceMetrics.swift | 3 +- submodules/Display/Source/GenerateImage.swift | 10 +- submodules/Display/Source/WindowContent.swift | 12 +- .../GalleryUI/Sources/GalleryController.swift | 4 + .../Items/ChatDocumentGalleryItem.swift | 6 +- .../Sources/Items/ChatImageGalleryItem.swift | 15 + .../Items/UniversalVideoGalleryItem.swift | 20 +- .../Items/ItemListDisclosureItem.swift | 8 +- .../LegacyComponents/PGPhotoEditorValues.h | 2 +- .../LegacyComponents/TGMediaEditingContext.h | 1 + .../TGMediaPickerGalleryInterfaceView.h | 2 +- .../TGMediaPickerGalleryModel.h | 2 +- .../TGMediaPickerGalleryVideoItemView.h | 3 + .../TGPhotoEditorInterfaceAssets.h | 2 + .../LegacyComponents/TGVideoEditAdjustments.h | 3 + .../TGVideoMessageCaptureController.h | 2 +- .../LegacyComponents/Sources/PGPhotoEditor.h | 1 + .../LegacyComponents/Sources/PGPhotoEditor.m | 5 +- .../Sources/PGPhotoEditorValues.m | 4 +- .../Sources/TGCameraController.m | 4 +- .../Sources/TGMediaAssetsController.m | 6 +- .../TGMediaPickerGalleryInterfaceView.m | 94 +- .../Sources/TGMediaPickerGalleryModel.m | 8 +- .../TGMediaPickerGalleryPhotoItemView.m | 2 +- .../TGMediaPickerGalleryVideoItemView.m | 91 +- .../Sources/TGMediaPickerModernGalleryMixin.m | 2 +- .../Sources/TGMediaVideoConverter.m | 11 +- .../Sources/TGPhotoEditorInterfaceAssets.m | 10 + .../Sources/TGPhotoVideoEditor.m | 4 +- .../Sources/TGVideoEditAdjustments.m | 17 + .../Sources/TGVideoMessageCaptureController.m | 17 +- submodules/LegacyMediaPickerUI/BUILD | 4 + .../Sources/LegacyMediaPickers.swift | 83 +- .../Sources/ListMessageFileItemNode.swift | 2 +- submodules/LocalMediaResources/BUILD | 6 +- .../FetchPhotoLibraryImageResource.swift | 8 +- .../Sources/LocalAudioTranscription.swift | 66 +- .../Sources/LegacyMediaPickerGallery.swift | 4 +- .../Sources/MediaPickerScreen.swift | 3 +- submodules/MediaPlayer/BUILD | 6 +- .../PublicHeaders/MtProtoKit/MTContext.h | 3 +- .../Sources/MTBackupAddressSignals.m | 2 +- submodules/MtProtoKit/Sources/MTContext.m | 3 +- .../MtProtoKit/Sources/MTProxyConnectivity.m | 2 +- .../MtProtoKit/Sources/MTTcpConnection.m | 8 +- .../NotificationMuteSettingsController.swift | 4 + .../Sources/PlatformRestrictionMatching.swift | 36 +- submodules/Postbox/Sources/Postbox.swift | 59 +- submodules/PremiumUI/BUILD | 6 +- .../Sources/PremiumBoostLevelsScreen.swift | 5 +- .../Sources/PremiumBoostScreen.swift | 5 +- .../PremiumUI/Sources/PremiumDemoScreen.swift | 1 + .../PremiumUI/Sources/PremiumGiftScreen.swift | 8 + .../Sources/PremiumIntroScreen.swift | 15 +- .../Sources/ReplaceBoostScreen.swift | 3 +- submodules/RMIntro/Sources/core/animations.c | 8 +- .../ios/Resources/telegram_plane1@2x.png | Bin 1248 -> 2416 bytes .../ios/Resources/telegram_sphere@2x.png | Bin 9153 -> 82336 bytes submodules/SettingsUI/BUILD | 8 +- .../ProxyListSettingsController.swift | 86 +- .../DeleteAccountOptionsController.swift | 21 +- .../LocalizationListControllerNode.swift | 26 +- .../TranslatonSettingsController.swift | 7 +- .../Sources/LogoutOptionsController.swift | 19 +- .../PasscodeOptionsController.swift | 10 +- .../RecentSessionsController.swift | 4 + .../RecentSessionScreen.swift | 23 +- .../Themes/ThemeSettingsAppIconItem.swift | 37 + submodules/ShareController/BUILD | 6 +- .../Sources/ShareController.swift | 2 +- .../Sources/SharePeersContainerNode.swift | 3 +- .../ShareItems/Sources/ShareItems.swift | 2 +- .../ShimmerEffect/Sources/ShimmerEffect.swift | 6 +- submodules/TabBarUI/BUILD | 6 +- .../Sources/TabBarContollerNode.swift | 7 +- .../TabBarUI/Sources/TabBarController.swift | 10 +- submodules/TabBarUI/Sources/TabBarNode.swift | 11 +- submodules/TelegramAudio/BUILD | 6 +- .../Sources/ManagedAudioSession.swift | 5 + .../Sources/CallKitIntegration.swift | 3 +- submodules/TelegramCore/BUILD | 9 +- .../Sources/Account/AccountManager.swift | 2 + .../ApiUtils/StoreMessage_Telegram.swift | 1 + .../Sources/Network/FetchV2.swift | 13 +- .../Sources/Network/MultipartUpload.swift | 4 +- .../Sources/Network/Network.swift | 7 +- .../PendingMessages/EnqueueMessage.swift | 25 +- .../Sources/Settings/ContentSettings.swift | 10 +- .../Sources/State/AppConfiguration.swift | 2 +- .../TelegramCore/Sources/Suggestions.swift | 52 + .../SyncCore/SyncCore_AppConfiguration.swift | 16 +- ...SyncCore_TranslationMessageAttribute.swift | 44 + .../Localization/LocalizationInfo.swift | 13 + .../Messages/SearchMessages.swift | 23 +- .../Messages/TelegramEngineMessages.swift | 17 + .../TelegramEngine/Messages/Translate.swift | 225 ++- .../Peers/ChatListFiltering.swift | 10 +- .../Sources/Utils/PeerUtils.swift | 15 +- .../Resources/PresentationResourceKey.swift | 4 + .../Resources/PresentationResourcesChat.swift | 6 + .../PresentationResourcesSettings.swift | 1 + .../Sources/DateFormat.swift | 29 + .../Sources/Geo.swift | 3 + .../Sources/MessageContentKind.swift | 2 +- submodules/TelegramUI/BUILD | 24 +- .../Sources/AvatarEditorScreen.swift | 3 +- .../ChatMessageAnimatedStickerItemNode.swift | 9 +- .../Chat/ChatMessageBubbleItemNode/BUILD | 14 +- .../Sources/ChatMessageBubbleItemNode.swift | 258 ++- .../Chat/ChatMessageDateAndStatusNode/BUILD | 6 +- .../ChatMessageDateAndStatusNode.swift | 5 +- .../ChatMessageInteractiveFileNode.swift | 10 +- ...atMessageInteractiveInstantVideoNode.swift | 2 + .../ChatMessageInteractiveMediaNode/BUILD | 6 +- .../ChatMessageInteractiveMediaNode.swift | 20 + .../Components/Chat/ChatMessageItemImpl/BUILD | 7 +- .../Sources/ChatMessageItemImpl.swift | 30 + ...atMessageRestrictedBubbleContentNode.swift | 2 +- .../ChatMessageSelectionInputPanelNode.swift | 78 +- .../Sources/ChatMessageShareButton.swift | 4 +- .../Sources/ChatMessageStickerItemNode.swift | 7 +- .../ChatMessageTextBubbleContentNode.swift | 2 +- .../ChatMessageWebpageBubbleContentNode.swift | 3 +- .../Sources/ChatRecentActionsController.swift | 4 +- .../ChatRecentActionsControllerNode.swift | 2 +- .../Sources/ChatControllerInteraction.swift | 4 + .../Sources/ChatEntityKeyboardInputNode.swift | 3 +- .../Components/EntityKeyboard/BUILD | 12 +- .../Sources/EmojiPagerContentComponent.swift | 4 +- .../Sources/EntityKeyboard.swift | 6 + .../LegacyInstantVideoController/BUILD | 6 +- .../LegacyInstantVideoController.swift | 5 +- .../Sources/MediaEditorValues.swift | 5 + .../Components/MediaEditorScreen/BUILD | 6 +- .../Sources/EditStories.swift | 5 +- .../Components/PeerInfo/PeerInfoScreen/BUILD | 26 +- .../PeerInfoScreen/Sources/PeerInfoData.swift | 57 +- .../PeerInfoHeaderNavigationButton.swift | 4 +- ...oHeaderNavigationButtonContainerNode.swift | 16 + .../Sources/PeerInfoHeaderNode.swift | 24 +- .../Sources/PeerInfoScreen.swift | 395 +++- .../Sources/PeerSelectionControllerNode.swift | 4 +- .../Sources/FetchVideoMediaResource.swift | 2 + .../Sources/StorageKeepSizeComponent.swift | 18 +- .../Sources/StorageUsageScreen.swift | 11 +- .../Stories/StoryContainerScreen/BUILD | 7 +- .../Sources/SGStoryWarnComponent.swift | 252 +++ .../Sources/StoryContainerScreen.swift | 95 +- .../StoryItemSetContainerComponent.swift | 1 + .../Components/VideoMessageCameraScreen/BUILD | 6 +- .../Sources/VideoMessageCameraScreen.swift | 6 +- .../AppBadge.imageset/AppBadge@3x.png | Bin 5100 -> 19122 bytes .../TelegramUI/Sources/AppDelegate.swift | 47 +- .../Sources/ApplicationContext.swift | 37 +- .../Chat/ChatControllerLoadDisplayNode.swift | 56 +- .../Chat/ChatControllerMediaRecording.swift | 1 + ...ChatMessageDisplaySendMessageOptions.swift | 47 + .../TelegramUI/Sources/ChatController.swift | 16 +- .../ChatControllerForwardMessages.swift | 16 +- .../Sources/ChatHistoryListNode.swift | 29 +- .../Sources/ChatInterfaceInputContexts.swift | 3 +- .../ChatInterfaceStateContextMenus.swift | 235 ++- .../ChatPinnedMessageTitlePanelNode.swift | 4 +- .../Sources/ChatTextInputPanelNode.swift | 54 +- .../Sources/ChatTranslationPanelNode.swift | 11 +- submodules/TelegramUI/Sources/OpenUrl.swift | 38 +- .../Sources/TelegramRootController.swift | 28 +- .../TransformOutgoingMessageMedia.swift | 4 +- .../Sources/CallListSettings.swift | 24 +- .../Sources/PostboxKeys.swift | 2 + .../Sources/Swiftgram/SGUISettings.swift | 51 + submodules/TranslateUI/BUILD | 6 +- .../TranslateUI/Sources/ChatTranslation.swift | 38 +- .../Sources/LanguageSelectionController.swift | 5 +- .../Sources/LegacyWebSearchGallery.swift | 3 +- submodules/WebUI/BUILD | 8 +- .../WebUI/Sources/WebAppController.swift | 50 +- submodules/WebUI/Sources/WebAppWebView.swift | 22 +- 634 files changed, 30676 insertions(+), 1244 deletions(-) create mode 100644 Swiftgram/AppleStyleFolders/BUILD create mode 100644 Swiftgram/AppleStyleFolders/Sources/File.swift create mode 100644 Swiftgram/ChatControllerImplExtension/BUILD create mode 100644 Swiftgram/ChatControllerImplExtension/Sources/ChatControllerImplExtension.swift create mode 100644 Swiftgram/FLEX/BUILD create mode 100644 Swiftgram/FLEX/FLEX.BUILD create mode 100644 Swiftgram/SFSafariViewControllerPlus/BUILD create mode 100644 Swiftgram/SFSafariViewControllerPlus/Sources/SFSafariViewControllerPlus.swift create mode 100644 Swiftgram/SGAPI/BUILD create mode 100644 Swiftgram/SGAPI/Sources/SGAPI.swift create mode 100644 Swiftgram/SGAPIToken/BUILD create mode 100644 Swiftgram/SGAPIToken/Sources/SGAPIToken.swift create mode 100644 Swiftgram/SGAPIWebSettings/BUILD create mode 100644 Swiftgram/SGAPIWebSettings/Sources/File.swift create mode 100644 Swiftgram/SGActionRequestHandlerSanitizer/BUILD create mode 100644 Swiftgram/SGActionRequestHandlerSanitizer/Sources/File.swift create mode 100644 Swiftgram/SGConfig/BUILD create mode 100644 Swiftgram/SGConfig/Sources/File.swift create mode 100644 Swiftgram/SGContentAnalysis/BUILD create mode 100644 Swiftgram/SGContentAnalysis/Sources/ContentAnalysis.swift create mode 100644 Swiftgram/SGDBReset/BUILD create mode 100644 Swiftgram/SGDBReset/Sources/File.swift create mode 100644 Swiftgram/SGDebugUI/BUILD create mode 100644 Swiftgram/SGDebugUI/Sources/SGDebugUI.swift create mode 100644 Swiftgram/SGDeviceToken/BUILD create mode 100644 Swiftgram/SGDeviceToken/Sources/File.swift create mode 100644 Swiftgram/SGDoubleTapMessageAction/BUILD create mode 100644 Swiftgram/SGDoubleTapMessageAction/Sources/SGDoubleTapMessageAction.swift create mode 100644 Swiftgram/SGEmojiKeyboardDefaultFirst/BUILD create mode 100644 Swiftgram/SGEmojiKeyboardDefaultFirst/Sources/SGEmojiKeyboardDefaultFirst.swift create mode 100644 Swiftgram/SGItemListUI/BUILD create mode 100644 Swiftgram/SGItemListUI/Sources/SGItemListUI.swift create mode 100644 Swiftgram/SGItemListUI/Sources/SliderPercentageItem.swift create mode 100644 Swiftgram/SGLogging/BUILD create mode 100644 Swiftgram/SGLogging/Sources/SGLogger.swift create mode 100644 Swiftgram/SGLogging/Sources/Utils.swift create mode 100644 Swiftgram/SGRegDate/BUILD create mode 100644 Swiftgram/SGRegDate/Sources/SGRegDate.swift create mode 100644 Swiftgram/SGRegDateScheme/BUILD create mode 100644 Swiftgram/SGRegDateScheme/Sources/File.swift create mode 100644 Swiftgram/SGRequests/BUILD create mode 100644 Swiftgram/SGRequests/Sources/File.swift create mode 100644 Swiftgram/SGSettingsBundle/BUILD create mode 100644 Swiftgram/SGSettingsBundle/Settings.bundle/Root.plist create mode 100644 Swiftgram/SGSettingsBundle/Settings.bundle/en.lproj/Root.strings create mode 100644 Swiftgram/SGSettingsBundle/Settings.bundle/ru.lproj/Root.strings create mode 100644 Swiftgram/SGSettingsUI/BUILD create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/Contents.json create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/Contents.json create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/ic_lt_savetocloud.pdf create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/Contents.json create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/swiftgram_context_menu.pdf create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Contents.json create mode 100644 Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Swiftgram.pdf create mode 100644 Swiftgram/SGSettingsUI/Sources/SGSettingsController.swift create mode 100644 Swiftgram/SGShowMessageJson/BUILD create mode 100644 Swiftgram/SGShowMessageJson/Sources/SGShowMessageJson.swift create mode 100644 Swiftgram/SGSimpleSettings/BUILD create mode 100644 Swiftgram/SGSimpleSettings/Sources/AtomicWrapper.swift create mode 100644 Swiftgram/SGSimpleSettings/Sources/RWLock.swift create mode 100644 Swiftgram/SGSimpleSettings/Sources/SimpleSettings.swift create mode 100644 Swiftgram/SGSimpleSettings/Sources/UserDefaultsWrapper.swift create mode 100644 Swiftgram/SGStrings/BUILD create mode 100644 Swiftgram/SGStrings/Sources/LocalizationManager.swift create mode 100644 Swiftgram/SGStrings/Strings/af.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ar.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ca.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/cs.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/da.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/de.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/el.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/en.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/es.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/fa.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/fi.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/fr.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/he.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/hi.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/hu.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/id.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/it.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ja.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/km.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ko.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ku.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/nl.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/no.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/pl.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/pt.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ro.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/ru.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/si.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/sk.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/sr.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/sv.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/tr.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/uk.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/uz.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/vi.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/zh-hans.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGStrings/Strings/zh-hant.lproj/SGLocalizable.strings create mode 100644 Swiftgram/SGTranslationLangFix/BUILD create mode 100644 Swiftgram/SGTranslationLangFix/Sources/SGTranslationLangFix.swift create mode 100644 Swiftgram/SGWebAppExtensions/BUILD create mode 100644 Swiftgram/SGWebAppExtensions/Sources/LocationHashParser.swift create mode 100644 Swiftgram/SGWebSettings/BUILD create mode 100644 Swiftgram/SGWebSettings/Sources/File.swift create mode 100644 Swiftgram/SGWebSettingsScheme/BUILD create mode 100644 Swiftgram/SGWebSettingsScheme/Sources/File.swift create mode 100644 Swiftgram/SwiftSoup/BUILD create mode 100644 Swiftgram/SwiftSoup/Sources/ArrayExt.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Attribute.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Attributes.swift create mode 100644 Swiftgram/SwiftSoup/Sources/BinarySearch.swift create mode 100644 Swiftgram/SwiftSoup/Sources/BooleanAttribute.swift create mode 100644 Swiftgram/SwiftSoup/Sources/CharacterExt.swift create mode 100644 Swiftgram/SwiftSoup/Sources/CharacterReader.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Cleaner.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Collector.swift create mode 100644 Swiftgram/SwiftSoup/Sources/CombiningEvaluator.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Comment.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Connection.swift create mode 100644 Swiftgram/SwiftSoup/Sources/CssSelector.swift create mode 100644 Swiftgram/SwiftSoup/Sources/DataNode.swift create mode 100644 Swiftgram/SwiftSoup/Sources/DataUtil.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Document.swift create mode 100644 Swiftgram/SwiftSoup/Sources/DocumentType.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Element.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Elements.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Entities.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Evaluator.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Exception.swift create mode 100644 Swiftgram/SwiftSoup/Sources/FormElement.swift create mode 100644 Swiftgram/SwiftSoup/Sources/HtmlTreeBuilder.swift create mode 100644 Swiftgram/SwiftSoup/Sources/HtmlTreeBuilderState.swift create mode 100644 Swiftgram/SwiftSoup/Sources/HttpStatusException.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Info.plist create mode 100644 Swiftgram/SwiftSoup/Sources/InfoMac.plist create mode 100644 Swiftgram/SwiftSoup/Sources/InfoWatchOS.plist create mode 100644 Swiftgram/SwiftSoup/Sources/InfotvOS.plist create mode 100644 Swiftgram/SwiftSoup/Sources/Mutex.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Node.swift create mode 100644 Swiftgram/SwiftSoup/Sources/NodeTraversor.swift create mode 100644 Swiftgram/SwiftSoup/Sources/NodeVisitor.swift create mode 100644 Swiftgram/SwiftSoup/Sources/OrderedSet.swift create mode 100644 Swiftgram/SwiftSoup/Sources/ParseError.swift create mode 100644 Swiftgram/SwiftSoup/Sources/ParseErrorList.swift create mode 100644 Swiftgram/SwiftSoup/Sources/ParseSettings.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Parser.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Pattern.swift create mode 100644 Swiftgram/SwiftSoup/Sources/QueryParser.swift create mode 100644 Swiftgram/SwiftSoup/Sources/SerializationException.swift create mode 100644 Swiftgram/SwiftSoup/Sources/SimpleDictionary.swift create mode 100644 Swiftgram/SwiftSoup/Sources/StreamReader.swift create mode 100644 Swiftgram/SwiftSoup/Sources/String.swift create mode 100755 Swiftgram/SwiftSoup/Sources/StringBuilder.swift create mode 100644 Swiftgram/SwiftSoup/Sources/StringUtil.swift create mode 100644 Swiftgram/SwiftSoup/Sources/StructuralEvaluator.swift create mode 100644 Swiftgram/SwiftSoup/Sources/SwiftSoup.h create mode 100644 Swiftgram/SwiftSoup/Sources/SwiftSoup.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Tag.swift create mode 100644 Swiftgram/SwiftSoup/Sources/TextNode.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Token.swift create mode 100644 Swiftgram/SwiftSoup/Sources/TokenQueue.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Tokeniser.swift create mode 100644 Swiftgram/SwiftSoup/Sources/TokeniserState.swift create mode 100644 Swiftgram/SwiftSoup/Sources/TreeBuilder.swift create mode 100644 Swiftgram/SwiftSoup/Sources/UnfairLock.swift create mode 100644 Swiftgram/SwiftSoup/Sources/UnicodeScalar.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Validate.swift create mode 100644 Swiftgram/SwiftSoup/Sources/Whitelist.swift create mode 100644 Swiftgram/SwiftSoup/Sources/XmlDeclaration.swift create mode 100644 Swiftgram/SwiftSoup/Sources/XmlTreeBuilder.swift create mode 100644 Swiftgram/Wrap/BUILD create mode 100644 Swiftgram/Wrap/Sources/Wrap.swift create mode 100644 Telegram/SGActionRequestHandler/Action.js create mode 100644 Telegram/SGActionRequestHandler/Media.xcassets/Contents.json create mode 100644 Telegram/SGActionRequestHandler/Media.xcassets/TouchBarBezel.colorset/Contents.json create mode 100644 Telegram/SGActionRequestHandler/SGActionRequestHandler.swift delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Contents.json delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@120x120-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@120x120.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@152x152.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@167x167.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@180x180.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@20x20.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@29x29.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-2.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@58x58-2.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@58x58.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@60x60.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@76x76.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@80x80-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@80x80.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@87x87.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Contents.json delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@120x120-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@120x120.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@152x152.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@167x167.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@180x180.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@20x20.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@29x29.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40-2.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@60x60.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@76x76.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@87x87.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Contents.json delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@120x120-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@120x120.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@152x152.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@167x167.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@180x180.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@20x20.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@29x29.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@40x40-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@40x40-2.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@40x40.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@58x58-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@58x58.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@60x60.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@76x76.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@87x87.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Contents.json delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@120x120-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@120x120.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@152x152.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@167x167.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@180x180.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@20x20.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@29x29.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40-2.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@58x58-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@58x58.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@60x60.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@76x76.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@80x80-1.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@80x80.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@87x87.png delete mode 100644 Telegram/Telegram-iOS/AppIcons.xcassets/Contents.json delete mode 100755 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIconIpad.png delete mode 100755 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIconIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIconLargeIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicNotificationIcon.png delete mode 100644 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicNotificationIcon@2x.png delete mode 100644 Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicNotificationIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIcon@3x.png delete mode 100644 Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconIpad.png delete mode 100755 Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconLargeIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconIpad.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconLargeIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackNotificationIcon.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackNotificationIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlackIcon.alticon/BlackNotificationIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIconIpad.png delete mode 100755 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIconIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIconLargeIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon.png delete mode 100644 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon@2x.png delete mode 100644 Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIcon@3x.png delete mode 100644 Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconIpad.png delete mode 100644 Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconLargeIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@3x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconLargeIpad@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueNotificationIcon.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueNotificationIcon@2x.png delete mode 100755 Telegram/Telegram-iOS/BlueIcon.alticon/BlueNotificationIcon@3x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@29x29.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80.png delete mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@87x87.png create mode 100644 Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Swiftgram.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-60@2x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-60@3x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-76.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-76@2x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-83.5@2x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small-40.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small-40@2x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small-40@3x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small@2x.png delete mode 100644 Telegram/Telegram-iOS/IconDefault-Small@3x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1-76.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1-76@2x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1-83.5@2x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1@2x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1@3x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_29x29.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_58x58.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_80x80.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_87x87.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_notification.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_notification@2x.png delete mode 100644 Telegram/Telegram-iOS/New1.alticon/New1_notification@3x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-76.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-76@2x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-83.5@2x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-Small-40.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-Small-40@2x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-Small.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-Small@2x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2-Small@3x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2@2x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2@3x.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2_notification.png delete mode 100644 Telegram/Telegram-iOS/New2.alticon/New2_notification@3x.png delete mode 100644 Telegram/Telegram-iOS/Premium.alticon/Premium@2x.png delete mode 100644 Telegram/Telegram-iOS/Premium.alticon/Premium@3x.png delete mode 100644 Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@2x.png delete mode 100644 Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@3x.png delete mode 100644 Telegram/Telegram-iOS/PremiumTurbo.alticon/PremiumTurbo@2x.png delete mode 100644 Telegram/Telegram-iOS/PremiumTurbo.alticon/PremiumTurbo@3x.png create mode 100644 Telegram/Telegram-iOS/SGBeta.alticon/SGBeta@2x.png create mode 100644 Telegram/Telegram-iOS/SGBeta.alticon/SGBeta@3x.png create mode 100644 Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@2x.png create mode 100644 Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@3x.png create mode 100644 Telegram/Telegram-iOS/SGDefault.alticon/SGDefault@2x.png create mode 100644 Telegram/Telegram-iOS/SGDefault.alticon/SGDefault@3x.png create mode 100644 Telegram/Telegram-iOS/SGGlass.alticon/SGGlass@2x.png create mode 100644 Telegram/Telegram-iOS/SGGlass.alticon/SGGlass@3x.png create mode 100644 Telegram/Telegram-iOS/SGInverted.alticon/SGInverted@2x.png create mode 100644 Telegram/Telegram-iOS/SGInverted.alticon/SGInverted@3x.png create mode 100644 Telegram/Telegram-iOS/SGLegacy.alticon/SGLegacy@2x.png create mode 100644 Telegram/Telegram-iOS/SGLegacy.alticon/SGLegacy@3x.png create mode 100644 Telegram/Telegram-iOS/SGNeon.alticon/SGNeon@2x.png create mode 100644 Telegram/Telegram-iOS/SGNeon.alticon/SGNeon@3x.png create mode 100644 Telegram/Telegram-iOS/SGNeonBlue.alticon/SGNeonBlue@2x.png create mode 100644 Telegram/Telegram-iOS/SGNeonBlue.alticon/SGNeonBlue@3x.png create mode 100644 Telegram/Telegram-iOS/SGNight.alticon/SGNight@2x.png create mode 100644 Telegram/Telegram-iOS/SGNight.alticon/SGNight@3x.png create mode 100644 Telegram/Telegram-iOS/SGSky.alticon/SGSky@2x.png create mode 100644 Telegram/Telegram-iOS/SGSky.alticon/SGSky@3x.png create mode 100644 Telegram/Telegram-iOS/SGSparkling.alticon/SGSparkling@2x.png create mode 100644 Telegram/Telegram-iOS/SGSparkling.alticon/SGSparkling@3x.png create mode 100644 Telegram/Telegram-iOS/SGTitanium.alticon/SGTitanium@2x.png create mode 100644 Telegram/Telegram-iOS/SGTitanium.alticon/SGTitanium@3x.png create mode 100644 Telegram/Telegram-iOS/SGWhite.alticon/SGWhite@2x.png create mode 100644 Telegram/Telegram-iOS/SGWhite.alticon/SGWhite@3x.png delete mode 100644 Telegram/Telegram-iOS/WhiteFilledIcon.alticon/WhiteFilledIcon@2x.png delete mode 100644 Telegram/Telegram-iOS/WhiteFilledIcon.alticon/WhiteFilledIcon@3x.png create mode 100644 crowdin.yml delete mode 100644 submodules/ChatSendMessageActionUI/Sources/ChatSendMessageActionSheetControllerNode.swift create mode 100644 submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/SGStoryWarnComponent.swift create mode 100644 submodules/TelegramUIPreferences/Sources/Swiftgram/SGUISettings.swift diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7259ebd7e73..f504b663f71 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,8 @@ name: CI on: - push: - branches: [ master ] + # push: + # branches: [ master ] workflow_dispatch: diff --git a/.gitignore b/.gitignore index a0d74e1226d..bebde020f78 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ xcodeproj.bazelrc build-input/* **/*.pyc *.pyc +submodules/**/.build/* +swiftgram-scripts \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7b06b63b024..d0bdd1b7a67 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,6 @@ - [submodule "submodules/rlottie/rlottie"] path = submodules/rlottie/rlottie - url=../rlottie.git + url=https://github.com/TelegramMessenger/rlottie.git [submodule "build-system/bazel-rules/rules_apple"] path = build-system/bazel-rules/rules_apple url=https://github.com/ali-fareed/rules_apple.git @@ -16,7 +15,7 @@ url=https://github.com/bazelbuild/rules_swift.git url = https://github.com/telegramdesktop/libtgvoip.git [submodule "submodules/TgVoipWebrtc/tgcalls"] path = submodules/TgVoipWebrtc/tgcalls -url=../tgcalls.git +url=https://github.com/TelegramMessenger/tgcalls.git [submodule "third-party/libvpx/libvpx"] path = third-party/libvpx/libvpx url = https://github.com/webmproject/libvpx.git diff --git a/README.md b/README.md index 79f325aa139..1f754271a88 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ +# Swiftgram + +Supercharged Telegram fork for iOS + +[](https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8) + +- Download: [App Store](https://apps.apple.com/app/apple-store/id6471879502?pt=126511626&ct=gh&mt=8) +- Telegram channel: https://t.me/swiftgram +- Telegram chat: https://t.me/swiftgramchat +- TestFlight beta, local chats, translations and other [@SwiftgramLinks](https://t.me/s/SwiftgramLinks) + +Swiftgram's compilation steps are the same as for the official app. Below you'll find a complete compilation guide based on the official app. + # Telegram iOS Source Code Compilation Guide We welcome all developers to use our API and source code to create applications on our platform. @@ -16,7 +29,7 @@ There are several things we require from **all developers** for the moment. ## Get the Code ``` -git clone --recursive -j8 https://github.com/TelegramMessenger/Telegram-iOS.git +git clone --recursive -j8 https://github.com/Swiftgram/Telegram-iOS.git ``` ## Setup Xcode @@ -29,7 +42,7 @@ Install Xcode (directly from https://developer.apple.com/download/applications o ``` openssl rand -hex 8 ``` -2. Create a new Xcode project. Use `Telegram` as the Product Name. Use `org.{identifier from step 1}` as the Organization Identifier. +2. Create a new Xcode project. Use `Swiftgram` as the Product Name. Use `org.{identifier from step 1}` as the Organization Identifier. 3. Open `Keychain Access` and navigate to `Certificates`. Locate `Apple Development: your@email.address (XXXXXXXXXX)` and double tap the certificate. Under `Details`, locate `Organizational Unit`. This is the Team ID. 4. Edit `build-system/template_minimal_development_configuration.json`. Use data from the previous steps. diff --git a/Swiftgram/AppleStyleFolders/BUILD b/Swiftgram/AppleStyleFolders/BUILD new file mode 100644 index 00000000000..0924cf28e86 --- /dev/null +++ b/Swiftgram/AppleStyleFolders/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "AppleStyleFolders", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/AppleStyleFolders/Sources/File.swift b/Swiftgram/AppleStyleFolders/Sources/File.swift new file mode 100644 index 00000000000..ec7a3027174 --- /dev/null +++ b/Swiftgram/AppleStyleFolders/Sources/File.swift @@ -0,0 +1,1034 @@ +import Foundation +import UIKit +import AsyncDisplayKit +import Display +import Postbox +import TelegramCore +import TelegramPresentationData +import SGSimpleSettings + +private final class ItemNodeDeleteButtonNode: HighlightableButtonNode { + private let pressed: () -> Void + + private let contentImageNode: ASImageNode + + private var theme: PresentationTheme? + + init(pressed: @escaping () -> Void) { + self.pressed = pressed + + self.contentImageNode = ASImageNode() + + super.init() + + self.addSubnode(self.contentImageNode) + + self.addTarget(self, action: #selector(self.pressedEvent), forControlEvents: .touchUpInside) + } + + @objc private func pressedEvent() { + self.pressed() + } + + func update(theme: PresentationTheme) -> CGSize { + let size = CGSize(width: 18.0, height: 18.0) + if self.theme !== theme { + self.theme = theme + self.contentImageNode.image = generateImage(size, rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(UIColor(rgb: 0xbbbbbb).cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(), size: size)) + context.setStrokeColor(UIColor(rgb: 0xffffff).cgColor) + context.setLineWidth(1.5) + context.setLineCap(.round) + context.move(to: CGPoint(x: 6.38, y: 6.38)) + context.addLine(to: CGPoint(x: 11.63, y: 11.63)) + context.strokePath() + context.move(to: CGPoint(x: 6.38, y: 11.63)) + context.addLine(to: CGPoint(x: 11.63, y: 6.38)) + context.strokePath() + }) + } + + self.contentImageNode.frame = CGRect(origin: CGPoint(), size: size) + + return size + } +} + +private final class ItemNode: ASDisplayNode { + private let pressed: () -> Void + private let requestedDeletion: () -> Void + + private let extractedContainerNode: ContextExtractedContentContainingNode + private let containerNode: ContextControllerSourceNode + + private let extractedBackgroundNode: ASImageNode + private let titleNode: ImmediateTextNode + private let shortTitleNode: ImmediateTextNode + private let badgeContainerNode: ASDisplayNode + private let badgeTextNode: ImmediateTextNode + private let badgeBackgroundActiveNode: ASImageNode + private let badgeBackgroundInactiveNode: ASImageNode + + private var deleteButtonNode: ItemNodeDeleteButtonNode? + private let buttonNode: HighlightTrackingButtonNode + + private var isSelected: Bool = false + private(set) var unreadCount: Int = 0 + + private var isReordering: Bool = false + + private var theme: PresentationTheme? + + init(pressed: @escaping () -> Void, requestedDeletion: @escaping () -> Void, contextGesture: @escaping (ContextExtractedContentContainingNode, ContextGesture) -> Void) { + self.pressed = pressed + self.requestedDeletion = requestedDeletion + + self.extractedContainerNode = ContextExtractedContentContainingNode() + self.containerNode = ContextControllerSourceNode() + + self.extractedBackgroundNode = ASImageNode() + self.extractedBackgroundNode.alpha = 0.0 + + let titleInset: CGFloat = 4.0 + + self.titleNode = ImmediateTextNode() + self.titleNode.displaysAsynchronously = false + self.titleNode.insets = UIEdgeInsets(top: titleInset, left: 0.0, bottom: titleInset, right: 0.0) + + self.shortTitleNode = ImmediateTextNode() + self.shortTitleNode.displaysAsynchronously = false + self.shortTitleNode.alpha = 0.0 + self.shortTitleNode.insets = UIEdgeInsets(top: titleInset, left: 0.0, bottom: titleInset, right: 0.0) + + self.badgeContainerNode = ASDisplayNode() + + self.badgeTextNode = ImmediateTextNode() + self.badgeTextNode.displaysAsynchronously = false + + self.badgeBackgroundActiveNode = ASImageNode() + self.badgeBackgroundActiveNode.displaysAsynchronously = false + self.badgeBackgroundActiveNode.displayWithoutProcessing = true + + self.badgeBackgroundInactiveNode = ASImageNode() + self.badgeBackgroundInactiveNode.displaysAsynchronously = false + self.badgeBackgroundInactiveNode.displayWithoutProcessing = true + self.badgeBackgroundInactiveNode.isHidden = true + + self.buttonNode = HighlightTrackingButtonNode() + + super.init() + + self.extractedContainerNode.contentNode.addSubnode(self.extractedBackgroundNode) + self.extractedContainerNode.contentNode.addSubnode(self.titleNode) + self.extractedContainerNode.contentNode.addSubnode(self.shortTitleNode) + self.badgeContainerNode.addSubnode(self.badgeBackgroundActiveNode) + self.badgeContainerNode.addSubnode(self.badgeBackgroundInactiveNode) + self.badgeContainerNode.addSubnode(self.badgeTextNode) + self.extractedContainerNode.contentNode.addSubnode(self.badgeContainerNode) + self.extractedContainerNode.contentNode.addSubnode(self.buttonNode) + + self.containerNode.addSubnode(self.extractedContainerNode) + self.containerNode.targetNodeForActivationProgress = self.extractedContainerNode.contentNode + self.addSubnode(self.containerNode) + + self.buttonNode.addTarget(self, action: #selector(self.buttonPressed), forControlEvents: .touchUpInside) + + self.containerNode.activated = { [weak self] gesture, _ in + guard let strongSelf = self else { + return + } + contextGesture(strongSelf.extractedContainerNode, gesture) + } + + self.extractedContainerNode.willUpdateIsExtractedToContextPreview = { [weak self] isExtracted, transition in + guard let strongSelf = self else { + return + } + + if isExtracted { + strongSelf.extractedBackgroundNode.image = generateStretchableFilledCircleImage(diameter: 32.0, color: strongSelf.isSelected ? UIColor(rgb: 0xbbbbbb) : UIColor(rgb: 0xf1f1f1)) + } + transition.updateAlpha(node: strongSelf.extractedBackgroundNode, alpha: isExtracted ? 1.0 : 0.0, completion: { _ in + if !isExtracted { + self?.extractedBackgroundNode.image = nil + } + }) + } + } + + @objc private func buttonPressed() { + self.pressed() + } + + func updateText(title: String, shortTitle: String, unreadCount: Int, unreadHasUnmuted: Bool, isNoFilter: Bool, isSelected: Bool, isEditing: Bool, isAllChats: Bool, isReordering: Bool, presentationData: PresentationData, transition: ContainedViewLayoutTransition) { + if self.theme !== presentationData.theme { + self.theme = presentationData.theme + + self.badgeBackgroundActiveNode.image = generateStretchableFilledCircleImage(diameter: 18.0, color: presentationData.theme.chatList.unreadBadgeActiveBackgroundColor) + self.badgeBackgroundInactiveNode.image = generateStretchableFilledCircleImage(diameter: 18.0, color: presentationData.theme.chatList.unreadBadgeInactiveBackgroundColor) + } + + self.containerNode.isGestureEnabled = !isEditing && !isReordering + self.buttonNode.isUserInteractionEnabled = !isEditing && !isReordering + + self.isSelected = isSelected + self.unreadCount = unreadCount + + transition.updateAlpha(node: self.containerNode, alpha: isReordering && isAllChats ? 0.5 : 1.0) + + if isReordering && !isAllChats { + if self.deleteButtonNode == nil { + let deleteButtonNode = ItemNodeDeleteButtonNode(pressed: { [weak self] in + self?.requestedDeletion() + }) + self.extractedContainerNode.contentNode.addSubnode(deleteButtonNode) + self.deleteButtonNode = deleteButtonNode + if case .animated = transition { + deleteButtonNode.layer.animateScale(from: 0.1, to: 1.0, duration: 0.25) + deleteButtonNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) + } + } + } else if let deleteButtonNode = self.deleteButtonNode { + self.deleteButtonNode = nil + transition.updateTransformScale(node: deleteButtonNode, scale: 0.1) + transition.updateAlpha(node: deleteButtonNode, alpha: 0.0, completion: { [weak deleteButtonNode] _ in + deleteButtonNode?.removeFromSupernode() + }) + } + + transition.updateAlpha(node: self.badgeContainerNode, alpha: (isReordering || unreadCount == 0) ? 0.0 : 1.0) + + self.titleNode.attributedText = NSAttributedString(string: title, font: Font.bold(17.0), textColor: isSelected ? presentationData.theme.contextMenu.badgeForegroundColor : presentationData.theme.list.itemSecondaryTextColor) + self.shortTitleNode.attributedText = NSAttributedString(string: shortTitle, font: Font.bold(17.0), textColor: isSelected ? presentationData.theme.contextMenu.badgeForegroundColor : presentationData.theme.list.itemSecondaryTextColor) + if unreadCount != 0 { + self.badgeTextNode.attributedText = NSAttributedString(string: "\(unreadCount)", font: Font.regular(14.0), textColor: presentationData.theme.list.itemCheckColors.foregroundColor) + self.badgeBackgroundActiveNode.isHidden = !isSelected && !unreadHasUnmuted + self.badgeBackgroundInactiveNode.isHidden = isSelected || unreadHasUnmuted + } + + if self.isReordering != isReordering { + self.isReordering = isReordering + if self.isReordering && !isAllChats { + self.startShaking() + } else { + self.layer.removeAnimation(forKey: "shaking_position") + self.layer.removeAnimation(forKey: "shaking_rotation") + } + } + } + + func updateLayout(height: CGFloat, transition: ContainedViewLayoutTransition) -> (width: CGFloat, shortWidth: CGFloat) { + let titleSize = self.titleNode.updateLayout(CGSize(width: 160.0, height: .greatestFiniteMagnitude)) + self.titleNode.frame = CGRect(origin: CGPoint(x: -self.titleNode.insets.left, y: floor((height - titleSize.height) / 2.0)), size: titleSize) + + let shortTitleSize = self.shortTitleNode.updateLayout(CGSize(width: 160.0, height: .greatestFiniteMagnitude)) + self.shortTitleNode.frame = CGRect(origin: CGPoint(x: -self.shortTitleNode.insets.left, y: floor((height - shortTitleSize.height) / 2.0)), size: shortTitleSize) + + if let deleteButtonNode = self.deleteButtonNode { + if let theme = self.theme { + let deleteButtonSize = deleteButtonNode.update(theme: theme) + deleteButtonNode.frame = CGRect(origin: CGPoint(x: -deleteButtonSize.width + 7.0, y: 5.0), size: deleteButtonSize) + } + } + + let badgeSize = self.badgeTextNode.updateLayout(CGSize(width: 200.0, height: .greatestFiniteMagnitude)) + let badgeInset: CGFloat = 4.0 + let badgeBackgroundFrame = CGRect(origin: CGPoint(x: titleSize.width - self.titleNode.insets.left - self.titleNode.insets.right + 5.0, y: floor((height - 18.0) / 2.0)), size: CGSize(width: max(18.0, badgeSize.width + badgeInset * 2.0), height: 18.0)) + self.badgeContainerNode.frame = badgeBackgroundFrame + self.badgeBackgroundActiveNode.frame = CGRect(origin: CGPoint(), size: badgeBackgroundFrame.size) + self.badgeBackgroundInactiveNode.frame = CGRect(origin: CGPoint(), size: badgeBackgroundFrame.size) + self.badgeTextNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((badgeBackgroundFrame.width - badgeSize.width) / 2.0), y: floor((badgeBackgroundFrame.height - badgeSize.height) / 2.0)), size: badgeSize) + + let width: CGFloat + if self.unreadCount == 0 || self.isReordering { + if !self.isReordering { + self.badgeContainerNode.alpha = 0.0 + } + width = titleSize.width - self.titleNode.insets.left - self.titleNode.insets.right + } else { + if !self.isReordering { + self.badgeContainerNode.alpha = 1.0 + } + width = badgeBackgroundFrame.maxX + } + + return (width, shortTitleSize.width - self.shortTitleNode.insets.left - self.shortTitleNode.insets.right) + } + + func updateArea(size: CGSize, sideInset: CGFloat, useShortTitle: Bool, transition: ContainedViewLayoutTransition) { + transition.updateAlpha(node: self.titleNode, alpha: useShortTitle ? 0.0 : 1.0) + transition.updateAlpha(node: self.shortTitleNode, alpha: useShortTitle ? 1.0 : 0.0) + + self.buttonNode.frame = CGRect(origin: CGPoint(x: -sideInset, y: 0.0), size: CGSize(width: size.width + sideInset * 2.0, height: size.height)) + + self.extractedContainerNode.frame = CGRect(origin: CGPoint(), size: size) + self.extractedContainerNode.contentNode.frame = CGRect(origin: CGPoint(), size: size) + self.extractedContainerNode.contentRect = CGRect(origin: CGPoint(x: self.extractedBackgroundNode.frame.minX, y: 0.0), size: CGSize(width: self.extractedBackgroundNode.frame.width, height: size.height)) + self.containerNode.frame = CGRect(origin: CGPoint(), size: size) + + self.hitTestSlop = UIEdgeInsets(top: 0.0, left: -sideInset, bottom: 0.0, right: -sideInset) + self.extractedContainerNode.hitTestSlop = self.hitTestSlop + self.extractedContainerNode.contentNode.hitTestSlop = self.hitTestSlop + self.containerNode.hitTestSlop = self.hitTestSlop + + let extractedBackgroundHeight: CGFloat = 32.0 + let extractedBackgroundInset: CGFloat = 14.0 + self.extractedBackgroundNode.frame = CGRect(origin: CGPoint(x: -extractedBackgroundInset, y: floor((size.height - extractedBackgroundHeight) / 2.0)), size: CGSize(width: size.width + extractedBackgroundInset * 2.0, height: extractedBackgroundHeight)) + } + + func animateBadgeIn() { + if !self.isReordering { + let transition: ContainedViewLayoutTransition = .animated(duration: 0.4, curve: .spring) + self.badgeContainerNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) + ContainedViewLayoutTransition.immediate.updateSublayerTransformScale(node: self.badgeContainerNode, scale: 0.1) + transition.updateSublayerTransformScale(node: self.badgeContainerNode, scale: 1.0) + } + } + + func animateBadgeOut() { + if !self.isReordering { + let transition: ContainedViewLayoutTransition = .animated(duration: 0.4, curve: .spring) + self.badgeContainerNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25) + ContainedViewLayoutTransition.immediate.updateSublayerTransformScale(node: self.badgeContainerNode, scale: 1.0) + transition.updateSublayerTransformScale(node: self.badgeContainerNode, scale: 0.1) + } + } + + private func startShaking() { + func degreesToRadians(_ x: CGFloat) -> CGFloat { + return .pi * x / 180.0 + } + + let duration: Double = 0.4 + let displacement: CGFloat = 1.0 + let degreesRotation: CGFloat = 2.0 + + let negativeDisplacement = -1.0 * displacement + let position = CAKeyframeAnimation.init(keyPath: "position") + position.beginTime = 0.8 + position.duration = duration + position.values = [ + NSValue(cgPoint: CGPoint(x: negativeDisplacement, y: negativeDisplacement)), + NSValue(cgPoint: CGPoint(x: 0, y: 0)), + NSValue(cgPoint: CGPoint(x: negativeDisplacement, y: 0)), + NSValue(cgPoint: CGPoint(x: 0, y: negativeDisplacement)), + NSValue(cgPoint: CGPoint(x: negativeDisplacement, y: negativeDisplacement)) + ] + position.calculationMode = .linear + position.isRemovedOnCompletion = false + position.repeatCount = Float.greatestFiniteMagnitude + position.beginTime = CFTimeInterval(Float(arc4random()).truncatingRemainder(dividingBy: Float(25)) / Float(100)) + position.isAdditive = true + + let transform = CAKeyframeAnimation.init(keyPath: "transform") + transform.beginTime = 2.6 + transform.duration = 0.3 + transform.valueFunction = CAValueFunction(name: CAValueFunctionName.rotateZ) + transform.values = [ + degreesToRadians(-1.0 * degreesRotation), + degreesToRadians(degreesRotation), + degreesToRadians(-1.0 * degreesRotation) + ] + transform.calculationMode = .linear + transform.isRemovedOnCompletion = false + transform.repeatCount = Float.greatestFiniteMagnitude + transform.isAdditive = true + transform.beginTime = CFTimeInterval(Float(arc4random()).truncatingRemainder(dividingBy: Float(25)) / Float(100)) + + self.layer.add(position, forKey: "shaking_position") + self.layer.add(transform, forKey: "shaking_rotation") + } + + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + if let deleteButtonNode = self.deleteButtonNode { + if deleteButtonNode.frame.insetBy(dx: -4.0, dy: -4.0).contains(point) { + return deleteButtonNode.view + } + } + return super.hitTest(point, with: event) + } +} + +private final class ItemNodePair { + let regular: ItemNode + let highlighted: ItemNode + + init(regular: ItemNode, highlighted: ItemNode) { + self.regular = regular + self.highlighted = highlighted + } +} + +public final class AppleStyleFoldersNode: ASDisplayNode { + private let scrollNode: ASScrollNode + private let itemsBackgroundView: UIVisualEffectView + private let itemsBackgroundTintNode: ASImageNode + + private let selectedBackgroundNode: ASImageNode + private var itemNodePairs: [ChatListFilterTabEntryId: ItemNodePair] = [:] + private var itemsContainer: ASDisplayNode + private var highlightedItemsClippingContainer: ASDisplayNode + private var highlightedItemsContainer: ASDisplayNode + + var tabSelected: ((ChatListFilterTabEntryId, Bool) -> Void)? + var tabRequestedDeletion: ((ChatListFilterTabEntryId) -> Void)? + var addFilter: (() -> Void)? + var contextGesture: ((Int32?, ContextExtractedContentContainingNode, ContextGesture, Bool) -> Void)? + + private var reorderingGesture: ReorderingGestureRecognizer? + private var reorderingItem: ChatListFilterTabEntryId? + private var reorderingItemPosition: (initial: CGFloat, offset: CGFloat)? + private var reorderingAutoScrollAnimator: ConstantDisplayLinkAnimator? + private var reorderedItemIds: [ChatListFilterTabEntryId]? + private lazy var hapticFeedback = { HapticFeedback() }() + + private var currentParams: (size: CGSize, sideInset: CGFloat, filters: [ChatListFilterTabEntry], selectedFilter: ChatListFilterTabEntryId?, isReordering: Bool, isEditing: Bool, transitionFraction: CGFloat, presentationData: PresentationData)? + + var reorderedFilterIds: [Int32]? { + return self.reorderedItemIds.flatMap { + $0.compactMap { + switch $0 { + case .all: + return 0 + case let .filter(id): + return id + } + } + } + } + + override init() { + self.scrollNode = ASScrollNode() + + self.itemsBackgroundView = UIVisualEffectView() + self.itemsBackgroundView.clipsToBounds = true + self.itemsBackgroundView.layer.cornerRadius = 20.0 + + self.itemsBackgroundTintNode = ASImageNode() + self.itemsBackgroundTintNode.displaysAsynchronously = false + self.itemsBackgroundTintNode.displayWithoutProcessing = true + + self.selectedBackgroundNode = ASImageNode() + self.selectedBackgroundNode.displaysAsynchronously = false + self.selectedBackgroundNode.displayWithoutProcessing = true + + self.itemsContainer = ASDisplayNode() + + self.highlightedItemsClippingContainer = ASDisplayNode() + self.highlightedItemsClippingContainer.clipsToBounds = true + self.highlightedItemsClippingContainer.layer.cornerRadius = 16.0 + + self.highlightedItemsContainer = ASDisplayNode() + + super.init() + + self.scrollNode.view.showsHorizontalScrollIndicator = false + self.scrollNode.view.scrollsToTop = false + self.scrollNode.view.delaysContentTouches = false + self.scrollNode.view.canCancelContentTouches = true + if #available(iOS 11.0, *) { + self.scrollNode.view.contentInsetAdjustmentBehavior = .never + } + + self.addSubnode(self.scrollNode) + self.scrollNode.view.addSubview(self.itemsBackgroundView) + self.scrollNode.addSubnode(self.itemsBackgroundTintNode) + self.scrollNode.addSubnode(self.itemsContainer) + self.scrollNode.addSubnode(self.selectedBackgroundNode) + self.scrollNode.addSubnode(self.highlightedItemsClippingContainer) + self.highlightedItemsClippingContainer.addSubnode(self.highlightedItemsContainer) + + let reorderingGesture = ReorderingGestureRecognizer(shouldBegin: { [weak self] point in + guard let strongSelf = self else { + return false + } + for (id, itemNodePair) in strongSelf.itemNodePairs { + if itemNodePair.regular.view.convert(itemNodePair.regular.bounds, to: strongSelf.view).contains(point) { + if case .all = id { + return false + } + return true + } + } + return false + }, began: { [weak self] point in + guard let strongSelf = self, let _ = strongSelf.currentParams else { + return + } + for (id, itemNodePair) in strongSelf.itemNodePairs { + let itemFrame = itemNodePair.regular.view.convert(itemNodePair.regular.bounds, to: strongSelf.view) + if itemFrame.contains(point) { + strongSelf.hapticFeedback.impact() + + strongSelf.reorderingItem = id + itemNodePair.regular.frame = itemFrame + strongSelf.reorderingAutoScrollAnimator = ConstantDisplayLinkAnimator(update: { + guard let strongSelf = self, let currentLocation = strongSelf.reorderingGesture?.currentLocation else { + return + } + let edgeWidth: CGFloat = 20.0 + if currentLocation.x <= edgeWidth { + var contentOffset = strongSelf.scrollNode.view.contentOffset + contentOffset.x = max(0.0, contentOffset.x - 3.0) + strongSelf.scrollNode.view.setContentOffset(contentOffset, animated: false) + } else if currentLocation.x >= strongSelf.bounds.width - edgeWidth { + var contentOffset = strongSelf.scrollNode.view.contentOffset + contentOffset.x = max(0.0, min(strongSelf.scrollNode.view.contentSize.width - strongSelf.scrollNode.bounds.width, contentOffset.x + 3.0)) + strongSelf.scrollNode.view.setContentOffset(contentOffset, animated: false) + } + }) + strongSelf.reorderingAutoScrollAnimator?.isPaused = false + strongSelf.addSubnode(itemNodePair.regular) + + strongSelf.reorderingItemPosition = (itemNodePair.regular.frame.minX, 0.0) + if let (size, sideInset, filters, selectedFilter, isReordering, isEditing, transitionFraction, presentationData) = strongSelf.currentParams { + strongSelf.update(size: size, sideInset: sideInset, filters: filters, selectedFilter: selectedFilter, isReordering: isReordering, isEditing: isEditing, transitionFraction: transitionFraction, presentationData: presentationData, transition: .animated(duration: 0.25, curve: .easeInOut)) + } + return + } + } + }, ended: { [weak self] in + guard let strongSelf = self, let reorderingItem = strongSelf.reorderingItem else { + return + } + if let itemNodePair = strongSelf.itemNodePairs[reorderingItem] { + let projectedItemFrame = itemNodePair.regular.view.convert(itemNodePair.regular.bounds, to: strongSelf.scrollNode.view) + itemNodePair.regular.frame = projectedItemFrame + strongSelf.itemsContainer.addSubnode(itemNodePair.regular) + } + + strongSelf.reorderingItem = nil + strongSelf.reorderingItemPosition = nil + strongSelf.reorderingAutoScrollAnimator?.invalidate() + strongSelf.reorderingAutoScrollAnimator = nil + if let (size, sideInset, filters, selectedFilter, isReordering, isEditing, transitionFraction, presentationData) = strongSelf.currentParams { + strongSelf.update(size: size, sideInset: sideInset, filters: filters, selectedFilter: selectedFilter, isReordering: isReordering, isEditing: isEditing, transitionFraction: transitionFraction, presentationData: presentationData, transition: .animated(duration: 0.25, curve: .easeInOut)) + } + }, moved: { [weak self] offset in + guard let strongSelf = self, let reorderingItem = strongSelf.reorderingItem else { + return + } + if let reorderingItemNodePair = strongSelf.itemNodePairs[reorderingItem], let (initial, _) = strongSelf.reorderingItemPosition, let reorderedItemIds = strongSelf.reorderedItemIds, let currentItemIndex = reorderedItemIds.firstIndex(of: reorderingItem) { + for (id, itemNodePair) in strongSelf.itemNodePairs { + guard let itemIndex = reorderedItemIds.firstIndex(of: id) else { + continue + } + if id != reorderingItem { + let itemFrame = itemNodePair.regular.view.convert(itemNodePair.regular.bounds, to: strongSelf.view) + if reorderingItemNodePair.regular.frame.intersects(itemFrame) { + let targetIndex: Int + if reorderingItemNodePair.regular.frame.midX < itemFrame.midX { + targetIndex = max(1, itemIndex - 1) + } else { + targetIndex = max(1, min(reorderedItemIds.count - 1, itemIndex)) + } + if targetIndex != currentItemIndex { + strongSelf.hapticFeedback.tap() + + var updatedReorderedItemIds = reorderedItemIds + if targetIndex > currentItemIndex { + updatedReorderedItemIds.insert(reorderingItem, at: targetIndex + 1) + updatedReorderedItemIds.remove(at: currentItemIndex) + } else { + updatedReorderedItemIds.remove(at: currentItemIndex) + updatedReorderedItemIds.insert(reorderingItem, at: targetIndex) + } + strongSelf.reorderedItemIds = updatedReorderedItemIds + if let (size, sideInset, filters, selectedFilter, isReordering, isEditing, transitionFraction, presentationData) = strongSelf.currentParams { + strongSelf.update(size: size, sideInset: sideInset, filters: filters, selectedFilter: selectedFilter, isReordering: isReordering, isEditing: isEditing, transitionFraction: transitionFraction, presentationData: presentationData, transition: .animated(duration: 0.25, curve: .easeInOut)) + } + } + break + } + } + } + + strongSelf.reorderingItemPosition = (initial, offset) + } + if let (size, sideInset, filters, selectedFilter, isReordering, isEditing, transitionFraction, presentationData) = strongSelf.currentParams { + strongSelf.update(size: size, sideInset: sideInset, filters: filters, selectedFilter: selectedFilter, isReordering: isReordering, isEditing: isEditing, transitionFraction: transitionFraction, presentationData: presentationData, transition: .immediate) + } + }) + self.reorderingGesture = reorderingGesture + self.view.addGestureRecognizer(reorderingGesture) + reorderingGesture.isEnabled = false + } + + private var previousSelectedAbsFrame: CGRect? + private var previousSelectedFrame: CGRect? + + func cancelAnimations() { + self.selectedBackgroundNode.layer.removeAllAnimations() + self.scrollNode.layer.removeAllAnimations() + self.highlightedItemsContainer.layer.removeAllAnimations() + self.highlightedItemsClippingContainer.layer.removeAllAnimations() + } + + func update(size: CGSize, sideInset: CGFloat, filters: [ChatListFilterTabEntry], selectedFilter: ChatListFilterTabEntryId?, isReordering: Bool, isEditing: Bool, transitionFraction: CGFloat, presentationData: PresentationData, transition proposedTransition: ContainedViewLayoutTransition) { + let isFirstTime = self.currentParams == nil + let transition: ContainedViewLayoutTransition = isFirstTime ? .immediate : proposedTransition + + var focusOnSelectedFilter = self.currentParams?.selectedFilter != selectedFilter + let previousScrollBounds = self.scrollNode.bounds + let previousContentWidth = self.scrollNode.view.contentSize.width + + if self.currentParams?.presentationData.theme !== presentationData.theme { + if presentationData.theme.rootController.keyboardColor == .dark { + self.itemsBackgroundView.effect = UIBlurEffect(style: .dark) + } else { + self.itemsBackgroundView.effect = UIBlurEffect(style: .light) + } + self.itemsBackgroundTintNode.image = generateStretchableFilledCircleImage(diameter: 40.0, color: presentationData.theme.rootController.tabBar.backgroundColor) + + let selectedFilterColor: UIColor + if presentationData.theme.rootController.keyboardColor == .dark { + selectedFilterColor = presentationData.theme.list.itemAccentColor + } else { + selectedFilterColor = presentationData.theme.chatList.unreadBadgeInactiveBackgroundColor + } + self.selectedBackgroundNode.image = generateStretchableFilledCircleImage(diameter: 32.0, color: selectedFilterColor) + } + + if isReordering { + if let reorderedItemIds = self.reorderedItemIds { + let currentIds = Set(reorderedItemIds) + if currentIds != Set(filters.map { $0.id }) { + var updatedReorderedItemIds = reorderedItemIds.filter { id in + return filters.contains(where: { $0.id == id }) + } + for filter in filters { + if !currentIds.contains(filter.id) { + updatedReorderedItemIds.append(filter.id) + } + } + self.reorderedItemIds = updatedReorderedItemIds + } + } else { + self.reorderedItemIds = filters.map { $0.id } + } + } else if self.reorderedItemIds != nil { + self.reorderedItemIds = nil + } + + self.currentParams = (size: size, sideInset: sideInset, filters: filters, selectedFilter: selectedFilter, isReordering, isEditing, transitionFraction, presentationData: presentationData) + + self.reorderingGesture?.isEnabled = isEditing || isReordering + + transition.updateFrame(node: self.scrollNode, frame: CGRect(origin: CGPoint(), size: size)) + + enum BadgeAnimation { + case `in` + case out + } + + var badgeAnimations: [ChatListFilterTabEntryId: BadgeAnimation] = [:] + + var reorderedFilters: [ChatListFilterTabEntry] = filters + if let reorderedItemIds = self.reorderedItemIds { + reorderedFilters = reorderedItemIds.compactMap { id -> ChatListFilterTabEntry? in + if let index = filters.firstIndex(where: { $0.id == id }) { + return filters[index] + } else { + return nil + } + } + } + + for filter in reorderedFilters { + let itemNodePair: ItemNodePair + var itemNodeTransition = transition + var wasAdded = false + if let current = self.itemNodePairs[filter.id] { + itemNodePair = current + } else { + itemNodeTransition = .immediate + wasAdded = true + itemNodePair = ItemNodePair(regular: ItemNode(pressed: { [weak self] in + self?.tabSelected?(filter.id, false) + }, requestedDeletion: { [weak self] in + self?.tabRequestedDeletion?(filter.id) + }, contextGesture: { [weak self] sourceNode, gesture in + guard let strongSelf = self else { + return + } + strongSelf.scrollNode.view.panGestureRecognizer.isEnabled = false + strongSelf.scrollNode.view.panGestureRecognizer.isEnabled = true + strongSelf.scrollNode.view.setContentOffset(strongSelf.scrollNode.view.contentOffset, animated: false) + switch filter { + case let .filter(id, _, _): + strongSelf.contextGesture?(id, sourceNode, gesture, false) + default: + strongSelf.contextGesture?(nil, sourceNode, gesture, false) + } + }), highlighted: ItemNode(pressed: { [weak self] in + self?.tabSelected?(filter.id, false) + }, requestedDeletion: { [weak self] in + self?.tabRequestedDeletion?(filter.id) + }, contextGesture: { [weak self] sourceNode, gesture in + guard let strongSelf = self else { + return + } + switch filter { + case let .filter(id, _, _): + strongSelf.scrollNode.view.panGestureRecognizer.isEnabled = false + strongSelf.scrollNode.view.panGestureRecognizer.isEnabled = true + strongSelf.scrollNode.view.setContentOffset(strongSelf.scrollNode.view.contentOffset, animated: false) + strongSelf.contextGesture?(id, sourceNode, gesture, false) + default: + strongSelf.contextGesture?(nil, sourceNode, gesture, false) + } + })) + self.itemNodePairs[filter.id] = itemNodePair + } + let unreadCount: Int + let unreadHasUnmuted: Bool + var isNoFilter: Bool = false + switch filter { + case let .all(count): + unreadCount = count + unreadHasUnmuted = true + isNoFilter = true + case let .filter(_, _, unread): + unreadCount = unread.value + unreadHasUnmuted = unread.hasUnmuted + } + if !wasAdded && (itemNodePair.regular.unreadCount != 0) != (unreadCount != 0) { + badgeAnimations[filter.id] = (unreadCount != 0) ? .in : .out + } + itemNodePair.regular.updateText(title: filter.title(strings: presentationData.strings), shortTitle: filter.shortTitle(strings: presentationData.strings), unreadCount: unreadCount, unreadHasUnmuted: unreadHasUnmuted, isNoFilter: isNoFilter, isSelected: false, isEditing: false, isAllChats: isNoFilter, isReordering: isEditing || isReordering, presentationData: presentationData, transition: itemNodeTransition) + itemNodePair.highlighted.updateText(title: filter.title(strings: presentationData.strings), shortTitle: filter.shortTitle(strings: presentationData.strings), unreadCount: unreadCount, unreadHasUnmuted: unreadHasUnmuted, isNoFilter: isNoFilter, isSelected: true, isEditing: false, isAllChats: isNoFilter, isReordering: isEditing || isReordering, presentationData: presentationData, transition: itemNodeTransition) + } + var removeKeys: [ChatListFilterTabEntryId] = [] + for (id, _) in self.itemNodePairs { + if !filters.contains(where: { $0.id == id }) { + removeKeys.append(id) + } + } + for id in removeKeys { + if let itemNodePair = self.itemNodePairs.removeValue(forKey: id) { + let regular = itemNodePair.regular + let highlighted = itemNodePair.highlighted + transition.updateAlpha(node: regular, alpha: 0.0, completion: { [weak regular] _ in + regular?.removeFromSupernode() + }) + transition.updateTransformScale(node: regular, scale: 0.1) + transition.updateAlpha(node: highlighted, alpha: 0.0, completion: { [weak highlighted] _ in + highlighted?.removeFromSupernode() + }) + transition.updateTransformScale(node: highlighted, scale: 0.1) + } + } + + var tabSizes: [(ChatListFilterTabEntryId, CGSize, CGSize, ItemNodePair, Bool)] = [] + var totalRawTabSize: CGFloat = 0.0 + var selectionFrames: [CGRect] = [] + + for filter in reorderedFilters { + guard let itemNodePair = self.itemNodePairs[filter.id] else { + continue + } + let wasAdded = itemNodePair.regular.supernode == nil + var itemNodeTransition = transition + if wasAdded { + itemNodeTransition = .immediate + self.itemsContainer.addSubnode(itemNodePair.regular) + self.highlightedItemsContainer.addSubnode(itemNodePair.highlighted) + } + let (paneNodeWidth, paneNodeShortWidth) = itemNodePair.regular.updateLayout(height: size.height, transition: itemNodeTransition) + let _ = itemNodePair.highlighted.updateLayout(height: size.height, transition: itemNodeTransition) + let paneNodeSize = CGSize(width: paneNodeWidth, height: size.height) + let paneNodeShortSize = CGSize(width: paneNodeShortWidth, height: size.height) + tabSizes.append((filter.id, paneNodeSize, paneNodeShortSize, itemNodePair, wasAdded)) + totalRawTabSize += paneNodeSize.width + + if case .animated = transition, let badgeAnimation = badgeAnimations[filter.id] { + switch badgeAnimation { + case .in: + itemNodePair.regular.animateBadgeIn() + itemNodePair.highlighted.animateBadgeIn() + case .out: + itemNodePair.regular.animateBadgeOut() + itemNodePair.highlighted.animateBadgeOut() + } + } + } + // TODO(swiftgram): Support compact layout + let minSpacing: CGFloat = 30.0 + + let resolvedInitialSideInset: CGFloat = 8.0 + 14.0 + 4.0 + sideInset + + var longTitlesWidth: CGFloat = 0.0 + var shortTitlesWidth: CGFloat = 0.0 + for i in 0 ..< tabSizes.count { + let (_, paneNodeSize, paneNodeShortSize, _, _) = tabSizes[i] + longTitlesWidth += paneNodeSize.width + shortTitlesWidth += paneNodeShortSize.width + } + let totalSpacing = CGFloat(tabSizes.count - 1) * minSpacing + let useShortTitles = (longTitlesWidth + totalSpacing + resolvedInitialSideInset * 2.0) > size.width + + var rawContentWidth = useShortTitles ? shortTitlesWidth : longTitlesWidth + rawContentWidth += totalSpacing + + let resolvedSideInset = max(resolvedInitialSideInset, floor((size.width - rawContentWidth) / 2.0)) + + var leftOffset: CGFloat = resolvedSideInset + + let itemsBackgroundLeftX = leftOffset - 14.0 - 4.0 + + for i in 0 ..< tabSizes.count { + let (itemId, paneNodeLongSize, paneNodeShortSize, itemNodePair, wasAdded) = tabSizes[i] + var itemNodeTransition = transition + if wasAdded { + itemNodeTransition = .immediate + } + + let useShortTitle = itemId == .all && sgUseShortAllChatsTitle(useShortTitles) + let paneNodeSize = useShortTitle ? paneNodeShortSize : paneNodeLongSize + + let paneFrame = CGRect(origin: CGPoint(x: leftOffset, y: floor((size.height - paneNodeSize.height) / 2.0)), size: paneNodeSize) + + if itemId == self.reorderingItem, let (initial, offset) = self.reorderingItemPosition { + itemNodeTransition.updateSublayerTransformScale(node: itemNodePair.regular, scale: 1.2) + itemNodeTransition.updateAlpha(node: itemNodePair.regular, alpha: 0.9) + let offsetFrame = CGRect(origin: CGPoint(x: initial + offset, y: paneFrame.minY), size: paneFrame.size) + itemNodeTransition.updateFrameAdditive(node: itemNodePair.regular, frame: offsetFrame) + selectionFrames.append(offsetFrame) + } else { + itemNodeTransition.updateSublayerTransformScale(node: itemNodePair.regular, scale: 1.0) + itemNodeTransition.updateAlpha(node: itemNodePair.regular, alpha: 1.0) + if wasAdded { + itemNodePair.regular.frame = paneFrame + itemNodePair.regular.alpha = 0.0 + itemNodeTransition.updateAlpha(node: itemNodePair.regular, alpha: 1.0) + } else { + itemNodeTransition.updateFrameAdditive(node: itemNodePair.regular, frame: paneFrame) + } + selectionFrames.append(paneFrame) + } + + if wasAdded { + itemNodePair.highlighted.frame = paneFrame + itemNodePair.highlighted.alpha = 0.0 + itemNodeTransition.updateAlpha(node: itemNodePair.highlighted, alpha: 1.0) + } else { + itemNodeTransition.updateFrameAdditive(node: itemNodePair.highlighted, frame: paneFrame) + } + + itemNodePair.regular.updateArea(size: paneFrame.size, sideInset: minSpacing / 2.0, useShortTitle: useShortTitle, transition: itemNodeTransition) + itemNodePair.regular.hitTestSlop = UIEdgeInsets(top: 0.0, left: -minSpacing / 2.0, bottom: 0.0, right: -minSpacing / 2.0) + + itemNodePair.highlighted.updateArea(size: paneFrame.size, sideInset: minSpacing / 2.0, useShortTitle: useShortTitle, transition: itemNodeTransition) + itemNodePair.highlighted.hitTestSlop = UIEdgeInsets(top: 0.0, left: -minSpacing / 2.0, bottom: 0.0, right: -minSpacing / 2.0) + + leftOffset += paneNodeSize.width + minSpacing + } + leftOffset -= minSpacing + let itemsBackgroundRightX = leftOffset + 14.0 + 4.0 + + leftOffset += resolvedSideInset + + let backgroundFrame = CGRect(origin: CGPoint(x: itemsBackgroundLeftX, y: 0.0), size: CGSize(width: itemsBackgroundRightX - itemsBackgroundLeftX, height: size.height)) + transition.updateFrame(view: self.itemsBackgroundView, frame: backgroundFrame) + transition.updateFrame(node: self.itemsBackgroundTintNode, frame: backgroundFrame) + + self.scrollNode.view.contentSize = CGSize(width: itemsBackgroundRightX + 8.0, height: size.height) + + var selectedFrame: CGRect? + if let selectedFilter = selectedFilter, let currentIndex = reorderedFilters.firstIndex(where: { $0.id == selectedFilter }) { + func interpolateFrame(from fromValue: CGRect, to toValue: CGRect, t: CGFloat) -> CGRect { + return CGRect(x: floorToScreenPixels(toValue.origin.x * t + fromValue.origin.x * (1.0 - t)), y: floorToScreenPixels(toValue.origin.y * t + fromValue.origin.y * (1.0 - t)), width: floorToScreenPixels(toValue.size.width * t + fromValue.size.width * (1.0 - t)), height: floorToScreenPixels(toValue.size.height * t + fromValue.size.height * (1.0 - t))) + } + + if currentIndex != 0 && transitionFraction > 0.0 { + let currentFrame = selectionFrames[currentIndex] + let previousFrame = selectionFrames[currentIndex - 1] + selectedFrame = interpolateFrame(from: currentFrame, to: previousFrame, t: abs(transitionFraction)) + } else if currentIndex != filters.count - 1 && transitionFraction < 0.0 { + let currentFrame = selectionFrames[currentIndex] + let previousFrame = selectionFrames[currentIndex + 1] + selectedFrame = interpolateFrame(from: currentFrame, to: previousFrame, t: abs(transitionFraction)) + } else { + selectedFrame = selectionFrames[currentIndex] + } + } + + transition.updateFrame(node: self.itemsContainer, frame: CGRect(origin: CGPoint(), size: self.scrollNode.view.contentSize)) + + if let selectedFrame = selectedFrame { + let wasAdded = self.selectedBackgroundNode.isHidden + self.selectedBackgroundNode.isHidden = false + let lineFrame = CGRect(origin: CGPoint(x: selectedFrame.minX - 14.0, y: floor((size.height - 32.0) / 2.0)), size: CGSize(width: selectedFrame.width + 14.0 * 2.0, height: 32.0)) + if wasAdded { + self.selectedBackgroundNode.frame = lineFrame + self.selectedBackgroundNode.alpha = 0.0 + } else { + transition.updateFrame(node: self.selectedBackgroundNode, frame: lineFrame) + } + transition.updateFrame(node: self.highlightedItemsClippingContainer, frame: lineFrame) + transition.updateFrame(node: self.highlightedItemsContainer, frame: CGRect(origin: CGPoint(x: -lineFrame.minX, y: -lineFrame.minY), size: self.scrollNode.view.contentSize)) + transition.updateAlpha(node: self.selectedBackgroundNode, alpha: isReordering ? 0.0 : 1.0) + transition.updateAlpha(node: self.highlightedItemsClippingContainer, alpha: isReordering ? 0.0 : 1.0) + + if let previousSelectedFrame = self.previousSelectedFrame { + let previousContentOffsetX = max(0.0, min(previousContentWidth - previousScrollBounds.width, floor(previousSelectedFrame.midX - previousScrollBounds.width / 2.0))) + if abs(previousContentOffsetX - previousScrollBounds.minX) < 1.0 { + focusOnSelectedFilter = true + } + } + + if focusOnSelectedFilter && self.reorderingItem == nil { + let updatedBounds: CGRect + if transitionFraction.isZero && selectedFilter == reorderedFilters.first?.id { + updatedBounds = CGRect(origin: CGPoint(), size: self.scrollNode.bounds.size) + } else if transitionFraction.isZero && selectedFilter == reorderedFilters.last?.id { + updatedBounds = CGRect(origin: CGPoint(x: max(0.0, self.scrollNode.view.contentSize.width - self.scrollNode.bounds.width), y: 0.0), size: self.scrollNode.bounds.size) + } else { + let contentOffsetX = max(0.0, min(self.scrollNode.view.contentSize.width - self.scrollNode.bounds.width, floor(selectedFrame.midX - self.scrollNode.bounds.width / 2.0))) + updatedBounds = CGRect(origin: CGPoint(x: contentOffsetX, y: 0.0), size: self.scrollNode.bounds.size) + } + self.scrollNode.bounds = updatedBounds + } + transition.animateHorizontalOffsetAdditive(node: self.scrollNode, offset: previousScrollBounds.minX - self.scrollNode.bounds.minX) + + self.previousSelectedAbsFrame = selectedFrame.offsetBy(dx: -self.scrollNode.bounds.minX, dy: 0.0) + self.previousSelectedFrame = selectedFrame + } else { + self.selectedBackgroundNode.isHidden = true + self.previousSelectedAbsFrame = nil + self.previousSelectedFrame = nil + } + } +} + +private class ReorderingGestureRecognizerTimerTarget: NSObject { + private let f: () -> Void + + init(_ f: @escaping () -> Void) { + self.f = f + + super.init() + } + + @objc func timerEvent() { + self.f() + } +} + +private final class ReorderingGestureRecognizer: UIGestureRecognizer, UIGestureRecognizerDelegate { + private let shouldBegin: (CGPoint) -> Bool + private let began: (CGPoint) -> Void + private let ended: () -> Void + private let moved: (CGFloat) -> Void + + private var initialLocation: CGPoint? + private var delayTimer: Foundation.Timer? + + var currentLocation: CGPoint? + + init(shouldBegin: @escaping (CGPoint) -> Bool, began: @escaping (CGPoint) -> Void, ended: @escaping () -> Void, moved: @escaping (CGFloat) -> Void) { + self.shouldBegin = shouldBegin + self.began = began + self.ended = ended + self.moved = moved + + super.init(target: nil, action: nil) + + self.delegate = self + } + + override func reset() { + super.reset() + + self.initialLocation = nil + self.delayTimer?.invalidate() + self.delayTimer = nil + self.currentLocation = nil + } + + func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool { + if otherGestureRecognizer is UIPanGestureRecognizer { + return true + } else { + return false + } + } + + override func touchesBegan(_ touches: Set, with event: UIEvent) { + super.touchesBegan(touches, with: event) + + guard let location = touches.first?.location(in: self.view) else { + self.state = .failed + return + } + + if self.state == .possible { + if self.delayTimer == nil { + if !self.shouldBegin(location) { + self.state = .failed + return + } + self.initialLocation = location + let timer = Foundation.Timer(timeInterval: 0.2, target: ReorderingGestureRecognizerTimerTarget { [weak self] in + guard let strongSelf = self else { + return + } + strongSelf.delayTimer = nil + strongSelf.state = .began + strongSelf.began(location) + }, selector: #selector(ReorderingGestureRecognizerTimerTarget.timerEvent), userInfo: nil, repeats: false) + self.delayTimer = timer + RunLoop.main.add(timer, forMode: .common) + } else { + self.state = .failed + } + } + } + + override func touchesEnded(_ touches: Set, with event: UIEvent) { + super.touchesEnded(touches, with: event) + + self.delayTimer?.invalidate() + + if self.state == .began || self.state == .changed { + self.ended() + } + + self.state = .failed + } + + override func touchesCancelled(_ touches: Set, with event: UIEvent) { + super.touchesCancelled(touches, with: event) + + if self.state == .began || self.state == .changed { + self.delayTimer?.invalidate() + self.ended() + self.state = .failed + } + } + + override func touchesMoved(_ touches: Set, with event: UIEvent) { + super.touchesMoved(touches, with: event) + + guard let initialLocation = self.initialLocation, let location = touches.first?.location(in: self.view) else { + return + } + let offset = location.x - initialLocation.x + self.currentLocation = location + + if self.delayTimer != nil { + if abs(offset) > 4.0 { + self.delayTimer?.invalidate() + self.state = .failed + return + } + } else { + if self.state == .began || self.state == .changed { + self.state = .changed + self.moved(offset) + } + } + } +} diff --git a/Swiftgram/ChatControllerImplExtension/BUILD b/Swiftgram/ChatControllerImplExtension/BUILD new file mode 100644 index 00000000000..15c650e14a6 --- /dev/null +++ b/Swiftgram/ChatControllerImplExtension/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "ChatControllerImplExtension", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/ChatControllerImplExtension/Sources/ChatControllerImplExtension.swift b/Swiftgram/ChatControllerImplExtension/Sources/ChatControllerImplExtension.swift new file mode 100644 index 00000000000..04866cf0896 --- /dev/null +++ b/Swiftgram/ChatControllerImplExtension/Sources/ChatControllerImplExtension.swift @@ -0,0 +1,225 @@ +import SGSimpleSettings +import Foundation +import UIKit +import Postbox +import SwiftSignalKit +import Display +import AsyncDisplayKit +import TelegramCore +import SafariServices +import MobileCoreServices +import Intents +import LegacyComponents +import TelegramPresentationData +import TelegramUIPreferences +import DeviceAccess +import TextFormat +import TelegramBaseController +import AccountContext +import TelegramStringFormatting +import OverlayStatusController +import DeviceLocationManager +import ShareController +import UrlEscaping +import ContextUI +import ComposePollUI +import AlertUI +import PresentationDataUtils +import UndoUI +import TelegramCallsUI +import TelegramNotices +import GameUI +import ScreenCaptureDetection +import GalleryUI +import OpenInExternalAppUI +import LegacyUI +import InstantPageUI +import LocationUI +import BotPaymentsUI +import DeleteChatPeerActionSheetItem +import HashtagSearchUI +import LegacyMediaPickerUI +import Emoji +import PeerAvatarGalleryUI +import PeerInfoUI +import RaiseToListen +import UrlHandling +import AvatarNode +import AppBundle +import LocalizedPeerData +import PhoneNumberFormat +import SettingsUI +import UrlWhitelist +import TelegramIntents +import TooltipUI +import StatisticsUI +import MediaResources +import GalleryData +import ChatInterfaceState +import InviteLinksUI +import Markdown +import TelegramPermissionsUI +import Speak +import TranslateUI +import UniversalMediaPlayer +import WallpaperBackgroundNode +import ChatListUI +import CalendarMessageScreen +import ReactionSelectionNode +import ReactionListContextMenuContent +import AttachmentUI +import AttachmentTextInputPanelNode +import MediaPickerUI +import ChatPresentationInterfaceState +import Pasteboard +import ChatSendMessageActionUI +import ChatTextLinkEditUI +import WebUI +import PremiumUI +import ImageTransparency +import StickerPackPreviewUI +import TextNodeWithEntities +import EntityKeyboard +import ChatTitleView +import EmojiStatusComponent +import ChatTimerScreen +import MediaPasteboardUI +import ChatListHeaderComponent +import ChatControllerInteraction +import FeaturedStickersScreen +import ChatEntityKeyboardInputNode +import StorageUsageScreen +import AvatarEditorScreen +import ChatScheduleTimeController +import ICloudResources +import StoryContainerScreen +import MoreHeaderButton +import VolumeButtons +import ChatAvatarNavigationNode +import ChatContextQuery +import PeerReportScreen +import PeerSelectionController +import SaveToCameraRoll +import ChatMessageDateAndStatusNode +import ReplyAccessoryPanelNode +import TextSelectionNode +import ChatMessagePollBubbleContentNode +import ChatMessageItem +import ChatMessageItemImpl +import ChatMessageItemView +import ChatMessageItemCommon +import ChatMessageAnimatedStickerItemNode +import ChatMessageBubbleItemNode +import ChatNavigationButton +import WebsiteType +import ChatQrCodeScreen +import PeerInfoScreen +import MediaEditorScreen +import WallpaperGalleryScreen +import WallpaperGridScreen +import VideoMessageCameraScreen +import TopMessageReactions +import AudioWaveform +import PeerNameColorScreen +import ChatEmptyNode +import ChatMediaInputStickerGridItem +import AdsInfoScreen + +extension ChatControllerImpl { + + func forwardMessagesToCloud(messageIds: [MessageId], removeNames: Bool, openCloud: Bool, resetCurrent: Bool = false) { + let _ = (self.context.engine.data.get(EngineDataMap( + messageIds.map(TelegramEngine.EngineData.Item.Messages.Message.init) + )) + |> deliverOnMainQueue).startStandalone(next: { [weak self] messages in + guard let strongSelf = self else { + return + } + + if resetCurrent { + strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState({ $0.withUpdatedForwardMessageIds(nil).withUpdatedForwardOptionsState(nil).withoutSelectionState() }) }) + } + + let sortedMessages = messages.values.compactMap { $0?._asMessage() }.sorted { lhs, rhs in + return lhs.id < rhs.id + } + + var attributes: [MessageAttribute] = [] + if removeNames { + attributes.append(ForwardOptionsMessageAttribute(hideNames: true, hideCaptions: false)) + } + + if !openCloud { + Queue.mainQueue().after(0.88) { + strongSelf.chatDisplayNode.hapticFeedback.success() + } + + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .forward(savedMessages: true, text: messages.count == 1 ? presentationData.strings.Conversation_ForwardTooltip_SavedMessages_One : presentationData.strings.Conversation_ForwardTooltip_SavedMessages_Many), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] value in + if case .info = value, let strongSelf = self { + let _ = (strongSelf.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: strongSelf.context.account.peerId)) + |> deliverOnMainQueue).startStandalone(next: { peer in + guard let strongSelf = self, let peer = peer, let navigationController = strongSelf.effectiveNavigationController else { + return + } + + strongSelf.context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: strongSelf.context, chatLocation: .peer(peer), keepStack: .always, purposefulAction: {}, peekData: nil)) + }) + return true + } + return false + }), in: .current) + } + + let _ = (enqueueMessages(account: strongSelf.context.account, peerId: strongSelf.context.account.peerId, messages: sortedMessages.map { message -> EnqueueMessage in + return .forward(source: message.id, threadId: nil, grouping: .auto, attributes: attributes, correlationId: nil) + }) + |> deliverOnMainQueue).startStandalone(next: { messageIds in + guard openCloud else { + return + } + if let strongSelf = self { + let signals: [Signal] = messageIds.compactMap({ id -> Signal? in + guard let id = id else { + return nil + } + return strongSelf.context.account.pendingMessageManager.pendingMessageStatus(id) + |> mapToSignal { status, _ -> Signal in + if status != nil { + return .never() + } else { + return .single(true) + } + } + |> take(1) + }) + if strongSelf.shareStatusDisposable == nil { + strongSelf.shareStatusDisposable = MetaDisposable() + } + strongSelf.shareStatusDisposable?.set((combineLatest(signals) + |> deliverOnMainQueue).startStrict(next: { [weak strongSelf] _ in + guard let strongSelf = strongSelf else { + return + } + strongSelf.chatDisplayNode.hapticFeedback.success() + let _ = (strongSelf.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: strongSelf.context.account.peerId)) + |> deliverOnMainQueue).startStandalone(next: { [weak strongSelf] peer in + guard let strongSelf = strongSelf, let peer = peer, let navigationController = strongSelf.effectiveNavigationController else { + return + } + + var navigationSubject: ChatControllerSubject? = nil + for messageId in messageIds { + if let messageId = messageId { + navigationSubject = .message(id: .id(messageId), highlight: ChatControllerSubject.MessageHighlight(quote: nil), timecode: nil) + break + } + } + strongSelf.context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, context: strongSelf.context, chatLocation: .peer(peer), subject: navigationSubject, keepStack: .always, purposefulAction: {}, peekData: nil)) + }) + } )) + } + }) + }) + } +} diff --git a/Swiftgram/FLEX/BUILD b/Swiftgram/FLEX/BUILD new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Swiftgram/FLEX/FLEX.BUILD b/Swiftgram/FLEX/FLEX.BUILD new file mode 100644 index 00000000000..52e69f69169 --- /dev/null +++ b/Swiftgram/FLEX/FLEX.BUILD @@ -0,0 +1,68 @@ +objc_library( + name = "FLEX", + module_name = "FLEX", + srcs = glob( + ["Classes/**/*"], + exclude = [ + "Classes/Info.plist", + "Classes/Utility/APPLE_LICENSE", + "Classes/Network/OSCache/LICENSE.md", + "Classes/Network/PonyDebugger/LICENSE", + "Classes/GlobalStateExplorers/DatabaseBrowser/LICENSE", + "Classes/GlobalStateExplorers/Keychain/SSKeychain_LICENSE", + "Classes/GlobalStateExplorers/SystemLog/LLVM_LICENSE.TXT", + ] + ), + hdrs = glob([ + "Classes/**/*.h" + ]), + includes = [ + "Classes", + "Classes/Core", + "Classes/Core/Controllers", + "Classes/Core/Views", + "Classes/Core/Views/Cells", + "Classes/Core/Views/Carousel", + "Classes/ObjectExplorers", + "Classes/ObjectExplorers/Sections", + "Classes/ObjectExplorers/Sections/Shortcuts", + "Classes/Network", + "Classes/Network/PonyDebugger", + "Classes/Network/OSCache", + "Classes/Toolbar", + "Classes/Manager", + "Classes/Manager/Private", + "Classes/Editing", + "Classes/Editing/ArgumentInputViews", + "Classes/Headers", + "Classes/ExplorerInterface", + "Classes/ExplorerInterface/Tabs", + "Classes/ExplorerInterface/Bookmarks", + "Classes/GlobalStateExplorers", + "Classes/GlobalStateExplorers/Globals", + "Classes/GlobalStateExplorers/Keychain", + "Classes/GlobalStateExplorers/FileBrowser", + "Classes/GlobalStateExplorers/SystemLog", + "Classes/GlobalStateExplorers/DatabaseBrowser", + "Classes/GlobalStateExplorers/RuntimeBrowser", + "Classes/GlobalStateExplorers/RuntimeBrowser/DataSources", + "Classes/ViewHierarchy", + "Classes/ViewHierarchy/SnapshotExplorer", + "Classes/ViewHierarchy/SnapshotExplorer/Scene", + "Classes/ViewHierarchy/TreeExplorer", + "Classes/Utility", + "Classes/Utility/Runtime", + "Classes/Utility/Runtime/Objc", + "Classes/Utility/Runtime/Objc/Reflection", + "Classes/Utility/Categories", + "Classes/Utility/Categories/Private", + "Classes/Utility/Keyboard" + ], + copts = [ + "-Wno-deprecated-declarations", + "-Wno-strict-prototypes", + "-Wno-unsupported-availability-guard", + ], + deps = [], + visibility = ["//visibility:public"], +) \ No newline at end of file diff --git a/Swiftgram/SFSafariViewControllerPlus/BUILD b/Swiftgram/SFSafariViewControllerPlus/BUILD new file mode 100644 index 00000000000..72a719f0b1e --- /dev/null +++ b/Swiftgram/SFSafariViewControllerPlus/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SFSafariViewControllerPlus", + module_name = "SFSafariViewControllerPlus", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SFSafariViewControllerPlus/Sources/SFSafariViewControllerPlus.swift b/Swiftgram/SFSafariViewControllerPlus/Sources/SFSafariViewControllerPlus.swift new file mode 100644 index 00000000000..1df3ddbaa33 --- /dev/null +++ b/Swiftgram/SFSafariViewControllerPlus/Sources/SFSafariViewControllerPlus.swift @@ -0,0 +1,14 @@ +import SafariServices + +public class SFSafariViewControllerPlusDidFinish: SFSafariViewController, SFSafariViewControllerDelegate { + public var onDidFinish: (() -> Void)? + + public override init(url URL: URL, configuration: SFSafariViewController.Configuration = SFSafariViewController.Configuration()) { + super.init(url: URL, configuration: configuration) + self.delegate = self + } + + public func safariViewControllerDidFinish(_ controller: SFSafariViewController) { + onDidFinish?() + } +} diff --git a/Swiftgram/SGAPI/BUILD b/Swiftgram/SGAPI/BUILD new file mode 100644 index 00000000000..1a7634e2c8c --- /dev/null +++ b/Swiftgram/SGAPI/BUILD @@ -0,0 +1,25 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGAPI", + module_name = "SGAPI", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//Swiftgram/SGLogging:SGLogging", + "//Swiftgram/SGWebAppExtensions:SGWebAppExtensions", + "//Swiftgram/SGSimpleSettings:SGSimpleSettings", + "//Swiftgram/SGWebSettingsScheme:SGWebSettingsScheme", + "//Swiftgram/SGRegDateScheme:SGRegDateScheme", + "//Swiftgram/SGRequests:SGRequests", + "//Swiftgram/SGConfig:SGConfig" + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGAPI/Sources/SGAPI.swift b/Swiftgram/SGAPI/Sources/SGAPI.swift new file mode 100644 index 00000000000..55114930404 --- /dev/null +++ b/Swiftgram/SGAPI/Sources/SGAPI.swift @@ -0,0 +1,145 @@ +import Foundation +import SwiftSignalKit + +import SGConfig +import SGLogging +import SGSimpleSettings +import SGWebAppExtensions +import SGWebSettingsScheme +import SGRequests +import SGRegDateScheme + +private let API_VERSION: String = "0" + +private func buildApiUrl(_ endpoint: String) -> String { + return "\(SG_CONFIG.apiUrl)/v\(API_VERSION)/\(endpoint)" +} + +public let SG_API_AUTHORIZATION_HEADER = "Authorization" +public let SG_API_DEVICE_TOKEN_HEADER = "Device-Token" + +private enum HTTPRequestError { + case network +} + +public enum SGAPIError { + case generic(String? = nil) +} + +public func getSGSettings(token: String) -> Signal { + return Signal { subscriber in + + let url = URL(string: buildApiUrl("settings"))! + let headers = [SG_API_AUTHORIZATION_HEADER: "Token \(token)"] + let completed = Atomic(value: false) + + var request = URLRequest(url: url) + headers.forEach { key, value in + request.addValue(value, forHTTPHeaderField: key) + } + + let downloadSignal = requestsCustom(request: request).start(next: { data, urlResponse in + let _ = completed.swap(true) + do { + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let settings = try decoder.decode(SGWebSettings.self, from: data) + subscriber.putNext(settings) + subscriber.putCompletion() + } catch { + subscriber.putError(.generic("Can't parse user settings: \(error). Response: \(String(data: data, encoding: .utf8) ?? "")")) + } + }, error: { error in + subscriber.putError(.generic("Error requesting user settings: \(String(describing: error))")) + }) + + return ActionDisposable { + if !completed.with({ $0 }) { + downloadSignal.dispose() + } + } + } +} + + + +public func postSGSettings(token: String, data: [String:Any]) -> Signal { + return Signal { subscriber in + + let url = URL(string: buildApiUrl("settings"))! + let headers = [SG_API_AUTHORIZATION_HEADER: "Token \(token)"] + let completed = Atomic(value: false) + + var request = URLRequest(url: url) + headers.forEach { key, value in + request.addValue(value, forHTTPHeaderField: key) + } + request.httpMethod = "POST" + + let jsonData = try? JSONSerialization.data(withJSONObject: data, options: []) + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = jsonData + + let dataSignal = requestsCustom(request: request).start(next: { data, urlResponse in + let _ = completed.swap(true) + + if let httpResponse = urlResponse as? HTTPURLResponse { + switch httpResponse.statusCode { + case 200...299: + subscriber.putCompletion() + default: + subscriber.putError(.generic("Can't update settings: \(httpResponse.statusCode). Response: \(String(data: data, encoding: .utf8) ?? "")")) + } + } else { + subscriber.putError(.generic("Not an HTTP response: \(String(describing: urlResponse))")) + } + }, error: { error in + subscriber.putError(.generic("Error updating settings: \(String(describing: error))")) + }) + + return ActionDisposable { + if !completed.with({ $0 }) { + dataSignal.dispose() + } + } + } +} + +public func getSGAPIRegDate(token: String, deviceToken: String, userId: Int64) -> Signal { + return Signal { subscriber in + + let url = URL(string: buildApiUrl("regdate/\(userId)"))! + let headers = [ + SG_API_AUTHORIZATION_HEADER: "Token \(token)", + SG_API_DEVICE_TOKEN_HEADER: deviceToken + ] + let completed = Atomic(value: false) + + var request = URLRequest(url: url) + headers.forEach { key, value in + request.addValue(value, forHTTPHeaderField: key) + } + request.timeoutInterval = 10 + + let downloadSignal = requestsCustom(request: request).start(next: { data, urlResponse in + let _ = completed.swap(true) + do { + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + let settings = try decoder.decode(RegDate.self, from: data) + subscriber.putNext(settings) + subscriber.putCompletion() + } catch { + subscriber.putError(.generic("Can't parse regDate: \(error). Response: \(String(data: data, encoding: .utf8) ?? "")")) + } + }, error: { error in + subscriber.putError(.generic("Error requesting regDate: \(String(describing: error))")) + }) + + return ActionDisposable { + if !completed.with({ $0 }) { + downloadSignal.dispose() + } + } + } +} diff --git a/Swiftgram/SGAPIToken/BUILD b/Swiftgram/SGAPIToken/BUILD new file mode 100644 index 00000000000..9b507e1c2bf --- /dev/null +++ b/Swiftgram/SGAPIToken/BUILD @@ -0,0 +1,24 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGAPIToken", + module_name = "SGAPIToken", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/AccountContext:AccountContext", + "//submodules/TelegramCore:TelegramCore", + "//Swiftgram/SGLogging:SGLogging", + "//Swiftgram/SGWebSettingsScheme:SGWebSettingsScheme", + "//Swiftgram/SGConfig:SGConfig", + "//Swiftgram/SGWebAppExtensions:SGWebAppExtensions", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGAPIToken/Sources/SGAPIToken.swift b/Swiftgram/SGAPIToken/Sources/SGAPIToken.swift new file mode 100644 index 00000000000..9ac4fff087d --- /dev/null +++ b/Swiftgram/SGAPIToken/Sources/SGAPIToken.swift @@ -0,0 +1,133 @@ +import Foundation +import SwiftSignalKit +import AccountContext +import TelegramCore +import SGLogging +import SGConfig +import SGWebAppExtensions + +private let tokenExpirationTime: TimeInterval = 30 * 60 // 30 minutes + +private var tokenCache: [Int64: (token: String, expiration: Date)] = [:] + +public enum SGAPITokenError { + case generic(String? = nil) +} + +public func getSGApiToken(context: AccountContext, botUsername: String = SG_CONFIG.botUsername) -> Signal { + let userId = context.account.peerId.id._internalGetInt64Value() + + if let (token, expiration) = tokenCache[userId], Date() < expiration { + // SGLogger.shared.log("SGAPI", "Using cached token. Expiring at: \(expiration)") + return Signal { subscriber in + subscriber.putNext(token) + subscriber.putCompletion() + return EmptyDisposable + } + } + + SGLogger.shared.log("SGAPI", "Requesting new token") + // Workaround for Apple Review + if context.account.testingEnvironment { + return context.account.postbox.transaction { transaction -> String? in + if let testUserPeer = transaction.getPeer(context.account.peerId) as? TelegramUser, let testPhone = testUserPeer.phone { + return testPhone + } else { + return nil + } + } + |> mapToSignalPromotingError { phone -> Signal in + if let phone = phone { + // https://core.telegram.org/api/auth#test-accounts + if phone.starts(with: String(99966)) { + SGLogger.shared.log("SGAPI", "Using demo token") + tokenCache[userId] = (phone, Date().addingTimeInterval(tokenExpirationTime)) + return .single(phone) + } else { + return .fail(.generic("Non-demo phone number on test DC")) + } + } else { + return .fail(.generic("Missing test account peer or it's number (how?)")) + } + } + } + + return Signal { subscriber in + let getSettingsURLSignal = getSGSettingsURL(context: context, botUsername: botUsername).start(next: { url in + if let hashPart = url.components(separatedBy: "#").last { + let parsedParams = urlParseHashParams(hashPart) + if let token = parsedParams["tgWebAppData"], let token = token { + tokenCache[userId] = (token, Date().addingTimeInterval(tokenExpirationTime)) + #if DEBUG + print("[SGAPI]", "API Token: \(token)") + #endif + subscriber.putNext(token) + subscriber.putCompletion() + } else { + subscriber.putError(.generic("Invalid or missing token in response url! \(url)")) + } + } else { + subscriber.putError(.generic("No hash part in URL \(url)")) + } + }) + + return ActionDisposable { + getSettingsURLSignal.dispose() + } + } +} + +public func getSGSettingsURL(context: AccountContext, botUsername: String = SG_CONFIG.botUsername, url: String = SG_CONFIG.webappUrl, themeParams: [String: Any]? = nil) -> Signal { + return Signal { subscriber in + // themeParams = generateWebAppThemeParams( + // context.sharedContext.currentPresentationData.with { $0 }.theme + // ) + var requestWebViewSignalDisposable: Disposable? = nil + var requestUpdatePeerIsBlocked: Disposable? = nil + let resolvePeerSignal = ( + context.engine.peers.resolvePeerByName(name: botUsername) + |> mapToSignal { result -> Signal in + guard case let .result(result) = result else { + return .complete() + } + return .single(result) + }).start(next: { botPeer in + if let botPeer = botPeer { + SGLogger.shared.log("SGAPI", "Botpeer found for \(botUsername)") + let requestWebViewSignal = context.engine.messages.requestWebView(peerId: botPeer.id, botId: botPeer.id, url: url, payload: nil, themeParams: themeParams, fromMenu: true, replyToMessageId: nil, threadId: nil) + + requestWebViewSignalDisposable = requestWebViewSignal.start(next: { webViewResult in + subscriber.putNext(webViewResult.url) + subscriber.putCompletion() + }, error: { e in + SGLogger.shared.log("SGAPI", "Webview request error, retrying with unblock") + // if e.errorDescription == "YOU_BLOCKED_USER" { + requestUpdatePeerIsBlocked = (context.engine.privacy.requestUpdatePeerIsBlocked(peerId: botPeer.id, isBlocked: false) + |> afterDisposed( + { + requestWebViewSignalDisposable?.dispose() + requestWebViewSignalDisposable = requestWebViewSignal.start(next: { webViewResult in + SGLogger.shared.log("SGAPI", "Webview retry success \(webViewResult)") + subscriber.putNext(webViewResult.url) + subscriber.putCompletion() + }, error: { e in + SGLogger.shared.log("SGAPI", "Webview retry failure \(e)") + subscriber.putError(.generic("Webview retry failure \(e)")) + }) + })).start() + // } + }) + + } else { + SGLogger.shared.log("SGAPI", "Botpeer not found for \(botUsername)") + subscriber.putError(.generic()) + } + }) + + return ActionDisposable { + resolvePeerSignal.dispose() + requestUpdatePeerIsBlocked?.dispose() + requestWebViewSignalDisposable?.dispose() + } + } +} diff --git a/Swiftgram/SGAPIWebSettings/BUILD b/Swiftgram/SGAPIWebSettings/BUILD new file mode 100644 index 00000000000..9964398d276 --- /dev/null +++ b/Swiftgram/SGAPIWebSettings/BUILD @@ -0,0 +1,23 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGAPIWebSettings", + module_name = "SGAPIWebSettings", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//Swiftgram/SGAPI:SGAPI", + "//Swiftgram/SGAPIToken:SGAPIToken", + "//Swiftgram/SGLogging:SGLogging", + "//Swiftgram/SGSimpleSettings:SGSimpleSettings", + "//submodules/AccountContext:AccountContext", + "//submodules/TelegramCore:TelegramCore", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGAPIWebSettings/Sources/File.swift b/Swiftgram/SGAPIWebSettings/Sources/File.swift new file mode 100644 index 00000000000..9a10004f73c --- /dev/null +++ b/Swiftgram/SGAPIWebSettings/Sources/File.swift @@ -0,0 +1,49 @@ +import Foundation + +import SGAPIToken +import SGAPI +import SGLogging + +import AccountContext + +import SGSimpleSettings +import TelegramCore + +public func updateSGWebSettingsInteractivelly(context: AccountContext) { + let _ = getSGApiToken(context: context).startStandalone(next: { token in + let _ = getSGSettings(token: token).startStandalone(next: { webSettings in + SGLogger.shared.log("SGAPI", "New SGWebSettings for id \(context.account.peerId.id._internalGetInt64Value()): \(webSettings) ") + SGSimpleSettings.shared.canUseStealthMode = webSettings.global.storiesAvailable + let _ = (context.account.postbox.transaction { transaction in + updateAppConfiguration(transaction: transaction, { configuration -> AppConfiguration in + var configuration = configuration + configuration.sgWebSettings = webSettings + return configuration + }) + }).startStandalone() + }, error: { e in + if case let .generic(errorMessage) = e, let errorMessage = errorMessage { + SGLogger.shared.log("SGAPI", errorMessage) + } + }) + }, error: { e in + if case let .generic(errorMessage) = e, let errorMessage = errorMessage { + SGLogger.shared.log("SGAPI", errorMessage) + } + }) +} + + +public func postSGWebSettingsInteractivelly(context: AccountContext, data: [String: Any]) { + let _ = getSGApiToken(context: context).startStandalone(next: { token in + let _ = postSGSettings(token: token, data: data).startStandalone(error: { e in + if case let .generic(errorMessage) = e, let errorMessage = errorMessage { + SGLogger.shared.log("SGAPI", errorMessage) + } + }) + }, error: { e in + if case let .generic(errorMessage) = e, let errorMessage = errorMessage { + SGLogger.shared.log("SGAPI", errorMessage) + } + }) +} diff --git a/Swiftgram/SGActionRequestHandlerSanitizer/BUILD b/Swiftgram/SGActionRequestHandlerSanitizer/BUILD new file mode 100644 index 00000000000..a27377792c7 --- /dev/null +++ b/Swiftgram/SGActionRequestHandlerSanitizer/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGActionRequestHandlerSanitizer", + module_name = "SGActionRequestHandlerSanitizer", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGActionRequestHandlerSanitizer/Sources/File.swift b/Swiftgram/SGActionRequestHandlerSanitizer/Sources/File.swift new file mode 100644 index 00000000000..f94edc1c686 --- /dev/null +++ b/Swiftgram/SGActionRequestHandlerSanitizer/Sources/File.swift @@ -0,0 +1,15 @@ +import Foundation + +public func sgActionRequestHandlerSanitizer(_ url: URL) -> URL { + var url = url + if let scheme = url.scheme { + let openInPrefix = "\(scheme)://parseurl?url=" + let urlString = url.absoluteString + if urlString.hasPrefix(openInPrefix) { + if let unwrappedUrlString = String(urlString.dropFirst(openInPrefix.count)).removingPercentEncoding, let newUrl = URL(string: unwrappedUrlString) { + url = newUrl + } + } + } + return url +} diff --git a/Swiftgram/SGConfig/BUILD b/Swiftgram/SGConfig/BUILD new file mode 100644 index 00000000000..68f53fc3113 --- /dev/null +++ b/Swiftgram/SGConfig/BUILD @@ -0,0 +1,18 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGConfig", + module_name = "SGConfig", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/BuildConfig:BuildConfig" + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGConfig/Sources/File.swift b/Swiftgram/SGConfig/Sources/File.swift new file mode 100644 index 00000000000..3a2a4265688 --- /dev/null +++ b/Swiftgram/SGConfig/Sources/File.swift @@ -0,0 +1,20 @@ +import Foundation +import BuildConfig + +public struct SGConfig: Codable { + public var apiUrl: String = "https://api.swiftgram.app" + public var webappUrl: String = "https://my.swiftgram.app" + public var botUsername: String = "SwiftgramBot" +} + +private func parseSGConfig(_ jsonString: String) -> SGConfig { + let jsonData = Data(jsonString.utf8) + let decoder = JSONDecoder() + decoder.keyDecodingStrategy = .convertFromSnakeCase + return (try? decoder.decode(SGConfig.self, from: jsonData)) ?? SGConfig() +} + +private let baseAppBundleId = Bundle.main.bundleIdentifier! +private let buildConfig = BuildConfig(baseAppBundleId: baseAppBundleId) +public let SG_CONFIG: SGConfig = parseSGConfig(buildConfig.sgConfig) +public let SG_API_WEBAPP_URL_PARSED = URL(string: SG_CONFIG.webappUrl)! \ No newline at end of file diff --git a/Swiftgram/SGContentAnalysis/BUILD b/Swiftgram/SGContentAnalysis/BUILD new file mode 100644 index 00000000000..8679395f707 --- /dev/null +++ b/Swiftgram/SGContentAnalysis/BUILD @@ -0,0 +1,18 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGContentAnalysis", + module_name = "SGContentAnalysis", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGContentAnalysis/Sources/ContentAnalysis.swift b/Swiftgram/SGContentAnalysis/Sources/ContentAnalysis.swift new file mode 100644 index 00000000000..b75ba3fd3e4 --- /dev/null +++ b/Swiftgram/SGContentAnalysis/Sources/ContentAnalysis.swift @@ -0,0 +1,64 @@ +import SensitiveContentAnalysis +import SwiftSignalKit + +public enum ContentAnalysisError: Error { + case generic(_ message: String) +} + +public enum ContentAnalysisMediaType { + case image + case video +} + +public func canAnalyzeMedia() -> Bool { + if #available(iOS 17, *) { + let analyzer = SCSensitivityAnalyzer() + let policy = analyzer.analysisPolicy + return policy != .disabled + } else { + return false + } +} + + +public func analyzeMediaSignal(_ url: URL, mediaType: ContentAnalysisMediaType = .image) -> Signal { + return Signal { subscriber in + analyzeMedia(url: url, mediaType: mediaType, completion: { result, error in + if let result = result { + subscriber.putNext(result) + subscriber.putCompletion() + } else if let error = error { + subscriber.putError(error) + } else { + subscriber.putError(ContentAnalysisError.generic("Unknown response")) + } + }) + + return ActionDisposable { + } + } +} + +private func analyzeMedia(url: URL, mediaType: ContentAnalysisMediaType, completion: @escaping (Bool?, Error?) -> Void) { + if #available(iOS 17, *) { + let analyzer = SCSensitivityAnalyzer() + switch mediaType { + case .image: + analyzer.analyzeImage(at: url) { analysisResult, analysisError in + completion(analysisResult?.isSensitive, analysisError) + } + case .video: + Task { + do { + let handler = analyzer.videoAnalysis(forFileAt: url) + let response = try await handler.hasSensitiveContent() + completion(response.isSensitive, nil) + } catch { + completion(nil, error) + } + } + } + } else { + completion(false, nil) + } +} diff --git a/Swiftgram/SGDBReset/BUILD b/Swiftgram/SGDBReset/BUILD new file mode 100644 index 00000000000..c9e2113bd6f --- /dev/null +++ b/Swiftgram/SGDBReset/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "SGDBReset", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGDBReset/Sources/File.swift b/Swiftgram/SGDBReset/Sources/File.swift new file mode 100644 index 00000000000..1029c5e1529 --- /dev/null +++ b/Swiftgram/SGDBReset/Sources/File.swift @@ -0,0 +1,47 @@ +import UIKit +import Foundation +import SGLogging + +private let dbResetKey = "sg_db_reset" + +public func sgDBResetIfNeeded(databasePath: String, present: ((UIViewController) -> ())?) { + guard UserDefaults.standard.bool(forKey: dbResetKey) else { + return + } + NSLog("[SG.DBReset] Resetting DB with system settings") + let alert = UIAlertController( + title: "Database reset.\nPlease wait...", + message: nil, + preferredStyle: .alert + ) + present?(alert) + do { + let _ = try FileManager.default.removeItem(atPath: databasePath) + NSLog("[SG.DBReset] Done. Reset completed") + let successAlert = UIAlertController( + title: "Database reset completed", + message: nil, + preferredStyle: .alert + ) + successAlert.addAction(UIAlertAction(title: "Restart App", style: .cancel) { _ in + exit(0) + }) + successAlert.addAction(UIAlertAction(title: "OK", style: .default)) + alert.dismiss(animated: false) { + present?(successAlert) + } + } catch { + NSLog("[SG.DBReset] ERROR. Failed to reset database: \(error)") + let failAlert = UIAlertController( + title: "ERROR. Failed to reset database", + message: "\(error)", + preferredStyle: .alert + ) + alert.dismiss(animated: false) { + present?(failAlert) + } + } + UserDefaults.standard.set(false, forKey: dbResetKey) +// let semaphore = DispatchSemaphore(value: 0) +// semaphore.wait() +} diff --git a/Swiftgram/SGDebugUI/BUILD b/Swiftgram/SGDebugUI/BUILD new file mode 100644 index 00000000000..e5f93c9f803 --- /dev/null +++ b/Swiftgram/SGDebugUI/BUILD @@ -0,0 +1,46 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +config_setting( + name = "debug_build", + values = { + "compilation_mode": "dbg", + }, +) + +flex_dependency = select({ + ":debug_build": [ + "@flex_sdk//:FLEX" + ], + "//conditions:default": [], +}) + + +swift_library( + name = "SGDebugUI", + module_name = "SGDebugUI", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//Swiftgram/SGItemListUI:SGItemListUI", + "//Swiftgram/SGLogging:SGLogging", + "//Swiftgram/SGSimpleSettings:SGSimpleSettings", + "//Swiftgram/SGStrings:SGStrings", + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/Postbox:Postbox", + "//submodules/Display:Display", + "//submodules/TelegramCore:TelegramCore", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/ItemListUI:ItemListUI", + "//submodules/PresentationDataUtils:PresentationDataUtils", + "//submodules/OverlayStatusController:OverlayStatusController", + "//submodules/AccountContext:AccountContext", + "//submodules/UndoUI:UndoUI", + ] + flex_dependency, + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGDebugUI/Sources/SGDebugUI.swift b/Swiftgram/SGDebugUI/Sources/SGDebugUI.swift new file mode 100644 index 00000000000..5b356aef665 --- /dev/null +++ b/Swiftgram/SGDebugUI/Sources/SGDebugUI.swift @@ -0,0 +1,105 @@ +import Foundation +import SGItemListUI +import UndoUI +import AccountContext +import Display +import TelegramCore +import ItemListUI +import SwiftSignalKit +import TelegramPresentationData +import PresentationDataUtils + +// Optional +import SGSimpleSettings +import SGLogging +import OverlayStatusController +#if DEBUG +import FLEX +#endif + +private enum SGDebugControllerSection: Int32, SGItemListSection { + case base +} + +private enum SGDebugActions: String { + case flexing + case clearRegDateCache +} + + +private typealias SGDebugControllerEntry = SGItemListUIEntry + +private func SGDebugControllerEntries(presentationData: PresentationData) -> [SGDebugControllerEntry] { + var entries: [SGDebugControllerEntry] = [] + + let id = SGItemListCounter() + #if DEBUG + entries.append(.action(id: id.count, section: .base, actionType: .flexing, text: "FLEX", kind: .generic)) + #endif + entries.append(.action(id: id.count, section: .base, actionType: .clearRegDateCache, text: "Clear Regdate cache", kind: .generic)) + + return entries +} +private func okUndoController(_ text: String, _ presentationData: PresentationData) -> UndoOverlayController { + return UndoOverlayController(presentationData: presentationData, content: .succeed(text: text, timeout: nil, customUndoText: nil), elevatedLayout: false, action: { _ in return false }) +} + + +public func sgDebugController(context: AccountContext) -> ViewController { + var presentControllerImpl: ((ViewController, ViewControllerPresentationArguments?) -> Void)? + var pushControllerImpl: ((ViewController) -> Void)? + + let simplePromise = ValuePromise(true, ignoreRepeated: false) + + let arguments = SGItemListArguments(context: context, action: { actionType in + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + switch actionType { + case .clearRegDateCache: + SGLogger.shared.log("SGDebug", "Regdate cache cleanup init") + + /* + let spinner = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil)) + + presentControllerImpl?(spinner, nil) + */ + SGSimpleSettings.shared.regDateCache.drop() + SGLogger.shared.log("SGDebug", "Regdate cache cleanup succesfull") + presentControllerImpl?(okUndoController("OK: Regdate cache cleaned", presentationData), nil) + /* + Queue.mainQueue().async() { [weak spinner] in + spinner?.dismiss() + } + */ + case .flexing: + #if DEBUG + FLEXManager.shared.toggleExplorer() + #endif + } + }) + + let signal = combineLatest(context.sharedContext.presentationData, simplePromise.get()) + |> map { presentationData, _ -> (ItemListControllerState, (ItemListNodeState, Any)) in + + let entries = SGDebugControllerEntries(presentationData: presentationData) + + let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text("Swiftgram Debug"), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back)) + + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: entries, style: .blocks, ensureVisibleItemTag: /*focusOnItemTag*/ nil, initialScrollToItem: nil /* scrollToItem*/ ) + + return (controllerState, (listState, arguments)) + } + + let controller = ItemListController(context: context, state: signal) + presentControllerImpl = { [weak controller] c, a in + controller?.present(c, in: .window(.root), with: a) + } + pushControllerImpl = { [weak controller] c in + (controller?.navigationController as? NavigationController)?.pushViewController(c) + } + // Workaround + let _ = pushControllerImpl + + return controller +} + + diff --git a/Swiftgram/SGDeviceToken/BUILD b/Swiftgram/SGDeviceToken/BUILD new file mode 100644 index 00000000000..8a1446f3f1f --- /dev/null +++ b/Swiftgram/SGDeviceToken/BUILD @@ -0,0 +1,18 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGDeviceToken", + module_name = "SGDeviceToken", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGDeviceToken/Sources/File.swift b/Swiftgram/SGDeviceToken/Sources/File.swift new file mode 100644 index 00000000000..abf7df33570 --- /dev/null +++ b/Swiftgram/SGDeviceToken/Sources/File.swift @@ -0,0 +1,31 @@ +import SwiftSignalKit +import DeviceCheck + +public enum SGDeviceTokenError { + case unsupportedDevice + case generic(String) +} + +public func getDeviceToken() -> Signal { + return Signal { subscriber in + let currentDevice = DCDevice.current + if currentDevice.isSupported { + currentDevice.generateToken { (data, error) in + guard error == nil else { + subscriber.putError(.generic(error!.localizedDescription)) + return + } + if let tokenData = data { + subscriber.putNext(tokenData.base64EncodedString()) + subscriber.putCompletion() + } else { + subscriber.putError(.generic("Empty Token")) + } + } + } else { + subscriber.putError(.unsupportedDevice) + } + return ActionDisposable { + } + } +} diff --git a/Swiftgram/SGDoubleTapMessageAction/BUILD b/Swiftgram/SGDoubleTapMessageAction/BUILD new file mode 100644 index 00000000000..ac9be00d708 --- /dev/null +++ b/Swiftgram/SGDoubleTapMessageAction/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "SGDoubleTapMessageAction", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGDoubleTapMessageAction/Sources/SGDoubleTapMessageAction.swift b/Swiftgram/SGDoubleTapMessageAction/Sources/SGDoubleTapMessageAction.swift new file mode 100644 index 00000000000..2cefa9b8473 --- /dev/null +++ b/Swiftgram/SGDoubleTapMessageAction/Sources/SGDoubleTapMessageAction.swift @@ -0,0 +1,13 @@ +import Foundation +import SGSimpleSettings +import Postbox +import TelegramCore + + +func sgDoubleTapMessageAction(incoming: Bool, message: Message) -> String { + if incoming { + return SGSimpleSettings.MessageDoubleTapAction.default.rawValue + } else { + return SGSimpleSettings.shared.messageDoubleTapActionOutgoing + } +} diff --git a/Swiftgram/SGEmojiKeyboardDefaultFirst/BUILD b/Swiftgram/SGEmojiKeyboardDefaultFirst/BUILD new file mode 100644 index 00000000000..87428676030 --- /dev/null +++ b/Swiftgram/SGEmojiKeyboardDefaultFirst/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "SGEmojiKeyboardDefaultFirst", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGEmojiKeyboardDefaultFirst/Sources/SGEmojiKeyboardDefaultFirst.swift b/Swiftgram/SGEmojiKeyboardDefaultFirst/Sources/SGEmojiKeyboardDefaultFirst.swift new file mode 100644 index 00000000000..8d582084e29 --- /dev/null +++ b/Swiftgram/SGEmojiKeyboardDefaultFirst/Sources/SGEmojiKeyboardDefaultFirst.swift @@ -0,0 +1,23 @@ +import Foundation + + +func sgPatchEmojiKeyboardItems(_ items: [EmojiPagerContentComponent.ItemGroup]) -> [EmojiPagerContentComponent.ItemGroup] { + var items = items + let staticEmojisIndex = items.firstIndex { item in + if let groupId = item.groupId.base as? String, groupId == "static" { + return true + } + return false + } + let recentEmojisIndex = items.firstIndex { item in + if let groupId = item.groupId.base as? String, groupId == "recent" { + return true + } + return false + } + if let staticEmojisIndex = staticEmojisIndex { + let staticEmojiItem = items.remove(at: staticEmojisIndex) + items.insert(staticEmojiItem, at: (recentEmojisIndex ?? -1) + 1 ) + } + return items +} \ No newline at end of file diff --git a/Swiftgram/SGItemListUI/BUILD b/Swiftgram/SGItemListUI/BUILD new file mode 100644 index 00000000000..d0dd4589861 --- /dev/null +++ b/Swiftgram/SGItemListUI/BUILD @@ -0,0 +1,30 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGItemListUI", + module_name = "SGItemListUI", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/Display:Display", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/MtProtoKit:MtProtoKit", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/TelegramUIPreferences:TelegramUIPreferences", + "//submodules/ItemListUI:ItemListUI", + "//submodules/PresentationDataUtils:PresentationDataUtils", + "//submodules/OverlayStatusController:OverlayStatusController", + "//submodules/AccountContext:AccountContext", + "//submodules/AppBundle:AppBundle", + "//submodules/TelegramUI/Components/Settings/PeerNameColorScreen", + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGItemListUI/Sources/SGItemListUI.swift b/Swiftgram/SGItemListUI/Sources/SGItemListUI.swift new file mode 100644 index 00000000000..01f46194b19 --- /dev/null +++ b/Swiftgram/SGItemListUI/Sources/SGItemListUI.swift @@ -0,0 +1,211 @@ +// MARK: Swiftgram +import SGLogging +import SGSimpleSettings +import SGStrings +import SGAPIToken + +import Foundation +import UIKit +import Display +import SwiftSignalKit +import Postbox +import TelegramCore +import MtProtoKit +import MessageUI +import TelegramPresentationData +import TelegramUIPreferences +import ItemListUI +import PresentationDataUtils +import OverlayStatusController +import AccountContext +import AppBundle +import WebKit +import PeerNameColorScreen + +public class SGItemListCounter { + private var _count = 0 + + public init() {} + + public var count: Int { + _count += 1 + return _count + } + + public func increment(_ amount: Int) { + _count += amount + } + + public func countWith(_ amount: Int) -> Int { + _count += amount + return count + } +} + + +public protocol SGItemListSection: Equatable { + var rawValue: Int32 { get } +} + +public final class SGItemListArguments { + let context: AccountContext + // + let setBoolValue: (BoolSetting, Bool) -> Void + let updateSliderValue: (SliderSetting, Int32) -> Void + let setOneFromManyValue: (OneFromManySetting) -> Void + let openDisclosureLink: (DisclosureLink) -> Void + let action: (ActionType) -> Void + + + public init( + context: AccountContext, + // + setBoolValue: @escaping (BoolSetting, Bool) -> Void = { _,_ in }, + updateSliderValue: @escaping (SliderSetting, Int32) -> Void = { _,_ in }, + setOneFromManyValue: @escaping (OneFromManySetting) -> Void = { _ in }, + openDisclosureLink: @escaping (DisclosureLink) -> Void = { _ in}, + action: @escaping (ActionType) -> Void = { _ in } + ) { + self.context = context + // + self.setBoolValue = setBoolValue + self.updateSliderValue = updateSliderValue + self.setOneFromManyValue = setOneFromManyValue + self.openDisclosureLink = openDisclosureLink + self.action = action + } +} + +public enum SGItemListUIEntry: ItemListNodeEntry { + case header(id: Int, section: Section, text: String, badge: String?) + case toggle(id: Int, section: Section, settingName: BoolSetting, value: Bool, text: String, enabled: Bool) + case notice(id: Int, section: Section, text: String) + case percentageSlider(id: Int, section: Section, settingName: SliderSetting, value: Int32) + case oneFromManySelector(id: Int, section: Section, settingName: OneFromManySetting, text: String, value: String, enabled: Bool) + case disclosure(id: Int, section: Section, link: DisclosureLink, text: String) + case peerColorDisclosurePreview(id: Int, section: Section, name: String, color: UIColor) + case action(id: Int, section: Section, actionType: ActionType, text: String, kind: ItemListActionKind) + + public var section: ItemListSectionId { + switch self { + case let .header(_, sectionId, _, _): + return sectionId.rawValue + case let .toggle(_, sectionId, _, _, _, _): + return sectionId.rawValue + case let .notice(_, sectionId, _): + return sectionId.rawValue + + case let .disclosure(_, sectionId, _, _): + return sectionId.rawValue + + case let .percentageSlider(_, sectionId, _, _): + return sectionId.rawValue + + case let .peerColorDisclosurePreview(_, sectionId, _, _): + return sectionId.rawValue + case let .oneFromManySelector(_, sectionId, _, _, _, _): + return sectionId.rawValue + + case let .action(_, sectionId, _, _, _): + return sectionId.rawValue + } + } + + public var stableId: Int { + switch self { + case let .header(stableIdValue, _, _, _): + return stableIdValue + case let .toggle(stableIdValue, _, _, _, _, _): + return stableIdValue + case let .notice(stableIdValue, _, _): + return stableIdValue + case let .disclosure(stableIdValue, _, _, _): + return stableIdValue + case let .percentageSlider(stableIdValue, _, _, _): + return stableIdValue + case let .peerColorDisclosurePreview(stableIdValue, _, _, _): + return stableIdValue + case let .oneFromManySelector(stableIdValue, _, _, _, _, _): + return stableIdValue + case let .action(stableIdValue, _, _, _, _): + return stableIdValue + } + } + + public static func <(lhs: SGItemListUIEntry, rhs: SGItemListUIEntry) -> Bool { + return lhs.stableId < rhs.stableId + } + + public static func ==(lhs: SGItemListUIEntry, rhs: SGItemListUIEntry) -> Bool { + switch (lhs, rhs) { + case let (.header(id1, section1, text1, badge1), .header(id2, section2, text2, badge2)): + return id1 == id2 && section1 == section2 && text1 == text2 && badge1 == badge2 + + case let (.toggle(id1, section1, settingName1, value1, text1, enabled1), .toggle(id2, section2, settingName2, value2, text2, enabled2)): + return id1 == id2 && section1 == section2 && settingName1 == settingName2 && value1 == value2 && text1 == text2 && enabled1 == enabled2 + + case let (.notice(id1, section1, text1), .notice(id2, section2, text2)): + return id1 == id2 && section1 == section2 && text1 == text2 + + case let (.percentageSlider(id1, section1, settingName1, value1), .percentageSlider(id2, section2, settingName2, value2)): + return id1 == id2 && section1 == section2 && value1 == value2 && settingName1 == settingName2 + + case let (.disclosure(id1, section1, link1, text1), .disclosure(id2, section2, link2, text2)): + return id1 == id2 && section1 == section2 && link1 == link2 && text1 == text2 + + case let (.peerColorDisclosurePreview(id1, section1, name1, currentColor1), .peerColorDisclosurePreview(id2, section2, name2, currentColor2)): + return id1 == id2 && section1 == section2 && name1 == name2 && currentColor1 == currentColor2 + + case let (.oneFromManySelector(id1, section1, settingName1, text1, value1, enabled1), .oneFromManySelector(id2, section2, settingName2, text2, value2, enabled2)): + return id1 == id2 && section1 == section2 && settingName1 == settingName2 && text1 == text2 && value1 == value2 && enabled1 == enabled2 + case let (.action(id1, section1, actionType1, text1, kind1), .action(id2, section2, actionType2, text2, kind2)): + return id1 == id2 && section1 == section2 && actionType1 == actionType2 && text1 == text2 && kind1 == kind2 + + default: + return false + } + } + + + public func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { + let arguments = arguments as! SGItemListArguments + switch self { + case let .header(_, _, string, badge): + return ItemListSectionHeaderItem(presentationData: presentationData, text: string, badge: badge, sectionId: self.section) + + case let .toggle(_, _, setting, value, text, enabled): + return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, enabled: enabled, sectionId: self.section, style: .blocks, updated: { value in + arguments.setBoolValue(setting, value) + }) + case let .notice(_, _, string): + return ItemListTextItem(presentationData: presentationData, text: .markdown(string), sectionId: self.section) + case let .disclosure(_, _, link, text): + return ItemListDisclosureItem(presentationData: presentationData, title: text, label: "", sectionId: self.section, style: .blocks) { + arguments.openDisclosureLink(link) + } + case let .percentageSlider(_, _, setting, value): + return SliderPercentageItem( + theme: presentationData.theme, + strings: presentationData.strings, + value: value, + sectionId: self.section, + updated: { value in + arguments.updateSliderValue(setting, value) + } + ) + + case let .peerColorDisclosurePreview(_, _, name, color): + return ItemListDisclosureItem(presentationData: presentationData, title: " ", enabled: false, label: name, labelStyle: .semitransparentBadge(color), centerLabelAlignment: true, sectionId: self.section, style: .blocks, disclosureStyle: .none, action: { + }) + + case let .oneFromManySelector(_, _, settingName, text, value, enabled): + return ItemListDisclosureItem(presentationData: presentationData, title: text, enabled: enabled, label: value, sectionId: self.section, style: .blocks, action: { + arguments.setOneFromManyValue(settingName) + }) + case let .action(_, _, actionType, text, kind): + return ItemListActionItem(presentationData: presentationData, title: text, kind: kind, alignment: .natural, sectionId: self.section, style: .blocks, action: { + arguments.action(actionType) + }) + } + } +} diff --git a/Swiftgram/SGItemListUI/Sources/SliderPercentageItem.swift b/Swiftgram/SGItemListUI/Sources/SliderPercentageItem.swift new file mode 100644 index 00000000000..ad61f47bba7 --- /dev/null +++ b/Swiftgram/SGItemListUI/Sources/SliderPercentageItem.swift @@ -0,0 +1,353 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit +import SwiftSignalKit +import TelegramCore +import TelegramPresentationData +import LegacyComponents +import ItemListUI +import PresentationDataUtils +import AppBundle + +public class SliderPercentageItem: ListViewItem, ItemListItem { + let theme: PresentationTheme + let strings: PresentationStrings + let value: Int32 + public let sectionId: ItemListSectionId + let updated: (Int32) -> Void + + public init(theme: PresentationTheme, strings: PresentationStrings, value: Int32, sectionId: ItemListSectionId, updated: @escaping (Int32) -> Void) { + self.theme = theme + self.strings = strings + self.value = value + self.sectionId = sectionId + self.updated = updated + } + + public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + async { + let node = SliderPercentageItemNode() + let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + + node.contentSize = layout.contentSize + node.insets = layout.insets + + Queue.mainQueue().async { + completion(node, { + return (nil, { _ in apply() }) + }) + } + } + } + + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + Queue.mainQueue().async { + if let nodeValue = node() as? SliderPercentageItemNode { + let makeLayout = nodeValue.asyncLayout() + + async { + let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + Queue.mainQueue().async { + completion(layout, { _ in + apply() + }) + } + } + } + } + } +} + +private func rescalePercentageValueToSlider(_ value: CGFloat) -> CGFloat { + return max(0.0, min(1.0, value)) +} + +private func rescaleSliderValueToPercentageValue(_ value: CGFloat) -> CGFloat { + return max(0.0, min(1.0, value)) +} + +class SliderPercentageItemNode: ListViewItemNode { + private let backgroundNode: ASDisplayNode + private let topStripeNode: ASDisplayNode + private let bottomStripeNode: ASDisplayNode + private let maskNode: ASImageNode + + private var sliderView: TGPhotoEditorSliderView? + private let leftTextNode: ImmediateTextNode + private let rightTextNode: ImmediateTextNode + private let centerTextNode: ImmediateTextNode + private let centerMeasureTextNode: ImmediateTextNode + + private let batteryImage: UIImage? + private let batteryBackgroundNode: ASImageNode + private let batteryForegroundNode: ASImageNode + + private var item: SliderPercentageItem? + private var layoutParams: ListViewItemLayoutParams? + + // MARK: Swiftgram + private let activateArea: AccessibilityAreaNode + + init() { + self.backgroundNode = ASDisplayNode() + self.backgroundNode.isLayerBacked = true + + self.topStripeNode = ASDisplayNode() + self.topStripeNode.isLayerBacked = true + + self.bottomStripeNode = ASDisplayNode() + self.bottomStripeNode.isLayerBacked = true + + self.maskNode = ASImageNode() + + self.leftTextNode = ImmediateTextNode() + self.rightTextNode = ImmediateTextNode() + self.centerTextNode = ImmediateTextNode() + self.centerMeasureTextNode = ImmediateTextNode() + + self.batteryImage = nil //UIImage(bundleImageName: "Settings/UsageBatteryFrame") + self.batteryBackgroundNode = ASImageNode() + self.batteryForegroundNode = ASImageNode() + + // MARK: Swiftgram + self.activateArea = AccessibilityAreaNode() + + super.init(layerBacked: false, dynamicBounce: false) + + self.addSubnode(self.leftTextNode) + self.addSubnode(self.rightTextNode) + self.addSubnode(self.centerTextNode) + self.addSubnode(self.batteryBackgroundNode) + self.addSubnode(self.batteryForegroundNode) + self.addSubnode(self.activateArea) + + // MARK: Swiftgram + self.activateArea.increment = { [weak self] in + if let self { + self.sliderView?.increase(by: 0.10) + } + } + + self.activateArea.decrement = { [weak self] in + if let self { + self.sliderView?.decrease(by: 0.10) + } + } + } + + override func didLoad() { + super.didLoad() + + let sliderView = TGPhotoEditorSliderView() + sliderView.enableEdgeTap = true + sliderView.enablePanHandling = true + sliderView.trackCornerRadius = 1.0 + sliderView.lineSize = 4.0 + sliderView.minimumValue = 0.0 + sliderView.startValue = 0.0 + sliderView.maximumValue = 1.0 + sliderView.disablesInteractiveTransitionGestureRecognizer = true + sliderView.displayEdges = true + if let item = self.item, let params = self.layoutParams { + sliderView.value = rescalePercentageValueToSlider(CGFloat(item.value) / 100.0) + sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor + sliderView.backColor = item.theme.list.itemSwitchColors.frameColor + sliderView.trackColor = item.theme.list.itemAccentColor + sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme) + + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 18.0, y: 36.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 18.0 * 2.0, height: 44.0)) + } + self.view.addSubview(sliderView) + sliderView.addTarget(self, action: #selector(self.sliderValueChanged), for: .valueChanged) + self.sliderView = sliderView + } + + func asyncLayout() -> (_ item: SliderPercentageItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { + let currentItem = self.item + + return { item, params, neighbors in + var themeUpdated = false + if currentItem?.theme !== item.theme { + themeUpdated = true + } + + let contentSize: CGSize + let insets: UIEdgeInsets + let separatorHeight = UIScreenPixel + + contentSize = CGSize(width: params.width, height: 88.0) + insets = itemListNeighborsGroupedInsets(neighbors, params) + + let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) + let layoutSize = layout.size + + return (layout, { [weak self] in + if let strongSelf = self { + strongSelf.item = item + strongSelf.layoutParams = params + + strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor + strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor + strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor + + if strongSelf.backgroundNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) + } + if strongSelf.topStripeNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.topStripeNode, at: 1) + } + if strongSelf.bottomStripeNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.bottomStripeNode, at: 2) + } + if strongSelf.maskNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.maskNode, at: 3) + } + + let hasCorners = itemListHasRoundedBlockLayout(params) + var hasTopCorners = false + var hasBottomCorners = false + switch neighbors.top { + case .sameSection(false): + strongSelf.topStripeNode.isHidden = true + default: + hasTopCorners = true + strongSelf.topStripeNode.isHidden = hasCorners + } + let bottomStripeInset: CGFloat + let bottomStripeOffset: CGFloat + switch neighbors.bottom { + case .sameSection(false): + bottomStripeInset = params.leftInset + 16.0 + bottomStripeOffset = -separatorHeight + strongSelf.bottomStripeNode.isHidden = false + default: + bottomStripeInset = 0.0 + bottomStripeOffset = 0.0 + hasBottomCorners = true + strongSelf.bottomStripeNode.isHidden = hasCorners + } + + strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil + + strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) + strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight)) + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight)) + + strongSelf.leftTextNode.attributedText = NSAttributedString(string: "0%", font: Font.regular(13.0), textColor: item.theme.list.itemSecondaryTextColor) + strongSelf.rightTextNode.attributedText = NSAttributedString(string: "100%", font: Font.regular(13.0), textColor: item.theme.list.itemSecondaryTextColor) + + let centralText: String = "\(item.value)%" + let centralMeasureText: String = centralText + strongSelf.batteryBackgroundNode.isHidden = true + strongSelf.batteryForegroundNode.isHidden = strongSelf.batteryBackgroundNode.isHidden + strongSelf.centerTextNode.attributedText = NSAttributedString(string: centralText, font: Font.regular(16.0), textColor: item.theme.list.itemPrimaryTextColor) + strongSelf.centerMeasureTextNode.attributedText = NSAttributedString(string: centralMeasureText, font: Font.regular(16.0), textColor: item.theme.list.itemPrimaryTextColor) + + strongSelf.leftTextNode.isAccessibilityElement = true + strongSelf.leftTextNode.accessibilityLabel = "Minimum: \(Int32(rescaleSliderValueToPercentageValue(strongSelf.sliderView?.minimumValue ?? 0.0) * 100.0))%" + strongSelf.rightTextNode.isAccessibilityElement = true + strongSelf.rightTextNode.accessibilityLabel = "Maximum: \(Int32(rescaleSliderValueToPercentageValue(strongSelf.sliderView?.maximumValue ?? 1.0) * 100.0))%" + + let leftTextSize = strongSelf.leftTextNode.updateLayout(CGSize(width: 100.0, height: 100.0)) + let rightTextSize = strongSelf.rightTextNode.updateLayout(CGSize(width: 100.0, height: 100.0)) + let centerTextSize = strongSelf.centerTextNode.updateLayout(CGSize(width: 200.0, height: 100.0)) + let centerMeasureTextSize = strongSelf.centerMeasureTextNode.updateLayout(CGSize(width: 200.0, height: 100.0)) + + let sideInset: CGFloat = 18.0 + + strongSelf.leftTextNode.frame = CGRect(origin: CGPoint(x: params.leftInset + sideInset, y: 15.0), size: leftTextSize) + strongSelf.rightTextNode.frame = CGRect(origin: CGPoint(x: params.width - params.leftInset - sideInset - rightTextSize.width, y: 15.0), size: rightTextSize) + + var centerFrame = CGRect(origin: CGPoint(x: floor((params.width - centerMeasureTextSize.width) / 2.0), y: 11.0), size: centerTextSize) + if !strongSelf.batteryBackgroundNode.isHidden { + centerFrame.origin.x -= 12.0 + } + strongSelf.centerTextNode.frame = centerFrame + + if let frameImage = strongSelf.batteryImage { + strongSelf.batteryBackgroundNode.image = generateImage(frameImage.size, rotatedContext: { size, context in + UIGraphicsPushContext(context) + + context.clear(CGRect(origin: CGPoint(), size: size)) + + if let image = generateTintedImage(image: frameImage, color: item.theme.list.itemPrimaryTextColor.withMultipliedAlpha(0.9)) { + image.draw(in: CGRect(origin: CGPoint(), size: size)) + + let contentRect = CGRect(origin: CGPoint(x: 3.0, y: (size.height - 9.0) * 0.5), size: CGSize(width: 20.8, height: 9.0)) + context.addPath(UIBezierPath(roundedRect: contentRect, cornerRadius: 2.0).cgPath) + context.clip() + } + + UIGraphicsPopContext() + }) + strongSelf.batteryForegroundNode.image = generateImage(frameImage.size, rotatedContext: { size, context in + UIGraphicsPushContext(context) + + context.clear(CGRect(origin: CGPoint(), size: size)) + + let contentRect = CGRect(origin: CGPoint(x: 3.0, y: (size.height - 9.0) * 0.5), size: CGSize(width: 20.8, height: 9.0)) + context.addPath(UIBezierPath(roundedRect: contentRect, cornerRadius: 2.0).cgPath) + context.clip() + + context.setFillColor(UIColor.white.cgColor) + context.addPath(UIBezierPath(roundedRect: CGRect(origin: contentRect.origin, size: CGSize(width: contentRect.width * CGFloat(item.value) / 100.0, height: contentRect.height)), cornerRadius: 1.0).cgPath) + context.fillPath() + + UIGraphicsPopContext() + }) + + let batteryColor: UIColor + if item.value <= 20 { + batteryColor = UIColor(rgb: 0xFF3B30) + } else { + batteryColor = item.theme.list.itemSwitchColors.positiveColor + } + + if strongSelf.batteryForegroundNode.layer.layerTintColor == nil { + strongSelf.batteryForegroundNode.layer.layerTintColor = batteryColor.cgColor + } else { + ContainedViewLayoutTransition.animated(duration: 0.2, curve: .easeInOut).updateTintColor(layer: strongSelf.batteryForegroundNode.layer, color: batteryColor) + } + + strongSelf.batteryBackgroundNode.frame = CGRect(origin: CGPoint(x: centerFrame.minX + centerMeasureTextSize.width + 4.0, y: floor(centerFrame.midY - frameImage.size.height * 0.5)), size: frameImage.size) + strongSelf.batteryForegroundNode.frame = strongSelf.batteryBackgroundNode.frame + } + + if let sliderView = strongSelf.sliderView { + if themeUpdated { + sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor + sliderView.backColor = item.theme.list.itemSecondaryTextColor + sliderView.trackColor = item.theme.list.itemAccentColor.withAlphaComponent(0.45) + sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme) + } + + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 18.0, y: 36.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 18.0 * 2.0, height: 44.0)) + } + + strongSelf.activateArea.accessibilityLabel = "Slider" + strongSelf.activateArea.accessibilityValue = centralMeasureText + strongSelf.activateArea.accessibilityTraits = .adjustable + strongSelf.activateArea.frame = CGRect(origin: CGPoint(x: params.leftInset, y: 0.0), size: CGSize(width: params.width - params.leftInset - params.rightInset, height: layout.contentSize.height)) + } + }) + } + } + + override func animateInsertion(_ currentTimestamp: Double, duration: Double, options: ListViewItemAnimationOptions) { + self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) + } + + override func animateRemoved(_ currentTimestamp: Double, duration: Double) { + self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) + } + + @objc func sliderValueChanged() { + guard let sliderView = self.sliderView else { + return + } + self.item?.updated(Int32(rescaleSliderValueToPercentageValue(sliderView.value) * 100.0)) + } +} + diff --git a/Swiftgram/SGLogging/BUILD b/Swiftgram/SGLogging/BUILD new file mode 100644 index 00000000000..498396974c4 --- /dev/null +++ b/Swiftgram/SGLogging/BUILD @@ -0,0 +1,19 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGLogging", + module_name = "SGLogging", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/ManagedFile:ManagedFile" + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGLogging/Sources/SGLogger.swift b/Swiftgram/SGLogging/Sources/SGLogger.swift new file mode 100644 index 00000000000..22a88f02a81 --- /dev/null +++ b/Swiftgram/SGLogging/Sources/SGLogger.swift @@ -0,0 +1,236 @@ +import Foundation +import SwiftSignalKit +import ManagedFile + +private let queue = DispatchQueue(label: "app.swiftgram.ios.trace", qos: .utility) + +private var sharedLogger: SGLogger? + +private let binaryEventMarker: UInt64 = 0xcadebabef00dcafe + +private func rootPathForBasePath(_ appGroupPath: String) -> String { + return appGroupPath + "/telegram-data" +} + +public final class SGLogger { + private let queue = Queue(name: "app.swiftgram.ios.log", qos: .utility) + private let maxLength: Int = 2 * 1024 * 1024 + private let maxShortLength: Int = 1 * 1024 * 1024 + private let maxFiles: Int = 20 + + private let rootPath: String + private let basePath: String + private var file: (ManagedFile, Int)? + private var shortFile: (ManagedFile, Int)? + + public static let sgLogsPath = "/logs/app-logs-sg" + + public var logToFile: Bool = true + public var logToConsole: Bool = true + public var redactSensitiveData: Bool = true + + public static func setSharedLogger(_ logger: SGLogger) { + sharedLogger = logger + } + + public static var shared: SGLogger { + if let sharedLogger = sharedLogger { + return sharedLogger + } else { + print("SGLogger setup...") + guard let baseAppBundleId = Bundle.main.bundleIdentifier else { + print("Can't setup logger (1)!") + return SGLogger(rootPath: "", basePath: "") + } + let appGroupName = "group.\(baseAppBundleId)" + let maybeAppGroupUrl = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupName) + guard let appGroupUrl = maybeAppGroupUrl else { + print("Can't setup logger (2)!") + return SGLogger(rootPath: "", basePath: "") + } + let newRootPath = rootPathForBasePath(appGroupUrl.path) + let newLogsPath = newRootPath + sgLogsPath + let _ = try? FileManager.default.createDirectory(atPath: newLogsPath, withIntermediateDirectories: true, attributes: nil) + self.setSharedLogger(SGLogger(rootPath: newRootPath, basePath: newLogsPath)) + if let sharedLogger = sharedLogger { + return sharedLogger + } else { + print("Can't setup logger (3)!") + return SGLogger(rootPath: "", basePath: "") + } + } + } + + public init(rootPath: String, basePath: String) { + self.rootPath = rootPath + self.basePath = basePath + } + + public func collectLogs(prefix: String? = nil) -> Signal<[(String, String)], NoError> { + return Signal { subscriber in + self.queue.async { + let logsPath: String + if let prefix = prefix { + logsPath = self.rootPath + prefix + } else { + logsPath = self.basePath + } + + var result: [(Date, String, String)] = [] + if let files = try? FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: logsPath), includingPropertiesForKeys: [URLResourceKey.creationDateKey], options: []) { + for url in files { + if url.lastPathComponent.hasPrefix("log-") { + if let creationDate = (try? url.resourceValues(forKeys: Set([.creationDateKey])))?.creationDate { + result.append((creationDate, url.lastPathComponent, url.path)) + } + } + } + } + result.sort(by: { $0.0 < $1.0 }) + subscriber.putNext(result.map { ($0.1, $0.2) }) + subscriber.putCompletion() + } + + return EmptyDisposable + } + } + + public func collectLogs(basePath: String) -> Signal<[(String, String)], NoError> { + return Signal { subscriber in + self.queue.async { + let logsPath: String = basePath + + var result: [(Date, String, String)] = [] + if let files = try? FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: logsPath), includingPropertiesForKeys: [URLResourceKey.creationDateKey], options: []) { + for url in files { + if url.lastPathComponent.hasPrefix("log-") { + if let creationDate = (try? url.resourceValues(forKeys: Set([.creationDateKey])))?.creationDate { + result.append((creationDate, url.lastPathComponent, url.path)) + } + } + } + } + result.sort(by: { $0.0 < $1.0 }) + subscriber.putNext(result.map { ($0.1, $0.2) }) + subscriber.putCompletion() + } + + return EmptyDisposable + } + } + + public func log(_ tag: String, _ what: @autoclosure () -> String) { + if !self.logToFile && !self.logToConsole { + return + } + + let string = what() + + var rawTime = time_t() + time(&rawTime) + var timeinfo = tm() + localtime_r(&rawTime, &timeinfo) + + var curTime = timeval() + gettimeofday(&curTime, nil) + let milliseconds = curTime.tv_usec / 1000 + + var consoleContent: String? + if self.logToConsole { + let content = String(format: "[SG.%@] %d-%d-%d %02d:%02d:%02d.%03d %@", arguments: [tag, Int(timeinfo.tm_year) + 1900, Int(timeinfo.tm_mon + 1), Int(timeinfo.tm_mday), Int(timeinfo.tm_hour), Int(timeinfo.tm_min), Int(timeinfo.tm_sec), Int(milliseconds), string]) + consoleContent = content + print(content) + } + + if self.logToFile { + self.queue.async { + let content: String + if let consoleContent = consoleContent { + content = consoleContent + } else { + content = String(format: "[SG.%@] %d-%d-%d %02d:%02d:%02d.%03d %@", arguments: [tag, Int(timeinfo.tm_year) + 1900, Int(timeinfo.tm_mon + 1), Int(timeinfo.tm_mday), Int(timeinfo.tm_hour), Int(timeinfo.tm_min), Int(timeinfo.tm_sec), Int(milliseconds), string]) + } + + var currentFile: ManagedFile? + var openNew = false + if let (file, length) = self.file { + if length >= self.maxLength { + self.file = nil + openNew = true + } else { + currentFile = file + } + } else { + openNew = true + } + if openNew { + let _ = try? FileManager.default.createDirectory(atPath: self.basePath, withIntermediateDirectories: true, attributes: nil) + + var createNew = false + if let files = try? FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: self.basePath), includingPropertiesForKeys: [URLResourceKey.creationDateKey], options: []) { + var minCreationDate: (Date, URL)? + var maxCreationDate: (Date, URL)? + var count = 0 + for url in files { + if url.lastPathComponent.hasPrefix("log-") { + if let values = try? url.resourceValues(forKeys: Set([URLResourceKey.creationDateKey])), let creationDate = values.creationDate { + count += 1 + if minCreationDate == nil || minCreationDate!.0 > creationDate { + minCreationDate = (creationDate, url) + } + if maxCreationDate == nil || maxCreationDate!.0 < creationDate { + maxCreationDate = (creationDate, url) + } + } + } + } + if let (_, url) = minCreationDate, count >= self.maxFiles { + let _ = try? FileManager.default.removeItem(at: url) + } + if let (_, url) = maxCreationDate { + var value = stat() + if stat(url.path, &value) == 0 && Int(value.st_size) < self.maxLength { + if let file = ManagedFile(queue: self.queue, path: url.path, mode: .append) { + self.file = (file, Int(value.st_size)) + currentFile = file + } + } else { + createNew = true + } + } else { + createNew = true + } + } + + if createNew { + let fileName = String(format: "log-%d-%d-%d_%02d-%02d-%02d.%03d.txt", arguments: [Int(timeinfo.tm_year) + 1900, Int(timeinfo.tm_mon + 1), Int(timeinfo.tm_mday), Int(timeinfo.tm_hour), Int(timeinfo.tm_min), Int(timeinfo.tm_sec), Int(milliseconds)]) + + let path = self.basePath + "/" + fileName + + if let file = ManagedFile(queue: self.queue, path: path, mode: .append) { + self.file = (file, 0) + currentFile = file + } + } + } + + if let currentFile = currentFile { + if let data = content.data(using: .utf8) { + data.withUnsafeBytes { rawBytes -> Void in + let bytes = rawBytes.baseAddress!.assumingMemoryBound(to: UInt8.self) + + let _ = currentFile.write(bytes, count: data.count) + } + var newline: UInt8 = 0x0a + let _ = currentFile.write(&newline, count: 1) + if let file = self.file { + self.file = (file.0, file.1 + data.count + 1) + } else { + assertionFailure() + } + } + } + } + } + } +} diff --git a/Swiftgram/SGLogging/Sources/Utils.swift b/Swiftgram/SGLogging/Sources/Utils.swift new file mode 100644 index 00000000000..68381110b15 --- /dev/null +++ b/Swiftgram/SGLogging/Sources/Utils.swift @@ -0,0 +1,6 @@ +//import Foundation +// +//public func extractNameFromPath(_ path: String) -> String { +// let fileName = URL(fileURLWithPath: path).lastPathComponent +// return String(fileName.prefix(upTo: fileName.lastIndex { $0 == "." } ?? fileName.endIndex)) +//} diff --git a/Swiftgram/SGRegDate/BUILD b/Swiftgram/SGRegDate/BUILD new file mode 100644 index 00000000000..ff5f233e309 --- /dev/null +++ b/Swiftgram/SGRegDate/BUILD @@ -0,0 +1,27 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGRegDate", + module_name = "SGRegDate", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//Swiftgram/SGRegDateScheme:SGRegDateScheme", + "//Swiftgram/SGSimpleSettings:SGSimpleSettings", + "//Swiftgram/SGAPI:SGAPI", + "//Swiftgram/SGAPIToken:SGAPIToken", + "//Swiftgram/SGDeviceToken:SGDeviceToken", + "//Swiftgram/SGStrings:SGStrings", + + "//submodules/AccountContext:AccountContext", + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/TelegramPresentationData:TelegramPresentationData", + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGRegDate/Sources/SGRegDate.swift b/Swiftgram/SGRegDate/Sources/SGRegDate.swift new file mode 100644 index 00000000000..0be00196836 --- /dev/null +++ b/Swiftgram/SGRegDate/Sources/SGRegDate.swift @@ -0,0 +1,45 @@ +import Foundation +import SwiftSignalKit +import TelegramPresentationData + +import SGLogging +import SGStrings +import SGRegDateScheme +import AccountContext +import SGSimpleSettings +import SGAPI +import SGAPIToken +import SGDeviceToken + +public enum RegDateError { + case generic +} + +public func getRegDate(context: AccountContext, peerId: Int64) -> Signal { + return Signal { subscriber in + var tokensRequestSignal: Disposable? = nil + var apiRequestSignal: Disposable? = nil + if let regDateData = SGSimpleSettings.shared.regDateCache[String(peerId)], let regDate = try? JSONDecoder().decode(RegDate.self, from: regDateData), regDate.validUntil == 0 || regDate.validUntil > Int64(Date().timeIntervalSince1970) { + subscriber.putNext(regDate) + subscriber.putCompletion() + } else if SGSimpleSettings.shared.showRegDate { + tokensRequestSignal = combineLatest(getDeviceToken() |> mapError { error -> Void in SGLogger.shared.log("SGDeviceToken", "Error generating token: \(error)"); return Void() } , getSGApiToken(context: context) |> mapError { _ -> Void in return Void() }).start(next: { deviceToken, apiToken in + apiRequestSignal = getSGAPIRegDate(token: apiToken, deviceToken: deviceToken, userId: peerId).start(next: { regDate in + if let data = try? JSONEncoder().encode(regDate) { + SGSimpleSettings.shared.regDateCache[String(peerId)] = data + } + subscriber.putNext(regDate) + subscriber.putCompletion() + }) + }) + } else { + subscriber.putNext(nil) + subscriber.putCompletion() + } + + return ActionDisposable { + tokensRequestSignal?.dispose() + apiRequestSignal?.dispose() + } + } +} diff --git a/Swiftgram/SGRegDateScheme/BUILD b/Swiftgram/SGRegDateScheme/BUILD new file mode 100644 index 00000000000..008f82658db --- /dev/null +++ b/Swiftgram/SGRegDateScheme/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGRegDateScheme", + module_name = "SGRegDateScheme", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGRegDateScheme/Sources/File.swift b/Swiftgram/SGRegDateScheme/Sources/File.swift new file mode 100644 index 00000000000..a972377e8bb --- /dev/null +++ b/Swiftgram/SGRegDateScheme/Sources/File.swift @@ -0,0 +1,7 @@ +import Foundation + +public struct RegDate: Codable { + public let from: Int64 + public let to: Int64 + public let validUntil: Int64 +} diff --git a/Swiftgram/SGRequests/BUILD b/Swiftgram/SGRequests/BUILD new file mode 100644 index 00000000000..979d84f32e9 --- /dev/null +++ b/Swiftgram/SGRequests/BUILD @@ -0,0 +1,18 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGRequests", + module_name = "SGRequests", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit" + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGRequests/Sources/File.swift b/Swiftgram/SGRequests/Sources/File.swift new file mode 100644 index 00000000000..19dfa3da279 --- /dev/null +++ b/Swiftgram/SGRequests/Sources/File.swift @@ -0,0 +1,72 @@ +import Foundation +import SwiftSignalKit + + +public func requestsDownload(url: URL) -> Signal<(Data, URLResponse?), Error?> { + return Signal { subscriber in + let completed = Atomic(value: false) + + let downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { location, response, error in + let _ = completed.swap(true) + if let location = location, let data = try? Data(contentsOf: location) { + subscriber.putNext((data, response)) + subscriber.putCompletion() + } else { + subscriber.putError(error) + } + }) + downloadTask.resume() + + return ActionDisposable { + if !completed.with({ $0 }) { + downloadTask.cancel() + } + } + } +} + +public func requestsGet(url: URL) -> Signal<(Data, URLResponse?), Error?> { + return Signal { subscriber in + let completed = Atomic(value: false) + + let urlTask = URLSession.shared.dataTask(with: url, completionHandler: { data, response, error in + let _ = completed.swap(true) + if let strongData = data { + subscriber.putNext((strongData, response)) + subscriber.putCompletion() + } else { + subscriber.putError(error) + } + }) + urlTask.resume() + + return ActionDisposable { + if !completed.with({ $0 }) { + urlTask.cancel() + } + } + } +} + + +public func requestsCustom(request: URLRequest) -> Signal<(Data, URLResponse?), Error?> { + return Signal { subscriber in + let completed = Atomic(value: false) + let urlTask = URLSession.shared.dataTask(with: request, completionHandler: { data, response, error in + _ = completed.swap(true) + if let strongData = data { + subscriber.putNext((strongData, response)) + subscriber.putCompletion() + } else { + subscriber.putError(error) + } + }) + urlTask.resume() + + return ActionDisposable { + if !completed.with({ $0 }) { + urlTask.cancel() + } + } + } +} diff --git a/Swiftgram/SGSettingsBundle/BUILD b/Swiftgram/SGSettingsBundle/BUILD new file mode 100644 index 00000000000..e0d37a3c515 --- /dev/null +++ b/Swiftgram/SGSettingsBundle/BUILD @@ -0,0 +1,10 @@ +load("@build_bazel_rules_apple//apple:resources.bzl", "apple_bundle_import") + +apple_bundle_import( + name = "SGSettingsBundle", + bundle_imports = glob([ + "Settings.bundle/*", + "Settings.bundle/**/*", + ]), + visibility = ["//visibility:public"] +) \ No newline at end of file diff --git a/Swiftgram/SGSettingsBundle/Settings.bundle/Root.plist b/Swiftgram/SGSettingsBundle/Settings.bundle/Root.plist new file mode 100644 index 00000000000..92c85b662db --- /dev/null +++ b/Swiftgram/SGSettingsBundle/Settings.bundle/Root.plist @@ -0,0 +1,29 @@ + + + + + StringsTable + Root + PreferenceSpecifiers + + + Type + PSGroupSpecifier + FooterText + Reset.Notice + Title + Reset.Title + + + Type + PSToggleSwitchSpecifier + Title + Reset.Toggle + Key + sg_db_reset + DefaultValue + + + + + diff --git a/Swiftgram/SGSettingsBundle/Settings.bundle/en.lproj/Root.strings b/Swiftgram/SGSettingsBundle/Settings.bundle/en.lproj/Root.strings new file mode 100644 index 00000000000..6986865c883 --- /dev/null +++ b/Swiftgram/SGSettingsBundle/Settings.bundle/en.lproj/Root.strings @@ -0,0 +1,5 @@ +/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */ + +"Reset.Title" = "TROUBLESHOOTING"; +"Reset.Toggle" = "Reset caches on next launch"; +"Reset.Notice" = "Use in case you're stuck and can't open the app. This WILL NOT logout your accounts, but all secret chats will be lost."; diff --git a/Swiftgram/SGSettingsBundle/Settings.bundle/ru.lproj/Root.strings b/Swiftgram/SGSettingsBundle/Settings.bundle/ru.lproj/Root.strings new file mode 100644 index 00000000000..42015a1b91c --- /dev/null +++ b/Swiftgram/SGSettingsBundle/Settings.bundle/ru.lproj/Root.strings @@ -0,0 +1,3 @@ +"Reset.Title" = "РЕШЕНИЕ ПРОБЛЕМ"; +"Reset.Toggle" = "Сбросить кэш при следующем запуске"; +"Reset.Notice" = "Используйте, если приложение вылетает или не загружается. Эта опция НЕ СБРАСЫВАЕТ ваши аккаунты, но удалит все секретные чаты."; diff --git a/Swiftgram/SGSettingsUI/BUILD b/Swiftgram/SGSettingsUI/BUILD new file mode 100644 index 00000000000..fbb4e47a46b --- /dev/null +++ b/Swiftgram/SGSettingsUI/BUILD @@ -0,0 +1,42 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +filegroup( + name = "SGUIAssets", + srcs = glob(["Images.xcassets/**"]), + visibility = ["//visibility:public"], +) + +swift_library( + name = "SGSettingsUI", + module_name = "SGSettingsUI", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//Swiftgram/SGItemListUI:SGItemListUI", + "//Swiftgram/SGLogging:SGLogging", + "//Swiftgram/SGSimpleSettings:SGSimpleSettings", + "//Swiftgram/SGStrings:SGStrings", +# "//Swiftgram/SGAPI:SGAPI", + "//Swiftgram/SGAPIToken:SGAPIToken", + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/Display:Display", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/MtProtoKit:MtProtoKit", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/TelegramUIPreferences:TelegramUIPreferences", + "//submodules/ItemListUI:ItemListUI", + "//submodules/PresentationDataUtils:PresentationDataUtils", + "//submodules/OverlayStatusController:OverlayStatusController", + "//submodules/AccountContext:AccountContext", + "//submodules/AppBundle:AppBundle", + "//submodules/TelegramUI/Components/Settings/PeerNameColorScreen", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/Contents.json b/Swiftgram/SGSettingsUI/Images.xcassets/Contents.json new file mode 100644 index 00000000000..73c00596a7f --- /dev/null +++ b/Swiftgram/SGSettingsUI/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/Contents.json b/Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/Contents.json new file mode 100644 index 00000000000..526cf46d7c8 --- /dev/null +++ b/Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_lt_savetocloud.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/ic_lt_savetocloud.pdf b/Swiftgram/SGSettingsUI/Images.xcassets/SaveToCloud.imageset/ic_lt_savetocloud.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed4efd9629f28a61f48b39ce8103d821258071dd GIT binary patch literal 6150 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 literal 0 HcmV?d00001 diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/Contents.json b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/Contents.json new file mode 100644 index 00000000000..6fb419fc51b --- /dev/null +++ b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "swiftgram_context_menu.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/swiftgram_context_menu.pdf b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramContextMenu.imageset/swiftgram_context_menu.pdf new file mode 100644 index 0000000000000000000000000000000000000000..30789ecb778148416e244a123779d862cbfeab61 GIT binary patch literal 1342 zcmZvcO>fgc5QgvjE9O$EMe2G#W@l%msuE2pLVySm0i!9ervy8^hlfXho&)rM#9XTG0yqS4BM1E%vI7RBn&A#I~PdASBf=< z5UGbY*@yvHQ#5{i&m*%tMj-_6oapWEu?`L$bFVizC+#?e=pbqejst;BIs_!l$i;*t z*-LyT@>cYuVV+Vj@-$kOz#?bFmkqKogNCg1L%ZZdj6m8U=E|f*&uB@Ah(}C)tv-q{ z=3=}-%34XxD1{4)hA0sv%@&FxvF!g!Bx7!en8+QRmDmzlVuIr|2;qI&KjGW@j z?;jNu)AFI(fsfT=Yv zxe*3ohYl7uqj8~&_sfN(3b}$A3~?sSlla;f`L{w2l;}t)7ub#g_k~Z&u3R+_$F9$t z>R!pLs_hpb{{qQs1Q5JC)b(?azsx~UW zy?58rj?=bTS7&g#T%2v2Qp}pBgIsXm;No`qr;_aZFI~Cm`f{vwMxC6z`E>IaQPm>c literal 0 HcmV?d00001 diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Contents.json b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Contents.json new file mode 100644 index 00000000000..1bf20b6bc87 --- /dev/null +++ b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "filename" : "Swiftgram.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } + } + \ No newline at end of file diff --git a/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Swiftgram.pdf b/Swiftgram/SGSettingsUI/Images.xcassets/SwiftgramSettings.imageset/Swiftgram.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6abd681bf69d6f58a80b6c61a054e321e691df47 GIT binary patch literal 7049 zcmeHM-EZ4A5P#QS!IuK<089L)2owR@qzQ&CXqN1uz_16!RvmY?mD%!;uIT^1A0>*U z61z$Fwjp|Os1td-j~|bBmlqc&rxTW&EMtU{=K51c$m`dn__qcLd)W+APIv2RyJ*(Ge!i`V#JZ!SY};Z4`Fik}v(F+vax9U^IEVyCxH8WlJh7S?!i_*J?KFSMOWk zWpN9FVBcKe#qAgPm$2X~S$rgJn_%e2l%Tn#%xX4R!#m2`CVlI8J4<}c>h;W97bAy& z%z3?sf)Lhy@2DbB9Y8wg6d&GSf2yag_pJwwOh9wCX`nz{(7pH5J5=@1x&psVwcg%V zn|eL{Jo*mj`$@a&)*+%eZ8j@UyR5g(ZZoa7-4+*B+t!yks;IRhsVWm`iKh%{_G!~zUNEv_z~Z;>M&_A zWQREZZ&Z4B*8;?_e!JP#{m*yXc!1$yIsKQyqwu@L^~cFCeTt4pM+l29GIrY*Z{Ic! z(!32|QhBJah$wPt#R4n1X;$aly!Ty3WFP z!D(J9frqRTYH4z#q}Dd-B00-BRf2OI*4!f6YeOVXXX%I~nPyz(5@R8W)HZiKC5AlL z?kR}`Q-$NKHPI?(7#U8awK?Tha03Pw;o6ZYNsPq6mP@cLM^wvl=6IQuI?WP&5+2J; zM2!;qppz0Qmq96I$KnlI8E6%C8HQGm)b@HQ=$+bV&*m^_LftQDqSiD^X0vF9<%m8Q zjitQ3eI@)B#q++93=T+j>HWr|R#4k}n8E;FDcH!PL2}2yg9HYR5R0adviM6Q)!iW5!^j+jQ&K6AON>izn4u zP)o)j2Ji=)aAzgVg;Yj^hX6ZM8n_6&A+*GhK`qL_+bAdtp`8FySmbZMRKPtKrA&ziM8xl&ahyA009I+7_Z{QFW5P9Jtgxkv_zW1r98M+z`7JDk$N)Vd z5%khz0z-qQsDjY@!PjB`hYtLEvR#+1_Sr5ohJ|!j1#(gk>6jBe*F#-w2-V8}xE^v| ze^?KhK#k?i-g>A^K=WJ={b%bT7Z9H7p`rd6Dv#m);NPJLc&>+@>miD3et(&fr0+?Q zk>vVA-O!b5&-GBODH0ov%a6Wjey)cetB3Zagzm=nDIv1kkP@ON;mPjC_ji4FpM7A& zwMQ>wLk2ykv#Yjh>+buzz8iUUUTy#A2wgNR-0M@CJ)}4zF5P(A^;4jo`eu21Q$5c5 zn^D|1rGh4h*bRLsFdKTsjE+p@8^h?NdK>wMbJA+s(|9UiwK+ORFz!i%!gY_MI*z@k zWb_kih15}R*6XH4^VRqKLa%LJ_Zk)F^=wgne*+CyUJ)D64jkS;XvVJ5am1dT9R})! z>u$HGvi!`{UgPHaPm8Wu-05*SbezF;=aze+djwrn^Lh(P$}1K$4yN6VxTzDmUwT}% z)v}q77vF8_j~OaKm35_m_k*UHLSYKJf1FnCA!z6IkE`~(Q9?rXJSL$n2LQMy%o0LD z+A*m_J$#>p5_n8f_JI(}J`e(R==~ivw!Fs+RrmcJ(UN#DOFOW6QQJ+mSk{}&8TiK& zG+tkBn^paayj;v)_5La@n+DDb{|hOu7Jt{yuJF{htu}3EX><{J_Tt66_ox2=`ewzZ literal 0 HcmV?d00001 diff --git a/Swiftgram/SGSettingsUI/Sources/SGSettingsController.swift b/Swiftgram/SGSettingsUI/Sources/SGSettingsController.swift new file mode 100644 index 00000000000..3030f4aac0e --- /dev/null +++ b/Swiftgram/SGSettingsUI/Sources/SGSettingsController.swift @@ -0,0 +1,636 @@ +// MARK: Swiftgram +import SGLogging +import SGSimpleSettings +import SGStrings +import SGAPIToken + +import SGItemListUI +import Foundation +import UIKit +import Display +import SwiftSignalKit +import Postbox +import TelegramCore +import MtProtoKit +import MessageUI +import TelegramPresentationData +import TelegramUIPreferences +import ItemListUI +import PresentationDataUtils +import OverlayStatusController +import AccountContext +import AppBundle +import WebKit +import PeerNameColorScreen + + +private enum SGControllerSection: Int32, SGItemListSection { + case content + case tabs + case folders + case chatList + case profiles + case stories + case translation + case photo + case stickers + case videoNotes + case contextMenu + case accountColors + case other +} + +private enum SGBoolSetting: String { + case hidePhoneInSettings + case showTabNames + case showContactsTab + case showCallsTab + case foldersAtBottom + case startTelescopeWithRearCam + case hideStories + case uploadSpeedBoost + case showProfileId + case warnOnStoriesOpen + case sendWithReturnKey + case rememberLastFolder + case sendLargePhotos + case storyStealthMode + case disableSwipeToRecordStory + case quickTranslateButton + case hideReactions + case showRepostToStory + case contextShowSelectFromUser + case contextShowSaveToCloud + case contextShowHideForwardName + case contextShowRestrict + case contextShowReport + case contextShowReply + case contextShowPin + case contextShowSaveMedia + case contextShowMessageReplies + case contextShowJson + case disableScrollToNextChannel + case disableScrollToNextTopic + case disableChatSwipeOptions + case disableGalleryCamera + case disableSendAsButton + case disableSnapDeletionEffect + case stickerTimestamp + case hideRecordingButton + case hideTabBar + case showDC + case showCreationDate + case showRegDate + case compactChatList + case compactFolderNames + case allChatsHidden + case defaultEmojisFirst + case messageDoubleTapActionOutgoingEdit + case wideChannelPosts + case forceEmojiTab + case forceBuiltInMic +} + +private enum SGOneFromManySetting: String { + case bottomTabStyle + case downloadSpeedBoost + case allChatsTitleLengthOverride +// case allChatsFolderPositionOverride +} + +private enum SGSliderSetting: String { + case accountColorsSaturation + case outgoingPhotoQuality + case stickerSize +} + +private enum SGDisclosureLink: String { + case contentSettings + case languageSettings +} + +private struct PeerNameColorScreenState: Equatable { + var updatedNameColor: PeerNameColor? + var updatedBackgroundEmojiId: Int64? +} + +private typealias SGControllerEntry = SGItemListUIEntry + +private func SGControllerEntries(presentationData: PresentationData, callListSettings: CallListSettings, experimentalUISettings: ExperimentalUISettings, SGSettings: SGUISettings, appConfiguration: AppConfiguration, nameColors: PeerNameColors /*state: PeerNameColorScreenState,*/) -> [SGControllerEntry] { + + let lang = presentationData.strings.baseLanguageCode + var entries: [SGControllerEntry] = [] + + let id = SGItemListCounter() + + if appConfiguration.sgWebSettings.global.canEditSettings { + entries.append(.disclosure(id: id.count, section: .content, link: .contentSettings, text: i18n("Settings.ContentSettings", lang))) + } else { + id.increment(1) + } + + entries.append(.header(id: id.count, section: .tabs, text: i18n("Settings.Tabs.Header", lang), badge: nil)) + entries.append(.toggle(id: id.count, section: .tabs, settingName: .hideTabBar, value: SGSimpleSettings.shared.hideTabBar, text: i18n("Settings.Tabs.HideTabBar", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .tabs, settingName: .showContactsTab, value: callListSettings.showContactsTab, text: i18n("Settings.Tabs.ShowContacts", lang), enabled: !SGSimpleSettings.shared.hideTabBar)) + entries.append(.toggle(id: id.count, section: .tabs, settingName: .showCallsTab, value: callListSettings.showTab, text: presentationData.strings.CallSettings_TabIcon, enabled: !SGSimpleSettings.shared.hideTabBar)) + entries.append(.toggle(id: id.count, section: .tabs, settingName: .showTabNames, value: SGSimpleSettings.shared.showTabNames, text: i18n("Settings.Tabs.ShowNames", lang), enabled: !SGSimpleSettings.shared.hideTabBar)) + + entries.append(.header(id: id.count, section: .folders, text: presentationData.strings.Settings_ChatFolders.uppercased(), badge: nil)) + entries.append(.toggle(id: id.count, section: .folders, settingName: .foldersAtBottom, value: experimentalUISettings.foldersTabAtBottom, text: i18n("Settings.Folders.BottomTab", lang), enabled: true)) + entries.append(.oneFromManySelector(id: id.count, section: .folders, settingName: .bottomTabStyle, text: i18n("Settings.Folders.BottomTabStyle", lang), value: i18n("Settings.Folders.BottomTabStyle.\(SGSimpleSettings.shared.bottomTabStyle)", lang), enabled: experimentalUISettings.foldersTabAtBottom)) + entries.append(.toggle(id: id.count, section: .folders, settingName: .allChatsHidden, value: SGSimpleSettings.shared.allChatsHidden, text: i18n("Settings.Folders.AllChatsHidden", lang, presentationData.strings.ChatList_Tabs_AllChats), enabled: true)) + #if DEBUG +// entries.append(.oneFromManySelector(id: id.count, section: .folders, settingName: .allChatsFolderPositionOverride, text: i18n("Settings.Folders.AllChatsPlacement", lang), value: i18n("Settings.Folders.AllChatsPlacement.\(SGSimpleSettings.shared.allChatsFolderPositionOverride)", lang), enabled: true)) + #endif + entries.append(.toggle(id: id.count, section: .folders, settingName: .compactFolderNames, value: SGSimpleSettings.shared.compactFolderNames, text: i18n("Settings.Folders.CompactNames", lang), enabled: SGSimpleSettings.shared.bottomTabStyle != SGSimpleSettings.BottomTabStyleValues.ios.rawValue)) + entries.append(.oneFromManySelector(id: id.count, section: .folders, settingName: .allChatsTitleLengthOverride, text: i18n("Settings.Folders.AllChatsTitle", lang), value: i18n("Settings.Folders.AllChatsTitle.\(SGSimpleSettings.shared.allChatsTitleLengthOverride)", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .folders, settingName: .rememberLastFolder, value: SGSimpleSettings.shared.rememberLastFolder, text: i18n("Settings.Folders.RememberLast", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .folders, text: i18n("Settings.Folders.RememberLast.Notice", lang))) + + entries.append(.header(id: id.count, section: .chatList, text: i18n("Settings.ChatList.Header", lang), badge: nil)) + entries.append(.toggle(id: id.count, section: .chatList, settingName: .compactChatList, value: SGSimpleSettings.shared.compactChatList, text: i18n("Settings.CompactChatList", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .chatList, settingName: .disableChatSwipeOptions, value: !SGSimpleSettings.shared.disableChatSwipeOptions, text: i18n("Settings.ChatSwipeOptions", lang), enabled: true)) + + entries.append(.header(id: id.count, section: .profiles, text: i18n("Settings.Profiles.Header", lang), badge: nil)) + entries.append(.toggle(id: id.count, section: .profiles, settingName: .showProfileId, value: SGSettings.showProfileId, text: i18n("Settings.ShowProfileID", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .profiles, settingName: .showDC, value: SGSimpleSettings.shared.showDC, text: i18n("Settings.ShowDC", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .profiles, settingName: .showRegDate, value: SGSimpleSettings.shared.showRegDate, text: i18n("Settings.ShowRegDate", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .profiles, text: i18n("Settings.ShowRegDate.Notice", lang))) + entries.append(.toggle(id: id.count, section: .profiles, settingName: .showCreationDate, value: SGSimpleSettings.shared.showCreationDate, text: i18n("Settings.ShowCreationDate", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .profiles, text: i18n("Settings.ShowCreationDate.Notice", lang))) + + entries.append(.header(id: id.count, section: .stories, text: presentationData.strings.AutoDownloadSettings_Stories.uppercased(), badge: nil)) + entries.append(.toggle(id: id.count, section: .stories, settingName: .hideStories, value: SGSettings.hideStories, text: i18n("Settings.Stories.Hide", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .stories, settingName: .disableSwipeToRecordStory, value: SGSimpleSettings.shared.disableSwipeToRecordStory, text: i18n("Settings.Stories.DisableSwipeToRecord", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .stories, settingName: .warnOnStoriesOpen, value: SGSettings.warnOnStoriesOpen, text: i18n("Settings.Stories.WarnBeforeView", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .stories, settingName: .showRepostToStory, value: SGSimpleSettings.shared.showRepostToStory, text: presentationData.strings.Share_RepostToStory.replacingOccurrences(of: "\n", with: " "), enabled: true)) + if SGSimpleSettings.shared.canUseStealthMode { + entries.append(.toggle(id: id.count, section: .stories, settingName: .storyStealthMode, value: SGSimpleSettings.shared.storyStealthMode, text: presentationData.strings.Story_StealthMode_Title, enabled: true)) + entries.append(.notice(id: id.count, section: .stories, text: presentationData.strings.Story_StealthMode_ControlText)) + } else { + id.increment(2) + } + + + entries.append(.header(id: id.count, section: .translation, text: presentationData.strings.Localization_TranslateMessages.uppercased(), badge: nil)) + entries.append(.toggle(id: id.count, section: .translation, settingName: .quickTranslateButton, value: SGSimpleSettings.shared.quickTranslateButton, text: i18n("Settings.Translation.QuickTranslateButton", lang), enabled: true)) + entries.append(.disclosure(id: id.count, section: .translation, link: .languageSettings, text: presentationData.strings.Localization_TranslateEntireChat)) + entries.append(.notice(id: id.count, section: .translation, text: i18n("Common.NoTelegramPremiumNeeded", lang, presentationData.strings.Settings_Premium))) + + entries.append(.header(id: id.count, section: .photo, text: presentationData.strings.NetworkUsageSettings_MediaImageDataSection, badge: nil)) + entries.append(.header(id: id.count, section: .photo, text: presentationData.strings.PhotoEditor_QualityTool.uppercased(), badge: nil)) + entries.append(.percentageSlider(id: id.count, section: .photo, settingName: .outgoingPhotoQuality, value: SGSimpleSettings.shared.outgoingPhotoQuality)) + entries.append(.notice(id: id.count, section: .photo, text: i18n("Settings.Photo.Quality.Notice", lang))) + entries.append(.toggle(id: id.count, section: .photo, settingName: .sendLargePhotos, value: SGSimpleSettings.shared.sendLargePhotos, text: i18n("Settings.Photo.SendLarge", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .photo, text: i18n("Settings.Photo.SendLarge.Notice", lang))) + + entries.append(.header(id: id.count, section: .stickers, text: presentationData.strings.StickerPacksSettings_Title.uppercased(), badge: nil)) + entries.append(.header(id: id.count, section: .stickers, text: i18n("Settings.Stickers.Size", lang), badge: nil)) + entries.append(.percentageSlider(id: id.count, section: .stickers, settingName: .stickerSize, value: SGSimpleSettings.shared.stickerSize)) + entries.append(.toggle(id: id.count, section: .stickers, settingName: .stickerTimestamp, value: SGSimpleSettings.shared.stickerTimestamp, text: i18n("Settings.Stickers.Timestamp", lang), enabled: true)) + + + entries.append(.header(id: id.count, section: .videoNotes, text: i18n("Settings.VideoNotes.Header", lang), badge: nil)) + entries.append(.toggle(id: id.count, section: .videoNotes, settingName: .startTelescopeWithRearCam, value: SGSimpleSettings.shared.startTelescopeWithRearCam, text: i18n("Settings.VideoNotes.StartWithRearCam", lang), enabled: true)) + + entries.append(.header(id: id.count, section: .contextMenu, text: i18n("Settings.ContextMenu", lang), badge: nil)) + entries.append(.notice(id: id.count, section: .contextMenu, text: i18n("Settings.ContextMenu.Notice", lang))) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowSaveToCloud, value: SGSimpleSettings.shared.contextShowSaveToCloud, text: i18n("ContextMenu.SaveToCloud", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowHideForwardName, value: SGSimpleSettings.shared.contextShowHideForwardName, text: presentationData.strings.Conversation_ForwardOptions_HideSendersNames, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowSelectFromUser, value: SGSimpleSettings.shared.contextShowSelectFromUser, text: i18n("ContextMenu.SelectFromUser", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowRestrict, value: SGSimpleSettings.shared.contextShowRestrict, text: presentationData.strings.Conversation_ContextMenuBan, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowReport, value: SGSimpleSettings.shared.contextShowReport, text: presentationData.strings.Conversation_ContextMenuReport, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowReply, value: SGSimpleSettings.shared.contextShowReply, text: presentationData.strings.Conversation_ContextMenuReply, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowPin, value: SGSimpleSettings.shared.contextShowPin, text: presentationData.strings.Conversation_Pin, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowSaveMedia, value: SGSimpleSettings.shared.contextShowSaveMedia, text: presentationData.strings.Conversation_SaveToFiles, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowMessageReplies, value: SGSimpleSettings.shared.contextShowMessageReplies, text: presentationData.strings.Conversation_ContextViewThread, enabled: true)) + entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowJson, value: SGSimpleSettings.shared.contextShowJson, text: "JSON", enabled: true)) + /* entries.append(.toggle(id: id.count, section: .contextMenu, settingName: .contextShowRestrict, value: SGSimpleSettings.shared.contextShowRestrict, text: presentationData.strings.Conversation_ContextMenuBan)) */ + + entries.append(.header(id: id.count, section: .accountColors, text: i18n("Settings.CustomColors.Header", lang), badge: nil)) + entries.append(.header(id: id.count, section: .accountColors, text: i18n("Settings.CustomColors.Saturation", lang), badge: nil)) + let accountColorSaturation = SGSimpleSettings.shared.accountColorsSaturation + entries.append(.percentageSlider(id: id.count, section: .accountColors, settingName: .accountColorsSaturation, value: accountColorSaturation)) +// let nameColor: PeerNameColor +// if let updatedNameColor = state.updatedNameColor { +// nameColor = updatedNameColor +// } else { +// nameColor = .blue +// } +// let _ = nameColors.get(nameColor, dark: presentationData.theme.overallDarkAppearance) +// entries.append(.peerColorPicker(id: entries.count, section: .other, +// colors: nameColors, +// currentColor: nameColor, // TODO: PeerNameColor(rawValue: <#T##Int32#>) +// currentSaturation: accountColorSaturation +// )) + + if accountColorSaturation == 0 { + id.increment(100) + entries.append(.peerColorDisclosurePreview(id: id.count, section: .accountColors, name: "\(presentationData.strings.UserInfo_FirstNamePlaceholder) \(presentationData.strings.UserInfo_LastNamePlaceholder)", color: presentationData.theme.chat.message.incoming.accentTextColor)) + } else { + id.increment(200) + for index in nameColors.displayOrder.prefix(3) { + let color: PeerNameColor = PeerNameColor(rawValue: index) + let colors = nameColors.get(color, dark: presentationData.theme.overallDarkAppearance) + entries.append(.peerColorDisclosurePreview(id: id.count, section: .accountColors, name: "\(presentationData.strings.UserInfo_FirstNamePlaceholder) \(presentationData.strings.UserInfo_LastNamePlaceholder)", color: colors.main)) + } + } + entries.append(.notice(id: id.count, section: .accountColors, text: i18n("Settings.CustomColors.Saturation.Notice", lang))) + + id.increment(10000) + entries.append(.header(id: id.count, section: .other, text: presentationData.strings.Appearance_Other.uppercased(), badge: nil)) + entries.append(.toggle(id: id.count, section: .other, settingName: .wideChannelPosts, value: SGSimpleSettings.shared.wideChannelPosts, text: i18n("Settings.wideChannelPosts", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .forceBuiltInMic, value: SGSimpleSettings.shared.forceBuiltInMic, text: i18n("Settings.forceBuiltInMic", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .other, text: i18n("Settings.forceBuiltInMic.Notice", lang))) + entries.append(.toggle(id: id.count, section: .other, settingName: .messageDoubleTapActionOutgoingEdit, value: SGSimpleSettings.shared.messageDoubleTapActionOutgoing == SGSimpleSettings.MessageDoubleTapAction.edit.rawValue, text: i18n("Settings.messageDoubleTapActionOutgoingEdit", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .hideRecordingButton, value: !SGSimpleSettings.shared.hideRecordingButton, text: i18n("Settings.RecordingButton", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .disableSnapDeletionEffect, value: !SGSimpleSettings.shared.disableSnapDeletionEffect, text: i18n("Settings.SnapDeletionEffect", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .disableSendAsButton, value: !SGSimpleSettings.shared.disableSendAsButton, text: i18n("Settings.SendAsButton", lang, presentationData.strings.Conversation_SendMesageAs), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .disableGalleryCamera, value: !SGSimpleSettings.shared.disableGalleryCamera, text: i18n("Settings.GalleryCamera", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .disableScrollToNextChannel, value: !SGSimpleSettings.shared.disableScrollToNextChannel, text: i18n("Settings.PullToNextChannel", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .disableScrollToNextTopic, value: !SGSimpleSettings.shared.disableScrollToNextTopic, text: i18n("Settings.PullToNextTopic", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .hideReactions, value: SGSimpleSettings.shared.hideReactions, text: i18n("Settings.HideReactions", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .uploadSpeedBoost, value: SGSimpleSettings.shared.uploadSpeedBoost, text: i18n("Settings.UploadsBoost", lang), enabled: true)) + entries.append(.oneFromManySelector(id: id.count, section: .other, settingName: .downloadSpeedBoost, text: i18n("Settings.DownloadsBoost", lang), value: i18n("Settings.DownloadsBoost.\(SGSimpleSettings.shared.downloadSpeedBoost)", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .sendWithReturnKey, value: SGSettings.sendWithReturnKey, text: i18n("Settings.SendWithReturnKey", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .forceEmojiTab, value: SGSimpleSettings.shared.forceEmojiTab, text: i18n("Settings.ForceEmojiTab", lang), enabled: true)) + entries.append(.toggle(id: id.count, section: .other, settingName: .defaultEmojisFirst, value: SGSimpleSettings.shared.defaultEmojisFirst, text: i18n("Settings.DefaultEmojisFirst", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .other, text: i18n("Settings.DefaultEmojisFirst.Notice", lang))) + entries.append(.toggle(id: id.count, section: .other, settingName: .hidePhoneInSettings, value: SGSimpleSettings.shared.hidePhoneInSettings, text: i18n("Settings.HidePhoneInSettingsUI", lang), enabled: true)) + entries.append(.notice(id: id.count, section: .other, text: i18n("Settings.HidePhoneInSettingsUI.Notice", lang))) + + return entries +} + +public func sgSettingsController(context: AccountContext/*, focusOnItemTag: Int? = nil*/) -> ViewController { + var presentControllerImpl: ((ViewController, ViewControllerPresentationArguments?) -> Void)? + var pushControllerImpl: ((ViewController) -> Void)? +// var getRootControllerImpl: (() -> UIViewController?)? +// var getNavigationControllerImpl: (() -> NavigationController?)? + var askForRestart: (() -> Void)? + +// let statePromise = ValuePromise(PeerNameColorScreenState(), ignoreRepeated: true) +// let stateValue = Atomic(value: PeerNameColorScreenState()) +// let updateState: ((PeerNameColorScreenState) -> PeerNameColorScreenState) -> Void = { f in +// statePromise.set(stateValue.modify { f($0) }) +// } + +// let sliderPromise = ValuePromise(SGSimpleSettings.shared.accountColorsSaturation, ignoreRepeated: true) +// let sliderStateValue = Atomic(value: SGSimpleSettings.shared.accountColorsSaturation) +// let _: ((Int32) -> Int32) -> Void = { f in +// sliderPromise.set(sliderStateValue.modify( {f($0)})) +// } + + let simplePromise = ValuePromise(true, ignoreRepeated: false) + + let arguments = SGItemListArguments( + context: context, + /*updatePeerColor: { color in + updateState { state in + var updatedState = state + updatedState.updatedNameColor = color + return updatedState + } + },*/ setBoolValue: { setting, value in + switch setting { + case .hidePhoneInSettings: + SGSimpleSettings.shared.hidePhoneInSettings = value + askForRestart?() + case .showTabNames: + SGSimpleSettings.shared.showTabNames = value + askForRestart?() + case .showContactsTab: + let _ = ( + updateCallListSettingsInteractively( + accountManager: context.sharedContext.accountManager, { $0.withUpdatedShowContactsTab(value) } + ) + ).start() + case .showCallsTab: + let _ = ( + updateCallListSettingsInteractively( + accountManager: context.sharedContext.accountManager, { $0.withUpdatedShowTab(value) } + ) + ).start() + case .foldersAtBottom: + let _ = ( + updateExperimentalUISettingsInteractively(accountManager: context.sharedContext.accountManager, { settings in + var settings = settings + settings.foldersTabAtBottom = value + return settings + } + ) + ).start() + case .startTelescopeWithRearCam: + SGSimpleSettings.shared.startTelescopeWithRearCam = value + case .hideStories: + let _ = ( + updateSGUISettings(engine: context.engine, { settings in + var settings = settings + settings.hideStories = value + return settings + }) + ).start() + case .showProfileId: + let _ = ( + updateSGUISettings(engine: context.engine, { settings in + var settings = settings + settings.showProfileId = value + return settings + }) + ).start() + case .warnOnStoriesOpen: + let _ = ( + updateSGUISettings(engine: context.engine, { settings in + var settings = settings + settings.warnOnStoriesOpen = value + return settings + }) + ).start() + case .sendWithReturnKey: + let _ = ( + updateSGUISettings(engine: context.engine, { settings in + var settings = settings + settings.sendWithReturnKey = value + return settings + }) + ).start() + case .rememberLastFolder: + SGSimpleSettings.shared.rememberLastFolder = value + case .sendLargePhotos: + SGSimpleSettings.shared.sendLargePhotos = value + case .storyStealthMode: + SGSimpleSettings.shared.storyStealthMode = value + case .disableSwipeToRecordStory: + SGSimpleSettings.shared.disableSwipeToRecordStory = value + case .quickTranslateButton: + SGSimpleSettings.shared.quickTranslateButton = value + case .uploadSpeedBoost: + SGSimpleSettings.shared.uploadSpeedBoost = value + case .hideReactions: + SGSimpleSettings.shared.hideReactions = value + case .showRepostToStory: + SGSimpleSettings.shared.showRepostToStory = value + case .contextShowSelectFromUser: + SGSimpleSettings.shared.contextShowSelectFromUser = value + case .contextShowSaveToCloud: + SGSimpleSettings.shared.contextShowSaveToCloud = value + case .contextShowRestrict: + SGSimpleSettings.shared.contextShowRestrict = value + case .contextShowHideForwardName: + SGSimpleSettings.shared.contextShowHideForwardName = value + case .disableScrollToNextChannel: + SGSimpleSettings.shared.disableScrollToNextChannel = !value + case .disableScrollToNextTopic: + SGSimpleSettings.shared.disableScrollToNextTopic = !value + case .disableChatSwipeOptions: + SGSimpleSettings.shared.disableChatSwipeOptions = !value + askForRestart?() + case .disableGalleryCamera: + SGSimpleSettings.shared.disableGalleryCamera = !value + case .disableSendAsButton: + SGSimpleSettings.shared.disableSendAsButton = !value + case .disableSnapDeletionEffect: + SGSimpleSettings.shared.disableSnapDeletionEffect = !value + case .contextShowReport: + SGSimpleSettings.shared.contextShowReport = value + case .contextShowReply: + SGSimpleSettings.shared.contextShowReply = value + case .contextShowPin: + SGSimpleSettings.shared.contextShowPin = value + case .contextShowSaveMedia: + SGSimpleSettings.shared.contextShowSaveMedia = value + case .contextShowMessageReplies: + SGSimpleSettings.shared.contextShowMessageReplies = value + case .stickerTimestamp: + SGSimpleSettings.shared.stickerTimestamp = value + case .contextShowJson: + SGSimpleSettings.shared.contextShowJson = value + case .hideRecordingButton: + SGSimpleSettings.shared.hideRecordingButton = !value + case .hideTabBar: + SGSimpleSettings.shared.hideTabBar = value + simplePromise.set(true) // Trigger update for 'enabled' field of other toggles + askForRestart?() + case .showDC: + SGSimpleSettings.shared.showDC = value + case .showCreationDate: + SGSimpleSettings.shared.showCreationDate = value + case .showRegDate: + SGSimpleSettings.shared.showRegDate = value + case .compactChatList: + SGSimpleSettings.shared.compactChatList = value + askForRestart?() + case .compactFolderNames: + SGSimpleSettings.shared.compactFolderNames = value + case .allChatsHidden: + SGSimpleSettings.shared.allChatsHidden = value + askForRestart?() + case .defaultEmojisFirst: + SGSimpleSettings.shared.defaultEmojisFirst = value + case .messageDoubleTapActionOutgoingEdit: + SGSimpleSettings.shared.messageDoubleTapActionOutgoing = value ? SGSimpleSettings.MessageDoubleTapAction.edit.rawValue : SGSimpleSettings.MessageDoubleTapAction.default.rawValue + case .wideChannelPosts: + SGSimpleSettings.shared.wideChannelPosts = value + case .forceEmojiTab: + SGSimpleSettings.shared.forceEmojiTab = value + case .forceBuiltInMic: + SGSimpleSettings.shared.forceBuiltInMic = value + } + }, updateSliderValue: { setting, value in + switch (setting) { + case .accountColorsSaturation: + if SGSimpleSettings.shared.accountColorsSaturation != value { + SGSimpleSettings.shared.accountColorsSaturation = value + simplePromise.set(true) + } + case .outgoingPhotoQuality: + if SGSimpleSettings.shared.outgoingPhotoQuality != value { + SGSimpleSettings.shared.outgoingPhotoQuality = value + simplePromise.set(true) + } + case .stickerSize: + if SGSimpleSettings.shared.stickerSize != value { + SGSimpleSettings.shared.stickerSize = value + simplePromise.set(true) + } + } + + }, setOneFromManyValue: { setting in + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let actionSheet = ActionSheetController(presentationData: presentationData) + var items: [ActionSheetItem] = [] + + switch (setting) { + case .downloadSpeedBoost: + let setAction: (String) -> Void = { value in + SGSimpleSettings.shared.downloadSpeedBoost = value + + let enableDownloadX: Bool + switch (value) { + case SGSimpleSettings.DownloadSpeedBoostValues.none.rawValue: + enableDownloadX = false + default: + enableDownloadX = true + } + + // Updating controller + simplePromise.set(true) + + let _ = updateNetworkSettingsInteractively(postbox: context.account.postbox, network: context.account.network, { settings in + var settings = settings + settings.useExperimentalDownload = enableDownloadX + return settings + }).start(completed: { + Queue.mainQueue().async { + askForRestart?() + } + }) + } + + for value in SGSimpleSettings.DownloadSpeedBoostValues.allCases { + items.append(ActionSheetButtonItem(title: i18n("Settings.DownloadsBoost.\(value.rawValue)", presentationData.strings.baseLanguageCode), color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + setAction(value.rawValue) + })) + } + case .bottomTabStyle: + let setAction: (String) -> Void = { value in + SGSimpleSettings.shared.bottomTabStyle = value + simplePromise.set(true) + } + + for value in SGSimpleSettings.BottomTabStyleValues.allCases { + items.append(ActionSheetButtonItem(title: i18n("Settings.Folders.BottomTabStyle.\(value.rawValue)", presentationData.strings.baseLanguageCode), color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + setAction(value.rawValue) + })) + } + case .allChatsTitleLengthOverride: + let setAction: (String) -> Void = { value in + SGSimpleSettings.shared.allChatsTitleLengthOverride = value + simplePromise.set(true) + } + + for value in SGSimpleSettings.AllChatsTitleLengthOverride.allCases { + let title: String + switch (value) { + case SGSimpleSettings.AllChatsTitleLengthOverride.short: + title = "\"\(presentationData.strings.ChatList_Tabs_All)\"" + case SGSimpleSettings.AllChatsTitleLengthOverride.long: + title = "\"\(presentationData.strings.ChatList_Tabs_AllChats)\"" + default: + title = i18n("Settings.Folders.AllChatsTitle.none", presentationData.strings.baseLanguageCode) + } + items.append(ActionSheetButtonItem(title: title, color: .accent, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + setAction(value.rawValue) + })) + } +// case .allChatsFolderPositionOverride: +// let setAction: (String) -> Void = { value in +// SGSimpleSettings.shared.allChatsFolderPositionOverride = value +// simplePromise.set(true) +// } +// +// for value in SGSimpleSettings.AllChatsFolderPositionOverride.allCases { +// items.append(ActionSheetButtonItem(title: i18n("Settings.Folders.AllChatsTitle.\(value)", presentationData.strings.baseLanguageCode), color: .accent, action: { [weak actionSheet] in +// actionSheet?.dismissAnimated() +// setAction(value.rawValue) +// })) +// } + } + + actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + }) + ])]) + presentControllerImpl?(actionSheet, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, openDisclosureLink: { link in + switch (link) { + case .languageSettings: + pushControllerImpl?(context.sharedContext.makeLocalizationListController(context: context)) + case .contentSettings: + let _ = (getSGSettingsURL(context: context) |> deliverOnMainQueue).start(next: { [weak context] url in + guard let strongContext = context else { + return + } + strongContext.sharedContext.applicationBindings.openUrl(url) + }) + } + }) + + let sharedData = context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.callListSettings, ApplicationSpecificSharedDataKeys.experimentalUISettings]) + let preferences = context.account.postbox.preferencesView(keys: [ApplicationSpecificPreferencesKeys.SGUISettings, PreferencesKeys.appConfiguration]) + let updatedContentSettingsConfiguration = contentSettingsConfiguration(network: context.account.network) + |> map(Optional.init) + let contentSettingsConfiguration = Promise() + contentSettingsConfiguration.set(.single(nil) + |> then(updatedContentSettingsConfiguration)) + + let signal = combineLatest(simplePromise.get(), /*sliderPromise.get(),*/ /*statePromise.get(),*/ context.sharedContext.presentationData, sharedData, preferences, contentSettingsConfiguration.get(), + context.engine.accountData.observeAvailableColorOptions(scope: .replies), + context.engine.accountData.observeAvailableColorOptions(scope: .profile) + ) + |> map { _, /*sliderValue,*/ /*state,*/ presentationData, sharedData, view, contentSettingsConfiguration, availableReplyColors, availableProfileColors -> (ItemListControllerState, (ItemListNodeState, Any)) in + + let sgUISettings: SGUISettings = view.values[ApplicationSpecificPreferencesKeys.SGUISettings]?.get(SGUISettings.self) ?? SGUISettings.default + let appConfiguration: AppConfiguration = view.values[PreferencesKeys.appConfiguration]?.get(AppConfiguration.self) ?? AppConfiguration.defaultValue + let callListSettings: CallListSettings = sharedData.entries[ApplicationSpecificSharedDataKeys.callListSettings]?.get(CallListSettings.self) ?? CallListSettings.defaultSettings + let experimentalUISettings: ExperimentalUISettings = sharedData.entries[ApplicationSpecificSharedDataKeys.experimentalUISettings]?.get(ExperimentalUISettings.self) ?? ExperimentalUISettings.defaultSettings + + let entries = SGControllerEntries(presentationData: presentationData, callListSettings: callListSettings, experimentalUISettings: experimentalUISettings, SGSettings: sgUISettings, appConfiguration: appConfiguration, nameColors: PeerNameColors.with(availableReplyColors: availableReplyColors, availableProfileColors: availableProfileColors) /*state: state,*/) + + let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text("Swiftgram"), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back)) + + // TODO(swiftgram): focusOnItemTag support + /* var index = 0 + var scrollToItem: ListViewScrollToItem? + if let focusOnItemTag = focusOnItemTag { + for entry in entries { + if entry.tag?.isEqual(to: focusOnItemTag) ?? false { + scrollToItem = ListViewScrollToItem(index: index, position: .top(0.0), animated: false, curve: .Default(duration: 0.0), directionHint: .Up) + } + index += 1 + } + } */ + + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: entries, style: .blocks, ensureVisibleItemTag: /*focusOnItemTag*/ nil, initialScrollToItem: nil /* scrollToItem*/ ) + + return (controllerState, (listState, arguments)) + } + + let controller = ItemListController(context: context, state: signal) + presentControllerImpl = { [weak controller] c, a in + controller?.present(c, in: .window(.root), with: a) + } + pushControllerImpl = { [weak controller] c in + (controller?.navigationController as? NavigationController)?.pushViewController(c) + } +// getRootControllerImpl = { [weak controller] in +// return controller?.view.window?.rootViewController +// } +// getNavigationControllerImpl = { [weak controller] in +// return controller?.navigationController as? NavigationController +// } + askForRestart = { [weak context] in + guard let context = context else { + return + } + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let actionSheet = ActionSheetController(presentationData: presentationData) + actionSheet.setItemGroups([ActionSheetItemGroup(items: [ + ActionSheetTextItem(title: i18n("Common.RestartRequired", presentationData.strings.baseLanguageCode)), + ActionSheetButtonItem(title: i18n("Common.RestartNow", presentationData.strings.baseLanguageCode), color: .destructive, font: .default, action: { + exit(0) + }) + ]), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + }) + ])]) + presentControllerImpl?(actionSheet, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + } + return controller + +} diff --git a/Swiftgram/SGShowMessageJson/BUILD b/Swiftgram/SGShowMessageJson/BUILD new file mode 100644 index 00000000000..8097e4c906a --- /dev/null +++ b/Swiftgram/SGShowMessageJson/BUILD @@ -0,0 +1,9 @@ +filegroup( + name = "SGShowMessageJson", + srcs = glob([ + "Sources/**/*.swift", + ]), + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGShowMessageJson/Sources/SGShowMessageJson.swift b/Swiftgram/SGShowMessageJson/Sources/SGShowMessageJson.swift new file mode 100644 index 00000000000..6a0c6822ef2 --- /dev/null +++ b/Swiftgram/SGShowMessageJson/Sources/SGShowMessageJson.swift @@ -0,0 +1,76 @@ +import Foundation +import Wrap +import SGLogging +import ChatControllerInteraction +import ChatPresentationInterfaceState +import Postbox +import TelegramCore +import AccountContext + +public func showMessageJson(controllerInteraction: ChatControllerInteraction, chatPresentationInterfaceState: ChatPresentationInterfaceState, message: Message, context: AccountContext) { + if let navigationController = controllerInteraction.navigationController(), let rootController = navigationController.view.window?.rootViewController { + var writingOptions: JSONSerialization.WritingOptions = [ + .prettyPrinted, + //.sortedKeys, + ] + if #available(iOS 13.0, *) { + writingOptions.insert(.withoutEscapingSlashes) + } + + var messageData: Data? = nil + do { + messageData = try wrap( + message, + writingOptions: writingOptions + ) + } catch { + SGLogger.shared.log("ShowMessageJSON", "Error parsing data: \(error)") + messageData = nil + } + + guard let messageData = messageData else { return } + + let id = Int64.random(in: Int64.min ... Int64.max) + let fileResource = LocalFileMediaResource(fileId: id, size: Int64(messageData.count), isSecretRelated: false) + context.account.postbox.mediaBox.storeResourceData(fileResource.id, data: messageData, synchronous: true) + + let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: id), partialReference: nil, resource: fileResource, previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: "application/json; charset=utf-8", size: Int64(messageData.count), attributes: [.FileName(fileName: "message.json")]) + + presentDocumentPreviewController(rootController: rootController, theme: chatPresentationInterfaceState.theme, strings: chatPresentationInterfaceState.strings, postbox: context.account.postbox, file: file, canShare: !message.isCopyProtected()) + + } +} + +extension MemoryBuffer: WrapCustomizable { + + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + let hexString = self.description + return ["string": hexStringToString(hexString) ?? hexString] + } +} + +// There's a chacne we will need it for each empty/weird type, or it will be a runtime crash. +extension ContentRequiresValidationMessageAttribute: WrapCustomizable { + + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return ["@type": "ContentRequiresValidationMessageAttribute"] + } +} + +func hexStringToString(_ hexString: String) -> String? { + var chars = Array(hexString) + var result = "" + + while chars.count > 0 { + let c = String(chars[0...1]) + chars = Array(chars.dropFirst(2)) + if let byte = UInt8(c, radix: 16) { + let scalar = UnicodeScalar(byte) + result.append(String(scalar)) + } else { + return nil + } + } + + return result +} diff --git a/Swiftgram/SGSimpleSettings/BUILD b/Swiftgram/SGSimpleSettings/BUILD new file mode 100644 index 00000000000..38462c47725 --- /dev/null +++ b/Swiftgram/SGSimpleSettings/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGSimpleSettings", + module_name = "SGSimpleSettings", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGSimpleSettings/Sources/AtomicWrapper.swift b/Swiftgram/SGSimpleSettings/Sources/AtomicWrapper.swift new file mode 100644 index 00000000000..b0d073605dc --- /dev/null +++ b/Swiftgram/SGSimpleSettings/Sources/AtomicWrapper.swift @@ -0,0 +1,58 @@ +//// A copy of Atomic from SwiftSignalKit +//import Foundation +// +//public enum AtomicWrapperLockError: Error { +// case isLocked +//} +// +//public final class AtomicWrapper { +// private var lock: pthread_mutex_t +// private var value: T +// +// public init(value: T) { +// self.lock = pthread_mutex_t() +// self.value = value +// +// pthread_mutex_init(&self.lock, nil) +// } +// +// deinit { +// pthread_mutex_destroy(&self.lock) +// } +// +// public func with(_ f: (T) -> R) -> R { +// pthread_mutex_lock(&self.lock) +// let result = f(self.value) +// pthread_mutex_unlock(&self.lock) +// +// return result +// } +// +// public func tryWith(_ f: (T) -> R) throws -> R { +// if pthread_mutex_trylock(&self.lock) == 0 { +// let result = f(self.value) +// pthread_mutex_unlock(&self.lock) +// return result +// } else { +// throw AtomicWrapperLockError.isLocked +// } +// } +// +// public func modify(_ f: (T) -> T) -> T { +// pthread_mutex_lock(&self.lock) +// let result = f(self.value) +// self.value = result +// pthread_mutex_unlock(&self.lock) +// +// return result +// } +// +// public func swap(_ value: T) -> T { +// pthread_mutex_lock(&self.lock) +// let previous = self.value +// self.value = value +// pthread_mutex_unlock(&self.lock) +// +// return previous +// } +//} diff --git a/Swiftgram/SGSimpleSettings/Sources/RWLock.swift b/Swiftgram/SGSimpleSettings/Sources/RWLock.swift new file mode 100644 index 00000000000..3ea2436c6f5 --- /dev/null +++ b/Swiftgram/SGSimpleSettings/Sources/RWLock.swift @@ -0,0 +1,36 @@ +// +// RWLock.swift +// SwiftConcurrentCollections +// +// Created by Pete Prokop on 09/02/2020. +// Copyright © 2020 Pete Prokop. All rights reserved. +// + +import Foundation + +public final class RWLock { + private var lock: pthread_rwlock_t + + // MARK: Lifecycle + deinit { + pthread_rwlock_destroy(&lock) + } + + public init() { + lock = pthread_rwlock_t() + pthread_rwlock_init(&lock, nil) + } + + // MARK: Public + public func writeLock() { + pthread_rwlock_wrlock(&lock) + } + + public func readLock() { + pthread_rwlock_rdlock(&lock) + } + + public func unlock() { + pthread_rwlock_unlock(&lock) + } +} diff --git a/Swiftgram/SGSimpleSettings/Sources/SimpleSettings.swift b/Swiftgram/SGSimpleSettings/Sources/SimpleSettings.swift new file mode 100644 index 00000000000..ea4508593bc --- /dev/null +++ b/Swiftgram/SGSimpleSettings/Sources/SimpleSettings.swift @@ -0,0 +1,394 @@ +import Foundation + + +public class SGSimpleSettings { + + public static let shared = SGSimpleSettings() + + private init() { + setDefaultValues() + preCacheValues() + } + + private func setDefaultValues() { + UserDefaults.standard.register(defaults: SGSimpleSettings.defaultValues) + } + + private func preCacheValues() { + // let dispatchGroup = DispatchGroup() + + let tasks = [ +// { let _ = self.allChatsFolderPositionOverride }, + { let _ = self.allChatsHidden }, + { let _ = self.hideTabBar }, + { let _ = self.bottomTabStyle }, + { let _ = self.compactChatList }, + { let _ = self.compactFolderNames }, + { let _ = self.disableSwipeToRecordStory }, + { let _ = self.rememberLastFolder }, + { let _ = self.quickTranslateButton }, + { let _ = self.stickerSize }, + { let _ = self.stickerTimestamp }, + { let _ = self.hideReactions }, + { let _ = self.disableGalleryCamera }, + { let _ = self.disableSendAsButton }, + { let _ = self.disableSnapDeletionEffect }, + { let _ = self.startTelescopeWithRearCam }, + { let _ = self.hideRecordingButton } + ] + + tasks.forEach { task in + DispatchQueue.global(qos: .background).async(/*group: dispatchGroup*/) { + task() + } + } + + // dispatchGroup.notify(queue: DispatchQueue.main) {} + } + + public enum Keys: String, CaseIterable { + case hidePhoneInSettings + case showTabNames + case startTelescopeWithRearCam + case accountColorsSaturation + case uploadSpeedBoost + case downloadSpeedBoost + case bottomTabStyle + case rememberLastFolder + case lastAccountFolders + case localDNSForProxyHost + case sendLargePhotos + case outgoingPhotoQuality + case storyStealthMode + case canUseStealthMode + case disableSwipeToRecordStory + case quickTranslateButton + case outgoingLanguageTranslation + case hideReactions + case showRepostToStory + case contextShowSelectFromUser + case contextShowSaveToCloud + case contextShowRestrict + // case contextShowBan + case contextShowHideForwardName + case contextShowReport + case contextShowReply + case contextShowPin + case contextShowSaveMedia + case contextShowMessageReplies + case contextShowJson + case disableScrollToNextChannel + case disableScrollToNextTopic + case disableChatSwipeOptions + case disableGalleryCamera + case disableSendAsButton + case disableSnapDeletionEffect + case stickerSize + case stickerTimestamp + case hideRecordingButton + case hideTabBar + case showDC + case showCreationDate + case showRegDate + case regDateCache + case compactChatList + case compactFolderNames + case allChatsTitleLengthOverride +// case allChatsFolderPositionOverride + case allChatsHidden + case defaultEmojisFirst + case messageDoubleTapActionOutgoing + case wideChannelPosts + case forceEmojiTab + case forceBuiltInMic + } + + public enum DownloadSpeedBoostValues: String, CaseIterable { + case none + case medium + case maximum + } + + public enum BottomTabStyleValues: String, CaseIterable { + case telegram + case ios + } + + public enum AllChatsTitleLengthOverride: String, CaseIterable { + case none + case short + case long + } + + public enum AllChatsFolderPositionOverride: String, CaseIterable { + case none + case last + case hidden + } + + public enum MessageDoubleTapAction: String, CaseIterable { + case `default` + case none + case edit + } + + public static let defaultValues: [String: Any] = [ + Keys.hidePhoneInSettings.rawValue: true, + Keys.showTabNames.rawValue: true, + Keys.startTelescopeWithRearCam.rawValue: false, + Keys.accountColorsSaturation.rawValue: 100, + Keys.uploadSpeedBoost.rawValue: false, + Keys.downloadSpeedBoost.rawValue: DownloadSpeedBoostValues.none.rawValue, + Keys.rememberLastFolder.rawValue: false, + Keys.bottomTabStyle.rawValue: BottomTabStyleValues.telegram.rawValue, + Keys.lastAccountFolders.rawValue: [:], + Keys.localDNSForProxyHost.rawValue: false, + Keys.sendLargePhotos.rawValue: false, + Keys.outgoingPhotoQuality.rawValue: 70, + Keys.storyStealthMode.rawValue: false, + Keys.canUseStealthMode.rawValue: true, + Keys.disableSwipeToRecordStory.rawValue: false, + Keys.quickTranslateButton.rawValue: false, + Keys.outgoingLanguageTranslation.rawValue: [:], + Keys.hideReactions.rawValue: false, + Keys.showRepostToStory.rawValue: true, + Keys.contextShowSelectFromUser.rawValue: true, + Keys.contextShowSaveToCloud.rawValue: true, + Keys.contextShowRestrict.rawValue: true, + // Keys.contextShowBan.rawValue: true, + Keys.contextShowHideForwardName.rawValue: true, + Keys.contextShowReport.rawValue: true, + Keys.contextShowReply.rawValue: true, + Keys.contextShowPin.rawValue: true, + Keys.contextShowSaveMedia.rawValue: true, + Keys.contextShowMessageReplies.rawValue: true, + Keys.contextShowJson.rawValue: false, + Keys.disableScrollToNextChannel.rawValue: false, + Keys.disableScrollToNextTopic.rawValue: false, + Keys.disableChatSwipeOptions.rawValue: false, + Keys.disableGalleryCamera.rawValue: false, + Keys.disableSendAsButton.rawValue: false, + Keys.disableSnapDeletionEffect.rawValue: false, + Keys.stickerSize.rawValue: 100, + Keys.stickerTimestamp.rawValue: true, + Keys.hideRecordingButton.rawValue: false, + Keys.hideTabBar.rawValue: false, + Keys.showDC.rawValue: false, + Keys.showCreationDate.rawValue: true, + Keys.showRegDate.rawValue: true, + Keys.regDateCache.rawValue: [:], + Keys.compactChatList.rawValue: false, + Keys.compactFolderNames.rawValue: false, + Keys.allChatsTitleLengthOverride.rawValue: AllChatsTitleLengthOverride.none.rawValue, +// Keys.allChatsFolderPositionOverride.rawValue: AllChatsFolderPositionOverride.none.rawValue + Keys.allChatsHidden.rawValue: false, + Keys.defaultEmojisFirst.rawValue: false, + Keys.messageDoubleTapActionOutgoing.rawValue: MessageDoubleTapAction.default.rawValue, + Keys.wideChannelPosts.rawValue: false, + Keys.forceEmojiTab.rawValue: false, + ] + + @UserDefault(key: Keys.hidePhoneInSettings.rawValue) + public var hidePhoneInSettings: Bool + + @UserDefault(key: Keys.showTabNames.rawValue) + public var showTabNames: Bool + + @UserDefault(key: Keys.startTelescopeWithRearCam.rawValue) + public var startTelescopeWithRearCam: Bool + + @UserDefault(key: Keys.accountColorsSaturation.rawValue) + public var accountColorsSaturation: Int32 + + @UserDefault(key: Keys.uploadSpeedBoost.rawValue) + public var uploadSpeedBoost: Bool + + @UserDefault(key: Keys.downloadSpeedBoost.rawValue) + public var downloadSpeedBoost: String + + @UserDefault(key: Keys.rememberLastFolder.rawValue) + public var rememberLastFolder: Bool + + @UserDefault(key: Keys.bottomTabStyle.rawValue) + public var bottomTabStyle: String + + public var lastAccountFolders = UserDefaultsBackedDictionary(userDefaultsKey: Keys.lastAccountFolders.rawValue, threadSafe: false) + + @UserDefault(key: Keys.localDNSForProxyHost.rawValue) + public var localDNSForProxyHost: Bool + + @UserDefault(key: Keys.sendLargePhotos.rawValue) + public var sendLargePhotos: Bool + + @UserDefault(key: Keys.outgoingPhotoQuality.rawValue) + public var outgoingPhotoQuality: Int32 + + @UserDefault(key: Keys.storyStealthMode.rawValue) + public var storyStealthMode: Bool + + @UserDefault(key: Keys.canUseStealthMode.rawValue) + public var canUseStealthMode: Bool + + @UserDefault(key: Keys.disableSwipeToRecordStory.rawValue) + public var disableSwipeToRecordStory: Bool + + @UserDefault(key: Keys.quickTranslateButton.rawValue) + public var quickTranslateButton: Bool + + public var outgoingLanguageTranslation = UserDefaultsBackedDictionary(userDefaultsKey: Keys.outgoingLanguageTranslation.rawValue, threadSafe: false) + + @UserDefault(key: Keys.hideReactions.rawValue) + public var hideReactions: Bool + + @UserDefault(key: Keys.showRepostToStory.rawValue) + public var showRepostToStory: Bool + + @UserDefault(key: Keys.contextShowRestrict.rawValue) + public var contextShowRestrict: Bool + + /*@UserDefault(key: Keys.contextShowBan.rawValue) + public var contextShowBan: Bool*/ + + @UserDefault(key: Keys.contextShowSelectFromUser.rawValue) + public var contextShowSelectFromUser: Bool + + @UserDefault(key: Keys.contextShowSaveToCloud.rawValue) + public var contextShowSaveToCloud: Bool + + @UserDefault(key: Keys.contextShowHideForwardName.rawValue) + public var contextShowHideForwardName: Bool + + @UserDefault(key: Keys.contextShowReport.rawValue) + public var contextShowReport: Bool + + @UserDefault(key: Keys.contextShowReply.rawValue) + public var contextShowReply: Bool + + @UserDefault(key: Keys.contextShowPin.rawValue) + public var contextShowPin: Bool + + @UserDefault(key: Keys.contextShowSaveMedia.rawValue) + public var contextShowSaveMedia: Bool + + @UserDefault(key: Keys.contextShowMessageReplies.rawValue) + public var contextShowMessageReplies: Bool + + @UserDefault(key: Keys.contextShowJson.rawValue) + public var contextShowJson: Bool + + @UserDefault(key: Keys.disableScrollToNextChannel.rawValue) + public var disableScrollToNextChannel: Bool + + @UserDefault(key: Keys.disableScrollToNextTopic.rawValue) + public var disableScrollToNextTopic: Bool + + @UserDefault(key: Keys.disableChatSwipeOptions.rawValue) + public var disableChatSwipeOptions: Bool + + @UserDefault(key: Keys.disableGalleryCamera.rawValue) + public var disableGalleryCamera: Bool + + @UserDefault(key: Keys.disableSendAsButton.rawValue) + public var disableSendAsButton: Bool + + @UserDefault(key: Keys.disableSnapDeletionEffect.rawValue) + public var disableSnapDeletionEffect: Bool + + @UserDefault(key: Keys.stickerSize.rawValue) + public var stickerSize: Int32 + + @UserDefault(key: Keys.stickerTimestamp.rawValue) + public var stickerTimestamp: Bool + + @UserDefault(key: Keys.hideRecordingButton.rawValue) + public var hideRecordingButton: Bool + + @UserDefault(key: Keys.hideTabBar.rawValue) + public var hideTabBar: Bool + + @UserDefault(key: Keys.showDC.rawValue) + public var showDC: Bool + + @UserDefault(key: Keys.showCreationDate.rawValue) + public var showCreationDate: Bool + + @UserDefault(key: Keys.showRegDate.rawValue) + public var showRegDate: Bool + + public var regDateCache = UserDefaultsBackedDictionary(userDefaultsKey: Keys.regDateCache.rawValue, threadSafe: false) + + @UserDefault(key: Keys.compactChatList.rawValue) + public var compactChatList: Bool + + @UserDefault(key: Keys.compactFolderNames.rawValue) + public var compactFolderNames: Bool + + @UserDefault(key: Keys.allChatsTitleLengthOverride.rawValue) + public var allChatsTitleLengthOverride: String +// +// @UserDefault(key: Keys.allChatsFolderPositionOverride.rawValue) +// public var allChatsFolderPositionOverride: String + @UserDefault(key: Keys.allChatsHidden.rawValue) + public var allChatsHidden: Bool + + @UserDefault(key: Keys.defaultEmojisFirst.rawValue) + public var defaultEmojisFirst: Bool + + @UserDefault(key: Keys.messageDoubleTapActionOutgoing.rawValue) + public var messageDoubleTapActionOutgoing: String + + @UserDefault(key: Keys.wideChannelPosts.rawValue) + public var wideChannelPosts: Bool + + @UserDefault(key: Keys.forceEmojiTab.rawValue) + public var forceEmojiTab: Bool + + @UserDefault(key: Keys.forceBuiltInMic.rawValue) + public var forceBuiltInMic: Bool +} + +extension SGSimpleSettings { + public var isStealthModeEnabled: Bool { + return storyStealthMode && canUseStealthMode + } + + public static func makeOutgoingLanguageTranslationKey(accountId: Int64, peerId: Int64) -> String { + return "\(accountId):\(peerId)" + } +} + +public func getSGDownloadPartSize(_ default: Int64) -> Int64 { + let currentDownloadSetting = SGSimpleSettings.shared.downloadSpeedBoost + switch (currentDownloadSetting) { + case SGSimpleSettings.DownloadSpeedBoostValues.medium.rawValue: + return 512 * 1024 + case SGSimpleSettings.DownloadSpeedBoostValues.maximum.rawValue: + return 1024 * 1024 + default: + return `default` + } +} + +public func getSGMaxPendingParts(_ default: Int) -> Int { + let currentDownloadSetting = SGSimpleSettings.shared.downloadSpeedBoost + switch (currentDownloadSetting) { + case SGSimpleSettings.DownloadSpeedBoostValues.medium.rawValue: + return 8 + case SGSimpleSettings.DownloadSpeedBoostValues.maximum.rawValue: + return 12 + default: + return `default` + } +} + +public func sgUseShortAllChatsTitle(_ default: Bool) -> Bool { + let currentOverride = SGSimpleSettings.shared.allChatsTitleLengthOverride + switch (currentOverride) { + case SGSimpleSettings.AllChatsTitleLengthOverride.short.rawValue: + return true + case SGSimpleSettings.AllChatsTitleLengthOverride.long.rawValue: + return false + default: + return `default` + } +} diff --git a/Swiftgram/SGSimpleSettings/Sources/UserDefaultsWrapper.swift b/Swiftgram/SGSimpleSettings/Sources/UserDefaultsWrapper.swift new file mode 100644 index 00000000000..48b0a377494 --- /dev/null +++ b/Swiftgram/SGSimpleSettings/Sources/UserDefaultsWrapper.swift @@ -0,0 +1,406 @@ +import Foundation + +public protocol AllowedUserDefaultTypes {} + +/* // This one is more painful than helpful +extension Bool: AllowedUserDefaultTypes {} +extension String: AllowedUserDefaultTypes {} +extension Int: AllowedUserDefaultTypes {} +extension Int32: AllowedUserDefaultTypes {} +extension Double: AllowedUserDefaultTypes {} +extension Float: AllowedUserDefaultTypes {} +extension Data: AllowedUserDefaultTypes {} +extension URL: AllowedUserDefaultTypes {} +//extension Dictionary: AllowedUserDefaultTypes {} +extension Array: AllowedUserDefaultTypes where Element: AllowedUserDefaultTypes {} +*/ + +// Does not support Optional types due to caching +@propertyWrapper +public class UserDefault /*where T: AllowedUserDefaultTypes*/ { + public let key: String + public let userDefaults: UserDefaults + private var cachedValue: T? + + public init(key: String, userDefaults: UserDefaults = .standard) { + self.key = key + self.userDefaults = userDefaults + } + + public var wrappedValue: T { + get { + #if DEBUG && false + SGtrace("UD.\(key)", what: "GET") + #endif + + if let strongCachedValue = cachedValue { + #if DEBUG && false + SGtrace("UD", what: "CACHED \(key) \(strongCachedValue)") + #endif + return strongCachedValue + } + + cachedValue = readFromUserDefaults() + + #if DEBUG + SGtrace("UD.\(key)", what: "EXTRACTED: \(cachedValue!)") + #endif + return cachedValue! + } + set { + cachedValue = newValue + #if DEBUG + SGtrace("UD.\(key)", what: "CACHE UPDATED \(cachedValue!)") + #endif + userDefaults.set(newValue, forKey: key) + } + } + + fileprivate func readFromUserDefaults() -> T { + switch T.self { + case is Bool.Type: + return (userDefaults.bool(forKey: key) as! T) + case is String.Type: + return (userDefaults.string(forKey: key) as! T) + case is Int32.Type: + return (Int32(exactly: userDefaults.integer(forKey: key)) as! T) + case is Int.Type: + return (userDefaults.integer(forKey: key) as! T) + case is Double.Type: + return (userDefaults.double(forKey: key) as! T) + case is Float.Type: + return (userDefaults.float(forKey: key) as! T) + case is Data.Type: + return (userDefaults.data(forKey: key) as! T) + case is URL.Type: + return (userDefaults.url(forKey: key) as! T) + case is Array.Type: + return (userDefaults.stringArray(forKey: key) as! T) + case is Array.Type: + return (userDefaults.array(forKey: key) as! T) + default: + fatalError("Unsupported UserDefault type \(T.self)") + // cachedValue = (userDefaults.object(forKey: key) as! T) + } + } +} + +//public class AtomicUserDefault: UserDefault { +// private let atomicCachedValue: AtomicWrapper = AtomicWrapper(value: nil) +// +// public override var wrappedValue: T { +// get { +// return atomicCachedValue.modify({ value in +// if let strongValue = value { +// return strongValue +// } +// return self.readFromUserDefaults() +// })! +// } +// set { +// let _ = atomicCachedValue.modify({ _ in +// userDefaults.set(newValue, forKey: key) +// return newValue +// }) +// } +// } +//} + + + +// Based on ConcurrentDictionary.swift from https://github.com/peterprokop/SwiftConcurrentCollections + +/// Thread-safe UserDefaults dictionary wrapper +/// - Important: Note that this is a `class`, i.e. reference (not value) type +/// - Important: Key can only be String type +public class UserDefaultsBackedDictionary { + public let userDefaultsKey: String + public let userDefaults: UserDefaults + + private var container: [Key: Value]? = nil + private let rwlock = RWLock() + private let threadSafe: Bool + + public var keys: [Key] { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "KEYS") + #endif + let result: [Key] + if threadSafe { + rwlock.readLock() + } + if container == nil { + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "EXTRACTED: \(container!)") + #endif + } else { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "FROM CACHE: \(container!)") + #endif + } + result = Array(container!.keys) + if threadSafe { + rwlock.unlock() + } + return result + } + + public var values: [Value] { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "VALUES") + #endif + let result: [Value] + if threadSafe { + rwlock.readLock() + } + if container == nil { + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "EXTRACTED: \(container!)") + #endif + } else { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "FROM CACHE: \(container!)") + #endif + } + result = Array(container!.values) + if threadSafe { + rwlock.unlock() + } + return result + } + + public init(userDefaultsKey: String, userDefaults: UserDefaults = .standard, threadSafe: Bool) { + self.userDefaultsKey = userDefaultsKey + self.userDefaults = userDefaults + self.threadSafe = threadSafe + } + + /// Sets the value for key + /// + /// - Parameters: + /// - value: The value to set for key + /// - key: The key to set value for + public func set(value: Value, forKey key: Key) { + if threadSafe { + rwlock.writeLock() + } + _set(value: value, forKey: key) + if threadSafe { + rwlock.unlock() + } + } + + @discardableResult + public func remove(_ key: Key) -> Value? { + let result: Value? + if threadSafe { + rwlock.writeLock() + } + result = _remove(key) + if threadSafe { + rwlock.unlock() + } + return result + } + + @discardableResult + public func removeValue(forKey: Key) -> Value? { + return self.remove(forKey) + } + + public func contains(_ key: Key) -> Bool { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "CONTAINS") + #endif + let result: Bool + if threadSafe { + rwlock.readLock() + } + if container == nil { + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "EXTRACTED: \(container!)") + #endif + } else { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "FROM CACHE: \(container!)") + #endif + } + result = container!.index(forKey: key) != nil + if threadSafe { + rwlock.unlock() + } + return result + } + + public func value(forKey key: Key) -> Value? { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "VALUE") + #endif + let result: Value? + if threadSafe { + rwlock.readLock() + } + if container == nil { + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "EXTRACTED: \(container!)") + #endif + } else { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "FROM CACHE: \(container!)") + #endif + } + result = container![key] + if threadSafe { + rwlock.unlock() + } + return result + } + + public func mutateValue(forKey key: Key, mutation: (Value) -> Value) { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "MUTATE") + #endif + if threadSafe { + rwlock.writeLock() + } + if container == nil { + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "EXTRACTED: \(container!)") + #endif + } else { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "FROM CACHE: \(container!)") + #endif + } + if let value = container![key] { + container![key] = mutation(value) + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "UPDATING CACHE \(key): \(value), \(container!)") + #endif + userDefaultsContainer = container! + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "CACHE UPDATED \(key): \(value), \(container!)") + #endif + } + if threadSafe { + rwlock.unlock() + } + } + + public var isEmpty: Bool { + return self.keys.isEmpty + } + + // MARK: Subscript + public subscript(key: Key) -> Value? { + get { + return value(forKey: key) + } + set { + if threadSafe { + rwlock.writeLock() + } + defer { + if threadSafe { + rwlock.unlock() + } + } + guard let newValue = newValue else { + _remove(key) + return + } + _set(value: newValue, forKey: key) + } + } + + // MARK: Private + @inline(__always) + private func _set(value: Value, forKey key: Key) { + if container == nil { + container = userDefaultsContainer + } + self.container![key] = value + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "UPDATING CACHE \(key): \(value), \(container!)") + #endif + userDefaultsContainer = container! + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "CACHE UPDATED \(key): \(value), \(container!)") + #endif + } + + @inline(__always) + @discardableResult + private func _remove(_ key: Key) -> Value? { + if container == nil { + container = userDefaultsContainer + } + guard let index = container!.index(forKey: key) else { return nil } + + let tuple = container!.remove(at: index) + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "UPDATING CACHE REMOVE \(key) \(container!)") + #endif + userDefaultsContainer = container! + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "CACHE UPDATED REMOVED \(key) \(container!)") + #endif + return tuple.value + } + + private var userDefaultsContainer: [Key: Value] { + get { + return userDefaults.dictionary(forKey: userDefaultsKey) as! [Key: Value] + } + set { + userDefaults.set(newValue, forKey: userDefaultsKey) + } + } + + public func drop() { + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "DROPPING") + #endif + if threadSafe { + rwlock.writeLock() + } + userDefaults.removeObject(forKey: userDefaultsKey) + container = userDefaultsContainer + #if DEBUG + SGtrace("UD.\(userDefaultsKey)\(threadSafe ? "-ts" : "")", what: "DROPPED: \(container!)") + #endif + if threadSafe { + rwlock.unlock() + } + } + +} + + +#if DEBUG +private let queue = DispatchQueue(label: "app.swiftgram.ios.trace", qos: .utility) + +public func SGtrace(_ domain: String, what: @autoclosure() -> String) { + let string = what() + var rawTime = time_t() + time(&rawTime) + var timeinfo = tm() + localtime_r(&rawTime, &timeinfo) + + var curTime = timeval() + gettimeofday(&curTime, nil) + let seconds = Int(curTime.tv_sec % 60) // Extracting the current second + let microseconds = curTime.tv_usec // Full microsecond precision + + queue.async { + let result = String(format: "[%@] %d-%d-%d %02d:%02d:%02d.%06d %@", arguments: [domain, Int(timeinfo.tm_year) + 1900, Int(timeinfo.tm_mon + 1), Int(timeinfo.tm_mday), Int(timeinfo.tm_hour), Int(timeinfo.tm_min), seconds, microseconds, string]) + + print(result) + } +} +#endif diff --git a/Swiftgram/SGStrings/BUILD b/Swiftgram/SGStrings/BUILD new file mode 100644 index 00000000000..dea968818af --- /dev/null +++ b/Swiftgram/SGStrings/BUILD @@ -0,0 +1,27 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGStrings", + module_name = "SGStrings", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + "//submodules/AppBundle:AppBundle", + "//Swiftgram/SGLogging:SGLogging" + ], + visibility = [ + "//visibility:public", + ], +) + +filegroup( + name = "SGLocalizableStrings", + srcs = glob(["Strings/*.lproj/SGLocalizable.strings"]), + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SGStrings/Sources/LocalizationManager.swift b/Swiftgram/SGStrings/Sources/LocalizationManager.swift new file mode 100644 index 00000000000..51c646ceb30 --- /dev/null +++ b/Swiftgram/SGStrings/Sources/LocalizationManager.swift @@ -0,0 +1,121 @@ +import Foundation + +// Assuming NGLogging and AppBundle are custom modules, they are imported here. +import SGLogging +import AppBundle + + +public let SGFallbackLocale = "en" + +public class SGLocalizationManager { + + public static let shared = SGLocalizationManager() + + private let appBundle: Bundle + private var localizations: [String: [String: String]] = [:] + private var webLocalizations: [String: [String: String]] = [:] + private let fallbackMappings: [String: String] = [ + // "from": "to" + "zh-hant": "zh-hans", + "be": "ru", + "nb": "no", + "ckb": "ku", + "sdh": "ku" + ] + + private init(fetchLocale: String = SGFallbackLocale) { + self.appBundle = getAppBundle() + // Iterating over all the app languages and loading SGLocalizable.strings + self.appBundle.localizations.forEach { locale in + if locale != "Base" { + localizations[locale] = loadLocalDictionary(for: locale) + } + } + // Downloading one specific locale + self.downloadLocale(fetchLocale) + } + + public func localizedString(_ key: String, _ locale: String = SGFallbackLocale, args: CVarArg...) -> String { + let sanitizedLocale = self.sanitizeLocale(locale) + + if let localizedString = findLocalizedString(forKey: key, inLocale: sanitizedLocale) { + if args.isEmpty { + return String(format: localizedString) + } else { + return String(format: localizedString, arguments: args) + } + } + + SGLogger.shared.log("Strings", "Missing string for key: \(key) in locale: \(locale)") + return key + } + + private func loadLocalDictionary(for locale: String) -> [String: String] { + guard let path = self.appBundle.path(forResource: "SGLocalizable", ofType: "strings", inDirectory: nil, forLocalization: locale) else { + // SGLogger.shared.log("Localization", "Unable to find path for locale: \(locale)") + return [:] + } + + guard let dictionary = NSDictionary(contentsOf: URL(fileURLWithPath: path)) as? [String: String] else { + // SGLogger.shared.log("Localization", "Unable to load dictionary for locale: \(locale)") + return [:] + } + + return dictionary + } + + public func downloadLocale(_ locale: String) { + let sanitizedLocale = self.sanitizeLocale(locale) + guard let url = URL(string: self.getStringsUrl(for: sanitizedLocale)) else { + SGLogger.shared.log("Strings", "Invalid URL for locale: \(sanitizedLocale)") + return + } + + DispatchQueue.global(qos: .background).async { + if let localeDict = NSDictionary(contentsOf: url) as? [String: String] { + DispatchQueue.main.async { + self.webLocalizations[sanitizedLocale] = localeDict + SGLogger.shared.log("Strings", "Successfully downloaded locale \(sanitizedLocale)") + } + } else { + SGLogger.shared.log("Strings", "Failed to download \(sanitizedLocale)") + } + } + } + + private func sanitizeLocale(_ locale: String) -> String { + var sanitizedLocale = locale + let rawSuffix = "-raw" + if locale.hasSuffix(rawSuffix) { + sanitizedLocale = String(locale.dropLast(rawSuffix.count)) + } + + if sanitizedLocale == "pt-br" { + sanitizedLocale = "pt" + } else if sanitizedLocale == "nb" { + sanitizedLocale = "no" + } + + return sanitizedLocale + } + + private func findLocalizedString(forKey key: String, inLocale locale: String) -> String? { + if let string = self.webLocalizations[locale]?[key], !string.isEmpty { + return string + } + if let string = self.localizations[locale]?[key], !string.isEmpty { + return string + } + if let fallbackLocale = self.fallbackMappings[locale] { + return self.findLocalizedString(forKey: key, inLocale: fallbackLocale) + } + return self.localizations[SGFallbackLocale]?[key] + } + + private func getStringsUrl(for locale: String) -> String { + return "https://raw.githubusercontent.com/Swiftgram/Telegram-iOS/master/Swiftgram/SGStrings/Strings/\(locale).lproj/SGLocalizable.strings" + } + +} + +public let i18n = SGLocalizationManager.shared.localizedString diff --git a/Swiftgram/SGStrings/Strings/af.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/af.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..a7f1681273e --- /dev/null +++ b/Swiftgram/SGStrings/Strings/af.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Inhoudinstellings"; + +"Settings.Tabs.Header" = "OORTJIES"; +"Settings.Tabs.HideTabBar" = "Versteek Tabbalk"; +"Settings.Tabs.ShowContacts" = "Wys Kontak Oortjie"; +"Settings.Tabs.ShowNames" = "Wys oortjiename"; + +"Settings.Folders.BottomTab" = "Lêers onderaan"; +"Settings.Folders.BottomTabStyle" = "Bodem Lêerstyl"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Versteek \"%@\""; +"Settings.Folders.RememberLast" = "Maak laaste lêer oop"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram sal die laaste gebruikte lêer oopmaak na herbegin of rekeningwissel."; + +"Settings.Folders.CompactNames" = "Kleiner spasie"; +"Settings.Folders.AllChatsTitle" = "\"Alle Chats\" titel"; +"Settings.Folders.AllChatsTitle.short" = "Kort"; +"Settings.Folders.AllChatsTitle.long" = "Lank"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Verstek"; + + +"Settings.ChatList.Header" = "CHATLYS"; +"Settings.CompactChatList" = "Kompakte Chatlys"; + +"Settings.Profiles.Header" = "PROFIELE"; + +"Settings.Stories.Hide" = "Versteek Stories"; +"Settings.Stories.WarnBeforeView" = "Vra voor besigtiging"; +"Settings.Stories.DisableSwipeToRecord" = "Deaktiveer swiep om op te neem"; + +"Settings.Translation.QuickTranslateButton" = "Vinnige Vertaalknoppie"; + +"Stories.Warning.Author" = "Outeur"; +"Stories.Warning.ViewStory" = "Besigtig Storie?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ SAL KAN SIEN dat jy hul Storie besigtig het."; +"Stories.Warning.NoticeStealth" = "%@ Sal nie kan sien dat jy hul Storie besigtig het nie."; + +"Settings.Photo.Quality.Notice" = "Kwaliteit van uitgaande foto's en fotostories."; +"Settings.Photo.SendLarge" = "Stuur groot foto's"; +"Settings.Photo.SendLarge.Notice" = "Verhoog die sybeperking op saamgeperste beelde tot 2560px."; + +"Settings.VideoNotes.Header" = "RONDE VIDEOS"; +"Settings.VideoNotes.StartWithRearCam" = "Begin met agterkamera"; + +"Settings.CustomColors.Header" = "REKENING KLEURE"; +"Settings.CustomColors.Saturation" = "VERSATIGING"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Stel versadiging op 0%% om rekening kleure te deaktiveer."; + +"Settings.UploadsBoost" = "Oplaai versterking"; +"Settings.DownloadsBoost" = "Aflaai versterking"; +"Settings.DownloadsBoost.none" = "Gedeaktiveer"; +"Settings.DownloadsBoost.medium" = "Medium"; +"Settings.DownloadsBoost.maximum" = "Maksimum"; + +"Settings.ShowProfileID" = "Wys profiel ID"; +"Settings.ShowDC" = "Wys Data Sentrum"; +"Settings.ShowCreationDate" = "Wys Geskep Datum van Geselskap"; +"Settings.ShowCreationDate.Notice" = "Die skeppingsdatum mag onbekend wees vir sommige gesprekke."; + +"Settings.ShowRegDate" = "Wys Registrasie Datum"; +"Settings.ShowRegDate.Notice" = "Die registrasiedatum is benaderend."; + +"Settings.SendWithReturnKey" = "Stuur met \"terug\" sleutel"; +"Settings.HidePhoneInSettingsUI" = "Versteek telefoon in instellings"; +"Settings.HidePhoneInSettingsUI.Notice" = "Dit sal slegs jou telefoonnommer versteek vanaf die instellingskoppelvlak. Om dit vir ander te versteek, gaan na Privaatheid en Sekuriteit."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "As weg vir 5 sekondes"; + +"ProxySettings.UseSystemDNS" = "Gebruik stelsel DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Gebruik stelsel DNS om uitvaltyd te omseil as jy nie toegang tot Google DNS het nie"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Jy **het nie nodig** %@ nie!"; +"Common.RestartRequired" = "Herbegin benodig"; +"Common.RestartNow" = "Herbegin Nou"; +"Common.OpenTelegram" = "Maak Telegram oop"; +"Common.UseTelegramForPremium" = "Let daarop dat om Telegram Premium te kry, moet jy die amptelike Telegram-app gebruik. Nadat jy Telegram Premium verkry het, sal al sy funksies beskikbaar word in Swiftgram."; + +"Message.HoldToShowOrReport" = "Hou vas om te Wys of te Rapporteer."; + +"Auth.AccountBackupReminder" = "Maak seker jy het 'n rugsteun toegangsmetode. Hou 'n SIM vir SMS of 'n addisionele sessie aangemeld om te verhoed dat jy uitgesluit word."; +"Auth.UnofficialAppCodeTitle" = "Jy kan die kode slegs met die amptelike app kry"; + +"Settings.SmallReactions" = "Klein reaksies"; +"Settings.HideReactions" = "Verberg Reaksies"; + +"ContextMenu.SaveToCloud" = "Stoor na Wolk"; +"ContextMenu.SelectFromUser" = "Kies vanaf Outeur"; + +"Settings.ContextMenu" = "KONTEKSMENU"; +"Settings.ContextMenu.Notice" = "Gedeaktiveerde inskrywings sal beskikbaar wees in die \"Swiftgram\" sub-menu."; + + +"Settings.ChatSwipeOptions" = "Chat List Swipe Options"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Trek na Volgende Ongelese Kanaal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Trek na Volgende Onderwerp"; +"Settings.GalleryCamera" = "Camera in Gallery"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Button"; +"Settings.SnapDeletionEffect" = "Message Deletion Effects"; + +"Settings.Stickers.Size" = "SIZE"; +"Settings.Stickers.Timestamp" = "Show Timestamp"; + +"Settings.RecordingButton" = "Voice Recording Button"; + +"Settings.DefaultEmojisFirst" = "Prioritise standaard emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Wys standaard emojis voor premium op die emoji sleutelbord"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "geskep: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Sluit aan by %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Geregistreer"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dubbelklik om boodskap te wysig"; diff --git a/Swiftgram/SGStrings/Strings/ar.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ar.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..e61a47fb5e7 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ar.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "إعدادات المحتوى"; + +"Settings.Tabs.Header" = "تبويبات"; +"Settings.Tabs.HideTabBar" = "إخفاء شريط علامات التبويب"; +"Settings.Tabs.ShowContacts" = "إظهار تبويب جهات الاتصال"; +"Settings.Tabs.ShowNames" = "إظهار أسماء التبويبات"; + +"Settings.Folders.BottomTab" = "المجلدات في الأسفل"; +"Settings.Folders.BottomTabStyle" = "نمط المجلدات السفلية"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "إخفاء \"%@\""; +"Settings.Folders.RememberLast" = "فتح المجلد الأخير"; +"Settings.Folders.RememberLast.Notice" = "سيفتح Swiftgram آخر مجلد مستخدم عند إعادة تشغيل التطبيق أو تبديل الحسابات."; + +"Settings.Folders.CompactNames" = "مسافات أصغر"; +"Settings.Folders.AllChatsTitle" = "عنوان \"كل المحادثات\""; +"Settings.Folders.AllChatsTitle.short" = "قصير"; +"Settings.Folders.AllChatsTitle.long" = "طويل"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "الافتراضي"; + + +"Settings.ChatList.Header" = "قائمة الفواصل"; +"Settings.CompactChatList" = "قائمة الدردشة المدمجة"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "إخفاء الستوري"; +"Settings.Stories.WarnBeforeView" = "اسأل قبل العرض"; +"Settings.Stories.DisableSwipeToRecord" = "تعطيل السحب للتسجيل"; + +"Settings.Translation.QuickTranslateButton" = "زر الترجمة الفوري"; + +"Stories.Warning.Author" = "الكاتب"; +"Stories.Warning.ViewStory" = "عرض القصة؟"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ WILL BE يتم إخبارهم بأنك شاهدت قصتهم."; +"Stories.Warning.NoticeStealth" = "%@ لن يتمكن من رؤية أنك شاهدت قصته."; + +"Settings.Photo.Quality.Notice" = "جودة الصور والصور الصادرة والقصص."; +"Settings.Photo.SendLarge" = "إرسال صور كبيرة"; +"Settings.Photo.SendLarge.Notice" = "زيادة الحد الجانبي للصور المضغوطة إلى 2560 بكسل."; + +"Settings.VideoNotes.Header" = "فيديوهات مستديرة"; +"Settings.VideoNotes.StartWithRearCam" = "البدء بالكاميرا الخلفية"; + +"Settings.CustomColors.Header" = "ألوان الحساب"; +"Settings.CustomColors.Saturation" = "مستوى التشبع"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "تعيين التشبع إلى 0%% لتعطيل ألوان الحساب."; + +"Settings.UploadsBoost" = "تعزيز التحميلات"; +"Settings.DownloadsBoost" = "تعزيز التنزيلات"; +"Settings.DownloadsBoost.none" = "تعطيل"; +"Settings.DownloadsBoost.medium" = "متوسط"; +"Settings.DownloadsBoost.maximum" = "الحد الاقصى"; + +"Settings.ShowProfileID" = "إظهار معرف الملف الشخصي ID"; +"Settings.ShowDC" = "إظهار مركز البيانات"; +"Settings.ShowCreationDate" = "إظهار تاريخ إنشاء المحادثة"; +"Settings.ShowCreationDate.Notice" = "قد يكون تاريخ الإنشاء مفقوداً لبضع المحادثات."; + +"Settings.ShowRegDate" = "إظهار تاريخ التسجيل"; +"Settings.ShowRegDate.Notice" = "تاريخ التسجيل تقريبي."; + +"Settings.SendWithReturnKey" = "إرسال مع مفتاح \"العودة\""; +"Settings.HidePhoneInSettingsUI" = "إخفاء الرقم من الإعدادات"; +"Settings.HidePhoneInSettingsUI.Notice" = "سيتم اخفاء رقمك من التطبيق فقط. لأخفاءهُ من المستخدمين الآخرين، يرجى استخدام إعدادات الخصوصية."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "إذا كان بعيدا لمدة 5 ثوان"; + +"ProxySettings.UseSystemDNS" = "استخدم DNS النظام"; +"ProxySettings.UseSystemDNS.Notice" = "استخدم نظام DNS لتجاوز المهلة إذا لم تكن لديك حق الوصول إلى Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "أنت **لا تحتاج** %@!"; +"Common.RestartRequired" = "إعادة التشغيل مطلوب"; +"Common.RestartNow" = "إعادة التشغيل الآن"; +"Common.OpenTelegram" = "افتح Telegram"; +"Common.UseTelegramForPremium" = "يُرجى ملاحظة أنه للحصول على Telegram Premium، يجب عليك استخدام تطبيق تيليجرام الرسمي. بمجرد حصولك على Telegram Premium، ستصبح جميع ميزاته متاحة في Swiftgram."; + +"Message.HoldToShowOrReport" = "اضغط للعرض أو الإبلاغ."; + +"Auth.AccountBackupReminder" = "تأكد من أن لديك طريقة الوصول إلى النسخ الاحتياطي. حافظ على شريحة SIM للرسائل القصيرة أو جلسة إضافية لتسجيل الدخول لتجنب أن تكون مغفلة."; +"Auth.UnofficialAppCodeTitle" = "يمكنك الحصول على الرمز فقط من خلال التطبيق الرسمي"; + +"Settings.SmallReactions" = "ردود أفعال صغيرة"; +"Settings.HideReactions" = "إخفاء الردود"; + +"ContextMenu.SaveToCloud" = "الحفظ في السحابة"; +"ContextMenu.SelectFromUser" = "حدد من المؤلف"; + +"Settings.ContextMenu" = "قائمة الإتصال"; +"Settings.ContextMenu.Notice" = "المدخلات المعطلة ستكون متوفرة في القائمة الفرعية \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "خيارات التمرير لقائمة المحادثة"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "اسحب للقناة الغير مقروءة التالية"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "اسحب للموضوع التالي"; +"Settings.GalleryCamera" = "الكاميرا في معرض الصور"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "زر \"%@\""; +"Settings.SnapDeletionEffect" = "تأثيرات حذف الرسالة"; + +"Settings.Stickers.Size" = "مقاس"; +"Settings.Stickers.Timestamp" = "إظهار الطابع الزمني"; + +"Settings.RecordingButton" = "زر التسجيل الصوتي"; + +"Settings.DefaultEmojisFirst" = "الأفضلية للرموز التعبيرية القياسية"; +"Settings.DefaultEmojisFirst.Notice" = "عرض الرموز التعبيرية القياسية قبل الرموز المتميزة في لوحة المفاتيح"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "تم إنشاؤه: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "انضم %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "مسجل"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "اضغط مزدوجًا لتحرير الرسالة"; diff --git a/Swiftgram/SGStrings/Strings/ca.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ca.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..e4e00fa4685 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ca.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Configuració del Contingut"; + +"Settings.Tabs.Header" = "PESTANYES"; +"Settings.Tabs.HideTabBar" = "Amagar barra de pestanyes"; +"Settings.Tabs.ShowContacts" = "Mostrar Pestanya de Contactes"; +"Settings.Tabs.ShowNames" = "Mostrar noms de les pestanyes"; + +"Settings.Folders.BottomTab" = "Carpetes a la part inferior"; +"Settings.Folders.BottomTabStyle" = "Bottom Folders Style"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Amaga \"%@\""; +"Settings.Folders.RememberLast" = "Obrir l'última carpeta"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram obrirà l'última carpeta utilitzada després de reiniciar o canviar de compte."; + +"Settings.Folders.CompactNames" = "Espaiat més petit"; +"Settings.Folders.AllChatsTitle" = "Títol \"Tots els xats\""; +"Settings.Folders.AllChatsTitle.short" = "Curt"; +"Settings.Folders.AllChatsTitle.long" = "Llarg"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Per defecte"; + + +"Settings.ChatList.Header" = "LLISTA DE XATS"; +"Settings.CompactChatList" = "Llista de xats compacta"; + +"Settings.Profiles.Header" = "PERFILS"; + +"Settings.Stories.Hide" = "Amagar Històries"; +"Settings.Stories.WarnBeforeView" = "Preguntar abans de veure"; +"Settings.Stories.DisableSwipeToRecord" = "Desactivar lliscar per enregistrar"; + +"Settings.Translation.QuickTranslateButton" = "Botó de Traducció Ràpida"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Veure Història?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ PODRÀ VEURE que has vist la seva Història."; +"Stories.Warning.NoticeStealth" = "%@ no podrà veure que has vist la seva Història."; + +"Settings.Photo.Quality.Notice" = "Qualitat de les fotos sortints i històries de fotos."; +"Settings.Photo.SendLarge" = "Enviar fotos grans"; +"Settings.Photo.SendLarge.Notice" = "Incrementar el límit de mida en imatges comprimides a 2560px."; + +"Settings.VideoNotes.Header" = "VÍDEOS RODONS"; +"Settings.VideoNotes.StartWithRearCam" = "Començar amb càmera posterior"; + +"Settings.CustomColors.Header" = "COLORS DEL COMPTE"; +"Settings.CustomColors.Saturation" = "SATURACIÓ"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Estableix la saturació a 0%% per desactivar els colors del compte."; + +"Settings.UploadsBoost" = "Millora de càrregues"; +"Settings.DownloadsBoost" = "Millora de baixades"; +"Settings.DownloadsBoost.none" = "Desactivat"; +"Settings.DownloadsBoost.medium" = "Mitjà"; +"Settings.DownloadsBoost.maximum" = "Màxim"; + +"Settings.ShowProfileID" = "Mostrar ID de perfil"; +"Settings.ShowDC" = "Mostrar Data Center"; +"Settings.ShowCreationDate" = "Mostrar Data de Creació de Xat"; +"Settings.ShowCreationDate.Notice" = "La data de creació pot ser desconeguda per alguns xats."; + +"Settings.ShowRegDate" = "Mostra la data d'inscripció"; +"Settings.ShowRegDate.Notice" = "La data d'inscripció és aproximada."; + +"Settings.SendWithReturnKey" = "Enviar amb clau \"retorn\""; +"Settings.HidePhoneInSettingsUI" = "Amagar telèfon en la interfície d'ajustos"; +"Settings.HidePhoneInSettingsUI.Notice" = "Això només amagarà el teu número de telèfon de la interfície d'ajustos. Per amagar-lo als altres, ves a Privadesa i Seguretat."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Si no hi ha en 5 segons"; + +"ProxySettings.UseSystemDNS" = "Utilitzar DNS del sistema"; +"ProxySettings.UseSystemDNS.Notice" = "Utilitzar DNS del sistema per evitar el temps d'espera si no tens accés a Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "No **necessites** %@!"; +"Common.RestartRequired" = "Reinici requerit"; +"Common.RestartNow" = "Reiniciar Ara"; +"Common.OpenTelegram" = "Obrir Telegram"; +"Common.UseTelegramForPremium" = "Recorda que per obtenir Telegram Premium, has d'utilitzar l'aplicació oficial de Telegram. Un cop hagis obtingut Telegram Premium, totes les seves funcions estaran disponibles a Swiftgram."; + +"Message.HoldToShowOrReport" = "Mantingues per Mostrar o Informar."; + +"Auth.AccountBackupReminder" = "Assegura't de tenir un mètode d'accés de reserva. Mantingues un SIM per a SMS o una sessió addicional registrada per evitar quedar bloquejat."; +"Auth.UnofficialAppCodeTitle" = "Només pots obtenir el codi amb l'aplicació oficial"; + +"Settings.SmallReactions" = "Petites reaccions"; +"Settings.HideReactions" = "Amaga les reaccions"; + +"ContextMenu.SaveToCloud" = "Desar al Núvol"; +"ContextMenu.SelectFromUser" = "Seleccionar de l'Autor"; + +"Settings.ContextMenu" = "MENÚ CONTEXTUAL"; +"Settings.ContextMenu.Notice" = "Les entrades desactivades estaran disponibles al submenú \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Opcions desplaçament de la llista de xats"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Arrossega cap al següent canal no llegit"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Arrosega cap al següent tema"; +"Settings.GalleryCamera" = "Càmera a la galeria"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Botó"; +"Settings.SnapDeletionEffect" = "Efectes d'eliminació de missatges"; + +"Settings.Stickers.Size" = "GRANOR"; +"Settings.Stickers.Timestamp" = "Mostra l'estona"; + +"Settings.RecordingButton" = "Botó d'enregistrament de veu"; + +"Settings.DefaultEmojisFirst" = "Prioritzar emojis estàndard"; +"Settings.DefaultEmojisFirst.Notice" = "Mostra emojis estàndard abans que premium al teclat emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "creada: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Unida a %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Inscrit"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Toqueu dues vegades per editar el missatge"; diff --git a/Swiftgram/SGStrings/Strings/cs.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/cs.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..a7d3816dd96 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/cs.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Nastavení obsahu"; + +"Settings.Tabs.Header" = "ZÁLOŽKY"; +"Settings.Tabs.HideTabBar" = "Skrýt záložku"; +"Settings.Tabs.ShowContacts" = "Zobrazit záložku kontaktů"; +"Settings.Tabs.ShowNames" = "Zobrazit názvy záložek"; + +"Settings.Folders.BottomTab" = "Složky dole"; +"Settings.Folders.BottomTabStyle" = "Styl dolní složky"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Skrýt \"%@\""; +"Settings.Folders.RememberLast" = "Otevřít poslední složku"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram otevře poslední použitou složku po restartu nebo přepnutí účtu."; + +"Settings.Folders.CompactNames" = "Menší vzdálenost"; +"Settings.Folders.AllChatsTitle" = "Název \"Všechny chaty\""; +"Settings.Folders.AllChatsTitle.short" = "Krátký"; +"Settings.Folders.AllChatsTitle.long" = "Dlouhá"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Výchozí"; + + +"Settings.ChatList.Header" = "CHAT SEZNAM"; +"Settings.CompactChatList" = "Kompaktní seznam chatu"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Skrýt příběhy"; +"Settings.Stories.WarnBeforeView" = "Upozornit před zobrazením"; +"Settings.Stories.DisableSwipeToRecord" = "Zakázat přejetí prstem pro nahrávání"; + +"Settings.Translation.QuickTranslateButton" = "Tlačítko pro rychlý překlad"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Zobrazit příběh?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ BUDE VIDĚT, že jste si prohlédl jejich příběh."; +"Stories.Warning.NoticeStealth" = "%@ bude moci vidět, že jste si prohlédl jejich příběh."; + +"Settings.Photo.Quality.Notice" = "Kvalita odchozích fotografií a foto-příběhů."; +"Settings.Photo.SendLarge" = "Poslat velké fotografie"; +"Settings.Photo.SendLarge.Notice" = "Zvýšit limit velikosti komprimovaných obrázků na 2560px."; + +"Settings.VideoNotes.Header" = "KRUHOVÁ VIDEA"; +"Settings.VideoNotes.StartWithRearCam" = "Začít s zadní kamerou"; + +"Settings.CustomColors.Header" = "BARVY ÚČTU"; +"Settings.CustomColors.Saturation" = "SYTOST"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Nastavit sytost na 0%% pro vypnutí barev účtu."; + +"Settings.UploadsBoost" = "Zrychlení nahrávání"; +"Settings.DownloadsBoost" = "Zrychlení stahování"; +"Settings.DownloadsBoost.none" = "Vypnuto"; +"Settings.DownloadsBoost.medium" = "Střední"; +"Settings.DownloadsBoost.maximum" = "Maximální"; + +"Settings.ShowProfileID" = "Zobrazit ID profilu"; +"Settings.ShowDC" = "Zobrazit Data Center"; +"Settings.ShowCreationDate" = "Zobrazit datum vytvoření chatu"; +"Settings.ShowCreationDate.Notice" = "Datum vytvoření chatu může být neznámé pro některé chaty."; + +"Settings.ShowRegDate" = "Zobrazit datum registrace"; +"Settings.ShowRegDate.Notice" = "Datum registrace je přibližné."; + +"Settings.SendWithReturnKey" = "Poslat klávesou \"enter\""; +"Settings.HidePhoneInSettingsUI" = "Skrýt telefon v nastavení"; +"Settings.HidePhoneInSettingsUI.Notice" = "Toto skryje vaše telefonní číslo pouze v nastavení rozhraní. Chcete-li je skryt před ostatními, přejděte na Soukromí a bezpečnost."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Zamknout za 5 sekund"; + +"ProxySettings.UseSystemDNS" = "Použít systémové DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Použít systémové DNS k obejití časového limitu, pokud nemáte přístup k Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Nepotřebujete **%@**!"; +"Common.RestartRequired" = "Vyžadován restart"; +"Common.RestartNow" = "Restartovat nyní"; +"Common.OpenTelegram" = "Otevřít Telegram"; +"Common.UseTelegramForPremium" = "Vezměte prosím na vědomí, že abyste získali Premium, musíte použít oficiální aplikaci Telegram . Jakmile získáte Telegram Premium, všechny jeho funkce budou k dispozici ve Swiftgramu."; + +"Message.HoldToShowOrReport" = "Podržte pro zobrazení nebo nahlášení."; + +"Auth.AccountBackupReminder" = "Ujistěte se, že máte záložní přístupovou metodu. Uchovávejte SIM pro SMS nebo další přihlášenou relaci, abyste předešli zamčení."; +"Auth.UnofficialAppCodeTitle" = "Kód můžete získat pouze s oficiální aplikací"; + +"Settings.SmallReactions" = "Malé reakce"; +"Settings.HideReactions" = "Skrýt reakce"; + +"ContextMenu.SaveToCloud" = "Uložit do cloudu"; +"ContextMenu.SelectFromUser" = "Vybrat od autora"; + +"Settings.ContextMenu" = "KONTEXTOVÉ MENU"; +"Settings.ContextMenu.Notice" = "Zakázané položky budou dostupné v podmenu \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Možnosti potáhnutí v seznamu chatu"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Táhnout na další nepřečtený kanál"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Přetáhněte na další téma"; +"Settings.GalleryCamera" = "Fotoaparát v galerii"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Tlačítko \"%@\""; +"Settings.SnapDeletionEffect" = "Účinky odstranění zpráv"; + +"Settings.Stickers.Size" = "VELIKOST"; +"Settings.Stickers.Timestamp" = "Zobrazit časové razítko"; + +"Settings.RecordingButton" = "Tlačítko nahrávání hlasu"; + +"Settings.DefaultEmojisFirst" = "Upřednostněte standardní emoji"; +"Settings.DefaultEmojisFirst.Notice" = "Zobrazit standardní emoji před prémiovými na klávesnici s emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "vytvořeno: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Připojeno k %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrováno"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dvojitým klepnutím upravte zprávu"; diff --git a/Swiftgram/SGStrings/Strings/da.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/da.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..2a47657d19f --- /dev/null +++ b/Swiftgram/SGStrings/Strings/da.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Indholdindstillinger"; + +"Settings.Tabs.Header" = "Tabs"; +"Settings.Tabs.HideTabBar" = "Skjul Tabbjælke"; +"Settings.Tabs.ShowContacts" = "Kontakte Tab anzeigen"; +"Settings.Tabs.ShowNames" = "Tabnamen anzeigen"; + +"Settings.Folders.BottomTab" = "Ordner - unten"; +"Settings.Folders.BottomTabStyle" = "Bundmapper Stil"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Skjul \"%@\""; +"Settings.Folders.RememberLast" = "Åbn sidste mappe"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram vil åbne den sidst brugte mappe efter genstart eller konto skift."; + +"Settings.Folders.CompactNames" = "Mindre afstand"; +"Settings.Folders.AllChatsTitle" = "\"Alle Chats\" titel"; +"Settings.Folders.AllChatsTitle.short" = "Kort"; +"Settings.Folders.AllChatsTitle.long" = "Lang"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standard"; + + +"Settings.ChatList.Header" = "CHAT LISTE"; +"Settings.CompactChatList" = "Kompakt Chatliste"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Skjul Historier"; +"Settings.Stories.WarnBeforeView" = "Spørg før visning"; +"Settings.Stories.DisableSwipeToRecord" = "Deaktiver swipe for at optage"; + +"Settings.Translation.QuickTranslateButton" = "Schnellübersetzen-Schaltfläche"; + +"Stories.Warning.Author" = "Forfatter"; +"Stories.Warning.ViewStory" = "Se Historie?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ VIL KUNNE SE at du har set deres Historie."; +"Stories.Warning.NoticeStealth" = "%@ Vil ikke kunne se, at du har set deres Historie."; + +"Settings.Photo.Quality.Notice" = "Kvalitet af udgående fotos og foto-historier."; +"Settings.Photo.SendLarge" = "Send store fotos"; +"Settings.Photo.SendLarge.Notice" = "Forøg sidestørrelsesgrænsen på komprimerede billeder til 2560px."; + +"Settings.VideoNotes.Header" = "RUNDE VIDEOS"; +"Settings.VideoNotes.StartWithRearCam" = "Starte mit umgedrehter Kamera"; + +"Settings.CustomColors.Header" = "KONTOFARVER"; +"Settings.CustomColors.Saturation" = "MÆTNING"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Indstil mætning til 0%% for at deaktivere konto farver."; + +"Settings.UploadsBoost" = "Upload Boost"; +"Settings.DownloadsBoost" = "Download Boost"; +"Settings.DownloadsBoost.none" = "Deaktiveret"; +"Settings.DownloadsBoost.medium" = "Mellem"; +"Settings.DownloadsBoost.maximum" = "Maksimum"; + +"Settings.ShowProfileID" = "Profil-ID anzeigen"; +"Settings.ShowDC" = "Vis Datacenter"; +"Settings.ShowCreationDate" = "Vis Chattens Oprettelsesdato"; +"Settings.ShowCreationDate.Notice" = "Oprettelsesdatoen kan være ukendt for nogle chats."; + +"Settings.ShowRegDate" = "Vis Registreringsdato"; +"Settings.ShowRegDate.Notice" = "Registreringsdatoen er omtrentlig."; + +"Settings.SendWithReturnKey" = "Send med \"return\" tasten"; +"Settings.HidePhoneInSettingsUI" = "Telefon in den Einstellungen ausblenden"; +"Settings.HidePhoneInSettingsUI.Notice" = "Deine Nummer wird nur in der Benutzeroberfläche versteckt. Um sie vor anderen zu verbergen, verwende bitte die Privatsphäre-Einstellungen."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Hvis væk i 5 sekunder"; + +"ProxySettings.UseSystemDNS" = "Brug system DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Brug system DNS for at omgå timeout hvis du ikke har adgang til Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Du **behøver ikke** %@!"; +"Common.RestartRequired" = "Genstart krævet"; +"Common.RestartNow" = "Genstart Nu"; +"Common.OpenTelegram" = "Åben Telegram"; +"Common.UseTelegramForPremium" = "Bemærk venligst, at for at få Telegram Premium skal du bruge den officielle Telegram app. Når du har fået Telegram Premium, vil alle dens funktioner blive tilgængelige i Swiftgram."; + +"Message.HoldToShowOrReport" = "Hold for at Vise eller Rapportere."; + +"Auth.AccountBackupReminder" = "Sørg for, at du har en backup adgangsmetode. Behold et SIM til SMS eller en ekstra session logget ind for at undgå at blive låst ude."; +"Auth.UnofficialAppCodeTitle" = "Du kan kun få koden med den officielle app"; + +"Settings.SmallReactions" = "Små reaktioner"; +"Settings.HideReactions" = "Skjul Reaktioner"; + +"ContextMenu.SaveToCloud" = "In Cloud speichern"; +"ContextMenu.SelectFromUser" = "Vælg fra Forfatter"; + +"Settings.ContextMenu" = "KONTEKSTMENU"; +"Settings.ContextMenu.Notice" = "Deaktiverede indgange vil være tilgængelige i \"Swiftgram\" undermenuen."; + + +"Settings.ChatSwipeOptions" = "Chat List Swipe Options"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Træk til Næste U’læst Kanal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Træk for at gå til næste emne"; +"Settings.GalleryCamera" = "Kamera i Galleri"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Knap"; +"Settings.SnapDeletionEffect" = "Besked Sletnings Effekter"; + +"Settings.Stickers.Size" = "STØRRELSE"; +"Settings.Stickers.Timestamp" = "Vis tidsstempel"; + +"Settings.RecordingButton" = "Lydoptageknap"; + +"Settings.DefaultEmojisFirst" = "Prioriter standard emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Vis standard emojis før premium i emoji-tastaturet"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "oprettet: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Tilmeldt %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registreret"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dobbelt tryk for at redigere besked"; diff --git a/Swiftgram/SGStrings/Strings/de.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/de.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..49d4148221b --- /dev/null +++ b/Swiftgram/SGStrings/Strings/de.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Inhaltliche Einstellungen"; + +"Settings.Tabs.Header" = "Tabs"; +"Settings.Tabs.HideTabBar" = "Tab-Leiste ausblenden"; +"Settings.Tabs.ShowContacts" = "Kontakte Tab anzeigen"; +"Settings.Tabs.ShowNames" = "Tabnamen anzeigen"; + +"Settings.Folders.BottomTab" = "Ordner unten"; +"Settings.Folders.BottomTabStyle" = "Untere Ordner-Stil"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Verberge \"%@\""; +"Settings.Folders.RememberLast" = "Letzten Ordner öffnen"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram wird den zuletzt genutzten Order öffnen, wenn du den Account wechselst oder die App neustartest"; + +"Settings.Folders.CompactNames" = "Kleinerer Abstand"; +"Settings.Folders.AllChatsTitle" = "Titel \"Alle Chats\""; +"Settings.Folders.AllChatsTitle.short" = "Kurze"; +"Settings.Folders.AllChatsTitle.long" = "Lang"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standard"; + + +"Settings.ChatList.Header" = "CHAT LISTE"; +"Settings.CompactChatList" = "Kompakte Chat-Liste"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Stories verbergen"; +"Settings.Stories.WarnBeforeView" = "Vor dem Ansehen fragen"; +"Settings.Stories.DisableSwipeToRecord" = "Zum aufnehmen wischen deaktivieren"; + +"Settings.Translation.QuickTranslateButton" = "Schnellübersetzen-Button"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Story ansehen?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ wird sehen können, dass du die Story angesehen hast."; +"Stories.Warning.NoticeStealth" = "%@ wird nicht sehen können, dass du die Story angesehen hast."; + +"Settings.Photo.Quality.Notice" = "Qualität der gesendeten Fotos und Fotostorys"; +"Settings.Photo.SendLarge" = "Sende große Fotos"; +"Settings.Photo.SendLarge.Notice" = "Seitenlimit für komprimierte Bilder auf 2560px erhöhen"; + +"Settings.VideoNotes.Header" = "RUNDE VIDEOS"; +"Settings.VideoNotes.StartWithRearCam" = "Starte mit umgedrehter Kamera"; + +"Settings.CustomColors.Header" = "ACCOUNT FARBEN"; +"Settings.CustomColors.Saturation" = "SÄTTIGUNG"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Setze Sättigung auf 0%% um Kontofarben zu deaktivieren"; + +"Settings.UploadsBoost" = "Upload Beschleuniger"; +"Settings.DownloadsBoost" = "Download Beschleuniger"; +"Settings.DownloadsBoost.none" = "Deaktiviert"; +"Settings.DownloadsBoost.medium" = "Mittel"; +"Settings.DownloadsBoost.maximum" = "Maximum"; + +"Settings.ShowProfileID" = "Profil-ID anzeigen"; +"Settings.ShowDC" = "Data Center anzeigen"; +"Settings.ShowCreationDate" = "Chat-Erstellungsdatum anzeigen"; +"Settings.ShowCreationDate.Notice" = "Das Erstellungsdatum kann für einige Chats unbekannt sein."; + +"Settings.ShowRegDate" = "Anmeldedatum anzeigen"; +"Settings.ShowRegDate.Notice" = "Das Registrierungsdatum ist ungefähr."; + +"Settings.SendWithReturnKey" = "Mit \"Enter\" senden"; +"Settings.HidePhoneInSettingsUI" = "Telefon in den Einstellungen ausblenden"; +"Settings.HidePhoneInSettingsUI.Notice" = "Deine Nummer wird nur in der Benutzeroberfläche versteckt. Um sie vor anderen zu verbergen, verwende bitte die Privatsphäre-Einstellungen."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Falls 5 Sekunden inaktiv"; + +"ProxySettings.UseSystemDNS" = "Benutze System DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Benutze System DNS um Timeout zu umgehen, wenn du keinen Zugriff auf Google DNS hast"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Du brauchst %@ nicht!"; +"Common.RestartRequired" = "Benötigt Neustart"; +"Common.RestartNow" = "Jetzt neustarten"; +"Common.OpenTelegram" = "Telegram öffnen"; +"Common.UseTelegramForPremium" = "Bitte beachten Sie, dass Sie die offizielle Telegram-App verwenden müssen, um Telegram Premium zu erhalten. Sobald Sie Telegram Premium erhalten haben, werden alle Funktionen in Swiftgram verfügbar."; + +"Message.HoldToShowOrReport" = "Halten, zum Ansehen oder melden."; + +"Auth.AccountBackupReminder" = "Stelle sicher, dass du eine weiter Möglichkeit hast auf den Account zuzugreifen. Behalte die SIM Karte im SMS zum Login empfangen zu können oder nutze weitere Apps/Geräte mit einer aktive Sitzung deines Accounts."; +"Auth.UnofficialAppCodeTitle" = "Du kannst den Code nur mit der offiziellen App erhalten"; + +"Settings.SmallReactions" = "Kleine Reaktionen"; +"Settings.HideReactions" = "Verberge Reaktionen"; + +"ContextMenu.SaveToCloud" = "In Cloud speichern"; +"ContextMenu.SelectFromUser" = "Vom Autor auswählen"; + +"Settings.ContextMenu" = "KONTEXTMENÜ"; +"Settings.ContextMenu.Notice" = "Deaktivierte Einträge sind im 'Swiftgram'-Untermenü verfügbar."; + + +"Settings.ChatSwipeOptions" = "Chatlisten-Wisch-Optionen"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Ziehen zum nächsten Kanal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Ziehen Sie zum nächsten Thema"; +"Settings.GalleryCamera" = "Kamera in der Galerie"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Schaltfläche"; +"Settings.SnapDeletionEffect" = "Nachrichtenlösch-Effekte"; + +"Settings.Stickers.Size" = "GRÖSSE"; +"Settings.Stickers.Timestamp" = "Zeitstempel anzeigen"; + +"Settings.RecordingButton" = "Sprachaufnahme-Button"; + +"Settings.DefaultEmojisFirst" = "Priorisieren Sie Standard-Emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Zeigen Sie Standard-Emojis vor Premium-Emojis in der Emoji-Tastatur"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "erstellt: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Beigetreten am %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registriert"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Doppeltippen, um Nachricht zu bearbeiten"; diff --git a/Swiftgram/SGStrings/Strings/el.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/el.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..5047574584d --- /dev/null +++ b/Swiftgram/SGStrings/Strings/el.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Ρυθμίσεις Περιεχομένου"; + +"Settings.Tabs.Header" = "TABS"; +"Settings.Tabs.HideTabBar" = "Απόκρυψη γραμμής καρτελών"; +"Settings.Tabs.ShowContacts" = "Εμφάνιση Καρτέλας Επαφών"; +"Settings.Tabs.ShowNames" = "Show Tab Names"; + +"Settings.Folders.BottomTab" = "Φάκελοι στο κάτω μέρος"; +"Settings.Folders.BottomTabStyle" = "Ύφος Κάτω Φακέλων"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Απόκρυψη \"%@\""; +"Settings.Folders.RememberLast" = "Άνοιγμα Τελευταίου Φακέλου"; +"Settings.Folders.RememberLast.Notice" = "Το Swiftgram θα ανοίξει τον τελευταίο φάκελο όταν επανεκκινήσετε την εφαρμογή ή αλλάξετε λογαριασμούς."; + +"Settings.Folders.CompactNames" = "Μικρότερη απόσταση"; +"Settings.Folders.AllChatsTitle" = "\"Όλες οι συνομιλίες\" τίτλος"; +"Settings.Folders.AllChatsTitle.short" = "Σύντομο"; +"Settings.Folders.AllChatsTitle.long" = "Εκτενές"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Προεπιλογή"; + + +"Settings.ChatList.Header" = "ΚΑΤΑΛΟΓΟΣ ΤΥΠΟΥ"; +"Settings.CompactChatList" = "Συμπαγής Λίστα Συνομιλίας"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Απόκρυψη Ιστοριών"; +"Settings.Stories.WarnBeforeView" = "Ερώτηση Πριν Την Προβολή"; +"Settings.Stories.DisableSwipeToRecord" = "Απενεργοποίηση ολίσθησης για εγγραφή"; + +"Settings.Translation.QuickTranslateButton" = "Γρήγορη μετάφραση κουμπί"; + +"Stories.Warning.Author" = "Συγγραφέας"; +"Stories.Warning.ViewStory" = "Προβολή Ιστορίας?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ ΘΑ ΠΡΕΠΕΙ ΝΑ ΒΛΕΠΕ ότι έχετε δει την Ιστορία τους."; +"Stories.Warning.NoticeStealth" = "%@ δεν θα είναι σε θέση να δείτε ότι έχετε δει την Ιστορία τους."; + +"Settings.Photo.Quality.Notice" = "Ποιότητα των ανεβασμένων φωτογραφιών και ιστοριών."; +"Settings.Photo.SendLarge" = "Αποστολή Μεγάλων Φωτογραφιών"; +"Settings.Photo.SendLarge.Notice" = "Αυξήστε το πλευρικό όριο στις συμπιεσμένες εικόνες στα 2560px."; + +"Settings.VideoNotes.Header" = "ΤΡΟΠΟΣ ΒΙΝΤΕΟ"; +"Settings.VideoNotes.StartWithRearCam" = "Έναρξη με πίσω κάμερα"; + +"Settings.CustomColors.Header" = "ΧΡΩΜΑΤΑ ΛΟΓΑΡΙΑΣΜΟΥ"; +"Settings.CustomColors.Saturation" = "ΑΣΦΑΛΙΣΗ"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Ορίστε σε 0%% για να απενεργοποιήσετε τα χρώματα του λογαριασμού."; + +"Settings.UploadsBoost" = "Ενίσχυση Αποστολής"; +"Settings.DownloadsBoost" = "Ενίσχυση Λήψης"; +"Settings.DownloadsBoost.none" = "Απενεργοποιημένο"; +"Settings.DownloadsBoost.medium" = "Μεσαίο"; +"Settings.DownloadsBoost.maximum" = "Μέγιστο"; + +"Settings.ShowProfileID" = "Εμφάνιση Αναγνωριστικού Προφίλ"; +"Settings.ShowDC" = "Εμφάνιση Κέντρου Δεδομένων"; +"Settings.ShowCreationDate" = "Εμφάνιση Ημερομηνίας Δημιουργίας Συνομιλίας"; +"Settings.ShowCreationDate.Notice" = "Η ημερομηνία δημιουργίας μπορεί να είναι άγνωστη για μερικές συνομιλίες."; + +"Settings.ShowRegDate" = "Εμφάνιση Ημερομηνίας Εγγραφής"; +"Settings.ShowRegDate.Notice" = "Η ημερομηνία εγγραφής είναι κατά προσέγγιση."; + +"Settings.SendWithReturnKey" = "Αποστολή με κλειδί \"επιστροφή\""; +"Settings.HidePhoneInSettingsUI" = "Απόκρυψη τηλεφώνου στις ρυθμίσεις"; +"Settings.HidePhoneInSettingsUI.Notice" = "Αυτό θα κρύψει μόνο τον αριθμό τηλεφώνου σας από τη διεπαφή ρυθμίσεων. Για να τον αποκρύψετε από άλλους, μεταβείτε στο Privacy and Security."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Εάν είναι μακριά για 5 δευτερόλεπτα"; + +"ProxySettings.UseSystemDNS" = "Χρήση συστήματος DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Χρησιμοποιήστε το σύστημα DNS για να παρακάμψετε το χρονικό όριο αν δεν έχετε πρόσβαση στο Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Du **brauchst kein** %@!"; +"Common.RestartRequired" = "Απαιτείται επανεκκίνηση"; +"Common.RestartNow" = "Επανεκκίνηση Τώρα"; +"Common.OpenTelegram" = "Άνοιγμα Telegram"; +"Common.UseTelegramForPremium" = "Παρακαλώ σημειώστε ότι για να πάρετε Telegram Premium, θα πρέπει να χρησιμοποιήσετε την επίσημη εφαρμογή Telegram. Μόλις λάβετε Telegram Premium, όλα τα χαρακτηριστικά του θα είναι διαθέσιμα στο Swiftgram."; + +"Message.HoldToShowOrReport" = "Κρατήστε για προβολή ή αναφορά."; + +"Auth.AccountBackupReminder" = "Βεβαιωθείτε ότι έχετε μια μέθοδο πρόσβασης αντιγράφων ασφαλείας. Κρατήστε μια SIM για SMS ή μια πρόσθετη συνεδρία συνδεδεμένη για να αποφύγετε να κλειδωθεί."; +"Auth.UnofficialAppCodeTitle" = "Μπορείτε να πάρετε τον κωδικό μόνο με επίσημη εφαρμογή"; + +"Settings.SmallReactions" = "Μικρές Αντιδράσεις"; +"Settings.HideReactions" = "Απόκρυψη Αντιδράσεων"; + +"ContextMenu.SaveToCloud" = "Αποθήκευση στο σύννεφο"; +"ContextMenu.SelectFromUser" = "Επιλέξτε από τον Συγγραφέα"; + +"Settings.ContextMenu" = "KONTEXTMENÜ"; +"Settings.ContextMenu.Notice" = "Deaktivierte Einträge sind im 'Swiftgram'-Untermenü verfügbar."; + + +"Settings.ChatSwipeOptions" = "Επιλογές Συρσίματος Λίστας Συνομιλίας"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Τραβήξτε στο επόμενο μη αναγνωσμένο κανάλι"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Τραβήξτε για το Επόμενο Θέμα"; +"Settings.GalleryCamera" = "Κάμερα στη Γκαλερί"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\" Κουμπί%@\""; +"Settings.SnapDeletionEffect" = "Εφέ Διαγραφής Μηνύματος"; + +"Settings.Stickers.Size" = "ΜΕΓΕΘΟΣ"; +"Settings.Stickers.Timestamp" = "Εμφάνιση Χρονοσήμανσης"; + +"Settings.RecordingButton" = "Πλήκτρο Ηχογράφησης Φωνής"; + +"Settings.DefaultEmojisFirst" = "Δώστε προτεραιότητα στα τυπικά emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Εμφανίστε τυπικά emojis πριν από premium στο πληκτρολόγιο emojis"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "δημιουργήθηκε: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Εντάχθηκε στο %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Εγγεγραμμένος"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Διπλό Πάτημα για Επεξεργασία Μηνύματος"; diff --git a/Swiftgram/SGStrings/Strings/en.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/en.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..b2456b601da --- /dev/null +++ b/Swiftgram/SGStrings/Strings/en.lproj/SGLocalizable.strings @@ -0,0 +1,134 @@ +"Settings.ContentSettings" = "Content Settings"; + +"Settings.Tabs.Header" = "TABS"; +"Settings.Tabs.HideTabBar" = "Hide Tab bar"; +"Settings.Tabs.ShowContacts" = "Show Contacts Tab"; +"Settings.Tabs.ShowNames" = "Show Tab Names"; + +"Settings.Folders.BottomTab" = "Folders at Bottom"; +"Settings.Folders.BottomTabStyle" = "Bottom Folders Style"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Hide \"%@\""; +"Settings.Folders.RememberLast" = "Open Last Folder"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram will open the last used folder when you restart the app or switch accounts."; + +"Settings.Folders.CompactNames" = "Smaller spacing"; +"Settings.Folders.AllChatsTitle" = "\"All Chats\" title"; +"Settings.Folders.AllChatsTitle.short" = "Short"; +"Settings.Folders.AllChatsTitle.long" = "Long"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Default"; + + +"Settings.ChatList.Header" = "CHAT LIST"; +"Settings.CompactChatList" = "Compact Chat List"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Hide Stories"; +"Settings.Stories.WarnBeforeView" = "Ask Before Viewing"; +"Settings.Stories.DisableSwipeToRecord" = "Disable Swipe to Record"; + +"Settings.Translation.QuickTranslateButton" = "Quick Translate button"; + +"Stories.Warning.Author" = "Author"; +"Stories.Warning.ViewStory" = "View Story?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ WILL BE ABLE TO SEE that you viewed their Story."; +"Stories.Warning.NoticeStealth" = "%@ will not be able to see that you viewed their Story."; + +"Settings.Photo.Quality.Notice" = "Quality of uploaded photos and stories."; +"Settings.Photo.SendLarge" = "Send Large Photos"; +"Settings.Photo.SendLarge.Notice" = "Increase the side limit on compressed images to 2560px."; + +"Settings.VideoNotes.Header" = "ROUND VIDEOS"; +"Settings.VideoNotes.StartWithRearCam" = "Start with Rear Camera"; + +"Settings.CustomColors.Header" = "ACCOUNT COLORS"; +"Settings.CustomColors.Saturation" = "SATURATION"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Set to 0%% to disable account colors."; + +"Settings.UploadsBoost" = "Upload Boost"; +"Settings.DownloadsBoost" = "Download Boost"; +"Settings.DownloadsBoost.none" = "Disabled"; +"Settings.DownloadsBoost.medium" = "Medium"; +"Settings.DownloadsBoost.maximum" = "Maximum"; + +"Settings.ShowProfileID" = "Show Profile ID"; +"Settings.ShowDC" = "Show Data Center"; +"Settings.ShowCreationDate" = "Show Chat Creation Date"; +"Settings.ShowCreationDate.Notice" = "The creation date may be unknown for some chats."; + +"Settings.ShowRegDate" = "Show Registration Date"; +"Settings.ShowRegDate.Notice" = "The registration date is approximate."; + +"Settings.SendWithReturnKey" = "Send with \"return\" key"; +"Settings.HidePhoneInSettingsUI" = "Hide Phone in Settings"; +"Settings.HidePhoneInSettingsUI.Notice" = "This will only hide your phone number from the settings interface. To hide it from others, go to Privacy and Security."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "If away for 5 seconds"; + +"ProxySettings.UseSystemDNS" = "Use system DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Use system DNS to bypass timeout if you don't have access to Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "You **don't need** %@!"; +"Common.RestartRequired" = "Restart required"; +"Common.RestartNow" = "Restart Now"; +"Common.OpenTelegram" = "Open Telegram"; +"Common.UseTelegramForPremium" = "Please note that to get Telegram Premium, you must use the official Telegram app. Once you have obtained Telegram Premium, all its features will become available in Swiftgram."; + +"Message.HoldToShowOrReport" = "Hold to Show or Report."; + +"Auth.AccountBackupReminder" = "Make sure you have a backup access method. Keep a SIM for SMS or an additional session logged in to avoid being locked out."; +"Auth.UnofficialAppCodeTitle" = "You can get the code only with official app"; + +"Settings.SmallReactions" = "Small Reactions"; +"Settings.HideReactions" = "Hide Reactions"; + +"ContextMenu.SaveToCloud" = "Save to Cloud"; +"ContextMenu.SelectFromUser" = "Select from Author"; + +"Settings.ContextMenu" = "CONTEXT MENU"; +"Settings.ContextMenu.Notice" = "Disabled entries will be available in \"Swiftgram\" sub-menu."; + + +"Settings.ChatSwipeOptions" = "Chat List Swipe Options"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Pull to Next Unread Channel"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Pull to Next Topic"; +"Settings.GalleryCamera" = "Camera in Gallery"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Button"; +"Settings.SnapDeletionEffect" = "Message Deletion Effects"; + +"Settings.Stickers.Size" = "SIZE"; +"Settings.Stickers.Timestamp" = "Show Timestamp"; + +"Settings.RecordingButton" = "Voice Recording Button"; + +"Settings.DefaultEmojisFirst" = "Prioritize standard emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Show standard emojis before premium in emoji keyboard"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "created: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Joined %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registered"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Double-tap to edit message"; + +"Settings.wideChannelPosts" = "Wide posts in channels"; +"Settings.ForceEmojiTab" = "Emoji keyboard by default"; + +"Settings.forceBuiltInMic" = "Force Device Microphone"; +"Settings.forceBuiltInMic.Notice" = "If enabled, app will use only device microphone even if headphones are connected."; \ No newline at end of file diff --git a/Swiftgram/SGStrings/Strings/es.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/es.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..1f13c342783 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/es.lproj/SGLocalizable.strings @@ -0,0 +1,134 @@ +"Settings.ContentSettings" = "Configuración de contenido"; + +"Settings.Tabs.Header" = "PESTAÑAS"; +"Settings.Tabs.HideTabBar" = "Ocultar barra de pestaña"; +"Settings.Tabs.ShowContacts" = "Mostrar pestaña de Contactos"; +"Settings.Tabs.ShowNames" = "Mostrar nombres de pestañas"; + +"Settings.Folders.BottomTab" = "Carpetas al fondo"; +"Settings.Folders.BottomTabStyle" = "Estilo de carpetas al fondo"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Ocultar \"%@\""; +"Settings.Folders.RememberLast" = "Abrir última carpeta"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram abrirá la última carpeta usada después de reiniciar o cambiar de cuenta"; + +"Settings.Folders.CompactNames" = "Espaciado más pequeño"; +"Settings.Folders.AllChatsTitle" = "Título \"Todos los Chats\""; +"Settings.Folders.AllChatsTitle.short" = "Corto"; +"Settings.Folders.AllChatsTitle.long" = "Largo"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Por defecto"; + + +"Settings.ChatList.Header" = "LISTA DE CHAT"; +"Settings.CompactChatList" = "Lista de Chat de Compacto"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Ocultar Historias"; +"Settings.Stories.WarnBeforeView" = "Preguntar antes de ver"; +"Settings.Stories.DisableSwipeToRecord" = "Desactivar deslizar para grabar"; + +"Settings.Translation.QuickTranslateButton" = "Botón de traducción rápida"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "¿Ver historia?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ PODRÁ VER que viste su historia."; +"Stories.Warning.NoticeStealth" = "%@ no podrá ver que viste su historia."; + +"Settings.Photo.Quality.Notice" = "Calidad de las fotos y foto-historias enviadas"; +"Settings.Photo.SendLarge" = "Enviar fotos grandes"; +"Settings.Photo.SendLarge.Notice" = "Aumentar el límite de tamaño de las imágenes comprimidas a 2560px"; + +"Settings.VideoNotes.Header" = "VIDEOS REDONDOS"; +"Settings.VideoNotes.StartWithRearCam" = "Comenzar con la cámara trasera"; + +"Settings.CustomColors.Header" = "COLORES DE LA CUENTA"; +"Settings.CustomColors.Saturation" = "SATURACIÓN"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Establecer saturación en 0%% para desactivar los colores de la cuenta"; + +"Settings.UploadsBoost" = "Aumento de subida"; +"Settings.DownloadsBoost" = "Aumento de descargas"; +"Settings.DownloadsBoost.none" = "Desactivado"; +"Settings.DownloadsBoost.medium" = "Medio"; +"Settings.DownloadsBoost.maximum" = "Máximo"; + +"Settings.ShowProfileID" = "Mostrar ID del perfil"; +"Settings.ShowDC" = "Mostrar Centro de Datos"; +"Settings.ShowCreationDate" = "Mostrar fecha de creación del chat"; +"Settings.ShowCreationDate.Notice" = "La fecha de creación puede ser desconocida para algunos chats."; + +"Settings.ShowRegDate" = "Mostrar fecha de registro"; +"Settings.ShowRegDate.Notice" = "La fecha de inscripción es aproximada."; + +"Settings.SendWithReturnKey" = "Enviar con la tecla \"regresar\""; +"Settings.HidePhoneInSettingsUI" = "Ocultar número en Ajustes"; +"Settings.HidePhoneInSettingsUI.Notice" = "Tu número estará oculto en la interfaz de ajustes solamente. Ve a la configuración de privacidad para ocultarlo a otros."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Si está ausente durante 5 segundos"; + +"ProxySettings.UseSystemDNS" = "Usar DNS del sistema"; +"ProxySettings.UseSystemDNS.Notice" = "Usa el DNS del sistema para omitir el tiempo de espera si no tienes acceso a Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "¡**No necesitas** %@!"; +"Common.RestartRequired" = "Es necesario reiniciar"; +"Common.RestartNow" = "Reiniciar ahora"; +"Common.OpenTelegram" = "Abrir Telegram"; +"Common.UseTelegramForPremium" = "Ten en cuenta que para obtener Telegram Premium, debes usar la aplicación oficial de Telegram. Una vez que haya obtenido Telegram Premium, todas sus características estarán disponibles en Swiftgram."; + +"Message.HoldToShowOrReport" = "Mantenga presionado para mostrar o reportar."; + +"Auth.AccountBackupReminder" = "Asegúrate de que tienes un método de acceso de copia de seguridad. Mantenga una SIM para SMS o una sesión adicional conectada para evitar ser bloqueada."; +"Auth.UnofficialAppCodeTitle" = "Sólo puedes obtener el código con la app oficial"; + +"Settings.SmallReactions" = "Reacciones pequeñas"; +"Settings.HideReactions" = "Ocultar Reacciones"; + +"ContextMenu.SaveToCloud" = "Guardar en la nube"; +"ContextMenu.SelectFromUser" = "Seleccionar del autor"; + +"Settings.ContextMenu" = "MENÚ CONTEXTUAL"; +"Settings.ContextMenu.Notice" = "Las entradas desactivadas estarán disponibles en el submenú \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Opciones de deslizamiento de la lista de chats"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Saltar al siguiente canal no leído"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Deslizar para ir al siguiente tema"; +"Settings.GalleryCamera" = "Cámara en galería"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Botón \"%@\""; +"Settings.SnapDeletionEffect" = "Efectos de eliminación de mensajes"; + +"Settings.Stickers.Size" = "TAMAÑO"; +"Settings.Stickers.Timestamp" = "Mostrar marca de tiempo"; + +"Settings.RecordingButton" = "Botón de grabación de voz"; + +"Settings.DefaultEmojisFirst" = "Priorizar emojis estándar"; +"Settings.DefaultEmojisFirst.Notice" = "Mostrar emojis estándar antes que premium en el teclado de emojis"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "creado: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Unido a %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrado"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Doble toque para editar mensaje"; + +"Settings.wideChannelPosts" = "Publicaciones amplias en canales"; +"Settings.ForceEmojiTab" = "Teclado de emojis por defecto"; + +"Settings.forceBuiltInMic" = "Forzar micrófono del dispositivo"; +"Settings.forceBuiltInMic.Notice" = "Si está habilitado, la aplicación utilizará solo el micrófono del dispositivo incluso si se conectan auriculares."; diff --git a/Swiftgram/SGStrings/Strings/fa.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/fa.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..1581d635363 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/fa.lproj/SGLocalizable.strings @@ -0,0 +1,9 @@ +"Settings.Tabs.Header" = "زبانه ها"; +"Settings.Tabs.ShowContacts" = "نمایش برگه مخاطبین"; +"Settings.VideoNotes.Header" = "فیلم های round"; +"Settings.Tabs.ShowNames" = "نشان دادن برگه اسم ها"; +"Settings.HidePhoneInSettingsUI" = "پنهان کردن شماره موبایل در تنظیمات"; +"Settings.HidePhoneInSettingsUI.Notice" = "شماره شما فقط در رابط کاربری پنهان خواهد شد. برای پنهان کردن آن از دید دیگران ، لطفاً از تنظیمات حریم خصوصی استفاده کنید."; +"Settings.ShowProfileID" = "نمایش ایدی پروفایل"; +"Settings.Translation.QuickTranslateButton" = "دکمه ترجمه سریع"; +"ContextMenu.SaveToCloud" = "ذخیره در فضای ابری"; diff --git a/Swiftgram/SGStrings/Strings/fi.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/fi.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..9cf1718c9c4 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/fi.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Sisällön Asetukset"; + +"Settings.Tabs.Header" = "VÄLILEHDET"; +"Settings.Tabs.HideTabBar" = "Piilota Välilehtipalkki"; +"Settings.Tabs.ShowContacts" = "Näytä Yhteystiedot-välilehti"; +"Settings.Tabs.ShowNames" = "Näytä välilehtien nimet"; + +"Settings.Folders.BottomTab" = "Kansiot alhaalla"; +"Settings.Folders.BottomTabStyle" = "Alhaalla olevien kansioiden tyyli"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Piilota \"%@\""; +"Settings.Folders.RememberLast" = "Avaa viimeisin kansio"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram avaa viimeksi käytetyn kansion uudelleenkäynnistyksen tai tilin vaihdon jälkeen."; + +"Settings.Folders.CompactNames" = "Pienempi väli"; +"Settings.Folders.AllChatsTitle" = "\"Kaikki chatit\" otsikko"; +"Settings.Folders.AllChatsTitle.short" = "Lyhyt"; +"Settings.Folders.AllChatsTitle.long" = "Pitkä"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Oletus"; + + +"Settings.ChatList.Header" = "CHAT LIST"; +"Settings.CompactChatList" = "Kompakti Keskustelulista"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Piilota Tarinat"; +"Settings.Stories.WarnBeforeView" = "Kysy ennen katsomista"; +"Settings.Stories.DisableSwipeToRecord" = "Poista pyyhkäisy tallennukseen käytöstä"; + +"Settings.Translation.QuickTranslateButton" = "Pikakäännöspainike"; + +"Stories.Warning.Author" = "Tekijä"; +"Stories.Warning.ViewStory" = "Katso Tarina?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ NÄKEE, että olet katsonut heidän Tarinansa."; +"Stories.Warning.NoticeStealth" = "%@ ei näe, että olet katsonut heidän Tarinansa."; + +"Settings.Photo.Quality.Notice" = "Lähtevien valokuvien ja valokuvatarinoiden laatu."; +"Settings.Photo.SendLarge" = "Lähetä suuria valokuvia"; +"Settings.Photo.SendLarge.Notice" = "Suurenna pakattujen kuvien sivurajaa 2560px:ään."; + +"Settings.VideoNotes.Header" = "PYÖREÄT VIDEOT"; +"Settings.VideoNotes.StartWithRearCam" = "Aloita takakameralla"; + +"Settings.CustomColors.Header" = "TILIN VÄRIT"; +"Settings.CustomColors.Saturation" = "KYLLÄISYYS"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Aseta kylläisyys 0%%:iin poistaaksesi tilin värit käytöstä."; + +"Settings.UploadsBoost" = "Latausten tehostus"; +"Settings.DownloadsBoost" = "Latausten tehostus"; +"Settings.DownloadsBoost.none" = "Ei käytössä"; +"Settings.DownloadsBoost.medium" = "Keskitaso"; +"Settings.DownloadsBoost.maximum" = "Maksimi"; + +"Settings.ShowProfileID" = "Näytä profiilin ID"; +"Settings.ShowDC" = "Näytä tietokeskus"; +"Settings.ShowCreationDate" = "Näytä keskustelun luontipäivä"; +"Settings.ShowCreationDate.Notice" = "Keskustelun luontipäivä voi olla tuntematon joillekin keskusteluille."; + +"Settings.ShowRegDate" = "Näytä Rekisteröintipäivä"; +"Settings.ShowRegDate.Notice" = "Rekisteröintipäivä on likimääräinen."; + +"Settings.SendWithReturnKey" = "Lähetä 'paluu'-näppäimellä"; +"Settings.HidePhoneInSettingsUI" = "Piilota puhelin asetuksissa"; +"Settings.HidePhoneInSettingsUI.Notice" = "Tämä piilottaa puhelinnumerosi vain asetukset-käyttöliittymästä. Piilottaaksesi sen muilta, siirry kohtaan Yksityisyys ja Turvallisuus."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Jos poissa 5 sekuntia"; + +"ProxySettings.UseSystemDNS" = "Käytä järjestelmän DNS:ää"; +"ProxySettings.UseSystemDNS.Notice" = "Käytä järjestelmän DNS:ää ohittaaksesi aikakatkaisun, jos sinulla ei ole pääsyä Google DNS:ään"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Et **tarvitse** %@!"; +"Common.RestartRequired" = "Uudelleenkäynnistys vaaditaan"; +"Common.RestartNow" = "Käynnistä uudelleen nyt"; +"Common.OpenTelegram" = "Avaa Telegram"; +"Common.UseTelegramForPremium" = "Huomioi, että saat Telegram Premiumin käyttämällä virallista Telegram-sovellusta. Kun olet hankkinut Telegram Premiumin, kaikki sen ominaisuudet ovat saatavilla Swiftgramissa."; + +"Message.HoldToShowOrReport" = "Pidä esillä näyttääksesi tai ilmoittaaksesi."; + +"Auth.AccountBackupReminder" = "Varmista, että sinulla on varmuuskopio pääsymenetelmästä. Pidä SIM tekstiviestejä varten tai ylimääräinen istunto kirjautuneena välttääksesi lukkiutumisen."; +"Auth.UnofficialAppCodeTitle" = "Koodin voi saada vain virallisella sovelluksella"; + +"Settings.SmallReactions" = "Pienet reaktiot"; +"Settings.HideReactions" = "Piilota reaktiot"; + +"ContextMenu.SaveToCloud" = "Tallenna Pilveen"; +"ContextMenu.SelectFromUser" = "Valitse Tekijältä"; + +"Settings.ContextMenu" = "KONTEKSTIVALIKKO"; +"Settings.ContextMenu.Notice" = "Poistetut kohteet ovat saatavilla 'Swiftgram'-alavalikossa."; + + +"Settings.ChatSwipeOptions" = "Chat List Swipe Options"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Vetää seuraavaan lukemattomaan kanavaan"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Vedä seuraava aihe"; +"Settings.GalleryCamera" = "Camera in Gallery"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Button"; +"Settings.SnapDeletionEffect" = "Message Deletion Effects"; + +"Settings.Stickers.Size" = "SIZE"; +"Settings.Stickers.Timestamp" = "Show Timestamp"; + +"Settings.RecordingButton" = "Voice Recording Button"; + +"Settings.DefaultEmojisFirst" = "Anna etusijalle vakiotunnuksia"; +"Settings.DefaultEmojisFirst.Notice" = "Näytä vakiotunnukset ennen premium-tunnuksia tunnusnäppäimistössä"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "created: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Joined %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Rekisteröity"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Paina kahdesti muokataksesi viestiä"; diff --git a/Swiftgram/SGStrings/Strings/fr.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/fr.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..f6b8e68c2b1 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/fr.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Paramètres du contenu"; + +"Settings.Tabs.Header" = "ONGLETS"; +"Settings.Tabs.HideTabBar" = "Masquer la barre d'onglets"; +"Settings.Tabs.ShowContacts" = "Afficher l'onglet Contacts"; +"Settings.Tabs.ShowNames" = "Afficher les noms des onglets"; + +"Settings.Folders.BottomTab" = "Dossiers en bas"; +"Settings.Folders.BottomTabStyle" = "Style des dossiers inférieurs"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Masquer \"%@\""; +"Settings.Folders.RememberLast" = "Ouvrir le dernier dossier"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram ouvrira le dernier dossier utilisé après le redémarrage ou changement de compte"; + +"Settings.Folders.CompactNames" = "Espacement plus petit"; +"Settings.Folders.AllChatsTitle" = "Titre \"Tous les Chats\""; +"Settings.Folders.AllChatsTitle.short" = "Courte"; +"Settings.Folders.AllChatsTitle.long" = "Longue"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Par défaut"; + + +"Settings.ChatList.Header" = "LISTE DE CHAT"; +"Settings.CompactChatList" = "Liste de discussion compacte"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Cacher les histoires"; +"Settings.Stories.WarnBeforeView" = "Demander avant de visionner"; +"Settings.Stories.DisableSwipeToRecord" = "Désactiver le glissement pour enregistrer"; + +"Settings.Translation.QuickTranslateButton" = "Bouton de traduction rapide"; + +"Stories.Warning.Author" = "Auteur"; +"Stories.Warning.ViewStory" = "Voir l'histoire?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ SERA autorisé à voir que vous avez vu son histoire."; +"Stories.Warning.NoticeStealth" = "%@ ne sera pas en mesure de voir que vous avez vu leur Histoire."; + +"Settings.Photo.Quality.Notice" = "Qualité des photos et des récits photo sortants"; +"Settings.Photo.SendLarge" = "Envoyer de grandes photos"; +"Settings.Photo.SendLarge.Notice" = "Augmenter la limite latérale des images compressées à 2560px"; + +"Settings.VideoNotes.Header" = "VIDÉOS RONDES"; +"Settings.VideoNotes.StartWithRearCam" = "Commencer avec la caméra arrière"; + +"Settings.CustomColors.Header" = "COULEURS DU COMPTE"; +"Settings.CustomColors.Saturation" = "SATURATION"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Régler la saturation à 0%% pour désactiver les couleurs du compte"; + +"Settings.UploadsBoost" = "Chargements boost"; +"Settings.DownloadsBoost" = "Boost de téléchargements"; +"Settings.DownloadsBoost.none" = "Désactivé"; +"Settings.DownloadsBoost.medium" = "Moyenne"; +"Settings.DownloadsBoost.maximum" = "Maximum"; + +"Settings.ShowProfileID" = "Afficher l'identifiant du profil"; +"Settings.ShowDC" = "Afficher le centre de données"; +"Settings.ShowCreationDate" = "Afficher la date de création du chat"; +"Settings.ShowCreationDate.Notice" = "La date de création peut être inconnue pour certains chats."; + +"Settings.ShowRegDate" = "Afficher la date d'inscription"; +"Settings.ShowRegDate.Notice" = "La date d'inscription est approximative."; + +"Settings.SendWithReturnKey" = "Envoyer avec la clé \"return\""; +"Settings.HidePhoneInSettingsUI" = "Masquer le téléphone dans les paramètres"; +"Settings.HidePhoneInSettingsUI.Notice" = "Votre numéro sera masqué dans l'interface utilisateur uniquement. Pour le masquer aux autres, veuillez utiliser les paramètres de confidentialité."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Si absente pendant 5 secondes"; + +"ProxySettings.UseSystemDNS" = "Utiliser le DNS du système"; +"ProxySettings.UseSystemDNS.Notice" = "Utiliser le DNS système pour contourner le délai d'attente si vous n'avez pas accès à Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Vous **n'avez pas besoin** %@!"; +"Common.RestartRequired" = "Redémarrage nécessaire"; +"Common.RestartNow" = "Redémarrer maintenant"; +"Common.OpenTelegram" = "Ouvrir Telegram"; +"Common.UseTelegramForPremium" = "Veuillez noter que pour obtenir Telegram Premium, vous devez utiliser l'application Telegram officielle. Une fois que vous avez obtenu Telegram Premium, toutes ses fonctionnalités seront disponibles dans Swiftgram."; + +"Message.HoldToShowOrReport" = "Maintenir pour afficher ou rapporter."; + +"Auth.AccountBackupReminder" = "Assurez-vous d'avoir une méthode d'accès de sauvegarde. Gardez une carte SIM pour les SMS ou une session supplémentaire connectée pour éviter d'être bloquée."; +"Auth.UnofficialAppCodeTitle" = "Vous ne pouvez obtenir le code qu'avec l'application officielle"; + +"Settings.SmallReactions" = "Petites réactions"; +"Settings.HideReactions" = "Masquer les réactions"; + +"ContextMenu.SaveToCloud" = "Sauvegarder dans le cloud"; +"ContextMenu.SelectFromUser" = "Sélectionner de l'Auteur"; + +"Settings.ContextMenu" = "MENU CONTEXTUEL"; +"Settings.ContextMenu.Notice" = "Les entrées désactivées seront disponibles dans le sous-menu 'Swiftgram'."; + + +"Settings.ChatSwipeOptions" = "Options de balayage de la liste de chat"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Tirer vers le prochain canal non lu"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Tirer pour le sujet suivant"; +"Settings.GalleryCamera" = "Appareil photo dans la galerie"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Bouton \"%@\""; +"Settings.SnapDeletionEffect" = "Effets de suppression de message"; + +"Settings.Stickers.Size" = "TAILLE"; +"Settings.Stickers.Timestamp" = "Afficher l'horodatage"; + +"Settings.RecordingButton" = "Bouton d'enregistrement vocal"; + +"Settings.DefaultEmojisFirst" = "Prioriser les emojis standard"; +"Settings.DefaultEmojisFirst.Notice" = "Afficher les emojis standard avant les emojis premium dans le clavier emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "créé: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Rejoint %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Enregistré"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Appuyez deux fois pour modifier le message"; diff --git a/Swiftgram/SGStrings/Strings/he.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/he.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..91f73bcc92f --- /dev/null +++ b/Swiftgram/SGStrings/Strings/he.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "הגדרות תוכן"; + +"Settings.Tabs.Header" = "כרטיסיות"; +"Settings.Tabs.HideTabBar" = "הסתר סרגל לשוניים"; +"Settings.Tabs.ShowContacts" = "הצג כרטיסיית אנשי קשר"; +"Settings.Tabs.ShowNames" = "הצג שמות כרטיסיות"; + +"Settings.Folders.BottomTab" = "תיקיות בתחתית"; +"Settings.Folders.BottomTabStyle" = "סגנון תיקיות תחתון"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "טלגרם"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "להסתיר \"%@\""; +"Settings.Folders.RememberLast" = "פתח את התיקיה האחרונה"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram תפתח את התיקיה שנעשה בה שימוש לאחרונה לאחר הפעלה מחדש או החלפת חשבון"; + +"Settings.Folders.CompactNames" = "ריווח קטן יותר"; +"Settings.Folders.AllChatsTitle" = "כותרת \"כל הצ'אטים\""; +"Settings.Folders.AllChatsTitle.short" = "קצר"; +"Settings.Folders.AllChatsTitle.long" = "ארוך"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "ברירת מחדל"; + + +"Settings.ChatList.Header" = "רשימת צ'אטים"; +"Settings.CompactChatList" = "רשימת צ'אטים קומפקטית"; + +"Settings.Profiles.Header" = "פרופילים"; + +"Settings.Stories.Hide" = "הסתר סיפורים"; +"Settings.Stories.WarnBeforeView" = "שאל לפני צפייה"; +"Settings.Stories.DisableSwipeToRecord" = "בטל החלקה להקלטה"; + +"Settings.Translation.QuickTranslateButton" = "כפתור תרגום מהיר"; + +"Stories.Warning.Author" = "מחבר"; +"Stories.Warning.ViewStory" = "לצפות בסיפור?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ יוכל לראות שצפית בסיפור שלו."; +"Stories.Warning.NoticeStealth" = "%@ לא יוכל לראות שצפית בסיפור שלו."; + +"Settings.Photo.Quality.Notice" = "איכות התמונות היוצאות והסיפורים בתמונות"; +"Settings.Photo.SendLarge" = "שלח תמונות גדולות"; +"Settings.Photo.SendLarge.Notice" = "הגדל את הגבול הצידי של תמונות מודחקות ל-2560px"; + +"Settings.VideoNotes.Header" = "וידאו מעוגלים"; +"Settings.VideoNotes.StartWithRearCam" = "התחל עם מצלמה אחורית"; + +"Settings.CustomColors.Header" = "צבעי חשבון"; +"Settings.CustomColors.Saturation" = "רווי"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "קבע רווי ל-0%% כדי לבטל צבעי חשבון"; + +"Settings.UploadsBoost" = "תוספת העלאות"; +"Settings.DownloadsBoost" = "תוספת הורדות"; +"Settings.DownloadsBoost.none" = "מבוטל"; +"Settings.DownloadsBoost.medium" = "בינוני"; +"Settings.DownloadsBoost.maximum" = "מרבי"; + +"Settings.ShowProfileID" = "הצג מזהה פרופיל"; +"Settings.ShowDC" = "הצג מרכז מידע"; +"Settings.ShowCreationDate" = "הצג תאריך יצירת צ'אט"; +"Settings.ShowCreationDate.Notice" = "ייתכן שתאריך היצירה אינו ידוע עבור חלק מהצ'אטים."; + +"Settings.ShowRegDate" = "הצג תאריך רישום"; +"Settings.ShowRegDate.Notice" = "תאריך הרישום הוא אופציונלי."; + +"Settings.SendWithReturnKey" = "שלח עם מקש \"חזור\""; +"Settings.HidePhoneInSettingsUI" = "הסתר טלפון בהגדרות"; +"Settings.HidePhoneInSettingsUI.Notice" = "המספר שלך יהיה מוסתר בממשק ההגדרות בלבד. עבור להגדרות פרטיות כדי להסתיר אותו מאחרים."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "נעל אוטומטית אחרי 5 שניות"; + +"ProxySettings.UseSystemDNS" = "השתמש ב-DNS של המערכת"; +"ProxySettings.UseSystemDNS.Notice" = "השתמש ב-DNS של המערכת כדי לעקוף זמן תגובה אם אין לך גישה ל-Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "אין **צורך** ב%@!"; +"Common.RestartRequired" = "נדרש הפעלה מחדש"; +"Common.RestartNow" = "הפעל מחדש עכשיו"; +"Common.OpenTelegram" = "פתח טלגרם"; +"Common.UseTelegramForPremium" = "שים לב כי כדי לקבל Telegram Premium, עליך להשתמש באפליקציית Telegram הרשמית. לאחר שקיבלת טלגרם פרימיום, כל התכונות שלו יהיו זמינות ב־Swiftgram."; + +"Message.HoldToShowOrReport" = "החזק כדי להציג או לדווח."; + +"Auth.AccountBackupReminder" = "ודא שיש לך שיטת גישה לגיבוי. שמור כרטיס SIM ל-SMS או פתח סשן נוסף כדי למנוע חסימה."; +"Auth.UnofficialAppCodeTitle" = "תוכל לקבל את הקוד רק דרך האפליקציה הרשמית"; + +"Settings.SmallReactions" = "תגובות קטנות"; +"Settings.HideReactions" = "הסתר תגובות"; + +"ContextMenu.SaveToCloud" = "שמור בענן"; +"ContextMenu.SelectFromUser" = "בחר מהמשתמש"; + +"Settings.ContextMenu" = "תפריט הקשר"; +"Settings.ContextMenu.Notice" = "פריטים מבוטלים יהיו זמינים בתת-תפריט 'Swiftgram'."; + + +"Settings.ChatSwipeOptions" = "אפשרויות גלילה ברשימת צ'אטים"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "משוך לערוץ לא נקרא הבא"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "משוך כדי להמשיך לנושא הבא"; +"Settings.GalleryCamera" = "מצלמה בגלריה"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "כפתור \"%@\""; +"Settings.SnapDeletionEffect" = "אפקטים של מחיקת הודעות"; + +"Settings.Stickers.Size" = "גודל"; +"Settings.Stickers.Timestamp" = "הצג חותמת זמן"; + +"Settings.RecordingButton" = "כפתור הקלטת קול"; + +"Settings.DefaultEmojisFirst" = "העדף רמזי פנים סטנדרטיים"; +"Settings.DefaultEmojisFirst.Notice" = "הצג רמזי פנים סטנדרטיים לפני פרימיום במקלדת רמזי פנים"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "נוצר: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "הצטרף/הצטרפה ב־%@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "נרשם"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "לחץ פעמיים לעריכת הודעה"; diff --git a/Swiftgram/SGStrings/Strings/hi.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/hi.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..38014924ff2 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/hi.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "कंटेंट सेटिंग्स"; + +"Settings.Tabs.Header" = "टैब"; +"Settings.Tabs.HideTabBar" = "टैब बार छिपाएं"; +"Settings.Tabs.ShowContacts" = "संपर्क टैब दिखाएँ"; +"Settings.Tabs.ShowNames" = "टैब नाम दिखाएं"; + +"Settings.Folders.BottomTab" = "निचले टैब में फोल्डर्स"; +"Settings.Folders.BottomTabStyle" = "बॉटम फोल्डर स्टाइल है"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "आईओएस"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "टेलीग्राम"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "\"%@\" छिपाएं"; +"Settings.Folders.RememberLast" = "आखिरी फोल्डर खोलें"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram पुनः आरंभ या खाता स्विच करने के बाद अंतिम प्रयुक्त फोल्डर को खोलेगा"; + +"Settings.Folders.CompactNames" = "कम अंतराल"; +"Settings.Folders.AllChatsTitle" = "\"सभी चैट\" शीर्षक"; +"Settings.Folders.AllChatsTitle.short" = "संक्षिप्त"; +"Settings.Folders.AllChatsTitle.long" = "लंबा"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "डिफ़ॉल्ट"; + + +"Settings.ChatList.Header" = "चैट सूची"; +"Settings.CompactChatList" = "संक्षिप्त चैट सूची"; + +"Settings.Profiles.Header" = "प्रोफाइल"; + +"Settings.Stories.Hide" = "कहानियाँ छुपाएं"; +"Settings.Stories.WarnBeforeView" = "देखने से पहले पूछें"; +"Settings.Stories.DisableSwipeToRecord" = "रिकॉर्ड करने के लिए स्वाइप को अक्षम करें"; + +"Settings.Translation.QuickTranslateButton" = "त्वरित अनुवाद बटन"; + +"Stories.Warning.Author" = "लेखक"; +"Stories.Warning.ViewStory" = "कहानी देखें"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ देख सकते हैं कि आपने उनकी कहानी देखी है।"; +"Stories.Warning.NoticeStealth" = "%@ नहीं देख सकते कि आपने उनकी कहानी देखी है।"; + +"Settings.Photo.Quality.Notice" = "भेजे गए फोटो और फोटो-कहानियों की गुणवत्ता"; +"Settings.Photo.SendLarge" = "बड़े फोटो भेजें"; +"Settings.Photo.SendLarge.Notice" = "संकुचित छवियों पर साइड सीमा को 2560px तक बढ़ाएं"; + +"Settings.VideoNotes.Header" = "गोल वीडियो"; +"Settings.VideoNotes.StartWithRearCam" = "रियर कैमरा के साथ शुरू करें"; + +"Settings.CustomColors.Header" = "खाता रंग"; +"Settings.CustomColors.Saturation" = "संतृप्ति"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "खाता रंगों को निष्क्रिय करने के लिए संतृप्ति को 0%% पर सेट करें"; + +"Settings.UploadsBoost" = "अपलोड बूस्ट"; +"Settings.DownloadsBoost" = "डाउनलोड बूस्ट"; +"Settings.DownloadsBoost.none" = "निष्क्रिय"; +"Settings.DownloadsBoost.medium" = "माध्यम"; +"Settings.DownloadsBoost.maximum" = "अधिकतम"; + +"Settings.ShowProfileID" = "प्रोफ़ाइल ID दिखाएं"; +"Settings.ShowDC" = "डेटा सेंटर दिखाएं"; +"Settings.ShowCreationDate" = "चैट निर्माण तिथि दिखाएं"; +"Settings.ShowCreationDate.Notice" = "कुछ चैट के लिए निर्माण तिथि अज्ञात हो सकती है।"; + +"Settings.ShowRegDate" = "पंजीकरण दिनांक दिखाएं"; +"Settings.ShowRegDate.Notice" = "पंजीकरण दिनांक अनुमानित हो सकती है।"; + +"Settings.SendWithReturnKey" = "\"वापसी\" कुंजी के साथ भेजें"; +"Settings.HidePhoneInSettingsUI" = "सेटिंग्स में फोन छिपाएं"; +"Settings.HidePhoneInSettingsUI.Notice" = "आपका नंबर केवल सेटिंग्स UI में छिपा होगा। इसे दूसरों से छिपाने के लिए गोपनीयता सेटिंग्स में जाएं।"; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "5 सेकंड के लिए दूर रहने पर"; + +"ProxySettings.UseSystemDNS" = "सिस्टम डीएनएस का प्रयोग करें"; +"ProxySettings.UseSystemDNS.Notice" = "यदि आपके पास Google DNS तक पहुँच नहीं है तो टाइमआउट से बचने के लिए सिस्टम DNS का उपयोग करें"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "आपको %@ की **आवश्यकता नहीं** है!"; +"Common.RestartRequired" = "पुनः आरंभ की आवश्यकता"; +"Common.RestartNow" = "अभी रीस्टार्ट करें"; +"Common.OpenTelegram" = "टेलीग्राम खोलें"; +"Common.UseTelegramForPremium" = "कृपया ध्यान दें कि टेलीग्राम प्रीमियम प्राप्त करने के लिए आपको आधिकारिक टेलीग्राम ऐप का उपयोग करना होगा। एक बार जब आप टेलीग्राम प्रीमियम प्राप्त कर लेंगे, तो इसकी सभी सुविधाएं स्विफ्टग्राम में उपलब्ध हो जाएंगी।"; + +"Message.HoldToShowOrReport" = "दिखाने या रिपोर्ट करने के लिए दबाए रखें।"; + +"Auth.AccountBackupReminder" = "सुनिश्चित करें कि आपके पास बैकअप एक्सेस विधि है। एसएमएस के लिए एक सिम रखें या बाहर निकलने से बचने के लिए एक अतिरिक्त सत्र में लॉग इन करें।"; +"Auth.UnofficialAppCodeTitle" = "आप केवल आधिकारिक ऐप से ही कोड प्राप्त कर सकते हैं"; + +"Settings.SmallReactions" = "छोटी-छोटी प्रतिक्रियाएँ"; +"Settings.HideReactions" = "प्रतिक्रियाएँ छिपाएं"; + +"ContextMenu.SaveToCloud" = "क्लाउड में सहेजें"; +"ContextMenu.SelectFromUser" = "लेखक में से चुनें"; + +"Settings.ContextMenu" = "संदर्भ मेनू"; +"Settings.ContextMenu.Notice" = "अक्षम प्रविष्टियाँ \"स्विफ्टग्राम\" उप-मेनू में उपलब्ध होंगी।"; + + +"Settings.ChatSwipeOptions" = "चैटलिस्ट स्वाइप विकल्प"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "अगले अपठित चैनल पर खींचें"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "अगले विषय को खींचें"; +"Settings.GalleryCamera" = "गैलरी में कैमरा"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" बटन"; +"Settings.SnapDeletionEffect" = "संदेश विलोपन प्रभाव"; + +"Settings.Stickers.Size" = "आकार"; +"Settings.Stickers.Timestamp" = "टाइमस्टैंप दिखाएं"; + +"Settings.RecordingButton" = "वॉयस रिकॉर्डिंग बटन"; + +"Settings.DefaultEmojisFirst" = "मुख्यत: मानक इमोजी को प्राथमिकता दें"; +"Settings.DefaultEmojisFirst.Notice" = "इमोजी कीबोर्ड में प्रीमियम से पहले मानक इमोजी दिखाएं"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "बनाया गया: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "%@ में शामिल हो गया"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "पंजीकृत"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "संदेश संपादित करने के लिए दो बार टैप करें"; diff --git a/Swiftgram/SGStrings/Strings/hu.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/hu.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..32ee4d0dbe3 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/hu.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Tartalombeállítások"; + +"Settings.Tabs.Header" = "FÜLEK"; +"Settings.Tabs.HideTabBar" = "Feliratcsík elrejtése"; +"Settings.Tabs.ShowContacts" = "Kapcsolatok fül megjelenítése"; +"Settings.Tabs.ShowNames" = "Feliratcsík nevek megjelenítése"; + +"Settings.Folders.BottomTab" = "Könyvtárak az alján"; +"Settings.Folders.BottomTabStyle" = "Alsó könyvtár stílus"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Elrejtése \"%@\""; +"Settings.Folders.RememberLast" = "Utolsó mappa megnyitása"; +"Settings.Folders.RememberLast.Notice" = "A Swiftgram az utoljára használt mappát fogja megnyitni, amikor újraindítja az alkalmazást vagy fiókok között vált."; + +"Settings.Folders.CompactNames" = "Kisebb térköz"; +"Settings.Folders.AllChatsTitle" = "\"Minden Beszélgetés\" cím"; +"Settings.Folders.AllChatsTitle.short" = "Rövid"; +"Settings.Folders.AllChatsTitle.long" = "Hosszú"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Alapértelmezett"; + + +"Settings.ChatList.Header" = "BESZÉLGETÉS LISTA"; +"Settings.CompactChatList" = "Kompakt Beszélgetés Lista"; + +"Settings.Profiles.Header" = "PROFIL"; + +"Settings.Stories.Hide" = "Történetek elrejtése"; +"Settings.Stories.WarnBeforeView" = "Kérdezzen megtekintés előtt"; +"Settings.Stories.DisableSwipeToRecord" = "Húzás letiltása felvételhez"; + +"Settings.Translation.QuickTranslateButton" = "Gyors Fordítás gomb"; + +"Stories.Warning.Author" = "Szerző"; +"Stories.Warning.ViewStory" = "Történet megtekintése?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ LÁTNI FOGJA, hogy megtekintetted a történetüket."; +"Stories.Warning.NoticeStealth" = "%@ nem fogja látni, hogy megtekintetted a történetüket."; + +"Settings.Photo.Quality.Notice" = "Feltöltött fényképek és történetek minősége."; +"Settings.Photo.SendLarge" = "Nagy fényképek küldése"; +"Settings.Photo.SendLarge.Notice" = "Növelje a tömörített képek oldalméretének határát 2560px-re."; + +"Settings.VideoNotes.Header" = "KEREK VIDEÓK"; +"Settings.VideoNotes.StartWithRearCam" = "Kezdje a hátsó kamerával"; + +"Settings.CustomColors.Header" = "FIÓK SZÍNEI"; +"Settings.CustomColors.Saturation" = "TELÍTETTSÉG"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Színértéket 0%%-ra állítva az fiókszíneket letiltja."; + +"Settings.UploadsBoost" = "Feltöltés fokozása"; +"Settings.DownloadsBoost" = "Letöltés fokozása"; +"Settings.DownloadsBoost.none" = "Kikapcsolva"; +"Settings.DownloadsBoost.medium" = "Közepes"; +"Settings.DownloadsBoost.maximum" = "Maximális"; + +"Settings.ShowProfileID" = "Profil azonosító megjelenítése"; +"Settings.ShowDC" = "Adatközpont megjelenítése"; +"Settings.ShowCreationDate" = "Beszélgetés létrehozásának dátumának megjelenítése"; +"Settings.ShowCreationDate.Notice" = "A beszélgetés létrehozásának dátuma ismeretlen lehet néhány csevegésnél."; + +"Settings.ShowRegDate" = "Regisztrációs Dátum Megjelenítése"; +"Settings.ShowRegDate.Notice" = "A regisztrációs dátum csak hozzávetőleges."; + +"Settings.SendWithReturnKey" = "Küldés 'vissza' gombbal"; +"Settings.HidePhoneInSettingsUI" = "Telefonszám elrejtése a beállításokban"; +"Settings.HidePhoneInSettingsUI.Notice" = "Ezzel csak a telefonszámát rejti el a beállítások felületen. Ha mások számára is el akarja rejteni, menjen a Adatvédelem és biztonság menübe."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Ha 5 másodpercig távol van"; + +"ProxySettings.UseSystemDNS" = "Rendszer DNS használata"; +"ProxySettings.UseSystemDNS.Notice" = "Használja a rendszer DNS-t, ha nem fér hozzá a Google DNS-hez"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Nem **szükséges** %@!"; +"Common.RestartRequired" = "Újraindítás szükséges"; +"Common.RestartNow" = "Újraindítás most"; +"Common.OpenTelegram" = "Telegram megnyitása"; +"Common.UseTelegramForPremium" = "Kérjük vegye figyelembe, hogy a Telegram Prémiumhoz az hivatalos Telegram appot kell használnia. Amint megkapta a Telegram Prémiumot, Swiftgram összes funkciója elérhető lesz."; + +"Message.HoldToShowOrReport" = "Tartsa lenyomva a Megjelenítéshez vagy Jelentéshez."; + +"Auth.AccountBackupReminder" = "Győződjön meg róla, hogy van biztonsági másolat hozzáférési módszere. Tartsa meg a SMS-hez használt SIM-et vagy egy másik bejelentkezett munkamenetet, hogy elkerülje a kizárást."; +"Auth.UnofficialAppCodeTitle" = "A kódot csak a hivatalos alkalmazással szerezheti meg"; + +"Settings.SmallReactions" = "Kis reakciók"; +"Settings.HideReactions" = "Reakciók Elrejtése"; + +"ContextMenu.SaveToCloud" = "Mentés a Felhőbe"; +"ContextMenu.SelectFromUser" = "Kiválasztás a Szerzőtől"; + +"Settings.ContextMenu" = "KONTEXTUS MENÜ"; +"Settings.ContextMenu.Notice" = "A kikapcsolt bejegyzések elérhetők lesznek a 'Swiftgram' almenüjében."; + + +"Settings.ChatSwipeOptions" = "Csevegőlista húzás opciók"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Húzza a következő olvasatlan csatornához"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Húzza le a következő témához"; +"Settings.GalleryCamera" = "Kamera a Galériában"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Gomb"; +"Settings.SnapDeletionEffect" = "Üzenet törlés hatások"; + +"Settings.Stickers.Size" = "MÉRET"; +"Settings.Stickers.Timestamp" = "Időbélyeg Megjelenítése"; + +"Settings.RecordingButton" = "Hangrögzítés Gomb"; + +"Settings.DefaultEmojisFirst" = "Prioritize standard emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Mutassa az alap emojisokat az emoji billentyűzet előtt a prémiumok helyett"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "létrehozva: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Csatlakozott %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Regisztrált"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dupla koppintás a üzenet szerkesztéséhez"; diff --git a/Swiftgram/SGStrings/Strings/id.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/id.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..fb409600688 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/id.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Pengaturan Konten"; + +"Settings.Tabs.Header" = "TABS"; +"Settings.Tabs.HideTabBar" = "Sembunyikan Tab bar"; +"Settings.Tabs.ShowContacts" = "Tampilkan Tab Kontak"; +"Settings.Tabs.ShowNames" = "Tampilkan Nama Tab"; + +"Settings.Folders.BottomTab" = "Folder di bawah"; +"Settings.Folders.BottomTabStyle" = "Gaya folder bawah"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Sembunyikan \"%@\""; +"Settings.Folders.RememberLast" = "Buka folder terakhir"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram akan membuka folder yang terakhir digunakan setelah restart atau pergantian akun"; + +"Settings.Folders.CompactNames" = "Pemisahan yang Lebih Kecil"; +"Settings.Folders.AllChatsTitle" = "Judul \"Semua Obrolan\""; +"Settings.Folders.AllChatsTitle.short" = "Pendek"; +"Settings.Folders.AllChatsTitle.long" = "Panjang"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Default"; + + +"Settings.ChatList.Header" = "DAFTAR OBROLAN"; +"Settings.CompactChatList" = "Daftar Obrolan Kompak"; + +"Settings.Profiles.Header" = "PROFIL"; + +"Settings.Stories.Hide" = "Sembunyikan Cerita"; +"Settings.Stories.WarnBeforeView" = "Tanyakan sebelum melihat"; +"Settings.Stories.DisableSwipeToRecord" = "Nonaktifkan geser untuk merekam"; + +"Settings.Translation.QuickTranslateButton" = "Bottone di traduzione rapida"; + +"Stories.Warning.Author" = "Penulis"; +"Stories.Warning.ViewStory" = "Lihat Cerita?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ AKAN TAHU bahwa Anda telah melihat Cerita mereka."; +"Stories.Warning.NoticeStealth" = "%@ tidak akan tahu bahwa Anda telah melihat Cerita mereka."; + +"Settings.Photo.Quality.Notice" = "Kualitas foto keluar dan cerita foto"; +"Settings.Photo.SendLarge" = "Kirim foto berukuran besar"; +"Settings.Photo.SendLarge.Notice" = "Tingkatkan batas sisi pada gambar terkompresi menjadi 2560px"; + +"Settings.VideoNotes.Header" = "VIDEO BULAT"; +"Settings.VideoNotes.StartWithRearCam" = "Mulai dengan kamera belakang"; + +"Settings.CustomColors.Header" = "WARNA AKUN"; +"Settings.CustomColors.Saturation" = "SATURASI"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Setel saturasi menjadi 0%% untuk menonaktifkan warna akun"; + +"Settings.UploadsBoost" = "Peningkatan Unggahan"; +"Settings.DownloadsBoost" = "Peningkatan Unduhan"; +"Settings.DownloadsBoost.none" = "Nonaktif"; +"Settings.DownloadsBoost.medium" = "Sedang"; +"Settings.DownloadsBoost.maximum" = "Maksimal"; + +"Settings.ShowProfileID" = "Tampilkan ID Profil"; +"Settings.ShowDC" = "Tampilkan Pusat Data"; +"Settings.ShowCreationDate" = "Tampilkan Tanggal Pembuatan Obrolan"; +"Settings.ShowCreationDate.Notice" = "Tanggal pembuatan mungkin tidak diketahui untuk beberapa obrolan."; + +"Settings.ShowRegDate" = "Tampilkan Tanggal Pendaftaran"; +"Settings.ShowRegDate.Notice" = "Tanggal pendaftaran adalah perkiraan."; + +"Settings.SendWithReturnKey" = "Kirim dengan kunci \"kembali\""; +"Settings.HidePhoneInSettingsUI" = "Sembunyikan nomor telepon di pengaturan"; +"Settings.HidePhoneInSettingsUI.Notice" = "Nomor Anda akan disembunyikan hanya di UI Pengaturan. Kunjungi Pengaturan Privasi untuk menyembunyikannya dari orang lain."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Jika menjauh selama 5 detik"; + +"ProxySettings.UseSystemDNS" = "Gunakan DNS sistem"; +"ProxySettings.UseSystemDNS.Notice" = "Gunakan DNS sistem untuk menghindari timeout jika Anda tidak memiliki akses ke Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Anda **tidak memerlukan** %@!"; +"Common.RestartRequired" = "Diperlukan restart"; +"Common.RestartNow" = "Restart Sekarang"; +"Common.OpenTelegram" = "Buka Telegram"; +"Common.UseTelegramForPremium" = "Harap dicatat bahwa untuk mendapatkan Telegram Premium, Anda harus menggunakan aplikasi Telegram resmi. Setelah Anda mendapatkan Telegram Premium, semua fiturnya akan tersedia di Swiftgram."; + +"Message.HoldToShowOrReport" = "Tahan untuk Menampilkan atau Melaporkan."; + +"Auth.AccountBackupReminder" = "Pastikan Anda memiliki metode akses cadangan. Simpan SIM untuk SMS atau sesi tambahan yang masuk untuk menghindari terkunci."; +"Auth.UnofficialAppCodeTitle" = "Anda hanya dapat mendapatkan kode dengan aplikasi resmi"; + +"Settings.SmallReactions" = "Reaksi kecil"; +"Settings.HideReactions" = "Sembunyikan Reaksi"; + +"ContextMenu.SaveToCloud" = "Simpan ke Cloud"; +"ContextMenu.SelectFromUser" = "Pilih dari Penulis"; + +"Settings.ContextMenu" = "MENU KONTEKS"; +"Settings.ContextMenu.Notice" = "Entri yang dinonaktifkan akan tersedia di sub-menu \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Opsi gesek daftar obrolan"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Tarik untuk obrolan berikutnya"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Tarik ke Topik Berikutnya"; +"Settings.GalleryCamera" = "Kamera di galeri"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Tombol \"%@\""; +"Settings.SnapDeletionEffect" = "Efek penghapusan pesan"; + +"Settings.Stickers.Size" = "UKURAN"; +"Settings.Stickers.Timestamp" = "Tampilkan Timestamp"; + +"Settings.RecordingButton" = "Tombol Perekaman Suara"; + +"Settings.DefaultEmojisFirst" = "Berikan prioritas pada emoji standar"; +"Settings.DefaultEmojisFirst.Notice" = "Tampilkan emoji standar sebelum emoji premium di papan tombol emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "dibuat: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Bergabung %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Terdaftar"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Ketuk dua kali untuk mengedit pesan"; diff --git a/Swiftgram/SGStrings/Strings/it.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/it.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..eedfe612351 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/it.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Impostazioni Contenuto"; + +"Settings.Tabs.Header" = "TAB"; +"Settings.Tabs.HideTabBar" = "Nascondi barra della tab"; +"Settings.Tabs.ShowContacts" = "Mostra tab contatti"; +"Settings.Tabs.ShowNames" = "Mostra nomi tab"; + +"Settings.Folders.BottomTab" = "Cartelle in basso"; +"Settings.Folders.BottomTabStyle" = "Stile cartelle in basso"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Nascondi \"%@\""; +"Settings.Folders.RememberLast" = "Apri l'ultima cartella"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram aprirà l'ultima cartella utilizzata dopo il riavvio o il cambio account"; + +"Settings.Folders.CompactNames" = "Spaziatura minore"; +"Settings.Folders.AllChatsTitle" = "Titolo \"Tutte le chat\""; +"Settings.Folders.AllChatsTitle.short" = "Breve"; +"Settings.Folders.AllChatsTitle.long" = "Lungo"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Predefinito"; + + +"Settings.ChatList.Header" = "ELENCO CHAT"; +"Settings.CompactChatList" = "Lista chat compatta"; + +"Settings.Profiles.Header" = "PROFILI"; + +"Settings.Stories.Hide" = "Nascondi Storie"; +"Settings.Stories.WarnBeforeView" = "Chiedi prima di visualizzare"; +"Settings.Stories.DisableSwipeToRecord" = "Disabilita lo scorrimento per registrare"; + +"Settings.Translation.QuickTranslateButton" = "Pulsante traduzione rapida"; + +"Stories.Warning.Author" = "Autore"; +"Stories.Warning.ViewStory" = "Visualizzare la storia?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ SAPRÀ CHE HAI VISTO la storia."; +"Stories.Warning.NoticeStealth" = "%@ non saprà che hai visto la storia."; + +"Settings.Photo.Quality.Notice" = "Qualità delle foto inviate e foto nelle storie"; +"Settings.Photo.SendLarge" = "Invia foto di grandi dimensioni"; +"Settings.Photo.SendLarge.Notice" = "Aumenta il limite sulla compressione delle foto a 2560px"; + +"Settings.VideoNotes.Header" = "Videomessaggi"; +"Settings.VideoNotes.StartWithRearCam" = "Inizia con la camera posteriore"; + +"Settings.CustomColors.Header" = "COLORI ACCOUNT"; +"Settings.CustomColors.Saturation" = "SATURAZIONE"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Imposta la saturazione a 0%% per disabilitare i colori dell'account"; + +"Settings.UploadsBoost" = "Potenziamento del caricamento"; +"Settings.DownloadsBoost" = "Potenziamento dello scaricamento"; +"Settings.DownloadsBoost.none" = "Disabilitato"; +"Settings.DownloadsBoost.medium" = "Intermedio"; +"Settings.DownloadsBoost.maximum" = "Massimo"; + +"Settings.ShowProfileID" = "Mostra l'ID del profilo"; +"Settings.ShowDC" = "Mostra Data Center"; +"Settings.ShowCreationDate" = "Mostra data di creazione della chat"; +"Settings.ShowCreationDate.Notice" = "La data di creazione potrebbe essere sconosciuta per alcune chat."; + +"Settings.ShowRegDate" = "Mostra data di registrazione"; +"Settings.ShowRegDate.Notice" = "La data di registrazione è approssimativa."; + +"Settings.SendWithReturnKey" = "Pulsante \"Invia\" per inviare"; +"Settings.HidePhoneInSettingsUI" = "Nascondi il numero di telefono nelle impostazioni"; +"Settings.HidePhoneInSettingsUI.Notice" = "Il tuo numero verrà nascosto solo nell'interfaccia. Per nasconderlo dagli altri, apri le impostazioni della Privacy."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Se assente per 5 secondi"; + +"ProxySettings.UseSystemDNS" = "Usa DNS di sistema"; +"ProxySettings.UseSystemDNS.Notice" = "Usa DNS di sistema per bypassare il timeout se non hai accesso al DNS di Google"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "**Non hai bisogno** di %@!"; +"Common.RestartRequired" = "Riavvio richiesto"; +"Common.RestartNow" = "Riavvia Adesso"; +"Common.OpenTelegram" = "Apri Telegram"; +"Common.UseTelegramForPremium" = "Si prega di notare che per ottenere Telegram Premium, è necessario utilizzare l'app ufficiale Telegram. Una volta ottenuto Telegram Premium, tutte le sue funzionalità saranno disponibili su Swiftgram."; + +"Message.HoldToShowOrReport" = "Tieni premuto per mostrare o segnalare."; + +"Auth.AccountBackupReminder" = "Assicurati di avere un metodo di accesso di backup. Tieni una SIM per gli SMS o delle sessioni aperte su altri dispositivi per evitare di essere bloccato fuori."; +"Auth.UnofficialAppCodeTitle" = "Puoi ottenere il codice solo con l'applicazione ufficiale"; + +"Settings.SmallReactions" = "Reazioni piccole"; +"Settings.HideReactions" = "Nascondi Reazioni"; + +"ContextMenu.SaveToCloud" = "Salva sul cloud"; +"ContextMenu.SelectFromUser" = "Seleziona dall'autore"; + +"Settings.ContextMenu" = "MENU CONTESTUALE"; +"Settings.ContextMenu.Notice" = "Le voci disabilitate saranno disponibili nel sottomenu \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Opzioni scorrimento nella lista delle chat"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Tira per il prossimo canale non letto"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Scorri per il prossimo topic"; +"Settings.GalleryCamera" = "Fotocamera nella galleria"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Pulsante \"%@\""; +"Settings.SnapDeletionEffect" = "Effetti eliminazione messaggi"; + +"Settings.Stickers.Size" = "DIMENSIONE"; +"Settings.Stickers.Timestamp" = "Mostra timestamp"; + +"Settings.RecordingButton" = "Pulsante per la registrazione vocale"; + +"Settings.DefaultEmojisFirst" = "Dare priorità agli emoji standard"; +"Settings.DefaultEmojisFirst.Notice" = "Mostra gli emoji standard prima dei premium nella tastiera degli emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "creato il: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Sì è unito a %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrato"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Doppio tap per modificare il messaggio"; diff --git a/Swiftgram/SGStrings/Strings/ja.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ja.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..6a4b1080717 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ja.lproj/SGLocalizable.strings @@ -0,0 +1,129 @@ +"Settings.ContentSettings" = "コンテンツの設定"; + +"Settings.Tabs.Header" = "タブ"; +"Settings.Tabs.HideTabBar" = "タブバーを非表示にする"; +"Settings.Tabs.ShowContacts" = "連絡先のタブを表示"; +"Settings.Tabs.ShowNames" = "タブの名前を隠す"; + +"Settings.Folders.BottomTab" = "フォルダーを下に表示"; +"Settings.Folders.BottomTabStyle" = "チャットフォルダーのスタイル"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "\"%@\"を非表示"; +"Settings.Folders.RememberLast" = "最後に開いたフォルダを開く"; +"Settings.Folders.RememberLast.Notice" = "Swiftgramは再起動またはアカウント切替後に最後に使用したフォルダを開きます"; + +"Settings.Folders.CompactNames" = "より小さい間隔"; +"Settings.Folders.AllChatsTitle" = "「すべてのチャット」タイトル"; +"Settings.Folders.AllChatsTitle.short" = "Short"; +"Settings.Folders.AllChatsTitle.long" = "長い順"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "デフォルト"; + + +"Settings.ChatList.Header" = "チャットリスト"; +"Settings.CompactChatList" = "コンパクトなチャットリスト"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "ストーリーを隠す"; +"Settings.Stories.WarnBeforeView" = "視聴前に確認"; +"Settings.Stories.DisableSwipeToRecord" = "スワイプで録画を無効にする"; + +"Settings.Translation.QuickTranslateButton" = "クイック翻訳ボタン"; + +"Stories.Warning.Author" = "投稿者"; +"Stories.Warning.ViewStory" = "ストーリーを表示?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@はあなたがそのストーリーを見たことを確認できます。"; +"Stories.Warning.NoticeStealth" = "%@はあなたがそのストーリーを見たことを確認できません。"; + +"Settings.Photo.Quality.Notice" = "送信する写真とフォトストーリーの品質"; +"Settings.Photo.SendLarge" = "大きな写真を送信"; +"Settings.Photo.SendLarge.Notice" = "圧縮画像のサイド制限を2560pxに増加"; + +"Settings.VideoNotes.Header" = "丸いビデオ"; +"Settings.VideoNotes.StartWithRearCam" = "リアカメラで開始"; + +"Settings.CustomColors.Header" = "アカウントの色"; +"Settings.CustomColors.Saturation" = "彩度"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "彩度を0%%に設定してアカウントの色を無効にする"; + +"Settings.UploadsBoost" = "アップロードブースト"; +"Settings.DownloadsBoost" = "ダウンロードブースト"; +"Settings.DownloadsBoost.none" = "無効"; +"Settings.DownloadsBoost.medium" = "中程度"; +"Settings.DownloadsBoost.maximum" = "最大"; + +"Settings.ShowProfileID" = "プロフィールIDを表示"; +"Settings.ShowDC" = "データセンターを表示"; +"Settings.ShowCreationDate" = "チャットの作成日を表示"; +"Settings.ShowCreationDate.Notice" = "作成日が不明なチャットがあります。"; + +"Settings.ShowRegDate" = "登録日を表示"; +"Settings.ShowRegDate.Notice" = "登録日はおおよその日です。"; + +"Settings.SendWithReturnKey" = "\"return\" キーで送信"; +"Settings.HidePhoneInSettingsUI" = "設定で電話番号を隠す"; +"Settings.HidePhoneInSettingsUI.Notice" = "あなたの番号は設定UIでのみ隠されます。他の人から隠すにはプライバシー設定に移動してください。"; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "5秒間離れると自動ロック"; + +"ProxySettings.UseSystemDNS" = "システムDNSを使用"; +"ProxySettings.UseSystemDNS.Notice" = "Google DNSにアクセスできない場合はシステムDNSを使用してタイムアウトを回避"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "** %@は必要ありません**!"; +"Common.RestartRequired" = "再起動が必要です"; +"Common.RestartNow" = "今すぐ再実行"; +"Common.OpenTelegram" = "Telegram を開く"; +"Common.UseTelegramForPremium" = "Telegram Premiumを登録するには、公式のTelegramアプリが必要です。 +登録すると、Swiftgram等の非公式アプリ含め、Telegram Premiumをサポートする全てのアプリでプレミアムメソッドを利用できます。"; + +"Message.HoldToShowOrReport" = "表示または報告するために押し続ける。"; + +"Auth.AccountBackupReminder" = "バックアップアクセス方法があることを確認してください。SMS用のSIMを保持するか、追加のセッションにログインしてロックアウトを避けてください。"; +"Auth.UnofficialAppCodeTitle" = "テレグラムの公式アプリでのみログインコードを取得できます"; + +"Settings.SmallReactions" = "小さいリアクション"; +"Settings.HideReactions" = "リアクションを非表示"; + +"ContextMenu.SaveToCloud" = "メッセージを保存"; +"ContextMenu.SelectFromUser" = "全て選択"; + +"Settings.ContextMenu" = "コンテキスト メニュー"; +"Settings.ContextMenu.Notice" = "無効化されたエントリは、「Swiftgram」サブメニューから利用できます。"; + + +"Settings.ChatSwipeOptions" = "チャットリストのスワイプ設定"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "次の未読チャンネルまでプルする"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "次のトピックに移動する"; +"Settings.GalleryCamera" = "ギャラリーのカメラを隠す"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" ボタン"; +"Settings.SnapDeletionEffect" = "メッセージ削除のエフェクト"; + +"Settings.Stickers.Size" = "サイズ"; +"Settings.Stickers.Timestamp" = "タイムスタンプを表示"; + +"Settings.RecordingButton" = "音声録音ボタン"; + +"Settings.DefaultEmojisFirst" = "標準エモジを優先"; +"Settings.DefaultEmojisFirst.Notice" = "絵文字キーボードでプレミアムより前に標準エモジを表示"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "作成済み: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "%@ に参加しました"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "登録済み"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "メッセージを編集するにはタップをダブルタップ"; diff --git a/Swiftgram/SGStrings/Strings/km.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/km.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..928cf393a67 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/km.lproj/SGLocalizable.strings @@ -0,0 +1,8 @@ +"Settings.Tabs.Header" = "ថេប"; +"Settings.Tabs.ShowContacts" = "បង្ហាញថេបទំនាក់ទំនង"; +"Settings.VideoNotes.Header" = "រង្វង់វីដេអូ"; +"Settings.VideoNotes.StartWithRearCam" = "ចាប់ផ្ដើមជាមួយកាមេរ៉ាក្រោយ"; +"Settings.Tabs.ShowNames" = "បង្ហាញឈ្មោះថេប"; +"Settings.HidePhoneInSettingsUI" = "លាក់លេខទូរសព្ទក្នុងការកំណត់"; +"Settings.Folders.BottomTab" = "ថតឯបាត"; +"ContextMenu.SaveToCloud" = "រក្សាទុកទៅពពក"; diff --git a/Swiftgram/SGStrings/Strings/ko.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ko.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..ea8b2945a00 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ko.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "콘텐츠 설정"; + +"Settings.Tabs.Header" = "탭"; +"Settings.Tabs.HideTabBar" = "탭바숨기기"; +"Settings.Tabs.ShowContacts" = "연락처 탭 보이기"; +"Settings.Tabs.ShowNames" = "탭 이름 표시"; + +"Settings.Folders.BottomTab" = "폴더를 하단에 표시"; +"Settings.Folders.BottomTabStyle" = "탭위치아래"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "\"%@\" 숨기기"; +"Settings.Folders.RememberLast" = "마지막 폴더 열기"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram은 재시작하거나 계정을 전환한 후 마지막으로 사용한 폴더를 엽니다"; + +"Settings.Folders.CompactNames" = "간격 작게"; +"Settings.Folders.AllChatsTitle" = "\"모든 채팅\" 제목"; +"Settings.Folders.AllChatsTitle.short" = "단축"; +"Settings.Folders.AllChatsTitle.long" = "긴"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "기본"; + + +"Settings.ChatList.Header" = "채팅 목록"; +"Settings.CompactChatList" = "간략한 채팅 목록"; + +"Settings.Profiles.Header" = "프로필"; + +"Settings.Stories.Hide" = "스토리 숨기기"; +"Settings.Stories.WarnBeforeView" = "보기 전에 묻기"; +"Settings.Stories.DisableSwipeToRecord" = "녹화를 위한 스와이프 비활성화"; + +"Settings.Translation.QuickTranslateButton" = "빠른 번역 버튼"; + +"Stories.Warning.Author" = "작성자"; +"Stories.Warning.ViewStory" = "스토리 보기?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@님은 당신이 그들의 스토리를 봤는지 알 수 있습니다."; +"Stories.Warning.NoticeStealth" = "%@님은 당신이 그들의 스토리를 봤는지 알 수 없습니다."; + +"Settings.Photo.Quality.Notice" = "보낸 사진과 포토스토리의 품질"; +"Settings.Photo.SendLarge" = "큰 사진 보내기"; +"Settings.Photo.SendLarge.Notice" = "압축 이미지의 크기 제한을 2560px로 증가"; + +"Settings.VideoNotes.Header" = "라운드 비디오"; +"Settings.VideoNotes.StartWithRearCam" = "후면 카메라로 시작"; + +"Settings.CustomColors.Header" = "계정 색상"; +"Settings.CustomColors.Saturation" = "채도"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "계정 색상을 비활성화하려면 채도를 0%%로 설정하세요"; + +"Settings.UploadsBoost" = "업로드 향상"; +"Settings.DownloadsBoost" = "다운로드 향상"; +"Settings.DownloadsBoost.none" = "비활성화"; +"Settings.DownloadsBoost.medium" = "중간"; +"Settings.DownloadsBoost.maximum" = "최대"; + +"Settings.ShowProfileID" = "프로필 ID 표시"; +"Settings.ShowDC" = "데이터센터보기"; +"Settings.ShowCreationDate" = "채팅 생성 날짜 표시"; +"Settings.ShowCreationDate.Notice" = "몇몇 채팅에 대해서는 생성 날짜를 알 수 없을 수 있습니다."; + +"Settings.ShowRegDate" = "가입 날짜 표시"; +"Settings.ShowRegDate.Notice" = "가입 날짜는 대략적입니다."; + +"Settings.SendWithReturnKey" = "\"리턴\" 키로 보내기"; +"Settings.HidePhoneInSettingsUI" = "설정에서 전화번호 숨기기"; +"Settings.HidePhoneInSettingsUI.Notice" = "전화 번호는 UI에서만 숨겨집니다. 다른 사람에게 숨기려면 개인 정보 설정을 사용하세요."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "5초 동안 떨어져 있으면"; + +"ProxySettings.UseSystemDNS" = "시스템 DNS 사용"; +"ProxySettings.UseSystemDNS.Notice" = "Google DNS에 접근할 수 없는 경우 시스템 DNS를 사용하여 타임아웃 우회"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "%@이(가) **필요하지 않습니다**!"; +"Common.RestartRequired" = "재시작 필요"; +"Common.RestartNow" = "지금 재시작"; +"Common.OpenTelegram" = "텔레그램 열기"; +"Common.UseTelegramForPremium" = "텔레그램 프리미엄을 받으려면 공식 텔레그램 앱을 사용해야 합니다. 텔레그램 프리미엄을 획득하면 모든 기능이 Swiftgram에서 사용 가능해집니다."; + +"Message.HoldToShowOrReport" = "보여주거나 신고하기 위해 길게 누르세요."; + +"Auth.AccountBackupReminder" = "백업 접근 방법을 확보하세요. SMS용 SIM 카드를 보관하거나 추가 세션에 로그인하여 잠금을 피하세요."; +"Auth.UnofficialAppCodeTitle" = "코드는 공식 앱으로만 받을 수 있습니다"; + +"Settings.SmallReactions" = "작은 반응들"; +"Settings.HideReactions" = "반응 숨기기"; + +"ContextMenu.SaveToCloud" = "클라우드에 저장"; +"ContextMenu.SelectFromUser" = "사용자에서 선택"; + +"Settings.ContextMenu" = "컨텍스트 메뉴"; +"Settings.ContextMenu.Notice" = "'Swiftgram' 하위 메뉴에서 비활성화된 항목을 사용할 수 있습니다."; + + +"Settings.ChatSwipeOptions" = "채팅 목록 스와이프 옵션"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "다음 읽지 않은 채널까지 당겨서 보기"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "다음 주제로 끌어당기기"; +"Settings.GalleryCamera" = "갤러리 내 카메라"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" 버튼"; +"Settings.SnapDeletionEffect" = "메시지 삭제 효과"; + +"Settings.Stickers.Size" = "크기"; +"Settings.Stickers.Timestamp" = "시간 표시 표시"; + +"Settings.RecordingButton" = "음성 녹음 버튼"; + +"Settings.DefaultEmojisFirst" = "표준 이모지 우선순위 설정"; +"Settings.DefaultEmojisFirst.Notice" = "이모지 키보드에서 프리미엄 이모지보다 표준 이모지 우선 표시"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "생성됨: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "%@에 가입함"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "가입함"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "메시지 수정을 위해 두 번 탭"; diff --git a/Swiftgram/SGStrings/Strings/ku.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ku.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..62ac20a89c4 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ku.lproj/SGLocalizable.strings @@ -0,0 +1,10 @@ +"Settings.Tabs.Header" = "تابەکان"; +"Settings.Tabs.ShowContacts" = "نیشاندانی تابی کۆنتاکتەکان"; +"Settings.VideoNotes.Header" = "ڤیدیۆ بازنەییەکان"; +"Settings.VideoNotes.StartWithRearCam" = "دەستپێکردن بە کامێرای پشتەوە"; +"Settings.Tabs.ShowNames" = "نیشاندانی ناوی تابەکان"; +"Settings.HidePhoneInSettingsUI" = "شاردنەوەی تەلەفۆن لە ڕێکخستنەکان"; +"Settings.HidePhoneInSettingsUI.Notice" = "ژمارەکەت تەنها لە ڕووکارەکە دەرناکەوێت. بۆ ئەوەی لە ئەوانەی دیکەی بشاریتەوە، تکایە ڕێکخستنەکانی پارێزراوی بەکاربێنە."; +"Settings.Translation.QuickTranslateButton" = "دوگمەی وەرگێڕانی خێرا"; +"Settings.Folders.BottomTab" = "بوخچەکان لە خوارەوە"; +"ContextMenu.SaveToCloud" = "هەڵگرتن لە کڵاود"; diff --git a/Swiftgram/SGStrings/Strings/nl.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/nl.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..b8dd504bbc5 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/nl.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Inhoudsinstellingen"; + +"Settings.Tabs.Header" = "TABS"; +"Settings.Tabs.HideTabBar" = "Tabbladbalk verbergen"; +"Settings.Tabs.ShowContacts" = "Toon Contacten Tab"; +"Settings.Tabs.ShowNames" = "Show Tab Names"; + +"Settings.Folders.BottomTab" = "Mappen onderaan"; +"Settings.Folders.BottomTabStyle" = "Onderste mappenstijl"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Verberg \"%@\""; +"Settings.Folders.RememberLast" = "Laatste map openen"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram zal de laatst gebruikte map openen wanneer u de app herstart of van account wisselt."; + +"Settings.Folders.CompactNames" = "Kleinere afstand"; +"Settings.Folders.AllChatsTitle" = "\"Alle Chats\" titel"; +"Settings.Folders.AllChatsTitle.short" = "Kort"; +"Settings.Folders.AllChatsTitle.long" = "Lang"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standaard"; + + +"Settings.ChatList.Header" = "CHAT LIJST"; +"Settings.CompactChatList" = "Compacte Chat Lijst"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Verberg Verhalen"; +"Settings.Stories.WarnBeforeView" = "Vragen voor bekijken"; +"Settings.Stories.DisableSwipeToRecord" = "Swipe om op te nemen uitschakelen"; + +"Settings.Translation.QuickTranslateButton" = "Snelle Vertaalknop"; + +"Stories.Warning.Author" = "Auteur"; +"Stories.Warning.ViewStory" = "Bekijk Verhaal?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ ZAL KUNNEN ZIEN dat je hun Verhaal hebt bekeken."; +"Stories.Warning.NoticeStealth" = "%@ zal niet kunnen zien dat je hun Verhaal hebt bekeken."; + +"Settings.Photo.Quality.Notice" = "Kwaliteit van geüploade foto's en verhalen."; +"Settings.Photo.SendLarge" = "Verstuur grote foto's"; +"Settings.Photo.SendLarge.Notice" = "Verhoog de zijlimiet bij gecomprimeerde afbeeldingen naar 2560px."; + +"Settings.VideoNotes.Header" = "RONDE VIDEO'S"; +"Settings.VideoNotes.StartWithRearCam" = "Start met achtercamera"; + +"Settings.CustomColors.Header" = "ACCOUNTKLEUREN"; +"Settings.CustomColors.Saturation" = "VERZADIGING"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Zet op 0%% om accountkleuren uit te schakelen."; + +"Settings.UploadsBoost" = "Upload Boost"; +"Settings.DownloadsBoost" = "Download Boost"; +"Settings.DownloadsBoost.none" = "Uitgeschakeld"; +"Settings.DownloadsBoost.medium" = "Gemiddeld"; +"Settings.DownloadsBoost.maximum" = "Maximaal"; + +"Settings.ShowProfileID" = "Toon profiel ID"; +"Settings.ShowDC" = "Toon datacentrum"; +"Settings.ShowCreationDate" = "Toon Chat Aanmaakdatum"; +"Settings.ShowCreationDate.Notice" = "De aanmaakdatum kan onbekend zijn voor sommige chatten."; + +"Settings.ShowRegDate" = "Toon registratiedatum"; +"Settings.ShowRegDate.Notice" = "De registratiedatum is ongeveer hetzelfde."; + +"Settings.SendWithReturnKey" = "Verstuur met 'return'-toets"; +"Settings.HidePhoneInSettingsUI" = "Verberg telefoon in Instellingen"; +"Settings.HidePhoneInSettingsUI.Notice" = "Dit verbergt alleen je telefoonnummer in de instellingen interface. Ga naar Privacy en Beveiliging om het voor anderen te verbergen."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Automatisch vergrendelen na 5 seconden"; + +"ProxySettings.UseSystemDNS" = "Gebruik systeem DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Gebruik systeem DNS om time-out te omzeilen als je geen toegang hebt tot Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Je hebt **geen %@ nodig**!"; +"Common.RestartRequired" = "Herstart vereist"; +"Common.RestartNow" = "Nu herstarten"; +"Common.OpenTelegram" = "Open Telegram"; +"Common.UseTelegramForPremium" = "Om Telegram Premium te krijgen moet je de officiële Telegram app gebruiken. Zodra je Telegram Premium hebt ontvangen, zullen alle functies ervan beschikbaar komen in Swiftgram."; + +"Message.HoldToShowOrReport" = "Houd vast om te Tonen of te Rapporteren."; + +"Auth.AccountBackupReminder" = "Zorg ervoor dat je een back-up toegangsmethode hebt. Houd een SIM voor SMS of een extra sessie ingelogd om buitensluiting te voorkomen."; +"Auth.UnofficialAppCodeTitle" = "Je kunt de code alleen krijgen met de officiële app"; + +"Settings.SmallReactions" = "Kleine reacties"; +"Settings.HideReactions" = "Verberg Reacties"; + +"ContextMenu.SaveToCloud" = "Opslaan in de Cloud"; +"ContextMenu.SelectFromUser" = "Selecteer van Auteur"; + +"Settings.ContextMenu" = "CONTEXTMENU"; +"Settings.ContextMenu.Notice" = "Uitgeschakelde items zijn beschikbaar in het 'Swiftgram'-submenu."; + + +"Settings.ChatSwipeOptions" = "Veegopties voor chatlijst"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Trek naar het volgende ongelezen kanaal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Trek naar Volgend Onderwerp"; +"Settings.GalleryCamera" = "Camera in Galerij"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" knop"; +"Settings.SnapDeletionEffect" = "Verwijderde Berichten Effecten"; + +"Settings.Stickers.Size" = "GROOTTE"; +"Settings.Stickers.Timestamp" = "Tijdstempel weergeven"; + +"Settings.RecordingButton" = "Spraakopname knop"; + +"Settings.DefaultEmojisFirst" = "Standaardemoji's prioriteren"; +"Settings.DefaultEmojisFirst.Notice" = "Toon standaardemoji's vóór premium in emoji-toetsenbord"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "aangemaakt: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Lid geworden %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Geregistreerd"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dubbelklik om bericht te bewerken"; diff --git a/Swiftgram/SGStrings/Strings/no.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/no.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..fdf3ac6df17 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/no.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Innholdsinnstillinger"; + +"Settings.Tabs.Header" = "FANER"; +"Settings.Tabs.HideTabBar" = "Skjul fanelinjen"; +"Settings.Tabs.ShowContacts" = "Vis kontakter-fane"; +"Settings.Tabs.ShowNames" = "Show Tab Names"; + +"Settings.Folders.BottomTab" = "Mapper på bunnen"; +"Settings.Folders.BottomTabStyle" = "Stil for nedre mapper"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Skjul \"%@\""; +"Settings.Folders.RememberLast" = "Åpne siste mappe"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram vil åpne den sist brukte mappen når du starter appen på nytt eller bytter kontoer."; + +"Settings.Folders.CompactNames" = "Mindre avstand"; +"Settings.Folders.AllChatsTitle" = "\"Alle chater\" tittel"; +"Settings.Folders.AllChatsTitle.short" = "Kort"; +"Settings.Folders.AllChatsTitle.long" = "Lang"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standard"; + + +"Settings.ChatList.Header" = "CHAT LIST"; +"Settings.CompactChatList" = "Kompakt liste"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Skjul Historier"; +"Settings.Stories.WarnBeforeView" = "Spør før visning"; +"Settings.Stories.DisableSwipeToRecord" = "Deaktiver sveip for å ta opp"; + +"Settings.Translation.QuickTranslateButton" = "Hurtigoversettelsesknapp"; + +"Stories.Warning.Author" = "Forfatter"; +"Stories.Warning.ViewStory" = "Se Historie?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ VIL SE at du har sett deres Historie."; +"Stories.Warning.NoticeStealth" = "%@ vil ikke kunne se at du har sett deres Historie."; + +"Settings.Photo.Quality.Notice" = "Kvalitet på opplastede bilder og historier."; +"Settings.Photo.SendLarge" = "Send store bilder"; +"Settings.Photo.SendLarge.Notice" = "Øk grensen for komprimerte bilder til 2560 piksler."; + +"Settings.VideoNotes.Header" = "RUNDE VIDEOER"; +"Settings.VideoNotes.StartWithRearCam" = "Start med bakkamera"; + +"Settings.CustomColors.Header" = "KONTOFARGER"; +"Settings.CustomColors.Saturation" = "METNING"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Satt til 0%% for å deaktivere kontofarger."; + +"Settings.UploadsBoost" = "Ã k opplastingshastighet"; +"Settings.DownloadsBoost" = "Last ned boost"; +"Settings.DownloadsBoost.none" = "Deaktivert"; +"Settings.DownloadsBoost.medium" = "Middels"; +"Settings.DownloadsBoost.maximum" = "Maksimum"; + +"Settings.ShowProfileID" = "Vis profil-ID"; +"Settings.ShowDC" = "Vis datasenter"; +"Settings.ShowCreationDate" = "Vis chat opprettet dato"; +"Settings.ShowCreationDate.Notice" = "Opprettelsesdatoen kan være ukjent for noen chat."; + +"Settings.ShowRegDate" = "Vis registreringsdato"; +"Settings.ShowRegDate.Notice" = "Registreringsdatoen er ca."; + +"Settings.SendWithReturnKey" = "Send med 'retur'-tasten"; +"Settings.HidePhoneInSettingsUI" = "Skjul telefonen i innstillinger"; +"Settings.HidePhoneInSettingsUI.Notice" = "Dette vil bare skjule ditt telefonnummer for instillinger. For å skjule det for andre, gå til Personvern og Sikkerhet."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Hvis borte i 5 sekunder"; + +"ProxySettings.UseSystemDNS" = "Bruk system DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Bruk system DNS for å omgå timeout hvis du ikke har tilgang til Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Du **trenger ikke** %@!"; +"Common.RestartRequired" = "Omstart kreves"; +"Common.RestartNow" = "Omstart Nå"; +"Common.OpenTelegram" = "Åpne Telegram"; +"Common.UseTelegramForPremium" = "Vær oppmerksom på at for å få Telegram Premium, må du bruke den offisielle Telegram-appen. Når du har tatt Telegram Premium, vil alle funksjonene bli tilgjengelige i Swiftgram."; + +"Message.HoldToShowOrReport" = "Hold for å vise eller rapportere."; + +"Auth.AccountBackupReminder" = "Sørg for at du har en sikkerhetskopiert tilgangsmetode. Oppretthold en SIM for SMS eller en ekstra økt logget inn for å unngå å bli låst ute."; +"Auth.UnofficialAppCodeTitle" = "Du kan bare få koden med den offisielle appen"; + +"Settings.SmallReactions" = "Liten Reaksjon"; +"Settings.HideReactions" = "Skjul Reaksjoner"; + +"ContextMenu.SaveToCloud" = "Lagre til skyen"; +"ContextMenu.SelectFromUser" = "Velg fra forfatter"; + +"Settings.ContextMenu" = "KONTEKSTMENY"; +"Settings.ContextMenu.Notice" = "Deaktiverte oppføringer vil være tilgjengelige i 'Swiftgram'-undermenyen."; + + +"Settings.ChatSwipeOptions" = "Chat liste sveip alternativer"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Dra til neste uleste kanal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Dra til neste emne"; +"Settings.GalleryCamera" = "Kamera i galleri"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" knapp"; +"Settings.SnapDeletionEffect" = "Sletting av melding effekter"; + +"Settings.Stickers.Size" = "STØRRELSE"; +"Settings.Stickers.Timestamp" = "Vis tidsstempel"; + +"Settings.RecordingButton" = "Tale opptaksknapp"; + +"Settings.DefaultEmojisFirst" = "Prioriter standard emojis"; +"Settings.DefaultEmojisFirst.Notice" = "Vis standard emojis før premium på emoji-tastaturet"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "opprettet: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Ble med %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrert"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dobbelttrykk for å redigere meldingen"; diff --git a/Swiftgram/SGStrings/Strings/pl.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/pl.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..48d80d7addd --- /dev/null +++ b/Swiftgram/SGStrings/Strings/pl.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Ustawienia zawartości"; + +"Settings.Tabs.Header" = "ZAKŁADKI"; +"Settings.Tabs.HideTabBar" = "Ukryj pasek zakładek"; +"Settings.Tabs.ShowContacts" = "Pokaż zakładkę kontakty"; +"Settings.Tabs.ShowNames" = "Pokaż nazwy zakładek"; + +"Settings.Folders.BottomTab" = "Foldery na dole"; +"Settings.Folders.BottomTabStyle" = "Styl folderów na dole"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Ukryj \"%@\""; +"Settings.Folders.RememberLast" = "Otwórz ostatni folder"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram otworzy ostatnio używany folder po ponownym uruchomieniu lub zmianie konta"; + +"Settings.Folders.CompactNames" = "Mniejszy odstęp"; +"Settings.Folders.AllChatsTitle" = "Tytuł \"Wszystkie czaty\""; +"Settings.Folders.AllChatsTitle.short" = "Krótki"; +"Settings.Folders.AllChatsTitle.long" = "Długie"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Domyślny"; + + +"Settings.ChatList.Header" = "LISTA CZATU"; +"Settings.CompactChatList" = "Kompaktowa lista czatów"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Ukryj relacje"; +"Settings.Stories.WarnBeforeView" = "Pytaj przed wyświetleniem"; +"Settings.Stories.DisableSwipeToRecord" = "Wyłącz przeciągnij, aby nagrać"; + +"Settings.Translation.QuickTranslateButton" = "Przycisk Szybkie tłumaczenie"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Zobaczyć relację?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ BĘDZIE WIEDZIAŁ, że obejrzano jego relację."; +"Stories.Warning.NoticeStealth" = "%@ nie będzie wiedział, że obejrzano jego relację."; + +"Settings.Photo.Quality.Notice" = "Jakość wysyłanych zdjęć i fotorelacji"; +"Settings.Photo.SendLarge" = "Wyślij duże zdjęcia"; +"Settings.Photo.SendLarge.Notice" = "Zwiększ limit rozmiaru skompresowanych obrazów do 2560px"; + +"Settings.VideoNotes.Header" = "OKRĄGŁE WIDEO"; +"Settings.VideoNotes.StartWithRearCam" = "Uruchom z tylną kamerą"; + +"Settings.CustomColors.Header" = "KOLORY KONTA"; +"Settings.CustomColors.Saturation" = "NASYCENIE"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Ustaw nasycenie na 0%%, aby wyłączyć kolory konta"; + +"Settings.UploadsBoost" = "Przyśpieszenie wysyłania"; +"Settings.DownloadsBoost" = "Przyśpieszenie pobierania"; +"Settings.DownloadsBoost.none" = "Wyłączone"; +"Settings.DownloadsBoost.medium" = "Średnie"; +"Settings.DownloadsBoost.maximum" = "Maksymalne"; + +"Settings.ShowProfileID" = "Pokaż ID"; +"Settings.ShowDC" = "Pokaż centrum danych"; +"Settings.ShowCreationDate" = "Pokaż datę utworzenia czatu"; +"Settings.ShowCreationDate.Notice" = "Data utworzenia może być nieznana dla niektórych czatów."; + +"Settings.ShowRegDate" = "Pokaż datę rejestracji"; +"Settings.ShowRegDate.Notice" = "Data rejestracji jest przybliżona."; + +"Settings.SendWithReturnKey" = "Wyślij klawiszem „return”"; +"Settings.HidePhoneInSettingsUI" = "Ukryj numer telefonu w ustawieniach"; +"Settings.HidePhoneInSettingsUI.Notice" = "Twój numer zostanie ukryty tylko w interfejsie użytkownika. Aby ukryć go przed innymi, użyj ustawień prywatności."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Jeśli nieobecny przez 5 sekund"; + +"ProxySettings.UseSystemDNS" = "Użyj systemowego DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Użyj systemowego DNS, aby ominąć limit czasu, jeśli nie masz dostępu do Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Nie **potrzebujesz** %@!"; +"Common.RestartRequired" = "Wymagany restart"; +"Common.RestartNow" = "Uruchom teraz ponownie"; +"Common.OpenTelegram" = "Otwórz Telegram"; +"Common.UseTelegramForPremium" = "Pamiętaj, że aby otrzymać Telegram Premium, musisz skorzystać z oficjalnej aplikacji Telegram. Po uzyskaniu Telegram Premium wszystkie jego funkcje staną się dostępne w Swiftgram."; + +"Message.HoldToShowOrReport" = "Przytrzymaj, aby Pokazać lub Zgłosić."; + +"Auth.AccountBackupReminder" = "Upewnij się, że masz zapasową metodę dostępu. Zachowaj SIM do SMS-ów lub zalogowaną dodatkową sesję, aby uniknąć zablokowania."; +"Auth.UnofficialAppCodeTitle" = "Kod można uzyskać tylko za pomocą oficjalnej aplikacji"; + +"Settings.SmallReactions" = "Małe reakcje"; +"Settings.HideReactions" = "Ukryj Reakcje"; + +"ContextMenu.SaveToCloud" = "Zapisz w chmurze"; +"ContextMenu.SelectFromUser" = "Zaznacz od autora"; + +"Settings.ContextMenu" = "MENU KONTEKSTOWE"; +"Settings.ContextMenu.Notice" = "Wyłączone wpisy będą dostępne w podmenu „Swiftgram”."; + + +"Settings.ChatSwipeOptions" = "Opcje przesuwania listy czatów"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Pociągnij ➝ następny kanał"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Przeciągnij, aby przejść do następnego tematu"; +"Settings.GalleryCamera" = "Aparat w galerii"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Przycisk „%@”"; +"Settings.SnapDeletionEffect" = "Efekty usuwania wiadomości"; + +"Settings.Stickers.Size" = "WIELKOŚĆ"; +"Settings.Stickers.Timestamp" = "Pokaż znak czasu"; + +"Settings.RecordingButton" = "Przycisk głośności nagrywania"; + +"Settings.DefaultEmojisFirst" = "Wybierz standardowe emotikony"; +"Settings.DefaultEmojisFirst.Notice" = "Pokaż standardowe emotikony przed premium na klawiaturze emotikonów"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "utworzony: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Dołączył %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Zarejestrowane"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Podwójne stuknięcie, aby edytować wiadomość"; diff --git a/Swiftgram/SGStrings/Strings/pt.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/pt.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..a5410df665a --- /dev/null +++ b/Swiftgram/SGStrings/Strings/pt.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Configurações de Conteúdo"; + +"Settings.Tabs.Header" = "ABAS"; +"Settings.Tabs.HideTabBar" = "Ocultar Abas de Guias"; +"Settings.Tabs.ShowContacts" = "Mostrar Aba dos Contatos"; +"Settings.Tabs.ShowNames" = "Mostrar nomes das abas"; + +"Settings.Folders.BottomTab" = "Pastas embaixo"; +"Settings.Folders.BottomTabStyle" = "Estilos de Pastas Inferiores"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Ocultar \"%@\""; +"Settings.Folders.RememberLast" = "Abrir última pasta"; +"Settings.Folders.RememberLast.Notice" = "O Swiftgram abrirá a última pasta usada após reiniciar ou trocar de conta"; + +"Settings.Folders.CompactNames" = "Espaçamento Menor"; +"Settings.Folders.AllChatsTitle" = "Título \"Todos os bate-papos\""; +"Settings.Folders.AllChatsTitle.short" = "Curto"; +"Settings.Folders.AllChatsTitle.long" = "Longas"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Padrão"; + + +"Settings.ChatList.Header" = "LISTA DE CHAT"; +"Settings.CompactChatList" = "Lista de Bate-Papo Compacta"; + +"Settings.Profiles.Header" = "Perfis"; + +"Settings.Stories.Hide" = "Ocultar Stories"; +"Settings.Stories.WarnBeforeView" = "Perguntar antes de visualizar"; +"Settings.Stories.DisableSwipeToRecord" = "Desativar deslize para gravar"; + +"Settings.Translation.QuickTranslateButton" = "Botão de Tradução Rápida"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Ver Story?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ SABERÁ que você viu a Story dele."; +"Stories.Warning.NoticeStealth" = "%@ não saberá que você viu a Story dele."; + +"Settings.Photo.Quality.Notice" = "Qualidade de fotos enviadas e photo-stories"; +"Settings.Photo.SendLarge" = "Enviar fotos grandes"; +"Settings.Photo.SendLarge.Notice" = "Aumentar o limite de tamanho de imagens comprimidas para 2560px"; + +"Settings.VideoNotes.Header" = "VÍDEOS REDONDOS"; +"Settings.VideoNotes.StartWithRearCam" = "Iniciar com a câmera traseira"; + +"Settings.CustomColors.Header" = "CORES DA CONTA"; +"Settings.CustomColors.Saturation" = "SATURAÇÃO"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Defina a saturação para 0%% para desativar as cores da conta"; + +"Settings.UploadsBoost" = "Aceleração de Uploads"; +"Settings.DownloadsBoost" = "Aceleração de Downloads"; +"Settings.DownloadsBoost.none" = "Desativado"; +"Settings.DownloadsBoost.medium" = "Médio"; +"Settings.DownloadsBoost.maximum" = "Máximo"; + +"Settings.ShowProfileID" = "Mostrar perfil"; +"Settings.ShowDC" = "Mostrar Centro de Dados"; +"Settings.ShowCreationDate" = "Mostrar data de criação do chat"; +"Settings.ShowCreationDate.Notice" = "A data de criação pode ser desconhecida para alguns chats."; + +"Settings.ShowRegDate" = "Mostrar data de registro"; +"Settings.ShowRegDate.Notice" = "A data de registo é aproximada."; + +"Settings.SendWithReturnKey" = "Enviar com a tecla \"retorno\""; +"Settings.HidePhoneInSettingsUI" = "Ocultar telefone nas configurações"; +"Settings.HidePhoneInSettingsUI.Notice" = "Seu número ficará oculto apenas na interface do usuário. Para ocultá-lo de outras pessoas, use as configurações de privacidade."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Se ausente por 5 segundos"; + +"ProxySettings.UseSystemDNS" = "Usar DNS do sistema"; +"ProxySettings.UseSystemDNS.Notice" = "Use o DNS do sistema para evitar tempo limite se você não tiver acesso ao DNS do Google"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Você **não precisa** de %@!"; +"Common.RestartRequired" = "Reinício necessário"; +"Common.RestartNow" = "Reiniciar agora"; +"Common.OpenTelegram" = "Abrir Telegram"; +"Common.UseTelegramForPremium" = "Observe que para obter o Telegram Premium, você precisa usar o aplicativo oficial do Telegram. Depois de obter o Telegram Premium, todos os seus recursos ficarão disponíveis no Swiftgram."; + +"Message.HoldToShowOrReport" = "Segure para Mostrar ou Denunciar."; + +"Auth.AccountBackupReminder" = "Certifique-se de ter um método de acesso de backup. Mantenha um SIM para SMS ou uma sessão adicional logada para evitar ser bloqueado."; +"Auth.UnofficialAppCodeTitle" = "Você só pode obter o código com o aplicativo oficial"; + +"Settings.SmallReactions" = "Pequenas reações"; +"Settings.HideReactions" = "Esconder Reações"; + +"ContextMenu.SaveToCloud" = "Salvar na Nuvem"; +"ContextMenu.SelectFromUser" = "Selecionar do Autor"; + +"Settings.ContextMenu" = "MENU DE CONTEXTO"; +"Settings.ContextMenu.Notice" = "Entradas desativadas estarão disponíveis no sub-menu 'Swiftgram'."; + + +"Settings.ChatSwipeOptions" = "Opções de deslizar Lista de Chat"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Puxe para o próximo canal não lido"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Arraste para o Próximo Tópico"; +"Settings.GalleryCamera" = "Câmera na Galeria"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Botão \"%@\""; +"Settings.SnapDeletionEffect" = "Efeitos de exclusão de mensagens"; + +"Settings.Stickers.Size" = "TAMANHO"; +"Settings.Stickers.Timestamp" = "Mostrar Data/Hora"; + +"Settings.RecordingButton" = "Botão de gravação de voz"; + +"Settings.DefaultEmojisFirst" = "Priorizar emojis padrão"; +"Settings.DefaultEmojisFirst.Notice" = "Mostrar emojis padrão antes dos premium no teclado de emojis"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "criado: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Entrou em %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrado"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Toque duplo para editar mensagem"; diff --git a/Swiftgram/SGStrings/Strings/ro.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ro.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..61b7658126d --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ro.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Setări Conținut"; + +"Settings.Tabs.Header" = "FERESTRE"; +"Settings.Tabs.HideTabBar" = "Ascunde bara de filă"; +"Settings.Tabs.ShowContacts" = "Vizualizare contacte"; +"Settings.Tabs.ShowNames" = "Arată Fereastra cu Numele"; + +"Settings.Folders.BottomTab" = "Dosare de jos"; +"Settings.Folders.BottomTabStyle" = "Stil directoare de jos"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegramă"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Ascundeți „%@\""; +"Settings.Folders.RememberLast" = "Deschideți ultimul dosar"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram va deschide ultimul folder utilizat atunci când reporniți aplicația sau schimbați conturile."; + +"Settings.Folders.CompactNames" = "Spațiere mai mică"; +"Settings.Folders.AllChatsTitle" = "Titlul \"Toate conversațiile\""; +"Settings.Folders.AllChatsTitle.short" = "Scurt"; +"Settings.Folders.AllChatsTitle.long" = "Lungă"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Implicit"; + + +"Settings.ChatList.Header" = "LISTA CHAT"; +"Settings.CompactChatList" = "Lista compactă de Chat"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Ascunde povestiri"; +"Settings.Stories.WarnBeforeView" = "Întreabă înainte de vizualizare"; +"Settings.Stories.DisableSwipeToRecord" = "Dezactivează glisarea pentru înregistrare"; + +"Settings.Translation.QuickTranslateButton" = "Butonul Traducere Rapidă"; + +"Stories.Warning.Author" = "Autor"; +"Stories.Warning.ViewStory" = "Vezi povestirea?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ VOR FI ACĂ SĂ VEDEȚI că le-ați văzut povestea lor."; +"Stories.Warning.NoticeStealth" = "%@ nu va putea vedea povestea lor."; + +"Settings.Photo.Quality.Notice" = "Calitatea fotografiilor și povestirilor încărcate."; +"Settings.Photo.SendLarge" = "Trimite fotografii mari"; +"Settings.Photo.SendLarge.Notice" = "Crește limita laterală a imaginilor comprimate la 2560px."; + +"Settings.VideoNotes.Header" = "VIDEO ROTUND"; +"Settings.VideoNotes.StartWithRearCam" = "Începe cu camera posterioară"; + +"Settings.CustomColors.Header" = "COLORTURI DE CONT"; +"Settings.CustomColors.Saturation" = "SATURARE"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Setați la 0%% pentru a dezactiva culorile contului."; + +"Settings.UploadsBoost" = "Accelerare Încărcare"; +"Settings.DownloadsBoost" = "Impuls descărcare"; +"Settings.DownloadsBoost.none" = "Dezactivat"; +"Settings.DownloadsBoost.medium" = "Medie"; +"Settings.DownloadsBoost.maximum" = "Maxim"; + +"Settings.ShowProfileID" = "Arată ID-ul profilului"; +"Settings.ShowDC" = "Arată Centrul de date"; +"Settings.ShowCreationDate" = "Arată data creării chat-ului"; +"Settings.ShowCreationDate.Notice" = "Data creării poate fi necunoscută pentru unele conversații."; + +"Settings.ShowRegDate" = "Arată data înregistrării"; +"Settings.ShowRegDate.Notice" = "Data înregistrării este aproximativă."; + +"Settings.SendWithReturnKey" = "Trimite cu cheia \"Returnare\""; +"Settings.HidePhoneInSettingsUI" = "Ascunde telefonul din setări"; +"Settings.HidePhoneInSettingsUI.Notice" = "Acest lucru va ascunde numărul de telefon din interfața de setări. Pentru a-l ascunde de alții, mergi la confidențialitate și securitate."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Dacă este plecat timp de 5 secunde"; + +"ProxySettings.UseSystemDNS" = "Utilizați DNS sistem"; +"ProxySettings.UseSystemDNS.Notice" = "Utilizați DNS pentru a ocoli timeout-ul dacă nu aveți acces la Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Nu ai nevoie de ** %@!"; +"Common.RestartRequired" = "Repornire necesară"; +"Common.RestartNow" = "Repornește acum"; +"Common.OpenTelegram" = "Deschide telegrama"; +"Common.UseTelegramForPremium" = "Vă rugăm să reţineţi că, pentru a obţine Telegram Premium, trebuie să utilizaţi aplicaţia oficială Telegram. Odată ce ai obţinut Telegram Premium, toate caracteristicile sale vor deveni disponibile în Swiftgram."; + +"Message.HoldToShowOrReport" = "Țineți apăsat pentru a afișa sau raporta."; + +"Auth.AccountBackupReminder" = "Asigurați-vă că aveți o metodă de acces de rezervă. Păstrați un SIM pentru SMS sau o sesiune adițională conectată pentru a evita blocarea."; +"Auth.UnofficialAppCodeTitle" = "Poți obține codul doar cu aplicația oficială"; + +"Settings.SmallReactions" = "Reacţii mici"; +"Settings.HideReactions" = "Ascunde Reacțiile"; + +"ContextMenu.SaveToCloud" = "Salvează în Cloud"; +"ContextMenu.SelectFromUser" = "Selectați din autor"; + +"Settings.ContextMenu" = "MENIU CONTEXTUAL"; +"Settings.ContextMenu.Notice" = "Intrările dezactivate vor fi disponibile în submeniul 'Swiftgram'."; + + +"Settings.ChatSwipeOptions" = "Opțiuni de glisare a chatului"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Trageţi pentru următorul canal necitit"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Trageți către Următorul Subiect"; +"Settings.GalleryCamera" = "Cameră foto în Galerie"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Butonul \"%@\""; +"Settings.SnapDeletionEffect" = "Efecte ștergere mesaj"; + +"Settings.Stickers.Size" = "MISIUNE"; +"Settings.Stickers.Timestamp" = "Arată Ora"; + +"Settings.RecordingButton" = "Butonul Înregistrare Voce"; + +"Settings.DefaultEmojisFirst" = "Prioritize emoticoanele standard"; +"Settings.DefaultEmojisFirst.Notice" = "Afișați emoticoanele standard înainte de cele premium în tastatura emoji"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "creat: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "S-a alăturat %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Înregistrat"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Apăsați de două ori pentru a edita mesajul"; diff --git a/Swiftgram/SGStrings/Strings/ru.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/ru.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..552d48ef998 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/ru.lproj/SGLocalizable.strings @@ -0,0 +1,134 @@ +"Settings.ContentSettings" = "Настройки контента"; + +"Settings.Tabs.Header" = "ВКЛАДКИ"; +"Settings.Tabs.HideTabBar" = "Скрыть панель вкладок"; +"Settings.Tabs.ShowContacts" = "Вкладка «Контакты»"; +"Settings.Tabs.ShowNames" = "Имена вкладок"; + +"Settings.Folders.BottomTab" = "Папки снизу"; +"Settings.Folders.BottomTabStyle" = "Стиль папок внизу"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Скрыть \"%@\""; +"Settings.Folders.RememberLast" = "Открывать последнюю папку"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram откроет последнюю использованную папку после перезапуска или переключения учетной записи"; + +"Settings.Folders.CompactNames" = "Уменьшенные расстояния"; +"Settings.Folders.AllChatsTitle" = "Название \"Все чаты\""; +"Settings.Folders.AllChatsTitle.short" = "Короткое"; +"Settings.Folders.AllChatsTitle.long" = "Длинное"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "По умолчанию"; + + +"Settings.ChatList.Header" = "СПИСОК ЧАТОВ"; +"Settings.CompactChatList" = "Компактный список чатов"; + +"Settings.Profiles.Header" = "ПРОФИЛИ"; + +"Settings.Stories.Hide" = "Скрыть истории"; +"Settings.Stories.WarnBeforeView" = "Спросить перед просмотром"; +"Settings.Stories.DisableSwipeToRecord" = "Отключить свайп для записи"; + +"Settings.Translation.QuickTranslateButton" = "Кнопка быстрого перевода"; + +"Stories.Warning.Author" = "Автор"; +"Stories.Warning.ViewStory" = "Просмотреть историю?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ СМОЖЕТ УВИДЕТЬ, что вы просмотрели историю."; +"Stories.Warning.NoticeStealth" = "%@ не сможет увидеть, что вы просмотрели историю."; + +"Settings.Photo.Quality.Notice" = "Качество исходящих фото и фото-историй"; +"Settings.Photo.SendLarge" = "Отправлять большие фото"; +"Settings.Photo.SendLarge.Notice" = "Увеличить лимит сторон для сжатых фото до 2560пкс"; + +"Settings.VideoNotes.Header" = "КРУГЛЫЕ ВИДЕО"; +"Settings.VideoNotes.StartWithRearCam" = "На заднюю камеру"; + +"Settings.CustomColors.Header" = "ПЕРСОНАЛЬНЫЕ ЦВЕТА"; +"Settings.CustomColors.Saturation" = "НАСЫЩЕННОСТЬ"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Установите насыщенность на 0%%, чтобы отключить персональные цвета"; + +"Settings.UploadsBoost" = "Ускорение загрузки"; +"Settings.DownloadsBoost" = "Ускорение скачивания"; +"Settings.DownloadsBoost.none" = "Выключено"; +"Settings.DownloadsBoost.medium" = "Средне"; +"Settings.DownloadsBoost.maximum" = "Максимум"; + +"Settings.ShowProfileID" = "ID профилей"; +"Settings.ShowDC" = "Показать дата-центр (DC)"; +"Settings.ShowCreationDate" = "Показать дату создания чата"; +"Settings.ShowCreationDate.Notice" = "Дата создания может быть неизвестна для некоторых чатов."; + +"Settings.ShowRegDate" = "Показать дату регистрации"; +"Settings.ShowRegDate.Notice" = "Дата регистрации приблизительная."; + +"Settings.SendWithReturnKey" = "Отправка кнопкой \"Ввод\""; +"Settings.HidePhoneInSettingsUI" = "Скрыть номер"; +"Settings.HidePhoneInSettingsUI.Notice" = "Ваш номер будет скрыт только в интерфейсе настроек. Используйте настройки Конфиденциальности, чтобы скрыть его от других."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Через 5 секунд"; + +"ProxySettings.UseSystemDNS" = "Системный DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Используйте системный DNS, чтобы избежать задержки, если у вас нет доступа к DNS Google"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Вам **не нужен** %@!"; +"Common.RestartRequired" = "Необходим перезапуск"; +"Common.RestartNow" = "Перезапустить Сейчас"; +"Common.OpenTelegram" = "Открыть Telegram"; +"Common.UseTelegramForPremium" = "Обратите внимание, что для получения Telegram Premium, вы должны использовать официальное приложение Telegram. Как только вы получите Telegram Premium, все его функции станут доступны в Swiftgram."; + +"Message.HoldToShowOrReport" = "Удерживайте для Показа или Жалобы."; + +"Auth.AccountBackupReminder" = "Убедитесь, что у вас есть запасной вариант входа: Активная SIM-карта или дополнительная сессия, чтобы не потерять доступ к аккаунту."; +"Auth.UnofficialAppCodeTitle" = "Вы можете получить код только в официальном приложении"; + +"Settings.SmallReactions" = "Маленькие реакции"; +"Settings.HideReactions" = "Скрыть реакции"; + +"ContextMenu.SaveToCloud" = "Сохранить в Избранное"; +"ContextMenu.SelectFromUser" = "Выбрать от Автора"; + +"Settings.ContextMenu" = "КОНТЕКСТНОЕ МЕНЮ"; +"Settings.ContextMenu.Notice" = "Выключенные пункты будут доступны в подменю «Swiftgram»."; + + +"Settings.ChatSwipeOptions" = "Опции чатов при свайпе"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Потянуть для перехода в канал"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Потянуть для перехода к след. теме"; +"Settings.GalleryCamera" = "Камера в галерее"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Кнопка \"%@\""; +"Settings.SnapDeletionEffect" = "Эффекты удаления сообщений"; + +"Settings.Stickers.Size" = "РАЗМЕР"; +"Settings.Stickers.Timestamp" = "Показывать время"; + +"Settings.RecordingButton" = "Кнопка записи голоса"; + +"Settings.DefaultEmojisFirst" = "Приоритизировать стандартные эмодзи"; +"Settings.DefaultEmojisFirst.Notice" = "Показывать стандартные эмодзи перед Premium в эмодзи-клавиатуре"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "создан: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Присоединился к %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Дата регистрации"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Редактирование двойным тапом"; + +"Settings.wideChannelPosts" = "Широкие посты в каналах"; +"Settings.ForceEmojiTab" = "Клавиатура с эмодзи по умолчанию"; + +"Settings.forceBuiltInMic" = "Всегда использовать микрофон устройства"; +"Settings.forceBuiltInMic.Notice" = "Если включено, то приложение будет использовать только встроенный микрофон устройства, даже если подключены наушники."; diff --git a/Swiftgram/SGStrings/Strings/si.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/si.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..869c70ba7ea --- /dev/null +++ b/Swiftgram/SGStrings/Strings/si.lproj/SGLocalizable.strings @@ -0,0 +1,2 @@ +"Settings.Tabs.Header" = "පටිති"; +"ContextMenu.SaveToCloud" = "මේඝයට සුරකින්න"; diff --git a/Swiftgram/SGStrings/Strings/sk.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/sk.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..77376339e39 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/sk.lproj/SGLocalizable.strings @@ -0,0 +1,4 @@ +"Settings.Tabs.Header" = "ZÁLOŽKY"; +"Settings.Tabs.ShowContacts" = "Zobraziť kontakty"; +"Settings.Tabs.ShowNames" = "Zobraziť názvy záložiek"; +"ContextMenu.SaveToCloud" = "Uložiť na Cloud"; diff --git a/Swiftgram/SGStrings/Strings/sr.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/sr.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..45dc0c48af1 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/sr.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Подешавања садржаја"; + +"Settings.Tabs.Header" = "ТАБОВИ"; +"Settings.Tabs.HideTabBar" = "Сакриј Таб бар"; +"Settings.Tabs.ShowContacts" = "Прикажи таб Контакти"; +"Settings.Tabs.ShowNames" = "Прикажи имена табова"; + +"Settings.Folders.BottomTab" = "Фасцикле у дну"; +"Settings.Folders.BottomTabStyle" = "Стил фасцикли у дну"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Телеграм"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Сакриј \"%@\""; +"Settings.Folders.RememberLast" = "Отвори последњу фасциклу"; +"Settings.Folders.RememberLast.Notice" = "Свифтграм ће отворити последње коришћену фасциклу када поново покренете апликацију или измените налоге."; + +"Settings.Folders.CompactNames" = "Мањи размак"; +"Settings.Folders.AllChatsTitle" = "Наслов \"Сви Четови\""; +"Settings.Folders.AllChatsTitle.short" = "Кратко"; +"Settings.Folders.AllChatsTitle.long" = "Дуго"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Подразумевано"; + + +"Settings.ChatList.Header" = "ЛИСТА ЧЕТОВА"; +"Settings.CompactChatList" = "Компактна листа чета"; + +"Settings.Profiles.Header" = "ПРОФИЛИ"; + +"Settings.Stories.Hide" = "Сакриј приче"; +"Settings.Stories.WarnBeforeView" = "Питај пре прегледања"; +"Settings.Stories.DisableSwipeToRecord" = "Онемогући превлачење за снимање"; + +"Settings.Translation.QuickTranslateButton" = "Дугме за брзо превођење"; + +"Stories.Warning.Author" = "Аутор"; +"Stories.Warning.ViewStory" = "Погледај причу?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ ЋЕ ВИДЕТИ да сте видели њихову причу."; +"Stories.Warning.NoticeStealth" = "%@ неће моћи видети да сте видели њихову причу."; + +"Settings.Photo.Quality.Notice" = "Квалитет постављених фотографија и приказа."; +"Settings.Photo.SendLarge" = "Пошаљи велике фотографије"; +"Settings.Photo.SendLarge.Notice" = "Повећај лимит величине за компресоване слике на 2560пкс."; + +"Settings.VideoNotes.Header" = "КРУГ ВИДЕО"; +"Settings.VideoNotes.StartWithRearCam" = "Почни са задњом камером"; + +"Settings.CustomColors.Header" = "БОЈЕ НАЛОГА"; +"Settings.CustomColors.Saturation" = "ЗАСИЋЕЊЕ"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Поставите на 0%% да онемогућите боје налога."; + +"Settings.UploadsBoost" = "Појачај поставке поставки"; +"Settings.DownloadsBoost" = "Преузми појачање"; +"Settings.DownloadsBoost.none" = "Онемогућено"; +"Settings.DownloadsBoost.medium" = "Средње"; +"Settings.DownloadsBoost.maximum" = "Максимално"; + +"Settings.ShowProfileID" = "Прикажи идентификациони број профила"; +"Settings.ShowDC" = "Прикажи центар података"; +"Settings.ShowCreationDate" = "Прикажи датум креирања чата"; +"Settings.ShowCreationDate.Notice" = "Можда није познат датум креирања за неке разговоре."; + +"Settings.ShowRegDate" = "Прикажи датум регистрације"; +"Settings.ShowRegDate.Notice" = "Датум регистрације је приближан."; + +"Settings.SendWithReturnKey" = "Пошаљи са 'повратак' тастером"; +"Settings.HidePhoneInSettingsUI" = "Сакриј телефон у поставкама"; +"Settings.HidePhoneInSettingsUI.Notice" = "Ово само ће скрити ваш број телефона из интерфејса поставки. Да бисте га скрили од других, идите на Приватност и безбедност."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Ако је одсутан 5 секунди"; + +"ProxySettings.UseSystemDNS" = "Користи системски DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Користи системски DNS да заобиђеш временски лимит ако немаш приступ Google DNS-у"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Не треба вам **%@**!"; +"Common.RestartRequired" = "Потребно поновно покретање"; +"Common.RestartNow" = "Поново покрени сада"; +"Common.OpenTelegram" = "Отвори Телеграм"; +"Common.UseTelegramForPremium" = "Обратите пажњу да бисте добили Телеграм Премијум, морате користити официјалну Телеграм апликацију. Након што стечете Телеграм Премијум, све његове функције ће бити доступне у Свифтграму."; + +"Message.HoldToShowOrReport" = "Држи да би показао или пријавио."; + +"Auth.AccountBackupReminder" = "Обезбеди да имаш методу приступа за резерву. Задржи СИМ за СМС или додатну сесију пријављену да избегнеш блокирање."; +"Auth.UnofficialAppCodeTitle" = "Код можете добити само са званичном апликацијом"; + +"Settings.SmallReactions" = "Мале реакције"; +"Settings.HideReactions" = "Сакриј реакције"; + +"ContextMenu.SaveToCloud" = "Сачувај у облак"; +"ContextMenu.SelectFromUser" = "Изабери од аутора"; + +"Settings.ContextMenu" = "КОНТЕКСТ МЕНИ"; +"Settings.ContextMenu.Notice" = "Онемогућени уноси ће бити доступни у 'Swiftgram' подменују."; + + +"Settings.ChatSwipeOptions" = "Опције превлачења списка разговора"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Повуци на следећи непрочитан канал"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Повуци на следећу тему"; +"Settings.GalleryCamera" = "Камера у галерији"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Дугме"; +"Settings.SnapDeletionEffect" = "Ефекти брисања поруке"; + +"Settings.Stickers.Size" = "ВЕЛИЧИНА"; +"Settings.Stickers.Timestamp" = "Прикажи временски линку"; + +"Settings.RecordingButton" = "Дугме за гласовно снимање"; + +"Settings.DefaultEmojisFirst" = "Приоритизовати стандардне емотиконе"; +"Settings.DefaultEmojisFirst.Notice" = "Прикажи стандардне емотиконе пре премијумских на тастатури емотикона"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "креирано: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Придружен: %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Регистрован"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Двоструки додир за уређивање поруке"; diff --git a/Swiftgram/SGStrings/Strings/sv.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/sv.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..d36dd926f65 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/sv.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Innehållsinställningar"; + +"Settings.Tabs.Header" = "Flikar"; +"Settings.Tabs.HideTabBar" = "Dölj flikfält"; +"Settings.Tabs.ShowContacts" = "Visa Kontakter-flik"; +"Settings.Tabs.ShowNames" = "Show Tab Names"; + +"Settings.Folders.BottomTab" = "Mappar längst ner"; +"Settings.Folders.BottomTabStyle" = "Stil på nedre mappar"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Dölj \"%@\""; +"Settings.Folders.RememberLast" = "Öppna senaste mapp"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram öppnar den senast använda mappen när du startar om appen eller byter konton."; + +"Settings.Folders.CompactNames" = "Mindre avstånd"; +"Settings.Folders.AllChatsTitle" = "\"Alla chattar\" titel"; +"Settings.Folders.AllChatsTitle.short" = "Kort"; +"Settings.Folders.AllChatsTitle.long" = "Lång"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standard"; + + +"Settings.ChatList.Header" = "CHATT LISTA"; +"Settings.CompactChatList" = "Kompakt chattlista"; + +"Settings.Profiles.Header" = "PROFILES"; + +"Settings.Stories.Hide" = "Dölj Berättelser"; +"Settings.Stories.WarnBeforeView" = "Fråga innan du tittar"; +"Settings.Stories.DisableSwipeToRecord" = "Inaktivera svep för att spela in"; + +"Settings.Translation.QuickTranslateButton" = "Snabböversättningsknapp"; + +"Stories.Warning.Author" = "Författare"; +"Stories.Warning.ViewStory" = "Visa Berättelse?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ KOMMER ATT SE att du har sett deras Berättelse."; +"Stories.Warning.NoticeStealth" = "%@ kommer inte att se att du har sett deras Berättelse."; + +"Settings.Photo.Quality.Notice" = "Kvaliteten på uppladdade bilder och berättelser."; +"Settings.Photo.SendLarge" = "Skicka stora foton"; +"Settings.Photo.SendLarge.Notice" = "Öka sidogränsen för komprimerade bilder till 2560px."; + +"Settings.VideoNotes.Header" = "RUND VIDEO"; +"Settings.VideoNotes.StartWithRearCam" = "Börja med bakre kamera"; + +"Settings.CustomColors.Header" = "KONTOFÄRGER"; +"Settings.CustomColors.Saturation" = "MÄTTNING"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Sätt till 0%% för att inaktivera kontofärger."; + +"Settings.UploadsBoost" = "Uppladdningshastighet"; +"Settings.DownloadsBoost" = "Ladda ner Boost"; +"Settings.DownloadsBoost.none" = "Inaktiverad"; +"Settings.DownloadsBoost.medium" = "Medium"; +"Settings.DownloadsBoost.maximum" = "Maximal"; + +"Settings.ShowProfileID" = "Visa profil-ID"; +"Settings.ShowDC" = "Visa datacenter"; +"Settings.ShowCreationDate" = "Visa datum för att skapa chatt"; +"Settings.ShowCreationDate.Notice" = "Skapandedatumet kan vara okänt för vissa chattar."; + +"Settings.ShowRegDate" = "Visa registreringsdatum"; +"Settings.ShowRegDate.Notice" = "Registreringsdatumet är ungefärligt."; + +"Settings.SendWithReturnKey" = "Skicka med 'retur'-tangenten"; +"Settings.HidePhoneInSettingsUI" = "Dölj telefon i inställningar"; +"Settings.HidePhoneInSettingsUI.Notice" = "Detta döljer endast ditt telefonnummer från inställningsgränssnittet. För att dölja det från andra, gå till Sekretess och säkerhet."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Om borta i 5 sekunder"; + +"ProxySettings.UseSystemDNS" = "Använd system-DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Använd system-DNS för att kringgå timeout om du inte har tillgång till Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Du **behöver inte** %@!"; +"Common.RestartRequired" = "Omstart krävs"; +"Common.RestartNow" = "Starta om Nu"; +"Common.OpenTelegram" = "Öppna Telegram"; +"Common.UseTelegramForPremium" = "Observera att för att få Telegram Premium måste du använda den officiella Telegram-appen. När du har fått Telegram Premium, kommer alla dess funktioner att bli tillgängliga i Swiftgram."; + +"Message.HoldToShowOrReport" = "Håll in för att Visa eller Rapportera."; + +"Auth.AccountBackupReminder" = "Se till att du har en backup-åtkomstmetod. Behåll ett SIM för SMS eller en extra session inloggad för att undvika att bli utelåst."; +"Auth.UnofficialAppCodeTitle" = "Du kan endast få koden med den officiella appen"; + +"Settings.SmallReactions" = "Små reaktioner"; +"Settings.HideReactions" = "Dölj Reaktioner"; + +"ContextMenu.SaveToCloud" = "Spara till Molnet"; +"ContextMenu.SelectFromUser" = "Välj från Författaren"; + +"Settings.ContextMenu" = "KONTEXTMENY"; +"Settings.ContextMenu.Notice" = "Inaktiverade poster kommer att vara tillgängliga i 'Swiftgram'-undermenyn."; + + +"Settings.ChatSwipeOptions" = "Svepalternativ för chattlistan"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Dra till nästa olästa kanal"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Dra till Nästa Ämne"; +"Settings.GalleryCamera" = "Kamera i galleriet"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Knapp"; +"Settings.SnapDeletionEffect" = "Effekter på meddelandet"; + +"Settings.Stickers.Size" = "SIZE"; +"Settings.Stickers.Timestamp" = "Visa tidsstämpel"; + +"Settings.RecordingButton" = "Röstinspelningsknapp"; + +"Settings.DefaultEmojisFirst" = "Prioritera standardemojis"; +"Settings.DefaultEmojisFirst.Notice" = "Visa standardemojis innan premium i emoji-tangentbordet"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "skapad: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Gick med %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Registrerad"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Dubbeltryck för att redigera meddelandet"; diff --git a/Swiftgram/SGStrings/Strings/tr.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/tr.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..6e24f5fe9f2 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/tr.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "İçerik Ayarları"; + +"Settings.Tabs.Header" = "SEKMELER"; +"Settings.Tabs.HideTabBar" = "Sekme çubuğunu gizle"; +"Settings.Tabs.ShowContacts" = "Kişiler Sekmesini Göster"; +"Settings.Tabs.ShowNames" = "Sekme isimlerini göster"; + +"Settings.Folders.BottomTab" = "Altta klasörler"; +"Settings.Folders.BottomTabStyle" = "Alt klasör stili"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "\"%@\" Gizle"; +"Settings.Folders.RememberLast" = "Son klasörü aç"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram, yeniden başlatıldıktan ya da hesap değişiminden sonra son kullanılan klasörü açacaktır"; + +"Settings.Folders.CompactNames" = "Daha küçük aralık"; +"Settings.Folders.AllChatsTitle" = "\"Tüm Sohbetler\" başlığı"; +"Settings.Folders.AllChatsTitle.short" = "Kısa"; +"Settings.Folders.AllChatsTitle.long" = "Uzun"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Varsayılan"; + + +"Settings.ChatList.Header" = "SOHBET LİSTESİ"; +"Settings.CompactChatList" = "Kompakt Sohbet Listesi"; + +"Settings.Profiles.Header" = "PROFİLLER"; + +"Settings.Stories.Hide" = "Hikayeleri Gizle"; +"Settings.Stories.WarnBeforeView" = "Görüntülemeden önce sor"; +"Settings.Stories.DisableSwipeToRecord" = "Kaydetmek için kaydırmayı devre dışı bırak"; + +"Settings.Translation.QuickTranslateButton" = "Hızlı Çeviri butonu"; + +"Stories.Warning.Author" = "Yazar"; +"Stories.Warning.ViewStory" = "Hikayeyi Görüntüle?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@, Hikayesini görüntülediğinizi GÖREBİLECEK."; +"Stories.Warning.NoticeStealth" = "%@, hikayesini görüntülediğinizi göremeyecek."; + +"Settings.Photo.Quality.Notice" = "Gönderilen fotoğrafların ve foto-hikayelerin kalitesi"; +"Settings.Photo.SendLarge" = "Büyük fotoğraflar gönder"; +"Settings.Photo.SendLarge.Notice" = "Sıkıştırılmış resimlerdeki kenar sınırını 2560 piksele çıkar"; + +"Settings.VideoNotes.Header" = "YUVARLAK VİDEOLAR"; +"Settings.VideoNotes.StartWithRearCam" = "Arka kamerayla başlat"; + +"Settings.CustomColors.Header" = "HESAP RENKLERİ"; +"Settings.CustomColors.Saturation" = "DOYUM"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Hesap renklerini devre dışı bırakmak için doyumu 0%%'a ayarlayın"; + +"Settings.UploadsBoost" = "Karşıya yüklemeleri hızlandır"; +"Settings.DownloadsBoost" = "İndirmeleri hızlandır"; +"Settings.DownloadsBoost.none" = "Devre dışı"; +"Settings.DownloadsBoost.medium" = "Orta"; +"Settings.DownloadsBoost.maximum" = "En fazla"; + +"Settings.ShowProfileID" = "Profil ID'sini Göster"; +"Settings.ShowDC" = "Veri Merkezini Göster"; +"Settings.ShowCreationDate" = "Sohbet Oluşturma Tarihini Göster"; +"Settings.ShowCreationDate.Notice" = "Bazı sohbetler için oluşturma tarihi bilinmeyebilir."; + +"Settings.ShowRegDate" = "Kaydolma Tarihini Göster"; +"Settings.ShowRegDate.Notice" = "Kaydolma tarihi yaklaşık olarak belirtilmiştir."; + +"Settings.SendWithReturnKey" = "\"enter\" tuşu ile gönder"; +"Settings.HidePhoneInSettingsUI" = "Ayarlarda numarayı gizle"; +"Settings.HidePhoneInSettingsUI.Notice" = "Numaranız sadece arayüzde gizlenecek. Diğerlerinden gizlemek için, lütfen Gizlilik ayarlarını kullanın."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "5 saniye uzakta kalırsanız"; + +"ProxySettings.UseSystemDNS" = "Sistem DNS'sini kullan"; +"ProxySettings.UseSystemDNS.Notice" = "Google DNS'ye erişiminiz yoksa, zaman aşımını aşmak için sistem DNS'sini kullanın"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "%@ **gerekmez**!"; +"Common.RestartRequired" = "Yeniden başlatma gerekli"; +"Common.RestartNow" = "Şimdi Yeniden Başlat"; +"Common.OpenTelegram" = "Telegram'ı Aç"; +"Common.UseTelegramForPremium" = "Unutmayın ki Telegram Premium'u edinmek için resmî Telegram uygulamasını kullanmanız gerekmektedir. Telegram Premium sahibi olduktan sonra onun tüm özellikleri Swiftgram'da mevcut olacaktır."; + +"Message.HoldToShowOrReport" = "Göstermek veya Bildirmek için Basılı Tutun."; + +"Auth.AccountBackupReminder" = "Yedek erişim yönteminiz olduğundan emin olun. Kilitlenmeden kaçınmak için bir SIM kartı saklayın veya ek bir oturum açın."; +"Auth.UnofficialAppCodeTitle" = "Kodu yalnızca resmi uygulamadan edinebilirsiniz"; + +"Settings.SmallReactions" = "Küçük tepkiler"; +"Settings.HideReactions" = "Tepkileri Gizle"; + +"ContextMenu.SaveToCloud" = "Buluta Kaydet"; +"ContextMenu.SelectFromUser" = "Yazardan Seç"; + +"Settings.ContextMenu" = "BAĞLAM MENÜSÜ"; +"Settings.ContextMenu.Notice" = "Devre dışı bırakılmış girişler \"Swiftgram\" alt menüsünde mevcut olacaktır."; + + +"Settings.ChatSwipeOptions" = "Sohbet listesi kaydırma seçenekleri"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Sonraki okunmamış kanal için çekin"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Bir Sonraki Konuya Çek"; +"Settings.GalleryCamera" = "Galeride kamera"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" butonu"; +"Settings.SnapDeletionEffect" = "Mesaj silme efektleri"; + +"Settings.Stickers.Size" = "BOYUT"; +"Settings.Stickers.Timestamp" = "Zaman Damgasını Göster"; + +"Settings.RecordingButton" = "Ses Kaydı Düğmesi"; + +"Settings.DefaultEmojisFirst" = "Standart emojileri önceliklendirin"; +"Settings.DefaultEmojisFirst.Notice" = "Emoji klavyesinde premiumdan önce standart emojileri göster"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "oluşturuldu: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Katıldı: %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Kayıtlı"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Mesajı düzenlemek için çift dokunun"; diff --git a/Swiftgram/SGStrings/Strings/uk.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/uk.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..e6fa1702be8 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/uk.lproj/SGLocalizable.strings @@ -0,0 +1,134 @@ +"Settings.ContentSettings" = "Налаштування контенту"; + +"Settings.Tabs.Header" = "ВКЛАДКИ"; +"Settings.Tabs.HideTabBar" = "Приховати панель вкладок"; +"Settings.Tabs.ShowContacts" = "Вкладка \"Контакти\""; +"Settings.Tabs.ShowNames" = "Показувати назви вкладок"; + +"Settings.Folders.BottomTab" = "Папки знизу"; +"Settings.Folders.BottomTabStyle" = "Стиль нижніх папок"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Приховати \"%@\""; +"Settings.Folders.RememberLast" = "Відкривати останню папку"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram відкриє останню папку після перезапуску застосунку або зміни акаунту."; + +"Settings.Folders.CompactNames" = "Зменшити відступи"; +"Settings.Folders.AllChatsTitle" = "Заголовок \"Усі чати\""; +"Settings.Folders.AllChatsTitle.short" = "Короткий"; +"Settings.Folders.AllChatsTitle.long" = "Довгий"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Типовий"; + + +"Settings.ChatList.Header" = "СПИСОК ЧАТІВ"; +"Settings.CompactChatList" = "Компактний список чатів"; + +"Settings.Profiles.Header" = "ПРОФІЛІ"; + +"Settings.Stories.Hide" = "Приховувати історії"; +"Settings.Stories.WarnBeforeView" = "Питати перед переглядом"; +"Settings.Stories.DisableSwipeToRecord" = "Вимкнути \"Свайп для запису\""; + +"Settings.Translation.QuickTranslateButton" = "Кнопка швидкого перекладу"; + +"Stories.Warning.Author" = "Автор"; +"Stories.Warning.ViewStory" = "Переглянути історію?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ ЗМОЖЕ ПОБАЧИТИ, що ви переглянули їх історію."; +"Stories.Warning.NoticeStealth" = "%@ не побачить, що ви переглянули їх історію."; + +"Settings.Photo.Quality.Notice" = "Якість відправлених фото та історій"; +"Settings.Photo.SendLarge" = "Надсилати великі фотографії"; +"Settings.Photo.SendLarge.Notice" = "Збільшити ліміт розміру стиснутих зображень до 2560px"; + +"Settings.VideoNotes.Header" = "КРУГЛІ ВІДЕО"; +"Settings.VideoNotes.StartWithRearCam" = "Починати запис з задньої камери"; + +"Settings.CustomColors.Header" = "КОЛЬОРИ АККАУНТУ"; +"Settings.CustomColors.Saturation" = "НАСИЧЕНІСТЬ"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Встановіть насиченість на 0%%, щоб вимкнути персональні кольори"; + +"Settings.UploadsBoost" = "Прискорення вивантаження"; +"Settings.DownloadsBoost" = "Прискорення завантаження"; +"Settings.DownloadsBoost.none" = "Відключено"; +"Settings.DownloadsBoost.medium" = "Середнє"; +"Settings.DownloadsBoost.maximum" = "Максимальне"; + +"Settings.ShowProfileID" = "Показувати ID профілю"; +"Settings.ShowDC" = "Показувати датацентр"; +"Settings.ShowCreationDate" = "Показувати дату створення чату"; +"Settings.ShowCreationDate.Notice" = "Дата створення може бути невідома для деяких чатів."; + +"Settings.ShowRegDate" = "Показувати дату реєстрації"; +"Settings.ShowRegDate.Notice" = "Дата реєстрації є приблизною."; + +"Settings.SendWithReturnKey" = "Надсилати кнопкою \"Введення\""; +"Settings.HidePhoneInSettingsUI" = "Приховати телефон у налаштуваннях"; +"Settings.HidePhoneInSettingsUI.Notice" = "Номер буде прихований тільки в налаштуваннях. Перейдіть в \"Приватність і безпека\", щоб приховати його від інших."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "За 5 сек"; + +"ProxySettings.UseSystemDNS" = "Використовувати системні налаштування DNS"; +"ProxySettings.UseSystemDNS.Notice" = "Використовувати системний DNS для обходу тайм-ауту, якщо у вас немає доступу до Google DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Вам **не потрібен** %@!"; +"Common.RestartRequired" = "Потрібен перезапуск"; +"Common.RestartNow" = "Перезавантажити"; +"Common.OpenTelegram" = "Відкрити Telegram"; +"Common.UseTelegramForPremium" = "Зверніть увагу, що для отримання Telegram Premium ви маєте використовувати офіційний додаток Telegram. Після отримання Telegram Premium, усі переваги стануть доступними у Swiftgram."; + +"Message.HoldToShowOrReport" = "Затисніть, щоб переглянути або поскаржитись."; + +"Auth.AccountBackupReminder" = "Переконайтеся, що у вас є резервний метод доступу. Тримайте SIM-карту для SMS або додаткову сесію, щоб не втратити доступ до акаунту."; +"Auth.UnofficialAppCodeTitle" = "Ви можете отримати код тільки з офіційним додатком"; + +"Settings.SmallReactions" = "Малі реакції"; +"Settings.HideReactions" = "Приховувати реакції"; + +"ContextMenu.SaveToCloud" = "Переслати в Збережене"; +"ContextMenu.SelectFromUser" = "Вибрати від автора"; + +"Settings.ContextMenu" = "КОНТЕКСТНЕ МЕНЮ"; +"Settings.ContextMenu.Notice" = "Вимкнені елементи будуть доступні в підменю \"Swiftgram\"."; + + +"Settings.ChatSwipeOptions" = "Опції свайпу у списку чатів"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Потягнути до наступного каналу"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Потягнути до наступної гілки"; +"Settings.GalleryCamera" = "Камера в галереї"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "Кнопка \"%@\""; +"Settings.SnapDeletionEffect" = "Ефекти видалення повідомлення"; + +"Settings.Stickers.Size" = "РОЗМІР"; +"Settings.Stickers.Timestamp" = "Показувати час"; + +"Settings.RecordingButton" = "Кнопка запису голосу"; + +"Settings.DefaultEmojisFirst" = "Пріоритизувати звичайні емодзі"; +"Settings.DefaultEmojisFirst.Notice" = "Показувати звичайні емодзі перед преміум у клавіатурі емодзі"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "створено: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Приєднався до %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Реєстрація"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Ред. повідомлення подвійним дотиком"; + +"Settings.wideChannelPosts" = "Широкі пости в каналах"; +"Settings.ForceEmojiTab" = "Клавіатура емодзі за замовчуванням"; + +"Settings.forceBuiltInMic" = "Використовувати мікрофон пристрою"; +"Settings.forceBuiltInMic.Notice" = "Якщо увімкнено, застосунок використовуватиме лише мікрофон пристрою, навіть якщо підключені навушники."; diff --git a/Swiftgram/SGStrings/Strings/uz.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/uz.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..ba69cfc11b0 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/uz.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Kontent sozlamalari"; + +"Settings.Tabs.Header" = "Oynalar"; +"Settings.Tabs.HideTabBar" = "Oynalarni yashirish"; +"Settings.Tabs.ShowContacts" = "Kontaktlarni oynasini ko'rsatish"; +"Settings.Tabs.ShowNames" = "Oyna nomini ko'rsatish"; + +"Settings.Folders.BottomTab" = "Qurollar pastda"; +"Settings.Folders.BottomTabStyle" = "Pastki Qurollar uslubi"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iPhone"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "\"%@\"ni yashirish"; +"Settings.Folders.RememberLast" = "Oxirgi Jildni ochish"; +"Settings.Folders.RememberLast.Notice" = "Ilovani qayta ishga tushirganingizda yoki hisoblarni almashtirganingizda Swiftgram oxirgi foydalanilgan jildni ochadi."; + +"Settings.Folders.CompactNames" = "Kichik bo'sh joy"; +"Settings.Folders.AllChatsTitle" = "\"Barcha Chatlar\" nomi"; +"Settings.Folders.AllChatsTitle.short" = "Qisqa"; +"Settings.Folders.AllChatsTitle.long" = "Uzoq"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Standart"; + + +"Settings.ChatList.Header" = "CHAT RO'YXI"; +"Settings.CompactChatList" = "Qisqa Chat Ro'yxi"; + +"Settings.Profiles.Header" = "PROFILLAR"; + +"Settings.Stories.Hide" = "Hikoyalarni yashirish"; +"Settings.Stories.WarnBeforeView" = "Ko'rishdan avval tasdiqlash"; +"Settings.Stories.DisableSwipeToRecord" = "Kayd qilishni o'chirish"; + +"Settings.Translation.QuickTranslateButton" = "Tezkor tarjima tugmasi"; + +"Stories.Warning.Author" = "Muallif"; +"Stories.Warning.ViewStory" = "Hikoyani ko'rasizmi?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ hatto siz ularning Hikoyasini ko'rganini ko'rsatishadi."; +"Stories.Warning.NoticeStealth" = "%@ ularning Hikoyasini ko'rgani ko'rsatmaydi."; + +"Settings.Photo.Quality.Notice" = "Yuklanadigan fotosuratlar va hikoyalarning sifati."; +"Settings.Photo.SendLarge" = "Katta rasmlarni yuborish"; +"Settings.Photo.SendLarge.Notice" = "Tasodifiy rasmlarni to'g'rilangan hajmini 2560px ga oshiring."; + +"Settings.VideoNotes.Header" = "Aylana video"; +"Settings.VideoNotes.StartWithRearCam" = "Orqa kamerada boshlash"; + +"Settings.CustomColors.Header" = "Hisob ranglari"; +"Settings.CustomColors.Saturation" = "SATURATSIYA"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Hisob ranglarini o'chirish uchun 0%% ga sozlang."; + +"Settings.UploadsBoost" = "Yuklashni kuchaytirish"; +"Settings.DownloadsBoost" = "Yuklab olishni kuchaytirish"; +"Settings.DownloadsBoost.none" = "O'chirilgan"; +"Settings.DownloadsBoost.medium" = "O'rtacha"; +"Settings.DownloadsBoost.maximum" = "Maksimum"; + +"Settings.ShowProfileID" = "Profil Id'ni ko'rsatish"; +"Settings.ShowDC" = "Ma'lumotlar bazasini ko'rsatish"; +"Settings.ShowCreationDate" = "Suxbat yaratilgan sanani ko'rsatish"; +"Settings.ShowCreationDate.Notice" = "Ba'zi sahifalarning yaratilish sanasi ma'lum emas."; + +"Settings.ShowRegDate" = "Ro'yhatdan o'tish sanasini ko'rsatish"; +"Settings.ShowRegDate.Notice" = "Ro'yhatdan o'tgan sana yakunlanmagan."; + +"Settings.SendWithReturnKey" = "Enter orqali yuborish"; +"Settings.HidePhoneInSettingsUI" = "Telefonni sozlamalarda yashirish"; +"Settings.HidePhoneInSettingsUI.Notice" = "Bu faqat sozlamalardan telefon raqamingizni yashiradi. Uni boshqalar dan yashirish uchun, Farovonlik va Xavfsizlik ga o'ting."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "5 soniya uzoq bo'lsa"; + +"ProxySettings.UseSystemDNS" = "Tizim DNSni ishlat"; +"ProxySettings.UseSystemDNS.Notice" = "Agar sizda Google DNS guruhlaringiz bo'lmasa, istisnodan o'tish uchun tizim DNS ni ishlatishingiz kerak."; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Sizga %@ kerak emas!"; +"Common.RestartRequired" = "Qayta ishga tushirish lozim"; +"Common.RestartNow" = "Hozir qayta ishlash"; +"Common.OpenTelegram" = "Telegramni ochish"; +"Common.UseTelegramForPremium" = "Iltimos, Telegram Premiumni olish uchun rasmiy Telegram ilovasidan foydalaning. Telegram Premiumni olinganidan so'ng, barcha xususiyatlar Swiftgram da mavjud bo'ladi."; + +"Message.HoldToShowOrReport" = "Ko'rsatish yoki hisobga olish uchun tuting."; + +"Auth.AccountBackupReminder" = "Oldin saqlash usulini to'g'riroq o'rnatganingizni tekshiring. Alockli qilish uchun SMS uchun SIM kartni yoki qo'shimcha sessiyani tarqatib turish uchun qo'shimcha kirish usuliga kirish olib qo'ying."; +"Auth.UnofficialAppCodeTitle" = "Siz faqat rasmiy ilovadan faqat kodingizni olasiz"; + +"Settings.SmallReactions" = "Kichik Reaktsiyalar"; +"Settings.HideReactions" = "Reaksiyalarni yashirish"; + +"ContextMenu.SaveToCloud" = "Bulutga saqlash"; +"ContextMenu.SelectFromUser" = "Avtordan tanlash"; + +"Settings.ContextMenu" = "KONTEKS MENYU"; +"Settings.ContextMenu.Notice" = "O'chirilgan kirishlar \"Swiftgram\" pastki menudasiga o'tkaziladi."; + + +"Settings.ChatSwipeOptions" = "Chat Ro'yxati Sürüş variantlari"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Keyingi O'qilmagan Kanalga burilish"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Keyingi mavzuga torting"; +"Settings.GalleryCamera" = "Galereyadagi Kamera"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Tugma"; +"Settings.SnapDeletionEffect" = "Xabar O'chirish O'zgartirishlari"; + +"Settings.Stickers.Size" = "OLCHAM"; +"Settings.Stickers.Timestamp" = "Vaqtni Ko'rsatish"; + +"Settings.RecordingButton" = "Ovozni Yozish Tugmasi"; + +"Settings.DefaultEmojisFirst" = "Standart emoyilarni prioritetga qo'ying"; +"Settings.DefaultEmojisFirst.Notice" = "Emojilar klaviaturasida premiumdan oldin standart alifbo emoyilarni ko'rsating"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "yaratildi: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "%@\" ga qo'shildi"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Ro'yhatga olingan"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Xabarni tahrirlash uchun ikki marta bosing"; diff --git a/Swiftgram/SGStrings/Strings/vi.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/vi.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..c553813faea --- /dev/null +++ b/Swiftgram/SGStrings/Strings/vi.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "Cài đặt nội dung"; + +"Settings.Tabs.Header" = "THẺ"; +"Settings.Tabs.HideTabBar" = "Ẩn thanh Tab"; +"Settings.Tabs.ShowContacts" = "Hiện Liên hệ"; +"Settings.Tabs.ShowNames" = "Hiện tên các thẻ"; + +"Settings.Folders.BottomTab" = "Đặt thư mục tin nhắn ở dưới cùng"; +"Settings.Folders.BottomTabStyle" = "Kiểu Thư mục dưới cùng"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "Ẩn \"%@\""; +"Settings.Folders.RememberLast" = "Mở thư mục gần đây"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram sẽ mở thư mục gần nhất sau khi khởi động lại hoặc chuyển tài khoản"; + +"Settings.Folders.CompactNames" = "Khoảng cách nhỏ hơn"; +"Settings.Folders.AllChatsTitle" = "Tiêu đề \"Tất cả Chat\""; +"Settings.Folders.AllChatsTitle.short" = "Ngắn"; +"Settings.Folders.AllChatsTitle.long" = "Dài"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "Mặc định"; + + +"Settings.ChatList.Header" = "DANH SÁCH CHAT"; +"Settings.CompactChatList" = "Danh sách Chat Nhỏ gọn"; + +"Settings.Profiles.Header" = "HỒ SƠ"; + +"Settings.Stories.Hide" = "Ẩn Tin"; +"Settings.Stories.WarnBeforeView" = "Hỏi trước khi xem"; +"Settings.Stories.DisableSwipeToRecord" = "Tắt vuốt để quay"; + +"Settings.Translation.QuickTranslateButton" = "Hiện nút dịch nhanh"; + +"Stories.Warning.Author" = "Tác giả"; +"Stories.Warning.ViewStory" = "Xem Tin?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ SẼ CÓ THỂ THẤY bạn đã xem Tin của họ."; +"Stories.Warning.NoticeStealth" = "%@ sẽ không biết bạn đã xem Tin của họ."; + +"Settings.Photo.Quality.Notice" = "Chất lượng của ảnh gửi đi và ảnh Tin"; +"Settings.Photo.SendLarge" = "Gửi ảnh lớn"; +"Settings.Photo.SendLarge.Notice" = "Tăng giới hạn kích thước bên trên của hình ảnh nén lên 2560px"; + +"Settings.VideoNotes.Header" = "VIDEO TRÒN"; +"Settings.VideoNotes.StartWithRearCam" = "Bắt đầu với camera sau"; + +"Settings.CustomColors.Header" = "MÀU TÀI KHOẢN"; +"Settings.CustomColors.Saturation" = "ĐỘ BÃO HÒA"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "Đặt độ bão hòa thành 0%% để tắt màu tài khoản"; + +"Settings.UploadsBoost" = "Tăng tốc tải lên"; +"Settings.DownloadsBoost" = "Tăng tốc tải xuống"; +"Settings.DownloadsBoost.none" = "Tắt"; +"Settings.DownloadsBoost.medium" = "Trung bình"; +"Settings.DownloadsBoost.maximum" = "Tối đa"; + +"Settings.ShowProfileID" = "Hiện ID hồ sơ"; +"Settings.ShowDC" = "Hiển thị Trung tâm Dữ liệu"; +"Settings.ShowCreationDate" = "Hiển thị Ngày Tạo Chat"; +"Settings.ShowCreationDate.Notice" = "Ngày tạo có thể không biết được đối với một số cuộc trò chuyện."; + +"Settings.ShowRegDate" = "Hiển thị Ngày Đăng ký"; +"Settings.ShowRegDate.Notice" = "Ngày đăng ký là xấp xỉ."; + +"Settings.SendWithReturnKey" = "Gửi tín nhắn bằng nút \"Nhập\""; +"Settings.HidePhoneInSettingsUI" = "Ẩn số điện thoại trong cài đặt"; +"Settings.HidePhoneInSettingsUI.Notice" = "Số điện thoại của bạn sẽ chỉ ẩn đi trong cài đặt. Đến cài đặt \"Riêng tư và Bảo mật\" để ẩn đối với người khác\"."; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "Nếu rời đi trong 5 giây"; + +"ProxySettings.UseSystemDNS" = "Sử dụng DNS hệ thống"; +"ProxySettings.UseSystemDNS.Notice" = "Sử dụng DNS hệ thống để bỏ qua thời gian chờ nếu bạn không có quyền truy cập vào DNS của Google"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "Bạn **không cần** %@!"; +"Common.RestartRequired" = "Yêu cầu khởi động lại"; +"Common.RestartNow" = "Khởi động lại"; +"Common.OpenTelegram" = "Mở Telegram"; +"Common.UseTelegramForPremium" = "Vui lòng lưu ý rằng để có được Telegram Premium, bạn phải sử dụng ứng dụng Telegram chính thức. Sau khi bạn đã có Telegram Premium, tất cả các tính năng của nó sẽ trở nên có sẵn trong Swiftgram."; + +"Message.HoldToShowOrReport" = "Nhấn giữ để Hiển thị hoặc Báo cáo."; + +"Auth.AccountBackupReminder" = "Hãy đảm bảo bạn có một phương pháp truy cập dự phòng. Giữ lại một SIM để nhận SMS hoặc một phiên đăng nhập bổ sung để tránh bị khóa tài khoản."; +"Auth.UnofficialAppCodeTitle" = "Bạn chỉ có thể nhận được mã thông qua ứng dụng chính thức"; + +"Settings.SmallReactions" = "Thu nhỏ biểu tượng cảm xúc"; +"Settings.HideReactions" = "Ẩn Biểu tượng cảm xúc"; + +"ContextMenu.SaveToCloud" = "Lưu vào Đám mây"; +"ContextMenu.SelectFromUser" = "Chọn từ Tác giả"; + +"Settings.ContextMenu" = "MENU NGỮ CẢNH"; +"Settings.ContextMenu.Notice" = "Mục nhập đã vô hiệu hóa sẽ có sẵn trong menu phụ 'Swiftgram'."; + + +"Settings.ChatSwipeOptions" = "Tuỳ chọn Lướt Danh sách Chat"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "Kéo xuống đến kênh chưa đọc"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "Kéo Để Đến Chủ Đề Tiếp Theo"; +"Settings.GalleryCamera" = "Máy ảnh trong thư viện"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" Nút"; +"Settings.SnapDeletionEffect" = "Hiệu Ứng Xóa Tin Nhắn"; + +"Settings.Stickers.Size" = "KÍCH THƯỚC"; +"Settings.Stickers.Timestamp" = "Hiện mốc thời gian"; + +"Settings.RecordingButton" = "Nút Ghi Âm Giọng Nói"; + +"Settings.DefaultEmojisFirst" = "Ưu tiên biểu tượng cảm xúc tiêu chuẩn"; +"Settings.DefaultEmojisFirst.Notice" = "Hiển thị biểu tượng cảm xúc tiêu chuẩn trước biểu tượng cảm xúc cao cấp trên bàn phím biểu tượng cảm xúc"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "đã tạo: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "Đã tham gia %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "Đã đăng ký"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "Double-tap để chỉnh sửa tin nhắn"; diff --git a/Swiftgram/SGStrings/Strings/zh-hans.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/zh-hans.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..ccb0bf16daf --- /dev/null +++ b/Swiftgram/SGStrings/Strings/zh-hans.lproj/SGLocalizable.strings @@ -0,0 +1,134 @@ +"Settings.ContentSettings" = "敏感内容设置"; + +"Settings.Tabs.Header" = "标签"; +"Settings.Tabs.HideTabBar" = "隐藏底部导航栏"; +"Settings.Tabs.ShowContacts" = "显示联系人标签"; +"Settings.Tabs.ShowNames" = "显示标签名称"; + +"Settings.Folders.BottomTab" = "底部分组"; +"Settings.Folders.BottomTabStyle" = "底部分组样式"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS样式"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram样式"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "隐藏 \"%@\""; +"Settings.Folders.RememberLast" = "打开上次分组"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram 将在重启或切换账户后打开最后使用的分组"; + +"Settings.Folders.CompactNames" = "缩小分组间距"; +"Settings.Folders.AllChatsTitle" = "\"所有对话\"标题"; +"Settings.Folders.AllChatsTitle.short" = "短标题"; +"Settings.Folders.AllChatsTitle.long" = "长标题"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "默认"; + + +"Settings.ChatList.Header" = "对话列表"; +"Settings.CompactChatList" = "紧凑型对话列表"; + +"Settings.Profiles.Header" = "资料"; + +"Settings.Stories.Hide" = "隐藏动态"; +"Settings.Stories.WarnBeforeView" = "查看前询问"; +"Settings.Stories.DisableSwipeToRecord" = "禁用侧滑拍摄"; + +"Settings.Translation.QuickTranslateButton" = "快速翻译按钮"; + +"Stories.Warning.Author" = "作者"; +"Stories.Warning.ViewStory" = "要查看动态吗?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ 将能够看到你查看了他们的动态"; +"Stories.Warning.NoticeStealth" = "%@ 将无法看到您查看他们的动态"; + +"Settings.Photo.Quality.Notice" = "发送图片的质量"; +"Settings.Photo.SendLarge" = "发送大尺寸照片"; +"Settings.Photo.SendLarge.Notice" = "将压缩图片的尺寸限制提高到 2560px"; + +"Settings.VideoNotes.Header" = "圆形视频"; +"Settings.VideoNotes.StartWithRearCam" = "默认使用后置相机"; + +"Settings.CustomColors.Header" = "账户颜色"; +"Settings.CustomColors.Saturation" = "饱和度"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "设置饱和度为 0%% 以禁用账户颜色"; + +"Settings.UploadsBoost" = "上传加速"; +"Settings.DownloadsBoost" = "下载加速"; +"Settings.DownloadsBoost.none" = "停用"; +"Settings.DownloadsBoost.medium" = "中等"; +"Settings.DownloadsBoost.maximum" = "最大"; + +"Settings.ShowProfileID" = "显示用户 UID"; +"Settings.ShowDC" = "显示数据中心"; +"Settings.ShowCreationDate" = "显示群组或频道的创建日期"; +"Settings.ShowCreationDate.Notice" = "某些群组或频道可能缺少创建日期"; + +"Settings.ShowRegDate" = "显示注册日期"; +"Settings.ShowRegDate.Notice" = "这是大概的注册日期"; + +"Settings.SendWithReturnKey" = "使用返回键发送"; +"Settings.HidePhoneInSettingsUI" = "在设置中隐藏电话号码"; +"Settings.HidePhoneInSettingsUI.Notice" = "您的电话号码只会在设置界面中隐藏。要对其他人隐藏,可进入隐私设置调整。"; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "离开 5 秒后"; + +"ProxySettings.UseSystemDNS" = "使用系统DNS"; +"ProxySettings.UseSystemDNS.Notice" = "如果您无法使用 Google DNS,请使用系统 DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "此功能**无需** %@ 订阅!"; +"Common.RestartRequired" = "需要重启"; +"Common.RestartNow" = "立即重启"; +"Common.OpenTelegram" = "打开 Telegram"; +"Common.UseTelegramForPremium" = "请注意,您必须使用官方的 Telegram 客户端才可购买 Telegram Premium,一旦您获得 Telegram Premium,其所有功能也将在 Swiftgram 中生效。"; + +"Message.HoldToShowOrReport" = "长按显示或举报"; + +"Auth.AccountBackupReminder" = "请确保您有一个备用的访问方式。保留一张用于接收短信的 SIM 卡或多登录一个会话,以免被锁定。"; +"Auth.UnofficialAppCodeTitle" = "您只能通过官方应用程序获得代码"; + +"Settings.SmallReactions" = "缩小表情回应"; +"Settings.HideReactions" = "隐藏回应"; + +"ContextMenu.SaveToCloud" = "保存到收藏夹"; +"ContextMenu.SelectFromUser" = "选择此人所有消息"; + +"Settings.ContextMenu" = "消息菜单"; +"Settings.ContextMenu.Notice" = "已禁用的项目可在 Swiftgram 子菜单中找到"; + + +"Settings.ChatSwipeOptions" = "对话列表滑动选项"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "上滑到下一未读频道"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "上滑到下一个主题"; +"Settings.GalleryCamera" = "图库中的相机"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" 按钮"; +"Settings.SnapDeletionEffect" = "删除消息的特效"; + +"Settings.Stickers.Size" = "尺寸"; +"Settings.Stickers.Timestamp" = "显示时间"; + +"Settings.RecordingButton" = "录音按钮"; + +"Settings.DefaultEmojisFirst" = "优先使用标准表情符号"; +"Settings.DefaultEmojisFirst.Notice" = "在表情列表中将标准表情符号置于高级表情符号之前"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "创建日期: %@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "加入 %@ 的日期"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "注册日期"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "双击编辑消息"; + +"Settings.wideChannelPosts" = "在频道中以更宽的版面显示消息"; +"Settings.ForceEmojiTab" = "默认展示表情符号"; + +"Settings.forceBuiltInMic" = "强制使用设备麦克风"; +"Settings.forceBuiltInMic.Notice" = "若启用,即使已连接耳机,应用也只使用设备自身的麦克风。"; diff --git a/Swiftgram/SGStrings/Strings/zh-hant.lproj/SGLocalizable.strings b/Swiftgram/SGStrings/Strings/zh-hant.lproj/SGLocalizable.strings new file mode 100644 index 00000000000..34e2ddb6633 --- /dev/null +++ b/Swiftgram/SGStrings/Strings/zh-hant.lproj/SGLocalizable.strings @@ -0,0 +1,128 @@ +"Settings.ContentSettings" = "敏感內容設定"; + +"Settings.Tabs.Header" = "頁籤"; +"Settings.Tabs.HideTabBar" = "隱藏導航列"; +"Settings.Tabs.ShowContacts" = "顯示聯絡人頁籤"; +"Settings.Tabs.ShowNames" = "顯示頁籤名稱"; + +"Settings.Folders.BottomTab" = "底部頁籤"; +"Settings.Folders.BottomTabStyle" = "底部對話盒樣式"; + +/* Do not translate */ +"Settings.Folders.BottomTabStyle.ios" = "iOS"; +/* Do not translate */ +"Settings.Folders.BottomTabStyle.telegram" = "Telegram"; +/* Example: Hide "All Chats" */ +"Settings.Folders.AllChatsHidden" = "隱藏 \"%@\""; +"Settings.Folders.RememberLast" = "開啟最後瀏覽的對話盒"; +"Settings.Folders.RememberLast.Notice" = "Swiftgram 會在重啟或帳號切換後開啟最後瀏覽的對話盒"; + +"Settings.Folders.CompactNames" = "縮小間距"; +"Settings.Folders.AllChatsTitle" = "\"所有對話\"標題"; +"Settings.Folders.AllChatsTitle.short" = "短"; +"Settings.Folders.AllChatsTitle.long" = "長"; +/* Default behaviour for All Chats Folder Title. "All Chats" title: Default */ +"Settings.Folders.AllChatsTitle.none" = "預設"; + + +"Settings.ChatList.Header" = "對話列表"; +"Settings.CompactChatList" = "緊湊型對話列表"; + +"Settings.Profiles.Header" = "配置文件"; + +"Settings.Stories.Hide" = "隱藏限時動態"; +"Settings.Stories.WarnBeforeView" = "瀏覽前確認"; +"Settings.Stories.DisableSwipeToRecord" = "停用滑動錄製"; + +"Settings.Translation.QuickTranslateButton" = "快速翻譯按鈕"; + +"Stories.Warning.Author" = "來自"; +"Stories.Warning.ViewStory" = "查看限時動態?"; +/* Author will be able to see that you viewed their Story */ +"Stories.Warning.Notice" = "%@ 將會看到您瀏覽了限時動態"; +"Stories.Warning.NoticeStealth" = "%@ 將無法看到您瀏覽了限時動態"; + +"Settings.Photo.Quality.Notice" = "傳送影像畫質"; +"Settings.Photo.SendLarge" = "傳送大尺寸影像"; +"Settings.Photo.SendLarge.Notice" = "將壓縮影像的尺寸限制增加到 2560px"; + +"Settings.VideoNotes.Header" = "圓形影片"; +"Settings.VideoNotes.StartWithRearCam" = "預設使用後置鏡頭"; + +"Settings.CustomColors.Header" = "帳號顏色"; +"Settings.CustomColors.Saturation" = "飽和度"; +/* Make sure to escape Percentage sign % */ +"Settings.CustomColors.Saturation.Notice" = "將飽和度設為 0%% 以停用帳戶顏色"; + +"Settings.UploadsBoost" = "上傳加速"; +"Settings.DownloadsBoost" = "下載加速"; +"Settings.DownloadsBoost.none" = "已停用"; +"Settings.DownloadsBoost.medium" = "中等"; +"Settings.DownloadsBoost.maximum" = "最大"; + +"Settings.ShowProfileID" = "顯示用戶 UID"; +"Settings.ShowDC" = "顯示資料中心 (DC)"; +"Settings.ShowCreationDate" = "顯示對話建立日期"; +"Settings.ShowCreationDate.Notice" = "某些對話可能會缺少建立日期"; + +"Settings.ShowRegDate" = "顯示註冊日期"; +"Settings.ShowRegDate.Notice" = "大約註冊日期"; + +"Settings.SendWithReturnKey" = "使用「換行」鍵傳送"; +"Settings.HidePhoneInSettingsUI" = "在設定頁中隱藏電話號碼"; +"Settings.HidePhoneInSettingsUI.Notice" = "您的電話在「設定頁」中不再顯示,可到「隱私與安全性」設定來對其他人隱藏。"; + +"PasscodeSettings.AutoLock.InFiveSeconds" = "離開5秒後"; + +"ProxySettings.UseSystemDNS" = "使用系統 DNS"; +"ProxySettings.UseSystemDNS.Notice" = "如果您無法使用 Google DNS,請使用系統 DNS"; + +/* Preserve markdown asterisks! Example: You **don't** need Telegram Premium! */ +"Common.NoTelegramPremiumNeeded" = "您 **不需要** %@!"; +"Common.RestartRequired" = "需要重新啟動"; +"Common.RestartNow" = "立即重啟"; +"Common.OpenTelegram" = "開啟 Telegram"; +"Common.UseTelegramForPremium" = "要獲得 Telegram Premium,您必須使用官方 Telegram App。一旦您擁有 Telegram Premium,其所有功能都將在 Swiftgram 中可用。"; + +"Message.HoldToShowOrReport" = "按住以顯示訊息或報告"; + +"Auth.AccountBackupReminder" = "請確保您有備用訪問方法。保留用於接收簡訊的 SIM 卡或其他登入狀態以避免被鎖定。"; +"Auth.UnofficialAppCodeTitle" = "您只能透過官方 App 取得驗證碼"; + +"Settings.SmallReactions" = "縮小回應圖示"; +"Settings.HideReactions" = "隱藏回應"; + +"ContextMenu.SaveToCloud" = "轉傳到儲存的訊息"; +"ContextMenu.SelectFromUser" = "選取此人的所有訊息"; + +"Settings.ContextMenu" = "內容選單"; +"Settings.ContextMenu.Notice" = "停用的選項可在 Swiftgram 選單中使用"; + + +"Settings.ChatSwipeOptions" = "對話列表滑動選項"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextChannelSameLocationSwipeProgress */ +"Settings.PullToNextChannel" = "頻道瀑布流"; +/* Re-word like this string on offical app https://translations.telegram.org/en/ios/groups_and_channels/Chat.NextUnreadTopicSwipeProgress */ +"Settings.PullToNextTopic" = "下拉以查看下一話題"; +"Settings.GalleryCamera" = "相簿圖庫"; +/* "Send Message As..." button */ +"Settings.SendAsButton" = "\"%@\" 按鈕"; +"Settings.SnapDeletionEffect" = "訊息刪除效果"; + +"Settings.Stickers.Size" = "尺寸"; +"Settings.Stickers.Timestamp" = "顯示時間戳"; + +"Settings.RecordingButton" = "錄音按鈕"; + +"Settings.DefaultEmojisFirst" = "優先顯示標準表情符號"; +"Settings.DefaultEmojisFirst.Notice" = "在表情符號鍵盤中,先顯示標準表情符號,再顯示 Premium 的"; + +/* Date when chat was created. "created: 24 May 2016" */ +"Chat.Created" = "建立於:%@"; + +/* Date when user joined the chat. "Joined Swiftgram Chat" */ +"Chat.JoinedDateTitle" = "已加入 %@"; +/* Date when user registered in Telegram. Will be shown like "Registered\n24 May 2016" */ +"Chat.RegDate" = "註冊日期"; + +"Settings.messageDoubleTapActionOutgoingEdit" = "雙擊以編輯訊息"; diff --git a/Swiftgram/SGTranslationLangFix/BUILD b/Swiftgram/SGTranslationLangFix/BUILD new file mode 100644 index 00000000000..70f7354e971 --- /dev/null +++ b/Swiftgram/SGTranslationLangFix/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGTranslationLangFix", + module_name = "SGTranslationLangFix", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGTranslationLangFix/Sources/SGTranslationLangFix.swift b/Swiftgram/SGTranslationLangFix/Sources/SGTranslationLangFix.swift new file mode 100644 index 00000000000..799daeac272 --- /dev/null +++ b/Swiftgram/SGTranslationLangFix/Sources/SGTranslationLangFix.swift @@ -0,0 +1,7 @@ +public func sgTranslationLangFix(_ language: String) -> String { + if language.hasPrefix("zh-") { + return "zh" + } else { + return language + } +} \ No newline at end of file diff --git a/Swiftgram/SGWebAppExtensions/BUILD b/Swiftgram/SGWebAppExtensions/BUILD new file mode 100644 index 00000000000..1d581760f2d --- /dev/null +++ b/Swiftgram/SGWebAppExtensions/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGWebAppExtensions", + module_name = "SGWebAppExtensions", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGWebAppExtensions/Sources/LocationHashParser.swift b/Swiftgram/SGWebAppExtensions/Sources/LocationHashParser.swift new file mode 100644 index 00000000000..355a5664c22 --- /dev/null +++ b/Swiftgram/SGWebAppExtensions/Sources/LocationHashParser.swift @@ -0,0 +1,58 @@ +import Foundation + +func urlSafeDecode(_ urlencoded: String) -> String { + return urlencoded.replacingOccurrences(of: "+", with: "%20").removingPercentEncoding ?? urlencoded +} + +public func urlParseHashParams(_ locationHash: String) -> [String: String?] { + var params = [String: String?]() + var localLocationHash = locationHash.removePrefix("#") // Remove leading '#' + + if localLocationHash.isEmpty { + return params + } + + if !localLocationHash.contains("=") && !localLocationHash.contains("?") { + params["_path"] = urlSafeDecode(localLocationHash) + return params + } + + let qIndex = localLocationHash.firstIndex(of: "?") + if let qIndex = qIndex { + let pathParam = String(localLocationHash[.. [String: String?] { + var params = [String: String?]() + + if queryString.isEmpty { + return params + } + + let queryStringParams = queryString.split(separator: "&") + for param in queryStringParams { + let parts = param.split(separator: "=", maxSplits: 1, omittingEmptySubsequences: false) + let paramName = urlSafeDecode(String(parts[0])) + let paramValue = parts.count > 1 ? urlSafeDecode(String(parts[1])) : nil + params[paramName] = paramValue + } + + return params +} + +extension String { + func removePrefix(_ prefix: String) -> String { + guard self.hasPrefix(prefix) else { return self } + return String(self.dropFirst(prefix.count)) + } +} diff --git a/Swiftgram/SGWebSettings/BUILD b/Swiftgram/SGWebSettings/BUILD new file mode 100644 index 00000000000..ef1ee7626ad --- /dev/null +++ b/Swiftgram/SGWebSettings/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGWebSettings", + module_name = "SGWebSettings", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGWebSettings/Sources/File.swift b/Swiftgram/SGWebSettings/Sources/File.swift new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Swiftgram/SGWebSettingsScheme/BUILD b/Swiftgram/SGWebSettingsScheme/BUILD new file mode 100644 index 00000000000..7bec1071410 --- /dev/null +++ b/Swiftgram/SGWebSettingsScheme/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SGWebSettingsScheme", + module_name = "SGWebSettingsScheme", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) \ No newline at end of file diff --git a/Swiftgram/SGWebSettingsScheme/Sources/File.swift b/Swiftgram/SGWebSettingsScheme/Sources/File.swift new file mode 100644 index 00000000000..b4545bedbb6 --- /dev/null +++ b/Swiftgram/SGWebSettingsScheme/Sources/File.swift @@ -0,0 +1,50 @@ +import Foundation + +public struct SGWebSettings: Codable, Equatable { + public let global: SGGlobalSettings + public let user: SGUserSettings + + public static var defaultValue: SGWebSettings { + return SGWebSettings(global: SGGlobalSettings(ytPip: true, qrLogin: true, storiesAvailable: false, canViewMessages: true, canEditSettings: false, canShowTelescope: false, announcementsData: nil, regdateFormat: "full", botMonkeys: [], forceReasons: [], unforceReasons: []), user: SGUserSettings(contentReasons: [], canSendTelescope: false)) + } +} + +public struct SGGlobalSettings: Codable, Equatable { + public let ytPip: Bool + public let qrLogin: Bool + public let storiesAvailable: Bool + public let canViewMessages: Bool + public let canEditSettings: Bool + public let canShowTelescope: Bool + public let announcementsData: String? + public let regdateFormat: String + public let botMonkeys: [SGBotMonkeys] + public let forceReasons: [Int64] + public let unforceReasons: [Int64] +} + +public struct SGBotMonkeys: Codable, Equatable { + public let botId: Int64 + public let src: String + public let enable: String + public let disable: String +} + + +public struct SGUserSettings: Codable, Equatable { + public let contentReasons: [String] + public let canSendTelescope: Bool +} + + +public extension SGUserSettings { + func expandedContentReasons() -> [String] { + return contentReasons.compactMap { base64String in + guard let data = Data(base64Encoded: base64String), + let decodedString = String(data: data, encoding: .utf8) else { + return nil + } + return decodedString + } + } +} diff --git a/Swiftgram/SwiftSoup/BUILD b/Swiftgram/SwiftSoup/BUILD new file mode 100644 index 00000000000..a4eeb901eac --- /dev/null +++ b/Swiftgram/SwiftSoup/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SwiftSoup", + module_name = "SwiftSoup", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + # "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/SwiftSoup/Sources/ArrayExt.swift b/Swiftgram/SwiftSoup/Sources/ArrayExt.swift new file mode 100644 index 00000000000..a3b329f03d6 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/ArrayExt.swift @@ -0,0 +1,21 @@ +// +// ArrayExt.swift +// SwifSoup +// +// Created by Nabil Chatbi on 05/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +extension Array where Element : Equatable { + func lastIndexOf(_ e: Element) -> Int { + for pos in (0.. String { + return key + } + + /** + Set the attribute key; case is preserved. + @param key the new key; must not be null + */ + open func setKey(key: String) throws { + try Validate.notEmpty(string: key) + self.key = key.trim() + } + + /** + Get the attribute value. + @return the attribute value + */ + open func getValue() -> String { + return value + } + + /** + Set the attribute value. + @param value the new attribute value; must not be null + */ + @discardableResult + open func setValue(value: String) -> String { + let old = self.value + self.value = value + return old + } + + /** + Get the HTML representation of this attribute; e.g. {@code href="index.html"}. + @return HTML + */ + public func html() -> String { + let accum = StringBuilder() + html(accum: accum, out: (Document("")).outputSettings()) + return accum.toString() + } + + public func html(accum: StringBuilder, out: OutputSettings ) { + accum.append(key) + if (!shouldCollapseAttribute(out: out)) { + accum.append("=\"") + Entities.escape(accum, value, out, true, false, false) + accum.append("\"") + } + } + + /** + Get the string representation of this attribute, implemented as {@link #html()}. + @return string + */ + open func toString() -> String { + return html() + } + + /** + * Create a new Attribute from an unencoded key and a HTML attribute encoded value. + * @param unencodedKey assumes the key is not encoded, as can be only run of simple \w chars. + * @param encodedValue HTML attribute encoded value + * @return attribute + */ + public static func createFromEncoded(unencodedKey: String, encodedValue: String) throws ->Attribute { + let value = try Entities.unescape(string: encodedValue, strict: true) + return try Attribute(key: unencodedKey, value: value) + } + + public func isDataAttribute() -> Bool { + return key.startsWith(Attributes.dataPrefix) && key.count > Attributes.dataPrefix.count + } + + /** + * Collapsible if it's a boolean attribute and value is empty or same as name + * + * @param out Outputsettings + * @return Returns whether collapsible or not + */ + public final func shouldCollapseAttribute(out: OutputSettings) -> Bool { + return ("" == value || value.equalsIgnoreCase(string: key)) + && out.syntax() == OutputSettings.Syntax.html + && isBooleanAttribute() + } + + public func isBooleanAttribute() -> Bool { + return Attribute.booleanAttributes.contains(key.lowercased()) + } + + public func hashCode() -> Int { + var result = key.hashValue + result = 31 * result + value.hashValue + return result + } + + public func clone() -> Attribute { + do { + return try Attribute(key: key, value: value) + } catch Exception.Error( _, let msg) { + print(msg) + } catch { + + } + return try! Attribute(key: "", value: "") + } +} + +extension Attribute: Equatable { + static public func == (lhs: Attribute, rhs: Attribute) -> Bool { + return lhs.value == rhs.value && lhs.key == rhs.key + } + +} diff --git a/Swiftgram/SwiftSoup/Sources/Attributes.swift b/Swiftgram/SwiftSoup/Sources/Attributes.swift new file mode 100644 index 00000000000..2ffa006a80b --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Attributes.swift @@ -0,0 +1,235 @@ +// +// Attributes.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * The attributes of an Element. + *

+ * Attributes are treated as a map: there can be only one value associated with an attribute key/name. + *

+ *

+ * Attribute name and value comparisons are case sensitive. By default for HTML, attribute names are + * normalized to lower-case on parsing. That means you should use lower-case strings when referring to attributes by + * name. + *

+ * + * + */ +open class Attributes: NSCopying { + + public static var dataPrefix: String = "data-" + + // Stored by lowercased key, but key case is checked against the copy inside + // the Attribute on retrieval. + var attributes: [Attribute] = [] + + public init() {} + + /** + Get an attribute value by key. + @param key the (case-sensitive) attribute key + @return the attribute value if set; or empty string if not set. + @see #hasKey(String) + */ + open func get(key: String) -> String { + if let attr = attributes.first(where: { $0.getKey() == key }) { + return attr.getValue() + } + return "" + } + + /** + * Get an attribute's value by case-insensitive key + * @param key the attribute name + * @return the first matching attribute value if set; or empty string if not set. + */ + open func getIgnoreCase(key: String )throws -> String { + try Validate.notEmpty(string: key) + if let attr = attributes.first(where: { $0.getKey().caseInsensitiveCompare(key) == .orderedSame }) { + return attr.getValue() + } + return "" + } + + /** + Set a new attribute, or replace an existing one by key. + @param key attribute key + @param value attribute value + */ + open func put(_ key: String, _ value: String) throws { + let attr = try Attribute(key: key, value: value) + put(attribute: attr) + } + + /** + Set a new boolean attribute, remove attribute if value is false. + @param key attribute key + @param value attribute value + */ + open func put(_ key: String, _ value: Bool) throws { + if (value) { + try put(attribute: BooleanAttribute(key: key)) + } else { + try remove(key: key) + } + } + + /** + Set a new attribute, or replace an existing one by (case-sensitive) key. + @param attribute attribute + */ + open func put(attribute: Attribute) { + let key = attribute.getKey() + if let ix = attributes.firstIndex(where: { $0.getKey() == key }) { + attributes[ix] = attribute + } else { + attributes.append(attribute) + } + } + + /** + Remove an attribute by key. Case sensitive. + @param key attribute key to remove + */ + open func remove(key: String)throws { + try Validate.notEmpty(string: key) + if let ix = attributes.firstIndex(where: { $0.getKey() == key }) { + attributes.remove(at: ix) } + } + + /** + Remove an attribute by key. Case insensitive. + @param key attribute key to remove + */ + open func removeIgnoreCase(key: String ) throws { + try Validate.notEmpty(string: key) + if let ix = attributes.firstIndex(where: { $0.getKey().caseInsensitiveCompare(key) == .orderedSame}) { + attributes.remove(at: ix) + } + } + + /** + Tests if these attributes contain an attribute with this key. + @param key case-sensitive key to check for + @return true if key exists, false otherwise + */ + open func hasKey(key: String) -> Bool { + return attributes.contains(where: { $0.getKey() == key }) + } + + /** + Tests if these attributes contain an attribute with this key. + @param key key to check for + @return true if key exists, false otherwise + */ + open func hasKeyIgnoreCase(key: String) -> Bool { + return attributes.contains(where: { $0.getKey().caseInsensitiveCompare(key) == .orderedSame}) + } + + /** + Get the number of attributes in this set. + @return size + */ + open func size() -> Int { + return attributes.count + } + + /** + Add all the attributes from the incoming set to this set. + @param incoming attributes to add to these attributes. + */ + open func addAll(incoming: Attributes?) { + guard let incoming = incoming else { return } + for attr in incoming.attributes { + put(attribute: attr) + } + } + + /** + Get the attributes as a List, for iteration. Do not modify the keys of the attributes via this view, as changes + to keys will not be recognised in the containing set. + @return an view of the attributes as a List. + */ + open func asList() -> [Attribute] { + return attributes + } + + /** + * Retrieves a filtered view of attributes that are HTML5 custom data attributes; that is, attributes with keys + * starting with {@code data-}. + * @return map of custom data attributes. + */ + open func dataset() -> [String: String] { + let prefixLength = Attributes.dataPrefix.count + let pairs = attributes.filter { $0.isDataAttribute() } + .map { ($0.getKey().substring(prefixLength), $0.getValue()) } + return Dictionary(uniqueKeysWithValues: pairs) + } + + /** + Get the HTML representation of these attributes. + @return HTML + @throws SerializationException if the HTML representation of the attributes cannot be constructed. + */ + open func html()throws -> String { + let accum = StringBuilder() + try html(accum: accum, out: Document("").outputSettings()) // output settings a bit funky, but this html() seldom used + return accum.toString() + } + + public func html(accum: StringBuilder, out: OutputSettings ) throws { + for attr in attributes { + accum.append(" ") + attr.html(accum: accum, out: out) + } + } + + open func toString()throws -> String { + return try html() + } + + /** + * Checks if these attributes are equal to another set of attributes, by comparing the two sets + * @param o attributes to compare with + * @return if both sets of attributes have the same content + */ + open func equals(o: AnyObject?) -> Bool { + if(o == nil) {return false} + if (self === o.self) {return true} + guard let that = o as? Attributes else {return false} + return (attributes == that.attributes) + } + + open func lowercaseAllKeys() { + for ix in attributes.indices { + attributes[ix].key = attributes[ix].key.lowercased() + } + } + + public func copy(with zone: NSZone? = nil) -> Any { + let clone = Attributes() + clone.attributes = attributes + return clone + } + + open func clone() -> Attributes { + return self.copy() as! Attributes + } + + fileprivate static func dataKey(key: String) -> String { + return dataPrefix + key + } + +} + +extension Attributes: Sequence { + public func makeIterator() -> AnyIterator { + return AnyIterator(attributes.makeIterator()) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/BinarySearch.swift b/Swiftgram/SwiftSoup/Sources/BinarySearch.swift new file mode 100644 index 00000000000..fb98c57701b --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/BinarySearch.swift @@ -0,0 +1,95 @@ +// +// BinarySearch.swift +// SwiftSoup-iOS +// +// Created by Garth Snyder on 2/28/19. +// Copyright © 2019 Nabil Chatbi. All rights reserved. +// +// Adapted from https://stackoverflow.com/questions/31904396/swift-binary-search-for-standard-array +// + +import Foundation + +extension Collection { + + /// Generalized binary search algorithm for ordered Collections + /// + /// Behavior is undefined if the collection is not properly sorted. + /// + /// This is only O(logN) for RandomAccessCollections; Collections in + /// general may implement offsetting of indexes as an O(K) operation. (E.g., + /// Strings are like this). + /// + /// - Note: If you are using this for searching only (not insertion), you + /// must always test the element at the returned index to ensure that + /// it's a genuine match. If the element is not present in the array, + /// you will still get a valid index back that represents the location + /// where it should be inserted. Also check to be sure the returned + /// index isn't off the end of the collection. + /// + /// - Parameter predicate: Reports the ordering of a given Element relative + /// to the desired Element. Typically, this is <. + /// + /// - Returns: Index N such that the predicate is true for all elements up to + /// but not including N, and is false for all elements N and beyond + + func binarySearch(predicate: (Element) -> Bool) -> Index { + var low = startIndex + var high = endIndex + while low != high { + let mid = index(low, offsetBy: distance(from: low, to: high)/2) + if predicate(self[mid]) { + low = index(after: mid) + } else { + high = mid + } + } + return low + } + + /// Binary search lookup for ordered Collections using a KeyPath + /// relative to Element. + /// + /// Behavior is undefined if the collection is not properly sorted. + /// + /// This is only O(logN) for RandomAccessCollections; Collections in + /// general may implement offsetting of indexes as an O(K) operation. (E.g., + /// Strings are like this). + /// + /// - Note: If you are using this for searching only (not insertion), you + /// must always test the element at the returned index to ensure that + /// it's a genuine match. If the element is not present in the array, + /// you will still get a valid index back that represents the location + /// where it should be inserted. Also check to be sure the returned + /// index isn't off the end of the collection. + /// + /// - Parameter keyPath: KeyPath that extracts the Element value on which + /// the Collection is presorted. Must be Comparable and Equatable. + /// ordering is presumed to be <, however that is defined for the type. + /// + /// - Returns: The index of a matching element, or nil if not found. If + /// the return value is non-nil, it is always a valid index. + + func indexOfElement(withValue value: T, atKeyPath keyPath: KeyPath) -> Index? where T: Comparable & Equatable { + let ix = binarySearch { $0[keyPath: keyPath] < value } + guard ix < endIndex else { return nil } + guard self[ix][keyPath: keyPath] == value else { return nil } + return ix + } + + func element(withValue value: T, atKeyPath keyPath: KeyPath) -> Element? where T: Comparable & Equatable { + if let ix = indexOfElement(withValue: value, atKeyPath: keyPath) { + return self[ix] + } + return nil + } + + func elements(withValue value: T, atKeyPath keyPath: KeyPath) -> [Element] where T: Comparable & Equatable { + guard let start = indexOfElement(withValue: value, atKeyPath: keyPath) else { return [] } + var end = index(after: start) + while end < endIndex && self[end][keyPath: keyPath] == value { + end = index(after: end) + } + return Array(self[start.. Bool { + return true + } +} diff --git a/Swiftgram/SwiftSoup/Sources/CharacterExt.swift b/Swiftgram/SwiftSoup/Sources/CharacterExt.swift new file mode 100644 index 00000000000..2cab2b56c70 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/CharacterExt.swift @@ -0,0 +1,81 @@ +// +// CharacterExt.swift +// SwifSoup +// +// Created by Nabil Chatbi on 08/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +extension Character { + + public static let space: Character = " " + public static let BackslashT: Character = "\t" + public static let BackslashN: Character = "\n" + public static let BackslashF: Character = Character(UnicodeScalar(12)) + public static let BackslashR: Character = "\r" + public static let BackshashRBackslashN: Character = "\r\n" + + //http://www.unicode.org/glossary/#supplementary_code_point + public static let MIN_SUPPLEMENTARY_CODE_POINT: UInt32 = 0x010000 + + /// True for any space character, and the control characters \t, \n, \r, \f, \v. + + var isWhitespace: Bool { + switch self { + case Character.space, Character.BackslashT, Character.BackslashN, Character.BackslashF, Character.BackslashR: return true + case Character.BackshashRBackslashN: return true + default: return false + + } + } + + /// `true` if `self` normalized contains a single code unit that is in the category of Decimal Numbers. + var isDigit: Bool { + + return isMemberOfCharacterSet(CharacterSet.decimalDigits) + + } + + /// Lowercase `self`. + var lowercase: Character { + + let str = String(self).lowercased() + return str[str.startIndex] + + } + + /// Return `true` if `self` normalized contains a single code unit that is a member of the supplied character set. + /// + /// - parameter set: The `NSCharacterSet` used to test for membership. + /// - returns: `true` if `self` normalized contains a single code unit that is a member of the supplied character set. + func isMemberOfCharacterSet(_ set: CharacterSet) -> Bool { + + let normalized = String(self).precomposedStringWithCanonicalMapping + let unicodes = normalized.unicodeScalars + + guard unicodes.count == 1 else { return false } + return set.contains(UnicodeScalar(unicodes.first!.value)!) + + } + + static func convertFromIntegerLiteral(value: IntegerLiteralType) -> Character { + return Character(UnicodeScalar(value)!) + } + + static func isLetter(_ char: Character) -> Bool { + return char.isLetter() + } + func isLetter() -> Bool { + return self.isMemberOfCharacterSet(CharacterSet.letters) + } + + static func isLetterOrDigit(_ char: Character) -> Bool { + return char.isLetterOrDigit() + } + func isLetterOrDigit() -> Bool { + if(self.isLetter()) {return true} + return self.isDigit + } +} diff --git a/Swiftgram/SwiftSoup/Sources/CharacterReader.swift b/Swiftgram/SwiftSoup/Sources/CharacterReader.swift new file mode 100644 index 00000000000..d53c7950720 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/CharacterReader.swift @@ -0,0 +1,320 @@ +// +// CharacterReader.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 10/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + CharacterReader consumes tokens off a string. To replace the old TokenQueue. + */ +public final class CharacterReader { + private static let empty = "" + public static let EOF: UnicodeScalar = "\u{FFFF}"//65535 + private let input: String.UnicodeScalarView + private var pos: String.UnicodeScalarView.Index + private var mark: String.UnicodeScalarView.Index + //private let stringCache: Array // holds reused strings in this doc, to lessen garbage + + public init(_ input: String) { + self.input = input.unicodeScalars + self.pos = input.startIndex + self.mark = input.startIndex + } + + public func getPos() -> Int { + return input.distance(from: input.startIndex, to: pos) + } + + public func isEmpty() -> Bool { + return pos >= input.endIndex + } + + public func current() -> UnicodeScalar { + return (pos >= input.endIndex) ? CharacterReader.EOF : input[pos] + } + + @discardableResult + public func consume() -> UnicodeScalar { + guard pos < input.endIndex else { + return CharacterReader.EOF + } + let val = input[pos] + pos = input.index(after: pos) + return val + } + + public func unconsume() { + guard pos > input.startIndex else { return } + pos = input.index(before: pos) + } + + public func advance() { + guard pos < input.endIndex else { return } + pos = input.index(after: pos) + } + + public func markPos() { + mark = pos + } + + public func rewindToMark() { + pos = mark + } + + public func consumeAsString() -> String { + guard pos < input.endIndex else { return "" } + let str = String(input[pos]) + pos = input.index(after: pos) + return str + } + + /** + * Locate the next occurrence of a Unicode scalar + * + * - Parameter c: scan target + * - Returns: offset between current position and next instance of target. -1 if not found. + */ + public func nextIndexOf(_ c: UnicodeScalar) -> String.UnicodeScalarView.Index? { + // doesn't handle scanning for surrogates + return input[pos...].firstIndex(of: c) + } + + /** + * Locate the next occurence of a target string + * + * - Parameter seq: scan target + * - Returns: index of next instance of target. nil if not found. + */ + public func nextIndexOf(_ seq: String) -> String.UnicodeScalarView.Index? { + // doesn't handle scanning for surrogates + var start = pos + let targetScalars = seq.unicodeScalars + guard let firstChar = targetScalars.first else { return pos } // search for "" -> current place + MATCH: while true { + // Match on first scalar + guard let firstCharIx = input[start...].firstIndex(of: firstChar) else { return nil } + var current = firstCharIx + // Then manually match subsequent scalars + for scalar in targetScalars.dropFirst() { + current = input.index(after: current) + guard current < input.endIndex else { return nil } + if input[current] != scalar { + start = input.index(after: firstCharIx) + continue MATCH + } + } + // full match; current is at position of last matching character + return firstCharIx + } + } + + public func consumeTo(_ c: UnicodeScalar) -> String { + guard let targetIx = nextIndexOf(c) else { + return consumeToEnd() + } + let consumed = cacheString(pos, targetIx) + pos = targetIx + return consumed + } + + public func consumeTo(_ seq: String) -> String { + guard let targetIx = nextIndexOf(seq) else { + return consumeToEnd() + } + let consumed = cacheString(pos, targetIx) + pos = targetIx + return consumed + } + + public func consumeToAny(_ chars: UnicodeScalar...) -> String { + return consumeToAny(chars) + } + + public func consumeToAny(_ chars: [UnicodeScalar]) -> String { + let start = pos + while pos < input.endIndex { + if chars.contains(input[pos]) { + break + } + pos = input.index(after: pos) + } + return cacheString(start, pos) + } + + public func consumeToAnySorted(_ chars: UnicodeScalar...) -> String { + return consumeToAny(chars) + } + + public func consumeToAnySorted(_ chars: [UnicodeScalar]) -> String { + return consumeToAny(chars) + } + + static let dataTerminators: [UnicodeScalar] = [.Ampersand, .LessThan, TokeniserStateVars.nullScalr] + // read to &, <, or null + public func consumeData() -> String { + return consumeToAny(CharacterReader.dataTerminators) + } + + static let tagNameTerminators: [UnicodeScalar] = [.BackslashT, .BackslashN, .BackslashR, .BackslashF, .Space, .Slash, .GreaterThan, TokeniserStateVars.nullScalr] + // read to '\t', '\n', '\r', '\f', ' ', '/', '>', or nullChar + public func consumeTagName() -> String { + return consumeToAny(CharacterReader.tagNameTerminators) + } + + public func consumeToEnd() -> String { + let consumed = cacheString(pos, input.endIndex) + pos = input.endIndex + return consumed + } + + public func consumeLetterSequence() -> String { + let start = pos + while pos < input.endIndex { + let c = input[pos] + if ((c >= "A" && c <= "Z") || (c >= "a" && c <= "z") || c.isMemberOfCharacterSet(CharacterSet.letters)) { + pos = input.index(after: pos) + } else { + break + } + } + return cacheString(start, pos) + } + + public func consumeLetterThenDigitSequence() -> String { + let start = pos + while pos < input.endIndex { + let c = input[pos] + if ((c >= "A" && c <= "Z") || (c >= "a" && c <= "z") || c.isMemberOfCharacterSet(CharacterSet.letters)) { + pos = input.index(after: pos) + } else { + break + } + } + while pos < input.endIndex { + let c = input[pos] + if (c >= "0" && c <= "9") { + pos = input.index(after: pos) + } else { + break + } + } + return cacheString(start, pos) + } + + public func consumeHexSequence() -> String { + let start = pos + while pos < input.endIndex { + let c = input[pos] + if ((c >= "0" && c <= "9") || (c >= "A" && c <= "F") || (c >= "a" && c <= "f")) { + pos = input.index(after: pos) + } else { + break + } + } + return cacheString(start, pos) + } + + public func consumeDigitSequence() -> String { + let start = pos + while pos < input.endIndex { + let c = input[pos] + if (c >= "0" && c <= "9") { + pos = input.index(after: pos) + } else { + break + } + } + return cacheString(start, pos) + } + + public func matches(_ c: UnicodeScalar) -> Bool { + return !isEmpty() && input[pos] == c + + } + + public func matches(_ seq: String, ignoreCase: Bool = false, consume: Bool = false) -> Bool { + var current = pos + let scalars = seq.unicodeScalars + for scalar in scalars { + guard current < input.endIndex else { return false } + if ignoreCase { + guard input[current].uppercase == scalar.uppercase else { return false } + } else { + guard input[current] == scalar else { return false } + } + current = input.index(after: current) + } + if consume { + pos = current + } + return true + } + + public func matchesIgnoreCase(_ seq: String ) -> Bool { + return matches(seq, ignoreCase: true) + } + + public func matchesAny(_ seq: UnicodeScalar...) -> Bool { + return matchesAny(seq) + } + + public func matchesAny(_ seq: [UnicodeScalar]) -> Bool { + guard pos < input.endIndex else { return false } + return seq.contains(input[pos]) + } + + public func matchesAnySorted(_ seq: [UnicodeScalar]) -> Bool { + return matchesAny(seq) + } + + public func matchesLetter() -> Bool { + guard pos < input.endIndex else { return false } + let c = input[pos] + return (c >= "A" && c <= "Z") || (c >= "a" && c <= "z") || c.isMemberOfCharacterSet(CharacterSet.letters) + } + + public func matchesDigit() -> Bool { + guard pos < input.endIndex else { return false } + let c = input[pos] + return c >= "0" && c <= "9" + } + + @discardableResult + public func matchConsume(_ seq: String) -> Bool { + return matches(seq, consume: true) + } + + @discardableResult + public func matchConsumeIgnoreCase(_ seq: String) -> Bool { + return matches(seq, ignoreCase: true, consume: true) + } + + public func containsIgnoreCase(_ seq: String ) -> Bool { + // used to check presence of , . only finds consistent case. + let loScan = seq.lowercased(with: Locale(identifier: "en")) + let hiScan = seq.uppercased(with: Locale(identifier: "eng")) + return nextIndexOf(loScan) != nil || nextIndexOf(hiScan) != nil + } + + public func toString() -> String { + return String(input[pos...]) + } + + /** + * Originally intended as a caching mechanism for strings, but caching doesn't + * seem to improve performance. Now just a stub. + */ + private func cacheString(_ start: String.UnicodeScalarView.Index, _ end: String.UnicodeScalarView.Index) -> String { + return String(input[start..` and `` using the supplied whitelist. + /// - Parameters: + /// - headWhitelist: Whitelist to clean the head with + /// - bodyWhitelist: Whitelist to clean the body with + public init(headWhitelist: Whitelist?, bodyWhitelist: Whitelist) { + self.headWhitelist = headWhitelist + self.bodyWhitelist = bodyWhitelist + } + + /// Create a new cleaner, that sanitizes documents' `` using the supplied whitelist. + /// - Parameter whitelist: Whitelist to clean the body with + convenience init(_ whitelist: Whitelist) { + self.init(headWhitelist: nil, bodyWhitelist: whitelist) + } + + /// Creates a new, clean document, from the original dirty document, containing only elements allowed by the whitelist. + /// The original document is not modified. Only elements from the dirt document's `` are used. + /// - Parameter dirtyDocument: Untrusted base document to clean. + /// - Returns: A cleaned document. + public func clean(_ dirtyDocument: Document) throws -> Document { + let clean = Document.createShell(dirtyDocument.getBaseUri()) + if let headWhitelist, let dirtHead = dirtyDocument.head(), let cleanHead = clean.head() { // frameset documents won't have a head. the clean doc will have empty head. + try copySafeNodes(dirtHead, cleanHead, whitelist: headWhitelist) + } + if let dirtBody = dirtyDocument.body(), let cleanBody = clean.body() { // frameset documents won't have a body. the clean doc will have empty body. + try copySafeNodes(dirtBody, cleanBody, whitelist: bodyWhitelist) + } + return clean + } + + /// Determines if the input document is valid, against the whitelist. It is considered valid if all the tags and attributes + /// in the input HTML are allowed by the whitelist. + /// + /// This method can be used as a validator for user input forms. An invalid document will still be cleaned successfully + /// using the ``clean(_:)`` document. If using as a validator, it is recommended to still clean the document + /// to ensure enforced attributes are set correctly, and that the output is tidied. + /// - Parameter dirtyDocument: document to test + /// - Returns: true if no tags or attributes need to be removed; false if they do + public func isValid(_ dirtyDocument: Document) throws -> Bool { + let clean = Document.createShell(dirtyDocument.getBaseUri()) + let numDiscarded = try copySafeNodes(dirtyDocument.body()!, clean.body()!, whitelist: bodyWhitelist) + return numDiscarded == 0 + } + + @discardableResult + fileprivate func copySafeNodes(_ source: Element, _ dest: Element, whitelist: Whitelist) throws -> Int { + let cleaningVisitor = Cleaner.CleaningVisitor(source, dest, whitelist) + try NodeTraversor(cleaningVisitor).traverse(source) + return cleaningVisitor.numDiscarded + } +} + +extension Cleaner { + fileprivate final class CleaningVisitor: NodeVisitor { + private(set) var numDiscarded = 0 + + private let root: Element + private var destination: Element? // current element to append nodes to + + private let whitelist: Whitelist + + public init(_ root: Element, _ destination: Element, _ whitelist: Whitelist) { + self.root = root + self.destination = destination + self.whitelist = whitelist + } + + public func head(_ source: Node, _ depth: Int) throws { + if let sourceEl = source as? Element { + if whitelist.isSafeTag(sourceEl.tagName()) { // safe, clone and copy safe attrs + let meta = try createSafeElement(sourceEl) + let destChild = meta.el + try destination?.appendChild(destChild) + + numDiscarded += meta.numAttribsDiscarded + destination = destChild + } else if source != root { // not a safe tag, so don't add. don't count root against discarded. + numDiscarded += 1 + } + } else if let sourceText = source as? TextNode { + let destText = TextNode(sourceText.getWholeText(), source.getBaseUri()) + try destination?.appendChild(destText) + } else if let sourceData = source as? DataNode { + if sourceData.parent() != nil && whitelist.isSafeTag(sourceData.parent()!.nodeName()) { + let destData = DataNode(sourceData.getWholeData(), source.getBaseUri()) + try destination?.appendChild(destData) + } else { + numDiscarded += 1 + } + } else { // else, we don't care about comments, xml proc instructions, etc + numDiscarded += 1 + } + } + + public func tail(_ source: Node, _ depth: Int) throws { + if let x = source as? Element { + if whitelist.isSafeTag(x.nodeName()) { + // would have descended, so pop destination stack + destination = destination?.parent() + } + } + } + + private func createSafeElement(_ sourceEl: Element) throws -> ElementMeta { + let sourceTag = sourceEl.tagName() + let destAttrs = Attributes() + var numDiscarded = 0 + + if let sourceAttrs = sourceEl.getAttributes() { + for sourceAttr in sourceAttrs { + if try whitelist.isSafeAttribute(sourceTag, sourceEl, sourceAttr) { + destAttrs.put(attribute: sourceAttr) + } else { + numDiscarded += 1 + } + } + } + let enforcedAttrs = try whitelist.getEnforcedAttributes(sourceTag) + destAttrs.addAll(incoming: enforcedAttrs) + + let dest = try Element(Tag.valueOf(sourceTag), sourceEl.getBaseUri(), destAttrs) + return ElementMeta(dest, numDiscarded) + } + } +} + +extension Cleaner { + fileprivate struct ElementMeta { + let el: Element + let numAttribsDiscarded: Int + + init(_ el: Element, _ numAttribsDiscarded: Int) { + self.el = el + self.numAttribsDiscarded = numAttribsDiscarded + } + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Collector.swift b/Swiftgram/SwiftSoup/Sources/Collector.swift new file mode 100644 index 00000000000..7bb6feb5929 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Collector.swift @@ -0,0 +1,59 @@ +// +// Collector.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 22/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * Collects a list of elements that match the supplied criteria. + * + */ +open class Collector { + + private init() { + } + + /** + Build a list of elements, by visiting root and every descendant of root, and testing it against the evaluator. + @param eval Evaluator to test elements against + @param root root of tree to descend + @return list of matches; empty if none + */ + public static func collect (_ eval: Evaluator, _ root: Element)throws->Elements { + let elements: Elements = Elements() + try NodeTraversor(Accumulator(root, elements, eval)).traverse(root) + return elements + } + +} + +private final class Accumulator: NodeVisitor { + private let root: Element + private let elements: Elements + private let eval: Evaluator + + init(_ root: Element, _ elements: Elements, _ eval: Evaluator) { + self.root = root + self.elements = elements + self.eval = eval + } + + public func head(_ node: Node, _ depth: Int) { + guard let el = node as? Element else { + return + } + do { + if try eval.matches(root, el) { + elements.add(el) + } + } catch {} + } + + public func tail(_ node: Node, _ depth: Int) { + // void + } +} diff --git a/Swiftgram/SwiftSoup/Sources/CombiningEvaluator.swift b/Swiftgram/SwiftSoup/Sources/CombiningEvaluator.swift new file mode 100644 index 00000000000..fdeb0aebbe2 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/CombiningEvaluator.swift @@ -0,0 +1,127 @@ +// +// CombiningEvaluator.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 23/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * Base combining (and, or) evaluator. + */ +public class CombiningEvaluator: Evaluator { + + public private(set) var evaluators: Array + var num: Int = 0 + + public override init() { + evaluators = Array() + super.init() + } + + public init(_ evaluators: Array) { + self.evaluators = evaluators + super.init() + updateNumEvaluators() + } + + public init(_ evaluators: Evaluator...) { + self.evaluators = evaluators + super.init() + updateNumEvaluators() + } + + func rightMostEvaluator() -> Evaluator? { + return num > 0 && evaluators.count > 0 ? evaluators[num - 1] : nil + } + + func replaceRightMostEvaluator(_ replacement: Evaluator) { + evaluators[num - 1] = replacement + } + + func updateNumEvaluators() { + // used so we don't need to bash on size() for every match test + num = evaluators.count + } + + public final class And: CombiningEvaluator { + public override init(_ evaluators: [Evaluator]) { + super.init(evaluators) + } + + public override init(_ evaluators: Evaluator...) { + super.init(evaluators) + } + + public override func matches(_ root: Element, _ node: Element) -> Bool { + for index in 0.. String { + let array: [String] = evaluators.map { String($0.toString()) } + return StringUtil.join(array, sep: " ") + } + } + + public final class Or: CombiningEvaluator { + /** + * Create a new Or evaluator. The initial evaluators are ANDed together and used as the first clause of the OR. + * @param evaluators initial OR clause (these are wrapped into an AND evaluator). + */ + public override init(_ evaluators: [Evaluator]) { + super.init() + if num > 1 { + self.evaluators.append(And(evaluators)) + } else { // 0 or 1 + self.evaluators.append(contentsOf: evaluators) + } + updateNumEvaluators() + } + + override init(_ evaluators: Evaluator...) { + super.init() + if num > 1 { + self.evaluators.append(And(evaluators)) + } else { // 0 or 1 + self.evaluators.append(contentsOf: evaluators) + } + updateNumEvaluators() + } + + override init() { + super.init() + } + + public func add(_ evaluator: Evaluator) { + evaluators.append(evaluator) + updateNumEvaluators() + } + + public override func matches(_ root: Element, _ node: Element) -> Bool { + for index in 0.. String { + return ":or\(evaluators.map {String($0.toString())})" + } + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Comment.swift b/Swiftgram/SwiftSoup/Sources/Comment.swift new file mode 100644 index 00000000000..0892cad3fad --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Comment.swift @@ -0,0 +1,66 @@ +// +// Comment.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 22/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + A comment node. + */ +public class Comment: Node { + private static let COMMENT_KEY: String = "comment" + + /** + Create a new comment node. + @param data The contents of the comment + @param baseUri base URI + */ + public init(_ data: String, _ baseUri: String) { + super.init(baseUri) + do { + try attributes?.put(Comment.COMMENT_KEY, data) + } catch {} + } + + public override func nodeName() -> String { + return "#comment" + } + + /** + Get the contents of the comment. + @return comment content + */ + public func getData() -> String { + return attributes!.get(key: Comment.COMMENT_KEY) + } + + override func outerHtmlHead(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) { + if (out.prettyPrint()) { + indent(accum, depth, out) + } + accum + .append("") + } + + override func outerHtmlTail(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) {} + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = Comment(attributes!.get(key: Comment.COMMENT_KEY), baseUri!) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = Comment(attributes!.get(key: Comment.COMMENT_KEY), baseUri!) + return copy(clone: clone, parent: parent) + } + + public override func copy(clone: Node, parent: Node?) -> Node { + return super.copy(clone: clone, parent: parent) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Connection.swift b/Swiftgram/SwiftSoup/Sources/Connection.swift new file mode 100644 index 00000000000..7b309a53c54 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Connection.swift @@ -0,0 +1,10 @@ +// +// Connection.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation +//TODO: diff --git a/Swiftgram/SwiftSoup/Sources/CssSelector.swift b/Swiftgram/SwiftSoup/Sources/CssSelector.swift new file mode 100644 index 00000000000..c8129220e8d --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/CssSelector.swift @@ -0,0 +1,166 @@ +// +// CssSelector.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 21/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * CSS-like element selector, that finds elements matching a query. + * + *

CssSelector syntax

+ *

+ * A selector is a chain of simple selectors, separated by combinators. Selectors are case insensitive (including against + * elements, attributes, and attribute values). + *

+ *

+ * The universal selector (*) is implicit when no element selector is supplied (i.e. {@code *.header} and {@code .header} + * is equivalent). + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
PatternMatchesExample
*any element*
tagelements with the given tag namediv
*|Eelements of type E in any namespace ns*|name finds <fb:name> elements
ns|Eelements of type E in the namespace nsfb|name finds <fb:name> elements
#idelements with attribute ID of "id"div#wrap, #logo
.classelements with a class name of "class"div.left, .result
[attr]elements with an attribute named "attr" (with any value)a[href], [title]
[^attrPrefix]elements with an attribute name starting with "attrPrefix". Use to find elements with HTML5 datasets[^data-], div[^data-]
[attr=val]elements with an attribute named "attr", and value equal to "val"img[width=500], a[rel=nofollow]
[attr="val"]elements with an attribute named "attr", and value equal to "val"span[hello="Cleveland"][goodbye="Columbus"], a[rel="nofollow"]
[attr^=valPrefix]elements with an attribute named "attr", and value starting with "valPrefix"a[href^=http:]
[attr$=valSuffix]elements with an attribute named "attr", and value ending with "valSuffix"img[src$=.png]
[attr*=valContaining]elements with an attribute named "attr", and value containing "valContaining"a[href*=/search/]
[attr~=regex]elements with an attribute named "attr", and value matching the regular expressionimg[src~=(?i)\\.(png|jpe?g)]
The above may be combined in any orderdiv.header[title]

Combinators

E Fan F element descended from an E elementdiv a, .logo h1
E {@literal >} Fan F direct child of Eol {@literal >} li
E + Fan F element immediately preceded by sibling Eli + li, div.head + div
E ~ Fan F element preceded by sibling Eh1 ~ p
E, F, Gall matching elements E, F, or Ga[href], div, h3

Pseudo selectors

:lt(n)elements whose sibling index is less than ntd:lt(3) finds the first 3 cells of each row
:gt(n)elements whose sibling index is greater than ntd:gt(1) finds cells after skipping the first two
:eq(n)elements whose sibling index is equal to ntd:eq(0) finds the first cell of each row
:has(selector)elements that contains at least one element matching the selectordiv:has(p) finds divs that contain p elements
:not(selector)elements that do not match the selector. See also {@link Elements#not(String)}div:not(.logo) finds all divs that do not have the "logo" class.

div:not(:has(div)) finds divs that do not contain divs.

:contains(text)elements that contains the specified text. The search is case insensitive. The text may appear in the found element, or any of its descendants.p:contains(SwiftSoup) finds p elements containing the text "SwiftSoup".
:matches(regex)elements whose text matches the specified regular expression. The text may appear in the found element, or any of its descendants.td:matches(\\d+) finds table cells containing digits. div:matches((?i)login) finds divs containing the text, case insensitively.
:containsOwn(text)elements that directly contain the specified text. The search is case insensitive. The text must appear in the found element, not any of its descendants.p:containsOwn(SwiftSoup) finds p elements with own text "SwiftSoup".
:matchesOwn(regex)elements whose own text matches the specified regular expression. The text must appear in the found element, not any of its descendants.td:matchesOwn(\\d+) finds table cells directly containing digits. div:matchesOwn((?i)login) finds divs containing the text, case insensitively.
The above may be combined in any order and with other selectors.light:contains(name):eq(0)

Structural pseudo selectors

:rootThe element that is the root of the document. In HTML, this is the html element:root
:nth-child(an+b)

elements that have an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element. For values of a and b greater than zero, this effectively divides the element's children into groups of a elements (the last group taking the remainder), and selecting the bth element of each group. For example, this allows the selectors to address every other row in a table, and could be used to alternate the color of paragraph text in a cycle of four. The a and b values must be integers (positive, negative, or zero). The index of the first child of an element is 1.

+ * In addition to this, :nth-child() can take odd and even as arguments instead. odd has the same signification as 2n+1, and even has the same signification as 2n.
tr:nth-child(2n+1) finds every odd row of a table. :nth-child(10n-1) the 9th, 19th, 29th, etc, element. li:nth-child(5) the 5h li
:nth-last-child(an+b)elements that have an+b-1 siblings after it in the document tree. Otherwise like :nth-child()tr:nth-last-child(-n+2) the last two rows of a table
:nth-of-type(an+b)pseudo-class notation represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent elementimg:nth-of-type(2n+1)
:nth-last-of-type(an+b)pseudo-class notation represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent elementimg:nth-last-of-type(2n+1)
:first-childelements that are the first child of some other element.div {@literal >} p:first-child
:last-childelements that are the last child of some other element.ol {@literal >} li:last-child
:first-of-typeelements that are the first sibling of its type in the list of children of its parent elementdl dt:first-of-type
:last-of-typeelements that are the last sibling of its type in the list of children of its parent elementtr {@literal >} td:last-of-type
:only-childelements that have a parent element and whose parent element hasve no other element children
:only-of-type an element that has a parent element and whose parent element has no other element children with the same expanded element name
:emptyelements that have no children at all
+ * + * @see Element#select(String) + */ +@available(*, deprecated, renamed: "CssSelector") +typealias Selector = CssSelector + +open class CssSelector { + private let evaluator: Evaluator + private let root: Element + + private init(_ query: String, _ root: Element)throws { + let query = query.trim() + try Validate.notEmpty(string: query) + + self.evaluator = try QueryParser.parse(query) + + self.root = root + } + + private init(_ evaluator: Evaluator, _ root: Element) { + self.evaluator = evaluator + self.root = root + } + + /** + * Find elements matching selector. + * + * @param query CSS selector + * @param root root element to descend into + * @return matching elements, empty if none + * @throws CssSelector.SelectorParseException (unchecked) on an invalid CSS query. + */ + public static func select(_ query: String, _ root: Element)throws->Elements { + return try CssSelector(query, root).select() + } + + /** + * Find elements matching selector. + * + * @param evaluator CSS selector + * @param root root element to descend into + * @return matching elements, empty if none + */ + public static func select(_ evaluator: Evaluator, _ root: Element)throws->Elements { + return try CssSelector(evaluator, root).select() + } + + /** + * Find elements matching selector. + * + * @param query CSS selector + * @param roots root elements to descend into + * @return matching elements, empty if none + */ + public static func select(_ query: String, _ roots: Array)throws->Elements { + try Validate.notEmpty(string: query) + let evaluator: Evaluator = try QueryParser.parse(query) + var elements: Array = Array() + var seenElements: Array = Array() + // dedupe elements by identity, not equality + + for root: Element in roots { + let found: Elements = try select(evaluator, root) + for el: Element in found.array() { + if (!seenElements.contains(el)) { + elements.append(el) + seenElements.append(el) + } + } + } + return Elements(elements) + } + + private func select()throws->Elements { + return try Collector.collect(evaluator, root) + } + + // exclude set. package open so that Elements can implement .not() selector. + static func filterOut(_ elements: Array, _ outs: Array) -> Elements { + let output: Elements = Elements() + for el: Element in elements { + var found: Bool = false + for out: Element in outs { + if (el.equals(out)) { + found = true + break + } + } + if (!found) { + output.add(el) + } + } + return output + } +} diff --git a/Swiftgram/SwiftSoup/Sources/DataNode.swift b/Swiftgram/SwiftSoup/Sources/DataNode.swift new file mode 100644 index 00000000000..37f7199fa12 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/DataNode.swift @@ -0,0 +1,85 @@ +// +// DataNode.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + A data node, for contents of style, script tags etc, where contents should not show in text(). + */ +open class DataNode: Node { + private static let DATA_KEY: String = "data" + + /** + Create a new DataNode. + @param data data contents + @param baseUri base URI + */ + public init(_ data: String, _ baseUri: String) { + super.init(baseUri) + do { + try attributes?.put(DataNode.DATA_KEY, data) + } catch {} + + } + + open override func nodeName() -> String { + return "#data" + } + + /** + Get the data contents of this node. Will be unescaped and with original new lines, space etc. + @return data + */ + open func getWholeData() -> String { + return attributes!.get(key: DataNode.DATA_KEY) + } + + /** + * Set the data contents of this node. + * @param data unencoded data + * @return this node, for chaining + */ + @discardableResult + open func setWholeData(_ data: String) -> DataNode { + do { + try attributes?.put(DataNode.DATA_KEY, data) + } catch {} + return self + } + + override func outerHtmlHead(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings)throws { + accum.append(getWholeData()) // data is not escaped in return from data nodes, so " in script, style is plain + } + + override func outerHtmlTail(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) {} + + /** + Create a new DataNode from HTML encoded data. + @param encodedData encoded data + @param baseUri bass URI + @return new DataNode + */ + public static func createFromEncoded(_ encodedData: String, _ baseUri: String)throws->DataNode { + let data = try Entities.unescape(encodedData) + return DataNode(data, baseUri) + } + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = DataNode(attributes!.get(key: DataNode.DATA_KEY), baseUri!) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = DataNode(attributes!.get(key: DataNode.DATA_KEY), baseUri!) + return copy(clone: clone, parent: parent) + } + + public override func copy(clone: Node, parent: Node?) -> Node { + return super.copy(clone: clone, parent: parent) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/DataUtil.swift b/Swiftgram/SwiftSoup/Sources/DataUtil.swift new file mode 100644 index 00000000000..f2d0deec4e1 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/DataUtil.swift @@ -0,0 +1,24 @@ +// +// DataUtil.swift +// SwifSoup +// +// Created by Nabil Chatbi on 02/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * Internal static utilities for handling data. + * + */ +class DataUtil { + + static let charsetPattern = "(?i)\\bcharset=\\s*(?:\"|')?([^\\s,;\"']*)" + static let defaultCharset = "UTF-8" // used if not found in header or meta charset + static let bufferSize = 0x20000 // ~130K. + static let UNICODE_BOM = 0xFEFF + static let mimeBoundaryChars = "-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + static let boundaryLength = 32 + +} diff --git a/Swiftgram/SwiftSoup/Sources/Document.swift b/Swiftgram/SwiftSoup/Sources/Document.swift new file mode 100644 index 00000000000..12e29cb514a --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Document.swift @@ -0,0 +1,562 @@ +// +// Document.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +open class Document: Element { + public enum QuirksMode { + case noQuirks, quirks, limitedQuirks + } + + private var _outputSettings: OutputSettings = OutputSettings() + private var _quirksMode: Document.QuirksMode = QuirksMode.noQuirks + private let _location: String + private var updateMetaCharset: Bool = false + + /** + Create a new, empty Document. + @param baseUri base URI of document + @see SwiftSoup#parse + @see #createShell + */ + public init(_ baseUri: String) { + self._location = baseUri + super.init(try! Tag.valueOf("#root", ParseSettings.htmlDefault), baseUri) + } + + /** + Create a valid, empty shell of a document, suitable for adding more elements to. + @param baseUri baseUri of document + @return document with html, head, and body elements. + */ + static public func createShell(_ baseUri: String) -> Document { + let doc: Document = Document(baseUri) + let html: Element = try! doc.appendElement("html") + try! html.appendElement("head") + try! html.appendElement("body") + + return doc + } + + /** + * Get the URL this Document was parsed from. If the starting URL is a redirect, + * this will return the final URL from which the document was served from. + * @return location + */ + public func location() -> String { + return _location + } + + /** + Accessor to the document's {@code head} element. + @return {@code head} + */ + public func head() -> Element? { + return findFirstElementByTagName("head", self) + } + + /** + Accessor to the document's {@code body} element. + @return {@code body} + */ + public func body() -> Element? { + return findFirstElementByTagName("body", self) + } + + /** + Get the string contents of the document's {@code title} element. + @return Trimmed title, or empty string if none set. + */ + public func title()throws->String { + // title is a preserve whitespace tag (for document output), but normalised here + let titleEl: Element? = try getElementsByTag("title").first() + return titleEl != nil ? try StringUtil.normaliseWhitespace(titleEl!.text()).trim() : "" + } + + /** + Set the document's {@code title} element. Updates the existing element, or adds {@code title} to {@code head} if + not present + @param title string to set as title + */ + public func title(_ title: String)throws { + let titleEl: Element? = try getElementsByTag("title").first() + if (titleEl == nil) { // add to head + try head()?.appendElement("title").text(title) + } else { + try titleEl?.text(title) + } + } + + /** + Create a new Element, with this document's base uri. Does not make the new element a child of this document. + @param tagName element tag name (e.g. {@code a}) + @return new element + */ + public func createElement(_ tagName: String)throws->Element { + return try Element(Tag.valueOf(tagName, ParseSettings.preserveCase), self.getBaseUri()) + } + + /** + Normalise the document. This happens after the parse phase so generally does not need to be called. + Moves any text content that is not in the body element into the body. + @return this document after normalisation + */ + @discardableResult + public func normalise()throws->Document { + var htmlE: Element? = findFirstElementByTagName("html", self) + if (htmlE == nil) { + htmlE = try appendElement("html") + } + let htmlEl: Element = htmlE! + + if (head() == nil) { + try htmlEl.prependElement("head") + } + if (body() == nil) { + try htmlEl.appendElement("body") + } + + // pull text nodes out of root, html, and head els, and push into body. non-text nodes are already taken care + // of. do in inverse order to maintain text order. + try normaliseTextNodes(head()!) + try normaliseTextNodes(htmlEl) + try normaliseTextNodes(self) + + try normaliseStructure("head", htmlEl) + try normaliseStructure("body", htmlEl) + + try ensureMetaCharsetElement() + + return self + } + + // does not recurse. + private func normaliseTextNodes(_ element: Element)throws { + var toMove: Array = Array() + for node: Node in element.childNodes { + if let tn = (node as? TextNode) { + if (!tn.isBlank()) { + toMove.append(tn) + } + } + } + + for i in (0.. or contents into one, delete the remainder, and ensure they are owned by + private func normaliseStructure(_ tag: String, _ htmlEl: Element)throws { + let elements: Elements = try self.getElementsByTag(tag) + let master: Element? = elements.first() // will always be available as created above if not existent + if (elements.size() > 1) { // dupes, move contents to master + var toMove: Array = Array() + for i in 1.. + if (!(master != nil && master!.parent() != nil && master!.parent()!.equals(htmlEl))) { + try htmlEl.appendChild(master!) // includes remove() + } + } + + // fast method to get first by tag name, used for html, head, body finders + private func findFirstElementByTagName(_ tag: String, _ node: Node) -> Element? { + if (node.nodeName()==tag) { + return node as? Element + } else { + for child: Node in node.childNodes { + let found: Element? = findFirstElementByTagName(tag, child) + if (found != nil) { + return found + } + } + } + return nil + } + + open override func outerHtml()throws->String { + return try super.html() // no outer wrapper tag + } + + /** + Set the text of the {@code body} of this document. Any existing nodes within the body will be cleared. + @param text unencoded text + @return this document + */ + @discardableResult + public override func text(_ text: String)throws->Element { + try body()?.text(text) // overridden to not nuke doc structure + return self + } + + open override func nodeName() -> String { + return "#document" + } + + /** + * Sets the charset used in this document. This method is equivalent + * to {@link OutputSettings#charset(java.nio.charset.Charset) + * OutputSettings.charset(Charset)} but in addition it updates the + * charset / encoding element within the document. + * + *

This enables + * {@link #updateMetaCharsetElement(boolean) meta charset update}.

+ * + *

If there's no element with charset / encoding information yet it will + * be created. Obsolete charset / encoding definitions are removed!

+ * + *

Elements used:

+ * + *
    + *
  • Html: <meta charset="CHARSET">
  • + *
  • Xml: <?xml version="1.0" encoding="CHARSET">
  • + *
+ * + * @param charset Charset + * + * @see #updateMetaCharsetElement(boolean) + * @see OutputSettings#charset(java.nio.charset.Charset) + */ + public func charset(_ charset: String.Encoding)throws { + updateMetaCharsetElement(true) + _outputSettings.charset(charset) + try ensureMetaCharsetElement() + } + + /** + * Returns the charset used in this document. This method is equivalent + * to {@link OutputSettings#charset()}. + * + * @return Current Charset + * + * @see OutputSettings#charset() + */ + public func charset()->String.Encoding { + return _outputSettings.charset() + } + + /** + * Sets whether the element with charset information in this document is + * updated on changes through {@link #charset(java.nio.charset.Charset) + * Document.charset(Charset)} or not. + * + *

If set to false (default) there are no elements + * modified.

+ * + * @param update If true the element updated on charset + * changes, false if not + * + * @see #charset(java.nio.charset.Charset) + */ + public func updateMetaCharsetElement(_ update: Bool) { + self.updateMetaCharset = update + } + + /** + * Returns whether the element with charset information in this document is + * updated on changes through {@link #charset(java.nio.charset.Charset) + * Document.charset(Charset)} or not. + * + * @return Returns true if the element is updated on charset + * changes, false if not + */ + public func updateMetaCharsetElement() -> Bool { + return updateMetaCharset + } + + /** + * Ensures a meta charset (html) or xml declaration (xml) with the current + * encoding used. This only applies with + * {@link #updateMetaCharsetElement(boolean) updateMetaCharset} set to + * true, otherwise this method does nothing. + * + *
    + *
  • An exsiting element gets updated with the current charset
  • + *
  • If there's no element yet it will be inserted
  • + *
  • Obsolete elements are removed
  • + *
+ * + *

Elements used:

+ * + *
    + *
  • Html: <meta charset="CHARSET">
  • + *
  • Xml: <?xml version="1.0" encoding="CHARSET">
  • + *
+ */ + private func ensureMetaCharsetElement()throws { + if (updateMetaCharset) { + let syntax: OutputSettings.Syntax = outputSettings().syntax() + + if (syntax == OutputSettings.Syntax.html) { + let metaCharset: Element? = try select("meta[charset]").first() + + if (metaCharset != nil) { + try metaCharset?.attr("charset", charset().displayName()) + } else { + let head: Element? = self.head() + + if (head != nil) { + try head?.appendElement("meta").attr("charset", charset().displayName()) + } + } + + // Remove obsolete elements + let s = try select("meta[name=charset]") + try s.remove() + + } else if (syntax == OutputSettings.Syntax.xml) { + let node: Node = getChildNodes()[0] + + if let decl = (node as? XmlDeclaration) { + + if (decl.name()=="xml") { + try decl.attr("encoding", charset().displayName()) + + _ = try decl.attr("version") + try decl.attr("version", "1.0") + } else { + try Validate.notNull(obj: baseUri) + let decl = XmlDeclaration("xml", baseUri!, false) + try decl.attr("version", "1.0") + try decl.attr("encoding", charset().displayName()) + + try prependChild(decl) + } + } else { + try Validate.notNull(obj: baseUri) + let decl = XmlDeclaration("xml", baseUri!, false) + try decl.attr("version", "1.0") + try decl.attr("encoding", charset().displayName()) + + try prependChild(decl) + } + } + } + } + + /** + * Get the document's current output settings. + * @return the document's current output settings. + */ + public func outputSettings() -> OutputSettings { + return _outputSettings + } + + /** + * Set the document's output settings. + * @param outputSettings new output settings. + * @return this document, for chaining. + */ + @discardableResult + public func outputSettings(_ outputSettings: OutputSettings) -> Document { + self._outputSettings = outputSettings + return self + } + + public func quirksMode()->Document.QuirksMode { + return _quirksMode + } + + @discardableResult + public func quirksMode(_ quirksMode: Document.QuirksMode) -> Document { + self._quirksMode = quirksMode + return self + } + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = Document(_location) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = Document(_location) + return copy(clone: clone, parent: parent) + } + + public override func copy(clone: Node, parent: Node?) -> Node { + let clone = clone as! Document + clone._outputSettings = _outputSettings.copy() as! OutputSettings + clone._quirksMode = _quirksMode + clone.updateMetaCharset = updateMetaCharset + return super.copy(clone: clone, parent: parent) + } + +} + +public class OutputSettings: NSCopying { + /** + * The output serialization syntax. + */ + public enum Syntax {case html, xml} + + private var _escapeMode: Entities.EscapeMode = Entities.EscapeMode.base + private var _encoder: String.Encoding = String.Encoding.utf8 // Charset.forName("UTF-8") + private var _prettyPrint: Bool = true + private var _outline: Bool = false + private var _indentAmount: UInt = 1 + private var _syntax = Syntax.html + + public init() {} + + /** + * Get the document's current HTML escape mode: base, which provides a limited set of named HTML + * entities and escapes other characters as numbered entities for maximum compatibility; or extended, + * which uses the complete set of HTML named entities. + *

+ * The default escape mode is base. + * @return the document's current escape mode + */ + public func escapeMode() -> Entities.EscapeMode { + return _escapeMode + } + + /** + * Set the document's escape mode, which determines how characters are escaped when the output character set + * does not support a given character:- using either a named or a numbered escape. + * @param escapeMode the new escape mode to use + * @return the document's output settings, for chaining + */ + @discardableResult + public func escapeMode(_ escapeMode: Entities.EscapeMode) -> OutputSettings { + self._escapeMode = escapeMode + return self + } + + /** + * Get the document's current output charset, which is used to control which characters are escaped when + * generating HTML (via the html() methods), and which are kept intact. + *

+ * Where possible (when parsing from a URL or File), the document's output charset is automatically set to the + * input charset. Otherwise, it defaults to UTF-8. + * @return the document's current charset. + */ + public func encoder() -> String.Encoding { + return _encoder + } + public func charset() -> String.Encoding { + return _encoder + } + + /** + * Update the document's output charset. + * @param charset the new charset to use. + * @return the document's output settings, for chaining + */ + @discardableResult + public func encoder(_ encoder: String.Encoding) -> OutputSettings { + self._encoder = encoder + return self + } + + @discardableResult + public func charset(_ e: String.Encoding) -> OutputSettings { + return encoder(e) + } + + /** + * Get the document's current output syntax. + * @return current syntax + */ + public func syntax() -> Syntax { + return _syntax + } + + /** + * Set the document's output syntax. Either {@code html}, with empty tags and boolean attributes (etc), or + * {@code xml}, with self-closing tags. + * @param syntax serialization syntax + * @return the document's output settings, for chaining + */ + @discardableResult + public func syntax(syntax: Syntax) -> OutputSettings { + _syntax = syntax + return self + } + + /** + * Get if pretty printing is enabled. Default is true. If disabled, the HTML output methods will not re-format + * the output, and the output will generally look like the input. + * @return if pretty printing is enabled. + */ + public func prettyPrint() -> Bool { + return _prettyPrint + } + + /** + * Enable or disable pretty printing. + * @param pretty new pretty print setting + * @return this, for chaining + */ + @discardableResult + public func prettyPrint(pretty: Bool) -> OutputSettings { + _prettyPrint = pretty + return self + } + + /** + * Get if outline mode is enabled. Default is false. If enabled, the HTML output methods will consider + * all tags as block. + * @return if outline mode is enabled. + */ + public func outline() -> Bool { + return _outline + } + + /** + * Enable or disable HTML outline mode. + * @param outlineMode new outline setting + * @return this, for chaining + */ + @discardableResult + public func outline(outlineMode: Bool) -> OutputSettings { + _outline = outlineMode + return self + } + + /** + * Get the current tag indent amount, used when pretty printing. + * @return the current indent amount + */ + public func indentAmount() -> UInt { + return _indentAmount + } + + /** + * Set the indent amount for pretty printing + * @param indentAmount number of spaces to use for indenting each level. Must be {@literal >=} 0. + * @return this, for chaining + */ + @discardableResult + public func indentAmount(indentAmount: UInt) -> OutputSettings { + _indentAmount = indentAmount + return self + } + + public func copy(with zone: NSZone? = nil) -> Any { + let clone: OutputSettings = OutputSettings() + clone.charset(_encoder) // new charset and charset encoder + clone._escapeMode = _escapeMode//Entities.EscapeMode.valueOf(escapeMode.name()) + // indentAmount, prettyPrint are primitives so object.clone() will handle + return clone + } + +} diff --git a/Swiftgram/SwiftSoup/Sources/DocumentType.swift b/Swiftgram/SwiftSoup/Sources/DocumentType.swift new file mode 100644 index 00000000000..95f9b10df31 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/DocumentType.swift @@ -0,0 +1,129 @@ +// +// DocumentType.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * A {@code } node. + */ +public class DocumentType: Node { + static let PUBLIC_KEY: String = "PUBLIC" + static let SYSTEM_KEY: String = "SYSTEM" + private static let NAME: String = "name" + private static let PUB_SYS_KEY: String = "pubSysKey"; // PUBLIC or SYSTEM + private static let PUBLIC_ID: String = "publicId" + private static let SYSTEM_ID: String = "systemId" + // todo: quirk mode from publicId and systemId + + /** + * Create a new doctype element. + * @param name the doctype's name + * @param publicId the doctype's public ID + * @param systemId the doctype's system ID + * @param baseUri the doctype's base URI + */ + public init(_ name: String, _ publicId: String, _ systemId: String, _ baseUri: String) { + super.init(baseUri) + do { + try attr(DocumentType.NAME, name) + try attr(DocumentType.PUBLIC_ID, publicId) + if (has(DocumentType.PUBLIC_ID)) { + try attr(DocumentType.PUB_SYS_KEY, DocumentType.PUBLIC_KEY) + } + try attr(DocumentType.SYSTEM_ID, systemId) + } catch {} + } + + /** + * Create a new doctype element. + * @param name the doctype's name + * @param publicId the doctype's public ID + * @param systemId the doctype's system ID + * @param baseUri the doctype's base URI + */ + public init(_ name: String, _ pubSysKey: String?, _ publicId: String, _ systemId: String, _ baseUri: String) { + super.init(baseUri) + do { + try attr(DocumentType.NAME, name) + if(pubSysKey != nil) { + try attr(DocumentType.PUB_SYS_KEY, pubSysKey!) + } + try attr(DocumentType.PUBLIC_ID, publicId) + try attr(DocumentType.SYSTEM_ID, systemId) + } catch {} + } + + public override func nodeName() -> String { + return "#doctype" + } + + override func outerHtmlHead(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) { + if (out.syntax() == OutputSettings.Syntax.html && !has(DocumentType.PUBLIC_ID) && !has(DocumentType.SYSTEM_ID)) { + // looks like a html5 doctype, go lowercase for aesthetics + accum.append("") + } + + override func outerHtmlTail(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) { + } + + private func has(_ attribute: String) -> Bool { + do { + return !StringUtil.isBlank(try attr(attribute)) + } catch {return false} + } + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = DocumentType(attributes!.get(key: DocumentType.NAME), + attributes!.get(key: DocumentType.PUBLIC_ID), + attributes!.get(key: DocumentType.SYSTEM_ID), + baseUri!) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = DocumentType(attributes!.get(key: DocumentType.NAME), + attributes!.get(key: DocumentType.PUBLIC_ID), + attributes!.get(key: DocumentType.SYSTEM_ID), + baseUri!) + return copy(clone: clone, parent: parent) + } + + public override func copy(clone: Node, parent: Node?) -> Node { + return super.copy(clone: clone, parent: parent) + } + +} diff --git a/Swiftgram/SwiftSoup/Sources/Element.swift b/Swiftgram/SwiftSoup/Sources/Element.swift new file mode 100644 index 00000000000..630b9914bc2 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Element.swift @@ -0,0 +1,1316 @@ +// +// Element.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +open class Element: Node { + var _tag: Tag + + private static let classString = "class" + private static let emptyString = "" + private static let idString = "id" + private static let rootString = "#root" + + //private static let classSplit : Pattern = Pattern("\\s+") + private static let classSplit = "\\s+" + + /** + * Create a new, standalone Element. (Standalone in that is has no parent.) + * + * @param tag tag of this element + * @param baseUri the base URI + * @param attributes initial attributes + * @see #appendChild(Node) + * @see #appendElement(String) + */ + public init(_ tag: Tag, _ baseUri: String, _ attributes: Attributes) { + self._tag = tag + super.init(baseUri, attributes) + } + /** + * Create a new Element from a tag and a base URI. + * + * @param tag element tag + * @param baseUri the base URI of this element. It is acceptable for the base URI to be an empty + * string, but not null. + * @see Tag#valueOf(String, ParseSettings) + */ + public init(_ tag: Tag, _ baseUri: String) { + self._tag = tag + super.init(baseUri, Attributes()) + } + + open override func nodeName() -> String { + return _tag.getName() + } + /** + * Get the name of the tag for this element. E.g. {@code div} + * + * @return the tag name + */ + open func tagName() -> String { + return _tag.getName() + } + open func tagNameNormal() -> String { + return _tag.getNameNormal() + } + + /** + * Change the tag of this element. For example, convert a {@code } to a {@code

} with + * {@code el.tagName("div")}. + * + * @param tagName new tag name for this element + * @return this element, for chaining + */ + @discardableResult + public func tagName(_ tagName: String)throws->Element { + try Validate.notEmpty(string: tagName, msg: "Tag name must not be empty.") + _tag = try Tag.valueOf(tagName, ParseSettings.preserveCase) // preserve the requested tag case + return self + } + + /** + * Get the Tag for this element. + * + * @return the tag object + */ + open func tag() -> Tag { + return _tag + } + + /** + * Test if this element is a block-level element. (E.g. {@code
== true} or an inline element + * {@code

== false}). + * + * @return true if block, false if not (and thus inline) + */ + open func isBlock() -> Bool { + return _tag.isBlock() + } + + /** + * Get the {@code id} attribute of this element. + * + * @return The id attribute, if present, or an empty string if not. + */ + open func id() -> String { + guard let attributes = attributes else {return Element.emptyString} + do { + return try attributes.getIgnoreCase(key: Element.idString) + } catch {} + return Element.emptyString + } + + /** + * Set an attribute value on this element. If this element already has an attribute with the + * key, its value is updated; otherwise, a new attribute is added. + * + * @return this element + */ + @discardableResult + open override func attr(_ attributeKey: String, _ attributeValue: String)throws->Element { + try super.attr(attributeKey, attributeValue) + return self + } + + /** + * Set a boolean attribute value on this element. Setting to true sets the attribute value to "" and + * marks the attribute as boolean so no value is written out. Setting to false removes the attribute + * with the same key if it exists. + * + * @param attributeKey the attribute key + * @param attributeValue the attribute value + * + * @return this element + */ + @discardableResult + open func attr(_ attributeKey: String, _ attributeValue: Bool)throws->Element { + try attributes?.put(attributeKey, attributeValue) + return self + } + + /** + * Get this element's HTML5 custom data attributes. Each attribute in the element that has a key + * starting with "data-" is included the dataset. + *

+ * E.g., the element {@code

...} has the dataset + * {@code package=SwiftSoup, language=java}. + *

+ * This map is a filtered view of the element's attribute map. Changes to one map (add, remove, update) are reflected + * in the other map. + *

+ * You can find elements that have data attributes using the {@code [^data-]} attribute key prefix selector. + * @return a map of {@code key=value} custom data attributes. + */ + open func dataset()->Dictionary { + return attributes!.dataset() + } + + open override func parent() -> Element? { + return parentNode as? Element + } + + /** + * Get this element's parent and ancestors, up to the document root. + * @return this element's stack of parents, closest first. + */ + open func parents() -> Elements { + let parents: Elements = Elements() + Element.accumulateParents(self, parents) + return parents + } + + private static func accumulateParents(_ el: Element, _ parents: Elements) { + let parent: Element? = el.parent() + if (parent != nil && !(parent!.tagName() == Element.rootString)) { + parents.add(parent!) + accumulateParents(parent!, parents) + } + } + + /** + * Get a child element of this element, by its 0-based index number. + *

+ * Note that an element can have both mixed Nodes and Elements as children. This method inspects + * a filtered list of children that are elements, and the index is based on that filtered list. + *

+ * + * @param index the index number of the element to retrieve + * @return the child element, if it exists, otherwise throws an {@code IndexOutOfBoundsException} + * @see #childNode(int) + */ + open func child(_ index: Int) -> Element { + return children().get(index) + } + + /** + * Get this element's child elements. + *

+ * This is effectively a filter on {@link #childNodes()} to get Element nodes. + *

+ * @return child elements. If this element has no children, returns an + * empty list. + * @see #childNodes() + */ + open func children() -> Elements { + // create on the fly rather than maintaining two lists. if gets slow, memoize, and mark dirty on change + var elements = Array() + for node in childNodes { + if let n = node as? Element { + elements.append(n) + } + } + return Elements(elements) + } + + /** + * Get this element's child text nodes. The list is unmodifiable but the text nodes may be manipulated. + *

+ * This is effectively a filter on {@link #childNodes()} to get Text nodes. + * @return child text nodes. If this element has no text nodes, returns an + * empty list. + *

+ * For example, with the input HTML: {@code

One Two Three
Four

} with the {@code p} element selected: + *
    + *
  • {@code p.text()} = {@code "One Two Three Four"}
  • + *
  • {@code p.ownText()} = {@code "One Three Four"}
  • + *
  • {@code p.children()} = {@code Elements[,
    ]}
  • + *
  • {@code p.childNodes()} = {@code List["One ", , " Three ",
    , " Four"]}
  • + *
  • {@code p.textNodes()} = {@code List["One ", " Three ", " Four"]}
  • + *
+ */ + open func textNodes()->Array { + var textNodes = Array() + for node in childNodes { + if let n = node as? TextNode { + textNodes.append(n) + } + } + return textNodes + } + + /** + * Get this element's child data nodes. The list is unmodifiable but the data nodes may be manipulated. + *

+ * This is effectively a filter on {@link #childNodes()} to get Data nodes. + *

+ * @return child data nodes. If this element has no data nodes, returns an + * empty list. + * @see #data() + */ + open func dataNodes()->Array { + var dataNodes = Array() + for node in childNodes { + if let n = node as? DataNode { + dataNodes.append(n) + } + } + return dataNodes + } + + /** + * Find elements that match the {@link CssSelector} CSS query, with this element as the starting context. Matched elements + * may include this element, or any of its children. + *

+ * This method is generally more powerful to use than the DOM-type {@code getElementBy*} methods, because + * multiple filters can be combined, e.g.: + *

+ *
    + *
  • {@code el.select("a[href]")} - finds links ({@code a} tags with {@code href} attributes) + *
  • {@code el.select("a[href*=example.com]")} - finds links pointing to example.com (loosely) + *
+ *

+ * See the query syntax documentation in {@link CssSelector}. + *

+ * + * @param cssQuery a {@link CssSelector} CSS-like query + * @return elements that match the query (empty if none match) + * @see CssSelector + * @throws CssSelector.SelectorParseException (unchecked) on an invalid CSS query. + */ + public func select(_ cssQuery: String)throws->Elements { + return try CssSelector.select(cssQuery, self) + } + + /** + * Check if this element matches the given {@link CssSelector} CSS query. + * @param cssQuery a {@link CssSelector} CSS query + * @return if this element matches the query + */ + public func iS(_ cssQuery: String)throws->Bool { + return try iS(QueryParser.parse(cssQuery)) + } + + /** + * Check if this element matches the given {@link CssSelector} CSS query. + * @param cssQuery a {@link CssSelector} CSS query + * @return if this element matches the query + */ + public func iS(_ evaluator: Evaluator)throws->Bool { + guard let od = self.ownerDocument() else { + return false + } + return try evaluator.matches(od, self) + } + + /** + * Add a node child node to this element. + * + * @param child node to add. + * @return this element, so that you can add more child nodes or elements. + */ + @discardableResult + public func appendChild(_ child: Node)throws->Element { + // was - Node#addChildren(child). short-circuits an array create and a loop. + try reparentChild(child) + ensureChildNodes() + childNodes.append(child) + child.setSiblingIndex(childNodes.count - 1) + return self + } + + /** + * Add a node to the start of this element's children. + * + * @param child node to add. + * @return this element, so that you can add more child nodes or elements. + */ + @discardableResult + public func prependChild(_ child: Node)throws->Element { + try addChildren(0, child) + return self + } + + /** + * Inserts the given child nodes into this element at the specified index. Current nodes will be shifted to the + * right. The inserted nodes will be moved from their current parent. To prevent moving, copy the nodes first. + * + * @param index 0-based index to insert children at. Specify {@code 0} to insert at the start, {@code -1} at the + * end + * @param children child nodes to insert + * @return this element, for chaining. + */ + @discardableResult + public func insertChildren(_ index: Int, _ children: Array)throws->Element { + //Validate.notNull(children, "Children collection to be inserted must not be null.") + var index = index + let currentSize: Int = childNodeSize() + if (index < 0) { index += currentSize + 1} // roll around + try Validate.isTrue(val: index >= 0 && index <= currentSize, msg: "Insert position out of bounds.") + + try addChildren(index, children) + return self + } + + /** + * Create a new element by tag name, and add it as the last child. + * + * @param tagName the name of the tag (e.g. {@code div}). + * @return the new element, to allow you to add content to it, e.g.: + * {@code parent.appendElement("h1").attr("id", "header").text("Welcome")} + */ + @discardableResult + public func appendElement(_ tagName: String)throws->Element { + let child: Element = Element(try Tag.valueOf(tagName), getBaseUri()) + try appendChild(child) + return child + } + + /** + * Create a new element by tag name, and add it as the first child. + * + * @param tagName the name of the tag (e.g. {@code div}). + * @return the new element, to allow you to add content to it, e.g.: + * {@code parent.prependElement("h1").attr("id", "header").text("Welcome")} + */ + @discardableResult + public func prependElement(_ tagName: String)throws->Element { + let child: Element = Element(try Tag.valueOf(tagName), getBaseUri()) + try prependChild(child) + return child + } + + /** + * Create and append a new TextNode to this element. + * + * @param text the unencoded text to add + * @return this element + */ + @discardableResult + public func appendText(_ text: String)throws->Element { + let node: TextNode = TextNode(text, getBaseUri()) + try appendChild(node) + return self + } + + /** + * Create and prepend a new TextNode to this element. + * + * @param text the unencoded text to add + * @return this element + */ + @discardableResult + public func prependText(_ text: String)throws->Element { + let node: TextNode = TextNode(text, getBaseUri()) + try prependChild(node) + return self + } + + /** + * Add inner HTML to this element. The supplied HTML will be parsed, and each node appended to the end of the children. + * @param html HTML to add inside this element, after the existing HTML + * @return this element + * @see #html(String) + */ + @discardableResult + public func append(_ html: String)throws->Element { + let nodes: Array = try Parser.parseFragment(html, self, getBaseUri()) + try addChildren(nodes) + return self + } + + /** + * Add inner HTML into this element. The supplied HTML will be parsed, and each node prepended to the start of the element's children. + * @param html HTML to add inside this element, before the existing HTML + * @return this element + * @see #html(String) + */ + @discardableResult + public func prepend(_ html: String)throws->Element { + let nodes: Array = try Parser.parseFragment(html, self, getBaseUri()) + try addChildren(0, nodes) + return self + } + + /** + * Insert the specified HTML into the DOM before this element (as a preceding sibling). + * + * @param html HTML to add before this element + * @return this element, for chaining + * @see #after(String) + */ + @discardableResult + open override func before(_ html: String)throws->Element { + return try super.before(html) as! Element + } + + /** + * Insert the specified node into the DOM before this node (as a preceding sibling). + * @param node to add before this element + * @return this Element, for chaining + * @see #after(Node) + */ + @discardableResult + open override func before(_ node: Node)throws->Element { + return try super.before(node) as! Element + } + + /** + * Insert the specified HTML into the DOM after this element (as a following sibling). + * + * @param html HTML to add after this element + * @return this element, for chaining + * @see #before(String) + */ + @discardableResult + open override func after(_ html: String)throws->Element { + return try super.after(html) as! Element + } + + /** + * Insert the specified node into the DOM after this node (as a following sibling). + * @param node to add after this element + * @return this element, for chaining + * @see #before(Node) + */ + open override func after(_ node: Node)throws->Element { + return try super.after(node) as! Element + } + + /** + * Remove all of the element's child nodes. Any attributes are left as-is. + * @return this element + */ + @discardableResult + public func empty() -> Element { + childNodes.removeAll() + return self + } + + /** + * Wrap the supplied HTML around this element. + * + * @param html HTML to wrap around this element, e.g. {@code
}. Can be arbitrarily deep. + * @return this element, for chaining. + */ + @discardableResult + open override func wrap(_ html: String)throws->Element { + return try super.wrap(html) as! Element + } + + /** + * Get a CSS selector that will uniquely select this element. + *

+ * If the element has an ID, returns #id; + * otherwise returns the parent (if any) CSS selector, followed by {@literal '>'}, + * followed by a unique selector for the element (tag.class.class:nth-child(n)). + *

+ * + * @return the CSS Path that can be used to retrieve the element in a selector. + */ + public func cssSelector()throws->String { + let elementId = id() + if (elementId.count > 0) { + return "#" + elementId + } + + // Translate HTML namespace ns:tag to CSS namespace syntax ns|tag + let tagName: String = self.tagName().replacingOccurrences(of: ":", with: "|") + var selector: String = tagName + let cl = try classNames() + let classes: String = cl.joined(separator: ".") + if (classes.count > 0) { + selector.append(".") + selector.append(classes) + } + + if (parent() == nil || ((parent() as? Document) != nil)) // don't add Document to selector, as will always have a html node + { + return selector + } + + selector.insert(contentsOf: " > ", at: selector.startIndex) + if (try parent()!.select(selector).array().count > 1) { + selector.append(":nth-child(\(try elementSiblingIndex() + 1))") + } + + return try parent()!.cssSelector() + (selector) + } + + /** + * Get sibling elements. If the element has no sibling elements, returns an empty list. An element is not a sibling + * of itself, so will not be included in the returned list. + * @return sibling elements + */ + public func siblingElements() -> Elements { + if (parentNode == nil) {return Elements()} + + let elements: Array? = parent()?.children().array() + let siblings: Elements = Elements() + if let elements = elements { + for el: Element in elements { + if (el != self) { + siblings.add(el) + } + } + } + return siblings + } + + /** + * Gets the next sibling element of this element. E.g., if a {@code div} contains two {@code p}s, + * the {@code nextElementSibling} of the first {@code p} is the second {@code p}. + *

+ * This is similar to {@link #nextSibling()}, but specifically finds only Elements + *

+ * @return the next element, or null if there is no next element + * @see #previousElementSibling() + */ + public func nextElementSibling()throws->Element? { + if (parentNode == nil) {return nil} + let siblings: Array? = parent()?.children().array() + let index: Int? = try Element.indexInList(self, siblings) + try Validate.notNull(obj: index) + if let siblings = siblings { + if (siblings.count > index!+1) { + return siblings[index!+1] + } else { + return nil} + } + return nil + } + + /** + * Gets the previous element sibling of this element. + * @return the previous element, or null if there is no previous element + * @see #nextElementSibling() + */ + public func previousElementSibling()throws->Element? { + if (parentNode == nil) {return nil} + let siblings: Array? = parent()?.children().array() + let index: Int? = try Element.indexInList(self, siblings) + try Validate.notNull(obj: index) + if (index! > 0) { + return siblings?[index!-1] + } else { + return nil + } + } + + /** + * Gets the first element sibling of this element. + * @return the first sibling that is an element (aka the parent's first element child) + */ + public func firstElementSibling() -> Element? { + // todo: should firstSibling() exclude this? + let siblings: Array? = parent()?.children().array() + return (siblings != nil && siblings!.count > 1) ? siblings![0] : nil + } + + /* + * Get the list index of this element in its element sibling list. I.e. if this is the first element + * sibling, returns 0. + * @return position in element sibling list + */ + public func elementSiblingIndex()throws->Int { + if (parent() == nil) {return 0} + let x = try Element.indexInList(self, parent()?.children().array()) + return x == nil ? 0 : x! + } + + /** + * Gets the last element sibling of this element + * @return the last sibling that is an element (aka the parent's last element child) + */ + public func lastElementSibling() -> Element? { + let siblings: Array? = parent()?.children().array() + return (siblings != nil && siblings!.count > 1) ? siblings![siblings!.count - 1] : nil + } + + private static func indexInList(_ search: Element, _ elements: Array?)throws->Int? { + try Validate.notNull(obj: elements) + if let elements = elements { + for i in 0..Elements { + try Validate.notEmpty(string: tagName) + let tagName = tagName.lowercased().trim() + + return try Collector.collect(Evaluator.Tag(tagName), self) + } + + /** + * Find an element by ID, including or under this element. + *

+ * Note that this finds the first matching ID, starting with this element. If you search down from a different + * starting point, it is possible to find a different element by ID. For unique element by ID within a Document, + * use {@link Document#getElementById(String)} + * @param id The ID to search for. + * @return The first matching element by ID, starting with this element, or null if none found. + */ + public func getElementById(_ id: String)throws->Element? { + try Validate.notEmpty(string: id) + + let elements: Elements = try Collector.collect(Evaluator.Id(id), self) + if (elements.array().count > 0) { + return elements.get(0) + } else { + return nil + } + } + + /** + * Find elements that have this class, including or under this element. Case insensitive. + *

+ * Elements can have multiple classes (e.g. {@code

}. This method + * checks each class, so you can find the above with {@code el.getElementsByClass("header")}. + * + * @param className the name of the class to search for. + * @return elements with the supplied class name, empty if none + * @see #hasClass(String) + * @see #classNames() + */ + public func getElementsByClass(_ className: String)throws->Elements { + try Validate.notEmpty(string: className) + + return try Collector.collect(Evaluator.Class(className), self) + } + + /** + * Find elements that have a named attribute set. Case insensitive. + * + * @param key name of the attribute, e.g. {@code href} + * @return elements that have this attribute, empty if none + */ + public func getElementsByAttribute(_ key: String)throws->Elements { + try Validate.notEmpty(string: key) + let key = key.trim() + + return try Collector.collect(Evaluator.Attribute(key), self) + } + + /** + * Find elements that have an attribute name starting with the supplied prefix. Use {@code data-} to find elements + * that have HTML5 datasets. + * @param keyPrefix name prefix of the attribute e.g. {@code data-} + * @return elements that have attribute names that start with with the prefix, empty if none. + */ + public func getElementsByAttributeStarting(_ keyPrefix: String)throws->Elements { + try Validate.notEmpty(string: keyPrefix) + let keyPrefix = keyPrefix.trim() + + return try Collector.collect(Evaluator.AttributeStarting(keyPrefix), self) + } + + /** + * Find elements that have an attribute with the specific value. Case insensitive. + * + * @param key name of the attribute + * @param value value of the attribute + * @return elements that have this attribute with this value, empty if none + */ + public func getElementsByAttributeValue(_ key: String, _ value: String)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValue(key, value), self) + } + + /** + * Find elements that either do not have this attribute, or have it with a different value. Case insensitive. + * + * @param key name of the attribute + * @param value value of the attribute + * @return elements that do not have a matching attribute + */ + public func getElementsByAttributeValueNot(_ key: String, _ value: String)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValueNot(key, value), self) + } + + /** + * Find elements that have attributes that start with the value prefix. Case insensitive. + * + * @param key name of the attribute + * @param valuePrefix start of attribute value + * @return elements that have attributes that start with the value prefix + */ + public func getElementsByAttributeValueStarting(_ key: String, _ valuePrefix: String)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValueStarting(key, valuePrefix), self) + } + + /** + * Find elements that have attributes that end with the value suffix. Case insensitive. + * + * @param key name of the attribute + * @param valueSuffix end of the attribute value + * @return elements that have attributes that end with the value suffix + */ + public func getElementsByAttributeValueEnding(_ key: String, _ valueSuffix: String)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValueEnding(key, valueSuffix), self) + } + + /** + * Find elements that have attributes whose value contains the match string. Case insensitive. + * + * @param key name of the attribute + * @param match substring of value to search for + * @return elements that have attributes containing this text + */ + public func getElementsByAttributeValueContaining(_ key: String, _ match: String)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValueContaining(key, match), self) + } + + /** + * Find elements that have attributes whose values match the supplied regular expression. + * @param key name of the attribute + * @param pattern compiled regular expression to match against attribute values + * @return elements that have attributes matching this regular expression + */ + public func getElementsByAttributeValueMatching(_ key: String, _ pattern: Pattern)throws->Elements { + return try Collector.collect(Evaluator.AttributeWithValueMatching(key, pattern), self) + + } + + /** + * Find elements that have attributes whose values match the supplied regular expression. + * @param key name of the attribute + * @param regex regular expression to match against attribute values. You can use embedded flags (such as (?i) and (?m) to control regex options. + * @return elements that have attributes matching this regular expression + */ + public func getElementsByAttributeValueMatching(_ key: String, _ regex: String)throws->Elements { + var pattern: Pattern + do { + pattern = Pattern.compile(regex) + try pattern.validate() + } catch { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Pattern syntax error: \(regex)") + } + return try getElementsByAttributeValueMatching(key, pattern) + } + + /** + * Find elements whose sibling index is less than the supplied index. + * @param index 0-based index + * @return elements less than index + */ + public func getElementsByIndexLessThan(_ index: Int)throws->Elements { + return try Collector.collect(Evaluator.IndexLessThan(index), self) + } + + /** + * Find elements whose sibling index is greater than the supplied index. + * @param index 0-based index + * @return elements greater than index + */ + public func getElementsByIndexGreaterThan(_ index: Int)throws->Elements { + return try Collector.collect(Evaluator.IndexGreaterThan(index), self) + } + + /** + * Find elements whose sibling index is equal to the supplied index. + * @param index 0-based index + * @return elements equal to index + */ + public func getElementsByIndexEquals(_ index: Int)throws->Elements { + return try Collector.collect(Evaluator.IndexEquals(index), self) + } + + /** + * Find elements that contain the specified string. The search is case insensitive. The text may appear directly + * in the element, or in any of its descendants. + * @param searchText to look for in the element's text + * @return elements that contain the string, case insensitive. + * @see Element#text() + */ + public func getElementsContainingText(_ searchText: String)throws->Elements { + return try Collector.collect(Evaluator.ContainsText(searchText), self) + } + + /** + * Find elements that directly contain the specified string. The search is case insensitive. The text must appear directly + * in the element, not in any of its descendants. + * @param searchText to look for in the element's own text + * @return elements that contain the string, case insensitive. + * @see Element#ownText() + */ + public func getElementsContainingOwnText(_ searchText: String)throws->Elements { + return try Collector.collect(Evaluator.ContainsOwnText(searchText), self) + } + + /** + * Find elements whose text matches the supplied regular expression. + * @param pattern regular expression to match text against + * @return elements matching the supplied regular expression. + * @see Element#text() + */ + public func getElementsMatchingText(_ pattern: Pattern)throws->Elements { + return try Collector.collect(Evaluator.Matches(pattern), self) + } + + /** + * Find elements whose text matches the supplied regular expression. + * @param regex regular expression to match text against. You can use embedded flags (such as (?i) and (?m) to control regex options. + * @return elements matching the supplied regular expression. + * @see Element#text() + */ + public func getElementsMatchingText(_ regex: String)throws->Elements { + let pattern: Pattern + do { + pattern = Pattern.compile(regex) + try pattern.validate() + } catch { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Pattern syntax error: \(regex)") + } + return try getElementsMatchingText(pattern) + } + + /** + * Find elements whose own text matches the supplied regular expression. + * @param pattern regular expression to match text against + * @return elements matching the supplied regular expression. + * @see Element#ownText() + */ + public func getElementsMatchingOwnText(_ pattern: Pattern)throws->Elements { + return try Collector.collect(Evaluator.MatchesOwn(pattern), self) + } + + /** + * Find elements whose text matches the supplied regular expression. + * @param regex regular expression to match text against. You can use embedded flags (such as (?i) and (?m) to control regex options. + * @return elements matching the supplied regular expression. + * @see Element#ownText() + */ + public func getElementsMatchingOwnText(_ regex: String)throws->Elements { + let pattern: Pattern + do { + pattern = Pattern.compile(regex) + try pattern.validate() + } catch { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Pattern syntax error: \(regex)") + } + return try getElementsMatchingOwnText(pattern) + } + + /** + * Find all elements under this element (including self, and children of children). + * + * @return all elements + */ + public func getAllElements()throws->Elements { + return try Collector.collect(Evaluator.AllElements(), self) + } + + /** + * Gets the combined text of this element and all its children. Whitespace is normalized and trimmed. + *

+ * For example, given HTML {@code

Hello there now!

}, {@code p.text()} returns {@code "Hello there now!"} + * + * @return unencoded text, or empty string if none. + * @see #ownText() + * @see #textNodes() + */ + class textNodeVisitor: NodeVisitor { + let accum: StringBuilder + let trimAndNormaliseWhitespace: Bool + init(_ accum: StringBuilder, trimAndNormaliseWhitespace: Bool) { + self.accum = accum + self.trimAndNormaliseWhitespace = trimAndNormaliseWhitespace + } + public func head(_ node: Node, _ depth: Int) { + if let textNode = (node as? TextNode) { + if trimAndNormaliseWhitespace { + Element.appendNormalisedText(accum, textNode) + } else { + accum.append(textNode.getWholeText()) + } + } else if let element = (node as? Element) { + if !accum.isEmpty && + (element.isBlock() || element._tag.getName() == "br") && + !TextNode.lastCharIsWhitespace(accum) { + accum.append(" ") + } + } + } + + public func tail(_ node: Node, _ depth: Int) { + } + } + public func text(trimAndNormaliseWhitespace: Bool = true)throws->String { + let accum: StringBuilder = StringBuilder() + try NodeTraversor(textNodeVisitor(accum, trimAndNormaliseWhitespace: trimAndNormaliseWhitespace)).traverse(self) + let text = accum.toString() + if trimAndNormaliseWhitespace { + return text.trim() + } + return text + } + + /** + * Gets the text owned by this element only; does not get the combined text of all children. + *

+ * For example, given HTML {@code

Hello there now!

}, {@code p.ownText()} returns {@code "Hello now!"}, + * whereas {@code p.text()} returns {@code "Hello there now!"}. + * Note that the text within the {@code b} element is not returned, as it is not a direct child of the {@code p} element. + * + * @return unencoded text, or empty string if none. + * @see #text() + * @see #textNodes() + */ + public func ownText() -> String { + let sb: StringBuilder = StringBuilder() + ownText(sb) + return sb.toString().trim() + } + + private func ownText(_ accum: StringBuilder) { + for child: Node in childNodes { + if let textNode = (child as? TextNode) { + Element.appendNormalisedText(accum, textNode) + } else if let child = (child as? Element) { + Element.appendWhitespaceIfBr(child, accum) + } + } + } + + private static func appendNormalisedText(_ accum: StringBuilder, _ textNode: TextNode) { + let text: String = textNode.getWholeText() + + if (Element.preserveWhitespace(textNode.parentNode)) { + accum.append(text) + } else { + StringUtil.appendNormalisedWhitespace(accum, string: text, stripLeading: TextNode.lastCharIsWhitespace(accum)) + } + } + + private static func appendWhitespaceIfBr(_ element: Element, _ accum: StringBuilder) { + if (element._tag.getName() == "br" && !TextNode.lastCharIsWhitespace(accum)) { + accum.append(" ") + } + } + + static func preserveWhitespace(_ node: Node?) -> Bool { + // looks only at this element and one level up, to prevent recursion & needless stack searches + if let element = (node as? Element) { + return element._tag.preserveWhitespace() || element.parent() != nil && element.parent()!._tag.preserveWhitespace() + } + return false + } + + /** + * Set the text of this element. Any existing contents (text or elements) will be cleared + * @param text unencoded text + * @return this element + */ + @discardableResult + public func text(_ text: String)throws->Element { + empty() + let textNode: TextNode = TextNode(text, baseUri) + try appendChild(textNode) + return self + } + + /** + Test if this element has any text content (that is not just whitespace). + @return true if element has non-blank text content. + */ + public func hasText() -> Bool { + for child: Node in childNodes { + if let textNode = (child as? TextNode) { + if (!textNode.isBlank()) { + return true + } + } else if let el = (child as? Element) { + if (el.hasText()) { + return true + } + } + } + return false + } + + /** + * Get the combined data of this element. Data is e.g. the inside of a {@code script} tag. + * @return the data, or empty string if none + * + * @see #dataNodes() + */ + public func data() -> String { + let sb: StringBuilder = StringBuilder() + + for childNode: Node in childNodes { + if let data = (childNode as? DataNode) { + sb.append(data.getWholeData()) + } else if let element = (childNode as? Element) { + let elementData: String = element.data() + sb.append(elementData) + } + } + return sb.toString() + } + + /** + * Gets the literal value of this element's "class" attribute, which may include multiple class names, space + * separated. (E.g. on <div class="header gray"> returns, "header gray") + * @return The literal class attribute, or empty string if no class attribute set. + */ + public func className()throws->String { + return try attr(Element.classString).trim() + } + + /** + * Get all of the element's class names. E.g. on element {@code
}, + * returns a set of two elements {@code "header", "gray"}. Note that modifications to this set are not pushed to + * the backing {@code class} attribute; use the {@link #classNames(java.util.Set)} method to persist them. + * @return set of classnames, empty if no class attribute + */ + public func classNames()throws->OrderedSet { + let fitted = try className().replaceAll(of: Element.classSplit, with: " ", options: .caseInsensitive) + let names: [String] = fitted.components(separatedBy: " ") + let classNames: OrderedSet = OrderedSet(sequence: names) + classNames.remove(Element.emptyString) // if classNames() was empty, would include an empty class + return classNames + } + + /** + Set the element's {@code class} attribute to the supplied class names. + @param classNames set of classes + @return this element, for chaining + */ + @discardableResult + public func classNames(_ classNames: OrderedSet)throws->Element { + try attributes?.put(Element.classString, StringUtil.join(classNames, sep: " ")) + return self + } + + /** + * Tests if this element has a class. Case insensitive. + * @param className name of class to check for + * @return true if it does, false if not + */ + // performance sensitive + public func hasClass(_ className: String) -> Bool { + let classAtt: String? = attributes?.get(key: Element.classString) + let len: Int = (classAtt != nil) ? classAtt!.count : 0 + let wantLen: Int = className.count + + if (len == 0 || len < wantLen) { + return false + } + let classAttr = classAtt! + + // if both lengths are equal, only need compare the className with the attribute + if (len == wantLen) { + return className.equalsIgnoreCase(string: classAttr) + } + + // otherwise, scan for whitespace and compare regions (with no string or arraylist allocations) + var inClass: Bool = false + var start: Int = 0 + for i in 0..Element { + let classes: OrderedSet = try classNames() + classes.append(className) + try classNames(classes) + return self + } + + /** + Remove a class name from this element's {@code class} attribute. + @param className class name to remove + @return this element + */ + @discardableResult + public func removeClass(_ className: String)throws->Element { + let classes: OrderedSet = try classNames() + classes.remove(className) + try classNames(classes) + return self + } + + /** + Toggle a class name on this element's {@code class} attribute: if present, remove it; otherwise add it. + @param className class name to toggle + @return this element + */ + @discardableResult + public func toggleClass(_ className: String)throws->Element { + let classes: OrderedSet = try classNames() + if (classes.contains(className)) {classes.remove(className) + } else { + classes.append(className) + } + try classNames(classes) + + return self + } + + /** + * Get the value of a form element (input, textarea, etc). + * @return the value of the form element, or empty string if not set. + */ + public func val()throws->String { + if (tagName()=="textarea") { + return try text() + } else { + return try attr("value") + } + } + + /** + * Set the value of a form element (input, textarea, etc). + * @param value value to set + * @return this element (for chaining) + */ + @discardableResult + public func val(_ value: String)throws->Element { + if (tagName() == "textarea") { + try text(value) + } else { + try attr("value", value) + } + return self + } + + override func outerHtmlHead(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings)throws { + if (out.prettyPrint() && (_tag.formatAsBlock() || (parent() != nil && parent()!.tag().formatAsBlock()) || out.outline())) { + if !accum.isEmpty { + indent(accum, depth, out) + } + } + accum + .append("<") + .append(tagName()) + try attributes?.html(accum: accum, out: out) + + // selfclosing includes unknown tags, isEmpty defines tags that are always empty + if (childNodes.isEmpty && _tag.isSelfClosing()) { + if (out.syntax() == OutputSettings.Syntax.html && _tag.isEmpty()) { + accum.append(">") + } else { + accum.append(" />") // in html, in xml + } + } else { + accum.append(">") + } + } + + override func outerHtmlTail(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) { + if (!(childNodes.isEmpty && _tag.isSelfClosing())) { + if (out.prettyPrint() && (!childNodes.isEmpty && ( + _tag.formatAsBlock() || (out.outline() && (childNodes.count>1 || (childNodes.count==1 && !(((childNodes[0] as? TextNode) != nil))))) + ))) { + indent(accum, depth, out) + } + accum.append("") + } + } + + /** + * Retrieves the element's inner HTML. E.g. on a {@code
} with one empty {@code

}, would return + * {@code

}. (Whereas {@link #outerHtml()} would return {@code

}.) + * + * @return String of HTML. + * @see #outerHtml() + */ + public func html()throws->String { + let accum: StringBuilder = StringBuilder() + try html2(accum) + return getOutputSettings().prettyPrint() ? accum.toString().trim() : accum.toString() + } + + private func html2(_ accum: StringBuilder)throws { + for node in childNodes { + try node.outerHtml(accum) + } + } + + /** + * {@inheritDoc} + */ + open override func html(_ appendable: StringBuilder)throws->StringBuilder { + for node in childNodes { + try node.outerHtml(appendable) + } + return appendable + } + + /** + * Set this element's inner HTML. Clears the existing HTML first. + * @param html HTML to parse and set into this element + * @return this element + * @see #append(String) + */ + @discardableResult + public func html(_ html: String)throws->Element { + empty() + try append(html) + return self + } + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = Element(_tag, baseUri!, attributes!) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = Element(_tag, baseUri!, attributes!) + return copy(clone: clone, parent: parent) + } + public override func copy(clone: Node, parent: Node?) -> Node { + return super.copy(clone: clone, parent: parent) + } + + public static func ==(lhs: Element, rhs: Element) -> Bool { + guard lhs as Node == rhs as Node else { + return false + } + + return lhs._tag == rhs._tag + } + + override public func hash(into hasher: inout Hasher) { + super.hash(into: &hasher) + hasher.combine(_tag) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Elements.swift b/Swiftgram/SwiftSoup/Sources/Elements.swift new file mode 100644 index 00000000000..b8e3852f12d --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Elements.swift @@ -0,0 +1,657 @@ +// +// Elements.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 20/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// +/** +A list of {@link Element}s, with methods that act on every element in the list. +

+To get an {@code Elements} object, use the {@link Element#select(String)} method. +

+*/ + +import Foundation + +//open typealias Elements = Array +//typealias E = Element +open class Elements: NSCopying { + fileprivate var this: Array = Array() + + ///base init + public init() { + } + ///Initialized with an array + public init(_ a: Array) { + this = a + } + ///Initialized with an order set + public init(_ a: OrderedSet) { + this.append(contentsOf: a) + } + + /** + * Creates a deep copy of these elements. + * @return a deep copy + */ + public func copy(with zone: NSZone? = nil) -> Any { + let clone: Elements = Elements() + for e: Element in this { + clone.add(e.copy() as! Element) + } + return clone + } + + // attribute methods + /** + Get an attribute value from the first matched element that has the attribute. + @param attributeKey The attribute key. + @return The attribute value from the first matched element that has the attribute.. If no elements were matched (isEmpty() == true), + or if the no elements have the attribute, returns empty string. + @see #hasAttr(String) + */ + open func attr(_ attributeKey: String)throws->String { + for element in this { + if (element.hasAttr(attributeKey)) { + return try element.attr(attributeKey) + } + } + return "" + } + + /** + Checks if any of the matched elements have this attribute set. + @param attributeKey attribute key + @return true if any of the elements have the attribute; false if none do. + */ + open func hasAttr(_ attributeKey: String) -> Bool { + for element in this { + if element.hasAttr(attributeKey) {return true} + } + return false + } + + /** + * Set an attribute on all matched elements. + * @param attributeKey attribute key + * @param attributeValue attribute value + * @return this + */ + @discardableResult + open func attr(_ attributeKey: String, _ attributeValue: String)throws->Elements { + for element in this { + try element.attr(attributeKey, attributeValue) + } + return self + } + + /** + * Remove an attribute from every matched element. + * @param attributeKey The attribute to remove. + * @return this (for chaining) + */ + @discardableResult + open func removeAttr(_ attributeKey: String)throws->Elements { + for element in this { + try element.removeAttr(attributeKey) + } + return self + } + + /** + Add the class name to every matched element's {@code class} attribute. + @param className class name to add + @return this + */ + @discardableResult + open func addClass(_ className: String)throws->Elements { + for element in this { + try element.addClass(className) + } + return self + } + + /** + Remove the class name from every matched element's {@code class} attribute, if present. + @param className class name to remove + @return this + */ + @discardableResult + open func removeClass(_ className: String)throws->Elements { + for element: Element in this { + try element.removeClass(className) + } + return self + } + + /** + Toggle the class name on every matched element's {@code class} attribute. + @param className class name to add if missing, or remove if present, from every element. + @return this + */ + @discardableResult + open func toggleClass(_ className: String)throws->Elements { + for element: Element in this { + try element.toggleClass(className) + } + return self + } + + /** + Determine if any of the matched elements have this class name set in their {@code class} attribute. + @param className class name to check for + @return true if any do, false if none do + */ + + open func hasClass(_ className: String) -> Bool { + for element: Element in this { + if (element.hasClass(className)) { + return true + } + } + return false + } + + /** + * Get the form element's value of the first matched element. + * @return The form element's value, or empty if not set. + * @see Element#val() + */ + open func val()throws->String { + if (size() > 0) { + return try first()!.val() + } + return "" + } + + /** + * Set the form element's value in each of the matched elements. + * @param value The value to set into each matched element + * @return this (for chaining) + */ + @discardableResult + open func val(_ value: String)throws->Elements { + for element: Element in this { + try element.val(value) + } + return self + } + + /** + * Get the combined text of all the matched elements. + *

+ * Note that it is possible to get repeats if the matched elements contain both parent elements and their own + * children, as the Element.text() method returns the combined text of a parent and all its children. + * @return string of all text: unescaped and no HTML. + * @see Element#text() + */ + open func text(trimAndNormaliseWhitespace: Bool = true)throws->String { + let sb: StringBuilder = StringBuilder() + for element: Element in this { + if !sb.isEmpty { + sb.append(" ") + } + sb.append(try element.text(trimAndNormaliseWhitespace: trimAndNormaliseWhitespace)) + } + return sb.toString() + } + + /// Check if an element has text + open func hasText() -> Bool { + for element: Element in this { + if (element.hasText()) { + return true + } + } + return false + } + + /** + * Get the text content of each of the matched elements. If an element has no text, then it is not included in the + * result. + * @return A list of each matched element's text content. + * @see Element#text() + * @see Element#hasText() + * @see #text() + */ + public func eachText()throws->Array { + var texts: Array = Array() + for el: Element in this { + if (el.hasText()){ + texts.append(try el.text()) + } + } + return texts; + } + + /** + * Get the combined inner HTML of all matched elements. + * @return string of all element's inner HTML. + * @see #text() + * @see #outerHtml() + */ + open func html()throws->String { + let sb: StringBuilder = StringBuilder() + for element: Element in this { + if !sb.isEmpty { + sb.append("\n") + } + sb.append(try element.html()) + } + return sb.toString() + } + + /** + * Get the combined outer HTML of all matched elements. + * @return string of all element's outer HTML. + * @see #text() + * @see #html() + */ + open func outerHtml()throws->String { + let sb: StringBuilder = StringBuilder() + for element in this { + if !sb.isEmpty { + sb.append("\n") + } + sb.append(try element.outerHtml()) + } + return sb.toString() + } + + /** + * Get the combined outer HTML of all matched elements. Alias of {@link #outerHtml()}. + * @return string of all element's outer HTML. + * @see #text() + * @see #html() + */ + + open func toString()throws->String { + return try outerHtml() + } + + /** + * Update the tag name of each matched element. For example, to change each {@code } to a {@code }, do + * {@code doc.select("i").tagName("em");} + * @param tagName the new tag name + * @return this, for chaining + * @see Element#tagName(String) + */ + @discardableResult + open func tagName(_ tagName: String)throws->Elements { + for element: Element in this { + try element.tagName(tagName) + } + return self + } + + /** + * Set the inner HTML of each matched element. + * @param html HTML to parse and set into each matched element. + * @return this, for chaining + * @see Element#html(String) + */ + @discardableResult + open func html(_ html: String)throws->Elements { + for element: Element in this { + try element.html(html) + } + return self + } + + /** + * Add the supplied HTML to the start of each matched element's inner HTML. + * @param html HTML to add inside each element, before the existing HTML + * @return this, for chaining + * @see Element#prepend(String) + */ + @discardableResult + open func prepend(_ html: String)throws->Elements { + for element: Element in this { + try element.prepend(html) + } + return self + } + + /** + * Add the supplied HTML to the end of each matched element's inner HTML. + * @param html HTML to add inside each element, after the existing HTML + * @return this, for chaining + * @see Element#append(String) + */ + @discardableResult + open func append(_ html: String)throws->Elements { + for element: Element in this { + try element.append(html) + } + return self + } + + /** + * Insert the supplied HTML before each matched element's outer HTML. + * @param html HTML to insert before each element + * @return this, for chaining + * @see Element#before(String) + */ + @discardableResult + open func before(_ html: String)throws->Elements { + for element: Element in this { + try element.before(html) + } + return self + } + + /** + * Insert the supplied HTML after each matched element's outer HTML. + * @param html HTML to insert after each element + * @return this, for chaining + * @see Element#after(String) + */ + @discardableResult + open func after(_ html: String)throws->Elements { + for element: Element in this { + try element.after(html) + } + return self + } + + /** + Wrap the supplied HTML around each matched elements. For example, with HTML + {@code

This is SwiftSoup

}, + doc.select("b").wrap("<i></i>"); + becomes {@code

This is SwiftSoup

} + @param html HTML to wrap around each element, e.g. {@code
}. Can be arbitrarily deep. + @return this (for chaining) + @see Element#wrap + */ + @discardableResult + open func wrap(_ html: String)throws->Elements { + try Validate.notEmpty(string: html) + for element: Element in this { + try element.wrap(html) + } + return self + } + + /** + * Removes the matched elements from the DOM, and moves their children up into their parents. This has the effect of + * dropping the elements but keeping their children. + *

+ * This is useful for e.g removing unwanted formatting elements but keeping their contents. + *

+ * + * E.g. with HTML:

{@code

One Two
}

+ *

{@code doc.select("font").unwrap();}

+ *

HTML = {@code

One Two
}

+ * + * @return this (for chaining) + * @see Node#unwrap + */ + @discardableResult + open func unwrap()throws->Elements { + for element: Element in this { + try element.unwrap() + } + return self + } + + /** + * Empty (remove all child nodes from) each matched element. This is similar to setting the inner HTML of each + * element to nothing. + *

+ * E.g. HTML: {@code

Hello there

now

}
+ * doc.select("p").empty();
+ * HTML = {@code

} + * @return this, for chaining + * @see Element#empty() + * @see #remove() + */ + @discardableResult + open func empty() -> Elements { + for element: Element in this { + element.empty() + } + return self + } + + /** + * Remove each matched element from the DOM. This is similar to setting the outer HTML of each element to nothing. + *

+ * E.g. HTML: {@code

Hello

there

}
+ * doc.select("p").remove();
+ * HTML = {@code
} + *

+ * Note that this method should not be used to clean user-submitted HTML; rather, use {@link Cleaner} to clean HTML. + * @return this, for chaining + * @see Element#empty() + * @see #empty() + */ + @discardableResult + open func remove()throws->Elements { + for element in this { + try element.remove() + } + return self + } + + // filters + + /** + * Find matching elements within this element list. + * @param query A {@link CssSelector} query + * @return the filtered list of elements, or an empty list if none match. + */ + open func select(_ query: String)throws->Elements { + return try CssSelector.select(query, this) + } + + /** + * Remove elements from this list that match the {@link CssSelector} query. + *

+ * E.g. HTML: {@code

Two
}
+ * Elements divs = doc.select("div").not(".logo");
+ * Result: {@code divs: [
Two
]} + *

+ * @param query the selector query whose results should be removed from these elements + * @return a new elements list that contains only the filtered results + */ + open func not(_ query: String)throws->Elements { + let out: Elements = try CssSelector.select(query, this) + return CssSelector.filterOut(this, out.this) + } + + /** + * Get the nth matched element as an Elements object. + *

+ * See also {@link #get(int)} to retrieve an Element. + * @param index the (zero-based) index of the element in the list to retain + * @return Elements containing only the specified element, or, if that element did not exist, an empty list. + */ + open func eq(_ index: Int) -> Elements { + return size() > index ? Elements([get(index)]) : Elements() + } + + /** + * Test if any of the matched elements match the supplied query. + * @param query A selector + * @return true if at least one element in the list matches the query. + */ + open func iS(_ query: String)throws->Bool { + let eval: Evaluator = try QueryParser.parse(query) + for e: Element in this { + if (try e.iS(eval)) { + return true + } + } + return false + + } + + /** + * Get all of the parents and ancestor elements of the matched elements. + * @return all of the parents and ancestor elements of the matched elements + */ + + open func parents() -> Elements { + let combo: OrderedSet = OrderedSet() + for e: Element in this { + combo.append(contentsOf: e.parents().array()) + } + return Elements(combo) + } + + // list-like methods + /** + Get the first matched element. + @return The first matched element, or null if contents is empty. + */ + open func first() -> Element? { + return isEmpty() ? nil : get(0) + } + + /// Check if no element stored + open func isEmpty() -> Bool { + return array().count == 0 + } + + /// Count + open func size() -> Int { + return array().count + } + + /** + Get the last matched element. + @return The last matched element, or null if contents is empty. + */ + open func last() -> Element? { + return isEmpty() ? nil : get(size() - 1) + } + + /** + * Perform a depth-first traversal on each of the selected elements. + * @param nodeVisitor the visitor callbacks to perform on each node + * @return this, for chaining + */ + @discardableResult + open func traverse(_ nodeVisitor: NodeVisitor)throws->Elements { + let traversor: NodeTraversor = NodeTraversor(nodeVisitor) + for el: Element in this { + try traversor.traverse(el) + } + return self + } + + /** + * Get the {@link FormElement} forms from the selected elements, if any. + * @return a list of {@link FormElement}s pulled from the matched elements. The list will be empty if the elements contain + * no forms. + */ + open func forms()->Array { + var forms: Array = Array() + for el: Element in this { + if let el = el as? FormElement { + forms.append(el) + } + } + return forms + } + + /** + * Appends the specified element to the end of this list. + * + * @param e element to be appended to this list + * @return true (as specified by {@link Collection#add}) + */ + open func add(_ e: Element) { + this.append(e) + } + + /** + * Insert the specified element at index. + */ + open func add(_ index: Int, _ element: Element) { + this.insert(element, at: index) + } + + /// Return element at index + open func get(_ i: Int) -> Element { + return this[i] + } + + /// Returns all elements + open func array()->Array { + return this + } +} + +/** +* Elements extension Equatable. +*/ +extension Elements: Equatable { + /// Returns a Boolean value indicating whether two values are equal. + /// + /// Equality is the inverse of inequality. For any values `a` and `b`, + /// `a == b` implies that `a != b` is `false`. + /// + /// - Parameters: + /// - lhs: A value to compare. + /// - rhs: Another value to compare. + public static func ==(lhs: Elements, rhs: Elements) -> Bool { + return lhs.this == rhs.this + } +} + +/** +* Elements RandomAccessCollection +*/ +extension Elements: RandomAccessCollection { + public subscript(position: Int) -> Element { + return this[position] + } + + public var startIndex: Int { + return this.startIndex + } + + public var endIndex: Int { + return this.endIndex + } + + /// The number of Element objects in the collection. + /// Equivalent to `size()` + public var count: Int { + return this.count + } +} + +/** +* Elements IteratorProtocol. +*/ +public struct ElementsIterator: IteratorProtocol { + /// Elements reference + let elements: Elements + //current element index + var index = 0 + + /// Initializer + init(_ countdown: Elements) { + self.elements = countdown + } + + /// Advances to the next element and returns it, or `nil` if no next element + mutating public func next() -> Element? { + let result = index < elements.size() ? elements.get(index) : nil + index += 1 + return result + } +} + +/** +* Elements Extension Sequence. +*/ +extension Elements: Sequence { + /// Returns an iterator over the elements of this sequence. + public func makeIterator() -> ElementsIterator { + return ElementsIterator(self) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Entities.swift b/Swiftgram/SwiftSoup/Sources/Entities.swift new file mode 100644 index 00000000000..b513301c27e --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Entities.swift @@ -0,0 +1,338 @@ +// +// Entities.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * HTML entities, and escape routines. + * Source: W3C HTML + * named character references. + */ +public class Entities { + private static let empty = -1 + private static let emptyName = "" + private static let codepointRadix: Int = 36 + + public class EscapeMode: Equatable { + + /** Restricted entities suitable for XHTML output: lt, gt, amp, and quot only. */ + public static let xhtml: EscapeMode = EscapeMode(string: Entities.xhtml, size: 4, id: 0) + /** Default HTML output entities. */ + public static let base: EscapeMode = EscapeMode(string: Entities.base, size: 106, id: 1) + /** Complete HTML entities. */ + public static let extended: EscapeMode = EscapeMode(string: Entities.full, size: 2125, id: 2) + + fileprivate let value: Int + + struct NamedCodepoint { + let scalar: UnicodeScalar + let name: String + } + + // Array of named references, sorted by name for binary search. built by BuildEntities. + // The few entities that map to a multi-codepoint sequence go into multipoints. + fileprivate var entitiesByName: [NamedCodepoint] = [] + + // Array of entities in first-codepoint order. We don't currently support + // multicodepoints to single named value currently. Lazy because this index + // is used only when generating HTML text. + fileprivate lazy var entitiesByCodepoint = entitiesByName.sorted() { a, b in a.scalar < b.scalar } + + public static func == (left: EscapeMode, right: EscapeMode) -> Bool { + return left.value == right.value + } + + static func != (left: EscapeMode, right: EscapeMode) -> Bool { + return left.value != right.value + } + + private static let codeDelims: [UnicodeScalar] = [",", ";"] + + init(string: String, size: Int, id: Int) { + + value = id + let reader: CharacterReader = CharacterReader(string) + + entitiesByName.reserveCapacity(size) + while !reader.isEmpty() { + let name: String = reader.consumeTo("=") + reader.advance() + let cp1: Int = Int(reader.consumeToAny(EscapeMode.codeDelims), radix: codepointRadix) ?? 0 + let codeDelim: UnicodeScalar = reader.current() + reader.advance() + let cp2: Int + if (codeDelim == ",") { + cp2 = Int(reader.consumeTo(";"), radix: codepointRadix) ?? 0 + reader.advance() + } else { + cp2 = empty + } + let _ = Int(reader.consumeTo("\n"), radix: codepointRadix) ?? 0 + reader.advance() + + entitiesByName.append(NamedCodepoint(scalar: UnicodeScalar(cp1)!, name: name)) + + if (cp2 != empty) { + multipointsLock.lock() + multipoints[name] = [UnicodeScalar(cp1)!, UnicodeScalar(cp2)!] + multipointsLock.unlock() + } + } + // Entities should start in name order, but better safe than sorry... + entitiesByName.sort() { a, b in a.name < b.name } + } + + // Only returns the first of potentially multiple codepoints + public func codepointForName(_ name: String) -> UnicodeScalar? { + let ix = entitiesByName.binarySearch { $0.name < name } + guard ix < entitiesByName.endIndex else { return nil } + let entity = entitiesByName[ix] + guard entity.name == name else { return nil } + return entity.scalar + } + + // Search by first codepoint only + public func nameForCodepoint(_ codepoint: UnicodeScalar ) -> String? { + var ix = entitiesByCodepoint.binarySearch { $0.scalar < codepoint } + var matches: [String] = [] + while ix < entitiesByCodepoint.endIndex && entitiesByCodepoint[ix].scalar == codepoint { + matches.append(entitiesByCodepoint[ix].name) + ix = entitiesByCodepoint.index(after: ix) + } + return matches.isEmpty ? nil : matches.sorted().last! + } + + private func size() -> Int { + return entitiesByName.count + } + + } + + private static var multipoints: [String: [UnicodeScalar]] = [:] // name -> multiple character references + private static var multipointsLock = MutexLock() + + /** + * Check if the input is a known named entity + * @param name the possible entity name (e.g. "lt" or "amp") + * @return true if a known named entity + */ + public static func isNamedEntity(_ name: String ) -> Bool { + return (EscapeMode.extended.codepointForName(name) != nil) + } + + /** + * Check if the input is a known named entity in the base entity set. + * @param name the possible entity name (e.g. "lt" or "amp") + * @return true if a known named entity in the base set + * @see #isNamedEntity(String) + */ + public static func isBaseNamedEntity(_ name: String) -> Bool { + return EscapeMode.base.codepointForName(name) != nil + } + + /** + * Get the character(s) represented by the named entitiy + * @param name entity (e.g. "lt" or "amp") + * @return the string value of the character(s) represented by this entity, or "" if not defined + */ + public static func getByName(name: String) -> String? { + if let scalars = codepointsForName(name) { + return String(String.UnicodeScalarView(scalars)) + } + return nil + } + + public static func codepointsForName(_ name: String) -> [UnicodeScalar]? { + multipointsLock.lock() + if let scalars = multipoints[name] { + multipointsLock.unlock() + return scalars + } + multipointsLock.unlock() + + if let scalar = EscapeMode.extended.codepointForName(name) { + return [scalar] + } + return nil + } + + public static func escape(_ string: String, _ encode: String.Encoding = .utf8 ) -> String { + return Entities.escape(string, OutputSettings().charset(encode).escapeMode(Entities.EscapeMode.extended)) + } + + public static func escape(_ string: String, _ out: OutputSettings) -> String { + let accum = StringBuilder()//string.characters.count * 2 + escape(accum, string, out, false, false, false) + // try { + // + // } catch (IOException e) { + // throw new SerializationException(e) // doesn't happen + // } + return accum.toString() + } + + // this method is ugly, and does a lot. but other breakups cause rescanning and stringbuilder generations + static func escape(_ accum: StringBuilder, _ string: String, _ out: OutputSettings, _ inAttribute: Bool, _ normaliseWhite: Bool, _ stripLeadingWhite: Bool ) { + var lastWasWhite = false + var reachedNonWhite = false + let escapeMode: EscapeMode = out.escapeMode() + let encoder: String.Encoding = out.encoder() + //let length = UInt32(string.characters.count) + + var codePoint: UnicodeScalar + for ch in string.unicodeScalars { + codePoint = ch + + if (normaliseWhite) { + if (codePoint.isWhitespace) { + if ((stripLeadingWhite && !reachedNonWhite) || lastWasWhite) { + continue + } + accum.append(UnicodeScalar.Space) + lastWasWhite = true + continue + } else { + lastWasWhite = false + reachedNonWhite = true + } + } + + // surrogate pairs, split implementation for efficiency on single char common case (saves creating strings, char[]): + if (codePoint.value < Character.MIN_SUPPLEMENTARY_CODE_POINT) { + let c = codePoint + // html specific and required escapes: + switch (codePoint) { + case UnicodeScalar.Ampersand: + accum.append("&") + break + case UnicodeScalar(UInt32(0xA0))!: + if (escapeMode != EscapeMode.xhtml) { + accum.append(" ") + } else { + accum.append(" ") + } + break + case UnicodeScalar.LessThan: + // escape when in character data or when in a xml attribue val; not needed in html attr val + if (!inAttribute || escapeMode == EscapeMode.xhtml) { + accum.append("<") + } else { + accum.append(c) + } + break + case UnicodeScalar.GreaterThan: + if (!inAttribute) { + accum.append(">") + } else { + accum.append(c)} + break + case "\"": + if (inAttribute) { + accum.append(""") + } else { + accum.append(c) + } + break + default: + if (canEncode(c, encoder)) { + accum.append(c) + } else { + appendEncoded(accum: accum, escapeMode: escapeMode, codePoint: codePoint) + } + } + } else { + if (encoder.canEncode(String(codePoint))) // uses fallback encoder for simplicity + { + accum.append(String(codePoint)) + } else { + appendEncoded(accum: accum, escapeMode: escapeMode, codePoint: codePoint) + } + } + } + } + + private static func appendEncoded(accum: StringBuilder, escapeMode: EscapeMode, codePoint: UnicodeScalar) { + if let name = escapeMode.nameForCodepoint(codePoint) { + // ok for identity check + accum.append(UnicodeScalar.Ampersand).append(name).append(";") + } else { + accum.append("&#x").append(String.toHexString(n: Int(codePoint.value)) ).append(";") + } + } + + public static func unescape(_ string: String)throws-> String { + return try unescape(string: string, strict: false) + } + + /** + * Unescape the input string. + * @param string to un-HTML-escape + * @param strict if "strict" (that is, requires trailing ';' char, otherwise that's optional) + * @return unescaped string + */ + public static func unescape(string: String, strict: Bool)throws -> String { + return try Parser.unescapeEntities(string, strict) + } + + /* + * Provides a fast-path for Encoder.canEncode, which drastically improves performance on Android post JellyBean. + * After KitKat, the implementation of canEncode degrades to the point of being useless. For non ASCII or UTF, + * performance may be bad. We can add more encoders for common character sets that are impacted by performance + * issues on Android if required. + * + * Benchmarks: * + * OLD toHtml() impl v New (fastpath) in millis + * Wiki: 1895, 16 + * CNN: 6378, 55 + * Alterslash: 3013, 28 + * Jsoup: 167, 2 + */ + private static func canEncode(_ c: UnicodeScalar, _ fallback: String.Encoding) -> Bool { + // todo add more charset tests if impacted by Android's bad perf in canEncode + switch (fallback) { + case String.Encoding.ascii: + return c.value < 0x80 + case String.Encoding.utf8: + return true // real is:!(Character.isLowSurrogate(c) || Character.isHighSurrogate(c)) - but already check above + default: + return fallback.canEncode(String(Character(c))) + } + } + + static let xhtml: String = "amp=12;1\ngt=1q;3\nlt=1o;2\nquot=y;0" + + static let base: String = "AElig=5i;1c\nAMP=12;2\nAacute=5d;17\nAcirc=5e;18\nAgrave=5c;16\nAring=5h;1b\nAtilde=5f;19\nAuml=5g;1a\nCOPY=4p;h\nCcedil=5j;1d\nETH=5s;1m\nEacute=5l;1f\nEcirc=5m;1g\nEgrave=5k;1e\nEuml=5n;1h\nGT=1q;6\nIacute=5p;1j\nIcirc=5q;1k\nIgrave=5o;1i\nIuml=5r;1l\nLT=1o;4\nNtilde=5t;1n\nOacute=5v;1p\nOcirc=5w;1q\nOgrave=5u;1o\nOslash=60;1u\nOtilde=5x;1r\nOuml=5y;1s\nQUOT=y;0\nREG=4u;n\nTHORN=66;20\nUacute=62;1w\nUcirc=63;1x\nUgrave=61;1v\nUuml=64;1y\nYacute=65;1z\naacute=69;23\nacirc=6a;24\nacute=50;u\naelig=6e;28\nagrave=68;22\namp=12;3\naring=6d;27\natilde=6b;25\nauml=6c;26\nbrvbar=4m;e\nccedil=6f;29\ncedil=54;y\ncent=4i;a\ncopy=4p;i\ncurren=4k;c\ndeg=4w;q\ndivide=6v;2p\neacute=6h;2b\necirc=6i;2c\negrave=6g;2a\neth=6o;2i\neuml=6j;2d\nfrac12=59;13\nfrac14=58;12\nfrac34=5a;14\ngt=1q;7\niacute=6l;2f\nicirc=6m;2g\niexcl=4h;9\nigrave=6k;2e\niquest=5b;15\niuml=6n;2h\nlaquo=4r;k\nlt=1o;5\nmacr=4v;p\nmicro=51;v\nmiddot=53;x\nnbsp=4g;8\nnot=4s;l\nntilde=6p;2j\noacute=6r;2l\nocirc=6s;2m\nograve=6q;2k\nordf=4q;j\nordm=56;10\noslash=6w;2q\notilde=6t;2n\nouml=6u;2o\npara=52;w\nplusmn=4x;r\npound=4j;b\nquot=y;1\nraquo=57;11\nreg=4u;o\nsect=4n;f\nshy=4t;m\nsup1=55;z\nsup2=4y;s\nsup3=4z;t\nszlig=67;21\nthorn=72;2w\ntimes=5z;1t\nuacute=6y;2s\nucirc=6z;2t\nugrave=6x;2r\numl=4o;g\nuuml=70;2u\nyacute=71;2v\nyen=4l;d\nyuml=73;2x" + + static let full: String = "AElig=5i;2v\nAMP=12;8\nAacute=5d;2p\nAbreve=76;4k\nAcirc=5e;2q\nAcy=sw;av\nAfr=2kn8;1kh\nAgrave=5c;2o\nAlpha=pd;8d\nAmacr=74;4i\nAnd=8cz;1e1\nAogon=78;4m\nAopf=2koo;1ls\nApplyFunction=6e9;ew\nAring=5h;2t\nAscr=2kkc;1jc\nAssign=6s4;s6\nAtilde=5f;2r\nAuml=5g;2s\nBackslash=6qe;o1\nBarv=8h3;1it\nBarwed=6x2;120\nBcy=sx;aw\nBecause=6r9;pw\nBernoullis=6jw;gn\nBeta=pe;8e\nBfr=2kn9;1ki\nBopf=2kop;1lt\nBreve=k8;82\nBscr=6jw;gp\nBumpeq=6ry;ro\nCHcy=tj;bi\nCOPY=4p;1q\nCacute=7a;4o\nCap=6vm;zz\nCapitalDifferentialD=6kl;h8\nCayleys=6jx;gq\nCcaron=7g;4u\nCcedil=5j;2w\nCcirc=7c;4q\nCconint=6r4;pn\nCdot=7e;4s\nCedilla=54;2e\nCenterDot=53;2b\nCfr=6jx;gr\nChi=pz;8y\nCircleDot=6u1;x8\nCircleMinus=6ty;x3\nCirclePlus=6tx;x1\nCircleTimes=6tz;x5\nClockwiseContourIntegral=6r6;pp\nCloseCurlyDoubleQuote=6cd;e0\nCloseCurlyQuote=6c9;dt\nColon=6rb;q1\nColone=8dw;1en\nCongruent=6sh;sn\nConint=6r3;pm\nContourIntegral=6r2;pi\nCopf=6iq;f7\nCoproduct=6q8;nq\nCounterClockwiseContourIntegral=6r7;pr\nCross=8bz;1d8\nCscr=2kke;1jd\nCup=6vn;100\nCupCap=6rx;rk\nDD=6kl;h9\nDDotrahd=841;184\nDJcy=si;ai\nDScy=sl;al\nDZcy=sv;au\nDagger=6ch;e7\nDarr=6n5;j5\nDashv=8h0;1ir\nDcaron=7i;4w\nDcy=t0;az\nDel=6pz;n9\nDelta=pg;8g\nDfr=2knb;1kj\nDiacriticalAcute=50;27\nDiacriticalDot=k9;84\nDiacriticalDoubleAcute=kd;8a\nDiacriticalGrave=2o;13\nDiacriticalTilde=kc;88\nDiamond=6v8;za\nDifferentialD=6km;ha\nDopf=2kor;1lu\nDot=4o;1n\nDotDot=6ho;f5\nDotEqual=6s0;rw\nDoubleContourIntegral=6r3;pl\nDoubleDot=4o;1m\nDoubleDownArrow=6oj;m0\nDoubleLeftArrow=6og;lq\nDoubleLeftRightArrow=6ok;m3\nDoubleLeftTee=8h0;1iq\nDoubleLongLeftArrow=7w8;17g\nDoubleLongLeftRightArrow=7wa;17m\nDoubleLongRightArrow=7w9;17j\nDoubleRightArrow=6oi;lw\nDoubleRightTee=6ug;xz\nDoubleUpArrow=6oh;lt\nDoubleUpDownArrow=6ol;m7\nDoubleVerticalBar=6qt;ov\nDownArrow=6mr;i8\nDownArrowBar=843;186\nDownArrowUpArrow=6ph;mn\nDownBreve=lt;8c\nDownLeftRightVector=85s;198\nDownLeftTeeVector=866;19m\nDownLeftVector=6nx;ke\nDownLeftVectorBar=85y;19e\nDownRightTeeVector=867;19n\nDownRightVector=6o1;kq\nDownRightVectorBar=85z;19f\nDownTee=6uc;xs\nDownTeeArrow=6nb;jh\nDownarrow=6oj;m1\nDscr=2kkf;1je\nDstrok=7k;4y\nENG=96;6g\nETH=5s;35\nEacute=5l;2y\nEcaron=7u;56\nEcirc=5m;2z\nEcy=tp;bo\nEdot=7q;52\nEfr=2knc;1kk\nEgrave=5k;2x\nElement=6q0;na\nEmacr=7m;50\nEmptySmallSquare=7i3;15x\nEmptyVerySmallSquare=7fv;150\nEogon=7s;54\nEopf=2kos;1lv\nEpsilon=ph;8h\nEqual=8dx;1eo\nEqualTilde=6rm;qp\nEquilibrium=6oc;li\nEscr=6k0;gu\nEsim=8dv;1em\nEta=pj;8j\nEuml=5n;30\nExists=6pv;mz\nExponentialE=6kn;hc\nFcy=tg;bf\nFfr=2knd;1kl\nFilledSmallSquare=7i4;15y\nFilledVerySmallSquare=7fu;14w\nFopf=2kot;1lw\nForAll=6ps;ms\nFouriertrf=6k1;gv\nFscr=6k1;gw\nGJcy=sj;aj\nGT=1q;r\nGamma=pf;8f\nGammad=rg;a5\nGbreve=7y;5a\nGcedil=82;5e\nGcirc=7w;58\nGcy=sz;ay\nGdot=80;5c\nGfr=2kne;1km\nGg=6vt;10c\nGopf=2kou;1lx\nGreaterEqual=6sl;sv\nGreaterEqualLess=6vv;10i\nGreaterFullEqual=6sn;t6\nGreaterGreater=8f6;1gh\nGreaterLess=6t3;ul\nGreaterSlantEqual=8e6;1f5\nGreaterTilde=6sz;ub\nGscr=2kki;1jf\nGt=6sr;tr\nHARDcy=tm;bl\nHacek=jr;80\nHat=2m;10\nHcirc=84;5f\nHfr=6j0;fe\nHilbertSpace=6iz;fa\nHopf=6j1;fg\nHorizontalLine=7b4;13i\nHscr=6iz;fc\nHstrok=86;5h\nHumpDownHump=6ry;rn\nHumpEqual=6rz;rs\nIEcy=t1;b0\nIJlig=8i;5s\nIOcy=sh;ah\nIacute=5p;32\nIcirc=5q;33\nIcy=t4;b3\nIdot=8g;5p\nIfr=6j5;fq\nIgrave=5o;31\nIm=6j5;fr\nImacr=8a;5l\nImaginaryI=6ko;hf\nImplies=6oi;ly\nInt=6r0;pf\nIntegral=6qz;pd\nIntersection=6v6;z4\nInvisibleComma=6eb;f0\nInvisibleTimes=6ea;ey\nIogon=8e;5n\nIopf=2kow;1ly\nIota=pl;8l\nIscr=6j4;fn\nItilde=88;5j\nIukcy=sm;am\nIuml=5r;34\nJcirc=8k;5u\nJcy=t5;b4\nJfr=2knh;1kn\nJopf=2kox;1lz\nJscr=2kkl;1jg\nJsercy=so;ao\nJukcy=sk;ak\nKHcy=th;bg\nKJcy=ss;as\nKappa=pm;8m\nKcedil=8m;5w\nKcy=t6;b5\nKfr=2kni;1ko\nKopf=2koy;1m0\nKscr=2kkm;1jh\nLJcy=sp;ap\nLT=1o;m\nLacute=8p;5z\nLambda=pn;8n\nLang=7vu;173\nLaplacetrf=6j6;fs\nLarr=6n2;j1\nLcaron=8t;63\nLcedil=8r;61\nLcy=t7;b6\nLeftAngleBracket=7vs;16x\nLeftArrow=6mo;hu\nLeftArrowBar=6p0;mj\nLeftArrowRightArrow=6o6;l3\nLeftCeiling=6x4;121\nLeftDoubleBracket=7vq;16t\nLeftDownTeeVector=869;19p\nLeftDownVector=6o3;kw\nLeftDownVectorBar=861;19h\nLeftFloor=6x6;125\nLeftRightArrow=6ms;ib\nLeftRightVector=85q;196\nLeftTee=6ub;xq\nLeftTeeArrow=6n8;ja\nLeftTeeVector=862;19i\nLeftTriangle=6uq;ya\nLeftTriangleBar=89b;1c0\nLeftTriangleEqual=6us;yg\nLeftUpDownVector=85t;199\nLeftUpTeeVector=868;19o\nLeftUpVector=6nz;kk\nLeftUpVectorBar=860;19g\nLeftVector=6nw;kb\nLeftVectorBar=85u;19a\nLeftarrow=6og;lr\nLeftrightarrow=6ok;m4\nLessEqualGreater=6vu;10e\nLessFullEqual=6sm;t0\nLessGreater=6t2;ui\nLessLess=8f5;1gf\nLessSlantEqual=8e5;1ez\nLessTilde=6sy;u8\nLfr=2knj;1kp\nLl=6vs;109\nLleftarrow=6oq;me\nLmidot=8v;65\nLongLeftArrow=7w5;177\nLongLeftRightArrow=7w7;17d\nLongRightArrow=7w6;17a\nLongleftarrow=7w8;17h\nLongleftrightarrow=7wa;17n\nLongrightarrow=7w9;17k\nLopf=2koz;1m1\nLowerLeftArrow=6mx;iq\nLowerRightArrow=6mw;in\nLscr=6j6;fu\nLsh=6nk;jv\nLstrok=8x;67\nLt=6sq;tl\nMap=83p;17v\nMcy=t8;b7\nMediumSpace=6e7;eu\nMellintrf=6k3;gx\nMfr=2knk;1kq\nMinusPlus=6qb;nv\nMopf=2kp0;1m2\nMscr=6k3;gz\nMu=po;8o\nNJcy=sq;aq\nNacute=8z;69\nNcaron=93;6d\nNcedil=91;6b\nNcy=t9;b8\nNegativeMediumSpace=6bv;dc\nNegativeThickSpace=6bv;dd\nNegativeThinSpace=6bv;de\nNegativeVeryThinSpace=6bv;db\nNestedGreaterGreater=6sr;tq\nNestedLessLess=6sq;tk\nNewLine=a;1\nNfr=2knl;1kr\nNoBreak=6e8;ev\nNonBreakingSpace=4g;1d\nNopf=6j9;fx\nNot=8h8;1ix\nNotCongruent=6si;sp\nNotCupCap=6st;tv\nNotDoubleVerticalBar=6qu;p0\nNotElement=6q1;ne\nNotEqual=6sg;sk\nNotEqualTilde=6rm,mw;qn\nNotExists=6pw;n1\nNotGreater=6sv;tz\nNotGreaterEqual=6sx;u5\nNotGreaterFullEqual=6sn,mw;t3\nNotGreaterGreater=6sr,mw;tn\nNotGreaterLess=6t5;uq\nNotGreaterSlantEqual=8e6,mw;1f2\nNotGreaterTilde=6t1;ug\nNotHumpDownHump=6ry,mw;rl\nNotHumpEqual=6rz,mw;rq\nNotLeftTriangle=6wa;113\nNotLeftTriangleBar=89b,mw;1bz\nNotLeftTriangleEqual=6wc;119\nNotLess=6su;tw\nNotLessEqual=6sw;u2\nNotLessGreater=6t4;uo\nNotLessLess=6sq,mw;th\nNotLessSlantEqual=8e5,mw;1ew\nNotLessTilde=6t0;ue\nNotNestedGreaterGreater=8f6,mw;1gg\nNotNestedLessLess=8f5,mw;1ge\nNotPrecedes=6tc;vb\nNotPrecedesEqual=8fj,mw;1gv\nNotPrecedesSlantEqual=6w0;10p\nNotReverseElement=6q4;nl\nNotRightTriangle=6wb;116\nNotRightTriangleBar=89c,mw;1c1\nNotRightTriangleEqual=6wd;11c\nNotSquareSubset=6tr,mw;wh\nNotSquareSubsetEqual=6w2;10t\nNotSquareSuperset=6ts,mw;wl\nNotSquareSupersetEqual=6w3;10v\nNotSubset=6te,6he;vh\nNotSubsetEqual=6tk;w0\nNotSucceeds=6td;ve\nNotSucceedsEqual=8fk,mw;1h1\nNotSucceedsSlantEqual=6w1;10r\nNotSucceedsTilde=6tb,mw;v7\nNotSuperset=6tf,6he;vm\nNotSupersetEqual=6tl;w3\nNotTilde=6rl;ql\nNotTildeEqual=6ro;qv\nNotTildeFullEqual=6rr;r1\nNotTildeTilde=6rt;r9\nNotVerticalBar=6qs;or\nNscr=2kkp;1ji\nNtilde=5t;36\nNu=pp;8p\nOElig=9e;6m\nOacute=5v;38\nOcirc=5w;39\nOcy=ta;b9\nOdblac=9c;6k\nOfr=2knm;1ks\nOgrave=5u;37\nOmacr=98;6i\nOmega=q1;90\nOmicron=pr;8r\nOopf=2kp2;1m3\nOpenCurlyDoubleQuote=6cc;dy\nOpenCurlyQuote=6c8;dr\nOr=8d0;1e2\nOscr=2kkq;1jj\nOslash=60;3d\nOtilde=5x;3a\nOtimes=8c7;1df\nOuml=5y;3b\nOverBar=6da;em\nOverBrace=732;13b\nOverBracket=71w;134\nOverParenthesis=730;139\nPartialD=6pu;mx\nPcy=tb;ba\nPfr=2knn;1kt\nPhi=py;8x\nPi=ps;8s\nPlusMinus=4x;22\nPoincareplane=6j0;fd\nPopf=6jd;g3\nPr=8fv;1hl\nPrecedes=6t6;us\nPrecedesEqual=8fj;1gy\nPrecedesSlantEqual=6t8;uy\nPrecedesTilde=6ta;v4\nPrime=6cz;eg\nProduct=6q7;no\nProportion=6rb;q0\nProportional=6ql;oa\nPscr=2kkr;1jk\nPsi=q0;8z\nQUOT=y;3\nQfr=2kno;1ku\nQopf=6je;g5\nQscr=2kks;1jl\nRBarr=840;183\nREG=4u;1x\nRacute=9g;6o\nRang=7vv;174\nRarr=6n4;j4\nRarrtl=846;187\nRcaron=9k;6s\nRcedil=9i;6q\nRcy=tc;bb\nRe=6jg;gb\nReverseElement=6q3;nh\nReverseEquilibrium=6ob;le\nReverseUpEquilibrium=86n;1a4\nRfr=6jg;ga\nRho=pt;8t\nRightAngleBracket=7vt;170\nRightArrow=6mq;i3\nRightArrowBar=6p1;ml\nRightArrowLeftArrow=6o4;ky\nRightCeiling=6x5;123\nRightDoubleBracket=7vr;16v\nRightDownTeeVector=865;19l\nRightDownVector=6o2;kt\nRightDownVectorBar=85x;19d\nRightFloor=6x7;127\nRightTee=6ua;xo\nRightTeeArrow=6na;je\nRightTeeVector=863;19j\nRightTriangle=6ur;yd\nRightTriangleBar=89c;1c2\nRightTriangleEqual=6ut;yk\nRightUpDownVector=85r;197\nRightUpTeeVector=864;19k\nRightUpVector=6ny;kh\nRightUpVectorBar=85w;19c\nRightVector=6o0;kn\nRightVectorBar=85v;19b\nRightarrow=6oi;lx\nRopf=6jh;gd\nRoundImplies=86o;1a6\nRrightarrow=6or;mg\nRscr=6jf;g7\nRsh=6nl;jx\nRuleDelayed=8ac;1cb\nSHCHcy=tl;bk\nSHcy=tk;bj\nSOFTcy=to;bn\nSacute=9m;6u\nSc=8fw;1hm\nScaron=9s;70\nScedil=9q;6y\nScirc=9o;6w\nScy=td;bc\nSfr=2knq;1kv\nShortDownArrow=6mr;i7\nShortLeftArrow=6mo;ht\nShortRightArrow=6mq;i2\nShortUpArrow=6mp;hy\nSigma=pv;8u\nSmallCircle=6qg;o6\nSopf=2kp6;1m4\nSqrt=6qi;o9\nSquare=7fl;14t\nSquareIntersection=6tv;ww\nSquareSubset=6tr;wi\nSquareSubsetEqual=6tt;wp\nSquareSuperset=6ts;wm\nSquareSupersetEqual=6tu;ws\nSquareUnion=6tw;wz\nSscr=2kku;1jm\nStar=6va;zf\nSub=6vk;zw\nSubset=6vk;zv\nSubsetEqual=6ti;vu\nSucceeds=6t7;uv\nSucceedsEqual=8fk;1h4\nSucceedsSlantEqual=6t9;v1\nSucceedsTilde=6tb;v8\nSuchThat=6q3;ni\nSum=6q9;ns\nSup=6vl;zy\nSuperset=6tf;vp\nSupersetEqual=6tj;vx\nSupset=6vl;zx\nTHORN=66;3j\nTRADE=6jm;gf\nTSHcy=sr;ar\nTScy=ti;bh\nTab=9;0\nTau=pw;8v\nTcaron=9w;74\nTcedil=9u;72\nTcy=te;bd\nTfr=2knr;1kw\nTherefore=6r8;pt\nTheta=pk;8k\nThickSpace=6e7,6bu;et\nThinSpace=6bt;d7\nTilde=6rg;q9\nTildeEqual=6rn;qs\nTildeFullEqual=6rp;qy\nTildeTilde=6rs;r4\nTopf=2kp7;1m5\nTripleDot=6hn;f3\nTscr=2kkv;1jn\nTstrok=9y;76\nUacute=62;3f\nUarr=6n3;j2\nUarrocir=85l;193\nUbrcy=su;at\nUbreve=a4;7c\nUcirc=63;3g\nUcy=tf;be\nUdblac=a8;7g\nUfr=2kns;1kx\nUgrave=61;3e\nUmacr=a2;7a\nUnderBar=2n;11\nUnderBrace=733;13c\nUnderBracket=71x;136\nUnderParenthesis=731;13a\nUnion=6v7;z8\nUnionPlus=6tq;wf\nUogon=aa;7i\nUopf=2kp8;1m6\nUpArrow=6mp;hz\nUpArrowBar=842;185\nUpArrowDownArrow=6o5;l1\nUpDownArrow=6mt;ie\nUpEquilibrium=86m;1a2\nUpTee=6ud;xv\nUpTeeArrow=6n9;jc\nUparrow=6oh;lu\nUpdownarrow=6ol;m8\nUpperLeftArrow=6mu;ih\nUpperRightArrow=6mv;ik\nUpsi=r6;9z\nUpsilon=px;8w\nUring=a6;7e\nUscr=2kkw;1jo\nUtilde=a0;78\nUuml=64;3h\nVDash=6uj;y3\nVbar=8h7;1iw\nVcy=sy;ax\nVdash=6uh;y1\nVdashl=8h2;1is\nVee=6v5;z3\nVerbar=6c6;dp\nVert=6c6;dq\nVerticalBar=6qr;on\nVerticalLine=3g;18\nVerticalSeparator=7rs;16o\nVerticalTilde=6rk;qi\nVeryThinSpace=6bu;d9\nVfr=2knt;1ky\nVopf=2kp9;1m7\nVscr=2kkx;1jp\nVvdash=6ui;y2\nWcirc=ac;7k\nWedge=6v4;z0\nWfr=2knu;1kz\nWopf=2kpa;1m8\nWscr=2kky;1jq\nXfr=2knv;1l0\nXi=pq;8q\nXopf=2kpb;1m9\nXscr=2kkz;1jr\nYAcy=tr;bq\nYIcy=sn;an\nYUcy=tq;bp\nYacute=65;3i\nYcirc=ae;7m\nYcy=tn;bm\nYfr=2knw;1l1\nYopf=2kpc;1ma\nYscr=2kl0;1js\nYuml=ag;7o\nZHcy=t2;b1\nZacute=ah;7p\nZcaron=al;7t\nZcy=t3;b2\nZdot=aj;7r\nZeroWidthSpace=6bv;df\nZeta=pi;8i\nZfr=6js;gl\nZopf=6jo;gi\nZscr=2kl1;1jt\naacute=69;3m\nabreve=77;4l\nac=6ri;qg\nacE=6ri,mr;qe\nacd=6rj;qh\nacirc=6a;3n\nacute=50;28\nacy=ts;br\naelig=6e;3r\naf=6e9;ex\nafr=2kny;1l2\nagrave=68;3l\nalefsym=6k5;h3\naleph=6k5;h4\nalpha=q9;92\namacr=75;4j\namalg=8cf;1dm\namp=12;9\nand=6qv;p6\nandand=8d1;1e3\nandd=8d8;1e9\nandslope=8d4;1e6\nandv=8d6;1e7\nang=6qo;oj\nange=884;1b1\nangle=6qo;oi\nangmsd=6qp;ol\nangmsdaa=888;1b5\nangmsdab=889;1b6\nangmsdac=88a;1b7\nangmsdad=88b;1b8\nangmsdae=88c;1b9\nangmsdaf=88d;1ba\nangmsdag=88e;1bb\nangmsdah=88f;1bc\nangrt=6qn;og\nangrtvb=6v2;yw\nangrtvbd=87x;1b0\nangsph=6qq;om\nangst=5h;2u\nangzarr=70c;12z\naogon=79;4n\naopf=2kpe;1mb\nap=6rs;r8\napE=8ds;1ej\napacir=8dr;1eh\nape=6ru;rd\napid=6rv;rf\napos=13;a\napprox=6rs;r5\napproxeq=6ru;rc\naring=6d;3q\nascr=2kl2;1ju\nast=16;e\nasymp=6rs;r6\nasympeq=6rx;rj\natilde=6b;3o\nauml=6c;3p\nawconint=6r7;ps\nawint=8b5;1cr\nbNot=8h9;1iy\nbackcong=6rw;rg\nbackepsilon=s6;af\nbackprime=6d1;ei\nbacksim=6rh;qc\nbacksimeq=6vh;zp\nbarvee=6v1;yv\nbarwed=6x1;11y\nbarwedge=6x1;11x\nbbrk=71x;137\nbbrktbrk=71y;138\nbcong=6rw;rh\nbcy=tt;bs\nbdquo=6ce;e4\nbecaus=6r9;py\nbecause=6r9;px\nbemptyv=88g;1bd\nbepsi=s6;ag\nbernou=6jw;go\nbeta=qa;93\nbeth=6k6;h5\nbetween=6ss;tt\nbfr=2knz;1l3\nbigcap=6v6;z5\nbigcirc=7hr;15s\nbigcup=6v7;z7\nbigodot=8ao;1cd\nbigoplus=8ap;1cf\nbigotimes=8aq;1ch\nbigsqcup=8au;1cl\nbigstar=7id;15z\nbigtriangledown=7gd;15e\nbigtriangleup=7g3;154\nbiguplus=8as;1cj\nbigvee=6v5;z1\nbigwedge=6v4;yy\nbkarow=83x;17x\nblacklozenge=8a3;1c9\nblacksquare=7fu;14x\nblacktriangle=7g4;156\nblacktriangledown=7ge;15g\nblacktriangleleft=7gi;15k\nblacktriangleright=7g8;15a\nblank=74z;13f\nblk12=7f6;14r\nblk14=7f5;14q\nblk34=7f7;14s\nblock=7ew;14p\nbne=1p,6hx;o\nbnequiv=6sh,6hx;sm\nbnot=6xc;12d\nbopf=2kpf;1mc\nbot=6ud;xx\nbottom=6ud;xu\nbowtie=6vc;zi\nboxDL=7dj;141\nboxDR=7dg;13y\nboxDl=7di;140\nboxDr=7df;13x\nboxH=7dc;13u\nboxHD=7dy;14g\nboxHU=7e1;14j\nboxHd=7dw;14e\nboxHu=7dz;14h\nboxUL=7dp;147\nboxUR=7dm;144\nboxUl=7do;146\nboxUr=7dl;143\nboxV=7dd;13v\nboxVH=7e4;14m\nboxVL=7dv;14d\nboxVR=7ds;14a\nboxVh=7e3;14l\nboxVl=7du;14c\nboxVr=7dr;149\nboxbox=895;1bw\nboxdL=7dh;13z\nboxdR=7de;13w\nboxdl=7bk;13m\nboxdr=7bg;13l\nboxh=7b4;13j\nboxhD=7dx;14f\nboxhU=7e0;14i\nboxhd=7cc;13r\nboxhu=7ck;13s\nboxminus=6u7;xi\nboxplus=6u6;xg\nboxtimes=6u8;xk\nboxuL=7dn;145\nboxuR=7dk;142\nboxul=7bs;13o\nboxur=7bo;13n\nboxv=7b6;13k\nboxvH=7e2;14k\nboxvL=7dt;14b\nboxvR=7dq;148\nboxvh=7cs;13t\nboxvl=7c4;13q\nboxvr=7bw;13p\nbprime=6d1;ej\nbreve=k8;83\nbrvbar=4m;1k\nbscr=2kl3;1jv\nbsemi=6dr;er\nbsim=6rh;qd\nbsime=6vh;zq\nbsol=2k;x\nbsolb=891;1bv\nbsolhsub=7uw;16r\nbull=6ci;e9\nbullet=6ci;e8\nbump=6ry;rp\nbumpE=8fi;1gu\nbumpe=6rz;ru\nbumpeq=6rz;rt\ncacute=7b;4p\ncap=6qx;pa\ncapand=8ck;1dq\ncapbrcup=8cp;1dv\ncapcap=8cr;1dx\ncapcup=8cn;1dt\ncapdot=8cg;1dn\ncaps=6qx,1e68;p9\ncaret=6dd;eo\ncaron=jr;81\nccaps=8ct;1dz\nccaron=7h;4v\nccedil=6f;3s\nccirc=7d;4r\nccups=8cs;1dy\nccupssm=8cw;1e0\ncdot=7f;4t\ncedil=54;2f\ncemptyv=88i;1bf\ncent=4i;1g\ncenterdot=53;2c\ncfr=2ko0;1l4\nchcy=uf;ce\ncheck=7pv;16j\ncheckmark=7pv;16i\nchi=qv;9s\ncir=7gr;15q\ncirE=88z;1bt\ncirc=jq;7z\ncirceq=6s7;sc\ncirclearrowleft=6nu;k6\ncirclearrowright=6nv;k8\ncircledR=4u;1w\ncircledS=79k;13g\ncircledast=6u3;xc\ncircledcirc=6u2;xa\ncircleddash=6u5;xe\ncire=6s7;sd\ncirfnint=8b4;1cq\ncirmid=8hb;1j0\ncirscir=88y;1bs\nclubs=7kz;168\nclubsuit=7kz;167\ncolon=1m;j\ncolone=6s4;s7\ncoloneq=6s4;s5\ncomma=18;g\ncommat=1s;u\ncomp=6pt;mv\ncompfn=6qg;o7\ncomplement=6pt;mu\ncomplexes=6iq;f6\ncong=6rp;qz\ncongdot=8dp;1ef\nconint=6r2;pj\ncopf=2kpg;1md\ncoprod=6q8;nr\ncopy=4p;1r\ncopysr=6jb;fz\ncrarr=6np;k1\ncross=7pz;16k\ncscr=2kl4;1jw\ncsub=8gf;1id\ncsube=8gh;1if\ncsup=8gg;1ie\ncsupe=8gi;1ig\nctdot=6wf;11g\ncudarrl=854;18x\ncudarrr=851;18u\ncuepr=6vy;10m\ncuesc=6vz;10o\ncularr=6nq;k3\ncularrp=859;190\ncup=6qy;pc\ncupbrcap=8co;1du\ncupcap=8cm;1ds\ncupcup=8cq;1dw\ncupdot=6tp;we\ncupor=8cl;1dr\ncups=6qy,1e68;pb\ncurarr=6nr;k5\ncurarrm=858;18z\ncurlyeqprec=6vy;10l\ncurlyeqsucc=6vz;10n\ncurlyvee=6vi;zr\ncurlywedge=6vj;zt\ncurren=4k;1i\ncurvearrowleft=6nq;k2\ncurvearrowright=6nr;k4\ncuvee=6vi;zs\ncuwed=6vj;zu\ncwconint=6r6;pq\ncwint=6r5;po\ncylcty=6y5;12u\ndArr=6oj;m2\ndHar=86d;19t\ndagger=6cg;e5\ndaleth=6k8;h7\ndarr=6mr;ia\ndash=6c0;dl\ndashv=6ub;xr\ndbkarow=83z;180\ndblac=kd;8b\ndcaron=7j;4x\ndcy=tw;bv\ndd=6km;hb\nddagger=6ch;e6\nddarr=6oa;ld\nddotseq=8dz;1ep\ndeg=4w;21\ndelta=qc;95\ndemptyv=88h;1be\ndfisht=873;1aj\ndfr=2ko1;1l5\ndharl=6o3;kx\ndharr=6o2;ku\ndiam=6v8;zc\ndiamond=6v8;zb\ndiamondsuit=7l2;16b\ndiams=7l2;16c\ndie=4o;1o\ndigamma=rh;a6\ndisin=6wi;11j\ndiv=6v;49\ndivide=6v;48\ndivideontimes=6vb;zg\ndivonx=6vb;zh\ndjcy=uq;co\ndlcorn=6xq;12n\ndlcrop=6x9;12a\ndollar=10;6\ndopf=2kph;1me\ndot=k9;85\ndoteq=6s0;rx\ndoteqdot=6s1;rz\ndotminus=6rc;q2\ndotplus=6qc;ny\ndotsquare=6u9;xm\ndoublebarwedge=6x2;11z\ndownarrow=6mr;i9\ndowndownarrows=6oa;lc\ndownharpoonleft=6o3;kv\ndownharpoonright=6o2;ks\ndrbkarow=840;182\ndrcorn=6xr;12p\ndrcrop=6x8;129\ndscr=2kl5;1jx\ndscy=ut;cr\ndsol=8ae;1cc\ndstrok=7l;4z\ndtdot=6wh;11i\ndtri=7gf;15j\ndtrif=7ge;15h\nduarr=6ph;mo\nduhar=86n;1a5\ndwangle=886;1b3\ndzcy=v3;d0\ndzigrarr=7wf;17r\neDDot=8dz;1eq\neDot=6s1;s0\neacute=6h;3u\neaster=8dq;1eg\necaron=7v;57\necir=6s6;sb\necirc=6i;3v\necolon=6s5;s9\necy=ul;ck\nedot=7r;53\nee=6kn;he\nefDot=6s2;s2\nefr=2ko2;1l6\neg=8ey;1g9\negrave=6g;3t\negs=8eu;1g5\negsdot=8ew;1g7\nel=8ex;1g8\nelinters=73b;13e\nell=6j7;fv\nels=8et;1g3\nelsdot=8ev;1g6\nemacr=7n;51\nempty=6px;n7\nemptyset=6px;n5\nemptyv=6px;n6\nemsp=6bn;d2\nemsp13=6bo;d3\nemsp14=6bp;d4\neng=97;6h\nensp=6bm;d1\neogon=7t;55\neopf=2kpi;1mf\nepar=6vp;103\neparsl=89v;1c6\neplus=8dt;1ek\nepsi=qd;97\nepsilon=qd;96\nepsiv=s5;ae\neqcirc=6s6;sa\neqcolon=6s5;s8\neqsim=6rm;qq\neqslantgtr=8eu;1g4\neqslantless=8et;1g2\nequals=1p;p\nequest=6sf;sj\nequiv=6sh;so\nequivDD=8e0;1er\neqvparsl=89x;1c8\nerDot=6s3;s4\nerarr=86p;1a7\nescr=6jz;gs\nesdot=6s0;ry\nesim=6rm;qr\neta=qf;99\neth=6o;41\neuml=6j;3w\neuro=6gc;f2\nexcl=x;2\nexist=6pv;n0\nexpectation=6k0;gt\nexponentiale=6kn;hd\nfallingdotseq=6s2;s1\nfcy=uc;cb\nfemale=7k0;163\nffilig=1dkz;1ja\nfflig=1dkw;1j7\nffllig=1dl0;1jb\nffr=2ko3;1l7\nfilig=1dkx;1j8\nfjlig=2u,2y;15\nflat=7l9;16e\nfllig=1dky;1j9\nfltns=7g1;153\nfnof=b6;7v\nfopf=2kpj;1mg\nforall=6ps;mt\nfork=6vo;102\nforkv=8gp;1in\nfpartint=8b1;1cp\nfrac12=59;2k\nfrac13=6kz;hh\nfrac14=58;2j\nfrac15=6l1;hj\nfrac16=6l5;hn\nfrac18=6l7;hp\nfrac23=6l0;hi\nfrac25=6l2;hk\nfrac34=5a;2m\nfrac35=6l3;hl\nfrac38=6l8;hq\nfrac45=6l4;hm\nfrac56=6l6;ho\nfrac58=6l9;hr\nfrac78=6la;hs\nfrasl=6dg;eq\nfrown=6xu;12r\nfscr=2kl7;1jy\ngE=6sn;t8\ngEl=8ek;1ft\ngacute=dx;7x\ngamma=qb;94\ngammad=rh;a7\ngap=8ee;1fh\ngbreve=7z;5b\ngcirc=7x;59\ngcy=tv;bu\ngdot=81;5d\nge=6sl;sx\ngel=6vv;10k\ngeq=6sl;sw\ngeqq=6sn;t7\ngeqslant=8e6;1f6\nges=8e6;1f7\ngescc=8fd;1gn\ngesdot=8e8;1f9\ngesdoto=8ea;1fb\ngesdotol=8ec;1fd\ngesl=6vv,1e68;10h\ngesles=8es;1g1\ngfr=2ko4;1l8\ngg=6sr;ts\nggg=6vt;10b\ngimel=6k7;h6\ngjcy=ur;cp\ngl=6t3;un\nglE=8eq;1fz\ngla=8f9;1gj\nglj=8f8;1gi\ngnE=6sp;tg\ngnap=8ei;1fp\ngnapprox=8ei;1fo\ngne=8eg;1fl\ngneq=8eg;1fk\ngneqq=6sp;tf\ngnsim=6w7;10y\ngopf=2kpk;1mh\ngrave=2o;14\ngscr=6iy;f9\ngsim=6sz;ud\ngsime=8em;1fv\ngsiml=8eo;1fx\ngt=1q;s\ngtcc=8fb;1gl\ngtcir=8e2;1et\ngtdot=6vr;107\ngtlPar=87p;1aw\ngtquest=8e4;1ev\ngtrapprox=8ee;1fg\ngtrarr=86w;1ad\ngtrdot=6vr;106\ngtreqless=6vv;10j\ngtreqqless=8ek;1fs\ngtrless=6t3;um\ngtrsim=6sz;uc\ngvertneqq=6sp,1e68;td\ngvnE=6sp,1e68;te\nhArr=6ok;m5\nhairsp=6bu;da\nhalf=59;2l\nhamilt=6iz;fb\nhardcy=ui;ch\nharr=6ms;id\nharrcir=85k;192\nharrw=6nh;js\nhbar=6j3;fl\nhcirc=85;5g\nhearts=7l1;16a\nheartsuit=7l1;169\nhellip=6cm;eb\nhercon=6ux;yr\nhfr=2ko5;1l9\nhksearow=84l;18i\nhkswarow=84m;18k\nhoarr=6pr;mr\nhomtht=6rf;q5\nhookleftarrow=6nd;jj\nhookrightarrow=6ne;jl\nhopf=2kpl;1mi\nhorbar=6c5;do\nhscr=2kl9;1jz\nhslash=6j3;fi\nhstrok=87;5i\nhybull=6df;ep\nhyphen=6c0;dk\niacute=6l;3y\nic=6eb;f1\nicirc=6m;3z\nicy=u0;bz\niecy=tx;bw\niexcl=4h;1f\niff=6ok;m6\nifr=2ko6;1la\nigrave=6k;3x\nii=6ko;hg\niiiint=8b0;1cn\niiint=6r1;pg\niinfin=89o;1c3\niiota=6jt;gm\nijlig=8j;5t\nimacr=8b;5m\nimage=6j5;fp\nimagline=6j4;fm\nimagpart=6j5;fo\nimath=8h;5r\nimof=6uv;yo\nimped=c5;7w\nin=6q0;nd\nincare=6it;f8\ninfin=6qm;of\ninfintie=89p;1c4\ninodot=8h;5q\nint=6qz;pe\nintcal=6uy;yt\nintegers=6jo;gh\nintercal=6uy;ys\nintlarhk=8bb;1cx\nintprod=8cc;1dk\niocy=up;cn\niogon=8f;5o\niopf=2kpm;1mj\niota=qh;9b\niprod=8cc;1dl\niquest=5b;2n\niscr=2kla;1k0\nisin=6q0;nc\nisinE=6wp;11r\nisindot=6wl;11n\nisins=6wk;11l\nisinsv=6wj;11k\nisinv=6q0;nb\nit=6ea;ez\nitilde=89;5k\niukcy=uu;cs\niuml=6n;40\njcirc=8l;5v\njcy=u1;c0\njfr=2ko7;1lb\njmath=fr;7y\njopf=2kpn;1mk\njscr=2klb;1k1\njsercy=uw;cu\njukcy=us;cq\nkappa=qi;9c\nkappav=s0;a9\nkcedil=8n;5x\nkcy=u2;c1\nkfr=2ko8;1lc\nkgreen=8o;5y\nkhcy=ud;cc\nkjcy=v0;cy\nkopf=2kpo;1ml\nkscr=2klc;1k2\nlAarr=6oq;mf\nlArr=6og;ls\nlAtail=84b;18a\nlBarr=83y;17z\nlE=6sm;t2\nlEg=8ej;1fr\nlHar=86a;19q\nlacute=8q;60\nlaemptyv=88k;1bh\nlagran=6j6;ft\nlambda=qj;9d\nlang=7vs;16z\nlangd=87l;1as\nlangle=7vs;16y\nlap=8ed;1ff\nlaquo=4r;1t\nlarr=6mo;hx\nlarrb=6p0;mk\nlarrbfs=84f;18e\nlarrfs=84d;18c\nlarrhk=6nd;jk\nlarrlp=6nf;jo\nlarrpl=855;18y\nlarrsim=86r;1a9\nlarrtl=6n6;j7\nlat=8ff;1gp\nlatail=849;188\nlate=8fh;1gt\nlates=8fh,1e68;1gs\nlbarr=83w;17w\nlbbrk=7si;16p\nlbrace=3f;16\nlbrack=2j;v\nlbrke=87f;1am\nlbrksld=87j;1aq\nlbrkslu=87h;1ao\nlcaron=8u;64\nlcedil=8s;62\nlceil=6x4;122\nlcub=3f;17\nlcy=u3;c2\nldca=852;18v\nldquo=6cc;dz\nldquor=6ce;e3\nldrdhar=86f;19v\nldrushar=85n;195\nldsh=6nm;jz\nle=6sk;st\nleftarrow=6mo;hv\nleftarrowtail=6n6;j6\nleftharpoondown=6nx;kd\nleftharpoonup=6nw;ka\nleftleftarrows=6o7;l6\nleftrightarrow=6ms;ic\nleftrightarrows=6o6;l4\nleftrightharpoons=6ob;lf\nleftrightsquigarrow=6nh;jr\nleftthreetimes=6vf;zl\nleg=6vu;10g\nleq=6sk;ss\nleqq=6sm;t1\nleqslant=8e5;1f0\nles=8e5;1f1\nlescc=8fc;1gm\nlesdot=8e7;1f8\nlesdoto=8e9;1fa\nlesdotor=8eb;1fc\nlesg=6vu,1e68;10d\nlesges=8er;1g0\nlessapprox=8ed;1fe\nlessdot=6vq;104\nlesseqgtr=6vu;10f\nlesseqqgtr=8ej;1fq\nlessgtr=6t2;uj\nlesssim=6sy;u9\nlfisht=870;1ag\nlfloor=6x6;126\nlfr=2ko9;1ld\nlg=6t2;uk\nlgE=8ep;1fy\nlhard=6nx;kf\nlharu=6nw;kc\nlharul=86i;19y\nlhblk=7es;14o\nljcy=ux;cv\nll=6sq;tm\nllarr=6o7;l7\nllcorner=6xq;12m\nllhard=86j;19z\nlltri=7i2;15w\nlmidot=8w;66\nlmoust=71s;131\nlmoustache=71s;130\nlnE=6so;tc\nlnap=8eh;1fn\nlnapprox=8eh;1fm\nlne=8ef;1fj\nlneq=8ef;1fi\nlneqq=6so;tb\nlnsim=6w6;10x\nloang=7vw;175\nloarr=6pp;mp\nlobrk=7vq;16u\nlongleftarrow=7w5;178\nlongleftrightarrow=7w7;17e\nlongmapsto=7wc;17p\nlongrightarrow=7w6;17b\nlooparrowleft=6nf;jn\nlooparrowright=6ng;jp\nlopar=879;1ak\nlopf=2kpp;1mm\nloplus=8bx;1d6\nlotimes=8c4;1dc\nlowast=6qf;o5\nlowbar=2n;12\nloz=7gq;15p\nlozenge=7gq;15o\nlozf=8a3;1ca\nlpar=14;b\nlparlt=87n;1au\nlrarr=6o6;l5\nlrcorner=6xr;12o\nlrhar=6ob;lg\nlrhard=86l;1a1\nlrm=6by;di\nlrtri=6v3;yx\nlsaquo=6d5;ek\nlscr=2kld;1k3\nlsh=6nk;jw\nlsim=6sy;ua\nlsime=8el;1fu\nlsimg=8en;1fw\nlsqb=2j;w\nlsquo=6c8;ds\nlsquor=6ca;dw\nlstrok=8y;68\nlt=1o;n\nltcc=8fa;1gk\nltcir=8e1;1es\nltdot=6vq;105\nlthree=6vf;zm\nltimes=6vd;zj\nltlarr=86u;1ac\nltquest=8e3;1eu\nltrPar=87q;1ax\nltri=7gj;15n\nltrie=6us;yi\nltrif=7gi;15l\nlurdshar=85m;194\nluruhar=86e;19u\nlvertneqq=6so,1e68;t9\nlvnE=6so,1e68;ta\nmDDot=6re;q4\nmacr=4v;20\nmale=7k2;164\nmalt=7q8;16m\nmaltese=7q8;16l\nmap=6na;jg\nmapsto=6na;jf\nmapstodown=6nb;ji\nmapstoleft=6n8;jb\nmapstoup=6n9;jd\nmarker=7fy;152\nmcomma=8bt;1d4\nmcy=u4;c3\nmdash=6c4;dn\nmeasuredangle=6qp;ok\nmfr=2koa;1le\nmho=6jr;gj\nmicro=51;29\nmid=6qr;oq\nmidast=16;d\nmidcir=8hc;1j1\nmiddot=53;2d\nminus=6qa;nu\nminusb=6u7;xj\nminusd=6rc;q3\nminusdu=8bu;1d5\nmlcp=8gr;1ip\nmldr=6cm;ec\nmnplus=6qb;nw\nmodels=6uf;xy\nmopf=2kpq;1mn\nmp=6qb;nx\nmscr=2kle;1k4\nmstpos=6ri;qf\nmu=qk;9e\nmultimap=6uw;yp\nmumap=6uw;yq\nnGg=6vt,mw;10a\nnGt=6sr,6he;tp\nnGtv=6sr,mw;to\nnLeftarrow=6od;lk\nnLeftrightarrow=6oe;lm\nnLl=6vs,mw;108\nnLt=6sq,6he;tj\nnLtv=6sq,mw;ti\nnRightarrow=6of;lo\nnVDash=6un;y7\nnVdash=6um;y6\nnabla=6pz;n8\nnacute=90;6a\nnang=6qo,6he;oh\nnap=6rt;rb\nnapE=8ds,mw;1ei\nnapid=6rv,mw;re\nnapos=95;6f\nnapprox=6rt;ra\nnatur=7la;16g\nnatural=7la;16f\nnaturals=6j9;fw\nnbsp=4g;1e\nnbump=6ry,mw;rm\nnbumpe=6rz,mw;rr\nncap=8cj;1dp\nncaron=94;6e\nncedil=92;6c\nncong=6rr;r2\nncongdot=8dp,mw;1ee\nncup=8ci;1do\nncy=u5;c4\nndash=6c3;dm\nne=6sg;sl\nneArr=6on;mb\nnearhk=84k;18h\nnearr=6mv;im\nnearrow=6mv;il\nnedot=6s0,mw;rv\nnequiv=6si;sq\nnesear=84o;18n\nnesim=6rm,mw;qo\nnexist=6pw;n3\nnexists=6pw;n2\nnfr=2kob;1lf\nngE=6sn,mw;t4\nnge=6sx;u7\nngeq=6sx;u6\nngeqq=6sn,mw;t5\nngeqslant=8e6,mw;1f3\nnges=8e6,mw;1f4\nngsim=6t1;uh\nngt=6sv;u1\nngtr=6sv;u0\nnhArr=6oe;ln\nnharr=6ni;ju\nnhpar=8he;1j3\nni=6q3;nk\nnis=6ws;11u\nnisd=6wq;11s\nniv=6q3;nj\nnjcy=uy;cw\nnlArr=6od;ll\nnlE=6sm,mw;sy\nnlarr=6my;iu\nnldr=6cl;ea\nnle=6sw;u4\nnleftarrow=6my;it\nnleftrightarrow=6ni;jt\nnleq=6sw;u3\nnleqq=6sm,mw;sz\nnleqslant=8e5,mw;1ex\nnles=8e5,mw;1ey\nnless=6su;tx\nnlsim=6t0;uf\nnlt=6su;ty\nnltri=6wa;115\nnltrie=6wc;11b\nnmid=6qs;ou\nnopf=2kpr;1mo\nnot=4s;1u\nnotin=6q1;ng\nnotinE=6wp,mw;11q\nnotindot=6wl,mw;11m\nnotinva=6q1;nf\nnotinvb=6wn;11p\nnotinvc=6wm;11o\nnotni=6q4;nn\nnotniva=6q4;nm\nnotnivb=6wu;11w\nnotnivc=6wt;11v\nnpar=6qu;p4\nnparallel=6qu;p2\nnparsl=8hp,6hx;1j5\nnpart=6pu,mw;mw\nnpolint=8b8;1cu\nnpr=6tc;vd\nnprcue=6w0;10q\nnpre=8fj,mw;1gw\nnprec=6tc;vc\nnpreceq=8fj,mw;1gx\nnrArr=6of;lp\nnrarr=6mz;iw\nnrarrc=84z,mw;18s\nnrarrw=6n1,mw;ix\nnrightarrow=6mz;iv\nnrtri=6wb;118\nnrtrie=6wd;11e\nnsc=6td;vg\nnsccue=6w1;10s\nnsce=8fk,mw;1h2\nnscr=2klf;1k5\nnshortmid=6qs;os\nnshortparallel=6qu;p1\nnsim=6rl;qm\nnsime=6ro;qx\nnsimeq=6ro;qw\nnsmid=6qs;ot\nnspar=6qu;p3\nnsqsube=6w2;10u\nnsqsupe=6w3;10w\nnsub=6tg;vs\nnsubE=8g5,mw;1hv\nnsube=6tk;w2\nnsubset=6te,6he;vi\nnsubseteq=6tk;w1\nnsubseteqq=8g5,mw;1hw\nnsucc=6td;vf\nnsucceq=8fk,mw;1h3\nnsup=6th;vt\nnsupE=8g6,mw;1hz\nnsupe=6tl;w5\nnsupset=6tf,6he;vn\nnsupseteq=6tl;w4\nnsupseteqq=8g6,mw;1i0\nntgl=6t5;ur\nntilde=6p;42\nntlg=6t4;up\nntriangleleft=6wa;114\nntrianglelefteq=6wc;11a\nntriangleright=6wb;117\nntrianglerighteq=6wd;11d\nnu=ql;9f\nnum=z;5\nnumero=6ja;fy\nnumsp=6br;d5\nnvDash=6ul;y5\nnvHarr=83o;17u\nnvap=6rx,6he;ri\nnvdash=6uk;y4\nnvge=6sl,6he;su\nnvgt=1q,6he;q\nnvinfin=89q;1c5\nnvlArr=83m;17s\nnvle=6sk,6he;sr\nnvlt=1o,6he;l\nnvltrie=6us,6he;yf\nnvrArr=83n;17t\nnvrtrie=6ut,6he;yj\nnvsim=6rg,6he;q6\nnwArr=6om;ma\nnwarhk=84j;18g\nnwarr=6mu;ij\nnwarrow=6mu;ii\nnwnear=84n;18m\noS=79k;13h\noacute=6r;44\noast=6u3;xd\nocir=6u2;xb\nocirc=6s;45\nocy=u6;c5\nodash=6u5;xf\nodblac=9d;6l\nodiv=8c8;1dg\nodot=6u1;x9\nodsold=88s;1bn\noelig=9f;6n\nofcir=88v;1bp\nofr=2koc;1lg\nogon=kb;87\nograve=6q;43\nogt=88x;1br\nohbar=88l;1bi\nohm=q1;91\noint=6r2;pk\nolarr=6nu;k7\nolcir=88u;1bo\nolcross=88r;1bm\noline=6da;en\nolt=88w;1bq\nomacr=99;6j\nomega=qx;9u\nomicron=qn;9h\nomid=88m;1bj\nominus=6ty;x4\noopf=2kps;1mp\nopar=88n;1bk\noperp=88p;1bl\noplus=6tx;x2\nor=6qw;p8\norarr=6nv;k9\nord=8d9;1ea\norder=6k4;h1\norderof=6k4;h0\nordf=4q;1s\nordm=56;2h\norigof=6uu;yn\noror=8d2;1e4\norslope=8d3;1e5\norv=8d7;1e8\noscr=6k4;h2\noslash=6w;4a\nosol=6u0;x7\notilde=6t;46\notimes=6tz;x6\notimesas=8c6;1de\nouml=6u;47\novbar=6yl;12x\npar=6qt;oz\npara=52;2a\nparallel=6qt;ox\nparsim=8hf;1j4\nparsl=8hp;1j6\npart=6pu;my\npcy=u7;c6\npercnt=11;7\nperiod=1a;h\npermil=6cw;ed\nperp=6ud;xw\npertenk=6cx;ee\npfr=2kod;1lh\nphi=qu;9r\nphiv=r9;a2\nphmmat=6k3;gy\nphone=7im;162\npi=qo;9i\npitchfork=6vo;101\npiv=ra;a4\nplanck=6j3;fj\nplanckh=6j2;fh\nplankv=6j3;fk\nplus=17;f\nplusacir=8bn;1cz\nplusb=6u6;xh\npluscir=8bm;1cy\nplusdo=6qc;nz\nplusdu=8bp;1d1\npluse=8du;1el\nplusmn=4x;23\nplussim=8bq;1d2\nplustwo=8br;1d3\npm=4x;24\npointint=8b9;1cv\npopf=2kpt;1mq\npound=4j;1h\npr=6t6;uu\nprE=8fn;1h7\nprap=8fr;1he\nprcue=6t8;v0\npre=8fj;1h0\nprec=6t6;ut\nprecapprox=8fr;1hd\npreccurlyeq=6t8;uz\npreceq=8fj;1gz\nprecnapprox=8ft;1hh\nprecneqq=8fp;1h9\nprecnsim=6w8;10z\nprecsim=6ta;v5\nprime=6cy;ef\nprimes=6jd;g2\nprnE=8fp;1ha\nprnap=8ft;1hi\nprnsim=6w8;110\nprod=6q7;np\nprofalar=6y6;12v\nprofline=6xe;12e\nprofsurf=6xf;12f\nprop=6ql;oe\npropto=6ql;oc\nprsim=6ta;v6\nprurel=6uo;y8\npscr=2klh;1k6\npsi=qw;9t\npuncsp=6bs;d6\nqfr=2koe;1li\nqint=8b0;1co\nqopf=2kpu;1mr\nqprime=6dz;es\nqscr=2kli;1k7\nquaternions=6j1;ff\nquatint=8ba;1cw\nquest=1r;t\nquesteq=6sf;si\nquot=y;4\nrAarr=6or;mh\nrArr=6oi;lz\nrAtail=84c;18b\nrBarr=83z;181\nrHar=86c;19s\nrace=6rh,mp;qb\nracute=9h;6p\nradic=6qi;o8\nraemptyv=88j;1bg\nrang=7vt;172\nrangd=87m;1at\nrange=885;1b2\nrangle=7vt;171\nraquo=57;2i\nrarr=6mq;i6\nrarrap=86t;1ab\nrarrb=6p1;mm\nrarrbfs=84g;18f\nrarrc=84z;18t\nrarrfs=84e;18d\nrarrhk=6ne;jm\nrarrlp=6ng;jq\nrarrpl=85h;191\nrarrsim=86s;1aa\nrarrtl=6n7;j9\nrarrw=6n1;iz\nratail=84a;189\nratio=6ra;pz\nrationals=6je;g4\nrbarr=83x;17y\nrbbrk=7sj;16q\nrbrace=3h;1b\nrbrack=2l;y\nrbrke=87g;1an\nrbrksld=87i;1ap\nrbrkslu=87k;1ar\nrcaron=9l;6t\nrcedil=9j;6r\nrceil=6x5;124\nrcub=3h;1c\nrcy=u8;c7\nrdca=853;18w\nrdldhar=86h;19x\nrdquo=6cd;e2\nrdquor=6cd;e1\nrdsh=6nn;k0\nreal=6jg;g9\nrealine=6jf;g6\nrealpart=6jg;g8\nreals=6jh;gc\nrect=7fx;151\nreg=4u;1y\nrfisht=871;1ah\nrfloor=6x7;128\nrfr=2kof;1lj\nrhard=6o1;kr\nrharu=6o0;ko\nrharul=86k;1a0\nrho=qp;9j\nrhov=s1;ab\nrightarrow=6mq;i4\nrightarrowtail=6n7;j8\nrightharpoondown=6o1;kp\nrightharpoonup=6o0;km\nrightleftarrows=6o4;kz\nrightleftharpoons=6oc;lh\nrightrightarrows=6o9;la\nrightsquigarrow=6n1;iy\nrightthreetimes=6vg;zn\nring=ka;86\nrisingdotseq=6s3;s3\nrlarr=6o4;l0\nrlhar=6oc;lj\nrlm=6bz;dj\nrmoust=71t;133\nrmoustache=71t;132\nrnmid=8ha;1iz\nroang=7vx;176\nroarr=6pq;mq\nrobrk=7vr;16w\nropar=87a;1al\nropf=2kpv;1ms\nroplus=8by;1d7\nrotimes=8c5;1dd\nrpar=15;c\nrpargt=87o;1av\nrppolint=8b6;1cs\nrrarr=6o9;lb\nrsaquo=6d6;el\nrscr=2klj;1k8\nrsh=6nl;jy\nrsqb=2l;z\nrsquo=6c9;dv\nrsquor=6c9;du\nrthree=6vg;zo\nrtimes=6ve;zk\nrtri=7g9;15d\nrtrie=6ut;ym\nrtrif=7g8;15b\nrtriltri=89a;1by\nruluhar=86g;19w\nrx=6ji;ge\nsacute=9n;6v\nsbquo=6ca;dx\nsc=6t7;ux\nscE=8fo;1h8\nscap=8fs;1hg\nscaron=9t;71\nsccue=6t9;v3\nsce=8fk;1h6\nscedil=9r;6z\nscirc=9p;6x\nscnE=8fq;1hc\nscnap=8fu;1hk\nscnsim=6w9;112\nscpolint=8b7;1ct\nscsim=6tb;va\nscy=u9;c8\nsdot=6v9;zd\nsdotb=6u9;xn\nsdote=8di;1ec\nseArr=6oo;mc\nsearhk=84l;18j\nsearr=6mw;ip\nsearrow=6mw;io\nsect=4n;1l\nsemi=1n;k\nseswar=84p;18p\nsetminus=6qe;o2\nsetmn=6qe;o4\nsext=7qu;16n\nsfr=2kog;1lk\nsfrown=6xu;12q\nsharp=7lb;16h\nshchcy=uh;cg\nshcy=ug;cf\nshortmid=6qr;oo\nshortparallel=6qt;ow\nshy=4t;1v\nsigma=qr;9n\nsigmaf=qq;9l\nsigmav=qq;9m\nsim=6rg;qa\nsimdot=8dm;1ed\nsime=6rn;qu\nsimeq=6rn;qt\nsimg=8f2;1gb\nsimgE=8f4;1gd\nsiml=8f1;1ga\nsimlE=8f3;1gc\nsimne=6rq;r0\nsimplus=8bo;1d0\nsimrarr=86q;1a8\nslarr=6mo;hw\nsmallsetminus=6qe;o0\nsmashp=8c3;1db\nsmeparsl=89w;1c7\nsmid=6qr;op\nsmile=6xv;12t\nsmt=8fe;1go\nsmte=8fg;1gr\nsmtes=8fg,1e68;1gq\nsoftcy=uk;cj\nsol=1b;i\nsolb=890;1bu\nsolbar=6yn;12y\nsopf=2kpw;1mt\nspades=7kw;166\nspadesuit=7kw;165\nspar=6qt;oy\nsqcap=6tv;wx\nsqcaps=6tv,1e68;wv\nsqcup=6tw;x0\nsqcups=6tw,1e68;wy\nsqsub=6tr;wk\nsqsube=6tt;wr\nsqsubset=6tr;wj\nsqsubseteq=6tt;wq\nsqsup=6ts;wo\nsqsupe=6tu;wu\nsqsupset=6ts;wn\nsqsupseteq=6tu;wt\nsqu=7fl;14v\nsquare=7fl;14u\nsquarf=7fu;14y\nsquf=7fu;14z\nsrarr=6mq;i5\nsscr=2klk;1k9\nssetmn=6qe;o3\nssmile=6xv;12s\nsstarf=6va;ze\nstar=7ie;161\nstarf=7id;160\nstraightepsilon=s5;ac\nstraightphi=r9;a0\nstrns=4v;1z\nsub=6te;vl\nsubE=8g5;1hy\nsubdot=8fx;1hn\nsube=6ti;vw\nsubedot=8g3;1ht\nsubmult=8g1;1hr\nsubnE=8gb;1i8\nsubne=6tm;w9\nsubplus=8fz;1hp\nsubrarr=86x;1ae\nsubset=6te;vk\nsubseteq=6ti;vv\nsubseteqq=8g5;1hx\nsubsetneq=6tm;w8\nsubsetneqq=8gb;1i7\nsubsim=8g7;1i3\nsubsub=8gl;1ij\nsubsup=8gj;1ih\nsucc=6t7;uw\nsuccapprox=8fs;1hf\nsucccurlyeq=6t9;v2\nsucceq=8fk;1h5\nsuccnapprox=8fu;1hj\nsuccneqq=8fq;1hb\nsuccnsim=6w9;111\nsuccsim=6tb;v9\nsum=6q9;nt\nsung=7l6;16d\nsup=6tf;vr\nsup1=55;2g\nsup2=4y;25\nsup3=4z;26\nsupE=8g6;1i2\nsupdot=8fy;1ho\nsupdsub=8go;1im\nsupe=6tj;vz\nsupedot=8g4;1hu\nsuphsol=7ux;16s\nsuphsub=8gn;1il\nsuplarr=86z;1af\nsupmult=8g2;1hs\nsupnE=8gc;1ic\nsupne=6tn;wd\nsupplus=8g0;1hq\nsupset=6tf;vq\nsupseteq=6tj;vy\nsupseteqq=8g6;1i1\nsupsetneq=6tn;wc\nsupsetneqq=8gc;1ib\nsupsim=8g8;1i4\nsupsub=8gk;1ii\nsupsup=8gm;1ik\nswArr=6op;md\nswarhk=84m;18l\nswarr=6mx;is\nswarrow=6mx;ir\nswnwar=84q;18r\nszlig=67;3k\ntarget=6xi;12h\ntau=qs;9o\ntbrk=71w;135\ntcaron=9x;75\ntcedil=9v;73\ntcy=ua;c9\ntdot=6hn;f4\ntelrec=6xh;12g\ntfr=2koh;1ll\nthere4=6r8;pv\ntherefore=6r8;pu\ntheta=qg;9a\nthetasym=r5;9v\nthetav=r5;9x\nthickapprox=6rs;r3\nthicksim=6rg;q7\nthinsp=6bt;d8\nthkap=6rs;r7\nthksim=6rg;q8\nthorn=72;4g\ntilde=kc;89\ntimes=5z;3c\ntimesb=6u8;xl\ntimesbar=8c1;1da\ntimesd=8c0;1d9\ntint=6r1;ph\ntoea=84o;18o\ntop=6uc;xt\ntopbot=6ye;12w\ntopcir=8hd;1j2\ntopf=2kpx;1mu\ntopfork=8gq;1io\ntosa=84p;18q\ntprime=6d0;eh\ntrade=6jm;gg\ntriangle=7g5;158\ntriangledown=7gf;15i\ntriangleleft=7gj;15m\ntrianglelefteq=6us;yh\ntriangleq=6sc;sg\ntriangleright=7g9;15c\ntrianglerighteq=6ut;yl\ntridot=7ho;15r\ntrie=6sc;sh\ntriminus=8ca;1di\ntriplus=8c9;1dh\ntrisb=899;1bx\ntritime=8cb;1dj\ntrpezium=736;13d\ntscr=2kll;1ka\ntscy=ue;cd\ntshcy=uz;cx\ntstrok=9z;77\ntwixt=6ss;tu\ntwoheadleftarrow=6n2;j0\ntwoheadrightarrow=6n4;j3\nuArr=6oh;lv\nuHar=86b;19r\nuacute=6y;4c\nuarr=6mp;i1\nubrcy=v2;cz\nubreve=a5;7d\nucirc=6z;4d\nucy=ub;ca\nudarr=6o5;l2\nudblac=a9;7h\nudhar=86m;1a3\nufisht=872;1ai\nufr=2koi;1lm\nugrave=6x;4b\nuharl=6nz;kl\nuharr=6ny;ki\nuhblk=7eo;14n\nulcorn=6xo;12j\nulcorner=6xo;12i\nulcrop=6xb;12c\nultri=7i0;15u\numacr=a3;7b\numl=4o;1p\nuogon=ab;7j\nuopf=2kpy;1mv\nuparrow=6mp;i0\nupdownarrow=6mt;if\nupharpoonleft=6nz;kj\nupharpoonright=6ny;kg\nuplus=6tq;wg\nupsi=qt;9q\nupsih=r6;9y\nupsilon=qt;9p\nupuparrows=6o8;l8\nurcorn=6xp;12l\nurcorner=6xp;12k\nurcrop=6xa;12b\nuring=a7;7f\nurtri=7i1;15v\nuscr=2klm;1kb\nutdot=6wg;11h\nutilde=a1;79\nutri=7g5;159\nutrif=7g4;157\nuuarr=6o8;l9\nuuml=70;4e\nuwangle=887;1b4\nvArr=6ol;m9\nvBar=8h4;1iu\nvBarv=8h5;1iv\nvDash=6ug;y0\nvangrt=87w;1az\nvarepsilon=s5;ad\nvarkappa=s0;a8\nvarnothing=6px;n4\nvarphi=r9;a1\nvarpi=ra;a3\nvarpropto=6ql;ob\nvarr=6mt;ig\nvarrho=s1;aa\nvarsigma=qq;9k\nvarsubsetneq=6tm,1e68;w6\nvarsubsetneqq=8gb,1e68;1i5\nvarsupsetneq=6tn,1e68;wa\nvarsupsetneqq=8gc,1e68;1i9\nvartheta=r5;9w\nvartriangleleft=6uq;y9\nvartriangleright=6ur;yc\nvcy=tu;bt\nvdash=6ua;xp\nvee=6qw;p7\nveebar=6uz;yu\nveeeq=6sa;sf\nvellip=6we;11f\nverbar=3g;19\nvert=3g;1a\nvfr=2koj;1ln\nvltri=6uq;yb\nvnsub=6te,6he;vj\nvnsup=6tf,6he;vo\nvopf=2kpz;1mw\nvprop=6ql;od\nvrtri=6ur;ye\nvscr=2kln;1kc\nvsubnE=8gb,1e68;1i6\nvsubne=6tm,1e68;w7\nvsupnE=8gc,1e68;1ia\nvsupne=6tn,1e68;wb\nvzigzag=87u;1ay\nwcirc=ad;7l\nwedbar=8db;1eb\nwedge=6qv;p5\nwedgeq=6s9;se\nweierp=6jc;g0\nwfr=2kok;1lo\nwopf=2kq0;1mx\nwp=6jc;g1\nwr=6rk;qk\nwreath=6rk;qj\nwscr=2klo;1kd\nxcap=6v6;z6\nxcirc=7hr;15t\nxcup=6v7;z9\nxdtri=7gd;15f\nxfr=2kol;1lp\nxhArr=7wa;17o\nxharr=7w7;17f\nxi=qm;9g\nxlArr=7w8;17i\nxlarr=7w5;179\nxmap=7wc;17q\nxnis=6wr;11t\nxodot=8ao;1ce\nxopf=2kq1;1my\nxoplus=8ap;1cg\nxotime=8aq;1ci\nxrArr=7w9;17l\nxrarr=7w6;17c\nxscr=2klp;1ke\nxsqcup=8au;1cm\nxuplus=8as;1ck\nxutri=7g3;155\nxvee=6v5;z2\nxwedge=6v4;yz\nyacute=71;4f\nyacy=un;cm\nycirc=af;7n\nycy=uj;ci\nyen=4l;1j\nyfr=2kom;1lq\nyicy=uv;ct\nyopf=2kq2;1mz\nyscr=2klq;1kf\nyucy=um;cl\nyuml=73;4h\nzacute=ai;7q\nzcaron=am;7u\nzcy=tz;by\nzdot=ak;7s\nzeetrf=6js;gk\nzeta=qe;98\nzfr=2kon;1lr\nzhcy=ty;bx\nzigrarr=6ot;mi\nzopf=2kq3;1n0\nzscr=2klr;1kg\nzwj=6bx;dh\nzwnj=6bw;dg" + +} + +final class MutexLock: NSLocking { + + private let locker: NSLocking + + init() { + #if os(iOS) || os(macOS) || os(watchOS) || os(tvOS) + if #available(iOS 10.0, macOS 10.12, watchOS 3.0, tvOS 10.0, *) { + locker = UnfairLock() + } else { + locker = Mutex() + } + #else + locker = Mutex() + #endif + } + + func lock() { + locker.lock() + } + + func unlock() { + locker.unlock() + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Evaluator.swift b/Swiftgram/SwiftSoup/Sources/Evaluator.swift new file mode 100644 index 00000000000..0ecf21535ef --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Evaluator.swift @@ -0,0 +1,720 @@ +// +// Evaluator.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 22/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * Evaluates that an element matches the selector. + */ +open class Evaluator { + public init () {} + + /** + * Test if the element meets the evaluator's requirements. + * + * @param root Root of the matching subtree + * @param element tested element + * @return Returns true if the requirements are met or + * false otherwise + */ + open func matches(_ root: Element, _ element: Element)throws->Bool { + preconditionFailure("self method must be overridden") + } + + open func toString() -> String { + preconditionFailure("self method must be overridden") + } + + /** + * Evaluator for tag name + */ + public class Tag: Evaluator { + private let tagName: String + private let tagNameNormal: String + + public init(_ tagName: String) { + self.tagName = tagName + self.tagNameNormal = tagName.lowercased() + } + + open override func matches(_ root: Element, _ element: Element)throws->Bool { + return element.tagNameNormal() == tagNameNormal + } + + open override func toString() -> String { + return String(tagName) + } + } + + /** + * Evaluator for tag name that ends with + */ + public final class TagEndsWith: Evaluator { + private let tagName: String + + public init(_ tagName: String) { + self.tagName = tagName + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return (element.tagName().hasSuffix(tagName)) + } + + public override func toString() -> String { + return String(tagName) + } + } + + /** + * Evaluator for element id + */ + public final class Id: Evaluator { + private let id: String + + public init(_ id: String) { + self.id = id + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return (id == element.id()) + } + + public override func toString() -> String { + return "#\(id)" + } + + } + + /** + * Evaluator for element class + */ + public final class Class: Evaluator { + private let className: String + + public init(_ className: String) { + self.className = className + } + + public override func matches(_ root: Element, _ element: Element) -> Bool { + return (element.hasClass(className)) + } + + public override func toString() -> String { + return ".\(className)" + } + + } + + /** + * Evaluator for attribute name matching + */ + public final class Attribute: Evaluator { + private let key: String + + public init(_ key: String) { + self.key = key + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return element.hasAttr(key) + } + + public override func toString() -> String { + return "[\(key)]" + } + + } + + /** + * Evaluator for attribute name prefix matching + */ + public final class AttributeStarting: Evaluator { + private let keyPrefix: String + + public init(_ keyPrefix: String)throws { + try Validate.notEmpty(string: keyPrefix) + self.keyPrefix = keyPrefix.lowercased() + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if let values = element.getAttributes() { + for attribute in values where attribute.getKey().lowercased().hasPrefix(keyPrefix) { + return true + } + } + return false + } + + public override func toString() -> String { + return "[^\(keyPrefix)]" + } + + } + + /** + * Evaluator for attribute name/value matching + */ + public final class AttributeWithValue: AttributeKeyPair { + public override init(_ key: String, _ value: String)throws { + try super.init(key, value) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if element.hasAttr(key) { + let string = try element.attr(key) + return value.equalsIgnoreCase(string: string.trim()) + } + return false + } + + public override func toString() -> String { + return "[\(key)=\(value)]" + } + + } + + /** + * Evaluator for attribute name != value matching + */ + public final class AttributeWithValueNot: AttributeKeyPair { + public override init(_ key: String, _ value: String)throws { + try super.init(key, value) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let string = try element.attr(key) + return !value.equalsIgnoreCase(string: string) + } + + public override func toString() -> String { + return "[\(key)!=\(value)]" + } + + } + + /** + * Evaluator for attribute name/value matching (value prefix) + */ + public final class AttributeWithValueStarting: AttributeKeyPair { + public override init(_ key: String, _ value: String)throws { + try super.init(key, value) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if element.hasAttr(key) { + return try element.attr(key).lowercased().hasPrefix(value) // value is lower case already + } + return false + } + + public override func toString() -> String { + return "[\(key)^=\(value)]" + } + + } + + /** + * Evaluator for attribute name/value matching (value ending) + */ + public final class AttributeWithValueEnding: AttributeKeyPair { + public override init(_ key: String, _ value: String)throws { + try super.init(key, value) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if element.hasAttr(key) { + return try element.attr(key).lowercased().hasSuffix(value) // value is lower case + } + return false + } + + public override func toString() -> String { + return "[\(key)$=\(value)]" + } + + } + + /** + * Evaluator for attribute name/value matching (value containing) + */ + public final class AttributeWithValueContaining: AttributeKeyPair { + public override init(_ key: String, _ value: String)throws { + try super.init(key, value) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if element.hasAttr(key) { + return try element.attr(key).lowercased().contains(value) // value is lower case + } + return false + } + + public override func toString() -> String { + return "[\(key)*=\(value)]" + } + + } + + /** + * Evaluator for attribute name/value matching (value regex matching) + */ + public final class AttributeWithValueMatching: Evaluator { + let key: String + let pattern: Pattern + + public init(_ key: String, _ pattern: Pattern) { + self.key = key.trim().lowercased() + self.pattern = pattern + super.init() + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + if element.hasAttr(key) { + let string = try element.attr(key) + return pattern.matcher(in: string).find() + } + return false + } + + public override func toString() -> String { + return "[\(key)~=\(pattern.toString())]" + } + + } + + /** + * Abstract evaluator for attribute name/value matching + */ + public class AttributeKeyPair: Evaluator { + let key: String + var value: String + + public init(_ key: String, _ value2: String)throws { + var value2 = value2 + try Validate.notEmpty(string: key) + try Validate.notEmpty(string: value2) + + self.key = key.trim().lowercased() + if value2.startsWith("\"") && value2.hasSuffix("\"") || value2.startsWith("'") && value2.hasSuffix("'") { + value2 = value2.substring(1, value2.count-2) + } + self.value = value2.trim().lowercased() + } + + open override func matches(_ root: Element, _ element: Element)throws->Bool { + preconditionFailure("self method must be overridden") + } + } + + /** + * Evaluator for any / all element matching + */ + public final class AllElements: Evaluator { + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return true + } + + public override func toString() -> String { + return "*" + } + } + + /** + * Evaluator for matching by sibling index number (e {@literal <} idx) + */ + public final class IndexLessThan: IndexEvaluator { + public override init(_ index: Int) { + super.init(index) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return try element.elementSiblingIndex() < index + } + + public override func toString() -> String { + return ":lt(\(index))" + } + + } + + /** + * Evaluator for matching by sibling index number (e {@literal >} idx) + */ + public final class IndexGreaterThan: IndexEvaluator { + public override init(_ index: Int) { + super.init(index) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return try element.elementSiblingIndex() > index + } + + public override func toString() -> String { + return ":gt(\(index))" + } + + } + + /** + * Evaluator for matching by sibling index number (e = idx) + */ + public final class IndexEquals: IndexEvaluator { + public override init(_ index: Int) { + super.init(index) + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return try element.elementSiblingIndex() == index + } + + public override func toString() -> String { + return ":eq(\(index))" + } + + } + + /** + * Evaluator for matching the last sibling (css :last-child) + */ + public final class IsLastChild: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + + if let parent = element.parent() { + let index = try element.elementSiblingIndex() + return !(parent is Document) && index == (parent.getChildNodes().count - 1) + } + return false + } + + public override func toString() -> String { + return ":last-child" + } + } + + public final class IsFirstOfType: IsNthOfType { + public init() { + super.init(0, 1) + } + public override func toString() -> String { + return ":first-of-type" + } + } + + public final class IsLastOfType: IsNthLastOfType { + public init() { + super.init(0, 1) + } + public override func toString() -> String { + return ":last-of-type" + } + } + + public class CssNthEvaluator: Evaluator { + public let a: Int + public let b: Int + + public init(_ a: Int, _ b: Int) { + self.a = a + self.b = b + } + public init(_ b: Int) { + self.a = 0 + self.b = b + } + + open override func matches(_ root: Element, _ element: Element)throws->Bool { + let p: Element? = element.parent() + if (p == nil || (((p as? Document) != nil))) {return false} + + let pos: Int = try calculatePosition(root, element) + if (a == 0) {return pos == b} + + return (pos-b)*a >= 0 && (pos-b)%a==0 + } + + open override func toString() -> String { + if (a == 0) { + return ":\(getPseudoClass())(\(b))" + } + if (b == 0) { + return ":\(getPseudoClass())(\(a))" + } + return ":\(getPseudoClass())(\(a)\(b))" + } + + open func getPseudoClass() -> String { + preconditionFailure("self method must be overridden") + } + open func calculatePosition(_ root: Element, _ element: Element)throws->Int { + preconditionFailure("self method must be overridden") + } + } + + /** + * css-compatible Evaluator for :eq (css :nth-child) + * + * @see IndexEquals + */ + public final class IsNthChild: CssNthEvaluator { + + public override init(_ a: Int, _ b: Int) { + super.init(a, b) + } + + public override func calculatePosition(_ root: Element, _ element: Element)throws->Int { + return try element.elementSiblingIndex()+1 + } + + public override func getPseudoClass() -> String { + return "nth-child" + } + } + + /** + * css pseudo class :nth-last-child) + * + * @see IndexEquals + */ + public final class IsNthLastChild: CssNthEvaluator { + public override init(_ a: Int, _ b: Int) { + super.init(a, b) + } + + public override func calculatePosition(_ root: Element, _ element: Element)throws->Int { + var i = 0 + + if let l = element.parent() { + i = l.children().array().count + } + return i - (try element.elementSiblingIndex()) + } + + public override func getPseudoClass() -> String { + return "nth-last-child" + } + } + + /** + * css pseudo class nth-of-type + * + */ + public class IsNthOfType: CssNthEvaluator { + public override init(_ a: Int, _ b: Int) { + super.init(a, b) + } + + open override func calculatePosition(_ root: Element, _ element: Element) -> Int { + var pos = 0 + let family: Elements? = element.parent()?.children() + if let array = family?.array() { + for el in array { + if (el.tag() == element.tag()) {pos+=1} + if (el === element) {break} + } + } + + return pos + } + + open override func getPseudoClass() -> String { + return "nth-of-type" + } + } + + public class IsNthLastOfType: CssNthEvaluator { + + public override init(_ a: Int, _ b: Int) { + super.init(a, b) + } + + open override func calculatePosition(_ root: Element, _ element: Element)throws->Int { + var pos = 0 + if let family = element.parent()?.children() { + let x = try element.elementSiblingIndex() + for i in x.. String { + return "nth-last-of-type" + } + } + + /** + * Evaluator for matching the first sibling (css :first-child) + */ + public final class IsFirstChild: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let p = element.parent() + if(p != nil && !(((p as? Document) != nil))) { + return (try element.elementSiblingIndex()) == 0 + } + return false + } + + public override func toString() -> String { + return ":first-child" + } + } + + /** + * css3 pseudo-class :root + * @see :root selector + * + */ + public final class IsRoot: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let r: Element = ((root as? Document) != nil) ? root.child(0) : root + return element === r + } + public override func toString() -> String { + return ":root" + } + } + + public final class IsOnlyChild: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let p = element.parent() + return p != nil && !((p as? Document) != nil) && element.siblingElements().array().count == 0 + } + public override func toString() -> String { + return ":only-child" + } + } + + public final class IsOnlyOfType: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let p = element.parent() + if (p == nil || (p as? Document) != nil) {return false} + + var pos = 0 + if let family = p?.children().array() { + for el in family { + if (el.tag() == element.tag()) {pos+=1} + } + } + return pos == 1 + } + + public override func toString() -> String { + return ":only-of-type" + } + } + + public final class IsEmpty: Evaluator { + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let family: Array = element.getChildNodes() + for n in family { + if (!((n as? Comment) != nil || (n as? XmlDeclaration) != nil || (n as? DocumentType) != nil)) {return false} + } + return true + } + + public override func toString() -> String { + return ":empty" + } + } + + /** + * Abstract evaluator for sibling index matching + * + * @author ant + */ + public class IndexEvaluator: Evaluator { + let index: Int + + public init(_ index: Int) { + self.index = index + } + } + + /** + * Evaluator for matching Element (and its descendants) text + */ + public final class ContainsText: Evaluator { + private let searchText: String + + public init(_ searchText: String) { + self.searchText = searchText.lowercased() + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return (try element.text().lowercased().contains(searchText)) + } + + public override func toString() -> String { + return ":contains(\(searchText)" + } + } + + /** + * Evaluator for matching Element's own text + */ + public final class ContainsOwnText: Evaluator { + private let searchText: String + + public init(_ searchText: String) { + self.searchText = searchText.lowercased() + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + return (element.ownText().lowercased().contains(searchText)) + } + + public override func toString() -> String { + return ":containsOwn(\(searchText)" + } + } + + /** + * Evaluator for matching Element (and its descendants) text with regex + */ + public final class Matches: Evaluator { + private let pattern: Pattern + + public init(_ pattern: Pattern) { + self.pattern = pattern + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let m = try pattern.matcher(in: element.text()) + return m.find() + } + + public override func toString() -> String { + return ":matches(\(pattern)" + } + } + + /** + * Evaluator for matching Element's own text with regex + */ + public final class MatchesOwn: Evaluator { + private let pattern: Pattern + + public init(_ pattern: Pattern) { + self.pattern = pattern + } + + public override func matches(_ root: Element, _ element: Element)throws->Bool { + let m = pattern.matcher(in: element.ownText()) + return m.find() + } + + public override func toString() -> String { + return ":matchesOwn(\(pattern.toString())" + } + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Exception.swift b/Swiftgram/SwiftSoup/Sources/Exception.swift new file mode 100644 index 00000000000..a4ab97ab94d --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Exception.swift @@ -0,0 +1,22 @@ +// +// Exception.swift +// SwifSoup +// +// Created by Nabil Chatbi on 02/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +public enum ExceptionType { + case IllegalArgumentException + case IOException + case XmlDeclaration + case MalformedURLException + case CloneNotSupportedException + case SelectorParseException +} + +public enum Exception: Error { + case Error(type:ExceptionType, Message: String) +} diff --git a/Swiftgram/SwiftSoup/Sources/FormElement.swift b/Swiftgram/SwiftSoup/Sources/FormElement.swift new file mode 100644 index 00000000000..a15754fa04b --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/FormElement.swift @@ -0,0 +1,125 @@ +// +// FormElement.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * A HTML Form Element provides ready access to the form fields/controls that are associated with it. It also allows a + * form to easily be submitted. + */ +public class FormElement: Element { + private let _elements: Elements = Elements() + + /** + * Create a new, standalone form element. + * + * @param tag tag of this element + * @param baseUri the base URI + * @param attributes initial attributes + */ + public override init(_ tag: Tag, _ baseUri: String, _ attributes: Attributes) { + super.init(tag, baseUri, attributes) + } + + /** + * Get the list of form control elements associated with this form. + * @return form controls associated with this element. + */ + public func elements() -> Elements { + return _elements + } + + /** + * Add a form control element to this form. + * @param element form control to add + * @return this form element, for chaining + */ + @discardableResult + public func addElement(_ element: Element) -> FormElement { + _elements.add(element) + return self + } + + //todo: + /** + * Prepare to submit this form. A Connection object is created with the request set up from the form values. You + * can then set up other options (like user-agent, timeout, cookies), then execute it. + * @return a connection prepared from the values of this form. + * @throws IllegalArgumentException if the form's absolute action URL cannot be determined. Make sure you pass the + * document's base URI when parsing. + */ +// public func submit()throws->Connection { +// let action: String = hasAttr("action") ? try absUrl("action") : try baseUri() +// Validate.notEmpty(action, "Could not determine a form action URL for submit. Ensure you set a base URI when parsing.") +// Connection.Method method = attr("method").toUpperCase().equals("POST") ? +// Connection.Method.POST : Connection.Method.GET +// +// return Jsoup.connect(action) +// .data(formData()) +// .method(method) +// } + + //todo: + /** + * Get the data that this form submits. The returned list is a copy of the data, and changes to the contents of the + * list will not be reflected in the DOM. + * @return a list of key vals + */ +// public List formData() { +// ArrayList data = new ArrayList(); +// +// // iterate the form control elements and accumulate their values +// for (Element el: elements) { +// if (!el.tag().isFormSubmittable()) continue; // contents are form listable, superset of submitable +// if (el.hasAttr("disabled")) continue; // skip disabled form inputs +// String name = el.attr("name"); +// if (name.length() == 0) continue; +// String type = el.attr("type"); +// +// if ("select".equals(el.tagName())) { +// Elements options = el.select("option[selected]"); +// boolean set = false; +// for (Element option: options) { +// data.add(HttpConnection.KeyVal.create(name, option.val())); +// set = true; +// } +// if (!set) { +// Element option = el.select("option").first(); +// if (option != null) +// data.add(HttpConnection.KeyVal.create(name, option.val())); +// } +// } else if ("checkbox".equalsIgnoreCase(type) || "radio".equalsIgnoreCase(type)) { +// // only add checkbox or radio if they have the checked attribute +// if (el.hasAttr("checked")) { +// final String val = el.val().length() > 0 ? el.val() : "on"; +// data.add(HttpConnection.KeyVal.create(name, val)); +// } +// } else { +// data.add(HttpConnection.KeyVal.create(name, el.val())); +// } +// } +// return data; +// } + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = FormElement(_tag, baseUri!, attributes!) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = FormElement(_tag, baseUri!, attributes!) + return copy(clone: clone, parent: parent) + } + public override func copy(clone: Node, parent: Node?) -> Node { + let clone = clone as! FormElement + for att in _elements.array() { + clone._elements.add(att) + } + return super.copy(clone: clone, parent: parent) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/HtmlTreeBuilder.swift b/Swiftgram/SwiftSoup/Sources/HtmlTreeBuilder.swift new file mode 100644 index 00000000000..4f0fb9ec60f --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/HtmlTreeBuilder.swift @@ -0,0 +1,781 @@ +// +// HtmlTreeBuilder.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 24/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * HTML Tree Builder; creates a DOM from Tokens. + */ +class HtmlTreeBuilder: TreeBuilder { + + private enum TagSets { + // tag searches + static let inScope = ["applet", "caption", "html", "table", "td", "th", "marquee", "object"] + static let list = ["ol", "ul"] + static let button = ["button"] + static let tableScope = ["html", "table"] + static let selectScope = ["optgroup", "option"] + static let endTags = ["dd", "dt", "li", "option", "optgroup", "p", "rp", "rt"] + static let titleTextarea = ["title", "textarea"] + static let frames = ["iframe", "noembed", "noframes", "style", "xmp"] + + static let special: Set = ["address", "applet", "area", "article", "aside", "base", "basefont", "bgsound", + "blockquote", "body", "br", "button", "caption", "center", "col", "colgroup", "command", "dd", + "details", "dir", "div", "dl", "dt", "embed", "fieldset", "figcaption", "figure", "footer", "form", + "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", + "iframe", "img", "input", "isindex", "li", "link", "listing", "marquee", "menu", "meta", "nav", + "noembed", "noframes", "noscript", "object", "ol", "p", "param", "plaintext", "pre", "script", + "section", "select", "style", "summary", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", + "title", "tr", "ul", "wbr", "xmp"] + } + + private var _state: HtmlTreeBuilderState = HtmlTreeBuilderState.Initial // the current state + private var _originalState: HtmlTreeBuilderState = HtmlTreeBuilderState.Initial // original / marked state + + private var baseUriSetFromDoc: Bool = false + private var headElement: Element? // the current head element + private var formElement: FormElement? // the current form element + private var contextElement: Element? // fragment parse context -- could be null even if fragment parsing + private var formattingElements: Array = Array() // active (open) formatting elements + private var pendingTableCharacters: Array = Array() // chars in table to be shifted out + private var emptyEnd: Token.EndTag = Token.EndTag() // reused empty end tag + + private var _framesetOk: Bool = true // if ok to go into frameset + private var fosterInserts: Bool = false // if next inserts should be fostered + private var fragmentParsing: Bool = false // if parsing a fragment of html + + public override init() { + super.init() + } + + public override func defaultSettings() -> ParseSettings { + return ParseSettings.htmlDefault + } + + override func parse(_ input: String, _ baseUri: String, _ errors: ParseErrorList, _ settings: ParseSettings)throws->Document { + _state = HtmlTreeBuilderState.Initial + baseUriSetFromDoc = false + return try super.parse(input, baseUri, errors, settings) + } + + func parseFragment(_ inputFragment: String, _ context: Element?, _ baseUri: String, _ errors: ParseErrorList, _ settings: ParseSettings)throws->Array { + // context may be null + _state = HtmlTreeBuilderState.Initial + initialiseParse(inputFragment, baseUri, errors, settings) + contextElement = context + fragmentParsing = true + var root: Element? = nil + + if let context = context { + if let d = context.ownerDocument() { // quirks setup: + doc.quirksMode(d.quirksMode()) + } + + // initialise the tokeniser state: + switch context.tagName() { + case TagSets.titleTextarea: + tokeniser.transition(TokeniserState.Rcdata) + case TagSets.frames: + tokeniser.transition(TokeniserState.Rawtext) + case "script": + tokeniser.transition(TokeniserState.ScriptData) + case "noscript": + tokeniser.transition(TokeniserState.Data) // if scripting enabled, rawtext + case "plaintext": + tokeniser.transition(TokeniserState.Data) + default: + tokeniser.transition(TokeniserState.Data) + } + + root = try Element(Tag.valueOf("html", settings), baseUri) + try Validate.notNull(obj: root) + try doc.appendChild(root!) + stack.append(root!) + resetInsertionMode() + + // setup form element to nearest form on context (up ancestor chain). ensures form controls are associated + // with form correctly + let contextChain: Elements = context.parents() + contextChain.add(0, context) + for parent: Element in contextChain.array() { + if let x = (parent as? FormElement) { + formElement = x + break + } + } + } + + try runParser() + if (context != nil && root != nil) { + return root!.getChildNodes() + } else { + return doc.getChildNodes() + } + } + + @discardableResult + public override func process(_ token: Token)throws->Bool { + currentToken = token + return try self._state.process(token, self) + } + + @discardableResult + func process(_ token: Token, _ state: HtmlTreeBuilderState)throws->Bool { + currentToken = token + return try state.process(token, self) + } + + func transition(_ state: HtmlTreeBuilderState) { + self._state = state + } + + func state() -> HtmlTreeBuilderState { + return _state + } + + func markInsertionMode() { + _originalState = _state + } + + func originalState() -> HtmlTreeBuilderState { + return _originalState + } + + func framesetOk(_ framesetOk: Bool) { + self._framesetOk = framesetOk + } + + func framesetOk() -> Bool { + return _framesetOk + } + + func getDocument() -> Document { + return doc + } + + func getBaseUri() -> String { + return baseUri + } + + func maybeSetBaseUri(_ base: Element)throws { + if (baseUriSetFromDoc) { // only listen to the first in parse + return + } + + let href: String = try base.absUrl("href") + if (href.count != 0) { // ignore etc + baseUri = href + baseUriSetFromDoc = true + try doc.setBaseUri(href) // set on the doc so doc.createElement(Tag) will get updated base, and to update all descendants + } + } + + func isFragmentParsing() -> Bool { + return fragmentParsing + } + + func error(_ state: HtmlTreeBuilderState) { + if (errors.canAddError() && currentToken != nil) { + errors.add(ParseError(reader.getPos(), "Unexpected token [\(currentToken!.tokenType())] when in state [\(state.rawValue)]")) + } + } + + @discardableResult + func insert(_ startTag: Token.StartTag)throws->Element { + // handle empty unknown tags + // when the spec expects an empty tag, will directly hit insertEmpty, so won't generate this fake end tag. + if (startTag.isSelfClosing()) { + let el: Element = try insertEmpty(startTag) + stack.append(el) + tokeniser.transition(TokeniserState.Data) // handles + + var tagPending: Token.Tag = Token.Tag() // tag we are building up + let startPending: Token.StartTag = Token.StartTag() + let endPending: Token.EndTag = Token.EndTag() + let charPending: Token.Char = Token.Char() + let doctypePending: Token.Doctype = Token.Doctype() // doctype building up + let commentPending: Token.Comment = Token.Comment() // comment building up + private var lastStartTag: String? // the last start tag emitted, to test appropriate end tag + private var selfClosingFlagAcknowledged: Bool = true + + init(_ reader: CharacterReader, _ errors: ParseErrorList?) { + self.reader = reader + self.errors = errors + } + + func read()throws->Token { + if (!selfClosingFlagAcknowledged) { + error("Self closing flag not acknowledged") + selfClosingFlagAcknowledged = true + } + + while (!isEmitPending) { + try state.read(self, reader) + } + + // if emit is pending, a non-character token was found: return any chars in buffer, and leave token for next read: + if !charsBuilder.isEmpty { + let str: String = charsBuilder.toString() + charsBuilder.clear() + charsString = nil + return charPending.data(str) + } else if (charsString != nil) { + let token: Token = charPending.data(charsString!) + charsString = nil + return token + } else { + isEmitPending = false + return emitPending! + } + } + + func emit(_ token: Token)throws { + try Validate.isFalse(val: isEmitPending, msg: "There is an unread token pending!") + + emitPending = token + isEmitPending = true + + if (token.type == Token.TokenType.StartTag) { + let startTag: Token.StartTag = token as! Token.StartTag + lastStartTag = startTag._tagName! + if (startTag._selfClosing) { + selfClosingFlagAcknowledged = false + } + } else if (token.type == Token.TokenType.EndTag) { + let endTag: Token.EndTag = token as! Token.EndTag + if (endTag._attributes.size() != 0) { + error("Attributes incorrectly present on end tag") + } + } + } + + func emit(_ str: String ) { + // buffer strings up until last string token found, to emit only one token for a run of character refs etc. + // does not set isEmitPending; read checks that + if (charsString == nil) { + charsString = str + } else { + if charsBuilder.isEmpty { // switching to string builder as more than one emit before read + charsBuilder.append(charsString!) + } + charsBuilder.append(str) + } + } + + func emit(_ chars: [UnicodeScalar]) { + emit(String(chars.map {Character($0)})) + } + + // func emit(_ codepoints: [Int]) { + // emit(String(codepoints, 0, codepoints.length)); + // } + + func emit(_ c: UnicodeScalar) { + emit(String(c)) + } + + func getState() -> TokeniserState { + return state + } + + func transition(_ state: TokeniserState) { + self.state = state + } + + func advanceTransition(_ state: TokeniserState) { + reader.advance() + self.state = state + } + + func acknowledgeSelfClosingFlag() { + selfClosingFlagAcknowledged = true + } + + func consumeCharacterReference(_ additionalAllowedCharacter: UnicodeScalar?, _ inAttribute: Bool)throws->[UnicodeScalar]? { + if (reader.isEmpty()) { + return nil + } + if (additionalAllowedCharacter != nil && additionalAllowedCharacter == reader.current()) { + return nil + } + if (reader.matchesAnySorted(Tokeniser.notCharRefCharsSorted)) { + return nil + } + + reader.markPos() + if (reader.matchConsume("#")) { // numbered + let isHexMode: Bool = reader.matchConsumeIgnoreCase("X") + let numRef: String = isHexMode ? reader.consumeHexSequence() : reader.consumeDigitSequence() + if (numRef.unicodeScalars.count == 0) { // didn't match anything + characterReferenceError("numeric reference with no numerals") + reader.rewindToMark() + return nil + } + if (!reader.matchConsume(";")) { + characterReferenceError("missing semicolon") // missing semi + } + var charval: Int = -1 + + let base: Int = isHexMode ? 16 : 10 + if let num = Int(numRef, radix: base) { + charval = num + } + + if (charval == -1 || (charval >= 0xD800 && charval <= 0xDFFF) || charval > 0x10FFFF) { + characterReferenceError("character outside of valid range") + return [Tokeniser.replacementChar] + } else { + // todo: implement number replacement table + // todo: check for extra illegal unicode points as parse errors + return [UnicodeScalar(charval)!] + } + } else { // named + // get as many letters as possible, and look for matching entities. + let nameRef: String = reader.consumeLetterThenDigitSequence() + let looksLegit: Bool = reader.matches(";") + // found if a base named entity without a ;, or an extended entity with the ;. + let found: Bool = (Entities.isBaseNamedEntity(nameRef) || (Entities.isNamedEntity(nameRef) && looksLegit)) + + if (!found) { + reader.rewindToMark() + if (looksLegit) { // named with semicolon + characterReferenceError("invalid named referenece '\(nameRef)'") + } + return nil + } + if (inAttribute && (reader.matchesLetter() || reader.matchesDigit() || reader.matchesAny("=", "-", "_"))) { + // don't want that to match + reader.rewindToMark() + return nil + } + if (!reader.matchConsume(";")) { + characterReferenceError("missing semicolon") // missing semi + } + if let points = Entities.codepointsForName(nameRef) { + if points.count > 2 { + try Validate.fail(msg: "Unexpected characters returned for \(nameRef) num: \(points.count)") + } + return points + } + try Validate.fail(msg: "Entity name not found: \(nameRef)") + return [] + } + } + + @discardableResult + func createTagPending(_ start: Bool)->Token.Tag { + tagPending = start ? startPending.reset() : endPending.reset() + return tagPending + } + + func emitTagPending()throws { + try tagPending.finaliseTag() + try emit(tagPending) + } + + func createCommentPending() { + commentPending.reset() + } + + func emitCommentPending()throws { + try emit(commentPending) + } + + func createDoctypePending() { + doctypePending.reset() + } + + func emitDoctypePending()throws { + try emit(doctypePending) + } + + func createTempBuffer() { + Token.reset(dataBuffer) + } + + func isAppropriateEndTagToken()throws->Bool { + if(lastStartTag != nil) { + let s = try tagPending.name() + return s.equalsIgnoreCase(string: lastStartTag!) + } + return false + } + + func appropriateEndTagName() -> String? { + if (lastStartTag == nil) { + return nil + } + return lastStartTag + } + + func error(_ state: TokeniserState) { + if (errors != nil && errors!.canAddError()) { + errors?.add(ParseError(reader.getPos(), "Unexpected character '\(String(reader.current()))' in input state [\(state.description)]")) + } + } + + func eofError(_ state: TokeniserState) { + if (errors != nil && errors!.canAddError()) { + errors?.add(ParseError(reader.getPos(), "Unexpectedly reached end of file (EOF) in input state [\(state.description)]")) + } + } + + private func characterReferenceError(_ message: String) { + if (errors != nil && errors!.canAddError()) { + errors?.add(ParseError(reader.getPos(), "Invalid character reference: \(message)")) + } + } + + private func error(_ errorMsg: String) { + if (errors != nil && errors!.canAddError()) { + errors?.add(ParseError(reader.getPos(), errorMsg)) + } + } + + func currentNodeInHtmlNS() -> Bool { + // todo: implement namespaces correctly + return true + // Element currentNode = currentNode() + // return currentNode != null && currentNode.namespace().equals("HTML") + } + + /** + * Utility method to consume reader and unescape entities found within. + * @param inAttribute + * @return unescaped string from reader + */ + func unescapeEntities(_ inAttribute: Bool)throws->String { + let builder: StringBuilder = StringBuilder() + while (!reader.isEmpty()) { + builder.append(reader.consumeTo(UnicodeScalar.Ampersand)) + if (reader.matches(UnicodeScalar.Ampersand)) { + reader.consume() + if let c = try consumeCharacterReference(nil, inAttribute) { + if (c.count==0) { + builder.append(UnicodeScalar.Ampersand) + } else { + builder.appendCodePoint(c[0]) + if (c.count == 2) { + builder.appendCodePoint(c[1]) + } + } + } else { + builder.append(UnicodeScalar.Ampersand) + } + } + } + return builder.toString() + } + +} diff --git a/Swiftgram/SwiftSoup/Sources/TokeniserState.swift b/Swiftgram/SwiftSoup/Sources/TokeniserState.swift new file mode 100644 index 00000000000..707248a83bc --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/TokeniserState.swift @@ -0,0 +1,1644 @@ +// +// TokeniserState.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 12/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +protocol TokeniserStateProtocol { + func read(_ t: Tokeniser, _ r: CharacterReader)throws +} + +public class TokeniserStateVars { + public static let nullScalr: UnicodeScalar = "\u{0000}" + + static let attributeSingleValueCharsSorted = ["'", UnicodeScalar.Ampersand, nullScalr].sorted() + static let attributeDoubleValueCharsSorted = ["\"", UnicodeScalar.Ampersand, nullScalr].sorted() + static let attributeNameCharsSorted = [UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ", "/", "=", ">", nullScalr, "\"", "'", UnicodeScalar.LessThan].sorted() + static let attributeValueUnquoted = [UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ", UnicodeScalar.Ampersand, ">", nullScalr, "\"", "'", UnicodeScalar.LessThan, "=", "`"].sorted() + + static let replacementChar: UnicodeScalar = Tokeniser.replacementChar + static let replacementStr: String = String(Tokeniser.replacementChar) + static let eof: UnicodeScalar = CharacterReader.EOF +} + +enum TokeniserState: TokeniserStateProtocol { + case Data + case CharacterReferenceInData + case Rcdata + case CharacterReferenceInRcdata + case Rawtext + case ScriptData + case PLAINTEXT + case TagOpen + case EndTagOpen + case TagName + case RcdataLessthanSign + case RCDATAEndTagOpen + case RCDATAEndTagName + case RawtextLessthanSign + case RawtextEndTagOpen + case RawtextEndTagName + case ScriptDataLessthanSign + case ScriptDataEndTagOpen + case ScriptDataEndTagName + case ScriptDataEscapeStart + case ScriptDataEscapeStartDash + case ScriptDataEscaped + case ScriptDataEscapedDash + case ScriptDataEscapedDashDash + case ScriptDataEscapedLessthanSign + case ScriptDataEscapedEndTagOpen + case ScriptDataEscapedEndTagName + case ScriptDataDoubleEscapeStart + case ScriptDataDoubleEscaped + case ScriptDataDoubleEscapedDash + case ScriptDataDoubleEscapedDashDash + case ScriptDataDoubleEscapedLessthanSign + case ScriptDataDoubleEscapeEnd + case BeforeAttributeName + case AttributeName + case AfterAttributeName + case BeforeAttributeValue + case AttributeValue_doubleQuoted + case AttributeValue_singleQuoted + case AttributeValue_unquoted + case AfterAttributeValue_quoted + case SelfClosingStartTag + case BogusComment + case MarkupDeclarationOpen + case CommentStart + case CommentStartDash + case Comment + case CommentEndDash + case CommentEnd + case CommentEndBang + case Doctype + case BeforeDoctypeName + case DoctypeName + case AfterDoctypeName + case AfterDoctypePublicKeyword + case BeforeDoctypePublicIdentifier + case DoctypePublicIdentifier_doubleQuoted + case DoctypePublicIdentifier_singleQuoted + case AfterDoctypePublicIdentifier + case BetweenDoctypePublicAndSystemIdentifiers + case AfterDoctypeSystemKeyword + case BeforeDoctypeSystemIdentifier + case DoctypeSystemIdentifier_doubleQuoted + case DoctypeSystemIdentifier_singleQuoted + case AfterDoctypeSystemIdentifier + case BogusDoctype + case CdataSection + + internal func read(_ t: Tokeniser, _ r: CharacterReader)throws { + switch self { + case .Data: + switch (r.current()) { + case UnicodeScalar.Ampersand: + t.advanceTransition(.CharacterReferenceInData) + break + case UnicodeScalar.LessThan: + t.advanceTransition(.TagOpen) + break + case TokeniserStateVars.nullScalr: + t.error(self) // NOT replacement character (oddly?) + t.emit(r.consume()) + break + case TokeniserStateVars.eof: + try t.emit(Token.EOF()) + break + default: + let data: String = r.consumeData() + t.emit(data) + break + } + break + case .CharacterReferenceInData: + try TokeniserState.readCharRef(t, .Data) + break + case .Rcdata: + switch (r.current()) { + case UnicodeScalar.Ampersand: + t.advanceTransition(.CharacterReferenceInRcdata) + break + case UnicodeScalar.LessThan: + t.advanceTransition(.RcdataLessthanSign) + break + case TokeniserStateVars.nullScalr: + t.error(self) + r.advance() + t.emit(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + try t.emit(Token.EOF()) + break + default: + let data = r.consumeToAny(UnicodeScalar.Ampersand, UnicodeScalar.LessThan, TokeniserStateVars.nullScalr) + t.emit(data) + break + } + break + case .CharacterReferenceInRcdata: + try TokeniserState.readCharRef(t, .Rcdata) + break + case .Rawtext: + try TokeniserState.readData(t, r, self, .RawtextLessthanSign) + break + case .ScriptData: + try TokeniserState.readData(t, r, self, .ScriptDataLessthanSign) + break + case .PLAINTEXT: + switch (r.current()) { + case TokeniserStateVars.nullScalr: + t.error(self) + r.advance() + t.emit(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + try t.emit(Token.EOF()) + break + default: + let data = r.consumeTo(TokeniserStateVars.nullScalr) + t.emit(data) + break + } + break + case .TagOpen: + // from < in data + switch (r.current()) { + case "!": + t.advanceTransition(.MarkupDeclarationOpen) + break + case "/": + t.advanceTransition(.EndTagOpen) + break + case "?": + t.advanceTransition(.BogusComment) + break + default: + if (r.matchesLetter()) { + t.createTagPending(true) + t.transition(.TagName) + } else { + t.error(self) + t.emit(UnicodeScalar.LessThan) // char that got us here + t.transition(.Data) + } + break + } + break + case .EndTagOpen: + if (r.isEmpty()) { + t.eofError(self) + t.emit("")) { + t.error(self) + t.advanceTransition(.Data) + } else { + t.error(self) + t.advanceTransition(.BogusComment) + } + break + case .TagName: + // from < or ": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: // replacement + t.tagPending.appendTagName(TokeniserStateVars.replacementStr) + break + case TokeniserStateVars.eof: // should emit pending tag? + t.eofError(self) + t.transition(.Data) + // no default, as covered with above consumeToAny + default: + break + } + case .RcdataLessthanSign: + if (r.matches("/")) { + t.createTempBuffer() + t.advanceTransition(.RCDATAEndTagOpen) + } else if (r.matchesLetter() && t.appropriateEndTagName() != nil && !r.containsIgnoreCase("), so rather than + // consuming to EOF break out here + t.tagPending = t.createTagPending(false).name(t.appropriateEndTagName()!) + try t.emitTagPending() + r.unconsume() // undo UnicodeScalar.LessThan + t.transition(.Data) + } else { + t.emit(UnicodeScalar.LessThan) + t.transition(.Rcdata) + } + break + case .RCDATAEndTagOpen: + if (r.matchesLetter()) { + t.createTagPending(false) + t.tagPending.appendTagName(r.current()) + t.dataBuffer.append(r.current()) + t.advanceTransition(.RCDATAEndTagName) + } else { + t.emit("": + if (try t.isAppropriateEndTagToken()) { + try t.emitTagPending() + t.transition(.Data) + } else {anythingElse(t, r)} + break + default: + anythingElse(t, r) + break + } + break + case .RawtextLessthanSign: + if (r.matches("/")) { + t.createTempBuffer() + t.advanceTransition(.RawtextEndTagOpen) + } else { + t.emit(UnicodeScalar.LessThan) + t.transition(.Rawtext) + } + break + case .RawtextEndTagOpen: + TokeniserState.readEndTag(t, r, .RawtextEndTagName, .Rawtext) + break + case .RawtextEndTagName: + try TokeniserState.handleDataEndTag(t, r, .Rawtext) + break + case .ScriptDataLessthanSign: + switch (r.consume()) { + case "/": + t.createTempBuffer() + t.transition(.ScriptDataEndTagOpen) + break + case "!": + t.emit("": + t.emit(c) + t.transition(.ScriptData) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.emit(TokeniserStateVars.replacementChar) + t.transition(.ScriptDataEscaped) + break + default: + t.emit(c) + t.transition(.ScriptDataEscaped) + } + break + case .ScriptDataEscapedLessthanSign: + if (r.matchesLetter()) { + t.createTempBuffer() + t.dataBuffer.append(r.current()) + t.emit("<" + String(r.current())) + t.advanceTransition(.ScriptDataDoubleEscapeStart) + } else if (r.matches("/")) { + t.createTempBuffer() + t.advanceTransition(.ScriptDataEscapedEndTagOpen) + } else { + t.emit(UnicodeScalar.LessThan) + t.transition(.ScriptDataEscaped) + } + break + case .ScriptDataEscapedEndTagOpen: + if (r.matchesLetter()) { + t.createTagPending(false) + t.tagPending.appendTagName(r.current()) + t.dataBuffer.append(r.current()) + t.advanceTransition(.ScriptDataEscapedEndTagName) + } else { + t.emit("": + t.emit(c) + t.transition(.ScriptData) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.emit(TokeniserStateVars.replacementChar) + t.transition(.ScriptDataDoubleEscaped) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + default: + t.emit(c) + t.transition(.ScriptDataDoubleEscaped) + } + break + case .ScriptDataDoubleEscapedLessthanSign: + if (r.matches("/")) { + t.emit("/") + t.createTempBuffer() + t.advanceTransition(.ScriptDataDoubleEscapeEnd) + } else { + t.transition(.ScriptDataDoubleEscaped) + } + break + case .ScriptDataDoubleEscapeEnd: + TokeniserState.handleDataDoubleEscapeTag(t, r, .ScriptDataEscaped, .ScriptDataDoubleEscaped) + break + case .BeforeAttributeName: + // from tagname ": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + try t.tagPending.newAttribute() + r.unconsume() + t.transition(.AttributeName) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + case "\"", "'", UnicodeScalar.LessThan, "=": + t.error(self) + try t.tagPending.newAttribute() + t.tagPending.appendAttributeName(c) + t.transition(.AttributeName) + break + default: // A-Z, anything else + try t.tagPending.newAttribute() + r.unconsume() + t.transition(.AttributeName) + } + break + case .AttributeName: + let name = r.consumeToAnySorted(TokeniserStateVars.attributeNameCharsSorted) + t.tagPending.appendAttributeName(name) + + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT: + t.transition(.AfterAttributeName) + break + case "\n": + t.transition(.AfterAttributeName) + break + case "\r": + t.transition(.AfterAttributeName) + break + case UnicodeScalar.BackslashF: + t.transition(.AfterAttributeName) + break + case " ": + t.transition(.AfterAttributeName) + break + case "/": + t.transition(.SelfClosingStartTag) + break + case "=": + t.transition(.BeforeAttributeValue) + break + case ">": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeName(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + case "\"": + t.error(self) + t.tagPending.appendAttributeName(c) + case "'": + t.error(self) + t.tagPending.appendAttributeName(c) + case UnicodeScalar.LessThan: + t.error(self) + t.tagPending.appendAttributeName(c) + // no default, as covered in consumeToAny + default: + break + } + break + case .AfterAttributeName: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + // ignore + break + case "/": + t.transition(.SelfClosingStartTag) + break + case "=": + t.transition(.BeforeAttributeValue) + break + case ">": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeName(TokeniserStateVars.replacementChar) + t.transition(.AttributeName) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + case "\"", "'", UnicodeScalar.LessThan: + t.error(self) + try t.tagPending.newAttribute() + t.tagPending.appendAttributeName(c) + t.transition(.AttributeName) + break + default: // A-Z, anything else + try t.tagPending.newAttribute() + r.unconsume() + t.transition(.AttributeName) + } + break + case .BeforeAttributeValue: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + // ignore + break + case "\"": + t.transition(.AttributeValue_doubleQuoted) + break + case UnicodeScalar.Ampersand: + r.unconsume() + t.transition(.AttributeValue_unquoted) + break + case "'": + t.transition(.AttributeValue_singleQuoted) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeValue(TokeniserStateVars.replacementChar) + t.transition(.AttributeValue_unquoted) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitTagPending() + t.transition(.Data) + break + case ">": + t.error(self) + try t.emitTagPending() + t.transition(.Data) + break + case UnicodeScalar.LessThan, "=", "`": + t.error(self) + t.tagPending.appendAttributeValue(c) + t.transition(.AttributeValue_unquoted) + break + default: + r.unconsume() + t.transition(.AttributeValue_unquoted) + } + break + case .AttributeValue_doubleQuoted: + let value = r.consumeToAny(TokeniserStateVars.attributeDoubleValueCharsSorted) + if (value.count > 0) { + t.tagPending.appendAttributeValue(value) + } else { + t.tagPending.setEmptyAttributeValue() + } + + let c = r.consume() + switch (c) { + case "\"": + t.transition(.AfterAttributeValue_quoted) + break + case UnicodeScalar.Ampersand: + + if let ref = try t.consumeCharacterReference("\"", true) { + t.tagPending.appendAttributeValue(ref) + } else { + t.tagPending.appendAttributeValue(UnicodeScalar.Ampersand) + } + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeValue(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + // no default, handled in consume to any above + default: + break + } + break + case .AttributeValue_singleQuoted: + let value = r.consumeToAny(TokeniserStateVars.attributeSingleValueCharsSorted) + if (value.count > 0) { + t.tagPending.appendAttributeValue(value) + } else { + t.tagPending.setEmptyAttributeValue() + } + + let c = r.consume() + switch (c) { + case "'": + t.transition(.AfterAttributeValue_quoted) + break + case UnicodeScalar.Ampersand: + + if let ref = try t.consumeCharacterReference("'", true) { + t.tagPending.appendAttributeValue(ref) + } else { + t.tagPending.appendAttributeValue(UnicodeScalar.Ampersand) + } + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeValue(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + // no default, handled in consume to any above + default: + break + } + break + case .AttributeValue_unquoted: + let value = r.consumeToAnySorted(TokeniserStateVars.attributeValueUnquoted) + if (value.count > 0) { + t.tagPending.appendAttributeValue(value) + } + + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BeforeAttributeName) + break + case UnicodeScalar.Ampersand: + if let ref = try t.consumeCharacterReference(">", true) { + t.tagPending.appendAttributeValue(ref) + } else { + t.tagPending.appendAttributeValue(UnicodeScalar.Ampersand) + } + break + case ">": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.tagPending.appendAttributeValue(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + case "\"", "'", UnicodeScalar.LessThan, "=", "`": + t.error(self) + t.tagPending.appendAttributeValue(c) + break + // no default, handled in consume to any above + default: + break + } + break + case .AfterAttributeValue_quoted: + // CharacterReferenceInAttributeValue state handled inline + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BeforeAttributeName) + break + case "/": + t.transition(.SelfClosingStartTag) + break + case ">": + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + default: + t.error(self) + r.unconsume() + t.transition(.BeforeAttributeName) + } + break + case .SelfClosingStartTag: + let c = r.consume() + switch (c) { + case ">": + t.tagPending._selfClosing = true + try t.emitTagPending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.transition(.Data) + break + default: + t.error(self) + r.unconsume() + t.transition(.BeforeAttributeName) + } + break + case .BogusComment: + // todo: handle bogus comment starting from eof. when does that trigger? + // rewind to capture character that lead us here + r.unconsume() + let comment: Token.Comment = Token.Comment() + comment.bogus = true + comment.data.append(r.consumeTo(">")) + // todo: replace nullChar with replaceChar + try t.emit(comment) + t.advanceTransition(.Data) + break + case .MarkupDeclarationOpen: + if (r.matchConsume("--")) { + t.createCommentPending() + t.transition(.CommentStart) + } else if (r.matchConsumeIgnoreCase("DOCTYPE")) { + t.transition(.Doctype) + } else if (r.matchConsume("[CDATA[")) { + // todo: should actually check current namepspace, and only non-html allows cdata. until namespace + // is implemented properly, keep handling as cdata + //} else if (!t.currentNodeInHtmlNS() && r.matchConsume("[CDATA[")) { + t.transition(.CdataSection) + } else { + t.error(self) + t.advanceTransition(.BogusComment) // advance so self character gets in bogus comment data's rewind + } + break + case .CommentStart: + let c = r.consume() + switch (c) { + case "-": + t.transition(.CommentStartDash) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.commentPending.data.append(TokeniserStateVars.replacementChar) + t.transition(.Comment) + break + case ">": + t.error(self) + try t.emitCommentPending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.commentPending.data.append(c) + t.transition(.Comment) + } + break + case .CommentStartDash: + let c = r.consume() + switch (c) { + case "-": + t.transition(.CommentStartDash) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.commentPending.data.append(TokeniserStateVars.replacementChar) + t.transition(.Comment) + break + case ">": + t.error(self) + try t.emitCommentPending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.commentPending.data.append(c) + t.transition(.Comment) + } + break + case .Comment: + let c = r.current() + switch (c) { + case "-": + t.advanceTransition(.CommentEndDash) + break + case TokeniserStateVars.nullScalr: + t.error(self) + r.advance() + t.commentPending.data.append(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.commentPending.data.append(r.consumeToAny("-", TokeniserStateVars.nullScalr)) + } + break + case .CommentEndDash: + let c = r.consume() + switch (c) { + case "-": + t.transition(.CommentEnd) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.commentPending.data.append("-").append(TokeniserStateVars.replacementChar) + t.transition(.Comment) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.commentPending.data.append("-").append(c) + t.transition(.Comment) + } + break + case .CommentEnd: + let c = r.consume() + switch (c) { + case ">": + try t.emitCommentPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.commentPending.data.append("--").append(TokeniserStateVars.replacementChar) + t.transition(.Comment) + break + case "!": + t.error(self) + t.transition(.CommentEndBang) + break + case "-": + t.error(self) + t.commentPending.data.append("-") + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.error(self) + t.commentPending.data.append("--").append(c) + t.transition(.Comment) + } + break + case .CommentEndBang: + let c = r.consume() + switch (c) { + case "-": + t.commentPending.data.append("--!") + t.transition(.CommentEndDash) + break + case ">": + try t.emitCommentPending() + t.transition(.Data) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.commentPending.data.append("--!").append(TokeniserStateVars.replacementChar) + t.transition(.Comment) + break + case TokeniserStateVars.eof: + t.eofError(self) + try t.emitCommentPending() + t.transition(.Data) + break + default: + t.commentPending.data.append("--!").append(c) + t.transition(.Comment) + } + break + case .Doctype: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BeforeDoctypeName) + break + case TokeniserStateVars.eof: + t.eofError(self) + // note: fall through to > case + case ">": // catch invalid + t.error(self) + t.createDoctypePending() + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.transition(.BeforeDoctypeName) + } + break + case .BeforeDoctypeName: + if (r.matchesLetter()) { + t.createDoctypePending() + t.transition(.DoctypeName) + return + } + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + break // ignore whitespace + case TokeniserStateVars.nullScalr: + t.error(self) + t.createDoctypePending() + t.doctypePending.name.append(TokeniserStateVars.replacementChar) + t.transition(.DoctypeName) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.createDoctypePending() + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.createDoctypePending() + t.doctypePending.name.append(c) + t.transition(.DoctypeName) + } + break + case .DoctypeName: + if (r.matchesLetter()) { + let name = r.consumeLetterSequence() + t.doctypePending.name.append(name) + return + } + let c = r.consume() + switch (c) { + case ">": + try t.emitDoctypePending() + t.transition(.Data) + break + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.AfterDoctypeName) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.doctypePending.name.append(TokeniserStateVars.replacementChar) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.doctypePending.name.append(c) + } + break + case .AfterDoctypeName: + if (r.isEmpty()) { + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + return + } + if (r.matchesAny(UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ")) { + r.advance() // ignore whitespace + } else if (r.matches(">")) { + try t.emitDoctypePending() + t.advanceTransition(.Data) + } else if (r.matchConsumeIgnoreCase(DocumentType.PUBLIC_KEY)) { + t.doctypePending.pubSysKey = DocumentType.PUBLIC_KEY + t.transition(.AfterDoctypePublicKeyword) + } else if (r.matchConsumeIgnoreCase(DocumentType.SYSTEM_KEY)) { + t.doctypePending.pubSysKey = DocumentType.SYSTEM_KEY + t.transition(.AfterDoctypeSystemKeyword) + } else { + t.error(self) + t.doctypePending.forceQuirks = true + t.advanceTransition(.BogusDoctype) + } + break + case .AfterDoctypePublicKeyword: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BeforeDoctypePublicIdentifier) + break + case "\"": + t.error(self) + // set public id to empty string + t.transition(.DoctypePublicIdentifier_doubleQuoted) + break + case "'": + t.error(self) + // set public id to empty string + t.transition(.DoctypePublicIdentifier_singleQuoted) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + t.transition(.BogusDoctype) + } + break + case .BeforeDoctypePublicIdentifier: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + break + case "\"": + // set public id to empty string + t.transition(.DoctypePublicIdentifier_doubleQuoted) + break + case "'": + // set public id to empty string + t.transition(.DoctypePublicIdentifier_singleQuoted) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + t.transition(.BogusDoctype) + } + break + case .DoctypePublicIdentifier_doubleQuoted: + let c = r.consume() + switch (c) { + case "\"": + t.transition(.AfterDoctypePublicIdentifier) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.doctypePending.publicIdentifier.append(TokeniserStateVars.replacementChar) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.doctypePending.publicIdentifier.append(c) + } + break + case .DoctypePublicIdentifier_singleQuoted: + let c = r.consume() + switch (c) { + case "'": + t.transition(.AfterDoctypePublicIdentifier) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.doctypePending.publicIdentifier.append(TokeniserStateVars.replacementChar) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.doctypePending.publicIdentifier.append(c) + } + break + case .AfterDoctypePublicIdentifier: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BetweenDoctypePublicAndSystemIdentifiers) + break + case ">": + try t.emitDoctypePending() + t.transition(.Data) + break + case "\"": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_doubleQuoted) + break + case "'": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_singleQuoted) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + t.transition(.BogusDoctype) + } + break + case .BetweenDoctypePublicAndSystemIdentifiers: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + break + case ">": + try t.emitDoctypePending() + t.transition(.Data) + break + case "\"": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_doubleQuoted) + break + case "'": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_singleQuoted) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + t.transition(.BogusDoctype) + } + break + case .AfterDoctypeSystemKeyword: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(.BeforeDoctypeSystemIdentifier) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case "\"": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_doubleQuoted) + break + case "'": + t.error(self) + // system id empty + t.transition(.DoctypeSystemIdentifier_singleQuoted) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + } + break + case .BeforeDoctypeSystemIdentifier: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + break + case "\"": + // set system id to empty string + t.transition(.DoctypeSystemIdentifier_doubleQuoted) + break + case "'": + // set public id to empty string + t.transition(.DoctypeSystemIdentifier_singleQuoted) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.doctypePending.forceQuirks = true + t.transition(.BogusDoctype) + } + break + case .DoctypeSystemIdentifier_doubleQuoted: + let c = r.consume() + switch (c) { + case "\"": + t.transition(.AfterDoctypeSystemIdentifier) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.doctypePending.systemIdentifier.append(TokeniserStateVars.replacementChar) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.doctypePending.systemIdentifier.append(c) + } + break + case .DoctypeSystemIdentifier_singleQuoted: + let c = r.consume() + switch (c) { + case "'": + t.transition(.AfterDoctypeSystemIdentifier) + break + case TokeniserStateVars.nullScalr: + t.error(self) + t.doctypePending.systemIdentifier.append(TokeniserStateVars.replacementChar) + break + case ">": + t.error(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.doctypePending.systemIdentifier.append(c) + } + break + case .AfterDoctypeSystemIdentifier: + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + break + case ">": + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + t.eofError(self) + t.doctypePending.forceQuirks = true + try t.emitDoctypePending() + t.transition(.Data) + break + default: + t.error(self) + t.transition(.BogusDoctype) + // NOT force quirks + } + break + case .BogusDoctype: + let c = r.consume() + switch (c) { + case ">": + try t.emitDoctypePending() + t.transition(.Data) + break + case TokeniserStateVars.eof: + try t.emitDoctypePending() + t.transition(.Data) + break + default: + // ignore char + break + } + break + case .CdataSection: + let data = r.consumeTo("]]>") + t.emit(data) + r.matchConsume("]]>") + t.transition(.Data) + break + } + } + + var description: String {return String(describing: type(of: self))} + /** + * Handles RawtextEndTagName, ScriptDataEndTagName, and ScriptDataEscapedEndTagName. Same body impl, just + * different else exit transitions. + */ + private static func handleDataEndTag(_ t: Tokeniser, _ r: CharacterReader, _ elseTransition: TokeniserState)throws { + if (r.matchesLetter()) { + let name = r.consumeLetterSequence() + t.tagPending.appendTagName(name) + t.dataBuffer.append(name) + return + } + + var needsExitTransition = false + if (try t.isAppropriateEndTagToken() && !r.isEmpty()) { + let c = r.consume() + switch (c) { + case UnicodeScalar.BackslashT, "\n", "\r", UnicodeScalar.BackslashF, " ": + t.transition(BeforeAttributeName) + break + case "/": + t.transition(SelfClosingStartTag) + break + case ">": + try t.emitTagPending() + t.transition(Data) + break + default: + t.dataBuffer.append(c) + needsExitTransition = true + } + } else { + needsExitTransition = true + } + + if (needsExitTransition) { + t.emit("": + if (t.dataBuffer.toString() == "script") { + t.transition(primary) + } else { + t.transition(fallback) + } + t.emit(c) + break + default: + r.unconsume() + t.transition(fallback) + } + } + +} diff --git a/Swiftgram/SwiftSoup/Sources/TreeBuilder.swift b/Swiftgram/SwiftSoup/Sources/TreeBuilder.swift new file mode 100644 index 00000000000..a8b9ac0edea --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/TreeBuilder.swift @@ -0,0 +1,98 @@ +// +// TreeBuilder.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 24/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +public class TreeBuilder { + public var reader: CharacterReader + var tokeniser: Tokeniser + public var doc: Document // current doc we are building into + public var stack: Array // the stack of open elements + public var baseUri: String // current base uri, for creating new elements + public var currentToken: Token? // currentToken is used only for error tracking. + public var errors: ParseErrorList // null when not tracking errors + public var settings: ParseSettings + + private let start: Token.StartTag = Token.StartTag() // start tag to process + private let end: Token.EndTag = Token.EndTag() + + public func defaultSettings() -> ParseSettings {preconditionFailure("This method must be overridden")} + + public init() { + doc = Document("") + reader = CharacterReader("") + tokeniser = Tokeniser(reader, nil) + stack = Array() + baseUri = "" + errors = ParseErrorList(0, 0) + settings = ParseSettings(false, false) + } + + public func initialiseParse(_ input: String, _ baseUri: String, _ errors: ParseErrorList, _ settings: ParseSettings) { + doc = Document(baseUri) + self.settings = settings + reader = CharacterReader(input) + self.errors = errors + tokeniser = Tokeniser(reader, errors) + stack = Array() + self.baseUri = baseUri + } + + func parse(_ input: String, _ baseUri: String, _ errors: ParseErrorList, _ settings: ParseSettings)throws->Document { + initialiseParse(input, baseUri, errors, settings) + try runParser() + return doc + } + + public func runParser()throws { + while (true) { + let token: Token = try tokeniser.read() + try process(token) + token.reset() + + if (token.type == Token.TokenType.EOF) { + break + } + } + } + + @discardableResult + public func process(_ token: Token)throws->Bool {preconditionFailure("This method must be overridden")} + + @discardableResult + public func processStartTag(_ name: String)throws->Bool { + if (currentToken === start) { // don't recycle an in-use token + return try process(Token.StartTag().name(name)) + } + return try process(start.reset().name(name)) + } + + @discardableResult + public func processStartTag(_ name: String, _ attrs: Attributes)throws->Bool { + if (currentToken === start) { // don't recycle an in-use token + return try process(Token.StartTag().nameAttr(name, attrs)) + } + start.reset() + start.nameAttr(name, attrs) + return try process(start) + } + + @discardableResult + public func processEndTag(_ name: String)throws->Bool { + if (currentToken === end) { // don't recycle an in-use token + return try process(Token.EndTag().name(name)) + } + + return try process(end.reset().name(name)) + } + + public func currentElement() -> Element? { + let size: Int = stack.count + return size > 0 ? stack[size-1] : nil + } +} diff --git a/Swiftgram/SwiftSoup/Sources/UnfairLock.swift b/Swiftgram/SwiftSoup/Sources/UnfairLock.swift new file mode 100644 index 00000000000..0ef99f0a42c --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/UnfairLock.swift @@ -0,0 +1,38 @@ +// +// UnfairLock.swift +// SwiftSoup +// +// Created by xukun on 2022/3/31. +// Copyright © 2022 Nabil Chatbi. All rights reserved. +// + +import Foundation + +#if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) +@available(iOS 10.0, macOS 10.12, watchOS 3.0, tvOS 10.0, *) +final class UnfairLock: NSLocking { + + private let unfairLock: UnsafeMutablePointer = { + let pointer = UnsafeMutablePointer.allocate(capacity: 1) + pointer.initialize(to: os_unfair_lock()) + return pointer + }() + + deinit { + unfairLock.deinitialize(count: 1) + unfairLock.deallocate() + } + + func lock() { + os_unfair_lock_lock(unfairLock) + } + + func tryLock() -> Bool { + return os_unfair_lock_trylock(unfairLock) + } + + func unlock() { + os_unfair_lock_unlock(unfairLock) + } +} +#endif diff --git a/Swiftgram/SwiftSoup/Sources/UnicodeScalar.swift b/Swiftgram/SwiftSoup/Sources/UnicodeScalar.swift new file mode 100644 index 00000000000..0a52709895f --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/UnicodeScalar.swift @@ -0,0 +1,67 @@ +// +// UnicodeScalar.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 14/11/16. +// Copyright © 2016 Nabil Chatbi. All rights reserved. +// + +import Foundation + +private let uppercaseSet = CharacterSet.uppercaseLetters +private let lowercaseSet = CharacterSet.lowercaseLetters +private let alphaSet = CharacterSet.letters +private let alphaNumericSet = CharacterSet.alphanumerics +private let symbolSet = CharacterSet.symbols +private let digitSet = CharacterSet.decimalDigits + +extension UnicodeScalar { + public static let Ampersand: UnicodeScalar = "&" + public static let LessThan: UnicodeScalar = "<" + public static let GreaterThan: UnicodeScalar = ">" + + public static let Space: UnicodeScalar = " " + public static let BackslashF: UnicodeScalar = UnicodeScalar(12) + public static let BackslashT: UnicodeScalar = "\t" + public static let BackslashN: UnicodeScalar = "\n" + public static let BackslashR: UnicodeScalar = "\r" + public static let Slash: UnicodeScalar = "/" + + public static let FormFeed: UnicodeScalar = "\u{000B}"// Form Feed + public static let VerticalTab: UnicodeScalar = "\u{000C}"// vertical tab + + func isMemberOfCharacterSet(_ set: CharacterSet) -> Bool { + return set.contains(self) + } + + /// True for any space character, and the control characters \t, \n, \r, \f, \v. + var isWhitespace: Bool { + + switch self { + + case UnicodeScalar.Space, UnicodeScalar.BackslashT, UnicodeScalar.BackslashN, UnicodeScalar.BackslashR, UnicodeScalar.BackslashF: return true + + case UnicodeScalar.FormFeed, UnicodeScalar.VerticalTab: return true // Form Feed, vertical tab + + default: return false + + } + + } + + /// `true` if `self` normalized contains a single code unit that is in the categories of Uppercase and Titlecase Letters. + var isUppercase: Bool { + return isMemberOfCharacterSet(uppercaseSet) + } + + /// `true` if `self` normalized contains a single code unit that is in the category of Lowercase Letters. + var isLowercase: Bool { + return isMemberOfCharacterSet(lowercaseSet) + + } + + var uppercase: UnicodeScalar { + let str = String(self).uppercased() + return str.unicodeScalar(0) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Validate.swift b/Swiftgram/SwiftSoup/Sources/Validate.swift new file mode 100644 index 00000000000..2e6e864e56c --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Validate.swift @@ -0,0 +1,133 @@ +// +// Validate.swift +// SwifSoup +// +// Created by Nabil Chatbi on 02/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +struct Validate { + + /** + * Validates that the object is not null + * @param obj object to test + */ + public static func notNull(obj: Any?) throws { + if (obj == nil) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Object must not be null") + } + } + + /** + * Validates that the object is not null + * @param obj object to test + * @param msg message to output if validation fails + */ + public static func notNull(obj: AnyObject?, msg: String) throws { + if (obj == nil) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + } + + /** + * Validates that the value is true + * @param val object to test + */ + public static func isTrue(val: Bool) throws { + if (!val) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Must be true") + } + } + + /** + * Validates that the value is true + * @param val object to test + * @param msg message to output if validation fails + */ + public static func isTrue(val: Bool, msg: String) throws { + if (!val) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + } + + /** + * Validates that the value is false + * @param val object to test + */ + public static func isFalse(val: Bool) throws { + if (val) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "Must be false") + } + } + + /** + * Validates that the value is false + * @param val object to test + * @param msg message to output if validation fails + */ + public static func isFalse(val: Bool, msg: String) throws { + if (val) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + } + + /** + * Validates that the array contains no null elements + * @param objects the array to test + */ + public static func noNullElements(objects: [AnyObject?]) throws { + try noNullElements(objects: objects, msg: "Array must not contain any null objects") + } + + /** + * Validates that the array contains no null elements + * @param objects the array to test + * @param msg message to output if validation fails + */ + public static func noNullElements(objects: [AnyObject?], msg: String) throws { + for obj in objects { + if (obj == nil) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + } + } + + /** + * Validates that the string is not empty + * @param string the string to test + */ + public static func notEmpty(string: String?) throws { + if (string == nil || string?.count == 0) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: "String must not be empty") + } + + } + + /** + * Validates that the string is not empty + * @param string the string to test + * @param msg message to output if validation fails + */ + public static func notEmpty(string: String?, msg: String ) throws { + if (string == nil || string?.count == 0) { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + } + + /** + Cause a failure. + @param msg message to output. + */ + public static func fail(msg: String) throws { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } + + /** + Helper + */ + public static func exception(msg: String) throws { + throw Exception.Error(type: ExceptionType.IllegalArgumentException, Message: msg) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/Whitelist.swift b/Swiftgram/SwiftSoup/Sources/Whitelist.swift new file mode 100644 index 00000000000..c3951707680 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/Whitelist.swift @@ -0,0 +1,650 @@ +// +// Whitelist.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 14/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +/* + Thank you to Ryan Grove (wonko.com) for the Ruby HTML cleaner http://github.com/rgrove/sanitize/, which inspired + this whitelist configuration, and the initial defaults. + */ + +/** + Whitelists define what HTML (elements and attributes) to allow through the cleaner. Everything else is removed. +

+ Start with one of the defaults: +

+
    +
  • {@link #none} +
  • {@link #simpleText} +
  • {@link #basic} +
  • {@link #basicWithImages} +
  • {@link #relaxed} +
+

+ If you need to allow more through (please be careful!), tweak a base whitelist with: +

+
    +
  • {@link #addTags} +
  • {@link #addAttributes} +
  • {@link #addEnforcedAttribute} +
  • {@link #addProtocols} +
+

+ You can remove any setting from an existing whitelist with: +

+
    +
  • {@link #removeTags} +
  • {@link #removeAttributes} +
  • {@link #removeEnforcedAttribute} +
  • {@link #removeProtocols} +
+ +

+ The cleaner and these whitelists assume that you want to clean a body fragment of HTML (to add user + supplied HTML into a templated page), and not to clean a full HTML document. If the latter is the case, either wrap the + document HTML around the cleaned body HTML, or create a whitelist that allows html and head + elements as appropriate. +

+

+ If you are going to extend a whitelist, please be very careful. Make sure you understand what attributes may lead to + XSS attack vectors. URL attributes are particularly vulnerable and require careful validation. See + http://ha.ckers.org/xss.html for some XSS attack examples. +

+ */ + +import Foundation + +public class Whitelist { + private var tagNames: Set // tags allowed, lower case. e.g. [p, br, span] + private var attributes: Dictionary> // tag -> attribute[]. allowed attributes [href] for a tag. + private var enforcedAttributes: Dictionary> // always set these attribute values + private var protocols: Dictionary>> // allowed URL protocols for attributes + private var preserveRelativeLinks: Bool // option to preserve relative links + + /** + This whitelist allows only text nodes: all HTML will be stripped. + + @return whitelist + */ + public static func none() -> Whitelist { + return Whitelist() + } + + /** + This whitelist allows only simple text formatting: b, em, i, strong, u. All other HTML (tags and + attributes) will be removed. + + @return whitelist + */ + public static func simpleText()throws ->Whitelist { + return try Whitelist().addTags("b", "em", "i", "strong", "u") + } + + /** +

+ This whitelist allows a fuller range of text nodes: a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, + ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul, and appropriate attributes. +

+

+ Links (a elements) can point to http, https, ftp, mailto, and have an enforced + rel=nofollow attribute. +

+

+ Does not allow images. +

+ + @return whitelist + */ + public static func basic()throws->Whitelist { + return try Whitelist() + .addTags( + "a", "b", "blockquote", "br", "cite", "code", "dd", "dl", "dt", "em", + "i", "li", "ol", "p", "pre", "q", "small", "span", "strike", "strong", "sub", + "sup", "u", "ul") + + .addAttributes("a", "href") + .addAttributes("blockquote", "cite") + .addAttributes("q", "cite") + + .addProtocols("a", "href", "ftp", "http", "https", "mailto") + .addProtocols("blockquote", "cite", "http", "https") + .addProtocols("cite", "cite", "http", "https") + + .addEnforcedAttribute("a", "rel", "nofollow") + } + + /** + This whitelist allows the same text tags as {@link #basic}, and also allows img tags, with appropriate + attributes, with src pointing to http or https. + + @return whitelist + */ + public static func basicWithImages()throws->Whitelist { + return try basic() + .addTags("img") + .addAttributes("img", "align", "alt", "height", "src", "title", "width") + .addProtocols("img", "src", "http", "https") + + } + + /** + This whitelist allows a full range of text and structural body HTML: a, b, blockquote, br, caption, cite, + code, col, colgroup, dd, div, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, span, strike, strong, sub, + sup, table, tbody, td, tfoot, th, thead, tr, u, ul +

+ Links do not have an enforced rel=nofollow attribute, but you can add that if desired. +

+ + @return whitelist + */ + public static func relaxed()throws->Whitelist { + return try Whitelist() + .addTags( + "a", "b", "blockquote", "br", "caption", "cite", "code", "col", + "colgroup", "dd", "div", "dl", "dt", "em", "h1", "h2", "h3", "h4", "h5", "h6", + "i", "img", "li", "ol", "p", "pre", "q", "small", "span", "strike", "strong", + "sub", "sup", "table", "tbody", "td", "tfoot", "th", "thead", "tr", "u", + "ul") + + .addAttributes("a", "href", "title") + .addAttributes("blockquote", "cite") + .addAttributes("col", "span", "width") + .addAttributes("colgroup", "span", "width") + .addAttributes("img", "align", "alt", "height", "src", "title", "width") + .addAttributes("ol", "start", "type") + .addAttributes("q", "cite") + .addAttributes("table", "summary", "width") + .addAttributes("td", "abbr", "axis", "colspan", "rowspan", "width") + .addAttributes( + "th", "abbr", "axis", "colspan", "rowspan", "scope", + "width") + .addAttributes("ul", "type") + + .addProtocols("a", "href", "ftp", "http", "https", "mailto") + .addProtocols("blockquote", "cite", "http", "https") + .addProtocols("cite", "cite", "http", "https") + .addProtocols("img", "src", "http", "https") + .addProtocols("q", "cite", "http", "https") + } + + /** + Create a new, empty whitelist. Generally it will be better to start with a default prepared whitelist instead. + + @see #basic() + @see #basicWithImages() + @see #simpleText() + @see #relaxed() + */ + init() { + tagNames = Set() + attributes = Dictionary>() + enforcedAttributes = Dictionary>() + protocols = Dictionary>>() + preserveRelativeLinks = false + } + + /** + Add a list of allowed elements to a whitelist. (If a tag is not allowed, it will be removed from the HTML.) + + @param tags tag names to allow + @return this (for chaining) + */ + @discardableResult + open func addTags(_ tags: String...)throws ->Whitelist { + for tagName in tags { + try Validate.notEmpty(string: tagName) + tagNames.insert(TagName.valueOf(tagName)) + } + return self + } + + /** + Remove a list of allowed elements from a whitelist. (If a tag is not allowed, it will be removed from the HTML.) + + @param tags tag names to disallow + @return this (for chaining) + */ + @discardableResult + open func removeTags(_ tags: String...)throws ->Whitelist { + try Validate.notNull(obj: tags) + + for tag in tags { + try Validate.notEmpty(string: tag) + let tagName: TagName = TagName.valueOf(tag) + + if(tagNames.contains(tagName)) { // Only look in sub-maps if tag was allowed + tagNames.remove(tagName) + attributes.removeValue(forKey: tagName) + enforcedAttributes.removeValue(forKey: tagName) + protocols.removeValue(forKey: tagName) + } + } + return self + } + + /** + Add a list of allowed attributes to a tag. (If an attribute is not allowed on an element, it will be removed.) +

+ E.g.: addAttributes("a", "href", "class") allows href and class attributes + on a tags. +

+

+ To make an attribute valid for all tags, use the pseudo tag :all, e.g. + addAttributes(":all", "class"). +

+ + @param tag The tag the attributes are for. The tag will be added to the allowed tag list if necessary. + @param keys List of valid attributes for the tag + @return this (for chaining) + */ + @discardableResult + open func addAttributes(_ tag: String, _ keys: String...)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.isTrue(val: keys.count > 0, msg: "No attributes supplied.") + + let tagName = TagName.valueOf(tag) + if (!tagNames.contains(tagName)) { + tagNames.insert(tagName) + } + var attributeSet = Set() + for key in keys { + try Validate.notEmpty(string: key) + attributeSet.insert(AttributeKey.valueOf(key)) + } + + if var currentSet = attributes[tagName] { + for at in attributeSet { + currentSet.insert(at) + } + attributes[tagName] = currentSet + } else { + attributes[tagName] = attributeSet + } + + return self + } + + /** + Remove a list of allowed attributes from a tag. (If an attribute is not allowed on an element, it will be removed.) +

+ E.g.: removeAttributes("a", "href", "class") disallows href and class + attributes on a tags. +

+

+ To make an attribute invalid for all tags, use the pseudo tag :all, e.g. + removeAttributes(":all", "class"). +

+ + @param tag The tag the attributes are for. + @param keys List of invalid attributes for the tag + @return this (for chaining) + */ + @discardableResult + open func removeAttributes(_ tag: String, _ keys: String...)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.isTrue(val: keys.count > 0, msg: "No attributes supplied.") + + let tagName: TagName = TagName.valueOf(tag) + var attributeSet = Set() + for key in keys { + try Validate.notEmpty(string: key) + attributeSet.insert(AttributeKey.valueOf(key)) + } + + if(tagNames.contains(tagName)) { // Only look in sub-maps if tag was allowed + if var currentSet = attributes[tagName] { + for l in attributeSet { + currentSet.remove(l) + } + attributes[tagName] = currentSet + if(currentSet.isEmpty) { // Remove tag from attribute map if no attributes are allowed for tag + attributes.removeValue(forKey: tagName) + } + } + + } + + if(tag == ":all") { // Attribute needs to be removed from all individually set tags + for name in attributes.keys { + var currentSet: Set = attributes[name]! + for l in attributeSet { + currentSet.remove(l) + } + attributes[name] = currentSet + if(currentSet.isEmpty) { // Remove tag from attribute map if no attributes are allowed for tag + attributes.removeValue(forKey: name) + } + } + } + return self + } + + /** + Add an enforced attribute to a tag. An enforced attribute will always be added to the element. If the element + already has the attribute set, it will be overridden. +

+ E.g.: addEnforcedAttribute("a", "rel", "nofollow") will make all a tags output as + <a href="..." rel="nofollow"> +

+ + @param tag The tag the enforced attribute is for. The tag will be added to the allowed tag list if necessary. + @param key The attribute key + @param value The enforced attribute value + @return this (for chaining) + */ + @discardableResult + open func addEnforcedAttribute(_ tag: String, _ key: String, _ value: String)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.notEmpty(string: key) + try Validate.notEmpty(string: value) + + let tagName: TagName = TagName.valueOf(tag) + if (!tagNames.contains(tagName)) { + tagNames.insert(tagName) + } + let attrKey: AttributeKey = AttributeKey.valueOf(key) + let attrVal: AttributeValue = AttributeValue.valueOf(value) + + if (enforcedAttributes[tagName] != nil) { + enforcedAttributes[tagName]?[attrKey] = attrVal + } else { + var attrMap: Dictionary = Dictionary() + attrMap[attrKey] = attrVal + enforcedAttributes[tagName] = attrMap + } + return self + } + + /** + Remove a previously configured enforced attribute from a tag. + + @param tag The tag the enforced attribute is for. + @param key The attribute key + @return this (for chaining) + */ + @discardableResult + open func removeEnforcedAttribute(_ tag: String, _ key: String)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.notEmpty(string: key) + + let tagName: TagName = TagName.valueOf(tag) + if(tagNames.contains(tagName) && (enforcedAttributes[tagName] != nil)) { + let attrKey: AttributeKey = AttributeKey.valueOf(key) + var attrMap: Dictionary = enforcedAttributes[tagName]! + attrMap.removeValue(forKey: attrKey) + enforcedAttributes[tagName] = attrMap + + if(attrMap.isEmpty) { // Remove tag from enforced attribute map if no enforced attributes are present + enforcedAttributes.removeValue(forKey: tagName) + } + } + return self + } + + /** + * Configure this Whitelist to preserve relative links in an element's URL attribute, or convert them to absolute + * links. By default, this is false: URLs will be made absolute (e.g. start with an allowed protocol, like + * e.g. {@code http://}. + *

+ * Note that when handling relative links, the input document must have an appropriate {@code base URI} set when + * parsing, so that the link's protocol can be confirmed. Regardless of the setting of the {@code preserve relative + * links} option, the link must be resolvable against the base URI to an allowed protocol; otherwise the attribute + * will be removed. + *

+ * + * @param preserve {@code true} to allow relative links, {@code false} (default) to deny + * @return this Whitelist, for chaining. + * @see #addProtocols + */ + @discardableResult + open func preserveRelativeLinks(_ preserve: Bool) -> Whitelist { + preserveRelativeLinks = preserve + return self + } + + /** + Add allowed URL protocols for an element's URL attribute. This restricts the possible values of the attribute to + URLs with the defined protocol. +

+ E.g.: addProtocols("a", "href", "ftp", "http", "https") +

+

+ To allow a link to an in-page URL anchor (i.e. <a href="#anchor">, add a #:
+ E.g.: addProtocols("a", "href", "#") +

+ + @param tag Tag the URL protocol is for + @param key Attribute key + @param protocols List of valid protocols + @return this, for chaining + */ + @discardableResult + open func addProtocols(_ tag: String, _ key: String, _ protocols: String...)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.notEmpty(string: key) + + let tagName: TagName = TagName.valueOf(tag) + let attrKey: AttributeKey = AttributeKey.valueOf(key) + var attrMap: Dictionary> + var protSet: Set + + if (self.protocols[tagName] != nil) { + attrMap = self.protocols[tagName]! + } else { + attrMap = Dictionary>() + self.protocols[tagName] = attrMap + } + + if (attrMap[attrKey] != nil) { + protSet = attrMap[attrKey]! + } else { + protSet = Set() + attrMap[attrKey] = protSet + self.protocols[tagName] = attrMap + } + for ptl in protocols { + try Validate.notEmpty(string: ptl) + let prot: Protocol = Protocol.valueOf(ptl) + protSet.insert(prot) + } + attrMap[attrKey] = protSet + self.protocols[tagName] = attrMap + + return self + } + + /** + Remove allowed URL protocols for an element's URL attribute. +

+ E.g.: removeProtocols("a", "href", "ftp") +

+ + @param tag Tag the URL protocol is for + @param key Attribute key + @param protocols List of invalid protocols + @return this, for chaining + */ + @discardableResult + open func removeProtocols(_ tag: String, _ key: String, _ protocols: String...)throws->Whitelist { + try Validate.notEmpty(string: tag) + try Validate.notEmpty(string: key) + + let tagName: TagName = TagName.valueOf(tag) + let attrKey: AttributeKey = AttributeKey.valueOf(key) + + if(self.protocols[tagName] != nil) { + var attrMap: Dictionary> = self.protocols[tagName]! + if(attrMap[attrKey] != nil) { + var protSet: Set = attrMap[attrKey]! + for ptl in protocols { + try Validate.notEmpty(string: ptl) + let prot: Protocol = Protocol.valueOf(ptl) + protSet.remove(prot) + } + attrMap[attrKey] = protSet + + if(protSet.isEmpty) { // Remove protocol set if empty + attrMap.removeValue(forKey: attrKey) + if(attrMap.isEmpty) { // Remove entry for tag if empty + self.protocols.removeValue(forKey: tagName) + } + + } + } + self.protocols[tagName] = attrMap + } + return self + } + + /** + * Test if the supplied tag is allowed by this whitelist + * @param tag test tag + * @return true if allowed + */ + public func isSafeTag(_ tag: String) -> Bool { + return tagNames.contains(TagName.valueOf(tag)) + } + + /** + * Test if the supplied attribute is allowed by this whitelist for this tag + * @param tagName tag to consider allowing the attribute in + * @param el element under test, to confirm protocol + * @param attr attribute under test + * @return true if allowed + */ + public func isSafeAttribute(_ tagName: String, _ el: Element, _ attr: Attribute)throws -> Bool { + let tag: TagName = TagName.valueOf(tagName) + let key: AttributeKey = AttributeKey.valueOf(attr.getKey()) + + if (attributes[tag] != nil) { + if (attributes[tag]?.contains(key))! { + if (protocols[tag] != nil) { + let attrProts: Dictionary> = protocols[tag]! + // ok if not defined protocol; otherwise test + return try (attrProts[key] == nil) || testValidProtocol(el, attr, attrProts[key]!) + } else { // attribute found, no protocols defined, so OK + return true + } + } + } + // no attributes defined for tag, try :all tag + return try !(tagName == ":all") && isSafeAttribute(":all", el, attr) + } + + private func testValidProtocol(_ el: Element, _ attr: Attribute, _ protocols: Set)throws->Bool { + // try to resolve relative urls to abs, and optionally update the attribute so output html has abs. + // rels without a baseuri get removed + var value: String = try el.absUrl(attr.getKey()) + if (value.count == 0) { + value = attr.getValue() + }// if it could not be made abs, run as-is to allow custom unknown protocols + if (!preserveRelativeLinks) { + attr.setValue(value: value) + } + + for ptl in protocols { + var prot: String = ptl.toString() + + if (prot=="#") { // allows anchor links + if (isValidAnchor(value)) { + return true + } else { + continue + } + } + + prot += ":" + + if (value.lowercased().hasPrefix(prot)) { + return true + } + + } + + return false + } + + private func isValidAnchor(_ value: String) -> Bool { + return value.startsWith("#") && !(Pattern(".*\\s.*").matcher(in: value).count > 0) + } + + public func getEnforcedAttributes(_ tagName: String)throws->Attributes { + let attrs: Attributes = Attributes() + let tag: TagName = TagName.valueOf(tagName) + if let keyVals: Dictionary = enforcedAttributes[tag] { + for entry in keyVals { + try attrs.put(entry.key.toString(), entry.value.toString()) + } + } + return attrs + } + +} + +// named types for config. All just hold strings, but here for my sanity. + +open class TagName: TypedValue { + override init(_ value: String) { + super.init(value) + } + + static func valueOf(_ value: String) -> TagName { + return TagName(value) + } +} + +open class AttributeKey: TypedValue { + override init(_ value: String) { + super.init(value) + } + + static func valueOf(_ value: String) -> AttributeKey { + return AttributeKey(value) + } +} + +open class AttributeValue: TypedValue { + override init(_ value: String) { + super.init(value) + } + + static func valueOf(_ value: String) -> AttributeValue { + return AttributeValue(value) + } +} + +open class Protocol: TypedValue { + override init(_ value: String) { + super.init(value) + } + + static func valueOf(_ value: String) -> Protocol { + return Protocol(value) + } +} + +open class TypedValue { + fileprivate let value: String + + init(_ value: String) { + self.value = value + } + + public func toString() -> String { + return value + } +} + +extension TypedValue: Hashable { + public func hash(into hasher: inout Hasher) { + hasher.combine(value) + } +} + +public func == (lhs: TypedValue, rhs: TypedValue) -> Bool { + if(lhs === rhs) {return true} + return lhs.value == rhs.value +} diff --git a/Swiftgram/SwiftSoup/Sources/XmlDeclaration.swift b/Swiftgram/SwiftSoup/Sources/XmlDeclaration.swift new file mode 100644 index 00000000000..5f1032b6ab5 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/XmlDeclaration.swift @@ -0,0 +1,77 @@ +// +// XmlDeclaration.swift +// SwifSoup +// +// Created by Nabil Chatbi on 29/09/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + An XML Declaration. + */ +public class XmlDeclaration: Node { + private let _name: String + private let isProcessingInstruction: Bool // String { + return "#declaration" + } + + /** + * Get the name of this declaration. + * @return name of this declaration. + */ + public func name() -> String { + return _name + } + + /** + Get the unencoded XML declaration. + @return XML declaration + */ + public func getWholeDeclaration()throws->String { + return try attributes!.html().trim() // attr html starts with a " " + } + + override func outerHtmlHead(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) { + accum + .append("<") + .append(isProcessingInstruction ? "!" : "?") + .append(_name) + do { + try attributes?.html(accum: accum, out: out) + } catch {} + accum + .append(isProcessingInstruction ? "!" : "?") + .append(">") + } + + override func outerHtmlTail(_ accum: StringBuilder, _ depth: Int, _ out: OutputSettings) {} + + public override func copy(with zone: NSZone? = nil) -> Any { + let clone = XmlDeclaration(_name, baseUri!, isProcessingInstruction) + return copy(clone: clone) + } + + public override func copy(parent: Node?) -> Node { + let clone = XmlDeclaration(_name, baseUri!, isProcessingInstruction) + return copy(clone: clone, parent: parent) + } + public override func copy(clone: Node, parent: Node?) -> Node { + return super.copy(clone: clone, parent: parent) + } +} diff --git a/Swiftgram/SwiftSoup/Sources/XmlTreeBuilder.swift b/Swiftgram/SwiftSoup/Sources/XmlTreeBuilder.swift new file mode 100644 index 00000000000..785a68b84c5 --- /dev/null +++ b/Swiftgram/SwiftSoup/Sources/XmlTreeBuilder.swift @@ -0,0 +1,146 @@ +// +// XmlTreeBuilder.swift +// SwiftSoup +// +// Created by Nabil Chatbi on 14/10/16. +// Copyright © 2016 Nabil Chatbi.. All rights reserved. +// + +import Foundation + +/** + * Use the {@code XmlTreeBuilder} when you want to parse XML without any of the HTML DOM rules being applied to the + * document. + *

Usage example: {@code Document xmlDoc = Jsoup.parse(html, baseUrl, Parser.xmlParser())}

+ * + */ +public class XmlTreeBuilder: TreeBuilder { + + public override init() { + super.init() + } + + public override func defaultSettings() -> ParseSettings { + return ParseSettings.preserveCase + } + + public func parse(_ input: String, _ baseUri: String)throws->Document { + return try parse(input, baseUri, ParseErrorList.noTracking(), ParseSettings.preserveCase) + } + + override public func initialiseParse(_ input: String, _ baseUri: String, _ errors: ParseErrorList, _ settings: ParseSettings) { + super.initialiseParse(input, baseUri, errors, settings) + stack.append(doc) // place the document onto the stack. differs from HtmlTreeBuilder (not on stack) + doc.outputSettings().syntax(syntax: OutputSettings.Syntax.xml) + } + + override public func process(_ token: Token)throws->Bool { + // start tag, end tag, doctype, comment, character, eof + switch (token.type) { + case .StartTag: + try insert(token.asStartTag()) + break + case .EndTag: + try popStackToClose(token.asEndTag()) + break + case .Comment: + try insert(token.asComment()) + break + case .Char: + try insert(token.asCharacter()) + break + case .Doctype: + try insert(token.asDoctype()) + break + case .EOF: // could put some normalisation here if desired + break +// default: +// try Validate.fail(msg: "Unexpected token type: " + token.tokenType()) + } + return true + } + + private func insertNode(_ node: Node)throws { + try currentElement()?.appendChild(node) + } + + @discardableResult + func insert(_ startTag: Token.StartTag)throws->Element { + let tag: Tag = try Tag.valueOf(startTag.name(), settings) + // todo: wonder if for xml parsing, should treat all tags as unknown? because it's not html. + let el: Element = try Element(tag, baseUri, settings.normalizeAttributes(startTag._attributes)) + try insertNode(el) + if (startTag.isSelfClosing()) { + tokeniser.acknowledgeSelfClosingFlag() + if (!tag.isKnownTag()) // unknown tag, remember this is self closing for output. see above. + { + tag.setSelfClosing() + } + } else { + stack.append(el) + } + return el + } + + func insert(_ commentToken: Token.Comment)throws { + let comment: Comment = Comment(commentToken.getData(), baseUri) + var insert: Node = comment + if (commentToken.bogus) { // xml declarations are emitted as bogus comments (which is right for html, but not xml) + // so we do a bit of a hack and parse the data as an element to pull the attributes out + let data: String = comment.getData() + if (data.count > 1 && (data.startsWith("!") || data.startsWith("?"))) { + let doc: Document = try SwiftSoup.parse("<" + data.substring(1, data.count - 2) + ">", baseUri, Parser.xmlParser()) + let el: Element = doc.child(0) + insert = XmlDeclaration(settings.normalizeTag(el.tagName()), comment.getBaseUri(), data.startsWith("!")) + insert.getAttributes()?.addAll(incoming: el.getAttributes()) + } + } + try insertNode(insert) + } + + func insert(_ characterToken: Token.Char)throws { + let node: Node = TextNode(characterToken.getData()!, baseUri) + try insertNode(node) + } + + func insert(_ d: Token.Doctype)throws { + let doctypeNode = DocumentType(settings.normalizeTag(d.getName()), d.getPubSysKey(), d.getPublicIdentifier(), d.getSystemIdentifier(), baseUri) + try insertNode(doctypeNode) + } + + /** + * If the stack contains an element with this tag's name, pop up the stack to remove the first occurrence. If not + * found, skips. + * + * @param endTag + */ + private func popStackToClose(_ endTag: Token.EndTag)throws { + let elName: String = try endTag.name() + var firstFound: Element? = nil + + for pos in (0..Array { + initialiseParse(inputFragment, baseUri, errors, settings) + try runParser() + return doc.getChildNodes() + } +} diff --git a/Swiftgram/Wrap/BUILD b/Swiftgram/Wrap/BUILD new file mode 100644 index 00000000000..2a1b4a85784 --- /dev/null +++ b/Swiftgram/Wrap/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "Wrap", + module_name = "Wrap", + srcs = glob([ + "Sources/**/*.swift", + ]), + copts = [ + # "-warnings-as-errors", + ], + deps = [ + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/Swiftgram/Wrap/Sources/Wrap.swift b/Swiftgram/Wrap/Sources/Wrap.swift new file mode 100644 index 00000000000..055ab2b8754 --- /dev/null +++ b/Swiftgram/Wrap/Sources/Wrap.swift @@ -0,0 +1,568 @@ +/** + * Wrap - the easy to use Swift JSON encoder + * + * For usage, see documentation of the classes/symbols listed in this file, as well + * as the guide available at: github.com/johnsundell/wrap + * + * Copyright (c) 2015 - 2017 John Sundell. Licensed under the MIT license, as follows: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +import Foundation + +/// Type alias defining what type of Dictionary that Wrap produces +public typealias WrappedDictionary = [String : Any] + +/** + * Wrap any object or value, encoding it into a JSON compatible Dictionary + * + * - Parameter object: The object to encode + * - Parameter context: An optional contextual object that will be available throughout + * the wrapping process. Can be used to inject extra information or objects needed to + * perform the wrapping. + * - Parameter dateFormatter: Optionally pass in a date formatter to use to encode any + * `NSDate` values found while encoding the object. If this is `nil`, any found date + * values will be encoded using the "yyyy-MM-dd HH:mm:ss" format. + * + * All the type's stored properties (both public & private) will be recursively + * encoded with their property names as the key. For example, given the following + * Struct as input: + * + * ``` + * struct User { + * let name = "John" + * let age = 28 + * } + * ``` + * + * This function will produce the following output: + * + * ``` + * [ + * "name" : "John", + * "age" : 28 + * ] + * ``` + * + * The object passed to this function must be an instance of a Class, or a value + * based on a Struct. Standard library values, such as Ints, Strings, etc are not + * valid input. + * + * Throws a WrapError if the operation could not be completed. + * + * For more customization options, make your type conform to `WrapCustomizable`, + * that lets you override encoding keys and/or the whole wrapping process. + * + * See also `WrappableKey` (for dictionary keys) and `WrappableEnum` for Enum values. + */ +public func wrap(_ object: T, context: Any? = nil, dateFormatter: DateFormatter? = nil) throws -> WrappedDictionary { + return try Wrapper(context: context, dateFormatter: dateFormatter).wrap(object: object, enableCustomizedWrapping: true) +} + +/** + * Alternative `wrap()` overload that returns JSON-based `Data` + * + * See the documentation for the dictionary-based `wrap()` function for more information + */ +public func wrap(_ object: T, writingOptions: JSONSerialization.WritingOptions? = nil, context: Any? = nil, dateFormatter: DateFormatter? = nil) throws -> Data { + return try Wrapper(context: context, dateFormatter: dateFormatter).wrap(object: object, writingOptions: writingOptions ?? []) +} + +/** + * Alternative `wrap()` overload that encodes an array of objects into an array of dictionaries + * + * See the documentation for the dictionary-based `wrap()` function for more information + */ +public func wrap(_ objects: [T], context: Any? = nil, dateFormatter: DateFormatter? = nil) throws -> [WrappedDictionary] { + return try objects.map { try wrap($0, context: context, dateFormatter: dateFormatter) } +} + +/** + * Alternative `wrap()` overload that encodes an array of objects into JSON-based `Data` + * + * See the documentation for the dictionary-based `wrap()` function for more information + */ +public func wrap(_ objects: [T], writingOptions: JSONSerialization.WritingOptions? = nil, context: Any? = nil, dateFormatter: DateFormatter? = nil) throws -> Data { + let dictionaries: [WrappedDictionary] = try wrap(objects, context: context, dateFormatter: dateFormatter) + return try JSONSerialization.data(withJSONObject: dictionaries, options: writingOptions ?? []) +} + +// Enum describing various styles of keys in a wrapped dictionary +public enum WrapKeyStyle { + /// The keys in a dictionary produced by Wrap should match their property name (default) + case matchPropertyName + /// The keys in a dictionary produced by Wrap should be converted to snake_case. + /// For example, "myProperty" will be converted to "my_property". All keys will be lowercased. + case convertToSnakeCase +} + +/** + * Protocol providing the main customization point for Wrap + * + * It's optional to implement all of the methods in this protocol, as Wrap + * supplies default implementations of them. + */ +public protocol WrapCustomizable { + /** + * The style that wrap should apply to the keys of a wrapped dictionary + * + * The value of this property is ignored if a type provides a custom + * implementation of the `keyForWrapping(propertyNamed:)` method. + */ + var wrapKeyStyle: WrapKeyStyle { get } + /** + * Override the wrapping process for this type + * + * All top-level types should return a `WrappedDictionary` from this method. + * + * You may use the default wrapping implementation by using a `Wrapper`, but + * never call `wrap()` from an implementation of this method, since that might + * cause an infinite recursion. + * + * The context & dateFormatter passed to this method is any formatter that you + * supplied when initiating the wrapping process by calling `wrap()`. + * + * Returning nil from this method will be treated as an error, and cause + * a `WrapError.wrappingFailedForObject()` error to be thrown. + */ + func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? + /** + * Override the key that will be used when encoding a certain property + * + * Returning nil from this method will cause Wrap to skip the property + */ + func keyForWrapping(propertyNamed propertyName: String) -> String? + /** + * Override the wrapping of any property of this type + * + * The original value passed to this method will be the original value that the + * type is currently storing for the property. You can choose to either use this, + * or just access the property in question directly. + * + * The dateFormatter passed to this method is any formatter that you supplied + * when initiating the wrapping process by calling `wrap()`. + * + * Returning nil from this method will cause Wrap to use the default + * wrapping mechanism for the property, so you can choose which properties + * you want to customize the wrapping for. + * + * If you encounter an error while attempting to wrap the property in question, + * you can choose to throw. This will cause a WrapError.WrappingFailedForObject + * to be thrown from the main `wrap()` call that started the process. + */ + func wrap(propertyNamed propertyName: String, originalValue: Any, context: Any?, dateFormatter: DateFormatter?) throws -> Any? +} + +/// Protocol implemented by types that may be used as keys in a wrapped Dictionary +public protocol WrappableKey { + /// Convert this type into a key that can be used in a wrapped Dictionary + func toWrappedKey() -> String +} + +/** + * Protocol implemented by Enums to enable them to be directly wrapped + * + * If an Enum implementing this protocol conforms to `RawRepresentable` (it's based + * on a raw type), no further implementation is required. If you wish to customize + * how the Enum is wrapped, you can use the APIs in `WrapCustomizable`. + */ +public protocol WrappableEnum: WrapCustomizable {} + +/// Protocol implemented by Date types to enable them to be wrapped +public protocol WrappableDate { + /// Wrap the date using a date formatter, generating a string representation + func wrap(dateFormatter: DateFormatter) -> String +} + +/** + * Class used to wrap an object or value. Use this in any custom `wrap()` implementations + * in case you only want to add on top of the default implementation. + * + * You normally don't have to interact with this API. Use the `wrap()` function instead + * to wrap an object from top-level code. + */ +public class Wrapper { + fileprivate let context: Any? + fileprivate var dateFormatter: DateFormatter? + + /** + * Initialize an instance of this class + * + * - Parameter context: An optional contextual object that will be available throughout the + * wrapping process. Can be used to inject extra information or objects needed to perform + * the wrapping. + * - Parameter dateFormatter: Any specific date formatter to use to encode any found `NSDate` + * values. If this is `nil`, any found date values will be encoded using the "yyyy-MM-dd + * HH:mm:ss" format. + */ + public init(context: Any? = nil, dateFormatter: DateFormatter? = nil) { + self.context = context + self.dateFormatter = dateFormatter + } + + /// Perform automatic wrapping of an object or value. For more information, see `Wrap()`. + public func wrap(object: Any) throws -> WrappedDictionary { + return try self.wrap(object: object, enableCustomizedWrapping: false) + } +} + +/// Error type used by Wrap +public enum WrapError: Error { + /// Thrown when an invalid top level object (such as a String or Int) was passed to `Wrap()` + case invalidTopLevelObject(Any) + /// Thrown when an object couldn't be wrapped. This is a last resort error. + case wrappingFailedForObject(Any) +} + +// MARK: - Default protocol implementations + +/// Extension containing default implementations of `WrapCustomizable`. Override as you see fit. +public extension WrapCustomizable { + var wrapKeyStyle: WrapKeyStyle { + return .matchPropertyName + } + + func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(object: self) + } + + func keyForWrapping(propertyNamed propertyName: String) -> String? { + switch self.wrapKeyStyle { + case .matchPropertyName: + return propertyName + case .convertToSnakeCase: + return self.convertPropertyNameToSnakeCase(propertyName: propertyName) + } + } + + func wrap(propertyNamed propertyName: String, originalValue: Any, context: Any?, dateFormatter: DateFormatter?) throws -> Any? { + return try Wrapper(context: context, dateFormatter: dateFormatter).wrap(value: originalValue, propertyName: propertyName) + } +} + +/// Extension adding convenience APIs to `WrapCustomizable` types +public extension WrapCustomizable { + /// Convert a given property name (assumed to be camelCased) to snake_case + func convertPropertyNameToSnakeCase(propertyName: String) -> String { + let regex = try! NSRegularExpression(pattern: "(?<=[a-z])([A-Z])|([A-Z])(?=[a-z])", options: []) + let range = NSRange(location: 0, length: propertyName.count) + let camelCasePropertyName = regex.stringByReplacingMatches(in: propertyName, options: [], range: range, withTemplate: "_$1$2") + return camelCasePropertyName.lowercased() + } +} + +/// Extension providing a default wrapping implementation for `RawRepresentable` Enums +public extension WrappableEnum where Self: RawRepresentable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return self.rawValue + } +} + +/// Extension customizing how Arrays are wrapped +extension Array: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(collection: self) + } +} + +/// Extension customizing how Dictionaries are wrapped +extension Dictionary: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(dictionary: self) + } +} + +/// Extension customizing how Sets are wrapped +extension Set: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(collection: self) + } +} + +/// Extension customizing how Int64s are wrapped, ensuring compatbility with 32 bit systems +extension Int64: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return NSNumber(value: self) + } +} + +/// Extension customizing how UInt64s are wrapped, ensuring compatbility with 32 bit systems +extension UInt64: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return NSNumber(value: self) + } +} + +/// Extension customizing how NSStrings are wrapped +extension NSString: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return self + } +} + +/// Extension customizing how NSURLs are wrapped +extension NSURL: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return self.absoluteString + } +} + +/// Extension customizing how URLs are wrapped +extension URL: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return self.absoluteString + } +} + + +/// Extension customizing how NSArrays are wrapped +extension NSArray: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(collection: Array(self)) + } +} + +#if !os(Linux) +/// Extension customizing how NSDictionaries are wrapped +extension NSDictionary: WrapCustomizable { + public func wrap(context: Any?, dateFormatter: DateFormatter?) -> Any? { + return try? Wrapper(context: context, dateFormatter: dateFormatter).wrap(dictionary: self as [NSObject : AnyObject]) + } +} +#endif + +/// Extension making Int a WrappableKey +extension Int: WrappableKey { + public func toWrappedKey() -> String { + return String(self) + } +} + +/// Extension making Date a WrappableDate +extension Date: WrappableDate { + public func wrap(dateFormatter: DateFormatter) -> String { + return dateFormatter.string(from: self) + } +} + +#if !os(Linux) +/// Extension making NSdate a WrappableDate +extension NSDate: WrappableDate { + public func wrap(dateFormatter: DateFormatter) -> String { + return dateFormatter.string(from: self as Date) + } +} +#endif + +// MARK: - Private + +private extension Wrapper { + func wrap(object: T, enableCustomizedWrapping: Bool) throws -> WrappedDictionary { + if enableCustomizedWrapping { + if let customizable = object as? WrapCustomizable { + let wrapped = try self.performCustomWrapping(object: customizable) + + guard let wrappedDictionary = wrapped as? WrappedDictionary else { + throw WrapError.invalidTopLevelObject(object) + } + + return wrappedDictionary + } + } + + var mirrors = [Mirror]() + var currentMirror: Mirror? = Mirror(reflecting: object) + + while let mirror = currentMirror { + mirrors.append(mirror) + currentMirror = mirror.superclassMirror + } + + return try self.performWrapping(object: object, mirrors: mirrors.reversed()) + } + + func wrap(object: T, writingOptions: JSONSerialization.WritingOptions) throws -> Data { + let dictionary = try self.wrap(object: object, enableCustomizedWrapping: true) + return try JSONSerialization.data(withJSONObject: dictionary, options: writingOptions) + } + + func wrap(value: T, propertyName: String? = nil) throws -> Any? { + if let customizable = value as? WrapCustomizable { + return try self.performCustomWrapping(object: customizable) + } + + if let date = value as? WrappableDate { + return self.wrap(date: date) + } + + let mirror = Mirror(reflecting: value) + + if mirror.children.isEmpty { + if let displayStyle = mirror.displayStyle { + switch displayStyle { + case .enum: + if let wrappableEnum = value as? WrappableEnum { + if let wrapped = wrappableEnum.wrap(context: self.context, dateFormatter: self.dateFormatter) { + return wrapped + } + + throw WrapError.wrappingFailedForObject(value) + } + + return "\(value)" + case .struct: + return [:] + default: + return value + } + } + + if !(value is CustomStringConvertible) { + if String(describing: value) == "(Function)" { + return nil + } + } + + return value + } else if value is ExpressibleByNilLiteral && mirror.children.count == 1 { + if let firstMirrorChild = mirror.children.first { + return try self.wrap(value: firstMirrorChild.value, propertyName: propertyName) + } + } + + return try self.wrap(object: value, enableCustomizedWrapping: false) + } + + func wrap(collection: T) throws -> [Any] { + var wrappedArray = [Any]() + let wrapper = Wrapper(context: self.context, dateFormatter: self.dateFormatter) + + for element in collection { + if let wrapped = try wrapper.wrap(value: element) { + wrappedArray.append(wrapped) + } + } + + return wrappedArray + } + + func wrap(dictionary: [K : V]) throws -> WrappedDictionary { + var wrappedDictionary = WrappedDictionary() + let wrapper = Wrapper(context: self.context, dateFormatter: self.dateFormatter) + + for (key, value) in dictionary { + let wrappedKey: String? + + if let stringKey = key as? String { + wrappedKey = stringKey + } else if let wrappableKey = key as? WrappableKey { + wrappedKey = wrappableKey.toWrappedKey() + } else if let stringConvertible = key as? CustomStringConvertible { + wrappedKey = stringConvertible.description + } else { + wrappedKey = nil + } + + if let wrappedKey = wrappedKey { + wrappedDictionary[wrappedKey] = try wrapper.wrap(value: value, propertyName: wrappedKey) + } + } + + return wrappedDictionary + } + + func wrap(date: WrappableDate) -> String { + let dateFormatter: DateFormatter + + if let existingFormatter = self.dateFormatter { + dateFormatter = existingFormatter + } else { + dateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" + self.dateFormatter = dateFormatter + } + + return date.wrap(dateFormatter: dateFormatter) + } + + func performWrapping(object: T, mirrors: [Mirror]) throws -> WrappedDictionary { + let customizable = object as? WrapCustomizable + var wrappedDictionary = WrappedDictionary() + + for mirror in mirrors { + for property in mirror.children { + + if (property.value as? WrapOptional)?.isNil == true { + continue + } + + guard let propertyName = property.label else { + continue + } + + let wrappingKey: String? + + if let customizable = customizable { + wrappingKey = customizable.keyForWrapping(propertyNamed: propertyName) + } else { + wrappingKey = propertyName + } + + if let wrappingKey = wrappingKey { + if let wrappedProperty = try customizable?.wrap(propertyNamed: propertyName, originalValue: property.value, context: self.context, dateFormatter: self.dateFormatter) { + wrappedDictionary[wrappingKey] = wrappedProperty + } else { + wrappedDictionary[wrappingKey] = try self.wrap(value: property.value, propertyName: propertyName) + } + } + } + } + + return wrappedDictionary + } + + func performCustomWrapping(object: WrapCustomizable) throws -> Any { + guard let wrapped = object.wrap(context: self.context, dateFormatter: self.dateFormatter) else { + throw WrapError.wrappingFailedForObject(object) + } + + return wrapped + } +} + +// MARK: - Nil Handling + +private protocol WrapOptional { + var isNil: Bool { get } +} + +extension Optional : WrapOptional { + var isNil: Bool { + switch self { + case .none: + return true + case .some(let wrapped): + if let nillable = wrapped as? WrapOptional { + return nillable.isNil + } + return false + } + } +} \ No newline at end of file diff --git a/Telegram/BUILD b/Telegram/BUILD index 56527eec83a..32cf4972292 100644 --- a/Telegram/BUILD +++ b/Telegram/BUILD @@ -250,16 +250,17 @@ filegroup( name = "AppStringResources", srcs = [ "Telegram-iOS/en.lproj/Localizable.strings", + "//Swiftgram/SGStrings:SGLocalizableStrings", ] + [ "{}.lproj/Localizable.strings".format(language) for language in empty_languages - ], + ] ) filegroup( name = "WatchAppStringResources", srcs = glob([ "Telegram-iOS/*.lproj/Localizable.strings", - ], exclude = ["Telegram-iOS/*.lproj/**/.*"]), + ], exclude = ["Telegram-iOS/*.lproj/**/.*"]) + ["//Swiftgram/SGStrings:SGLocalizableStrings"], ) filegroup( @@ -318,19 +319,21 @@ filegroup( ]), ) +# MARK: Swiftgram alternative icons alternate_icon_folders = [ - "BlackIcon", - "BlackClassicIcon", - "BlackFilledIcon", - "BlueIcon", - "BlueClassicIcon", - "BlueFilledIcon", - "WhiteFilledIcon", - "New1", - "New2", - "Premium", - "PremiumBlack", - "PremiumTurbo", + "SGDefault", + "SGBlack", + "SGLegacy", + "SGInverted", + "SGWhite", + "SGNight", + "SGSky", + "SGTitanium", + "SGNeon", + "SGNeonBlue", + "SGGlass", + "SGSparkling", + "SGBeta" ] [ @@ -356,12 +359,14 @@ objc_library( ], ) +SGRESOURCES = ["//Swiftgram/SGSettingsUI:SGUIAssets"] + swift_library( name = "Lib", srcs = glob([ "Telegram-iOS/Application.swift", ]), - data = [ + data = SGRESOURCES + [ ":Icons", ":AppResources", ":AppIntentVocabularyResources", @@ -422,6 +427,16 @@ plist_fragment( tonsite + + CFBundleTypeRole + Viewer + CFBundleURLName + {telegram_bundle_id}.custom + CFBundleURLSchemes + + sg + + """.format( telegram_bundle_id = telegram_bundle_id, @@ -508,6 +523,7 @@ associated_domains_fragment = "" if telegram_bundle_id not in official_bundle_id applinks:telegram.me applinks:t.me applinks:*.t.me + applinks:swiftgram.app """ @@ -537,7 +553,7 @@ official_communication_notifications_fragment = """ com.apple.developer.usernotifications.communication """ -communication_notifications_fragment = official_communication_notifications_fragment if telegram_bundle_id in official_bundle_ids else "" +communication_notifications_fragment = official_communication_notifications_fragment # if telegram_bundle_id in official_bundle_ids else "" store_signin_fragment = """ com.apple.developer.applesignin @@ -547,6 +563,13 @@ store_signin_fragment = """ """ signin_fragment = store_signin_fragment if telegram_bundle_id in store_bundle_ids else "" +# content_analysis = """ +# com.apple.developer.sensitivecontentanalysis.client +# +# analysis +# +# """ + plist_fragment( name = "TelegramEntitlements", extension = "entitlements", @@ -561,6 +584,7 @@ plist_fragment( carplay_fragment, communication_notifications_fragment, signin_fragment, + # content_analysis ]) ) @@ -648,7 +672,7 @@ plist_fragment( template = """ CFBundleDisplayName - Telegram + Swiftgram """ ) @@ -696,7 +720,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.watchkitapp.watchkitextension CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! WKExtensionDelegateClassName @@ -716,7 +740,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.watchkitapp CFBundleName - Telegram + Swiftgram UISupportedInterfaceOrientations UIInterfaceOrientationPortrait @@ -1160,7 +1184,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.Share CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1252,7 +1276,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.NotificationContent CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1359,7 +1383,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.Widget CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1472,7 +1496,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.SiriIntents CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1593,6 +1617,147 @@ ios_extension( ], ) +# MARK: Swiftgram +# TODO(swiftgram): Localize CFBundleDisplayName +plist_fragment( + name = "SGActionRequestHandlerInfoPlist", + extension = "plist", + template = + """ + CFBundleDevelopmentRegion + en + CFBundleIdentifier + {telegram_bundle_id}.SGActionRequestHandler + CFBundleName + Swiftgram + CFBundleDisplayName + Open in Swiftgram + CFBundlePackageType + XPC! + NSExtension + + NSExtensionAttributes + + NSExtensionActivationRule + + NSExtensionActivationSupportsFileWithMaxCount + 0 + NSExtensionActivationSupportsImageWithMaxCount + 0 + NSExtensionActivationSupportsMovieWithMaxCount + 0 + NSExtensionActivationSupportsText + + NSExtensionActivationSupportsWebURLWithMaxCount + 1 + + NSExtensionJavaScriptPreprocessingFile + Action + NSExtensionServiceAllowsFinderPreviewItem + + NSExtensionServiceAllowsTouchBarItem + + NSExtensionServiceFinderPreviewIconName + NSActionTemplate + NSExtensionServiceTouchBarBezelColorName + TouchBarBezel + NSExtensionServiceTouchBarIconName + NSActionTemplate + + NSExtensionPointIdentifier + com.apple.services + NSExtensionPrincipalClass + SGActionRequestHandler + + """.format( + telegram_bundle_id = telegram_bundle_id, + ) +) + +# TODO(swiftgram): Proper icon +filegroup( + name = "SGActionRequestHandlerAssets", + srcs = glob(["SGActionRequestHandler/Media.xcassets/**"]), + visibility = ["//visibility:public"], +) + +filegroup( + name = "SGActionRequestHandlerScript", + srcs = ["SGActionRequestHandler/Action.js"], + visibility = ["//visibility:public"], +) + +swift_library( + name = "SGActionRequestHandlerLib", + module_name = "SGActionRequestHandlerLib", + srcs = glob([ + "SGActionRequestHandler/**/*.swift", + ]), + copts = [ + "-warnings-as-errors", + ], + data = [ + ":SGActionRequestHandlerAssets", + ":SGActionRequestHandlerScript" + ], + deps = [ + "//submodules/UrlEscaping:UrlEscaping" + ], +) + +genrule( + name = "SetMinOsVersionSGActionRequestHandler", + cmd_bash = +""" + name=SGActionRequestHandler.appex + cat $(location PatchMinOSVersion.source.sh) | sed -e "s/<<>>/14\\.0/g" | sed -e "s/<<>>/$$name/g" > $(location SetMinOsVersionSGActionRequestHandler.sh) +""", + srcs = [ + "PatchMinOSVersion.source.sh", + ], + outs = [ + "SetMinOsVersionSGActionRequestHandler.sh", + ], + executable = True, + visibility = [ + "//visibility:public", + ] +) + +ios_extension( + name = "SGActionRequestHandler", + bundle_id = "{telegram_bundle_id}.SGActionRequestHandler".format( + telegram_bundle_id = telegram_bundle_id, + ), + families = [ + "iphone", + "ipad", + ], + infoplists = [ + ":SGActionRequestHandlerInfoPlist", + ":VersionInfoPlist", + ":RequiredDeviceCapabilitiesPlist", + ":BuildNumberInfoPlist", + # ":AppNameInfoPlist", + ], + minimum_os_version = minimum_os_version, # maintain the same minimum OS version across extensions + ipa_post_processor = ":SetMinOsVersionSGActionRequestHandler", + #provides_main = True, + provisioning_profile = select({ + ":disableProvisioningProfilesSetting": None, + "//conditions:default": "@build_configuration//provisioning:SGActionRequestHandler.mobileprovision", + }), + deps = [ + ":SGActionRequestHandlerLib", + ], + frameworks = [ + ], + visibility = [ + "//visibility:public", + ] +) +# + plist_fragment( name = "BroadcastUploadInfoPlist", extension = "plist", @@ -1603,7 +1768,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.BroadcastUpload CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1697,7 +1862,7 @@ plist_fragment( CFBundleIdentifier {telegram_bundle_id}.NotificationService CFBundleName - Telegram + Swiftgram CFBundlePackageType XPC! NSExtension @@ -1764,11 +1929,11 @@ plist_fragment( CFBundleDevelopmentRegion en CFBundleDisplayName - Telegram + Swiftgram CFBundleIdentifier {telegram_bundle_id} CFBundleName - Telegram + Swiftgram CFBundlePackageType APPL CFBundleSignature @@ -1821,17 +1986,17 @@ plist_fragment( NSCameraUsageDescription We need this so that you can take and share photos and videos. NSContactsUsageDescription - Telegram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices. + Swiftgram stores your contacts heavily encrypted in the Telegram cloud to let you connect with your friends across all your devices. NSFaceIDUsageDescription You can use Face ID to unlock the app. NSLocationAlwaysUsageDescription - When you send your location to your friends, Telegram needs access to show them a map. You also need this to send locations from an Apple Watch. + When you send your location to your friends, Swiftgram needs access to show them a map. You also need this to send locations from an Apple Watch. NSLocationWhenInUseUsageDescription - When you send your location to your friends, Telegram needs access to show them a map. + When you send your location to your friends, Swiftgram needs access to show them a map. NSMicrophoneUsageDescription We need this so that you can record and share voice messages and videos with sound. NSMotionUsageDescription - When you send your location to your friends, Telegram needs access to show them a map. + When you send your location to your friends, Swiftgram needs access to show them a map. NSPhotoLibraryAddUsageDescription We need this so that you can share photos and videos from your photo library. NSPhotoLibraryUsageDescription @@ -1938,7 +2103,7 @@ xcode_provisioning_profile( ) ios_application( - name = "Telegram", + name = "Swiftgram", bundle_id = "{telegram_bundle_id}".format( telegram_bundle_id = telegram_bundle_id, ), @@ -1975,9 +2140,12 @@ ios_application( strings = [ ":AppStringResources", ], + # MARK: Swiftgram + settings_bundle = "//Swiftgram/SGSettingsBundle:SGSettingsBundle", extensions = select({ ":disableExtensionsSetting": [], "//conditions:default": [ + # ":SGActionRequestHandler", # UX sucks https://t.me/swiftgramchat/7335 ":ShareExtension", ":NotificationContentExtension", ":NotificationServiceExtension" + notificationServiceExtensionVersion, @@ -2001,11 +2169,11 @@ xcodeproj( name = "Telegram_xcodeproj", build_mode = "bazel", bazel_path = telegram_bazel_path, - project_name = "Telegram", + project_name = "Swiftgram", tags = ["manual"], top_level_targets = top_level_targets( labels = [ - ":Telegram", + ":Swiftgram", ], target_environments = ["device", "simulator"], ), diff --git a/Telegram/NotificationService/Sources/NotificationService.swift b/Telegram/NotificationService/Sources/NotificationService.swift index 74adf27ecc5..d79d2a58a11 100644 --- a/Telegram/NotificationService/Sources/NotificationService.swift +++ b/Telegram/NotificationService/Sources/NotificationService.swift @@ -495,14 +495,16 @@ private struct NotificationContent: CustomStringConvertible { var userInfo: [AnyHashable: Any] = [:] var attachments: [UNNotificationAttachment] = [] var silent = false + var isEmpty: Bool var senderPerson: INPerson? var senderImage: INImage? var isLockedMessage: String? - init(isLockedMessage: String?) { + init(isLockedMessage: String?, isEmpty: Bool = false) { self.isLockedMessage = isLockedMessage + self.isEmpty = isEmpty } var description: String { @@ -518,6 +520,7 @@ private struct NotificationContent: CustomStringConvertible { string += " senderImage: \(self.senderImage != nil ? "non-empty" : "empty"),\n" string += " isLockedMessage: \(String(describing: self.isLockedMessage)),\n" string += " attachments: \(self.attachments),\n" + string += " isEmpty: \(self.isEmpty),\n" string += "}" return string } @@ -635,6 +638,16 @@ private struct NotificationContent: CustomStringConvertible { } } } + + // MARK: Swiftgram + if self.isEmpty { + content.title = " " + content.threadIdentifier = "empty-notification" + if #available(iOSApplicationExtension 15.0, iOS 15.0, *) { + content.interruptionLevel = .passive + content.relevanceScore = 0.0 + } + } return content } @@ -998,7 +1011,7 @@ private final class NotificationServiceHandler { action = .logout case "MESSAGE_MUTED": if let peerId = peerId { - action = .poll(peerId: peerId, content: NotificationContent(isLockedMessage: nil), messageId: nil) + action = .poll(peerId: peerId, content: NotificationContent(isLockedMessage: nil, isEmpty: true), messageId: nil) } case "MESSAGE_DELETED": if let peerId = peerId { @@ -1241,7 +1254,7 @@ private final class NotificationServiceHandler { case .logout: Logger.shared.log("NotificationService \(episode)", "Will logout") - let content = NotificationContent(isLockedMessage: nil) + let content = NotificationContent(isLockedMessage: nil, isEmpty: true) updateCurrentContent(content) completed() case let .poll(peerId, initialContent, messageId): @@ -1667,7 +1680,7 @@ private final class NotificationServiceHandler { queue.async { guard let strongSelf = self, let stateManager = strongSelf.stateManager else { - let content = NotificationContent(isLockedMessage: isLockedMessage) + let content = NotificationContent(isLockedMessage: isLockedMessage, isEmpty: true) updateCurrentContent(content) completed() return @@ -1953,7 +1966,7 @@ private final class NotificationServiceHandler { postbox: stateManager.postbox ) |> deliverOn(strongSelf.queue)).start(next: { value in - var content = NotificationContent(isLockedMessage: nil) + var content = NotificationContent(isLockedMessage: nil, isEmpty: true) if isCurrentAccount { content.badge = Int(value.0) } @@ -1995,7 +2008,7 @@ private final class NotificationServiceHandler { } let completeRemoval: () -> Void = { - let content = NotificationContent(isLockedMessage: nil) + let content = NotificationContent(isLockedMessage: nil, isEmpty: true) Logger.shared.log("NotificationService \(episode)", "Updating content to \(content)") updateCurrentContent(content) @@ -2047,7 +2060,7 @@ private final class NotificationServiceHandler { postbox: stateManager.postbox ) |> deliverOn(strongSelf.queue)).start(next: { value in - var content = NotificationContent(isLockedMessage: nil) + var content = NotificationContent(isLockedMessage: nil, isEmpty: true) if isCurrentAccount { content.badge = Int(value.0) } @@ -2088,7 +2101,7 @@ private final class NotificationServiceHandler { } let completeRemoval: () -> Void = { - let content = NotificationContent(isLockedMessage: nil) + let content = NotificationContent(isLockedMessage: nil, isEmpty: true) updateCurrentContent(content) completed() @@ -2141,11 +2154,64 @@ final class NotificationService: UNNotificationServiceExtension { private let content = Atomic(value: nil) private var contentHandler: ((UNNotificationContent) -> Void)? private var episode: String? + // MARK: Swiftgram + private var emptyNotificationsRemoved: Bool = false + private var notificationRemovalTries: Int32 = 0 + private let maxNotificationRemovalTries: Int32 = 30 override init() { super.init() } + // MARK: Swiftgram + func removeEmptyNotificationsOnce() { + var emptyNotifications: [String] = [] + UNUserNotificationCenter.current().getDeliveredNotifications(completionHandler: { notifications in + for notification in notifications { + if notification.request.content.threadIdentifier == "empty-notification" { + emptyNotifications.append(notification.request.identifier) + } + } + if !emptyNotifications.isEmpty { + UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: emptyNotifications) + #if DEBUG + NSLog("Empty notifications removed once. Count \(emptyNotifications.count)") + #endif + } + }) + } + + func removeEmptyNotifications() { + self.notificationRemovalTries += 1 + if self.emptyNotificationsRemoved || self.notificationRemovalTries > self.maxNotificationRemovalTries { + #if DEBUG + NSLog("Notification removal try rejected \(self.notificationRemovalTries)") + #endif + return + } + var emptyNotifications: [String] = [] + #if DEBUG + NSLog("Notification removal try \(notificationRemovalTries)") + #endif + UNUserNotificationCenter.current().getDeliveredNotifications(completionHandler: { notifications in + for notification in notifications { + if notification.request.content.threadIdentifier == "empty-notification" { + emptyNotifications.append(notification.request.identifier) + } + } + if !emptyNotifications.isEmpty { + UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: emptyNotifications) + self.emptyNotificationsRemoved = true + #if DEBUG + NSLog("Empty notifications removed on try \(self.notificationRemovalTries). Count \(emptyNotifications.count)") + #endif + } else { + self.removeEmptyNotifications() + } + }) + + } + override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { let episode = String(UInt32.random(in: 0 ..< UInt32.max), radix: 16) self.episode = episode @@ -2176,7 +2242,12 @@ final class NotificationService: UNNotificationServiceExtension { strongSelf.contentHandler = nil if let content = content.with({ $0 }) { + // MARK: Swiftgram + strongSelf.removeEmptyNotificationsOnce() contentHandler(content.generate()) + if content.isEmpty { + strongSelf.removeEmptyNotifications() + } } else if let initialContent = strongSelf.initialContent { contentHandler(initialContent) } diff --git a/Telegram/SGActionRequestHandler/Action.js b/Telegram/SGActionRequestHandler/Action.js new file mode 100644 index 00000000000..11832ae69cf --- /dev/null +++ b/Telegram/SGActionRequestHandler/Action.js @@ -0,0 +1,21 @@ +var Action = function() {}; + +Action.prototype = { + run: function(arguments) { + var payload = { + "url": document.documentURI + } + arguments.completionFunction(payload) + }, + finalize: function(arguments) { + const alertMessage = arguments["alert"] + const openURL = arguments["openURL"] + if (alertMessage) { + alert(alertMessage) + } else if (openURL) { + window.location = openURL + } + } +}; + +var ExtensionPreprocessingJS = new Action diff --git a/Telegram/SGActionRequestHandler/Media.xcassets/Contents.json b/Telegram/SGActionRequestHandler/Media.xcassets/Contents.json new file mode 100644 index 00000000000..73c00596a7f --- /dev/null +++ b/Telegram/SGActionRequestHandler/Media.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Telegram/SGActionRequestHandler/Media.xcassets/TouchBarBezel.colorset/Contents.json b/Telegram/SGActionRequestHandler/Media.xcassets/TouchBarBezel.colorset/Contents.json new file mode 100644 index 00000000000..94a9fc21819 --- /dev/null +++ b/Telegram/SGActionRequestHandler/Media.xcassets/TouchBarBezel.colorset/Contents.json @@ -0,0 +1,14 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + }, + "colors" : [ + { + "idiom" : "mac", + "color" : { + "reference" : "systemPurpleColor" + } + } + ] +} \ No newline at end of file diff --git a/Telegram/SGActionRequestHandler/SGActionRequestHandler.swift b/Telegram/SGActionRequestHandler/SGActionRequestHandler.swift new file mode 100644 index 00000000000..31ccdff0215 --- /dev/null +++ b/Telegram/SGActionRequestHandler/SGActionRequestHandler.swift @@ -0,0 +1,62 @@ +// import UIKit +// import MobileCoreServices +// import UrlEscaping + +// @objc(SGActionRequestHandler) +// class SGActionRequestHandler: NSObject, NSExtensionRequestHandling { +// var extensionContext: NSExtensionContext? + +// func beginRequest(with context: NSExtensionContext) { +// // Do not call super in an Action extension with no user interface +// self.extensionContext = context + +// let itemProvider = context.inputItems +// .compactMap({ $0 as? NSExtensionItem }) +// .reduce([NSItemProvider](), { partialResult, acc in +// var nextResult = partialResult +// nextResult += acc.attachments ?? [] +// return nextResult +// }) +// .filter({ $0.hasItemConformingToTypeIdentifier(kUTTypePropertyList as String) }) +// .first + +// guard let itemProvider = itemProvider else { +// return doneWithInvalidLink() +// } + +// itemProvider.loadItem(forTypeIdentifier: kUTTypePropertyList as String, options: nil, completionHandler: { [weak self] item, error in +// DispatchQueue.main.async { +// guard +// let dictionary = item as? NSDictionary, +// let results = dictionary[NSExtensionJavaScriptPreprocessingResultsKey] as? NSDictionary +// else { +// self?.doneWithInvalidLink() +// return +// } + +// if let url = results["url"] as? String, let escapedUrl = url.addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed) { +// self?.doneWithResults(["openURL": "sg://parseurl?url=\(escapedUrl)"]) +// } else { +// self?.doneWithInvalidLink() +// } +// } +// }) +// } + +// func doneWithInvalidLink() { +// doneWithResults(["alert": "Invalid link"]) +// } + +// func doneWithResults(_ resultsForJavaScriptFinalizeArg: [String: Any]?) { +// if let resultsForJavaScriptFinalize = resultsForJavaScriptFinalizeArg { +// let resultsDictionary = [NSExtensionJavaScriptFinalizeArgumentKey: resultsForJavaScriptFinalize] +// let resultsProvider = NSItemProvider(item: resultsDictionary as NSDictionary, typeIdentifier: kUTTypePropertyList as String) +// let resultsItem = NSExtensionItem() +// resultsItem.attachments = [resultsProvider] +// self.extensionContext!.completeRequest(returningItems: [resultsItem], completionHandler: nil) +// } else { +// self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil) +// } +// self.extensionContext = nil +// } +// } diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Contents.json b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Contents.json deleted file mode 100644 index 3364b2ef961..00000000000 --- a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Contents.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon4@40x40-2.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon4@60x60.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon4@58x58-2.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon4@87x87.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon4@80x80-1.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon4@120x120-1.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon4@120x120.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon4@180x180.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon4@20x20.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon4@40x40.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon4@29x29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon4@58x58.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon4@40x40-1.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon4@80x80.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon4@76x76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon4@152x152.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon4@167x167.png", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@120x120-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@120x120-1.png deleted file mode 100644 index 7169c854c3599dcde2e2f77f7444b123154e803c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4376 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 Q)c^nh07*qoM6N<$f{^|}Pyhe` diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@167x167.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@167x167.png deleted file mode 100644 index 90e1de1ecfd12cd2d22f78549ab1400baa4b7db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6168 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@180x180.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@180x180.png deleted file mode 100644 index d905a09233039fe8e2802792bfa75e5b69bb7576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6569 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@20x20.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@20x20.png deleted file mode 100644 index f7ed065d316602c8a00e68a273628c63ba4b2481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)YN+m6SGhHo(TL~Z|dzBVf>E8niH%4R0t7?baRju-AT zM!YAO!5!1Pq67wc1bQ;Sw2qL@5hgIm1F^#d4`7r`ZS?~Ui~)}ZQ<^*qlbgUG_XU?j zH)ao$=^b)|lfWSJ0Rw|mZ}V^5w&&^dS92Dv?9(`zL}Tqj3uAOSI&SKXJNN7A>N*l< z_kp8`0TU{XqCtq&=EW=4zIpcnZ(3SfFcvOfBT||~Dh_3=My3fO*e1d z-LwCYK&p28BY*$?>*#YHJ$XhMdccY+gvAvCPI;Fx?%aFO(f=Gfahl>1-U~5UK}l6% z=@8V26?g95@B4V(!X=2w7%Z=-EWfCn$SW*^Iec(WnLg{+@85WAvN}=rz;g17N2W$7 zJ%8cS-Fpvm^GoOx1}rPLAS;KHnUfD=z$3#lGIP^2a|jGFCkw`aIXxL*scD&M=~)B@ tc?5bg43?anmYgz(WVp{5eBU`aMF2A%p+LKKD0%<@002ovPDHLkV1iF{`egtB diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@29x29.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@29x29.png deleted file mode 100644 index 20070867ec3e009d7a5a4b5a4dfb316658f51c2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)=+qP{5XWO=I+nlS{byJ!2%xNoMzWh>MRY|i{)ds05S&~)i zqbbOJZVKEYRnb|JJg`KidWlMPMJm@r^B|i~(tKPt1!bSbD%6g1V(3yq>jaCItNHIl zWOHhu0cfHruyC1bT2z-!L7a({t&XMuCRi|CC6uWOKtN}MY)(})z?1!bQFl9jZm zD4Rm1e}RUXFJAuN@y9EmG1P0)cEGSP@p9GGlgt|}`|o(TlND=Dm^$nF&07+$(G#Y6 zW96U^20T14cR1}1XE_s7Z( z95(vGr7MzFwd&AKy~`Z_xEj0cbj2ET7c6=4@+Dn)|KY>Bja!s=%T=kZzQAnWs3r}X zwb{IN$Jei4l_w4!K3b_pyP02Aw^3LHO+3 zckc!c9qA0j_v|~M>|efm4Hn@DngTOB1H|BAqaQzcBB|=&p(CksRoubEp~FXor!Cud z@LdsRwEK*9FJN;8uU@+@ti5~pe$dd7@am7GPMeZ*_xf)M+?< z*4z^(Pv5`)V9mM>iA)89)g6eYFJHMTX;tU$y$yU3O@ZmmPBnVj$k}t}rQcNf$~DAw zlLO3(jkXe_9l!t2x@evtvlgTPGzEMT-cm#Uy5l4MWG( z*JLT}iX^LLE$>tf$H)aoYUnR9WUlE{QqtQ;$(=2DjPr9oz5s(OZaOq|WYhov002ov JPDHLkV1k4Bj^+RW diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-1.png deleted file mode 100644 index 39eec67f831ce89636e949d112adb21053393fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1315 zcmV+;1>E|HP)9hlu!jVd)+EtHbxP5@Z295!HwzS2^{|!6Kkiq)aM+S7{ zPQM`z)P{fCui(g<=0m$9-SX0}u7Pd|gA4tJIPiP>B*dQBLEB5aID?L6sQ-fJJ3qk;wGG@}kI))YPxtlg5U4cN8q)*p*wYpVj@1@^U%?EiCOc0#hGWpm zgeD)qwNH-}qs_;Zv@+hpfg*Wk74JpN*OA2fF8m<`KIo zS-;5orDH)a^1%{*i_X*^y=AE1ZzS#JX}1U=oa;%VDBS-{{A?RP+qP}n zwz-b&l-4S&ZF~1Ip1m_C93@>}eRZnq-qYcmv18xSI}e{(ziqGb*fi#gPw~Yj69{C& zD+DqEi~(4drE4~qSJnNONN~dW>+gSt^~9#Y0+X3HIth596JZ2+G=#^`ICcKYM<0L6 z4L^xQ5^b`b%pD%@iA>-L!w4{sI}C&IFv6^bD_$(A_%D&<ufrCc@*UUA}(j zhaZ0uz0uv>{rew(iY{L&tr*xvfKkqzfw;pzGBf5aEiS7{rPG|`eDdk%3zx5X^z?br z{rSr`R0^5h7qxo@d@zW?#KvuVUVZ&7*`I1hN5{=O51jt^>GPMR0~@yPrV^W^6Mko<65E_Q|K8@iWc z#IHF0rR7ze@~LZRqBfd@3F?Otn9=SP;q*s$?LAo6(ERs5{|pqp_4d27<}Kz2Y+j2i z(AeC{sh+FXZyRkM8ionlg%OzE;x<^t^j~_W&tAA`>#nIY=i?qUx3qC1osC;}Vps{L zH#_wfmkJml6FRf=(9x6JD9+f4({xx7j1m}uX-#&W$w45HMbIS-R;*r6pHu3urZXAo zuBe}B3^uKiM*}0k2nJX{2uqf){^_TmRUUr-gAb*h1M4Vc8ojkhZy^xK2~^6 zT1 zh$}3wK$lmbaLFE{$JUcpacv=F?236 z`_fvy|M?se!;+zj@OV6a)As%%^ZKM2Fzzw}e&>Df_b}FTvj0khN5&)gU-&l>q0hU| z4{+1YkOu~^?FV8T0sBUwL1_JIF z>e%d{5i}XFZxDan3u1edX%TX6Cn;Cj&?9VQg}v*0`+kVA#B>nzj}^Qpnh|M`WbxY` Z@eNX%hg`+yAawu$002ovPDHLkV1iQ)jsXAw diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-2.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40-2.png deleted file mode 100644 index 39eec67f831ce89636e949d112adb21053393fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1315 zcmV+;1>E|HP)9hlu!jVd)+EtHbxP5@Z295!HwzS2^{|!6Kkiq)aM+S7{ zPQM`z)P{fCui(g<=0m$9-SX0}u7Pd|gA4tJIPiP>B*dQBLEB5aID?L6sQ-fJJ3qk;wGG@}kI))YPxtlg5U4cN8q)*p*wYpVj@1@^U%?EiCOc0#hGWpm zgeD)qwNH-}qs_;Zv@+hpfg*Wk74JpN*OA2fF8m<`KIo zS-;5orDH)a^1%{*i_X*^y=AE1ZzS#JX}1U=oa;%VDBS-{{A?RP+qP}n zwz-b&l-4S&ZF~1Ip1m_C93@>}eRZnq-qYcmv18xSI}e{(ziqGb*fi#gPw~Yj69{C& zD+DqEi~(4drE4~qSJnNONN~dW>+gSt^~9#Y0+X3HIth596JZ2+G=#^`ICcKYM<0L6 z4L^xQ5^b`b%pD%@iA>-L!w4{sI}C&IFv6^bD_$(A_%D&<ufrCc@*UUA}(j zhaZ0uz0uv>{rew(iY{L&tr*xvfKkqzfw;pzGBf5aEiS7{rPG|`eDdk%3zx5X^z?br z{rSr`R0^5h7qxo@d@zW?#KvuVUVZ&7*`I1hN5{=O51jt^>GPMR0~@yPrV^W^6Mko<65E_Q|K8@iWc z#IHF0rR7ze@~LZRqBfd@3F?Otn9=SP;q*s$?LAo6(ERs5{|pqp_4d27<}Kz2Y+j2i z(AeC{sh+FXZyRkM8ionlg%OzE;x<^t^j~_W&tAA`>#nIY=i?qUx3qC1osC;}Vps{L zH#_wfmkJml6FRf=(9x6JD9+f4({xx7j1m}uX-#&W$w45HMbIS-R;*r6pHu3urZXAo zuBe}B3^uKiM*}0k2nJX{2uqf){^_TmRUUr-gAb*h1M4Vc8ojkhZy^xK2~^6 zT1 zh$}3wK$lmbaLFE{$JUcpacv=F?236 z`_fvy|M?se!;+zj@OV6a)As%%^ZKM2Fzzw}e&>Df_b}FTvj0khN5&)gU-&l>q0hU| z4{+1YkOu~^?FV8T0sBUwL1_JIF z>e%d{5i}XFZxDan3u1edX%TX6Cn;Cj&?9VQg}v*0`+kVA#B>nzj}^Qpnh|M`WbxY` Z@eNX%hg`+yAawu$002ovPDHLkV1iQ)jsXAw diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@40x40.png deleted file mode 100644 index 39eec67f831ce89636e949d112adb21053393fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1315 zcmV+;1>E|HP)9hlu!jVd)+EtHbxP5@Z295!HwzS2^{|!6Kkiq)aM+S7{ zPQM`z)P{fCui(g<=0m$9-SX0}u7Pd|gA4tJIPiP>B*dQBLEB5aID?L6sQ-fJJ3qk;wGG@}kI))YPxtlg5U4cN8q)*p*wYpVj@1@^U%?EiCOc0#hGWpm zgeD)qwNH-}qs_;Zv@+hpfg*Wk74JpN*OA2fF8m<`KIo zS-;5orDH)a^1%{*i_X*^y=AE1ZzS#JX}1U=oa;%VDBS-{{A?RP+qP}n zwz-b&l-4S&ZF~1Ip1m_C93@>}eRZnq-qYcmv18xSI}e{(ziqGb*fi#gPw~Yj69{C& zD+DqEi~(4drE4~qSJnNONN~dW>+gSt^~9#Y0+X3HIth596JZ2+G=#^`ICcKYM<0L6 z4L^xQ5^b`b%pD%@iA>-L!w4{sI}C&IFv6^bD_$(A_%D&<ufrCc@*UUA}(j zhaZ0uz0uv>{rew(iY{L&tr*xvfKkqzfw;pzGBf5aEiS7{rPG|`eDdk%3zx5X^z?br z{rSr`R0^5h7qxo@d@zW?#KvuVUVZ&7*`I1hN5{=O51jt^>GPMR0~@yPrV^W^6Mko<65E_Q|K8@iWc z#IHF0rR7ze@~LZRqBfd@3F?Otn9=SP;q*s$?LAo6(ERs5{|pqp_4d27<}Kz2Y+j2i z(AeC{sh+FXZyRkM8ionlg%OzE;x<^t^j~_W&tAA`>#nIY=i?qUx3qC1osC;}Vps{L zH#_wfmkJml6FRf=(9x6JD9+f4({xx7j1m}uX-#&W$w45HMbIS-R;*r6pHu3urZXAo zuBe}B3^uKiM*}0k2nJX{2uqf){^_TmRUUr-gAb*h1M4Vc8ojkhZy^xK2~^6 zT1 zh$}3wK$lmbaLFE{$JUcpacv=F?236 z`_fvy|M?se!;+zj@OV6a)As%%^ZKM2Fzzw}e&>Df_b}FTvj0khN5&)gU-&l>q0hU| z4{+1YkOu~^?FV8T0sBUwL1_JIF z>e%d{5i}XFZxDan3u1edX%TX6Cn;Cj&?9VQg}v*0`+kVA#B>nzj}^Qpnh|M`WbxY` Z@eNX%hg`+yAawu$002ovPDHLkV1iQ)jsXAw diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@58x58-2.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@58x58-2.png deleted file mode 100644 index 74aaa26f789348f68c55b09d7f29d0395f110f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 zcmV;T2VMAyP)qdj(6X&L}P(=#_EffVa?ChozFO6j-{M?1h;-}Q^Nmt>&YI|%^WPP5LS27 z*7*Y%ir<1v1K(z}QQQp2-caE9>Cx9U14;&J0$?aE8y%XZ7F!lIJ*x4QN7>2E2^n>B zO$&Lbg;+kaFH0V^W4ufQa!d;`(M=Kxs4#NZ3l9^hzKri?7tP11foGCCX=2ag}k@y+1b%q>WP{0hP$H2AgRqw1IK@X6gQ{nt zk2CrxEz1bmT!M2Ab{WdZa8qHPPMaRm=Rkdm1<4#{@p%d7rUbCIziFW1k{mlxh`-tt99&jF%P zOU|4Fi56r?!4YFtY;=jaC_Obv;1NcQ^V#ioZ*Ont)0M00zUw{1S!9kr07=^1m&{T$ z?JX8(XJuF|bLF8jjsdO=Tx;6cI%V=?+xj(7fdv)SH*VhMO8!i!C2Dd!&-*9`U<~Rn zomy-vm}|_FNc=by9UiuCZ{N|;xzBgfq-|{*g8~CQWu8BOo|#){fAWNrb8yxS>hx^S z1c+opD4>iAw_40PZMsk>;NF$K3;k=GHr}~=Pa^Sc+teI}*nwYv``u(MBRn?&b()_0 zz~lHL@DgNYYTuY=Qbt8!L+792;ceU7JG%GNG(Baqq-|4ks4N5}eERzz-(B$mA!7h$ zr)5!`wSk|+&s=DH|#c=C>leX>H+1W{$RQ!>0WQk6_9v#&=c8 z830zjEnl{z)N1ka@*>2}^A|4GHLSmV=dQy*a#?WOr!7+HRBXrUn&oHD^>LroT*#nG z(s~wnulP%kAL=Gl)NZ$L-QK=yPp1>7>FB7aR$G&wFHy3{&NmG{7{qZDPIQY;)Ih5$ zYl*p{Y@t8SJQpur{-l20&08+iRL@q~nj0oem_VZI;LwoXP{f0Qj89Cb5ee2yAV^Tf z>9m@()MQT=eDwHn`>=`plh9<44p-v{b3a$TU5h=pG2??cbsEQG zrpZErlatgjO680h(;o~D_V-`v=<0s>@DV$rv-P^h`j3S|A$hgX)pMY6eG8V2bXhkx zA%#!9%ckqxfJBp)YTM9=su_^5&}`e=)q|xHU7;4MO6FU6c^14vq44C1!`ulO+A6D- z{&cPn%2-0v8kng{;z7(K${mqd^zF&x6DLmOtFBgW7#jK;U;i_D#l$5-oPjSfPgA-~ zO;ba?kB<+zuJ`Z%rOU}DVlNprV&c><$2xkdt_TZlShG4JTtTRA@2NA@OKbVjBFfl= zQ9{#gk*tFU&i&akLZM)BWkuEEN|6YU4?A{#-C}DcAy{2>v~s2jbNE7?pU}&QjEGpb zc6C@7=B)PNs?~=MA4PH(P)aWMiEHC4Lw&HoER|c-~VkSXk zbR2i6@hARW)6a}iHms?G7Q4g4!->h7Cr_WEsXkbV6B#}0f2DWDVo~j~nu_u_UnuT+ zdrvK@T1tFXKvtdp-ir5+pZJC^O9>Q_F@X3k#eKmD z1`-j1KHfg1r6olLMyXVKqdj(6X&L}P(=#_EffVa?ChozFO6j-{M?1h;-}Q^Nmt>&YI|%^WPP5LS27 z*7*Y%ir<1v1K(z}QQQp2-caE9>Cx9U14;&J0$?aE8y%XZ7F!lIJ*x4QN7>2E2^n>B zO$&Lbg;+kaFH0V^W4ufQa!d;`(M=Kxs4#NZ3l9^hzKri?7tP11foGCCX=2ag}k@y+1b%q>WP{0hP$H2AgRqw1IK@X6gQ{nt zk2CrxEz1bmT!M2Ab{WdZa8qHPPMaRm=Rkdm1<4#{@p%d7rUbCIziFW1k{mlxh`-tt99&jF%P zOU|4Fi56r?!4YFtY;=jaC_Obv;1NcQ^V#ioZ*Ont)0M00zUw{1S!9kr07=^1m&{T$ z?JX8(XJuF|bLF8jjsdO=Tx;6cI%V=?+xj(7fdv)SH*VhMO8!i!C2Dd!&-*9`U<~Rn zomy-vm}|_FNc=by9UiuCZ{N|;xzBgfq-|{*g8~CQWu8BOo|#){fAWNrb8yxS>hx^S z1c+opD4>iAw_40PZMsk>;NF$K3;k=GHr}~=Pa^Sc+teI}*nwYv``u(MBRn?&b()_0 zz~lHL@DgNYYTuY=Qbt8!L+792;ceU7JG%GNG(Baqq-|4ks4N5}eERzz-(B$mA!7h$ zr)5!`wSk|+&s=DH|#c=C>leX>H+1W{$RQ!>0WQk6_9v#&=c8 z830zjEnl{z)N1ka@*>2}^A|4GHLSmV=dQy*a#?WOr!7+HRBXrUn&oHD^>LroT*#nG z(s~wnulP%kAL=Gl)NZ$L-QK=yPp1>7>FB7aR$G&wFHy3{&NmG{7{qZDPIQY;)Ih5$ zYl*p{Y@t8SJQpur{-l20&08+iRL@q~nj0oem_VZI;LwoXP{f0Qj89Cb5ee2yAV^Tf z>9m@()MQT=eDwHn`>=`plh9<44p-v{b3a$TU5h=pG2??cbsEQG zrpZErlatgjO680h(;o~D_V-`v=<0s>@DV$rv-P^h`j3S|A$hgX)pMY6eG8V2bXhkx zA%#!9%ckqxfJBp)YTM9=su_^5&}`e=)q|xHU7;4MO6FU6c^14vq44C1!`ulO+A6D- z{&cPn%2-0v8kng{;z7(K${mqd^zF&x6DLmOtFBgW7#jK;U;i_D#l$5-oPjSfPgA-~ zO;ba?kB<+zuJ`Z%rOU}DVlNprV&c><$2xkdt_TZlShG4JTtTRA@2NA@OKbVjBFfl= zQ9{#gk*tFU&i&akLZM)BWkuEEN|6YU4?A{#-C}DcAy{2>v~s2jbNE7?pU}&QjEGpb zc6C@7=B)PNs?~=MA4PH(P)aWMiEHC4Lw&HoER|c-~VkSXk zbR2i6@hARW)6a}iHms?G7Q4g4!->h7Cr_WEsXkbV6B#}0f2DWDVo~j~nu_u_UnuT+ zdrvK@T1tFXKvtdp-ir5+pZJC^O9>Q_F@X3k#eKmD z1`-j1KHfg1r6olLMyXVK?X>ycJ#i}gS*AtF&5Q;m(b zYL(W5YHMSxSFN^9Z?#QLi?K1_1xr%;$7=wOd2ipmHv4ZT#_}8TA_y?j4f(0d23mgdn0uFI7L z69^w9;qWPg(f|z6O@i|l)GY$#9P-vSYvqhxyrrBPi ztuP)FpAHn*=7{(brX|VK>7oaLF>W3_r^g(WOcV00vk|pXlNk^k7oSf!Zqf!3d2tBx zt+VLk7I_m{V=W;r5_$2W3glU40)wMaFs5)sDhrZOCeJd1R`<~xGtalIU=^#&#p{6)8PFgR zS2tIaL2D_>PfUmt5NX`8>(i5;QIyjN^!a57jksu|2)tpT!Pe5^!YM|jhlePm?XA0y zpEymEG(k7TB3*0^qo~BybaGM{^;%n5Npezx^s;p|TQ6L^BHw&)2()>n(y^J8P-K<# z^POldEwYpp_;`EM=(_0DmA~G+E!rpu4NYS%0TBnn9FA8Z%2#RtkeZxSX|w2ZvYecp z=nrVBZT6!lk6$<Q3Z@Dy#-=jzXc3Q1;sOZ|j)+Wz?!5S>m}MxCN#bIK z{FpH=`FW<9mF1DD2FI50+kL9z?AWnmcQ)6>Mn{QG+jrpL?!EhI+sG_^K0`Tx zknh9^6}GZ+OUd~0<7BPr;^nKg4b5F$4?H}^wlr={jE^JDtl3i6apnuEz8N9N)K77o zB^o6X;$ml1+VV^WXJ=sfBB83LL9K; z3|$_QjEm0B3RA9OR#k;#;w6o*E?wDD*VNtp03qZ(etc_lT~wq>dWosfYPZ`-5scr6 zAV}AkUVPw-?B%JPR&JR-&FbgtODS$oPj5p@>*#YR3pv_C8?lv3PYyS=Ho^^=nw&&fnbs#;s>C;0f#EI)kocwJ))WpxRF zAT2vr6mr#Ta@MY1F^OWIu3r1*-OY9X+`s?4cu!F$H8<9JDwUKv*Vb=8a;%*a!ybqp zsabjwlB57d`s5U|Dc7La2Kf6qGJEv+ackS2W9=vKwKQ?hP(*QjJb3ufTu=%C^sq7{r)$t?fGOj~d7W%O zLT|@dS#o3Xl4@Bnk5@~m)3O~=O?(m+^2BlKq{IXJ-Wx`rbLgX^we^jTkghPHyr?8N zP*2X5M&W7TR~Y=;vAw~d*Rl$|adYj_W9?!ziT5&)n35@Xc|(A79T+$}IlZ=g>D)Q9 zrOQ;om@{wT4?q6INn+u`-V9t79h+p9I0`}_Z6gn$vm z#H;0?Re5-kj7ah5n2d(E*1ZuJIBDo}eM8gU_xDrXBMO9$j!Tjejod*DBibmO6lRk# zA|kxA^X{qB9m9!EPla|Yv{@~h0=;B^AwfcD0it3OhIwbkc%L#7nnLL!qvM&NTk$Z* z3KJ6)pm}OBFiRB`=XeWD^P-35UWWKWhw(yRsEjHyR^-l)1mjX1H?w(A&=EK*M5vgwkm&HD0l}e(;pTs~^JkW^g?&{30000oab>@dR&%rLBq0t%^#lo&LLIU0=!xU}jCkwu8HF{VkH zXnQ=zv`v@PRBcXARia%Y#v(?D{WBg@lnAd!NM+vRefNF$4W8UTIK%M0dw<`3-~ILr zDXv=2O%I;u2_Zbsa~wDGfe;Kexfa}<7Fm=WLmv0&eH(Zg@tqo-wfkCFn&^Cs>MHS`3eML z%*X&{Lj^~}LJUB97(Xd6u9lJ;K+d39L3;?$V4#8u3?ugf{3O40m7G=wlntPe!0!PY z3yLdbV*wfpev)5W!y@50oju<)LVGLFDVP)bh)Md}U==frinm6kV$7RpU6NN)jX!QU zb0V!FVX=pf9>PB3)CI}WR}z_n3%F^3_CqQI#YzRkya@j^lURMne5$OmZ;ZN_MniIn zD`cDp`2d4rSLH1Ww3bkUtO)kVG?P4iCd3LT6>pUo%yKWB5(@nUL?l~hmO28`C}5=` zA0>dXqI{&q9Po(cDN9>MmulfetQmvv>!b_uYl=)P_Kj_^d5iQ3XK!c!?Za;w!YfNV zsVOu`coLu^ZV`!Nf@z_=GO1CX;}?5)WM!tRlM=$if*ltS%`eE!a&d8%v<=s9{JZg)Rv=dd;wS0(26`e0PC(7i;5mMw{erB_)Ka}R zGCY({d~N89#^zSUCJOMA^gP4dBZHALlnIfeS-xzkQLoh%<+{1LVs_;GU;esvM>}Am zVEk#hdOSEm_yZ(@ac(I|O-VEvbjgWvGM=Y!oH~8xU{{~){384$Ew@-{W=Ba@$j#N& zperyMbW4|bDv<5ofuFto-Up1?29BiV6!TP@hO>3@S@4j+0JF)Em#tZ_z+UkIez|SW z$7jz2CIrM!QnPh3ZvgVOP+4=%#@04RlU{BrkyR>~(XgRqXy^uDlR^AMomHeTktMe& z?muud8g!C+R=1Udl>&@SM^Iu3|fQhUWO(EVHK#t&`fXcGcyc~_aJxVe^ANt}@ zSI^WGKhSfCLiY97ceTbURLVo-45VlZS<=z8?`>^~CL^uVY>JKyM{dXc2M=C9_SQSU zI5jmjwZ6W#vA&iO@UP9NO~fOT{l;kQoYV>(l7C3(3zJ%yV|ku z;OOWW&vE5O!GWrQ^Sk!FKgFbG#GY(&WRprK_f?S7%3-RoY zkB@gBIr_n=(=+p!N{V0H+#+i*d;8yb^TfNz^t&Z~l9ZmOAbcZ)q^XmuD@=*;ajeSY zZdwrvW>d+QP0bjWVC(i>AD=x3r{zHWBr!dAZlV?nVR(*na&*)e7gd^# zD_3~2vNt|H-qkyB@|UL{gIHZt@$AMQAs??^(>Q!{1e0hM(U8Qn9LZ|eT$xzDd|8#* zXwYk&otzYC|BIIgcX$3|?9P84o290PHBIa4kdIGJPG;ol9zJ}CtkwxK=n1LW^sG4{ zTy#`qZB0c+npzay;a}iuy#w!`{FUXGo0^|qT~mRd!n!JVC) zUfI4iOOvkHd|w{Cva56d=;)ZG2eR$O)>1<;(>$M?yU_Z=He^CsR3;?xDH=+Wbk~lT zinWEx*t`GWL3i)KyYHXmEnF}=JKOeGw&&$!vCek<#5-L*{n*l=DCCJt(NG-vjT;&p z>S`5mc;)KfckbSE>&sEgwv&Yp4hQz`PDxHwFyW52&JTb65i*f2Hg&Pd8T6>XysWgk z((LQwjYKmsG0}VE=<%PwH!U->=E~X0`L#p)q9P-d$wh7bQ~$bljh0xWghjDQ84}6d zIVvn9C@3d8Gbbz4&)0{hLN5(=?msX*JR(}x!^6Gj)q_ES{t8nhJfEIjI6i(K86b%Z zKCwyZ_~aYUbE=hIX{qXzq=eX*C>Ix(SttA2P>Djh(d#XBF8IvFV{tug|t7W?~%U#qt*yK36D-tcHk5wotG|K(!Og)auS>G+OlcOAOCdL znm#8I78Os>CIs>uq5d988@sByvUO97qoV_o$wFP}=;)|qmn5bO^AS;4RJ=^*Kg#)G zD{HA%cy)HP#l}R-a(M6Fz2sC4D#-@pC!rCs_zEj)D+?w0OE|7>ZEZ{Q(+&=_S9VDk(jHJ&{v$}5Zvn%Y`ec=khVbS=OGE8+D)jBrEt_BAO?dfO>4G9s- z>gC$H26S5sj6XOmO6uGqx{{%G7f^I9yDBBp`*wDA73Q+~x-~x2k>~Bv(e;fRMsD3g zmpnlHBq%geVKiw)8xK8M@9ysI;o*LBcw};FQl=dZ=i!mSkO+Kzh?RLro}NT2C=GvL zaJa1Vhj4KjoUWQr$gTZ##7aOQ`oRKBw1Je zWMeV+Cxy=vmC8r%Zu=9s+kyCh0>~s4;%+`qR;qkBrUIq3W`M3nShH~$TZAf5{tp|O VtkRKzw=Dnw002ovPDHLkV1iCHED!(y diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@80x80-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackFilledIcon.appiconset/Icon4@80x80-1.png deleted file mode 100644 index 2948e25763c45ba5c53b8d00886f50a5da632617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2866 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Contents.json b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Contents.json deleted file mode 100644 index 8497b5a0d59..00000000000 --- a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Contents.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon2@40x40.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon2@60x60.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon2@58x58.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon2@87x87.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon2@80x80.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon2@120x120.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon2@120x120-1.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon2@180x180.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon2@20x20.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon2@40x40-1.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon2@29x29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon2@58x58-1.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon2@40x40-2.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon2@80x80-1.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon2@76x76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon2@152x152.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon2@167x167.png", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@120x120-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@120x120-1.png deleted file mode 100644 index 5a3a76cbdd7292d3353c90812a2b620dee6ab1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4807 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 hw8vNklYnpFV~p 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 hw8vrc`UsrnE*;rFMiCRU>GPQlYe{*{Cf>?b=GL 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@167x167.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@167x167.png deleted file mode 100644 index bd9821af48775e440bcc1185dfe23acf431d0944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7046 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@180x180.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@180x180.png deleted file mode 100644 index a1d6016afb597704a538c6acdd628c7597e73e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7555 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40-2.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40-2.png deleted file mode 100644 index fc834e964f100facf947065e2a04e98c62acd804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1361 zcmV-X1+MyuP)+iTmlZQHhOd!xa6tNT6a?R-hDIp;agsrkC9-Z=T-?Z5Q* zzX}cnL)UKHK63mtK?VK$HwK5Bnz!xV-*4EsyvmQ=`PJ@%8ZzPHom=s7-=Sl-?cPUi ze_3!a6rM1BuCJ)pnOEt|<#6S}d=W8UR8iZ+>GNphPX)hu^JdZVH92Jsj-2w}1&z=k zjsKD0=9ZRj{f64JO6}QYgpCT`ToEy@!YE+St?y7;^811xK6+gD>37!5Vrxb*nXqM+ zzyuw_LXqga{dl7XErLJu#ho4K#W38O$*77Qh4@ z!b}eeoYO*D`zyio7q2k7b4~6%f(n?!1+xg3&c=iliaS+TRUJbrK} z6gIhXv^JmC>La6oe-(=-x9_0g$4;Dj{rWYn`mtLdtu2Gj$%KY4jINweI2OX#&R|G>*4`Y{J{b`V{G7BjpPH^WQebpwH%H)Dkz|6VI=%S@R zbm?{Y$nm)E(YlYmL|bH!8}8hrUz}izD_d!BC=3o51uVwq%^fpg%Dwv!gh6_EpFDjg z4t8b~FjIgc*kHduAlKOlg&uxi2P4Un>{^%uWi5 z3chsZs!VI)&_o<5-L@4XYu^SOGOp6bPu*{+sRy7y>JNDWfx!&MgbEP#J-)>dTWYAl`K)g48kR1=A3znQd?SD zxz2Q@VDV0s-Wun9{PlM~C8a5n(iJe#DGlZen5VYk<4}TMRcFthOA<9RvlPJue;qlX4zg8Jb#YuCpK4g`ZK5@m;E$*+@?4)^Tc zuc^6N9Nd4<5T-{cXn8OgiV4Qpz#;8ArM2&rM&?O{2|9#1l3)&t!*k%^Az?#dNdv3BQm1e!oPnY1c8OZHM0qntS%{d+qx5ZQFOgpG86D3yA`+=fppK-gRRxISs== z7(Pkr#I+r}FNs@V@wi1*7jcQuO8^3KgmQy&i<|&2la1N)CnIJ-1%0S&us(hIYk6kT z)l8nAUrIMCM;*pZ$sD%t@t90iWQO0P?e1Z3vAorG@(n}Y8*RsAfQGw=J)D$2{Kd60 zqn~kP4!_)^6&mh4(7(rc?k|VRN>#!g`pX=)?is%H{wl_J*b0+Un$H)-&=gVw*$0>d z++)ZbU;^c6a^%u>|L{1So#ll(2$Z1k$fb=>(=^rHN*gP3Nel#;D9AtvsdQOYtF~=V zwwPmNS+8G1SUNY(26>hVxDTD3n}l$K2YB{}pCa%d)OEetya5FK{D&W3PJccD_KJe^00000NkvXXu0mjf={%y2 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@40x40.png deleted file mode 100644 index fc834e964f100facf947065e2a04e98c62acd804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1361 zcmV-X1+MyuP)+iTmlZQHhOd!xa6tNT6a?R-hDIp;agsrkC9-Z=T-?Z5Q* zzX}cnL)UKHK63mtK?VK$HwK5Bnz!xV-*4EsyvmQ=`PJ@%8ZzPHom=s7-=Sl-?cPUi ze_3!a6rM1BuCJ)pnOEt|<#6S}d=W8UR8iZ+>GNphPX)hu^JdZVH92Jsj-2w}1&z=k zjsKD0=9ZRj{f64JO6}QYgpCT`ToEy@!YE+St?y7;^811xK6+gD>37!5Vrxb*nXqM+ zzyuw_LXqga{dl7XErLJu#ho4K#W38O$*77Qh4@ z!b}eeoYO*D`zyio7q2k7b4~6%f(n?!1+xg3&c=iliaS+TRUJbrK} z6gIhXv^JmC>La6oe-(=-x9_0g$4;Dj{rWYn`mtLdtu2Gj$%KY4jINweI2OX#&R|G>*4`Y{J{b`V{G7BjpPH^WQebpwH%H)Dkz|6VI=%S@R zbm?{Y$nm)E(YlYmL|bH!8}8hrUz}izD_d!BC=3o51uVwq%^fpg%Dwv!gh6_EpFDjg z4t8b~FjIgc*kHduAlKOlg&uxi2P4Un>{^%uWi5 z3chsZs!VI)&_o<5-L@4XYu^SOGOp6bPu*{+sRy7y>JNDWfx!&MgbEP#J-)>dTWYAl`K)g48kR1=A3znQd?SD zxz2Q@VDV0s-Wun9{PlM~C8a5n(iJe#DGlZen5VYk<4}TMRcFthOA<9RvlPJue;qlX4zg8Jb#YuCpK4g`ZK5@m;E$*+@?4)^Tc zuc^6N9Nd4<5T-{cXn8OgiV4Qpz#;8ArM2&rM&?O{2|9#1l3)&t!*k%^Az?#dNdv3BQm1e!oPnY1c8OZHM0qntS%{d+qx5ZQFOgpG86D3yA`+=fppK-gRRxISs== z7(Pkr#I+r}FNs@V@wi1*7jcQuO8^3KgmQy&i<|&2la1N)CnIJ-1%0S&us(hIYk6kT z)l8nAUrIMCM;*pZ$sD%t@t90iWQO0P?e1Z3vAorG@(n}Y8*RsAfQGw=J)D$2{Kd60 zqn~kP4!_)^6&mh4(7(rc?k|VRN>#!g`pX=)?is%H{wl_J*b0+Un$H)-&=gVw*$0>d z++)ZbU;^c6a^%u>|L{1So#ll(2$Z1k$fb=>(=^rHN*gP3Nel#;D9AtvsdQOYtF~=V zwwPmNS+8G1SUNY(26>hVxDTD3n}l$K2YB{}pCa%d)OEetya5FK{D&W3PJccD_KJe^00000NkvXXu0mjf={%y2 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58-1.png deleted file mode 100644 index e311513f498c6d64ce3c4170728c04cf5c3a9a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2039 zcmVva-&oRU+|^ zTK~uW2gUvV{rmg(AD%sb0m0zQzg^s$x9=`ozP9(kQT1DO$*$5M60gU?mndQj4QTr- zEuxBoDYB6p`V1M3fqzuoMJv`uVzq+>HK9O$4I&$j zbxGl(+KZO2`JLl_{``5+$O-a0LMQ7DhdhU(lVjG)xR2E%d1?-LgfNi90|@a0zZ z=T;+1@)6l&s`Dr|V9Sm@anY}j%UP?{Z{f?SDpZ9Cd9#URsuCsf7B_=Dr1;Eg^_yo* zTtfYCpjo@_o~+6wZ#GdDZ?Vx{XHgN?;nH6jxBt*Fo~*bh8V7}m5!ryO->YZ9ura?T z?t&#N-O-pUQbZJn$OaUKC`lY7@*MSk-kQH;#V?C{`_4UYR@@aX{Fx#|HlVr+h-^SD z!qo`y3*vU~Gsqdr7b+mKp}HeTWCN;8o}=E=qt76%anGK==m_RH0zyIJUm(QL6t`L1 zE_Q#8J&+5L0oh1(jp8HTtXP*`{ie;D530-_b zA{&qfHf`N$-KMSY-oNKp##u!*)Mp}0hPY!UOtpHmST-L~7$V6_Bt?mAKsLdg_{g!7 zZrr?`D7IoX>eFzgIS8W`mqu7T5sN1Z%5oFQM2QghLsl3;s7|9+Yu0c2@Zm#3VYxzi z+|LGNgD`4wuU)@sc84wQFp&+YU3PzV?|y^NoV$=vUC&>+PuBoibiMFtdG#H@m<(`L`Q=PoEOXYwd>3o=~pN;_1|_H~)o5t9qSAJQI|}TM&Y!iTn7;6P?8kRWiGXl3KU# za`gB~YF7E7w&~E7=HTz->({SJpPpD;L1{i;EoDHk^l?)sO-`aPNgD0mLr0D#GOhI+ zw>bS#oULeb4jMXAWIcKMR3#|> z@!NLnmOLdUOqet+p}O|&KTt8%OeEQf5Q;CDaw23vW9jmQSHIQ_l)4A`}2 z--iz$rC;m%jho&6tO^D@Y3_o>iA-zu+y&gv!bLOb+ujhh-jR5jW> z(pfgrU6ZHHRE&G&%GELzjHN3Wh-^SDYTl~d`wt&7f6#XKo*0`{86v4-iV!X(UcPcw z?FD2gE3b5UL+SE*K_pI*4af~3REj8+l@~jC>a=>??K^hSaY;B%WE0BD|FK_suwi^kCaMOsXPHQ`&?vh?lZ@=w^mK$c4Z~~fvW-|>?q;vJqpVHmiU&;m3v*$0Gw*LVq zpn*kapqQCGvP9eTy<%zPcy9Fuo*8}`o;d? z;dI8#xw`29!*po|TEeA)VbKf@EcXyHW9FPRefzDqQqnYCvu=ZC*t+4+3^W6sVbegP z36c5*Yu9bW3w@s(RrrBUpE;*$mZn>9hB<10A}xYc*JuX%qyE#U&*CM%^KHP+&ThkW z_*N9npc&{KD5^m-&;S!++8=e3^~KAV2M--lRJ~Hs=>ic$80dosk6^+dehd4?&714i zZLFx&DrJ;W12oX=%*>!-I41e24+vblcCD)F%Jk_o%PSN?1uqXU2?~ilUX5R|@baiuhM^b1T|@$A?=+Mn(n)hXBHld${HQlTQEN?t6g7 VMI@!K*E0YB002ovPDHLkV1mPb1J3{e diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@58x58.png deleted file mode 100644 index e311513f498c6d64ce3c4170728c04cf5c3a9a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2039 zcmVva-&oRU+|^ zTK~uW2gUvV{rmg(AD%sb0m0zQzg^s$x9=`ozP9(kQT1DO$*$5M60gU?mndQj4QTr- zEuxBoDYB6p`V1M3fqzuoMJv`uVzq+>HK9O$4I&$j zbxGl(+KZO2`JLl_{``5+$O-a0LMQ7DhdhU(lVjG)xR2E%d1?-LgfNi90|@a0zZ z=T;+1@)6l&s`Dr|V9Sm@anY}j%UP?{Z{f?SDpZ9Cd9#URsuCsf7B_=Dr1;Eg^_yo* zTtfYCpjo@_o~+6wZ#GdDZ?Vx{XHgN?;nH6jxBt*Fo~*bh8V7}m5!ryO->YZ9ura?T z?t&#N-O-pUQbZJn$OaUKC`lY7@*MSk-kQH;#V?C{`_4UYR@@aX{Fx#|HlVr+h-^SD z!qo`y3*vU~Gsqdr7b+mKp}HeTWCN;8o}=E=qt76%anGK==m_RH0zyIJUm(QL6t`L1 zE_Q#8J&+5L0oh1(jp8HTtXP*`{ie;D530-_b zA{&qfHf`N$-KMSY-oNKp##u!*)Mp}0hPY!UOtpHmST-L~7$V6_Bt?mAKsLdg_{g!7 zZrr?`D7IoX>eFzgIS8W`mqu7T5sN1Z%5oFQM2QghLsl3;s7|9+Yu0c2@Zm#3VYxzi z+|LGNgD`4wuU)@sc84wQFp&+YU3PzV?|y^NoV$=vUC&>+PuBoibiMFtdG#H@m<(`L`Q=PoEOXYwd>3o=~pN;_1|_H~)o5t9qSAJQI|}TM&Y!iTn7;6P?8kRWiGXl3KU# za`gB~YF7E7w&~E7=HTz->({SJpPpD;L1{i;EoDHk^l?)sO-`aPNgD0mLr0D#GOhI+ zw>bS#oULeb4jMXAWIcKMR3#|> z@!NLnmOLdUOqet+p}O|&KTt8%OeEQf5Q;CDaw23vW9jmQSHIQ_l)4A`}2 z--iz$rC;m%jho&6tO^D@Y3_o>iA-zu+y&gv!bLOb+ujhh-jR5jW> z(pfgrU6ZHHRE&G&%GELzjHN3Wh-^SDYTl~d`wt&7f6#XKo*0`{86v4-iV!X(UcPcw z?FD2gE3b5UL+SE*K_pI*4af~3REj8+l@~jC>a=>??K^hSaY;B%WE0BD|FK_suwi^kCaMOsXPHQ`&?vh?lZ@=w^mK$c4Z~~fvW-|>?q;vJqpVHmiU&;m3v*$0Gw*LVq zpn*kapqQCGvP9eTy<%zPcy9Fuo*8}`o;d? z;dI8#xw`29!*po|TEeA)VbKf@EcXyHW9FPRefzDqQqnYCvu=ZC*t+4+3^W6sVbegP z36c5*Yu9bW3w@s(RrrBUpE;*$mZn>9hB<10A}xYc*JuX%qyE#U&*CM%^KHP+&ThkW z_*N9npc&{KD5^m-&;S!++8=e3^~KAV2M--lRJ~Hs=>ic$80dosk6^+dehd4?&714i zZLFx&DrJ;W12oX=%*>!-I41e24+vblcCD)F%Jk_o%PSN?1uqXU2?~ilUX5R|@baiuhM^b1T|@$A?=+Mn(n)hXBHld${HQlTQEN?t6g7 VMI@!K*E0YB002ovPDHLkV1mPb1J3{e diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@60x60.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@60x60.png deleted file mode 100644 index d7e2100fda9124e16d0f5ecac47d21b966b9a80e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2142 zcmV-k2%-0hP)eYJb{KKraVfBgIh zKL3aA^ymN3HMRBo4j-SpWL4#;Nr~BI;Ym4;$W#!Xn1h#S&Rx6;0~qW6&`+MfT(ok1 zOnRX)I9_0)MbWe$n_jqh<$4_KhS2vPJ}DhG-VhXP42qKzELjxnW0+=9GHe`{bWv!0 ziN{QyZ5R~O67;lG#L@sw8mq9d6GMOh{(ZsnwdRm`oiiHf2h!~Y3l}b5i{%|3`pw(7 z#Y4yHoKb(`h@?fqz7~bcqF`U?EGZr`23K@s=w~mgVp8+8_J}4pXi>DVPaq1x8)T%8Z{)T~# z7$pPjqFtb%S-AIcke0)y`&l$;ps|J^Mk_)O8$HS2;Plrwf`SHqdYU+BQMmVUke2Nc zFF8O1G-(#Y#!PBy=)3nH`s(aB1IzH!IcOJl8eo`~qmwKS%J#_m7^cO-yZ0ZoD0EIy zrLWc|@S$B`Bh7*q1Mc%gHj|cHvT^IqhmW2-dh#?eBcFYxyK;&vn-Bfy@lzj-)mvks zS$_b!FA?p(Z4bTjaP2RkH*ZU72em3_MmJOAirA5I$f+>dH zwsTK^f4!Ul1I>b#fxWO-ps~1O*o8}1ezy1ti%I5j&vzl1V(5ueXK|>XpN?({nvzAq zzRKvBHfz4p--5dOhRWfiuUxy~{-1)c#>@?#nKW&dV(6^AlD@uL&`&Z84Gqww1wj$< z8@KHE@ZsZc-e%jt%fuPrb0Gbf3$+=?n zI{v5Y;i;;sPEOC^p3=(U;=98A89Q;R>wiR95wr$4Avu)eh`$f+f?a0b& z+EZL}=gXII*PWef9&NN;v~;EMXYA4Ar=SeQv0%>*%02rJnND1*{ldL?h&Z+(4X{Xq4qbce4vlYBD&J710nI=& z;Oibde9Vqrd!Kyznb+TV^UV2+J^Bv9dJ;7!Luc%}rNGtexcC5rU%Q)es=J#^$)ZGSe=&Va%6 zhUQ;%r&y|>B%Y?_K$8@$X34UZd{sAoR2sKrPqBptu|>;volM?OuU@+$n#xC$Iogms zts<7nx9QOJ#g~lU>wWj#_dJ&MG{7RwKw~76q2GP){YWAkP2^|>`nte=D^{)jP4kw6 zkH?>Q(t0b5Wd6Z+$gol2cqSZ6!yqCIut)>l8e!1BQ}R`eL(volf+ZMWj3^A0H4OExW8+n8*8l$d@5(KPjT{q-p+Jqc4~DUNvS#Y^S)pi> zje?ORtpWwK6oeUQ7SJ6!b$jjgH`x5$ci)S|F_XH68_^6H<2ueTefHVs(L^>7PRPV* z5R?Nf5upJVX*tj$&@AXXVDPLt^NN+mqMqwCL!1T}0ApO=3CI;I*WgGsp%@MP!g7ey z00lI_BF$nNu!*K8h|^%jsx{Yr*7UEx{u(%Vm@gPr;-^U{MguI;su~8Pb)Ei$1`opk zH*!+FTCFv2(Z&~u++naOw!ZPp7ax4^VIr0F`okVy2q4f5igj8AE7kQ3Gz(}pNv5;! zfAGQ0UMPC$03DFF+5nft@k5+??u-&b>B!@4(NwXGiZ@}&G(;5Oa1I=Pu zjYn8f-=t}CY;-Fxepaj1e*Fi!+ za(jW(MO(%#ECScjaLLkTXnq?n=zsd@r{l&?bT~bFIB5}R4Q_he_z7ruhi;vC_0`vU z_v!0!xa|&?gk4w!<8>T}!_nj}+@$jM+ix#kyrftx+w4xe-3c?$Dr`2%g+h7Jq9r)+ z?%xjd$tRy2IdWwF`~`jb^s7`F#9|4L#|IGbPb}iUjvP6PvPU;w)$@2X^rNBw1CQSF Uwbk<~6aWAK07*qoM6N<$g2A6cWB>pF diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@76x76.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@76x76.png deleted file mode 100644 index fb36db9ebaa256675d1e39abdb15160cc9174aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2957 zcmV;83v%>{P)*cpUsej?kvW6FPE1Dpfy64}(;x|A4 zIeF$hl%e>33VGnrk>IF_O)tHjlv(OYFLtLDk+LDFVv+{MO)tM495n&k@7<8?9i8K+ z&Z=s8#hq5@K_r=i+^K~mgaT5ihpBFP6|K5 zrFG9c{rOIR9t1;s{gl$(%ZjY=2^gWZCVd@XHx`7KKVlZ38>G*T7}$xFl5lZp}h z(2%V!zm4&3LCD}gGdN0Pi*^pbd?L<41Ctz|1 zKnN$1k|AkGO>v{~K1TXm64SPB-+6-}`K~R$ydLr5-F}jW6xT@_Qe5XQQm?1D4$-Ll z2lC46FzOA4{AcW>c$ZI>pHz&v9=i1V7_4zi#HcqC^5Uh-j+Bfzrw>ARQW6a)UGkDD z`A8a45SoxQq#!moa+V_{69b1F^7~(c*c|If(NLVjOUgn-fbq+z9yPz;Pr2u(<#Cl*N-m({lXIcnV6^_$jj++5f4 zlDa=P3Voa@85lc+kpGOG7-LIPgtJK+QV@<~icm(@mF6R{1HWFsMIk>piUF~-*^uC%`N#`2YG)US~I+CkL^q5*kHB80Jx zhTOaVK(sZ1qM|IMDCLqQ3#k}!FAYg026BG*C3x!e8I2dlBS(*g)Dy!S3i-p&!6>sQ z%HkoRNHa-8s$?b=qqSaH-!^Z-;{N`A-8U4)s>?254_M4DU? zCYMAio`kSSic;!nNTt}HS@`$p@mJg1L;XMjdhLdYc;_ut zZPW8hm#-Qe92_YIE@^yy{_-2|s(XgVIY=5(5hCb>96fFl_NZhh6{E3E#o3eI|M-i8 zhYoAsQ9F0-$t$j^Ykpy*g8b5IHZ(3o&H<>r4)0|M}0@D_5^- z$LsFt`Qn=&BjcUU#MDEFkBn4iawLaeYi=VU97+l^P>7%tvbv!yEXJmxXJf3SO184< zh6Rh38u=o4)0S<4%zO-LPw?;Ew|}Iv^XD%pXQ7ys4M|x^h{ZJxZ8{-yiz>L`nP>|s z8S-D!k*u7^TJLuej-QAyj{&iT4w9%2^-+$nsM)8J?o1c{`wPhh86oa|N z6*?h(>3PpYnIWViX-EiNNC;E@_)GBog$vwk;11mCP0L|VcXHa{BS*FCCrqBEo>yV94txGp}U&%-MZ?eMYkJ8HhU&w+q{*q-LKuc}jQJ$De)0 z8Dznb7>^uYh@cY^cg|B0@en$ag3x8`gvlX&UB7wjHr#TOJQ#dwy}{Wy8P5xsy||g?lNb z4=IR?oKP!dR({Eo;c*bEN!i4b)aPG)d-38W-4VC%*oCLZlVR8r2SVjFjh&sH1`~F4 zbSisgLrUT>!_6icM9>LYQPc3mvoVswNJ;2ULRbW!iHNVRZ<#P@%9%4~hx;W&rZI{km`n}d=pNf?D+WYDU%b#2== zgKOKiZR;7w*PJ{SFAy6g6j%~)&$oT4B1s{j=Jlf`-1<_y!^_m zPCNz%^4Fmn?(T*Ummcb^(b+;(QWj`bg&5dLA@Nyb#Eo0FfAQs)JC;8A)H8^oXt0N% z)T$cplovV=z7Mg@|T`J`iehXCHC7=GyE1GT9=t1`^ z4ZG%HrS%&&dzk`KUWkFdFd`;&Jxp1Mfo>ix!VR0Y?1G1tIKKV%+gY>crP6svUItnd zx-MZvP8kOF7N9l3y_lJ^=Bcq=`2gY9Uw=Jz+@z$JOQmzrkv(P2POdxBV9+QxZv14m zwCf)Q)sOhG<0d9k*`${hr3A!y&=rerO!wNcuG&yDyX&FeufFI}LGRT5%gw^AXM+dD76{PD*h*WYkM zHdh#oB?e9cW*AZ;G#mIJUEyL*T7&LVxVszCYFGO zVp(aGd>?utO&3>hyz!=K(`F0|#QFzf5CbJm1tl#)b2bh!)27W-Dka=^UoCv&jW;j4 z=;C?v7V4|fpP_#c8pR+6Vq&p`wrHca?@up@>Yu|Wo_O-sTW>q*q?1>!Ts?E<>~Z79 z*J=$(X4b4ZT0HsWQxu>u1s{6d_t21shCDRn0d)KeK3tH3eYYf900000NkvXXu0mjf DdJDty diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80-1.png deleted file mode 100644 index b327187568faea4fc4347499fb9102291c0eec53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3105 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@80x80.png deleted file mode 100644 index b327187568faea4fc4347499fb9102291c0eec53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3105 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@87x87.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlackIcon.appiconset/Icon2@87x87.png deleted file mode 100644 index 7a1aec127142604584577d723157b8b716b360ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3404 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@120x120.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@120x120.png deleted file mode 100644 index 9c5ca6a0cf85ca9e95c3315f2d4e7e5b753dc9fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4187 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@152x152.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@152x152.png deleted file mode 100644 index de9fce9981d6aff597da0d820d2b1bbf48077831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5279 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@167x167.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@167x167.png deleted file mode 100644 index fb761143f01ece1a0bd37507bc72cfa009abe10e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5790 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@180x180.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@180x180.png deleted file mode 100644 index a09fd70b81dde6a020ca772a2ea7500d7669b5b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6257 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 F{{XLt@NED9 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@20x20.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@20x20.png deleted file mode 100644 index d5409e8ef1410e95675295577b185313419c825a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)$FSfD zi~#2g=*vSI^w3|);70+tjQlM?1MYhV-uE#G>^kIY2-NSc2lR&#;QHM0P@h|_O8VZ0 z^Pzf&dfjmJzUgET*k$l=@NLKTPl4x__=1<-e5dyfC-t~y2R(BZ!3NKG;<}`cgp(Ob zoSk2TJVc)Zb-QfIVTG9-8F<;S>6P=c zGPwJ*xBEHW_}gYzG%XdKr-lgE&rl(1s#eFU(CxJPx-w9_ zy!5$EE+18~u|+Ko|8H?b$ut*%Er*jxB0-@NbTPFw;~7Hq-5d z^5jqNO=X~L&Sh${{|{)q?>CG9*GIv>XC@;fWhI#5AzXI200RYI`F{mmUIOJWAXgQV n+!F8*7B^sl1T)-&8NM0-jP^tzDK5Lc00000NkvXXu0mjfbk7CD diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@29x29.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@29x29.png deleted file mode 100644 index f9cf8bf69504299da2af720102f72afaf30390d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@76x76.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@76x76.png deleted file mode 100644 index dfba84e32f03b99c453b4c63fbd0ea8d088b5f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 zcmV;I2x#|-P)n^bCF0bk>uIeqW=`*nEEUoE5wd;q_^2X`; z_51$+|NqzT`cJy-EUf7(tmrYW>2}HR{r>*F<@hVC>7?8B@%jBKtLQ7M=qjt{&g=Qr z?)oaK=SQ~cp4jy7`28uW=W4|6#OL__{{E)i^(m_6Ik4xA(edQ;{3)sCD5>TtspnF< z>#pAQ`TYKH#qKDm<|wG;EUD#l#_lJlL#b; zCZ^;msN`(I?9J-<_xt{f&+sOu$msV$ujPQr?j@w+C8XmpsN~=B`iIT$BctM-*77N);v=KsB%|V2x#+y( z_9CL;E~eqR;q@b;;Ub~nBBJ0UqTnZ_;I-fMm(%beq2MZ|;lt$ial+~$px=AO>)i19 zhRp6xwB{h7-yxvjOtR&Z(eK&s`9-hfHK^erpWZ;N<6pYyAfMme@A)5}-dVTiAD-SH zp4}du-5#FZjLhsFo!m;V;T@dZ9-Q1Ipxzvt+#H+RHKyMjn%f(i+jYU{^ZET7n%ZKy z;VNnAw5G>KT{W8JE~Rr`{Ns*czAEgvaU_me@k7-x!wH z7nRo+me=9&`4^SeDxKOImev-O))tl47L?T$lhqWG)D)7{6Oq&uk<=5B(-V->5|Gmp zkJ1s3(h-i)5suOjj?oZ}(GZQ$4~@_djL;5@&(wai8vpoNokwyb2nHwq;T(2c6aWux^0gSb090g-a7Npy zU@#kyd@aR}B&DuOg()S5WBKJoKG+^J=;ya}IP$Jw6i{he89*QMhsQ&~`1Wa4EXJgU z6JTu~w3dvXF^n;(^4006oYxM59H6pEe7D0gCl^pn~0R1{^aXS6Smb5SqgR5 zgd(qP&uP~IIwDCQ1S_}8(k{1QV|%DIB(0&A0BA!M?B({bwud^g>wf|mzRp{eZm~PY zby?^Y*pJ|)vNqhH0_{t&YxugDGAGU9rc(llPtr&4EL0Pf|~eZ&8)EcrxWwxOkX1 zeBB}+8_2;D5FM1gO?=ix0H%iX^Z`HxMbjZ%S>(IS>GW$k$!i%PW-L`9)G#M_VGpZ`rb4 zYN|%1Ar?j5t0?tq9f1bHO8-oHpQNxxF~pL+S1eYG9EW_}YuGJtB)?OBtRcQEO#hD` zh(&4r`ha8jdeDDT`>z()OJ4Qfj`*^MaER`f1U4#S){!g2KS%&fvFgp@V};r<4u3x> zNo=KYNr;dyIX#MN@%v}Rm(`sG55#%BR#MnLUf_wf9O_ZxsXnkl z&TZacxDDwkg9e~_saVXh=1A<=`s!8jut%HK@A#pfsjU7&ucUgOa1!U~^>D0Q^S5}I zcD*v!G5LCCiMwfh)Q_tVHn6By*MCO+Bh`APaJu-IY3rr{Jc<-IY|{5La> z#12vS%R~)xGG~oq-$Kvu^@={)y#1$dcRxVQ7v>y>;&vQI+HNA3j4#LiQR z|A^%#-9D7q^H-jfOdJtr_#>Dbw;Q|LJz)Ri;V&cur9+|~PsrEnX!BIXb=1D{ck!|R zuw+1Q;_WSwd=w*sYCrhuO7XDWoXKYs7fceckLy&Zhe!&Cl`@sxnzQQ*WM0h$>-Rlz zr}X*UX83wnoN(_^)4Y!(@TXrsAr_~Hqep=WBVX_4mjb?nXT9NRZXY3}apfld z^e;x&|I{`O4U!Nc;@rnqz!Zoisy}$oFU9R|R z(l`)jpZurC`0hPJ!1f9ldmt@dYU+pudie! zobYT}KI9`9^N|gsJlmHxeJ$>=Gv<-}7ujr|KwpnI{i&_TQ5`^s6Y6kK8$k+GS;YrUpGIvI? z;eU|))L@-)Zi!?1Bu2h|#2VsGV86PI>FW#N_3OuU@JN0MP;KIS2l@I*W`4%!+lHUt Z{{h8Af{bq2U#I{8002ovPDHLkV1j!+vq=B| diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80-1.png deleted file mode 100644 index 3f1f9d34ee50493bf7e9631f39317a9618fac29d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2759 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 N002ovPDHLkV1h-YaS8wc diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@80x80.png deleted file mode 100644 index 3f1f9d34ee50493bf7e9631f39317a9618fac29d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2759 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 N002ovPDHLkV1h-YaS8wc diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@87x87.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueFilledIcon.appiconset/Icon3@87x87.png deleted file mode 100644 index 3c350f164996ed3c58b2c44a7fd55638345f0728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2929 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 bAGH4hK=YD1Et>dR@ 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 u)vIcB)#&O~HM(ka)#&O~HM(ka_4YD1Et>dR@ zb+_ViMt$zN=cZJz;L4F@ko-Th)$5F0Rimp$SBix%3Z#j~@|6t;_eThZ;5)T|q;GYP7@?;7LNZaYk;YcV`HTs#Z zu|%P6GW+fJG~B#-PyFWHabn<>J;a(|7SM0PeekXJG)kdh)##_L{Os(pz|4=k(hna@ zva?_kF=7Dr5lf>vM}lv9_)rqX(IWqxHF_|f|LZ^o{@zryCJrv5g&07PSQE@Fz=Sw6 z3*k5i(FpB^;`!&0(TDvrA32^RPla*puP#KK5M^coW+-#GCR$^Fv)O1oUhehe-uq-y z7;z&r3$Qc@L1Gq4a}A!w7#OB-_8I-;RPODE6Gb1Jiy$FP0T3i+A>-mK36U>MSJekF z5(Yah&4ehOfg`V ztOH^AtlIS3_C(i?PGjJOXS63>_{gyYTriCrnOP_^t=EU+;Ex_lV(f)v^dVpF?!8ev zeR-Uj1;wv_JWNc2*a|Qq(`25Kv)_FD>9nKa$*c!X8DTK|5Nf7Ho z8qGqTFXKoi)&wyj1eQ7KJ6KN>(A#~eHIAj8T}FG-`L`a7@vOWvR$^u$Op*C4)JCiG zb;z@gAz}bQu)2R5p&h?ATfX-vCL@*5*I;2>b_VD#^MlK+`?XMk9Of-;AN<+E&%CDV=1fR)d*(FeWRtBa!q z!I~g8VxojPKgi4i%#CDUhB`;qG&esMKXXRAQ~BGPL;7$SZgh)tn&xBhpeB}Nm@wMJog`uF z{IJDlqu;tOh`M$_ZQKHYod0e6Lv|W{z@53g-V0n&?;{4#iP#ME<1Ey1gTP?Ky3pfZ z;%m2gKhqjsJD51`%lvyPv%EjCsKIZ2ewbsM(eHjDNJVw8_36bj2EnCdO%<&4y0YH) ziNm3W@l+x!pOC?E>+{1LdyMXnU!^2j)jkUrwfH= zep2vY^OW`Zf7cPWYBc_{-O=c$x<%9yOCW)mGvz=M`VlTD^9>r!bqM!1`Iq&@1Lb^+ z{+=eE_4)5;@aHWWeZ-StBUDC9T*}O1u6P|-)HHmSnGfO)@O-89|nIRq#umKX6$Gy!HYNB$+uEDY6u_x=E$NM!PserDPk%-A*mqMbhTMh{1G!d&)( zAq`?-G|n)5_Ud}~_fLjyj;QW)@%(uVDrdBvzm0 zG?}l819vxgSMlo|xL} zNYCI=!tM+IIc%ICc9}H#=Ix$h-OVmy0aPaz;G6g$F$;BE;+i`54^D;$!r9r1T_4;( zW#jy}Z1b2gIxwA=4J4e*EG*}s5%{hK@AAHQBvbaIge#Hz#lOQXlPQDwckcAsJ3mY- z+vrpN%tf1=0ICq{g5$(2G?v)RtW5(hUFUuK{JSSpCLSelWMyCcn%ZLVFSQ1Z9KkCo zF1CAqm{zvYwZlo-m7y|P4#xsq8dq#_e&=|o&+K!F{&4nfEk2sz?wuZgYR1SZJSbV7 zU!ry-S+>!?Ivpup^umn}Vgds}Vip?f$)d=j?e2eeM}yNd<}A+U3xDm5Ub@+Fq1FY} zCgVASXImzcmgkrF_3232Mt|y1Kp1KOa!?#(mUZ6V;%gX7W-UCI=niHcY4Yd=7j1Km zMYG0_FYb<-n_prRaS<@BY@^?~$3I8W4U@zqh)duCBxtOQOE)>b(i&)+nx3_AWo8P0 zY>!;B=|A;v+vb{x<;p7Zt)oE`^Ow$nX=NMz=;Piwnr(0pvzTj$4a_Vkeq)^z?s$_{ zUm4OF$UNBSz5uPY%HX?qx*hRcxpm&&>@_&Q+H@I*X=NLI=MFbc3aE@Ojfa~&HA8Xh zub0FJ@*mp57jOKp;`cYWJ;|JjYS-30wS`fvXJ)}SIfwz6R<_YM)HYxTtE5A1OB6)^sF6MS0M9Hqem?NNTWMo>KDYPQZpsz7lumcM*t)c12@*W$~OAa zO*pT)%*++pXcBYX0he!@{LzWvcr0s+#o0U_k;519VmjX5?1^Ub=4u}Eq!sfEC~_2W zm}bW4^VUrO=Mxjw69Whmv*7rL_xW83+g^Oy6U;o^=+-ya8+~A}4^LT4m)$rJQ_Qb6 zm)B=8N4^=Oudi|PV&lXBsuN4oIp>|to}5kJ{Xv~Sw}&s*y6CM*eCB{JW958b{ei-@eU-^Ac;vi6!`^KemN!ak)Q~d9=|@HN`UDd~(YAckGMjnwD zcSbH+hl8>{iM4&vS(~nZ`O-$_SMLrnP7EMO48XLqjsE$mkZiz0#2Lz*D>sgR{-D2p zDDIu>D~o)guzMnT{|=`(tK+;iV_ODev-Vw^2Vw^1H?#XMPld`hdh=lXoYkWM&J*jR zR9s?=nbO8?t9N|ykpFM(;ku#thW_Xek4-JAb5M=|1MK%Qku{J@ZtpRm1?w z5tAS$j4-oM#MN~q(DaAL0<#skZrCzWq4}rMc{4wpy=Kz{4!<7NHP!^NXlw$877L|k zY^1s3t^Nwl54%hnjqAFN%cV1olFh z0t_?LOma8@Bl#rs_<5^_|JoL`_7^n3xVSbFw(g5IK)-pBxHjOdGv-B2kI?uiH2VqbwPX>t`ndPis6#tbqhiGxu=B z@+=AxD;HDOJb&fz(vDEx)Hh52aynRv`G0miV8g4jdV(3MUc^#n7P2u5unJ;H7BY_F zU{$ZTHaNzk*>a8k)LwTb=7&W#7>(=E9h0JyF#Xlc0D{B<`c0fH7M3*`dQjFmf925H zo^V;;^}elU%=Y;o+c9a|D`$6)CtkgDKma|61t`dAgUl?%Sr+R0rD`Jh_D08qu@CKd zCjXiW%nx&HGaA=Db>pvIqV*#7aD`da0-_6Ok&A)##QK>ht`e=*mmH+I23X7T5gEHjM zd>lZK*nrVW$eOQS-2ahgXTxx;!=FCvNPM)#sgG^f{2$%zs^GhXIpewWmJh!2pM3!O z5tAS`0&(^g5E=tmfLH?wbuS!YR-a{ItfoQW(=V*3pwYPgb~o`oPxY4*A z@!Ul#2VVa7-k1NQ7YtwmVwIr+I7rMw<`}KRtp!x`yqp;@H~+;e2eJN{dt2j{u{cdB zh89rdV02;@M$f7ZWg*UrJ5uDBm>-Lu={M^B!4WTdzwB>4010r#!Hs0!isVTAu+=vo zZ#|!%eOJSzdT3*DH8{RzSi$AVaM{{P^OBbL2t)c}SzxTL_# zkf||?xy&LKIR?(kJBEbFCn)B>Y88KNGS5b{*SD-6!emAKrJGn2#6`U1FT^Z3&S?OG zV0DhH$uLx3fP%tYIX{+i#k9zAQ=`jpA4Vi!6XYh1xt4J8wyEakoEp66-=P%mS>+7jYzm z#aTl+vTr9bfMnwH7WXud#um~a_r<5j2Wm!WJ!u3(WvH3By5@@@G%gB_Ift3W16zhM z_QLyf)%f4{=TrXI{Joo&B*=v!{z$BWMCp8HPBwE^#4+SwPWk!aV!;?KKeRv4IH5KL zqJx+OF+=8PAR+3gp{mcvKhQA2AIJ;WXukH0#co*Dk0oFDhayNw<46!AftdwZLgpyr zvKQgT)dLueXI#KW%b%lf8;Jbhx&Q`!;m=)k*~YvRJi-7olk8ysPlFleaAxo}AjilYS@@%7v@ zT3mSX#L~8@_wO7#=O10q*X$-H_nBFMk?^}VViLsX{-Ya3mbC>?Q1+-AEiQjD_oO4S zrZe!}1Fm;%AH8?u;H_)=uUyu9&fmLU_NUI5{;>mYUbVaz!TUB1ApvPf#t|G8r53Ew u)vIcB)#&O~HM(ka)#&O~HM(ka_4q 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 GBmM`psnnMM diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@167x167.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@167x167.png deleted file mode 100644 index f51ae17df908d7c08fdbb2759b8f0dff035483f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6625 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 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@180x180.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@180x180.png deleted file mode 100644 index facbf49ff3a2ce2f2891ac7556eb7cbf515d76cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7167 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¨nK`?I z=3Z0G0062H3Ziv15i`6;EJN+xitX23N&zdA8k?A`{xUzvGqq9M4dE_gG1n=W)6WMw zLHChkfD4VCogX8O5!4M9p6=v!mg4Jj2n&@TN4ayi0*%unZcM5nI+L8aN#@QDqb z_2M-tA#g?%H7K@-X#BNT)ZX5tg_zQx|$#(^DT)P zyI}{TcfP`Bad?bbAw{-ZPK+cx;Z%1q6htB}Jc5@-UXlZSL^uFk^zSHe2cSXoSepqK z6rQwE%p{;YF)>IU!e2@8D*6<$h{^0Ns~7k8M_j#{$||h8 zUwqb_RKNtn*|kPd8;;O1p@b^ehqC~{`_q=pDoK0)e(Fcml#bE0h0{{FU8EvitA1u~ z|Hz@VOH=`{L-URI-~49q=@|)FtDWR?b`nM*aUE%eFdLd~u_9Tz!;&iA@k1Nq)4_h1 zWQeERQo)|gf5<&i`u;3q9T$f_?0sHFvDVwA*A!QOOn)Rj1geFH$9H$9YmqK@2gXTQ zdXFtUPhFYQx_@`7MH5C(C_cht%L=c4;hpbJk8t$WpIT244DP@l(-u~OU?F#JoYBdb zkC6;g!!RF%Pm4Vplg&LfV#1jj#v?gx^n#$PP80U{uH7N!=%Fddl z_xaaT@*YR_fSj>+y7vsyu3zaGM;q4KUdEEKgj?4gCr#e6yQI<@7t9w29FPqDgPx- zUG(#D_42+7fn85w^`F-eSL(0B*|HpA{#`ypJ*I0PiAbPuSguH_NAca4M~&*t6c1ZC zPgr;206uj)Secs|$trVKUVh*1p&@q~Q%-l@T4R=)5-Ih_=!1qpxV!(Fwr-@JUhlMZ zUnBU`s;a1H^Dr&}JKr3UE07{I?m_=`2}_!x<)|qtl3y$n_D2@l3r4V4L#ne0g6u+1 z`v+SnF;19R{*ub_50z3;zoV9Yr|s{LT>2x~7txRod1P~za?aj-v>Ql$WXS6vLv0xD zLm|u*VV4kr0I-de2~x`L#PyZxokTRGH8*`e9t}T80;(6M-N6a}iiEvR61wMY-C6;^ zQx+xS3k^78rtFI(!M%@ITct0>SfjAF4@R8sW@XspXTaB#jAR-vJ|$KGRSu3B*qRCU z=hSq5uk|km0$rX6Z+|mz55dZYM_G6hV@@fpQYw;Jcn|#F+}V32Xvk9U|MwP1X1}5; XH}HuWAV=BQqte$g)-Jv85dMDvewtE$ diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@20x20.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@20x20.png deleted file mode 100644 index e865e6256b41622c538ab933ffca8c134fd4d3ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP);L>M6fE2~woAX4bTb0u%3MNk$P7$SQ*3h<-*6y9elSBpl*Md|1lfGUoEbmH z^#bMoG}*pXDN$#TDkFLzRra_>6FZ_kpCcz-48y{ho8-nl$r3h6;YHdvVLt;J+P%@G{1DPnv_6z5KkaBmFfN}7P0x2JwxnoZ&305edx z4h>_j7wb2Kj4WPlm&`J0mgoCwy~>E3WdwO zdX{sq00000NkvXXu0mjfiZ2*8 diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@29x29.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@29x29.png deleted file mode 100644 index 4865bb8b078eff721d764a01ed33c44efecacd83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iG%P)a6(G zJjRe4h)z;29gf!;!!z6b@9+0M+eAN7Pd(E_zrT;3(dNhV=#DuTtEI?;&oy`+s&Pwr zxR&+vjh+-m5R;?Ll~d7oTRjg}yOLAI8azt7lNc@ck=RKu1f|XbTX^CfW z770mmclLSjDz*qP6O#fS79>b>sc`JkGV7g1<~s|`Fjv6fjzSY-hKEbdb5FRN^?^SR zxtJC+j0EI}ax2vS+w+Y=ZX-?<1*|`8uofwNK5}?hFLir?={CVIazwd*9CY5AXSg-j zz?u{=xGP`(?_p<~EhzcW7oKpD84T;;KMpuVxi6HPZqC--lA~wL6^|DiHnh8~eu$ zvsK^Jn_er^U6Z1CJYQq-N`I*(atg!f!d&rGp;napTeJCUnfz+mATd|S!6#MvNHiwN zU4G1t7SHa4e`_&|a*GG4D|ZeExoX!SV}=hZbV_$fnEP#=9s?4PBg*xJqPM2Xuh`yy z#g2X$Tu#h!y=*|%;f#^@{lP4Sa3002DRSgU{~y+$v|qNZk7p|}DPZtHnYz~=XwlG@ zZS56;77~*D@8H+@aHjl{%{>g4Zeh(8Y-v!~Bw6P0Zys4Y9 z1kw`C;1tddcfDxU(ARG3y>LUb*51O}yM?t2*S0n0wQb+A+O~Vro$jRfB=5bc>2!KLtJG6Z zoqRdxykqqL5`WY6uL}0D30080<%$!kAWyd)7#xfxPFrK&l`zXLhGw4$%sv|=ODww( zq({_1ZS5B9XZdy2k$GnVvrhYGo)VaKIsl9KVHESv2B_K3wk?=XBo1n#OV3f5kCI?w z#z`M6LwdCIT!04o)&+;-iLW1or=Rd*DGIU(3Njv%EUZiFxH1oQeBAN+CHF+7 zM=MH$%E5k?pHg5SpKlwVXCo8i#Da_hMguG{z0mgkUEe)Nl;eeW>$98Q@%h3kGC_l6 zS{`6|h2Ud)W?ZgyY_3%>3K-Jge>D9_dL3Q!tdA$cl4QK)-f4|)B3RNQK32{F44m%V1j~@g0GmF;Rp4^ zu&17!Ww3@7B4ZrC;jwSjA>H^4!&P&AYQw6BUU3z`HXTe*P*QM}mmPXQM+|%F;RkfT z+;NvUlfG^%J@k&6haS*Q%GBStV}<;B@1k8;wO zUtM)JE!)!uRn<7wy#Akb%2Zu#8tvn(2E+F}TzjNu8B$DMBH*P!$}o zt1dk%n4m4QGIdu>;nd*V8b5lZ5rX>RB2`c!*cau7?okccS=WDO9T^2IQVR?0c;aub z*~4toyZ-A<2WIIhEHw|^Q|FIz%D)zWx#{S)y{6xe8nT=nwXlrY8R{G6u(aX1B0Y^` z11!z{a?`2&YY|`DqxRJG-ComoTXnM$n!mehQ+uQ5bV1zW97Zu}kBXKn2jklE$lZHO zRiCZZ1PZcPz$jpmt*{&#gt39vHvPxmTPKXYHdo4^VOS~@&bL&;1RcTzE##Z?=WU4P z7G|n@ZmMV(XcaAN?jQ7~AUprCs>g=%?iZ5t6KIiOpxVXKdSG(zO0)_ z_YE)#xCv;SmbCJpwhi~3L$+3QTUXk3T`7zLP6v%_xbNiK_;0G4iGO$5(tAT$*R>^} z%NjU^wI#jQmr=8aiMQK7=H5s=x6=F0QSE?@rJYwl?!5XDSz^G(vUiT^a;v=5)`2fY rxa;HPPUf68Ku|%q|MeGN+U5Ea@9m8dGGEG#00000NkvXXu0mjfP6d&O diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40-2.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40-2.png deleted file mode 100644 index e2b1ba789097cd51299045900fe0ca0bc175e357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51b*51O}yM?t2*S0n0wQb+A+O~Vro$jRfB=5bc>2!KLtJG6Z zoqRdxykqqL5`WY6uL}0D30080<%$!kAWyd)7#xfxPFrK&l`zXLhGw4$%sv|=ODww( zq({_1ZS5B9XZdy2k$GnVvrhYGo)VaKIsl9KVHESv2B_K3wk?=XBo1n#OV3f5kCI?w z#z`M6LwdCIT!04o)&+;-iLW1or=Rd*DGIU(3Njv%EUZiFxH1oQeBAN+CHF+7 zM=MH$%E5k?pHg5SpKlwVXCo8i#Da_hMguG{z0mgkUEe)Nl;eeW>$98Q@%h3kGC_l6 zS{`6|h2Ud)W?ZgyY_3%>3K-Jge>D9_dL3Q!tdA$cl4QK)-f4|)B3RNQK32{F44m%V1j~@g0GmF;Rp4^ zu&17!Ww3@7B4ZrC;jwSjA>H^4!&P&AYQw6BUU3z`HXTe*P*QM}mmPXQM+|%F;RkfT z+;NvUlfG^%J@k&6haS*Q%GBStV}<;B@1k8;wO zUtM)JE!)!uRn<7wy#Akb%2Zu#8tvn(2E+F}TzjNu8B$DMBH*P!$}o zt1dk%n4m4QGIdu>;nd*V8b5lZ5rX>RB2`c!*cau7?okccS=WDO9T^2IQVR?0c;aub z*~4toyZ-A<2WIIhEHw|^Q|FIz%D)zWx#{S)y{6xe8nT=nwXlrY8R{G6u(aX1B0Y^` z11!z{a?`2&YY|`DqxRJG-ComoTXnM$n!mehQ+uQ5bV1zW97Zu}kBXKn2jklE$lZHO zRiCZZ1PZcPz$jpmt*{&#gt39vHvPxmTPKXYHdo4^VOS~@&bL&;1RcTzE##Z?=WU4P z7G|n@ZmMV(XcaAN?jQ7~AUprCs>g=%?iZ5t6KIiOpxVXKdSG(zO0)_ z_YE)#xCv;SmbCJpwhi~3L$+3QTUXk3T`7zLP6v%_xbNiK_;0G4iGO$5(tAT$*R>^} z%NjU^wI#jQmr=8aiMQK7=H5s=x6=F0QSE?@rJYwl?!5XDSz^G(vUiT^a;v=5)`2fY rxa;HPPUf68Ku|%q|MeGN+U5Ea@9m8dGGEG#00000NkvXXu0mjfP6d&O diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@40x40.png deleted file mode 100644 index e2b1ba789097cd51299045900fe0ca0bc175e357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51b*51O}yM?t2*S0n0wQb+A+O~Vro$jRfB=5bc>2!KLtJG6Z zoqRdxykqqL5`WY6uL}0D30080<%$!kAWyd)7#xfxPFrK&l`zXLhGw4$%sv|=ODww( zq({_1ZS5B9XZdy2k$GnVvrhYGo)VaKIsl9KVHESv2B_K3wk?=XBo1n#OV3f5kCI?w z#z`M6LwdCIT!04o)&+;-iLW1or=Rd*DGIU(3Njv%EUZiFxH1oQeBAN+CHF+7 zM=MH$%E5k?pHg5SpKlwVXCo8i#Da_hMguG{z0mgkUEe)Nl;eeW>$98Q@%h3kGC_l6 zS{`6|h2Ud)W?ZgyY_3%>3K-Jge>D9_dL3Q!tdA$cl4QK)-f4|)B3RNQK32{F44m%V1j~@g0GmF;Rp4^ zu&17!Ww3@7B4ZrC;jwSjA>H^4!&P&AYQw6BUU3z`HXTe*P*QM}mmPXQM+|%F;RkfT z+;NvUlfG^%J@k&6haS*Q%GBStV}<;B@1k8;wO zUtM)JE!)!uRn<7wy#Akb%2Zu#8tvn(2E+F}TzjNu8B$DMBH*P!$}o zt1dk%n4m4QGIdu>;nd*V8b5lZ5rX>RB2`c!*cau7?okccS=WDO9T^2IQVR?0c;aub z*~4toyZ-A<2WIIhEHw|^Q|FIz%D)zWx#{S)y{6xe8nT=nwXlrY8R{G6u(aX1B0Y^` z11!z{a?`2&YY|`DqxRJG-ComoTXnM$n!mehQ+uQ5bV1zW97Zu}kBXKn2jklE$lZHO zRiCZZ1PZcPz$jpmt*{&#gt39vHvPxmTPKXYHdo4^VOS~@&bL&;1RcTzE##Z?=WU4P z7G|n@ZmMV(XcaAN?jQ7~AUprCs>g=%?iZ5t6KIiOpxVXKdSG(zO0)_ z_YE)#xCv;SmbCJpwhi~3L$+3QTUXk3T`7zLP6v%_xbNiK_;0G4iGO$5(tAT$*R>^} z%NjU^wI#jQmr=8aiMQK7=H5s=x6=F0QSE?@rJYwl?!5XDSz^G(vUiT^a;v=5)`2fY rxa;HPPUf68Ku|%q|MeGN+U5Ea@9m8dGGEG#00000NkvXXu0mjfP6d&O diff --git a/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@58x58-1.png b/Telegram/Telegram-iOS/AppIcons.xcassets/BlueIcon.appiconset/Icon1@58x58-1.png deleted file mode 100644 index b9f52c5932e488da9859ccd48bc2096834825cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1972 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 dKUQ+w)-Ia5c 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

ihf4ZH> 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 M07*qoM6N<$f_Ch+oB#j- diff --git a/Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIconLargeIpad@2x.png b/Telegram/Telegram-iOS/BlackClassicIcon.alticon/BlackClassicIconLargeIpad@2x.png deleted file mode 100755 index 1fcc6fc9bbf3e7577acad53e953254c94b844aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7721 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 g_3A*F9^c;N^OtHwz8lwjhfl{G>XAXMv=D|b{ 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 Z|3CQu-{bL`EieE8002ovPDHLkV1g_(h)e(g diff --git a/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIcon@3x.png b/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIcon@3x.png deleted file mode 100755 index a3972adecaa2a01133392e83192e6fa62510bbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6564 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 M07*qoM6N<$f(hl?aR2}S diff --git a/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconIpad@2x.png b/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconIpad@2x.png deleted file mode 100755 index 0b52118b1c0ae7f6e5d4bfd858a680799db922e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13622 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 IM6N<$f|u%0TmS$7 diff --git a/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconLargeIpad@2x.png b/Telegram/Telegram-iOS/BlackFilledIcon.alticon/BlackFilledIconLargeIpad@2x.png deleted file mode 100644 index 90e1de1ecfd12cd2d22f78549ab1400baa4b7db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6168 zcmXwd2T)U8*ELOwAXU0_0i_oOq(h`C#Rmi_QUwH*p!Ajq(v>dKi-?9IL;>j`G^K?i zh>;pl2tAYlA%*0N??3;UIrq+;S$EG~Yn?rFW~JF$n_apnbdiRJ=8}c^?fTw#PN|KlWU9N*B7 zBJmwdf&`4vBhvPpvTbS>@Cg*D^;VpK9mlGuwch5~Cv^iqqclH1xrO&3Z%_f`i|}uo z5|=&k{C^S)(6W>IfF6SnlM$v8rAg!N=(h0@m?mfE5KB|iq)FKyhN7XPnQ29zK(Y{g zWL7$XUbp{c*AtxQnS%T|>9Pex#eED#3J)gfo^Xm9vz_>`iM0&)>6^);s!%XEzG$KE zu*{mnI+!D303fyby=#?WX#}vBIHsuGB=(~gs|n8$uy|iZC`ZBnHGPU5;<65g?qGlH z9ZZSnlP!qRj;EZtuYAbpwhDjAcAn5NA(53i(Jj;^*f{@3ny4xq zX~OYhTpx~oHicwg<0CjQ3`<3OY45s1pU>h;P+oFR^PgBiB_(=8EM-}l?%|ki%Ha6% zyu0{M%yENySJ*i+Dn(rHd(Vn=@xmi4*t-09@4+9Z&~ihcpfh(Y_-Y)zMy-J$Y|kv2Gs- zDl4(3gwBHZh|2r}Qf!bJQkaurDdj51YU27WArXomrV)BJUA_v~h@3B~Fh6xXqcVN7 z88K7+=rQ|O9?x$L+ElfO=X22s*HU`)tXoYxu{hlQFsfDN@0PX>1VN~9`#Gq{QkK9ks*=llf7#?nb+>`f5-`70TWn1Ok#k&+9Ay*}AZISlDy8qW`kzuJ%cr7LqmQ8WN@U1Qb)`5u$q~ zDOO9D4nqqOk2`hT%qv^@@|i0Asc%U2g13P6lwz!m+_8LHi#t`^y!tVQRL`%J7;wi# z34FN?$uvowplgG+?%xj{=)|H!T8_E}${!Kg2T8i((En$}KK&y@+v*_n}t@#-)Gf*2Pv}Sgp zXPKLbU=rf1$KjsKOIxtU6KsLKhM@Yh`S^h$Q9Y1Xm3}lVC9}K+^{GrApAq?k7ZCYc z_VEiRE*6hfDF~N$thPF<@0EZ8+5yjEcnb(y6vF?oJ9f6EkwZ*h1Bkp21_AC4Le!B7 zNliL0KJMuzhPiVIu-B93O!D8$-qi_1FBT}f-%TQ5*Zj}%8T0fPnH5qcc8LMDxE4%( zOlJw)8wcvbiB%~tq1)^;CJS=hKi+~%*k5^&>aj!{297d4(})PVuYP zeQ&HyD%KY3`}M(y9Ed4&zJi=FwmyY{G{2c%PWDK~0t3Z1C0KFz`h1xB@yXGw{5et6%dSS4If$E;Yell- zPBwZZQP3D8UncDrq5=-f`?aGH6otc-)z&LL?5P7&jv5xEX?8Ws2V7bCXt4?_0|@gA zW8mkndZh3?Y8MHY1o6m`nUAO1p~vmybKxraWV)5wr=x9NtL*VTod$`=3Y8dWxdFUo zx!Yu{TsO|Q)4m@0bQ%r@U;^SzMj!d|bs&r@Ia*Ke8I@S;or>rhE2kDW{;J+;KEa5! ziRP7BiTAO2qGZ=pc)a@lIIKkls4=}LIaPo00Uk|W+x?UCSH>L{KERf>{R8-!+Q65e zO$j%~jnDaLXQRG0Hx=FLh$eU5w|Wb8qY%c0)l2I@GrtHp;NVrCXGm@f#A^j#P&$?V zU$4Y$J&DW2=ZyIzk*z!Dm*o9)7fa3-$S2KLA*+YIyWO} zpcuM4=&uP}QXTkO4v(yjqqK+NukvmBsW*E##P4qPIt7%6)d@kJyH@uWB77r}Tg@8} z=ippYooPh~&}U{epHHs?^On=2&!t}&%lD?fYR0J!5g+u!!guF)M#+~5HjK%;<@PDN z{(E^Bl5N#(CKRrydv0gAw2gD}FU$SCJMQ#(F#lZmUiH=6s_NWog)BcGIWWYESJV1b zu=yH1=xu1PS{=Q)gX)e7Ol}X~)3g0=F4cNhJ-E=WoIW}8xetX=`RDU7&P9GEs;1Ly zuPQ6P4*zNm$&wnfetb4Unple2)5ekfT9Htc)}O_8lNiTSpgCXN=U~z){=-)v>py~jc5RzR;`olScrD*L4iD{=7v3G!(2A1R)_cb4LchmRVw;E zJ@5K;-Sa|-?n3v|jW{NDVkpcPa}o`iEEmgrBbaSaUy0e%iLgpZUsj)NrCN6TJ7fg& zm>XcObmlH!GwD*kZZRUL8+#*e!v9=^faqw7wpt_kcSt)nx~Z4dD=tLjcE}S8f|m4+ zt`r(t`8Lt>)Ql)3e>moRE;g*BP|@YV((^W;jzi4Ax>P%_e++Ne{7T8S^NF_ejPJy^ ziibFI2J^OMCYJ~K+85H*n`!HUd{t1)WR)jY<9Oc0$||F_ZBvm~n)eb}(V%g0YkS#G zoVbI6AMVerIOmKiFyLsfOFu9?efP4^q_}YK_40X2sdn72pKfCMv6Tfo4Mz|ke)sOn zxjLamc=l@;m6OSki)Etp~wnwg@RnYU%r7} z+nQQWfsV_u+DqA6!o(jiFul^--WG0^PiuA#(2?YEm#wbaEmIhn0zxES*TAb|cig%_ z>Y-55iUR*BkhE*j$Mj!e(u)2i6((^yg~UY&J@pF&!Nh^i&pBpb1S~W!>BFoB9-A(I zaL3s^-R=IM*TdiN!w`k?*FKFGSfwKZ&9N;09miYJKszktZ1XU056fRL8*^~rY3{Ay z)OwK>*$Vbu>l2WbB#cqWDT$gtoSE+$pm&?gDkORmc8|L9ZPTWS{ zAn4Yffhg2j%_hqT9<_)hvL?m`1ca|5Zn2i@frC0-B0HWg4%S|o)CVtQE^Y3_m)o~o zdDi%s$h50_=^9gZc5(BQZviA3G^k8B?qmC>a?2wOj476IY_ai*LCe`7c*nq0mK&7r z>3dZbYgXi>GPXJWem_svX8fQgOAN*XxeI}#>M{pj! z?o*1#Ag1#iuBT*N;nxS+>V}-UT14r6BmI@J{!vlN&fB)xOO|+|OYdR0dX>+EcPf2g zZ4~CV|7NRM(kqV_J6YV-n_v1=JDgYW4Gx;gppqE7V{luVG@R;t`mz{dJgjsBp&N&G zRcG5KCA|uh7pmEC{}RyPaPrk`n<)&Qg8YP+VLr z*o-!b%;m+-;D`+i5uN#O-Rk-?B>xL0wvmLr^#E<6lRTV z7;_x06RzLL%Cvd!nBjVkQ`*qtreo>=2a2%`W509cI6&xfJeZ?oByPqKCzc33U4QLj zPrH-2R4umgdLx2x%3;A)z|;BejDZ8R$Zty9q(F5~)@!M34_^twjX^evllY_U@4}kE zI0_k-yz~$j4y!Y=TeBanC@qh`^qb7=6{|!E1zor$G7pd4Y2pYfbAFq>^tYFDy7tFm ztsaqmv3cJxwGp*}ReaELV>%Bp!i)7ozjcK_n_+tyu<%9RA%(<_5gRzw|BmAl_5TA# zJoJf>y2bgk!bv4WV?vF3@dB(A7X81qg*{wS8-SF~pN}d-C--JDo{n$MI*dNAxA&j( zoRs8zrQ!RX^B{ZMibYN)NKB)XcxG1~v-$xRgS%PpbIO|PQ~%2|&=Qjip5MLDZt8L7 zJ>4>=1`Z@B$My2XS&K+8T#oROP3^hcb|1O?Kq1ReVD6?O z1<~=UZT~kH+5az$6R&qnLFp$$7@DMg`2a;0Q?S9Sy;b^S#Z? zKfl_UW&Yl87_uo!(nT09k($wpb7}5x%{*f%12$^#N%H&e$8-KF>hVcF4~8=btRwhO zrr|$Ty-t!9k;}nYm;LUxKqRKP0uCpmyXv7`{=W;;4je1j+Okx%%zSi-q*u`(@VO?* zl*Xh#Nv5ySRyT)6Kr`xlr`5uQ7LmlN-0`Q{Zqm8y*}~L49-+Cw<*M~A-0oJ!@AjkZ zoqU8F5vcaf*~G-x_~Y-sC!VrJVKw^gf((~)AJ9cuAd29Z-HlBHpDfP5U&GCV?G}<` z(j-#9NPnTR85K%3Mbc&7I`2JKe2T3F|WMr_2H9*pL?e-*JMI_$POd>U6hZ$ z2{-O@=F#w^doXw8_3+)a-nuZoQrB_H+>6>Vd8SKVo3R9;&Na7;b?%$Dyp*VB4ceaC z`4+3wyjVZ%%6rnxC1X`FBfR?T(8qE6UsFFL-mn~baQk?5yp>UW&-nU%L&P-QZ@T1d z=SQi8TBsA;WODy2CE1rZHD6L%Bivb@8`69A;$YSHK8VIa3He$km$&Ty3RNH9)Ou%x z;2dmXbmcV)TyuL~ZfJ~k>hcU+Q&LES$0M;s3|t~#_)%YioVdy)+dWT~@;4(ZQUMH+ z|3PW(!8s@p;q^)_m^9)S{f|L)=(R3O{>7iGpzUe9$;!Wo=EUd4@PVfue4kwM zsP$4rws`Ui{wj-?G2h+#LU}q@-f1S|UjweY7w!crwxZXZ$=}8t&eIF-nt7InO$(F9*2^ZB1spGF# z=`cys7ppglPf9?zXiP}(O+}){f;kyLPh=8*y6tx$A`gntte+ieASFiA)4? zhjogv)#`@a-y~y*=)Nd9adxzn>Z3sc;s=L2Hs>Y4o{-6X2qk%+FEzg2xYImBCDBcJ z!<%=tryz3$Z=<{35=T63+x)p_lfH;0ZW&lVblS=`ZOq7-3Je9e!9s7m1)tSC+wVc< zI%-vfEGJ>`=f|kQ+*@_xYlSQpz6pvxe7z5wOv`L?ILY(QbgV^gziwz!w*1Oxj_*t; zx;FK@fQHDzAN~%i(Tei`+CM!#`yn1zTn?uGy-z(gJnr!>k9Q7=P(BT{-6PJ1Q@e)T zgPbQDv>o!ioI59-5UD1`Q81y%Zy)#_EORozVUV2bz5~}iiC?MX^ly1XN6+KrYn-dq zTgxiOXNh#q2mc=a0)%6O-XoKHC`Kr}2m#0_qqb{2>&hUp!6K-_@P%%iDSJeGQGM#s zE9}DLF%yT##n|n7WDv6=90PzTiO?=B@kU$T68k*^Ab;VJ0pr&lX)|N@m*Yn6sveW3 znIKB4;u8qTF*c*u3C<@T#&imLMYAww1%g2O*B4o&LwihJJyhq^0D3cKs4T+lD!fKD zF5FVxWy;d)rs{5~jU#Tz87V|tfrm^KQg2xX+U{ego1b&Mt8&~4!qHOV+Uy>=zgapV zm^@m5mKG6FVZOd)0p5jI96P#(S*;xn%&?`-%B8FF5QhFk@P+5j@gBrK{%lHbl;gBs)xcdWgRYKOK2a-`T6G-85&>Z?0pz*$&CEUiJ2p9RH!}urH5Mvg6}Ig zYKG2?w|&o@ySAY@olxI*f3=5a#TmNGdxebU5W5*ZyB!vY1iH3*g}t-S1c9(NF>CRE zhq(uAMII%D{0^qyX5FRLuf0QlfIfcFD6$lgr86}z zn&L!_9+Rt`MUO=?SIDcUn|(|4uDG3Bfj%}^@1e{M=oi|gSOL(?bvmBP%btf)**jk13pV?HE>h+ zf4J)C&Mp>@?kR1IIqpdbPE1=+qsB+>?9Yg+%s85YIy+O&^QwR0S~xJpti3ws;AsQ{ zZi*K}%bsM)o6s{0%n7EuPt9yF3ruIs#R8tWhR4`FiG*c|Z=Z*$v>DPI@y{c)AX(xY zi?z|2qLEC~dgJb^n#+8}K`Glh+m1X>1T?_;C`?9hVrk&sDzjG)I=s9A&q@j}3Bo~2 z)TYAOIJ)1vA0-`Vu_^QXmFQ*_TW^^mT>!oMF9>??sFd0E&ZxxR-4mKFd?1N0Z8Ku) z9W#Lye_Du1w{5rbqow!gMp4n&t;CuO@7fI(=tBwI|6!51hU0Cg?a zShZyabPnq8ArKNUJ8&C*W8?db#a6+z*|kOe5VLx`B6$~(5{mS#$mGntFkcXj14J+^ zBY{@_@E6pCvgPbrEJFZ4w5~urIxOMtq{P7ua2aY@Q|Cl(oV9p=u9r(6w$xV^OAE#l z;o7MYTUTFL9u~~-OCDUYnQ7o$dP|j17nY(C%z(gcF|Uf9Fp9+k;{-${VviIrr~mWB zrFCdqBaUItoO>{P6S5$Xyi+E@_AkFArzA>8ZAHJ7O1%{(xfyZ7UQc!F`$F}lSRPj4 zC2KiMHymR2f>q;x;8!eet6Z&HQd65 diff --git a/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIcon@2x.png b/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIcon@2x.png deleted file mode 100755 index 5a3a76cbdd7292d3353c90812a2b620dee6ab1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4807 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 DdJDty diff --git a/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconIpad@2x.png b/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconIpad@2x.png deleted file mode 100755 index 8044873c25c36d4322f9429f7b6cf28eaf0cba9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6383 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 diff --git a/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconLargeIpad@2x.png b/Telegram/Telegram-iOS/BlackIcon.alticon/BlackIconLargeIpad@2x.png deleted file mode 100755 index bd9821af48775e440bcc1185dfe23acf431d0944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7046 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 diff --git a/Telegram/Telegram-iOS/BlackIcon.alticon/BlackNotificationIcon.png b/Telegram/Telegram-iOS/BlackIcon.alticon/BlackNotificationIcon.png deleted file mode 100755 index 55ae148ed835510e4b1322f0050a4c8090452608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 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 diff --git a/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIconIpad@2x.png b/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicIconIpad@2x.png deleted file mode 100755 index 08da0b799afe1f747475026261403281fd27b561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5318 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 diff --git a/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon.png b/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon.png deleted file mode 100644 index b8befb1c7b3dd3f82e5f64df08566f19f770efee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)VaVM?>Hx;B6+&5?-h+>O0+NNq!YfM{b#{1oSPws?>j{}o)a~|LM&bbfo+~d_4 zR^m8@=Xs!}$eP*+?OaQWti=xmOiltsQKW$gAa>ETIWXgAE$5FBL=jn;P+3#|i!e{s zALg?$%g|A_-CDdqw`iET5iv;tlCmnJWPE0{I<|~6G0Av0B1YSm4MWqir`m8J3=%Od z#yDHe;#$3kqs26CEUpjZ>9-6WfEzGjXlJn))m(t9^@0YPDWvJd>(2uVW(YA?F(hT} zS3f4%XjM)9y?7*#h1mkmAIj;Vm5uMHWPIc&Qh2pBP~)Om2r0nvO#tR96IeJ_#N}E6 zrA$f#t!?k&)0aL@P31Khjg3uVs6#X{yUWIKMFHHLui)gttTCwHP|b7keGk(?gwuyh z$SGzb4a-nE+PvnUX0<);LSZ~ z4flbS3TYpg6w{f>0Q1=hWfcJQ>dg?&{lDJvU&O@OC_MC9|6 z6@)D{H)HAJ0B^oUxc#Do>rYnE-r3ifWYpOFVb`tvQ-s;VoxVxO-s= zBzxz1Tem9LRnolLy(A#B<#01Z*0PI#^Xsc;2CLImo~AANi5oz_5l2~KsYU+lagZd@ xJZ8Un4-G2@nE?0TvM_B40)nNrVK(|6{sKYWjWB77vikr4002ovPDHLkV1hGUOHBX( diff --git a/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon@2x.png b/Telegram/Telegram-iOS/BlueClassicIcon.alticon/BlueClassicNotificationIcon@2x.png deleted file mode 100644 index aa84350de54394609deafaa41e3a764e17f719fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1840 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 ami-4OR*4uE*F~uS0000N8M?OQ%a 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 Efn^bCF0bk>uIeqW=`*nEEUoE5wd;q_^2X`; z_51$+|NqzT`cJy-EUf7(tmrYW>2}HR{r>*F<@hVC>7?8B@%jBKtLQ7M=qjt{&g=Qr z?)oaK=SQ~cp4jy7`28uW=W4|6#OL__{{E)i^(m_6Ik4xA(edQ;{3)sCD5>TtspnF< z>#pAQ`TYKH#qKDm<|wG;EUD#l#_lJlL#b; zCZ^;msN`(I?9J-<_xt{f&+sOu$msV$ujPQr?j@w+C8XmpsN~=B`iIT$BctM-*77N);v=KsB%|V2x#+y( z_9CL;E~eqR;q@b;;Ub~nBBJ0UqTnZ_;I-fMm(%beq2MZ|;lt$ial+~$px=AO>)i19 zhRp6xwB{h7-yxvjOtR&Z(eK&s`9-hfHK^erpWZ;N<6pYyAfMme@A)5}-dVTiAD-SH zp4}du-5#FZjLhsFo!m;V;T@dZ9-Q1Ipxzvt+#H+RHKyMjn%f(i+jYU{^ZET7n%ZKy z;VNnAw5G>KT{W8JE~Rr`{Ns*czAEgvaU_me@k7-x!wH z7nRo+me=9&`4^SeDxKOImev-O))tl47L?T$lhqWG)D)7{6Oq&uk<=5B(-V->5|Gmp zkJ1s3(h-i)5suOjj?oZ}(GZQ$4~@_djL;5@&(wai8vpoNokwyb2nHwq;T(2c6aWux^0gSb090g-a7Npy zU@#kyd@aR}B&DuOg()S5WBKJoKG+^J=;ya}IP$Jw6i{he89*QMhsQ&~`1Wa4EXJgU z6JTu~w3dvXF^n;(^4006oYxM59H6pEe7D0gCl^pn~0R1{^aXS6Smb5SqgR5 zgd(qP&uP~IIwDCQ1S_}8(k{1QV|%DIB(0&A0BA!M?B({bwud^g>wf|mzRp{eZm~PY zby?^Y*pJ|)vNqhH0_{t&YxugDGAGU9rc(llPtr&4EL0Pf|~eZ&8)EcrxWwxOkX1 zeBB}+8_2;D5FM1gO?=ix0H%iX^Z`HxMbjZ%S>(IS>GW$k$!i%PW-L`9)G#M_VGpZ`rb4 zYN|%1Ar?j5t0?tq9f1bHO8-oHpQNxxF~pL+S1eYG9EW_}YuGJtB)?OBtRcQEO#hD` zh(&4r`ha8jdeDDT`>z()OJ4Qfj`*^MaER`f1U4#S){!g2KS%&fvFgp@V};r<4u3x> zNo=KYNr;dyIX#MN@%v}Rm(`sG55#%BR#MnLUf_wf9O_ZxsXnkl z&TZacxDDwkg9e~_saVXh=1A<=`s!8jut%HK@A#pfsjU7&ucUgOa1!U~^>D0Q^S5}I zcD*v!G5LCCiMwfh)Q_tVHn6By*MCO+Bh`APaJu-IY3rr{Jc<-IY|{5La> z#12vS%R~)xGG~oq-$Kvu^@={)y#1$dcRxVQ7v>y>;&vQI+HNA3j4#LiQR z|A^%#-9D7q^H-jfOdJtr_#>Dbw;Q|LJz)Ri;V&cur9+|~PsrEnX!BIXb=1D{ck!|R zuw+1Q;_WSwd=w*sYCrhuO7XDWoXKYs7fceckLy&Zhe!&Cl`@sxnzQQ*WM0h$>-Rlz zr}X*UX83wnoN(_^)4Y!(@TXrsAr_~Hqep=WBVX_4mjb?nXT9NRZXY3}apfld z^e;x&|I{`O4U!Nc;@rnqz!Zoisy}$oFU9R|R z(l`)jpZurC`0hPJ!1f9ldmt@dYU+pudie! zobYT}KI9`9^N|gsJlmHxeJ$>=Gv<-}7ujr|KwpnI{i&_TQ5`^s6Y6kK8$k+GS;YrUpGIvI? z;eU|))L@-)Zi!?1Bu2h|#2VsGV86PI>FW#N_3OuU@JN0MP;KIS2l@I*W`4%!+lHUt Z{{h8Af{bq2U#I{8002ovPDHLkV1j!+vq=B| diff --git a/Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconIpad@2x.png b/Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconIpad@2x.png deleted file mode 100644 index de9fce9981d6aff597da0d820d2b1bbf48077831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5279 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 diff --git a/Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconLargeIpad@2x.png b/Telegram/Telegram-iOS/BlueFilledIcon.alticon/BlueFilledIconLargeIpad@2x.png deleted file mode 100644 index fb761143f01ece1a0bd37507bc72cfa009abe10e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5790 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 diff --git a/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@2x.png b/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@2x.png deleted file mode 100755 index 2e502e7dab1401dbb3c9e45f6ef5a012f21a4d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3871 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 diff --git a/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@3x.png b/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIcon@3x.png deleted file mode 100755 index c47aeed4b142802df02be197f4f76bd21ff8ba7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6013 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 diff --git a/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad.png b/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad.png deleted file mode 100755 index f07ad9568b39fdefa8aae4001e5d1776d4d5b356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2382 zcmV-U39LxYyG}Bpo?R9eNVDBWI zF8;6YKd}90Ob(eGGC5?jy*Ixh+Sy=l`E+~oiPh1&mWFOv7`$w*A3%UzEaD*~APva} zlSyl)`zJ&CzGb0Pr+Oz&@l2fJCguPPOq$xy6r48Ad*8A!3Q>OGnr!LGRa={HT^v-H zVF-p*b8cN6LMt>pfJ`R4a^LStoioEbVX}J4UiT1lz$Iesxih_Ji{|^;WH#Sd zVac31-K)_6Lwi1&V+026ACueST{kQULdW`F&%uxjXmBim)h}cU7R0FRYJibP)qsB<7sQRz@IT z@0yHsWN(-spxF#jkX*DpM+tri0w7~=nRK`GTsGUMW{h|D0U!fnN^cSej~(uJjBRj2 z3?!A(B>oI=k)Sm|Gk6%W02eWU1Y*t?b9k3gAcuqN=LI0FG$wIFdt`Y?<6tmDZa|(d znf1u>aK0oae>J2BiyKo*BN3?sd`>J#|NoJnk+Y^2YNXNm;+HnKXV|6Q|ZHj=335SKx#22 zlbzX9n_P+k3{mK)+J5FhbzNeZAZmtv>>Bflae&&D=+&NQR-)>I?TMIqab~ks+dOEZRa$9B9nHd!c_GUPs{6$+q>Oc3ra|UX#h&=KHxu1{*O4g>xpOQ%_2eZc z*V5&oG-)U10L&J#C2eNtsPgUBQ3cycPBb;nC*RVaX>BM#@Sx(DFq3rGNmOZ-`fyFsygH*FPP#g zGo&(Ik}I>bH~0DG*vM+znT<}T`bPs3YVB&X6zdFFkeIx0p`Wu=U?m1lt{|qscE>#5 zLQhLp!##6rq~p?QZj_wf;4mju&vv|{muK;41!y#w1N?zVOkO|Rt0-20A7YHIw!gY2 zY)W+YY1le?b02Mt4%^e=j0T6T;GK3;xLsjDi^&`2_#`HAfCv28h&d34o!Q{{aYq8j zyHDG;CDL)pR2TI;r^)G(eSpjN&C;?!=ht2g)Arr61Y`rJI*o9@bLEI+rA zkGQHH1}|PRRd%^vH`60FJ+aI}Ou=WHqRCGAsn`|oynLE_aP7Sdd~KRPT16(;av;?P zzJ8WhV)EVve&h+T5_2%T-16W;f1@QGY3upB*WB4JHsb{TrOD$<0^M1;L*91AI(W1$ zz=Fi&J8L6k=7c{j#Crl_C1~-g>26$;3*9aFFS6R-_Wic_q#7GN%C%1~3-;#peeO2Z zmf>=#1~3bLXI)fcveK9mn(}UOFh8=$pVjFQ+b0{NlDR56D-9`$$<={2$O2G63>^Q5 znV17%7$+-hhnJiAPNQqPZ@v#rFiX*sA!?(1SdhQe!p)Fd6mH5WV18t|19ZV8io!F4u({XL&TeGw|i+Sb;9b{Z7n* zrkty%yR6AB?It&c+6&C$T?Xesye5;TMAvb@n@~W^0T@6pVh$AR3b3YOW#*r@$2H!8 zs*TA4J;na46XGQ%dAoe7i=+z%bmQ3HOvC`1TsPe%eIwz5 zN~$&GUA^GKVP%#-cO`QLpZ(r2!v%YET(oO|Y#k=?G4<#Q>#@IaqtfH%nQphrOD()r zIs8uxP1mjgf+1Vq2R@%|j2`oAe?0`HPKF+>r3hzQL3_?l)y0#ViId{<1w$?8oW3z6%>27^4Ojt!9#;FwBr0 z6is~~5>ksX$$uWla=QZ(kOz_f^eZmkZi%DUQ9n~t1O{RbRK{~YF$Zdyl3ENR=783} z+Zr#;mz8dx<>98HVR10;a)L}WgBJ@KW85*@TY@hu@zdoC8yrXeWB@P;tX&Y2i8)XR zGb#Vd%}*UVB=#4U$U#RZwTTTjBGFABj2OhxFv= z2V_9Z-uhB+sI>25o2N%5wVVb4d=5)*lK(z$o9R&u7C?)o&%tO2 z*hgQq|7LUSsGp37|A5&BumVs677cK|B8S0?V$M-N889@zkAE_;G1Puut&K%fAednk zb08QPv@zJee}4ReCsRLdjUWGu;jr&_K??DnfS3bStA+Csobaph$E|S;+Rr~@ig#o` zS{pg}HTA|^A`_n>0yz|rb zkt>@VNB(F~ni+&cza#Dsj`(3WN>GUMgXu@2tv$IF-qt^MBwk$}yk)xUl6w1@Rn{?o zm;nTrHaM{O+KM0&kcQ-;pZgA(95Oj%@?W(5A5lv;?Abb%7 diff --git a/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad@2x.png b/Telegram/Telegram-iOS/BlueIcon.alticon/BlueIconIpad@2x.png deleted file mode 100755 index 1b21e8d9280b1c700a46d3f3244fba52bbf8976d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4939 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 XqDnb;ef`Bt00000NkvXXu0mjf`=w&E diff --git a/Telegram/Telegram-iOS/BlueIcon.alticon/BlueNotificationIcon@3x.png b/Telegram/Telegram-iOS/BlueIcon.alticon/BlueNotificationIcon@3x.png deleted file mode 100755 index f7725e9914ccb92344b4212199c93cfd2e5efb49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3428 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

P=xGUH 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 diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png deleted file mode 100644 index c47aeed4b142802df02be197f4f76bd21ff8ba7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6013 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 diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png deleted file mode 100644 index 6d9e7ab98c742c89ebe044a1086bc98c2104cb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10649 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 diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png deleted file mode 100644 index 9bf363744d5396c63ad2d96fdbc4967db4216582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5604 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 XqDnb;ef`Bt00000NkvXXu0mjf`=w&E diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png deleted file mode 100644 index 0898af42d998a1fd6984552e31faaa6981e34d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1781 zcmV%0n21%g$#9drp@xl33W@2{m!nP0D4tj+`v zx=vUzbshoZLNJ{mjxq32XM8=s;du`<%P`n9Y%!`Np|IuQ8S$`81sG#spq`wmdVXDl zdfA{bzY^9C&Ug{*jwd6m=A1ea)ow25r|zan;YkAkMW+Xwn5a;Sdr4{%P>{q29jymB zw*|p8ago0nkjxo!Tdpq89mn~G2p!ZcnKOe$X$3k<2l7~w)HEA^DJhQSb9g44jS$Xd zQ(`CiK`@!PPyU$^JV0w1aNB5l{x1MLslrV2P0u?P@K_))npYx)NJC zPp{Vo#-BH)-T8AkXcReMeL~PD&}xOxJH8c9U-OoV}Xr9T=?6JNJqG$uj5wj)Xp^(S#_7*7d6J9c4qtcqtZV-Dc?Lf zU&-ZTuTE5Dcw7m(q74f9tw|18_3T9*-dis2-p*#(v9?pTukMt2<$Nbxm|{n=_w<E-h+=VD9hUqcFD6#J7#?wk@*kp+O{KC zC{di*wiDB_ZE{w{MpgTxLfF0tzjKR0E4W>8m)5QhHiOvO;@d@i5*@0=*&%d z>*%PAO-It*)+7g>Ss;%tY)fK_l!Tza#ks&_i=D^&@yG3tU+tiM2WSWzR1jT~z2_q<0#2`knBJoapI=^)%}eLVhTaY- zHzPn~awd{}zh0Afe;Sn=Q*l+x=C;V8=N8GbuKWvOi-O1UFaDCj>-f~e7RR_ji1|wL z;qTg}yvr=8%w08jgCAPZZs+UxEjpe)wlx4Qw-f@$}OtdKxCDE9?b{lI@K#U{A5xu}GTi-a~LBe;|uE zNJkuU;ObP2-{AA~75&B{hA)YoZ~;O4SwSn9)JcCK^&CK4*c*p0$vgccb~YQ~cxuEE z#Jvk_NYjA_8=9bh%1H^r87DHMk#GUj6TgckVFQX3vnqRzjmX1a4a$jO{l2R+PF}`0 zV35;t1^8-<30k6p1vsBrX#WOL31W6;RVE};{nX{#vi|EqdGF}3OrsMu#>pWiXoS3+ zuGqMHDW;x5m$)Edjs#;NYy3@3S7mqqkgWf5Ku(V2yLsWplw2CqGi$|a1(YZTn3N7b zK7+N+0D`y`rfX%CbqYGJU3%p60on88kj!}9{Px_nwEOs21`edJC)icJGd?&`doSX8 zyeF@i^cqO71}`j7*Y&i^%MZ*KeB$r=?xKuNq<3g06ik=`4%JKY{_&I`n7fPF7E*`& zKSn|R_;brojv#+z=0S>d$_$hnqxcYYzp-s XqDnb;ef`Bt00000NkvXXu0mjf`=w&E diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png deleted file mode 100644 index f7725e9914ccb92344b4212199c93cfd2e5efb49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3428 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 z%0Aw8EN)91NFt4?(N)Je{bAbxe#WCrJj7WJbbE#N_8QCRoGR{{9u%}bmXy49%tY(6 zYF_V{+3nd&XE~Qm!OLaz8Y7o7)k;*}aXC(#FqZ z_V#YGDoB3`D!KhaGEPbYVOw1Hsp7wX5MlZH#Lg;_7k>D8LeNHJ7NY4;3=nT+#3tR5 z_apsUgS;mvUYe=D!6t;l9efa0f6373h;0DW-T6Ojb?`M%3=&lVafG+KV^0*UB`or) zhuAKr(rq0}-iEcj7G<9iNG_kheoF6D@^Kf+XY{MH@!Fbq!JRX4sQ^9KaC*H|_@s6i z9b8J#4 z4fBtRQg}3bo%W~Yf^}$vaxBA?tZ=oK;3pFUl^vl2om##cVB(|fIS?G#Hf(3}M3^5T za=C>RJK$W~BO2tr`DbEvc~CQKT}`cjY>l(VML+=? zQk7~Wc^*0S&rM$upXp*iMk?~ni)O^1P)+t$v4|$N<-2dw&l!0HYCe?XM7Z})voPQ~ zOJX2O{{H&nvMn>O26_Eyp1a6`k^nll7!Q2ak8tZZD-=@D`A(Lh;^72FGmx@9{-gRiUb*3z9{u}{% zs8+}D+3rnBdUK%tgYCWlYMb?Cpt$%mXwjeM15KOtCr|x(TfbVo z=!l6i0cye%S z@C4rXAF$RH?wQU+rOIkHZOIO-!AVFKqgOYXWtwqCu`Rk&#}0k2huq>qE;cuGXq8xa zik!*clDNmo%1yT6A|~Nf*!Uz6Bk(7b{@o8MfS^$;NKBkmJBCPlH--i*7htLdJ;Q*1 zD&^{>=0^p0oiim4)#{vn$ou5GSBrU=(mqKU3m7uMXShgJDN=&B0Eu1}DjQCFX#PzG zsTu77c+)O8EWm7tug}zUJxtNIEhBms@r|U^l-aoC)iMV}N`B?X7p<=%dUH>%uxBl@ z4m{KT?K^Pk!#|R}ubUqy*HKH9YwSRU+M&>zp9ga}AAgJA&A}RaU2plJIA%pOul3H) zIACuxP-h$zJ+f?RP;fg@JF}%4qZRtDl#)V_{ZolXQfvt~5lwpBRQiYSTgkym3JQKXipZ7gH$BVnHRn&!Jl(H09tR)$0d#$kmybB!`C=hiVu#ec z&a+}c94RjU;fMyE;?~mx5A&tUKC>Z0t%oA z=nefb_Zt<^ecW1>hVmBSa=nf-yITun*J0aIf@=wCOoM=9PhIw~ZLvTRX#SEg9l7h- zIpK8dK{$D=FElaxSh(NQM$m*=K}lMYfKKimP`Xr7zBxP7_wz`Zb#Aky(o(S4r6t6%J*+t}EGwuXpGwYTt=U-6&@PMRcX z^{Mx|=HGu6%~H=%7C@}Qb~NDymN~Z38WMZZ&98jWaPV*-ckD>VYK-e=m?7mhoLvzN z%ef2E|F=b@XN-SrV;+V%+NTZD(;E8wnKn|590q@S_O?Z&_`>5}jb3Kjw-nu!0o9UU z1)A3YA(NJtfbd;zVn^F76XSnevlw#-aZ(hIGxBqYDK}uViSA9H8QjnR{*4B-)T~_HHi$J7W^}0zm;Oqy@CUy0*}*a($|7!-I`qQF7vuQJ_r< zTsgo4Ed7aO+tvL{l25qj1S=yNQa)uRjRa$@1ATzQW@{h!QT`&b3Y zI6UAWGDG+RD)kIRw8!-=2LVfu&$M4T-w%Qd(Bh-UZ%58S?MqMHb>TlUapl!23E2Q}7Db+ECW-J%JPJc)M8n34D5 z?UFqn^4?77RsxLLz#L>@)6@k?TrQAI*SLj>M^S)Oqrs!xr+op_0;QgOG#xB+O%%gv zu4)I;2AR0K@ zr$>$KxnQMw$Xq;g7;5L&?Dj5SB)RkHar@5&TJPo&AX2$-!P0TCqO0)UL^v(!TijAX z9i|NbMjq>G=)=^~W98HoAyO>Aq}~H&JX-K8#Ih+BP?%)%d!C?V34NgNAi)0V5;IfG z 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

O_A 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 Ql>h($07*qoM6N<$f}8nDVE_OC diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png deleted file mode 100644 index a79cb5dcdc06b480e459196f14e78b51a4f8f41d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1840 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 diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Swiftgram.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Swiftgram.png new file mode 100644 index 0000000000000000000000000000000000000000..a28a393d1ec5076067d6fa01e003db8531a4d685 GIT binary patch literal 587747 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%0A1@?TvxCik8PK@ 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℞(GNBHLcOi%ffeW-_8b1(9&SM!pgLD*~ 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%0Ddlshn$d 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

qyQ*>QG& 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%0DyAdrs00+`ju>i9SdJ$Zh(N~WR~l%j1S^--)h2B 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

x~Pp*+UyY0x^8f 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%0DhubUO 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

xHqj>8_MC#(+lW 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
FKay?qdkMENLWN!TW~%R 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¨nK`?I z=3Z0G0062H3Ziv15i`6;EJN+xitX23N&zdA8k?A`{xUzvGqq9M4dE_gG1n=W)6WMw zLHChkfD4VCogX8O5!4M9p6=v!mg4Jj2n&@TN4ayi0*%unZcM5nI+L8aN#@QDqb z_2M-tA#g?%H7K@-X#BNT)ZX5tg_zQx|$#(^DT)P zyI}{TcfP`Bad?bbAw{-ZPK+cx;Z%1q6htB}Jc5@-UXlZSL^uFk^zSHe2cSXoSepqK z6rQwE%p{;YF)>IU!e2@8D*6<$h{^0Ns~7k8M_j#{$||h8 zUwqb_RKNtn*|kPd8;;O1p@b^ehqC~{`_q=pDoK0)e(Fcml#bE0h0{{FU8EvitA1u~ z|Hz@VOH=`{L-URI-~49q=@|)FtDWR?b`nM*aUE%eFdLd~u_9Tz!;&iA@k1Nq)4_h1 zWQeERQo)|gf5<&i`u;3q9T$f_?0sHFvDVwA*A!QOOn)Rj1geFH$9H$9YmqK@2gXTQ zdXFtUPhFYQx_@`7MH5C(C_cht%L=c4;hpbJk8t$WpIT244DP@l(-u~OU?F#JoYBdb zkC6;g!!RF%Pm4Vplg&LfV#1jj#v?gx^n#$PP80U{uH7N!=%Fddl z_xaaT@*YR_fSj>+y7vsyu3zaGM;q4KUdEEKgj?4gCr#e6yQI<@7t9w29FPqDgPx- zUG(#D_42+7fn85w^`F-eSL(0B*|HpA{#`ypJ*I0PiAbPuSguH_NAca4M~&*t6c1ZC zPgr;206uj)Secs|$trVKUVh*1p&@q~Q%-l@T4R=)5-Ih_=!1qpxV!(Fwr-@JUhlMZ zUnBU`s;a1H^Dr&}JKr3UE07{I?m_=`2}_!x<)|qtl3y$n_D2@l3r4V4L#ne0g6u+1 z`v+SnF;19R{*ub_50z3;zoV9Yr|s{LT>2x~7txRod1P~za?aj-v>Ql$WXS6vLv0xD zLm|u*VV4kr0I-de2~x`L#PyZxokTRGH8*`e9t}T80;(6M-N6a}iiEvR61wMY-C6;^ zQx+xS3k^78rtFI(!M%@ITct0>SfjAF4@R8sW@XspXTaB#jAR-vJ|$KGRSu3B*qRCU z=hSq5uk|km0$rX6Z+|mz55dZYM_G6hV@@fpQYw;Jcn|#F+}V32Xvk9U|MwP1X1}5; XH}HuWAV=BQqte$g)-Jv85dMDvewtE$ diff --git a/Telegram/Telegram-iOS/IconDefault-76.png b/Telegram/Telegram-iOS/IconDefault-76.png deleted file mode 100644 index 07de560340fa1061d065ef87ef4d81f445d1f67a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2849 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 GBmM`psnnMM diff --git a/Telegram/Telegram-iOS/IconDefault-83.5@2x.png b/Telegram/Telegram-iOS/IconDefault-83.5@2x.png deleted file mode 100644 index f51ae17df908d7c08fdbb2759b8f0dff035483f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6625 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 diff --git a/Telegram/Telegram-iOS/IconDefault-Small-40.png b/Telegram/Telegram-iOS/IconDefault-Small-40.png deleted file mode 100644 index e2b1ba789097cd51299045900fe0ca0bc175e357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51b*51O}yM?t2*S0n0wQb+A+O~Vro$jRfB=5bc>2!KLtJG6Z zoqRdxykqqL5`WY6uL}0D30080<%$!kAWyd)7#xfxPFrK&l`zXLhGw4$%sv|=ODww( zq({_1ZS5B9XZdy2k$GnVvrhYGo)VaKIsl9KVHESv2B_K3wk?=XBo1n#OV3f5kCI?w z#z`M6LwdCIT!04o)&+;-iLW1or=Rd*DGIU(3Njv%EUZiFxH1oQeBAN+CHF+7 zM=MH$%E5k?pHg5SpKlwVXCo8i#Da_hMguG{z0mgkUEe)Nl;eeW>$98Q@%h3kGC_l6 zS{`6|h2Ud)W?ZgyY_3%>3K-Jge>D9_dL3Q!tdA$cl4QK)-f4|)B3RNQK32{F44m%V1j~@g0GmF;Rp4^ zu&17!Ww3@7B4ZrC;jwSjA>H^4!&P&AYQw6BUU3z`HXTe*P*QM}mmPXQM+|%F;RkfT z+;NvUlfG^%J@k&6haS*Q%GBStV}<;B@1k8;wO zUtM)JE!)!uRn<7wy#Akb%2Zu#8tvn(2E+F}TzjNu8B$DMBH*P!$}o zt1dk%n4m4QGIdu>;nd*V8b5lZ5rX>RB2`c!*cau7?okccS=WDO9T^2IQVR?0c;aub z*~4toyZ-A<2WIIhEHw|^Q|FIz%D)zWx#{S)y{6xe8nT=nwXlrY8R{G6u(aX1B0Y^` z11!z{a?`2&YY|`DqxRJG-ComoTXnM$n!mehQ+uQ5bV1zW97Zu}kBXKn2jklE$lZHO zRiCZZ1PZcPz$jpmt*{&#gt39vHvPxmTPKXYHdo4^VOS~@&bL&;1RcTzE##Z?=WU4P z7G|n@ZmMV(XcaAN?jQ7~AUprCs>g=%?iZ5t6KIiOpxVXKdSG(zO0)_ z_YE)#xCv;SmbCJpwhi~3L$+3QTUXk3T`7zLP6v%_xbNiK_;0G4iGO$5(tAT$*R>^} z%NjU^wI#jQmr=8aiMQK7=H5s=x6=F0QSE?@rJYwl?!5XDSz^G(vUiT^a;v=5)`2fY rxa;HPPUf68Ku|%q|MeGN+U5Ea@9m8dGGEG#00000NkvXXu0mjfP6d&O diff --git a/Telegram/Telegram-iOS/IconDefault-Small-40@2x.png b/Telegram/Telegram-iOS/IconDefault-Small-40@2x.png deleted file mode 100644 index 8d4fe9efe66e0b203393727ed8fbc50d6a535215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2994 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 u)vIcB)#&O~HM(ka)#&O~HM(ka_4a6(G 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 diff --git a/Telegram/Telegram-iOS/New1.alticon/New1-76@2x.png b/Telegram/Telegram-iOS/New1.alticon/New1-76@2x.png deleted file mode 100644 index 32adc011d1af6e010d6b12671e9007df3cf7e168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12770 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 diff --git a/Telegram/Telegram-iOS/New1.alticon/New1-83.5@2x.png b/Telegram/Telegram-iOS/New1.alticon/New1-83.5@2x.png deleted file mode 100644 index 93238e0c7f41ecc223140d53cb71c1c45f33f6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14404 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 Iq)EvC0PX36JOBUy diff --git a/Telegram/Telegram-iOS/New1.alticon/New1@2x.png b/Telegram/Telegram-iOS/New1.alticon/New1@2x.png deleted file mode 100644 index 70ddc32cbec486af27c088f6baa924ea176926a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8737 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 LNkvXXu0mjf*q#*V diff --git a/Telegram/Telegram-iOS/New1.alticon/New1@3x.png b/Telegram/Telegram-iOS/New1.alticon/New1@3x.png deleted file mode 100644 index ced492fd40246ff51938a88ae129dff5cdbce511..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16247 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 RV_^UQ002ovPDHLkV1hA=j&%S4 diff --git a/Telegram/Telegram-iOS/New1.alticon/New1_58x58.png b/Telegram/Telegram-iOS/New1.alticon/New1_58x58.png deleted file mode 100644 index 93c34d10c793037f3c727cf1572eb68f1f20d87c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3246 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 diff --git a/Telegram/Telegram-iOS/New1.alticon/New1_80x80.png b/Telegram/Telegram-iOS/New1.alticon/New1_80x80.png deleted file mode 100644 index fb4f4a6122062dff0dfc70800667bc9773ba0591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 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 diff --git a/Telegram/Telegram-iOS/New1.alticon/New1_notification.png b/Telegram/Telegram-iOS/New1.alticon/New1_notification.png deleted file mode 100644 index 34afc4fbec0683505a3240e94df099b38f730daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmV-<1BU#GP)K z1OkX50f#9u2^p$fRs2;>2qq3sTN?y?y`4gBN!Wp;a4y>4WDRz?Hl}__u>0?FP{YE8 zH_<$B9-8^Jf5WjuQXaGhPMjSheKd}jhN?w`(*l}(&%wFk8QAi#phuS0uy#M>^ALDW zJHCKk8s*-t3v4_EFTg#l_2n~_3ViSkD&4T7zZv*^AjUc+3Ta&+UltMO;1ECYabv;# z1iMecy`7}zZeyZYk!sfUJI%niPZCBaEk(zrlsFVqF9#O{&VZ&@_YQR8_O^XbElvv9 zBv2Uyot}c%qxl5nz?UP2Pp&|TWyU4~S~@(3a$k|ItqwttOMN0{c5sGZgF39{rBe>6 zt7Zsjtf0fM7l9u`!$+wr3Rd;>-=LleH%tpzb@VFUNFH| zYWp8)La;JEGT`n$@9Q6-nK$iTGy~%P#Y~{{p@NmXJjV&mfe) P00000NkvXXu0mjfBI}vS diff --git a/Telegram/Telegram-iOS/New1.alticon/New1_notification@2x.png b/Telegram/Telegram-iOS/New1.alticon/New1_notification@2x.png deleted file mode 100644 index e29005ac4e2440c840ed9e6cfb90acd24843a1b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2081 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 JPDHLkV1hZlfN=l- diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-76@2x.png b/Telegram/Telegram-iOS/New2.alticon/New2-76@2x.png deleted file mode 100644 index d94dc86c61f2df544cd653e2809b81ac93d819ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13454 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 diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-83.5@2x.png b/Telegram/Telegram-iOS/New2.alticon/New2-83.5@2x.png deleted file mode 100644 index 813a39a5bdbcce1254b1f7906952a727bfffa282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15384 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 diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-Small-40.png b/Telegram/Telegram-iOS/New2.alticon/New2-Small-40.png deleted file mode 100644 index fe2d70eada0cde9ae3a18bf3e350d4fac7eb0f5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2094 zcmV+}2+{Y6P)+W6 zg8%o^RuIMdRHWIp*P3RC#X;0YX|exJV^+ihw)Ik*_D;-}S%1otvQ#PC%t zeL%hM`UJ2YG*Ap{@YTWNc%<~;wm`QGSibQRe!hGOHFFDL2B^(X#t{*`ws370Dy!;a z!>94+@Pk{Kc5}c=a~VS(J&2eL2V@mJr%!upy37%!$P zn*y2usuVQwn*!>oD3h0dJ7il?% zVllx+a%^~fBQ+TqZj5{nwx|;2LK@Gbj=XA!6+}smJzj`kPJE{;AG@}?a)o|XR3N52 z)dE>uAOT%Z;}CxUO0x|DsoAmQoN>OU{>%A$@Ppl-$1lcCVnFRegEUO6PCC~K-^2lu2Ce*L}Y z@a)=Ur(UC_q~xQaxMOEmXgLBsn=Q>T|S<^I&r%8=K!mG3^7##^bWIU4mgoB^n zmB*RkB4$SSV8rWA@#`^Vs0m3kBc{N4$oXg_oPS^aAHFg4#omCwd5b zPXQOGaHaYMjzC#OWql)R+G9g%PVez>W<0>mgz5sTMh4}j8vasU#f3wAGw0^lSLp@> ztPN$HM#HnYuF!(zV&TWPJA;ud;LV23e{hYkdS0TY4L2W8j{&ov2Bt@|P^oHFjmIyq zp%fT`+lR@VpH+{xPUxHzp&^S6K_+l67dhWPEE zNZ6B$RHNnTiow%YHI5DC@Z9}jm$FvDI^}XsqM!;*PNYX zIBeP$Y8;xJ++4{7EsF`X;g+6~m+t{M1dN6@)TRy6xSo}*-lCAcYkfGCc^^7=d~>+@ z4m0u>;9?bK{NE7$^Z$HqRhrdEDw zbHK$q=UXUMthkbO-dRoxC-J{jxGVF$4B$ie+Es-i18qUQHdwSlqHV1FBJJUSqjdP7 zKj8eT1vIfW@i`w8U|t{Tc&7NN{(#@4YSqd{uN^Wm)dp#tubjWQVj;^f_W`WYR1QqB zk}-kB7R(r{9^1)*@&15Z1do2kLZSmwdSgu`Dkh4$bmClnlEOXp4^nfj18_xIwOB#z z6m+H>+|2L+OooG*?{z(}E>gvQ;SWIVmIKmuPv(mloPF(lIp&|prRKYzOTOWCjcoRQ z;9+{X@cd1K@4rr~pCmZ_HSp`w8|szEJ}uz>I<6c#On~`~0lEG7zra)faRuWbxg~JM z!NqKzgY+#J1IkwEe2;FReHRV}r{4IqsuP&vKB$X7duIu=6XTsI{r@zb{wwgWrB+ol zC>M}!hiiv)s-eS-sB7W)W^xVZizwF+J2s^8!r|WUar(a9`qe35|8N$BmFvt$iL7Z` zHQxwua9^Bgxqdy=o+~*$x?itFerrkFZKrdO2ObbjUpb4b5 zU?xtg-pW1|=5YRS36pt$`+(dIFyz;OBjYUtGIp4TPNC%tlUU5rR3#Qz$6905b z;r!7YCJP(y-&=lp^plI$l*`5Bc~-%#*l--$V>D-ZAX6i YhmqYu=_h~Kvj6}907*qoM6N<$g4W&o&;S4c diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-Small-40@2x.png b/Telegram/Telegram-iOS/New2.alticon/New2-Small-40@2x.png deleted file mode 100644 index 6750299df3f9bc868b37cb1b4b625fa3cab0cee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5181 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 diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-Small.png b/Telegram/Telegram-iOS/New2.alticon/New2-Small.png deleted file mode 100644 index 4e0265fa69aa620feacd66bb5d7b204b1386482d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmV;s1w{IZP)d`#X(C`ppz{z058^n`64`Wldj6t{m zj{B+G*;|c#yfynH-mOhwK`+2lK0yIvU}9Q@ghvK0Nu*VT-G!~#S=@R%xV|NHqF%$U z>2GleJ2U4Jj40oz%J~d?RSJuE;jJcFBfP$VUBO2GGO0C2%OP1ppJTv>OCiD z+n=NILC3?JtM}imI0?Pjh_Li96&*3+t5V!9{R(_)O>~jmz(NLlg!w(te%?g*1@51R3b+mn&@zJ}V-YHzvL4F};q$dS zFn|9(Jm0$o4OXl*`9XXzT^+BB~%(i&A5I z1|=`T_=-M^uUw6i(=n{a$?+U>4<{l{(|(N^y7cM%1ojjjOF|D<_@}98CmjrFfa~y! z0#C;vu{*$6zrsuF@)#>-(bblaqqcyC&eC3OpklM)`8`#ybVDbv5*Tq2QnAZ*7@P09 zD5V`dvnGR`D}il&ZX0sq?>aubUc<5B)$M0haVyHw;*ed=x<(dy)}QINx4HnMlGUeD z_6paf3@|>#S$0smq2;P{egB09X0?xFBdZc>Cl>in9+-fjx-=7{p(0HAi%ICkIa;Z+F$B7w@=YH0BYS6>+(M;lh)i9(|k9&yqArB0}jy7sts=mxlzBkot zyLUr@u)v-S_%?xwtH75twoWpy^Vz|3!0zvXodXK*k9NPHCKh;}X|0ZOj5&(PqN$~m z?G#|b-jb4fSd}sl^HMteE6`6d8;W#eQIr7BmKEOHh$YA5JTninP^pOLH!{{qJ)2ZH zz%$$$?R2-VVM&9IViTLT)@QE7HTP|DOT8iFS*0Njm|;)QUQS0;Glq<#eEoGn$JS9c zzv)qp8^%@#7Sys_;-Q~_C%&Na`6ZOr90OHRCSkL~xwr6OH+1g^&`T>_g41+{XCJ9B zS!=|JoSddJC;2w2B%x<&DFa22F-k$0fOVL|SZ-A}w8T5$z$Si{Po!r>v4AB3mdL0# z%0rkVH8sm)bBgmcRnz)I6^+?ODz-P%j*9RX`pekh<=fE2Tc*kyK6(_mJR5_wy)Pnh zjhO_FP0F-iYqCGI^ayLCJk3{#L~fK?;Cd0|e1IQD*Q4aNFO}pEGf{hF2W`&T%_DT` zoQf4YkyR{e5#CUDiGiXr$u4agXn>c*@$%Xmfk}H?W6KKQ)yJ)}Fjgpbi)uHrNyuqX zVaIBT1{PYdd})9`TwWXM#pZnaX2h+3m`z>-_Iw8XJ}d7=J7tK)t*PCXwcIFW*NRz{ zc?W#*h{Be_Qaj(~hnWni@hiN6-acz>Robd<)z^Rp=-JrMUKt;e>l2B)`aeNiqw){% z^`F2;=Yg}l9&2?A_Brn>0h{@f*|wIq)i7b+op!rR=&ceNDq=aqKqD+~C@gR2e*uJF VmL}|>YF_{V002ovPDHLkV1iqK$nXFF diff --git a/Telegram/Telegram-iOS/New2.alticon/New2-Small@2x.png b/Telegram/Telegram-iOS/New2.alticon/New2-Small@2x.png deleted file mode 100644 index 37e2e15d18ad2797f2aeb5d9ed127324fc05bf65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3364 zcmV+<4cqdGP)&J~%oyEsnmZ)bWwQQt(wW`~yH$W_&=zC&vew z!Et=>L1|@hoPm#3YoD|4kKB8chB_m=vuE$~ zDtP75x7f8{tz@J~f~P+`#hh%A{+J9&ai1;zpHE1avx`!`llV;P~8W zf}6m*l}ot1IDr_JOvs{O;M$nN!`9*kY>j)dvv>=>y!I{(b`Ic^C}uT-(ck7S;MwWd z@%Onht`cl)5&}x8O&z2Ml|Jgv8H*mX247iwC%)eOMSNlPpzW%F{_g5K_|?=Kczf{! zdg0W;MFbfuq=VJ-3?s*o>p%``MCI7Xxm!r-`+M#s=)Jhka($p9bC>bt$7A>_DJiOX zNbS2eRF$tM0lX-itL&Afb5_CWm`(eq{Xf9w_$I8dtQ_>w56AG#mD3bhDj7(ooL5s} z<-7ojqDjqXYRy_ro9_*PALuzi^4y}`tHY;cv%s9d7$NmIUG253TG=b4$ebLOVCD+O$f9U zY28+K07%hSJj0{SPk(wtdj@!aNR?-zLae2f|Q5;#BpDHUw^{TJ?E>t1;)m z=feo?RHnMUumL}7AGSTv^1=f4zjwx&EgV4VS_fwYPM|B)ros6nJFZfz0ld5Jj|0EX z@3)yL7j23TYPZKdc#48l8?fzx-t*6KjLpr`-8rC#u>RPqob{`f_R5<&-%Wzl6Q-eh zg}LpZ≪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 Bz&QW_ diff --git a/Telegram/Telegram-iOS/New2.alticon/New2@3x.png b/Telegram/Telegram-iOS/New2.alticon/New2@3x.png deleted file mode 100644 index a083c562d442fa7043865f4b2ce9afd04e51326b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17358 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 RZxa9j002ovPDHLkV1i>C))D{! diff --git a/Telegram/Telegram-iOS/Premium.alticon/Premium@2x.png b/Telegram/Telegram-iOS/Premium.alticon/Premium@2x.png deleted file mode 100644 index 00ea76d714b1934f27bcf50ca429c2a233640aa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6639 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 diff --git a/Telegram/Telegram-iOS/Premium.alticon/Premium@3x.png b/Telegram/Telegram-iOS/Premium.alticon/Premium@3x.png deleted file mode 100644 index 1a67519593f5fea187a459d5038b33fe020401f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10965 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 diff --git a/Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@2x.png b/Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@2x.png deleted file mode 100644 index cb953d3546c3117950e08ce8855b1c91d8b97db3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9767 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 B)K35a diff --git a/Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@3x.png b/Telegram/Telegram-iOS/PremiumBlack.alticon/PremiumBlack@3x.png deleted file mode 100644 index a3833ef0c77f2fd658fc72368aa1d95f505617ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18173 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 diff --git a/Telegram/Telegram-iOS/PremiumTurbo.alticon/PremiumTurbo@2x.png b/Telegram/Telegram-iOS/PremiumTurbo.alticon/PremiumTurbo@2x.png deleted file mode 100644 index 7eccb509eefd84a72d620d2e595c10cd34293725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8740 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�e1{VLd(%b1v*-Vs!;Vsab=;bn8#hJw@iYs+UHJ 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 II;Vst0Ht(*2LJ#7 diff --git a/Telegram/Telegram-iOS/Resources/intro/telegram_sphere@2x.png b/Telegram/Telegram-iOS/Resources/intro/telegram_sphere@2x.png index 826d68b263e7fed924f965fec089733cc2d96594..5bb5b80fc8ff497a08f1e20fd63b74068bc054ea 100644 GIT binary patch literal 82336 zcmV)4K+3;~P)(1}8}Lzo+| z;0A066Zj194ItzTC>2*wiK=h@HT3Q^o^G!9%cS~-(9Zn7cQRt- z`t|?QcfO6c-~R2ZzIuJ5e!S+@{qgzz<;R;J@2RiuBj)2({q26e-@XsI>i*pO!^i(V zzI}as_kLX;AK&liE1iE2_ydS}4>^;c`~BSx&u{uY=Euh#obvL|IHy3u?2vrBMD?qe zlY6$Mr{DkY*@Hg*kQq>mFYc*75e#PQgIWIF<3z`B7LHc&YszD1*)!&YoDbf*Ale2U z9{+>j_c8PFxyRBSlRe4R$N%=s4*GVKWm^0VPU$ZwYbs^h-}^Y^drj`=trTghKED6n z2Yuh`w}I^N@7e#&$3edYMSbtwkRxK)3mK=Jf`nZ@lWO-?-|hzH!yJKCJ)Sv*7WQFwbwz?UubJjTij<%b#!O_%K5n z;C{)Y+Nb0XIns+mT_6AA!wo{s_wH5t9i=Dg@ zxa{eNAa3@bpmn}*4#m>O#*E@QUv93wLA2pU3LNzbzoEfQ8IDV{8ftG{i`z=cJzj;}+LpKqJ{n85MFUg_Y5_r}{R7 z?s@oWe*)ZV&;F&4_y6i+h+q7==Kufk#lQNozx_}CMg2SU`ZEn!1gMYf>92g~_$NQu z`RS^yln71$lDC5m>j^rw#;FX?X)!XgcjnT}YBGb0d_bvDzcZa1=xoZB83kW-V!l80 zk-1YRvOIz6Mi&qRTIY4n6%Lo7++`yPjEw8{lKuqHKKOR&yDYxyQ`PhYu+ZAcW^JaL zbOs_#xgf>wkQmCY%}%T%BftVxh>K~=0?G6|N6xGX*fbV&DcdOk@hTo+qLld+=-Tn# z-GJ*B)r(<6f#fhH+95&<$U5cuNswU$<%D=%C&<0(UwnM?-+o>FkN>O#*q=GTdV|!j z{_^!#KeYc>KGNZL2KCkVJJzAp2}&j`PVo~t(gyQ@5ujnnnTi|;1_j)@>gbUu{izr@ zO2JQr8{8P>14@OY1OFXJjDr9+Vh#T-v@r=1#$*DQNTiZJoh!w)TJM4Le(8? zXem;fgH}cmq4FLA<{ABst^gf|^nQ$2k1UB_XR(!T8Z}6Qx4lzPFo)x>3_S4ypFBw} zqdwar)xxn7k#Mj=sie}d-RC;A`h^!$N+^IU8uwp^m0M3o)Bhd(OIPc>l8&wb~sUwd6Y`$6U3_#pM)+b_?Otkjrxn0W$@{_c@FHw|nf&t_Jq z0m3=gxLyXNX!2AY4jie7^OJrgPLZiqLRg*FU+%lfx$Y$C)!9N8Qdabxjx4E;^2lHW zu?Z#mk)$9Ob6SB=K5qVJ0GR-fdJYnwD*+CDs*MSs!Ri2yU~E(nGnfSAWUnkh&>HA- z?XzYwsTQIAOxVP(LGUgWnSI@Kyx0RBTU~?^mWZ{1Y9-v7^5~B#D24gXz|dZdZ6Ee9 zo7ZC;_95$&Ow)Ht!unX9{3sj${?|YB&42u-IqUjU30Uv4@7MnO>t{cN_;bA_-!O)3 z?rdwTyMuCf3ZN9i1S5-6q;P#l-88@m$!ke9tuM}uqsqDXQ;dsx9Ms^r`Nl8Uq@M0kBo_Qm$@yuwR>@74(|-grYy;-%FJt(^a*|T%m5E& zOwxit24hTckl||Tj453ET>7_**cBkYGrvnaL3jdH)Ay^7eqV>WqUfc!FL>Mmq$>Jg zk&y$%66$nx9c6$s^HwN(C0KLK@h~|6=8on(>P;hqtK!NNyt+PB#UDrh!|NMA^mqR> z0@t4^z+y)AA;F*hkmOg)UikCPx{xv2$XnEcXl4R5aH)>}>T_U5_ZQ=22qV zec+|+BM&|5!*KKfFprgqkyude*%4Cd0d3%dSz-d%{vCRqC|ZVK!{aakn0h#9g5_Z) z5dXnd!K~Ih!9?Zgn3S)fY09%zy#P0-nwUQmj66ikRCVLXO+{TOeIMdtqlN zm_G5XzEImr-^IOP@!}FS$ZTevJayb?uzrqF=k#WSTU7>Dj?KLZM1|`K5BbQu_k{A5%^mIj;GnZ(Wc$tNs36#ph zJtNdHjuRz>UGX^)HA+gd68ZuBb;9^jD95qTDNmpr8&b!H*vz+ni&-`tBvjTmUaH3D53 zy2m3rJ|?3Nxa~|ojbO{p_QwEDXXfe8lVhDmkp)6M`le+SrS)Xko%z@E^$-2@pY)FV zSN#dTe)Vtt&%XNsR{zb1IQ~*G5w2B^`~&Ve_r50luByA4B>=u;A(h4e-^sjVVP(<} z3U(;df5`z$2H~M~;&oxLT8r8}Q2V!)z_q=<<;&FvO_>&Xkubk9*Vc)!cWG{Ql zYeV@oMFARHpvWy4_|bWS1$#&4(bxm`r2M8B*r|Z6tuIECOdYnxyij!?GbvMg5ETK* zCteu`#dc@8c#pB)Ty?J?DnSi;`L}61I)BQNQ9oAYLYIE*`c{AQw}0U`|8IZ! zyY(md>iQFSy|b#WZ~oUGlKIJ1LRXek??3EWmwb5wuMS6c@bmdoxz)hoWgN>th2_8u z#>%Ql;*K#8!`SGUF9}jLO>BqIPSdD4gS{ZvhD=|t1wtk>16e491}6;BikefhbTQvX z1CC(3=wu@R)KW^+*z;vQ1{atx&L>&3!dM*h*MuA9yj$5JO_8Dfw~{9p9(US2cG?E9F8i?}KleMnyJpG?>{}Q0#dWYcyy_ z+h~LzJ( z&r^=kXfFXG&?9?--K8D(uck)Ub6-zxw;u>Tc8E^jOcvyL&&-v&JO(bO(hJZP!s_@J zrr`v~gtJ|LLDtNBQqr9C#dB9zb8JDXEU8jmxxg3*d%_%<*^eA_8=(g& z@}@`x#Yu~GM&-lQbFP9>E@ALelxfO36dhte5t%r&@P!~yNQX%RvN!a{2w=thgh$nb zu>cB3jgxaFS8X=nLnG?m@#tb)a%=iLc8a^bLv&QLi>M5Jul)fQF%M7=mUcQ8_$qz5 zyS&QLG3n;}N>GZcy|t0bmTl^)p5vr2vlgi@UiG9&gQo=e!A(RQas3-=6K;|nTuQV? z`rmytJ=IM{bTRG z(W=Tgqu=ev3|{w$_0Vq7NhcDF-jZd9h2vgb?(^z}Sa|iYW!3PMk_~sW zxh2e-diJF5`D@Npu@WLtPk}CtVHqpEhfkp7=63_XoWMKI0M0I@7CvZWYvnDcjykC7 zv%5^tJp6M23FHK#w>sXw);w_jD(83G?7m7_j5nh8WA@3?1|ptd&Sib;{9sK71{D*H z%n=`iUD)ynWHLozH8|rSD2RH$y^c_L^Qc&KFxZ7{sT{8}riBPtdQWU)MJ76qX^hTN zX#@lpjj#4>-|lbx_J8x6|M&mp&(t6B>yH$$e(i7k#h?9vpMU4qGDk3pn;w(d={}C`KpUK>1$s%LV-YSY^9c+TPRL8O0TVP_EJz z_-4XWMv)pu=!4MCZikKCUkBjQn)Q5<1CmPgr~y<@AY8<`I@YZ$$tY#$0ksOD$w)s?~i|Y&;RR>dKK}H z46uInZ~TSteptib>vhO*LNpCyX^@t*OJB$pLR1^TnzwgxLLQzuH!tm|BEyQ;k*wj1 z;h68`6_%T$ z{zur1@A@Nn{p#QNi*JH&qQ@D?TTHyzb$?p*(+G-2#gNvgITpuLR@LQ5-iq$w^AzM{ zPv(3*6LmGd*mEkA4jRjUm;aBB5Pi&)i&=Shc!@ktcuh4@E1L=L z$#6H!c;1z(*}#`BOY0bnm*V5>ODQ%y`b6Lgm*@z~h^%7H!m7Nz3>!mZJ@yw`ml#CN zkbY!63%;GDCrjg!s?qDkEpd9>sqI63^>9G(tq@(GkHkskutAG73 ze)q#Qe!hK&&Om=wb`l!1t&6c4=QN~_aCjfC>&NzZ^v9K{tUsgN+z6@GV&V$^(o(F? zbR0pKeIqV&h@7MzhWl_lf7Py#I)I`cAm^-OPjj4dWF{S<_!Fv`B+BX` z6urX1=$dZfGU#OH_9?Tfv*DZKU&tQ{V@|-zqu>9%f^^WJ=u;11sSB!U-<3^b>AHalt&Um zHQc{n$OfbYzT%44c^ZU-omuix>TTKC-UUvqH>VHVIY_Ki*#Thc#T0J*htq8V^(kX; zOgz#gv?Pu!rHN8!baylcp?mvd37DQ63{KLO>}A%Iub9!LWC@N9aFH!gSAk&V2x4ir z=&nP$Qk62UaUKP%P=bHunhuqO`rS?qFf}wf|AD# zpnW68QkC~fsv}0KzASR0qPq_Va82f9C93P#ZC7&$v|P+Bs9>)Z&JsgR%OwlKF=UT7M{j^~)b%^^pmG_x(PjK2fVnS#$c>!Kiv%E8UUfJpqlv zh11jhJ8q{^fi(h-Pt^sph6J|yei8|ADP;>qKQEm8%uUQ6U7k?I-`IL%8ef&cFX*;u zcH#V&lavIB&0$L_I;vGC(404SY%#u>m`6Df&7zg*iegw-H`{>qq~O|KI;d z{Q+NpV8Hs-zy2Tp%tv_pe|yBadb(}n70xhfSSg8ab5*OjNvo!?j;8tw196m=8|iNM zi9G_&RAv0gqX`^M=urYelevMS=<^9K{u8Rk3~l4k23QwbN$7KtARV!i{*1F{mU%FR zlg_-(ARGCW04eH+^05)eZ(Y1(o25*-5^Sc9fRo`CuvGPoFU!7*OuFYODUH|GtAmE7 z#W64E9#toBaaJ+>%J^5zGwb=h3gTX+J;@TVvCk=S2_I7Lwd|Lp z#F4rqr!QDs3DYOauu91 zNqQ`ZdT+*?&b@$`>C9$cFSHunWVSqZ?>p`$ny#FyT;=E6u53GPug z)cfuUF9F?6=*w`+J`&egz}AhnuMAQ+M%qa5w<@Mid--hJvc(8y3bSb=RLIo#>iVJo z=nt|Z{`b8P>wRtD*RR(<@ArnWQX0Ai@A@JP5oH^`QN(`#_W&zy7XZq=)Y;Z?{NP~e zXu*xByE*RRZUoLUSarCZyt6|o%xtvL<_dcYmGJyNu{egAbE`ryL{otC9-t2J&{>ZX z)aN~V;H};cxd27udZz{Xu+7;$t16gINTi$3i*pSw`+{V z3hqU(75uDh9$!cVg}-| z`9^;Uto%b~=-+X#oedgl%DUfAKmW$>{ImJ_pZUH|y85@he&2xgtH1qQfA52WZ?Sq- zh*)E1#jy3Z_=Ai_`Xj*c`&VESI-472bWH8}A@D|Dv1tYNdnI6NvG2usW;(+#UJfU9 zx+yf}YZo>DjA#%HUmxG*u|d8Q{B~;ek94ueXU_P${5eTj`-! z+2Roiq3}Ma+i}oeoAy4jmXnH)5Om4t$Xg@zB*OK*A$6!(q_33cT;Kl9AN#HUx_+Op z-xpy0>i_OzMR4k`g5W|5FEJBtX16XJyDy7|YT=3TqV27_I8y>1b?62W5um8cDN6l< zD*B2dhhi}*~CQ3ayzFu!CaHhp5P}sZz7wU+pkNYqob#Y z-eXV*IlwF?+(QYJEN!TO$({W2M~}Uhhu#e{wh?%S0DvdTu+|_r;rrj0s}(9-iWfSs zoagMP41jYwypJFnNyHA7nbvH=-PW_3H?QRdJCm3#Rs~4y-1K49X!k&UZ)&S{a>)!W zf=rpVTX?#qk!+@v$A&!!Xd%Tx&(-ha)xXE%w{P`&{en{UDvRXI3J5YN zz@ngS?)$xE^^yv9C|objV_Q}MNn@?MJF|$7JoLf_Q{3*C%@B_Odgl|_CO`I*7~~Gk zMl4a%90RKDS+vNZT%rdSbEX`sluf9<(>ZjB`@WRCjY)R*s@g)K?S?3;I*J}D#Rpi@ zDkjHlce`Zm7H~bpaDEOxEteEt>Q9O}^m7beZYvHwhv4mVQ?W5lkCJ_;q;pt7w%Hex zma52WZ$l`HQ={|qL$p^;;k{qQ$mKi&WPfAZhf@8R`(&al3I^*>vZrY!b$ zl3QF+X|^bF*$7yezMk;RD84H>cYusOp;UC8AlliIxrmqN;{bYNJMiB%LIqn z5rss%v#yRzsE=z6gTD7Mm%r@;;7H$0$OQqNh(pt9@>s`c6Ff48bflfHF&##bNR{qv zVHtTPMwG`{sa$(;_3gyhNeFI1T%B1zVPGTp0OR40yj)VaKj(#2R92Awin zwqAl9Ss@v`Tg7G_0bf;T+#jVK26Ng~`ZJb+Eirye=Ih@36R6Py$5s&a`nzyu+4CptNu8fb3)9VrfnoJ#n186{tE6 zUSs508J|M>Sm{Pq9xFaLb~9$x*sJ@76CyMKXn+7&1+)jt%N z)Wf$25EPlh`2^%!Ij`45==?!Mdf%GE7`CFka^qyRM^e8Fv_$BV;Zq|-5S%{(k(+4^jV8| z2*&c(koEbvilXBE-AiE6?Yhhfv&?0qOO(b;Nk2(49S0n z^);NvZh=#vjqfQ6f?(; zXeM_?Puefq?(f5C5Hi`mgGD@%mk7SRY{Z&sXD&f+9Mj z)*3hWY;1f!Av?WfKy$v`#V47CJ|!FGe1PUGP}5gow%nh7B#q=lG!f-6wa4E zSo5rHjUBh1Q6i8}w7x&Q0<7-yM$IYyuM|=4%kVeb%EEU~w{8md&(%9Cs&kPBV5QE} zVH@-4mBdW4%{k@Da|HUW*wgr}GubSMX|9l=1i=h+$rjcF^%#~2O_gDpP{og*_H8I*c;q;w=wf0yv_Y9 zRr4hayeKDCb5?A4ZaIHo4ke6ALBYh_y(r}&ZO87|5-}0s63CUn7!ixDn7dxA<9Ws1 z2~P~rq-h+{z$E6S^rjdnIzkai#ir36{_^4`$usuO!U1U03*6si zX|4Lm5!lNr^r#%z04OuY76z|CqHzH`$fAcr~<;S7lHlK#2B9(zKkUaQri?Kh=838ZHs;(odbmvh@n&BR;h&^5*Jj;Ri zIq1yO8EPWdJ`1}I9Fgjo5c4yY_)5Y@szAOeXYCIAj(izm3>9d1&Ef)xwkkl$1we-@-k z`>y=GmIi4e{ks|N!glQ93^d)L@e$48xlN^!+`+&scB^IZ#fHS*bN;Zzu=h@n>BJ!= zHtc~aVd+k{r;+s0%{we$$;I{B)j@lC30U?oiCKDxf)mUoSDP1B&)fMT= zU<_C!%TcHc;MiQ`rXyap1GR}~S*zqP^~c9$Q@jAL+;vkOu_8e^i3=Hdu6 zGY}A)BT(Hy)c3i%MVC?1MFb~VUh=>V~`<#%hh zkr6Tt7cE@^D?@&<0$D#a5aG0oWjv|BjB~OO%A@dH0;1I#7IR~&_v62>e&feJu;$L2vu-Dt0RXIEbpT53`+omGi0vA4?aGotYL@IneJBWJsJrxYLpT!4wlI6I`eCaxTa zVQUY`n+-T`D`S}ARb>?ifN;{yxTwZ7%@u66?-?%c%IVIW5UgHO$g>=d#pW|QX5{bE zIrFf>BIq+Bw4*9H(mgzn27hXxI(m+6Io<(xCB4vAwNJh-dkN<~B@~dX=U0Q%M|wVb)r@J z+C-7se2A*}KP{(}`AmpdN#n?PZxLJ`Z_j4#t;9wACzVNzzpl_z0L7gh;9j1gxUyhNMmSp)U%-HR0)4QCPY7C;I#5OJ55bF z2*;Nc3-Q!sy0lhHpws z96AOeiptm2o0&RM7|Fq9oTW+*Y|9+gxRK(J}tZ;dz1=hGZnh=yTy8jz?>bc8RNE^S~KxtE$dWfk;TvDsawXo z4QA19GX`#jIKXPA!Yy!}8R@RLz=mRG7F6SKfj(!m8`%s@Jk}{qD-^wdctvK9AIBC( zx9J5xjpy}Bo1?*}@UV?>_RJ>;EtR*C&v90>JtR~cX?Uo_nIHeHANj#qR)4=Ae(58- z`k|>`7*wo%*d%d!l55EgUOWnTY5e%MbW#C=kgen0m!9VCCAoON8n}BJ)M@2*#`M zFs8SJ-VpVwt~A9%7Uc}{;AzKn8cqBRp4rzZp07S9b$W==$yrwJnC30GmyNE&BgN@K zHXJTRv<;slz*J!1+2+Y?A|`NC9o?;}uvO+AY1&olS=M>Kd4#5>KiApU(v&!mO7h{Y<)P3LgaS!XId&y7X-u1Ls*$tvgE5}sxtcYLj9;eKr zl<6^nTUN$SvuFIkEbIGbSU=SJgywtn1yghE*hgYID3vvK@E0LQwnC;CVBm6oU~`afc`rb{>$mt#Y)|j zB_9eJF^74z4HRO;_>uA42hXHO7tkoM)Zkb0g1a8c7^3}p_*A0+tfH@FgY2!0vjO`d z3?2!gvsdd{Lb)I*Np9ltWTKy2jDflt{g2+%Apy`?wBglk=b2$j@CbD^nC;wOau@w8 z{JL93tp%nY-SjC)nc6)rz(~z9?SaFDM%S?-;IHqozWR+H`K|AJo#FQdtdGq4XCWi| z{j7AfybITECZJHE&zQ-aP~SnO86!9xr+RK7X0Ebp^$)0T)^mWesyZ>Rm~>3eiJ%~i zr$bn-6cUoMkx+*GAA1@%WMMgf$;B;E$UDqi>~BoGu9=4@5RB zuPrSj^GNq8b%swvD1lqqglY)5d(f^yH2}d`66Po*$eZCi2oX?7XuE=<#mv34AyNwy z4PXoaD8J4CvZ_M1NT}AJf1|$7>x+Q(EC1_1|5rbL_?9UmKD7}V8ggz&gF8|qhX?wp zlcS=Q={$&yc+)hy`*m$Om6_VUc@dqPrgESB3RQN~kE!!|uB>Nv!K!jf<_{DkuGIlx z8s&B@eH1XXH)rCD7wv)aizwO%{H^M%v{`8v24pSWLbED&S*o0Dy zwPm7;=0!b?bOD*R12B@6GjPxt05FC!rw~}pZMPeETI>~aCdboD6)x~FovBX9tT=5P z;RqutZBlrt^>kUh^=-~$d3uPC-0W6~lVsR9hk^?-36I>Vwy z2Qx9p2|8S5HHdOh=J>>#7bk=BIN)%ksR&tXGuEH7KwLyp;oId@DbLn$ifs6~cgH;N zqqj+41f~gux5k<1?E4lAYcD>QGVtckScYo4RN*omf>-FV4p><-BjXx&`6t{hm@VhI z&Fyh;jyD+>A|X9F#WumSboc)D>+jYVUj6*yZnj_b3z1whk<`H>2{3#pB>_Qd1K8L! zlUDR$YL9T*8k%RNe_$)7%rw0rj@4KmtdFAzCH;kS377+rd^DduoW5($W|hiB$_Z+Y ze{hJe#~BIczDw3u@Nm*tUtn4gf?`8cDXey|@etRhre&1o6}|CLlrx?PNL!c?)s-xqBcz_78bBa0eT@HaIXOez#;l#aB7+0r zlDe$LR+SOv;s4HM)0U5L=h^BO5dhfo|p|4$&{$h!in)$(zFfC3|IfD%mKqF}5qCV1#)gGrE7A zI+8YxAR#!y7OV1I2vLchFuYXU}`qE97BLX z$1crd8VG*eE6i36{kt=a^H^JSIL+iibcVywEfYFIH0&0{_9@jS?7B)ixb0wQZALQ| zn6w!Y8sIYVXIR=#@*|83_|fL9;l3pMSj@q_Lju;J?7qNzsUhX#C_l~yFc*y6x(Caw zn0aLHgbGDP(AK`Ljt3?f+}Ccp9x-VSdy92gN}guLLgbt3n7f{QrU~=BOSE~ zVj88oSo;;g2)2QkrB=!P=@nLi7=Ih{l{*OqWY!@i+yEgWS<7y!LQ?U^ikmp3#izW> zFkFgBh#NK3IDOQ?4l-}g!Qj%42OT(%f&x2^=?jDW{^P*EQjgc?9@czhSWUYkQvmH% zlatVO@(W8+>nMbo08lYW8=TLx+8e8T4s72N<2KB|La58&hvU|7IxiRwNqP;F#1N?aImUq|3I43uLo zq|4MqpTo!ns;P>iZ?r+y#@=b1LucQK7^daL`F2Fz@ zTZRCR*4Z4TBrh9)ErDeis2+NQP@&D6YPoRy0j_j7{d@E0z2vQ*?<3h&A?P8c-hVf; z4jsKv;<%Im*+sxJuSUeRx)2ot2>gmB6#4*h6E_R(3zAaM@=M%yY335FItk%iv9rv(POA=)@+3aLz~A%Mk;4+W7?W>^k#N zjv*O2mJTMjuwimC`*#Kv6VnOTVHo=3ZzrOid(k35iWp|yvHnJfS zJS78GAH=ULAq%)U6k0$7XHqxM?F5MB0wBQ>LN1d=Byp{_gMWgsih zu^WhLaLJ6P(jKb4QM|W6?3E{#p@rB58BgL7WWXL$MZY}|$tpN>vN~+0r{hQrkgBJp z%S1$iI^$L0Tk@dEsCn}qkMU{Q__zp~PilT7FoHULgwA;0srLdeJE}NIAC0 zoD)$@g1lpgt$qih+=HU@-&+5=%6()Acy-Y0lI?lR0AT-LOMV57()F#!o}Wxoo;|F; zWIG}1R_u9UZ=sEt1T84Mzr3Qv7)MtqJ0JfE`v6PP%(3?5F%@Mj z@!%FR4wO4pRA773E>%w~Dxh2+d3co7WSSCFM8^5ZqF7?11X4Mfq$YUxVRbUzSJ8iF z<`62sPqtfI$U0>B{^fF>K<5n0_b*pH!E+R9SlVrr0>oG{s_>dFG~*m>>I`~XXdHgq zz5*cxKq=KDUV^k2quMPP}UVP`YuPJic@qK_rO`sM%ZfBK!K)^57)6|V^ZS`KHqg6((w1iEsK`~Z)Q0s%Ht zZqtcJat~h#u>1sq6nl9P3pRgG5DxQ?Or&Vx-CDsQ5CN*|fI;F?U>_n2Qx}5shZ$`T zjN1maKtXVdjk)*n%xsW($)*qf5p_H0w;tLwuHn223kRi(R0dXw;|?ea8I7RaUs@u4 z^f+C)S;|$)c1GyiuSei`n92QD#o1b1EUoOf*IJttJfDoicr6ikLcIKVTr!q;tE1Di z|GlW__Ho;)kinEfb3H63UMijOgdRl6XiU-I2CJk6=av z;7_!K$w-#My9bPW)-BM2kt!<94kOu&X;yhvu^k}1vMe`Zh8jtOfd=_W$gNa5Qt*}u zAyXsXU^&zkb$&Y39Jq(6kL<%1KVkhbOTPHaHC0LuK$-N>42Xmc#$J4g(X>j?&H{OP z6UBUsEd z*xU&&tbx}t`LGVUSFed`Wt7oP6La9AZhfbPF*t##8P`#aPKXSP1t8bSyeR-kpLWX_=> z+esRQt5#WfAMB3($pWi~*GT=R>ow5}0xk9{AHFFb?*lK^4*U7S5kb`e!jV1cx(yuE zY7D?e0?0_vh|Oi@Jt^-bhHQq82*aBvq&VG}Cr5J4KJb3JcqJqJwU6PdDzoEbj$+{H z(9XmkCZtV@!NwOdthxRt#fnIF1)a(lO8{1WQjWF@akVS*qd191KBeA_Eu$&2sb|Jk z5fH2DxTter1Y=*c6gq~!8SEL~3a7SlTH~%2c^By+^1fYgiY*%~zZ*1mCr6D{z%eMJ zZk14*-2)uRopYKgMdFs1l%D>K-vuVzNq?Ha43imiN81Lz$KHSiqx1Bl0mh<1OB|dZ zyhgBKA}i^UJLqjBM}7rkMFXzqfj6nvMk9`j+0%P?em{;UbK7h_y%Ictck9b$c+2Mk zxKH$J1|1`pLZh#7j2DGYY_2pEoA00jFLh~k95HAKqW()++htaJcb+MI>C4kOvW(>y zenoJjBW1u2SxceFwB{&KRuG;34Y}b?Y#MPy*ciYbhGYGGn_t|3^-F*4r@s0a@W&<8 zPN?jhXE;~0E+wlif9yJr)*F|;HN=UoxbHzdfPy-0a~X9u;1FpDDVO(aYAXaTNZgVF zbU2-o@Rw87-tbz0ag05wcoAEG9(=>?3HJ=qdk+s1!f~cze4D%Bt74xpVUY#^tj~AP zL1dNE%Ylc}tmv% zg9mO2PC?K8wCq92y(^+n@)$$B70A-9F^(K=Sf`u|H~1b_@GOV`O5MhAaa^q%)T($w zIXWP^I*3aDn~BaopzKzE8x@HXgN+SxDCm}H z1bjpp6O}Tqtf2T+GB_(+{@9g=zZr0FZhzX;6V7%2{*Ja%NGl&iYJf&oYzEvi^;2}l zxGf-~b{vTb$Q^uCjx|bqq~E3qwU+dV)@Wiw@_e#9GleknPkfKFA1S%UbKL~DAdpPL zl$oeYu~cR~UX!Y`I~?972bt>%V6qRkGn5uk#Slc4O1wv}sHu`ub~8uc@kw?td~7ox z%Wjn25$SioEeK|`B19XlC9L>1!09C%4QBZR$wLLXaGr6FDUcAalP)X4L4xT_4T)> z64`=8M6Zfmwa&D~{2NP%xGxwbuz2WgSbh*RF0@Xufh{4^ygQnQxu}$49<^d=8%t+;G+<>c^n19>0w@ny}g+0ABGQLqoH;B*wo}axyR^mthzGbNGlIi)4a;)2?(}P3UCzsn*1L~+13#ZyDq`d zOte-;z}%C2s+j5>>$T$~iu&33E1P~F7!T;XdtTz^FlxDZqm_eRK94_ubpIJEg?EwI z3{S12IE7LiNaY^<)umb9U-Ba5_ZMH+bthF=HRx|`n3qV5#JlE%h)}i?3f-PBm}SmU zRSW~{`Ak@Ki}+#-gs5{Gf^ZhfZe|ngR9-$j^hYys*hLx=_5ZfksGvirB^L{S&S(SS zWCF;uSR%iNzn@^In-7L}ds%8Jx=MD9jvvP(lGgAyOfnEH<%nh5HQp-&P+H45KEb~j z{;CM$NSBKmK`4y>#DRXlMDNHYOHPa8YIp{5NWd4NCcp$4l519Fzg_7m@d7_tUl71y z5F-qHp19-&;5q;u04zY$zwk`YG93{Qh!;HuxhIkLH}C7FUR_#iDb`pUI{*6hdsWh(1|B2+`HTJC$%c`3B z9PM2&tY2llHpqmqji*@~Te=7YOdL|2nQ%?|kQ4dIAE=fp**>@z&C>_Kl;lL007%G@ z=?|qrTEx$215Z_;0NS~!OIl}Wq;-xqi~5md0Z0t9I>+|y&ZhCayE-_h4TW3$x!eN;1rA z2kJaT0qVk~t)ElvLZ?augxz$gNa9mY~PVL%;X-Cko#-r3zK5+j7FhDZr##CW7;PBVUxKc^EoK0BEf5%Q&2fI5@ zcO8l;_`g8GV+u0n$~oJAIBQcl(n-FyU6@aJE-J~vfLPIZLiQej-5jtuh-+J9y}x5( z+LC0|M9;&hm}$6Nud%f5o7)`Zg2B}QlF;zRW(q!ZWZmwvtw(9$|0gPKL z7yv=>I(&foD8rgM0A5wbN(AUYV2psLK>&VK>V%h`e^))8y6cI92MrJN{Um0vsLA&~ z+@kr`{WOncCTB)k)R9WZ=kXy|6K`q^jA6XZCICBC=kE)P|e3zVjJ@XUqzkGVy zPmqSDJFWZoDGvG8i|^-#_SJ-~N@dq%Sm+baXs|FgMqzdnDI@^Q__IUP5!PwI^Tg-< zK57l7i(PcZRtM92XKE^RC7MGZnKRrE$soI7Ee5G#+DXIbW62|32_1HSx#s-zqx`$9PGgslk#onmDB!*UpGVP;jy z@NH9F5%F&*rxjJ_xQf0c=I9k-P%go=H<#K{APB_m;On|l28+N9Z=DmAOkx5Vr}IK` z(d2Iqz^vHO7e-AZYXU%gz4X;MP^N`_kKJXqXLHTv9EF$z#S zWXCW|Xy{;~*X3!u5)}^w&Iqmy`qfeUy)a+Pc|$Msy>WVXF(XXdb(P$dLkXdp`r;Cz zwo`--i4BGw>`fSCTj6*z$Ps6KxjE%rWmW0$Q&X~`R;yW%wZBOFM#`U1s;~-=je+dT zR0ZLsTovgaglBgq^^AS_FS7A{toR&|B20xk^XFE$nK7V^;ctq11m;C$qrhH3giZ_U zI?`R2930I0X0Y-x<>ZAk76WIDNb&>XpP%E0AV9^yEO>oM; zL*J;;Dr?c%nwM~p2>8x|bSpZ|1ck2{gXPXk;5&1Y_r%&yoSG$Up?PJ5X+F+P*JO1$ zN=)oY(QB|sqaYAI!6e=-(FrPHH~_V)qQwiR$#87&lROO^7Qp>wJPTn6o;+s4>s*DbIVHPet!|_y1UH*t-X}4x^}N&*EZcT();6hy_!*}{CUiIVIs_#* z^5WaM)1AZrdwW>@OMmUpfBT#L^)FDUfr&&rU;&I&`;Z^*01bnFX8zF&D%l2wi?5#o zO|Z}$P){##bw$Wm!#6<&U%Y33J-)_)acQ(&xGadXVBtzb9RXyGC z&|>zRsP~P}kZPyuBZ_3duno>jOWIXGbuR(j0$n?P)^Wt^P7R-)@?Ks zB${Lj>FU!r&e2EEGX1oFY3z$~(H1V=7F&rr)h9FHQZgb4@if*=jA&A?9@-c2!@1@$l?GzxQ0Z zhXGxQ2@Y)dj+H`jHgT0GD=}Dk_EptK&&HP2hkPsyloxwrJbSuH>*C7Rq;rSZRfE3d z50a((HcLN)yT_<(9S$vunMGT+h2da3&#}Cp$UL`s*Bp{wo&0bN9R~>ywpr6SX6#ri zgkldMm5(i3EJufCO{pn+#flraYtTD;_3xaZRVaCf4$ljc!y{`a9Y|oz-%zh4#ul+` zyaU!1*g}<~taI0_J1|O_SQJsjMFSV?}fH~@b{$Jsykhq z-ogJw&>V6oB~JJ6uW#0T1)+3`C0?C**&I*C0pq}FF;b3V2gf!!VB@ecDF7oa%IIKX z4yY^c;Dk?GL7G`^Mux11ZxE2Ddr4Sgb zp{S1ypg_qnwKgX1C8F_TMYIm=9hMixEhFkv+3Yej}KeEm*+8;x}+TTarbCuh=7 z1mT{3QYe$aR}L>B?DluQw86Af{1H~t9A+H+&?hcv$UO}ZHI+82gWucq)`3jy)O6}k zO1h2XzVRLP-$7L)Hjd7bFcV`Oj?GDkaGc(c94#OaWdqrm5q$zNpD@m&ilSkbV9kwa zZt0}Mt(R)GtsuuFT+zd_hhx&Y#qb=^=s{!^ky-6`uc`wp{QF5j7d_Tqx-FgR;{+vJ zi^^A0BG0*aHA`!?I&Hsfv=lX+xW(EqHZp!Ea) zzWRs+*SF_9p41$0jJN>bwidz@hQA;%19h9Xs z6TebVPfp6Beaa3-3-TTSd(fk?TsM+?TcKt@{gWFXo3g;MQ;*>-fzf`dg7bsN9wqdZ z&N64xRJy;^s~r>*r6{U5IK7%+)1IHGeut}>hua&JM|-*=rGc44=`)qOqz4*eUGar+ zvTx3<`Z)O;^n_MKp0Tda3%!itg#>X|oL6)$K5#Jn%j)8+oX?&9@zKEp#$n$36 zcY>atdNke?y#4)sa<(%EjOizTMk>{JvPwtC~avG*7{fJHG+&zqn&jV zm$}|B#KW@P)EJ4&2O2O(cDFbNk*y}R{O@#dB14>vtB7-9tGc1y9{Fm^;kHQHoG`1{ z&!x`Gi}84$el`(QXfO$!3b*tP{3rQP6bO!ZSj=XkvJJ*AYeD`Gn1g6Kk}l?3X$t0Q zCbG~*1@!Ufy;Ja8q_2p=rARxl?tOm+B+=oa$)WQ_bR1 zZ@c5t3_XtqQp))H1zqdzJG%l*T0Z#RRZci#jJG zRR8`obLLzEm!*B~>;7~e5SiezmH@C$d4N|MebL_K;z*V*&82?SlXV0ON`D*tnFa-( zN{|Zv^&p@En88bG!SosYn%u0w4ds|(qKDatDR?Rl#Y4q4a%y#yN$gQJ&ZT(q?bk)a zohO&J8A!Aw%;N}z(us8RPExRAJse$Q+H35=Rmx&WKJjB)nUzh!&e>}-y75Ml<}G4& zKSu&3Xc{a+cPIr8JTf?fHM+G+=){f$3b(a^=gv+>fTL1Z&TjvsDK_PYj7D?>p47Ok z$yW>-%kUth?s@+Kp4*IhrVa)310 z$M}A0H#^Wr>~QiFjuOzPJ-0C^uO*#B*f=8b#G;?LE)hR&-)x$NvB?kp%^U&h-bfyS z`+dlTjMlz3;WTAi9ilY8K6wAqdsrLc3HPEx)>A2Nd^?}VI#d+zCw=vPy)fen=D8Do zTk2J;EAXxzxadi$KhVH`JNkzgd_`xY-~wb3w-KYaS9#EkkeFq2TBRscI>?) zTEb6dHU?TPZ_4yIo{S$LG-@hu=8-1joG3OtKgzwbB4G@QSt*o=6Di-4q-0tWqEeJ)w_O_NmSw*Uij+3=PFp=>DOd z9Tl>p>N>I9+g1iXDRPS8Q*D7(g>)$1$B%Xc)$h=)rn zSYr&yQMY}(XFz@d z5!rg7g;#`eM~Rs^u;j3cA*N>vV5MV>VF>By0aKZT{IL_X-r8~9KL!|gQY3m-Qu;Bx z#>X4OjGD5168G21YxdnVB=?Y6hMh1K0qCfw-|| zBFYRoAB9jmiE%9gS>)Ud3d+4lsYWXpA5sa^fPUKs-|%7tt7y#cSwjzRX#s9OO6=+m zhF;->@?2F98|~~H&!_=53bu2KbsOx${r1>hfHyNGlh;!71TvO9my0PpxP%v&vzY~Iz;HLfj?&YV^OV!AeLrq2 z$psqO0Gs(mk5tmnSpp}^YEtlfjWkhLrSrf_fE4$DyUW&>8P#OUR>6XWNWkj~4~|Jo zo)OrWL=*4(z|;0*d1$dAxDjXX6bc#AsPD6UYa`KmNN8;rU=i|Uo2lwEjS+N`_jhVB zf@dDHJ!?pIe|XcHt1SSoZn~_dB9MvJIkIraD?HU_*qq;^`QeRG?72p^r)@MV6^sgh3tisXH;%c()0=uLj4SNf@U}Mxb8keec_h=?Vl^` zU9sv`Ku0vhZ#YNU=WfdSlg5t5SM(J6M21S`(7~?__gHUFcxqr2kv+zs#$&Y=5?7%1Iq)Xog33CGg@T;&7L+5o=7Et-L%!qoNu&H|m^3l1A7Wp= zokjUM3bK(-7R&VON7a!BiH%#oiyg(M=89Y~L8K-k^Mc6ck)1)V`2Jm3zPCH;!fFR3 z0Ly*#1Kv=)V`tNdlF*!fe^YWtw0jAAuWEoqT*ko&-xIykMI!wu-Q_Z*DuvIJ#iJ2j zj7oramAZ8MKEys~3ZyWP%noQm&X)-Ql~Hj@Xi~~*z~@75v^m?+L;!91MKDiDqYUj# z^7-Nxi3;gJ_bew=c~`#Ren@~)p+oWT`!HUY?@~#C_Sh-Pda+K<+1JjY#K?6aaT~fM zsSjxjT5pUAlK0PRswO!%Nn$|N~_RAl!mBB<+W)xtwFJ#Ch1tAz) zm~Psxkix<-a>&SFXF9{c(24gRWDI;`FymGg(C4B;w8mmjr>9Zt{H(HBOcjm#k!egtHFOG+hrQzKp(=1f+p=ijTS0diemI=$%Eq~tu%^kdzKB6VHeKZM z9!I&6x8vqQA{r{#MKkJ3@}a#5yQSE9`q>Ge^~XhbnGCwX(QEw3Lb>iKVYhf~1^< zzC9+fQd`m@W^wOgy{9o4c=Y@>74_SMaVnQ(?{z-)hcq%wF!^rbf+IM7bj8~;qW7df zF#$%6I*!0u+WfpBIDMe)!GqvMZ@}hCYktkN2~?}iFbWwN0iXmd!?Lo@+v6U}3gLPr zQA3ZChfz^JI)9j|QK`$-WHnDHY}BN;$Twy66bY;>6Pgh=NU88|Y&dnc$@vyQ7?d^$ z>ugy|ye4$>__{wGoEU+^u*PF5*$<&Y9jU50ST1R7xr+>egX|Pa>yUBIC(5|i82uty z`q=vk7KLvg^kClW@}cm6PNG#6cLI;|%9|_hM)$H8{(3tR0ar3Z4tF6Fx!KX;55ic2 zRiT#LMTsTk>Py@8*Bv`!qHZId2Hjn_KBY>fea*@Db(#wkZjRN#e8EF}EJmLAq4Cg< zQK3=JV+ed>e3XrIz?D)fuN^eztN#7h2RC04t@Cb}L8~)|ZYA#7v%0gbwV>Wr|NFj8 z6ByKz?69elVNBrP)L$7LS>L?Bd2FL7I?mBTgT8ZYrBtDqmdprr0-vh#@TFebM0UJ4 z;cil*D5A75b-qVMdT<&8Q0T@BI7~;RT87$chZ0k8hb$C(BnLOqY7WE=^Uf~AF5CCvG7+fZ~>WZz(Widm}&JF?N6gX^-X-lM!| zKfExw%PGTwUBHegKAotSe1g-0w08DRY|zOQYz@qWw#iF#nOQKkG)e29X~#`{cX*`( zU0LnEBa1kLZg+^*VgZtpD%szss;Dw@*(TUyg8vtr_w*Kkk8A|KHX)4r?Ivb5>~|hM z_xAr6LG1ps+hiiG+rLzLYk(yrZN4vh&^3Td2gp3I`T(#Ds&IM{zgq0@sqh1cp$;?B zG;?%ndc1#YVm1v-;4(-eyL9uloxi8Cx*XV{i1f4D88$yfYpt(ClBgs}Va~v=#p5wM{rL6{CjuWuNHxt+8AXFLVlx_e} zTFDH{6RT_Fh>tRlp1ETcodh&DHU%NERHjXbsYm_!&b?;VeHn%_$Qu5w`5?cEO~eI~l+kzL7Bw`PrKy#6t&7qcCJQWdEsJj(v^hA8eDzCZGc`e#bo5{{-_S-u*ZBIqb{ z*zVA<MM%a1VV*=@-xu3<&)a`L$fhR0RX+kxU?pUwX<2dH{E`eSp^V8 zG<+YigdmXN%gQ*l_J?dObTAQb;0Z0cXvsKi&kH4OIltdtGIb_8gu(}pluZwxy?9Gi z_llpe2`wIY6miCML)i>@KOx0gtWvh}l`v8!EI7_5xPzYO-8oc(!=1xu-8y;;!8?z= ziqOsri?PCyuzZ4Wxzu2AnBXc$O`R)kQ^#JYO)*9ZaXX_rgxi(ReLFl11a|Fn5EHkT zgA0b6RVa{k_pP-o10VFIbceB`TP!s=U8xA*(1BJ0}HAoAo|ewAg0w*5o{tw4&#UDar$IqrG4~1 zaAPuC?BgE&Br33FGlj^`vz%;dY`kn(Y}_fEaW*aWg1wPl=py)3%_9r!2h5bBK!+;{ zbgT|pDlaK>&#sR0*zfP^c;v1E3~{0@A>5ic3~6J~poG?O5bx#_8#2&VD=&NnZe1`( z*@TmYT$vPTONwRCYvb)r-zz5z)RMwxrEY4e#6FaDrkNsO!bHiqETuglL^o-KZJ|Ci z`^2)_FfW)mK`j8E$jik90%eqw(ZjGq(`Da?5&?t;TY$R5AH#8{hy{?10lc1QhX~OShBleEW=E%lZXkxnDCn6(q5%L?wkPDanlR5U<=R^IZSL>yp> zGeJe&dhF$j!zpr;NRf1!n8uvq-5)9esw+`kR~#7KWeZ)AwHbt_+&?jJHLJBY|Lc1W z9K9}M6s7j>VLLW*VGJ-wN#FuHFnPrDe!MXdFj;AOX6Rr~uyYiozQzf|>ICst5NHR< zSE@+CjmA~Vn3)z7k%>{#VF_7WK;}RZ&^6;mO*VelqbZ&Vn;Q|c0^Qcil6#FbQ3}BV z8D`{mN%1(2JfmN%HUA`ByuXA0H%VHuqwA?x>t+ZAMj``$_&?5_7{mLRx|t!(proT5 z4+oUON)vY$k6e0nR(%4r3^Kw*QC{N=Z{*ce(#R4ty7Og??I~?m+L$tWmNXK|IsmO? z>=t?ntFePpf#EQqVncoPcNLB$#RM5L#7w`Zo}jn>2v%BB^0jz`gEFmijG*srvvh=s zL;=L81>os%HcMZZ5LIqU-G4g72zM2Dk&zx%Ky=cVTAr}!ph0ygJU&&_!lzq!3j$-3 zU0#KMVekmf1gRn283SLXr{W=oDaa&LNK@sEN1#`*Wvh0$$(icAXTChGgYA2z0)#zn zO+hg71xx1u@Hvz-TCi#F9~o_7YG5ye9(&4z*&7BvRR>LNy(FKWxH^2s< zk!sYa-$mb7)TRtEa5yoA7{oiFgAp3E5V$3S_x>%WYO@wVyFUX9F>QmtlvfAHg9JIc zom>3w&Tyt#U6JjR-10&d$Z}h3Xb{2kp^eC?jQ{gcwEdq6#tQw!i50{x%S-z{DVt+{ zzAmXL$M9rsY*IciKDo1g;=M}vRSD^3TP-(+?ya2lqZQ(g$0dxOuv6Yn89)_Md)Y`F zc?-vODQ?L|DjcqZECRqBIp>gmB@_Po{(_s{f@w>x|qE27OFY#RmtJGN!hE@8hDP zfJ{F7WtxB`ZB$%bg&{L|3{8^4i|CC3N2?{Q6OnDwi1V%rJ@n5KhzLcfhxZDj0B8)v zBgqNeMOr~{^yL6KDr@`6^N`GafwjOa(_4`_HR)|_EP3A#DJsZz4C42^mtG?x%x3Ui!6 z;G0&c=ro!^bZGg_gf2XyfJ6(*R5JT2W)=eor(MK{4 z+Cm=Gy#*xurjJ;^{+#Qf`abK9AvPa&`C?kQ%Vg0U@_Te!iR6F zxzaJo)&y$S;aqj3$>W2Bm|+m@-Vc~uU}PGAh(P~^Fa`Qx;Ycchvn~%+Q_Qmwe;9K? zf2z|MnakNDfUC{16eCoCiaNiT_l4ckBq${L-I+lSg-Zc%>Knc4Vb4b!#9b2|vTw~1 zjcZ~VjcW>z;Mns5V3=(jlugycJ+E;Yd016^QNWc1PW*)iuQ_aVJl2ezo&u+x9eD?w zoqV*ALuy@DpTrw z!B3AT{K#q1Ld#T{%07me;FX}~glx_fbuzv|E!ShjW9VsH($L4GfiH$B?ODa%)pKyIGL>D8CeWQ-7baH_)XPKq)PC7AvqRxh+p_X zdGo<7WAGjg=nl@M)ha z34omO{hhIL%GLH9=!mgu4&W0k^LK8e;=l`N=dqbR zt5M8VQITXnp}h&f-S*|l7u;K z>{hip2RH&*sCQljO*_tA@ytsC%;$8Xj;Q^n>fPtVZeu39!-yx}eL72KSuJtmq-(}t zuZti<7}uct!c*%Bxs3LAv#u==qrk9@j_yMjvjQQ$1;_|WBbv+jU11K809JoSFf&ZH z5<^6zET&}fNUw?}qw=Wk+YQ(Ed%8vaeo6(BWLM^Lg32B1=Dl!1GUPEgZ4^+)tW&@-N#G(!a!>&z)WS&j11 zaYS@u_l!k`gR5a|W@5p1Z|2Ln3$WI0k+tL}IPP{ZA~-8!YT98q)}$^}E|s^VOga#P z-5HQ4R`;nT@QENmIN~U@qmYk-XDnvY1lk!FlLf819QFXaNqh_UA>y927F=43ZQQ

C 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"ot;d(9(;9sXrkE`c`E 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

    0*$mpqfl!9{M5na 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 Rf7$>5002ovPDHLkV1lGFU+e$? literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/SGBeta.alticon/SGBeta@3x.png b/Telegram/Telegram-iOS/SGBeta.alticon/SGBeta@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c05b41922fe223499c290feee4ab60727a4a35 GIT binary patch literal 39304 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%0A5sD^1xc%<&*12RO$Ujd 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 M07*qoM6N<$f{lsHvj6}9 literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@2x.png b/Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9ece7f08aa26224e31b11e40dc92f092c8726809 GIT binary patch literal 9205 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 LNkvXXu0mjf%*nK? literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@3x.png b/Telegram/Telegram-iOS/SGBlack.alticon/SGBlack@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..532041e0c37dc735139d757b380f68ae8660039a GIT binary patch literal 12096 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 literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/SGDefault.alticon/SGDefault@2x.png b/Telegram/Telegram-iOS/SGDefault.alticon/SGDefault@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..02c8cbb05c659e6ac1eb2723b156f097e89be699 GIT binary patch literal 13594 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 QaR2}S07*qoM6N<$f*4;Dod5s; literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/SGGlass.alticon/SGGlass@3x.png b/Telegram/Telegram-iOS/SGGlass.alticon/SGGlass@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..43a38972b7f6885f8d48d9282f2d42ed83bab1c7 GIT binary patch literal 32044 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

    `G`R(sK^vVV325y|(7FFcF&#b>Zyd;#l~%bgIu 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 m{-b3D;{HGB*#BjGSvmP)Urzi;Op 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