diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index d12f22a469..478a802666 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -7081,3 +7081,7 @@ Sorry for the inconvenience."; "Conversation.InviteRequestAdminChannel" = "%1$@ is an admin of %2$@, a channel you requested to join."; "Conversation.InviteRequestInfo" = "You received this message because you requested to join %1$@ on %2$@."; "Conversation.InviteRequestInfoConfirm" = "I understand"; + +"AuthSessions.HeaderInfo" = "Link [Telegram Desktop](desktop) or [Telegram Web](web) by scanning a QR code."; +"AuthSessions.LinkDesktopDevice" = "Link Desktop Device"; +"AuthSessions.AddDevice.ScanInstallInfo" = "Go to [getdesktop.telegram.org](desktop) or [web.telegram.org](web) to get the QR code"; diff --git a/submodules/AuthTransferUI/BUILD b/submodules/AuthTransferUI/BUILD index dbadbfe3f1..59ad1f59bd 100644 --- a/submodules/AuthTransferUI/BUILD +++ b/submodules/AuthTransferUI/BUILD @@ -24,11 +24,12 @@ swift_library( "//submodules/SolidRoundedButtonNode:SolidRoundedButtonNode", "//submodules/OverlayStatusController:OverlayStatusController", "//submodules/AnimatedStickerNode:AnimatedStickerNode", - "//submodules/Markdown:Markdown", "//submodules/AnimationUI:AnimationUI", "//submodules/PresentationDataUtils:PresentationDataUtils", "//submodules/DeviceAccess:DeviceAccess", "//submodules/UndoUI:UndoUI", + "//submodules/TextFormat:TextFormat", + "//submodules/Markdown:Markdown", ], visibility = [ "//visibility:public", diff --git a/submodules/AuthTransferUI/Sources/AuthTransferScanScreen.swift b/submodules/AuthTransferUI/Sources/AuthTransferScanScreen.swift index 4b3d87832f..6e5030aa00 100644 --- a/submodules/AuthTransferUI/Sources/AuthTransferScanScreen.swift +++ b/submodules/AuthTransferUI/Sources/AuthTransferScanScreen.swift @@ -11,6 +11,8 @@ import AlertUI import TelegramPresentationData import TelegramCore import UndoUI +import Markdown +import TextFormat private func parseAuthTransferUrl(_ url: URL) -> Data? { var tokenString: String? @@ -160,7 +162,7 @@ public final class AuthTransferScanScreen: ViewController { } override public func loadDisplayNode() { - self.displayNode = AuthTransferScanScreenNode(presentationData: self.presentationData) + self.displayNode = AuthTransferScanScreenNode(context: self.context, presentationData: self.presentationData) self.displayNodeDidLoad() @@ -210,6 +212,7 @@ public final class AuthTransferScanScreen: ViewController { } private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScrollViewDelegate { + private let context: AccountContext private var presentationData: PresentationData private let previewNode: CameraPreviewNode @@ -246,7 +249,10 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr } } - init(presentationData: PresentationData) { + private var highlightViews: [UIVisualEffectView] = [] + + init(context: AccountContext, presentationData: PresentationData) { + self.context = context self.presentationData = presentationData self.previewNode = CameraPreviewNode() @@ -287,11 +293,22 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr self.titleNode.maximumNumberOfLines = 0 self.titleNode.textAlignment = .center + let textFont = Font.regular(17.0) + let boldFont = Font.bold(17.0) + + var text = presentationData.strings.AuthSessions_AddDevice_ScanInstallInfo + text = text.replacingOccurrences(of: " [", with: " [").replacingOccurrences(of: "]() ", with: "]() ") + + let attributedText = NSMutableAttributedString(attributedString: parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: MarkdownAttributeSet(font: textFont, textColor: .white), bold: MarkdownAttributeSet(font: boldFont, textColor: .white), link: MarkdownAttributeSet(font: boldFont, textColor: .white), linkAttribute: { contents in + return (TelegramTextAttributes.URL, contents) + }))) + self.textNode = ImmediateTextNode() self.textNode.displaysAsynchronously = false - self.textNode.attributedText = NSAttributedString(string: presentationData.strings.AuthSessions_AddDevice_ScanInfo, font: Font.regular(16.0), textColor: .white) + self.textNode.attributedText = attributedText self.textNode.maximumNumberOfLines = 0 self.textNode.textAlignment = .center + self.textNode.lineSpacing = 0.5 self.errorTextNode = ImmediateTextNode() self.errorTextNode.displaysAsynchronously = false @@ -377,6 +394,39 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr strongSelf.updateFocusedRect(nil) } })) + + let recognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapGesture(_:))) + recognizer.tapActionAtPoint = { _ in + return .waitForSingleTap + } + self.textNode.view.addGestureRecognizer(recognizer) + } + + @objc private func tapLongTapOrDoubleTapGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) { + switch recognizer.state { + case .ended: + if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { + switch gesture { + case .tap: + if let (_, attributes) = self.textNode.attributesAtPoint(location) { + if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { + switch url { + case "desktop": + self.context.sharedContext.openExternalUrl(context: self.context, urlContext: .generic, url: "https://getdesktop.telegram.org", forceExternal: true, presentationData: self.context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {}) + case "web": + self.context.sharedContext.openExternalUrl(context: self.context, urlContext: .generic, url: "https://web.telegram.org", forceExternal: true, presentationData: self.context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {}) + default: + break + } + } + } + default: + break + } + } + default: + break + } } func updateFocusedRect(_ rect: CGRect?) { @@ -466,6 +516,19 @@ private final class AuthTransferScanScreenNode: ViewControllerTracingNode, UIScr transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame) transition.updateFrameAdditive(node: self.textNode, frame: textFrame) transition.updateFrameAdditive(node: self.errorTextNode, frame: errorTextFrame) + + if self.highlightViews.isEmpty { + let urlAttributesAndRects = self.textNode.cachedLayout?.allAttributeRects(name: "UrlAttributeT") ?? [] + + for (_, rect) in urlAttributesAndRects { + let view = UIVisualEffectView(effect: UIBlurEffect(style: .light)) + view.clipsToBounds = true + view.layer.cornerRadius = 5.0 + view.frame = rect.offsetBy(dx: self.textNode.frame.minX, dy: self.textNode.frame.minY).insetBy(dx: -4.0, dy: -2.0) + self.view.insertSubview(view, belowSubview: self.textNode.view) + self.highlightViews.append(view) + } + } } @objc private func torchPressed() { diff --git a/submodules/Display/Source/TextNode.swift b/submodules/Display/Source/TextNode.swift index a27360933f..f1071b2adc 100644 --- a/submodules/Display/Source/TextNode.swift +++ b/submodules/Display/Source/TextNode.swift @@ -564,8 +564,16 @@ public final class TextNodeLayout: NSObject { rightOffset = ceil(secondaryOffset) } } + var lineFrame = CGRect(origin: CGPoint(x: line.frame.origin.x, y: line.frame.origin.y - line.frame.size.height + self.firstLineOffset), size: line.frame.size) - lineFrame = displayLineFrame(frame: lineFrame, isRTL: line.isRTL, boundingRect: CGRect(origin: CGPoint(), size: self.size), cutout: self.cutout) + switch self.resolvedAlignment { + case .center: + lineFrame.origin.x = floor((self.size.width - lineFrame.size.width) / 2.0) + case .natural: + lineFrame = displayLineFrame(frame: lineFrame, isRTL: line.isRTL, boundingRect: CGRect(origin: CGPoint(), size: self.size), cutout: self.cutout) + default: + break + } let rect = CGRect(origin: CGPoint(x: lineFrame.minX + min(leftOffset, rightOffset) + self.insets.left, y: lineFrame.minY + self.insets.top), size: CGSize(width: abs(rightOffset - leftOffset), height: lineFrame.size.height)) if coveringRect.isEmpty { diff --git a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/ItemListRecentSessionItem.swift b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/ItemListRecentSessionItem.swift index 5ff4b11b2e..4e049c9ed0 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/ItemListRecentSessionItem.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/ItemListRecentSessionItem.swift @@ -110,7 +110,7 @@ final class ItemListRecentSessionItem: ListViewItem, ItemListItem { } } -func iconForSession(_ session: RecentAccountSession) -> (UIImage?, UIColor?, String?, [String: UIColor]?) { +func iconForSession(_ session: RecentAccountSession) -> (UIImage?, UIColor?, String?, [String]?) { let platform = session.platform.lowercased() let device = session.deviceModel.lowercased() let systemVersion = session.systemVersion.lowercased() @@ -118,7 +118,7 @@ func iconForSession(_ session: RecentAccountSession) -> (UIImage?, UIColor?, Str return (UIImage(bundleImageName: "Settings/Devices/Xbox"), UIColor(rgb: 0x35c759), nil, nil) } if device.contains("chrome") && !device.contains("chromebook") { - return (UIImage(bundleImageName: "Settings/Devices/Chrome"), UIColor(rgb: 0x35c759), "device_chrome", nil) + return (UIImage(bundleImageName: "Settings/Devices/Chrome"), UIColor(rgb: 0x35c759), "device_chrome", ["Vector 20.Vector 20.Обводка 1", "Ellipse 18.Ellipse 18.Обводка 1"]) } if device.contains("brave") { return (UIImage(bundleImageName: "Settings/Devices/Brave"), UIColor(rgb: 0xff9500), nil, nil) @@ -127,7 +127,7 @@ func iconForSession(_ session: RecentAccountSession) -> (UIImage?, UIColor?, Str return (UIImage(bundleImageName: "Settings/Devices/Vivaldi"), UIColor(rgb: 0xff3c30), nil, nil) } if device.contains("safari") { - return (UIImage(bundleImageName: "Settings/Devices/Safari"), UIColor(rgb: 0x0079ff), "device_safari", nil) + return (UIImage(bundleImageName: "Settings/Devices/Safari"), UIColor(rgb: 0x0079ff), "device_safari", ["Com 2.Com 2.Заливка 1"]) } if device.contains("firefox") { return (UIImage(bundleImageName: "Settings/Devices/Firefox"), UIColor(rgb: 0xff9500), "device_firefox", nil) @@ -139,7 +139,7 @@ func iconForSession(_ session: RecentAccountSession) -> (UIImage?, UIColor?, Str return (UIImage(bundleImageName: "Settings/Devices/Android"), UIColor(rgb: 0x35c759), "device_android", nil) } if device.contains("iphone") { - return (UIImage(bundleImageName: "Settings/Devices/iPhone"), UIColor(rgb: 0x0079ff), "device_iphone", nil) + return (UIImage(bundleImageName: "Settings/Devices/iPhone"), UIColor(rgb: 0x0079ff), "device_iphone", ["apple.apple.Заливка 1"]) } if device.contains("ipad") { return (UIImage(bundleImageName: "Settings/Devices/iPad"), UIColor(rgb: 0x0079ff), "device_ipad", nil) @@ -490,6 +490,7 @@ class ItemListRecentSessionItemNode: ItemListRevealOptionsItemNode { case .sameSection(false): bottomStripeInset = leftInset + editingOffset bottomStripeOffset = -separatorHeight + strongSelf.bottomStripeNode.isHidden = false default: bottomStripeInset = 0.0 bottomStripeOffset = 0.0 diff --git a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift index 0ef1623ae3..23a83f0e00 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsController.swift @@ -11,6 +11,7 @@ import PresentationDataUtils import AccountContext import AuthTransferUI import ItemListPeerActionItem +import DeviceAccess private final class RecentSessionsControllerArguments { let context: AccountContext @@ -315,8 +316,19 @@ private enum RecentSessionsEntry: ItemListNodeEntry { let arguments = arguments as! RecentSessionsControllerArguments switch self { case let .header(_, text): - return RecentSessionsHeaderItem(context: arguments.context, theme: presentationData.theme, text: text, animationName: "Requests", sectionId: self.section, linkAction: { _ in - arguments.openDesktopLink() + return RecentSessionsHeaderItem(context: arguments.context, theme: presentationData.theme, text: text, animationName: "Requests", sectionId: self.section, buttonAction: { + arguments.addDevice() + }, linkAction: { action in + if case let .tap(link) = action { + switch link { + case "desktop": + arguments.openDesktopLink() + case "web": + arguments.openWebLink() + default: + break + } + } }) case let .currentSessionHeader(_, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) @@ -453,44 +465,46 @@ private struct RecentSessionsControllerState: Equatable { private func recentSessionsControllerEntries(presentationData: PresentationData, state: RecentSessionsControllerState, sessionsState: ActiveSessionsContextState, enableQRLogin: Bool) -> [RecentSessionsEntry] { var entries: [RecentSessionsEntry] = [] + entries.append(.header(SortIndex(section: 0, item: 0), presentationData.strings.AuthSessions_HeaderInfo)) + if !sessionsState.sessions.isEmpty { var existingSessionIds = Set() - entries.append(.currentSessionHeader(SortIndex(section: 0, item: 0), presentationData.strings.AuthSessions_CurrentSession)) + entries.append(.currentSessionHeader(SortIndex(section: 1, item: 0), presentationData.strings.AuthSessions_CurrentSession)) if let index = sessionsState.sessions.firstIndex(where: { $0.hash == 0 }) { existingSessionIds.insert(sessionsState.sessions[index].hash) - entries.append(.currentSession(SortIndex(section: 0, item: 1), presentationData.strings, presentationData.dateTimeFormat, sessionsState.sessions[index])) + entries.append(.currentSession(SortIndex(section: 1, item: 1), presentationData.strings, presentationData.dateTimeFormat, sessionsState.sessions[index])) } var hasAddDevice = false if sessionsState.sessions.count > 1 || enableQRLogin { if sessionsState.sessions.count > 1 { - entries.append(.terminateOtherSessions(SortIndex(section: 0, item: 2), presentationData.strings.AuthSessions_TerminateOtherSessions)) - entries.append(.currentSessionInfo(SortIndex(section: 0, item: 3), presentationData.strings.AuthSessions_TerminateOtherSessionsHelp)) + entries.append(.terminateOtherSessions(SortIndex(section: 1, item: 2), presentationData.strings.AuthSessions_TerminateOtherSessions)) + entries.append(.currentSessionInfo(SortIndex(section: 1, item: 3), presentationData.strings.AuthSessions_TerminateOtherSessionsHelp)) } else if enableQRLogin { hasAddDevice = true - entries.append(.currentAddDevice(SortIndex(section: 0, item: 4), presentationData.strings.AuthSessions_AddDevice)) - entries.append(.currentSessionInfo(SortIndex(section: 0, item: 5), presentationData.strings.AuthSessions_OtherDevices)) +// entries.append(.currentAddDevice(SortIndex(section: 1, item: 4), presentationData.strings.AuthSessions_AddDevice)) + entries.append(.currentSessionInfo(SortIndex(section: 1, item: 5), presentationData.strings.AuthSessions_OtherDevices)) } let filteredPendingSessions: [RecentAccountSession] = sessionsState.sessions.filter({ $0.flags.contains(.passwordPending) }) if !filteredPendingSessions.isEmpty { - entries.append(.pendingSessionsHeader(SortIndex(section: 0, item: 6), presentationData.strings.AuthSessions_IncompleteAttempts)) + entries.append(.pendingSessionsHeader(SortIndex(section: 1, item: 6), presentationData.strings.AuthSessions_IncompleteAttempts)) for i in 0 ..< filteredPendingSessions.count { if !existingSessionIds.contains(filteredPendingSessions[i].hash) { existingSessionIds.insert(filteredPendingSessions[i].hash) - entries.append(.pendingSession(index: Int32(i), sortIndex: SortIndex(section: 1, item: i), strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, session: filteredPendingSessions[i], enabled: state.removingSessionId != filteredPendingSessions[i].hash && !state.terminatingOtherSessions, editing: state.editing, revealed: state.sessionIdWithRevealedOptions == filteredPendingSessions[i].hash)) + entries.append(.pendingSession(index: Int32(i), sortIndex: SortIndex(section: 2, item: i), strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, session: filteredPendingSessions[i], enabled: state.removingSessionId != filteredPendingSessions[i].hash && !state.terminatingOtherSessions, editing: state.editing, revealed: state.sessionIdWithRevealedOptions == filteredPendingSessions[i].hash)) } } - entries.append(.pendingSessionsInfo(SortIndex(section: 2, item: 0), presentationData.strings.AuthSessions_IncompleteAttemptsInfo)) + entries.append(.pendingSessionsInfo(SortIndex(section: 3, item: 0), presentationData.strings.AuthSessions_IncompleteAttemptsInfo)) } if sessionsState.sessions.count > 1 { - entries.append(.otherSessionsHeader(SortIndex(section: 3, item: 0), presentationData.strings.AuthSessions_OtherSessions)) + entries.append(.otherSessionsHeader(SortIndex(section: 4, item: 0), presentationData.strings.AuthSessions_OtherSessions)) } - if enableQRLogin && !hasAddDevice { - entries.append(.addDevice(SortIndex(section: 3, item: 1), presentationData.strings.AuthSessions_AddDevice)) - } +// if enableQRLogin && !hasAddDevice { +// entries.append(.addDevice(SortIndex(section: 4, item: 1), presentationData.strings.AuthSessions_AddDevice)) +// } let filteredSessions: [RecentAccountSession] = sessionsState.sessions.sorted(by: { lhs, rhs in return lhs.activityDate > rhs.activityDate @@ -499,17 +513,17 @@ private func recentSessionsControllerEntries(presentationData: PresentationData, for i in 0 ..< filteredSessions.count { if !existingSessionIds.contains(filteredSessions[i].hash) { existingSessionIds.insert(filteredSessions[i].hash) - entries.append(.session(index: Int32(i), sortIndex: SortIndex(section: 4, item: i), strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, session: filteredSessions[i], enabled: state.removingSessionId != filteredSessions[i].hash && !state.terminatingOtherSessions, editing: state.editing, revealed: state.sessionIdWithRevealedOptions == filteredSessions[i].hash)) + entries.append(.session(index: Int32(i), sortIndex: SortIndex(section: 5, item: i), strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, session: filteredSessions[i], enabled: state.removingSessionId != filteredSessions[i].hash && !state.terminatingOtherSessions, editing: state.editing, revealed: state.sessionIdWithRevealedOptions == filteredSessions[i].hash)) } } if enableQRLogin && !hasAddDevice { - entries.append(.devicesInfo(SortIndex(section: 5, item: 0), presentationData.strings.AuthSessions_OtherDevices)) + entries.append(.devicesInfo(SortIndex(section: 6, item: 0), presentationData.strings.AuthSessions_OtherDevices)) } } - entries.append(.ttlHeader(SortIndex(section: 6, item: 0), presentationData.strings.AuthSessions_TerminateIfAwayTitle.uppercased())) - entries.append(.ttlTimeout(SortIndex(section: 6, item: 1), presentationData.strings.AuthSessions_TerminateIfAwayFor, timeIntervalString(strings: presentationData.strings, value: sessionsState.ttlDays * 24 * 60 * 60))) + entries.append(.ttlHeader(SortIndex(section: 7, item: 0), presentationData.strings.AuthSessions_TerminateIfAwayTitle.uppercased())) + entries.append(.ttlTimeout(SortIndex(section: 7, item: 1), presentationData.strings.AuthSessions_TerminateIfAwayFor, timeIntervalString(strings: presentationData.strings, value: sessionsState.ttlDays * 24 * 60 * 60))) } return entries @@ -730,7 +744,18 @@ public func recentSessionsController(context: AccountContext, activeSessionsCont ]) presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, addDevice: { - pushControllerImpl?(AuthDataTransferSplashScreen(context: context, activeSessionsContext: activeSessionsContext)) + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + DeviceAccess.authorizeAccess(to: .camera(.video), presentationData: presentationData, present: { c, a in + c.presentationArguments = a + context.sharedContext.mainWindow?.present(c, on: .root) + }, openSettings: { + context.sharedContext.applicationBindings.openSettings() + }, { granted in + guard granted else { + return + } + pushControllerImpl?(AuthTransferScanScreen(context: context, activeSessionsContext: activeSessionsContext)) + }) }, openOtherAppsUrl: { context.sharedContext.openExternalUrl(context: context, urlContext: .generic, url: "https://desktop.telegram.org", forceExternal: true, presentationData: context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {}) }, setupAuthorizationTTL: { @@ -760,9 +785,9 @@ public func recentSessionsController(context: AccountContext, activeSessionsCont ]) presentControllerImpl?(controller, nil) }, openDesktopLink: { - + context.sharedContext.openExternalUrl(context: context, urlContext: .generic, url: "https://getdesktop.telegram.org", forceExternal: true, presentationData: context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {}) }, openWebLink: { - + context.sharedContext.openExternalUrl(context: context, urlContext: .generic, url: "https://web.telegram.org", forceExternal: true, presentationData: context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {}) }) let previousMode = Atomic(value: .sessions) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsHeaderItem.swift b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsHeaderItem.swift index 045a5a828b..27d913d50b 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsHeaderItem.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsHeaderItem.swift @@ -11,6 +11,7 @@ import TelegramAnimatedStickerNode import AccountContext import Markdown import TextFormat +import SolidRoundedButtonNode class RecentSessionsHeaderItem: ListViewItem, ItemListItem { let context: AccountContext @@ -18,14 +19,16 @@ class RecentSessionsHeaderItem: ListViewItem, ItemListItem { let text: String let animationName: String let sectionId: ItemListSectionId + let buttonAction: () -> Void let linkAction: ((ItemListTextItemLinkAction) -> Void)? - init(context: AccountContext, theme: PresentationTheme, text: String, animationName: String, sectionId: ItemListSectionId, linkAction: ((ItemListTextItemLinkAction) -> Void)? = nil) { + init(context: AccountContext, theme: PresentationTheme, text: String, animationName: String, sectionId: ItemListSectionId, buttonAction: @escaping () -> Void, linkAction: ((ItemListTextItemLinkAction) -> Void)? = nil) { self.context = context self.theme = theme self.text = text self.animationName = animationName self.sectionId = sectionId + self.buttonAction = buttonAction self.linkAction = linkAction } @@ -71,21 +74,25 @@ private let titleFont = Font.regular(13.0) class RecentSessionsHeaderItemNode: ListViewItemNode { private let titleNode: TextNode private var animationNode: AnimatedStickerNode + private let buttonNode: SolidRoundedButtonNode private var item: RecentSessionsHeaderItem? init() { self.titleNode = TextNode() - self.titleNode.isUserInteractionEnabled = false + self.titleNode.isUserInteractionEnabled = true self.titleNode.contentMode = .left self.titleNode.contentsScale = UIScreen.main.scale self.animationNode = AnimatedStickerNode() + self.buttonNode = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(backgroundColor: .black, foregroundColor: .white), fontSize: 16.0, height: 50.0, cornerRadius: 11.0) + super.init(layerBacked: false, dynamicBounce: false) self.addSubnode(self.titleNode) self.addSubnode(self.animationNode) + self.addSubnode(self.buttonNode) } override public func didLoad() { @@ -95,23 +102,36 @@ class RecentSessionsHeaderItemNode: ListViewItemNode { recognizer.tapActionAtPoint = { _ in return .waitForSingleTap } - self.view.addGestureRecognizer(recognizer) + self.titleNode.view.addGestureRecognizer(recognizer) + + self.buttonNode.pressed = { [weak self] in + if let strongSelf = self, let item = strongSelf.item { + item.buttonAction() + } + } } func asyncLayout() -> (_ item: RecentSessionsHeaderItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { let makeTitleLayout = TextNode.asyncLayout(self.titleNode) + let currentItem = self.item return { item, params, neighbors in + var updatedTheme: PresentationTheme? + let leftInset: CGFloat = 32.0 + params.leftInset let topInset: CGFloat = 92.0 + if currentItem?.theme !== item.theme { + updatedTheme = item.theme + } + let attributedText = parseMarkdownIntoAttributedString(item.text, attributes: MarkdownAttributes(body: MarkdownAttributeSet(font: titleFont, textColor: item.theme.list.freeTextColor), bold: MarkdownAttributeSet(font: titleFont, textColor: item.theme.list.freeTextColor), link: MarkdownAttributeSet(font: titleFont, textColor: item.theme.list.itemAccentColor), linkAttribute: { contents in return (TelegramTextAttributes.URL, contents) })) let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: attributedText, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - params.rightInset - leftInset * 2.0, height: CGFloat.greatestFiniteMagnitude), alignment: .center, cutout: nil, insets: UIEdgeInsets())) - let contentSize = CGSize(width: params.width, height: topInset + titleLayout.size.height) + let contentSize = CGSize(width: params.width, height: topInset + titleLayout.size.height + 85.0) let insets = itemListNeighborsGroupedInsets(neighbors, params) let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) @@ -123,6 +143,18 @@ class RecentSessionsHeaderItemNode: ListViewItemNode { strongSelf.animationNode.visibility = true } strongSelf.item = item + + strongSelf.buttonNode.title = item.context.sharedContext.currentPresentationData.with { $0 }.strings.AuthSessions_LinkDesktopDevice + if let _ = updatedTheme { + strongSelf.buttonNode.icon = generateTintedImage(image: UIImage(bundleImageName: "Settings/QrButtonIcon"), color: .white) + strongSelf.buttonNode.updateTheme(SolidRoundedButtonTheme(theme: item.theme)) + } + + let buttonWidth = contentSize.width - 32.0 + let buttonHeight = strongSelf.buttonNode.updateLayout(width: buttonWidth, transition: .immediate) + let buttonFrame = CGRect(x: 16.0, y: contentSize.height - buttonHeight - 12.0, width: buttonWidth, height: buttonHeight) + strongSelf.buttonNode.frame = buttonFrame + strongSelf.accessibilityLabel = attributedText.string let iconSize = CGSize(width: 96.0, height: 96.0) @@ -150,9 +182,8 @@ class RecentSessionsHeaderItemNode: ListViewItemNode { if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { switch gesture { case .tap: - let titleFrame = self.titleNode.frame - if let item = self.item, titleFrame.contains(location) { - if let (_, attributes) = self.titleNode.attributesAtPoint(CGPoint(x: location.x - titleFrame.minX, y: location.y - titleFrame.minY)) { + if let item = self.item { + if let (_, attributes) = self.titleNode.attributesAtPoint(location) { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { item.linkAction?(.tap(url)) } diff --git a/submodules/SettingsUI/Sources/Privacy and Security/RecentSessionScreen.swift b/submodules/SettingsUI/Sources/Privacy and Security/RecentSessionScreen.swift index 81e81bb37b..f85e6c9182 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/RecentSessionScreen.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/RecentSessionScreen.swift @@ -305,9 +305,15 @@ private class RecentSessionScreenNode: ViewControllerTracingNode, UIScrollViewDe location = session.country ip = session.ip - let (icon, backgroundColor, animationName, colors) = iconForSession(session) + let (icon, backgroundColor, animationName, colorsArray) = iconForSession(session) if let animationName = animationName { - let animationNode = AnimationNode(animation: animationName, colors: colors ?? ["apple.apple.Заливка 1": backgroundColor ?? .black], scale: 1.0) + var colors: [String: UIColor] = [:] + if let colorsArray = colorsArray { + for color in colorsArray { + colors[color] = backgroundColor + } + } + let animationNode = AnimationNode(animation: animationName, colors: colors, scale: 1.0) self.animationNode = animationNode animationNode.animationView()?.logHierarchyKeypaths() diff --git a/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/Contents.json new file mode 100644 index 0000000000..bbe43dd507 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "scanphoto_30.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/scanphoto_30.pdf b/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/scanphoto_30.pdf new file mode 100644 index 0000000000..47e302d038 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Media Gallery/LiveTextIcon.imageset/scanphoto_30.pdf @@ -0,0 +1,183 @@ +%PDF-1.7 + +1 0 obj + << >> +endobj + +2 0 obj + << /Length 3 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 5.335022 5.334961 cm +0.000000 0.000000 0.000000 scn +3.837526 19.330017 m +3.865001 19.330017 l +5.665000 19.330017 l +6.032270 19.330017 6.330000 19.032286 6.330000 18.665016 c +6.330000 18.297747 6.032270 18.000015 5.665000 18.000015 c +3.865001 18.000015 l +3.293975 18.000015 2.905700 17.999498 2.605557 17.974976 c +2.313177 17.951088 2.163464 17.907776 2.058923 17.854509 c +1.807727 17.726519 1.603498 17.522289 1.475507 17.271093 c +1.422241 17.166552 1.378929 17.016840 1.355040 16.724461 c +1.330518 16.424316 1.330001 16.036041 1.330001 15.465015 c +1.330001 13.665016 l +1.330001 13.297747 1.032270 13.000015 0.665001 13.000015 c +0.297731 13.000015 0.000001 13.297747 0.000001 13.665016 c +0.000001 15.465015 l +0.000000 15.492491 l +-0.000008 16.029188 -0.000015 16.472036 0.029457 16.832764 c +0.060066 17.207392 0.125747 17.551617 0.290468 17.874901 c +0.545971 18.376352 0.953664 18.784046 1.455116 19.039549 c +1.778399 19.204269 2.122624 19.269951 2.497252 19.300558 c +2.857971 19.330030 3.300807 19.330025 3.837486 19.330017 c +3.837526 19.330017 l +h +15.465000 18.000015 m +16.036026 18.000015 16.424301 17.999498 16.724443 17.974976 c +17.016825 17.951088 17.166536 17.907776 17.271078 17.854509 c +17.522274 17.726519 17.726503 17.522289 17.854494 17.271093 c +17.907759 17.166552 17.951071 17.016840 17.974960 16.724461 c +17.999483 16.424316 18.000000 16.036041 18.000000 15.465015 c +18.000000 13.665016 l +18.000000 13.297747 18.297731 13.000015 18.664999 13.000015 c +19.032270 13.000015 19.330000 13.297747 19.330000 13.665016 c +19.330000 15.465015 l +19.330000 15.492499 l +19.330000 15.492572 l +19.330008 16.029232 19.330013 16.472054 19.300543 16.832764 c +19.269934 17.207392 19.204252 17.551617 19.039532 17.874901 c +18.784029 18.376352 18.376337 18.784046 17.874884 19.039549 c +17.551601 19.204269 17.207376 19.269951 16.832748 19.300558 c +16.472031 19.330030 16.029194 19.330025 15.492514 19.330017 c +15.492474 19.330017 l +15.465000 19.330017 l +13.665000 19.330017 l +13.297730 19.330017 13.000000 19.032286 13.000000 18.665016 c +13.000000 18.297747 13.297730 18.000015 13.665000 18.000015 c +15.465000 18.000015 l +h +0.665001 6.330016 m +1.032270 6.330016 1.330001 6.032286 1.330001 5.665016 c +1.330001 3.865016 l +1.330001 3.293991 1.330518 2.905716 1.355040 2.605572 c +1.378929 2.313192 1.422241 2.163479 1.475507 2.058939 c +1.603498 1.807743 1.807727 1.603514 2.058923 1.475523 c +2.163464 1.422256 2.313177 1.378944 2.605557 1.355057 c +2.905700 1.330534 3.293975 1.330017 3.865001 1.330017 c +5.665000 1.330017 l +6.032270 1.330017 6.330000 1.032286 6.330000 0.665016 c +6.330000 0.297747 6.032270 0.000015 5.665000 0.000015 c +3.865001 0.000015 l +3.837517 0.000015 l +3.837445 0.000015 l +3.300784 0.000008 2.857962 0.000002 2.497252 0.029472 c +2.122624 0.060081 1.778399 0.125763 1.455116 0.290483 c +0.953664 0.545986 0.545971 0.953680 0.290468 1.455132 c +0.125747 1.778414 0.060066 2.122639 0.029457 2.497269 c +-0.000015 2.857996 -0.000008 3.300844 0.000000 3.837542 c +0.000001 3.865016 l +0.000001 5.665016 l +0.000001 6.032286 0.297731 6.330016 0.665001 6.330016 c +h +18.664999 6.330016 m +19.032270 6.330016 19.330000 6.032286 19.330000 5.665016 c +19.330000 3.865016 l +19.330000 3.837533 l +19.330000 3.837461 l +19.330008 3.300798 19.330013 2.857977 19.300543 2.497269 c +19.269934 2.122639 19.204252 1.778414 19.039532 1.455132 c +18.784029 0.953680 18.376337 0.545986 17.874884 0.290483 c +17.551601 0.125763 17.207376 0.060081 16.832748 0.029472 c +16.472040 0.000002 16.029215 0.000008 15.492555 0.000015 c +15.492483 0.000015 l +15.465000 0.000015 l +13.665000 0.000015 l +13.297730 0.000015 13.000000 0.297747 13.000000 0.665016 c +13.000000 1.032286 13.297730 1.330017 13.665000 1.330017 c +15.465000 1.330017 l +16.036026 1.330017 16.424301 1.330534 16.724443 1.355057 c +17.016825 1.378944 17.166536 1.422256 17.271078 1.475523 c +17.522274 1.603514 17.726503 1.807743 17.854494 2.058939 c +17.907759 2.163479 17.951071 2.313192 17.974960 2.605572 c +17.999483 2.905716 18.000000 3.293991 18.000000 3.865016 c +18.000000 5.665016 l +18.000000 6.032286 18.297731 6.330016 18.664999 6.330016 c +h +4.665000 14.330015 m +4.297731 14.330015 4.000000 14.032285 4.000000 13.665015 c +4.000000 13.297746 4.297731 13.000015 4.665000 13.000015 c +14.665001 13.000015 l +15.032270 13.000015 15.330000 13.297746 15.330000 13.665015 c +15.330000 14.032285 15.032270 14.330015 14.665001 14.330015 c +4.665000 14.330015 l +h +4.000000 9.665016 m +4.000000 10.032286 4.297731 10.330016 4.665000 10.330016 c +14.665001 10.330016 l +15.032270 10.330016 15.330000 10.032286 15.330000 9.665016 c +15.330000 9.297747 15.032270 9.000016 14.665001 9.000016 c +4.665000 9.000016 l +4.297731 9.000016 4.000000 9.297747 4.000000 9.665016 c +h +4.665000 6.330016 m +4.297731 6.330016 4.000000 6.032286 4.000000 5.665016 c +4.000000 5.297747 4.297731 5.000016 4.665000 5.000016 c +10.665001 5.000016 l +11.032270 5.000016 11.330000 5.297747 11.330000 5.665016 c +11.330000 6.032286 11.032270 6.330016 10.665001 6.330016 c +4.665000 6.330016 l +h +f* +n +Q + +endstream +endobj + +3 0 obj + 5057 +endobj + +4 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 30.000000 30.000000 ] + /Resources 1 0 R + /Contents 2 0 R + /Parent 5 0 R + >> +endobj + +5 0 obj + << /Kids [ 4 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +6 0 obj + << /Type /Catalog + /Pages 5 0 R + >> +endobj + +xref +0 7 +0000000000 65535 f +0000000010 00000 n +0000000034 00000 n +0000005147 00000 n +0000005170 00000 n +0000005343 00000 n +0000005417 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 6 0 R + /Size 7 +>> +startxref +5476 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Contents.json index 174772599e..7a7a3ccbbc 100644 --- a/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Icon-9.pdf", + "filename" : "devices_30.pdf", "idiom" : "universal" } ], diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Icon-9.pdf b/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Icon-9.pdf deleted file mode 100644 index 94a276bfd3..0000000000 --- a/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/Icon-9.pdf +++ /dev/null @@ -1,168 +0,0 @@ -%PDF-1.7 - -1 0 obj - << >> -endobj - -2 0 obj - << /Length 3 0 R >> -stream -/DeviceRGB CS -/DeviceRGB cs -q -1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm -1.000000 0.584314 0.000000 scn -0.000000 18.799999 m -0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c -1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c -5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c -18.799999 30.000000 l -22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c -27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c -30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c -30.000000 11.200001 l -30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c -28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c -24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c -11.200000 0.000000 l -7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c -2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c -0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c -0.000000 18.799999 l -h -f -n -Q -q -1.000000 0.000000 -0.000000 1.000000 4.913940 6.000000 cm -1.000000 1.000000 1.000000 scn -6.886106 17.665039 m -6.857284 17.665039 l -6.041643 17.665045 5.388978 17.665051 4.861559 17.621958 c -4.320179 17.577724 3.852469 17.484795 3.422230 17.265577 c -2.732616 16.914202 2.171942 16.353529 1.820566 15.663914 c -1.601349 15.233675 1.508419 14.765965 1.464186 14.224585 c -1.421094 13.697165 1.421099 13.044500 1.421105 12.228861 c -1.421105 12.200039 l -1.421105 8.200039 l -1.421105 8.172565 l -1.421096 7.635868 1.421089 7.193019 1.450562 6.832291 c -1.481171 6.457663 1.546852 6.113438 1.711573 5.790154 c -1.967075 5.288702 2.374769 4.881009 2.876221 4.625506 c -3.199503 4.460786 3.543729 4.395104 3.918357 4.364496 c -4.279082 4.335024 4.721926 4.335031 5.258616 4.335039 c -5.258646 4.335039 l -5.286105 4.335039 l -14.886106 4.335039 l -14.913565 4.335039 l -14.913593 4.335039 l -15.450286 4.335031 15.893129 4.335024 16.253853 4.364496 c -16.628483 4.395104 16.972706 4.460786 17.295990 4.625506 c -17.797443 4.881009 18.205135 5.288702 18.460638 5.790154 c -18.625359 6.113438 18.691040 6.457663 18.721649 6.832291 c -18.751122 7.193022 18.751116 7.635876 18.751106 8.172580 c -18.751106 8.200039 l -18.751106 12.200039 l -18.751106 12.228846 l -18.751106 12.228909 l -18.751112 13.044527 18.751116 13.697176 18.708025 14.224586 c -18.663792 14.765965 18.570862 15.233675 18.351645 15.663914 c -18.000267 16.353529 17.439594 16.914202 16.749981 17.265577 c -16.319742 17.484795 15.852033 17.577724 15.310652 17.621958 c -14.783233 17.665051 14.130567 17.665045 13.314927 17.665039 c -13.286105 17.665039 l -6.886106 17.665039 l -h -4.026037 16.080540 m -4.237534 16.188301 4.510732 16.258862 4.969863 16.296375 c -5.436759 16.334522 6.035054 16.335039 6.886106 16.335039 c -13.286105 16.335039 l -14.137157 16.335039 14.735452 16.334522 15.202347 16.296375 c -15.661479 16.258862 15.934677 16.188301 16.146173 16.080540 c -16.585531 15.856675 16.942741 15.499465 17.166607 15.060106 c -17.274368 14.848610 17.344929 14.575413 17.382442 14.116281 c -17.420589 13.649385 17.421104 13.051090 17.421104 12.200039 c -17.421104 8.200039 l -17.421104 7.629013 17.420589 7.240738 17.396065 6.940596 c -17.372177 6.648215 17.328865 6.498503 17.275600 6.393962 c -17.147608 6.142765 16.943378 5.938537 16.692183 5.810545 c -16.587643 5.757279 16.437929 5.713967 16.145550 5.690079 c -15.845406 5.665556 15.457130 5.665039 14.886106 5.665039 c -5.286105 5.665039 l -4.715079 5.665039 4.326805 5.665556 4.026661 5.690079 c -3.734282 5.713967 3.584569 5.757279 3.480028 5.810545 c -3.228832 5.938537 3.024603 6.142765 2.896612 6.393962 c -2.843346 6.498503 2.800034 6.648215 2.776145 6.940596 c -2.751623 7.240739 2.751105 7.629014 2.751105 8.200039 c -2.751105 12.200039 l -2.751105 13.051090 2.751623 13.649385 2.789769 14.116281 c -2.827282 14.575413 2.897842 14.848610 3.005605 15.060106 c -3.229469 15.499465 3.586679 15.856675 4.026037 16.080540 c -h -1.181526 2.574744 m -1.086058 2.499991 0.997261 2.411195 0.819668 2.233602 c -0.382109 1.796042 0.163330 1.577263 0.088082 1.409702 c --0.147629 0.884821 0.107125 0.269789 0.644945 0.065315 c -0.816637 0.000038 1.126038 0.000038 1.744839 0.000038 c -18.427372 0.000038 l -19.046173 0.000038 19.355574 0.000038 19.527266 0.065315 c -20.065086 0.269789 20.319839 0.884821 20.084129 1.409702 c -20.008881 1.577263 19.790102 1.796042 19.352543 2.233602 c -19.174950 2.411195 19.086153 2.499991 18.990685 2.574744 c -18.703798 2.799378 18.360996 2.941372 17.999296 2.985391 c -17.878931 3.000039 17.753353 3.000039 17.502199 3.000039 c -2.670012 3.000039 l -2.418857 3.000039 2.293280 3.000039 2.172915 2.985391 c -1.811215 2.941372 1.468413 2.799378 1.181526 2.574744 c -h -f* -n -Q - -endstream -endobj - -3 0 obj - 4601 -endobj - -4 0 obj - << /Annots [] - /Type /Page - /MediaBox [ 0.000000 0.000000 30.000000 30.000000 ] - /Resources 1 0 R - /Contents 2 0 R - /Parent 5 0 R - >> -endobj - -5 0 obj - << /Kids [ 4 0 R ] - /Count 1 - /Type /Pages - >> -endobj - -6 0 obj - << /Type /Catalog - /Pages 5 0 R - >> -endobj - -xref -0 7 -0000000000 65535 f -0000000010 00000 n -0000000034 00000 n -0000004691 00000 n -0000004714 00000 n -0000004887 00000 n -0000004961 00000 n -trailer -<< /ID [ (some) (id) ] - /Root 6 0 R - /Size 7 ->> -startxref -5020 -%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/devices_30.pdf b/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/devices_30.pdf new file mode 100644 index 0000000000..689e49edf8 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Settings/Menu/Sessions.imageset/devices_30.pdf @@ -0,0 +1,197 @@ +%PDF-1.7 + +1 0 obj + << >> +endobj + +2 0 obj + << /Length 3 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm +1.000000 0.584314 0.000000 scn +0.000000 18.799999 m +0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c +1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c +5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c +18.799999 30.000000 l +22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c +27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c +30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c +30.000000 11.200001 l +30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c +28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c +24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c +11.200000 0.000000 l +7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c +2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c +0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c +0.000000 18.799999 l +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.000000 6.000000 cm +1.000000 1.000000 1.000000 scn +16.161457 18.000000 m +16.200003 18.000000 l +18.800001 18.000000 l +18.838547 18.000000 l +18.838587 18.000000 l +19.100807 18.000008 19.345118 18.000015 19.570555 17.996254 c +19.613386 17.998739 19.656548 18.000000 19.700001 18.000000 c +20.000000 18.000000 l +20.000000 17.982378 l +20.067238 17.978825 20.132259 17.974556 20.195030 17.969427 c +20.590374 17.937126 20.983593 17.865810 21.361973 17.673018 c +21.926458 17.385397 22.385401 16.926455 22.673021 16.361969 c +22.865814 15.983589 22.937132 15.590370 22.969433 15.195025 c +23.000034 14.820482 23.000019 14.365762 23.000002 13.838665 c +23.000002 13.838642 l +23.000002 13.838520 l +23.000002 13.799997 l +23.000002 4.199997 l +23.000002 4.161474 l +23.000002 4.161351 l +23.000002 4.161328 l +23.000019 3.634233 23.000034 3.179511 22.969433 2.804969 c +22.937132 2.409624 22.865814 2.016405 22.673021 1.638027 c +22.385401 1.073540 21.926458 0.614599 21.361973 0.326979 c +20.983593 0.134184 20.590374 0.062868 20.195030 0.030567 c +19.820463 -0.000036 19.365707 -0.000021 18.838568 -0.000002 c +18.800001 -0.000002 l +16.200001 -0.000002 l +16.161434 -0.000002 l +15.634295 -0.000021 15.179541 -0.000036 14.804974 0.030567 c +14.409629 0.062868 14.016410 0.134184 13.638030 0.326979 c +13.073545 0.614599 12.614602 1.073540 12.326982 1.638027 c +12.134189 2.016405 12.062872 2.409624 12.030571 2.804969 c +11.999968 3.179541 11.999983 3.634304 12.000001 4.161453 c +12.000002 4.199997 l +12.000002 13.799997 l +12.000001 13.838541 l +11.999983 14.365690 11.999968 14.820454 12.030571 15.195025 c +12.062872 15.590370 12.134189 15.983589 12.326982 16.361969 c +12.614602 16.926455 13.073545 17.385397 13.638030 17.673018 c +14.016410 17.865810 14.409629 17.937126 14.804974 17.969427 c +14.867743 17.974556 14.932764 17.978825 15.000000 17.982378 c +15.000000 18.000000 l +15.300000 18.000000 l +15.343454 18.000000 15.386614 17.998739 15.429445 17.996254 c +15.654883 18.000015 15.899194 18.000008 16.161417 18.000000 c +16.161457 18.000000 l +h +15.347795 15.994253 m +15.202957 15.990751 15.078601 15.985120 14.967837 15.976070 c +14.696175 15.953875 14.595455 15.916197 14.546011 15.891004 c +14.357849 15.795131 14.204868 15.642150 14.108995 15.453988 c +14.083802 15.404544 14.046124 15.303825 14.023930 15.032162 c +14.000779 14.748824 14.000002 14.376551 14.000002 13.799997 c +14.000002 4.199997 l +14.000002 3.623444 14.000779 3.251170 14.023930 2.967833 c +14.046124 2.696170 14.083802 2.595450 14.108995 2.546006 c +14.204868 2.357844 14.357849 2.204864 14.546011 2.108991 c +14.595455 2.083797 14.696175 2.046120 14.967837 2.023924 c +15.251175 2.000774 15.623448 1.999998 16.200001 1.999998 c +18.800001 1.999998 l +19.376554 1.999998 19.748829 2.000774 20.032166 2.023924 c +20.303829 2.046120 20.404549 2.083797 20.453993 2.108991 c +20.642155 2.204864 20.795135 2.357844 20.891008 2.546006 c +20.916201 2.595450 20.953878 2.696170 20.976074 2.967833 c +20.999224 3.251170 21.000002 3.623444 21.000002 4.199997 c +21.000002 13.799997 l +21.000002 14.376551 20.999224 14.748824 20.976074 15.032162 c +20.953878 15.303825 20.916201 15.404544 20.891008 15.453988 c +20.795135 15.642150 20.642155 15.795131 20.453993 15.891004 c +20.404549 15.916197 20.303829 15.953875 20.032166 15.976070 c +19.921402 15.985120 19.797045 15.990751 19.652206 15.994253 c +19.564827 15.972827 19.500000 15.893984 19.500000 15.799999 c +19.500000 15.082029 18.917971 14.499999 18.200001 14.499999 c +16.799999 14.499999 l +16.082029 14.499999 15.500000 15.082029 15.500000 15.799999 c +15.500000 15.893984 15.435173 15.972827 15.347795 15.994253 c +h +11.002338 3.999994 m +4.000000 3.999994 l +4.000000 11.799995 l +4.000000 12.376549 4.000778 12.748822 4.023927 13.032160 c +4.046123 13.303823 4.083800 13.404542 4.108994 13.453985 c +4.204867 13.642148 4.357847 13.795128 4.546010 13.891002 c +4.595453 13.916195 4.696173 13.953873 4.967836 13.976068 c +5.251173 13.999218 5.623446 13.999995 6.200000 13.999995 c +11.002338 13.999995 l +11.009203 14.882974 11.036217 15.502047 11.142521 15.999995 c +6.200000 15.999995 l +6.161456 15.999998 l +6.161379 15.999998 l +6.161356 15.999998 l +5.634249 16.000013 5.179520 16.000027 4.804972 15.969426 c +4.409627 15.937125 4.016408 15.865808 3.638028 15.673015 c +3.073542 15.385395 2.614601 14.926454 2.326981 14.361967 c +2.134186 13.983587 2.062871 13.590368 2.030570 13.195024 c +1.999966 12.820452 1.999981 12.365690 1.999999 11.838545 c +1.999999 11.838540 l +2.000000 11.799995 l +2.000000 3.999996 l +0.500000 3.999996 l +0.223858 3.999996 0.000000 3.776138 0.000000 3.499996 c +0.000000 2.671569 0.671573 1.999998 1.500000 1.999998 c +2.000000 1.999996 l +3.000000 1.999996 l +11.142523 1.999996 l +11.036218 2.497943 11.009203 3.117016 11.002338 3.999994 c +h +f* +n +Q + +endstream +endobj + +3 0 obj + 5712 +endobj + +4 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 30.000000 30.000000 ] + /Resources 1 0 R + /Contents 2 0 R + /Parent 5 0 R + >> +endobj + +5 0 obj + << /Kids [ 4 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +6 0 obj + << /Pages 5 0 R + /Type /Catalog + >> +endobj + +xref +0 7 +0000000000 65535 f +0000000010 00000 n +0000000034 00000 n +0000005802 00000 n +0000005825 00000 n +0000005998 00000 n +0000006072 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 6 0 R + /Size 7 +>> +startxref +6131 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/Contents.json new file mode 100644 index 0000000000..b6043c8f31 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "qrbutton_24.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/qrbutton_24.pdf b/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/qrbutton_24.pdf new file mode 100644 index 0000000000..21f3ebb92c --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Settings/QrButtonIcon.imageset/qrbutton_24.pdf @@ -0,0 +1,2497 @@ +%PDF-1.7 + +1 0 obj + << >> +endobj + +2 0 obj + << /Length 3 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 3.334961 13.334961 cm +0.000000 0.000000 0.000000 scn +3.642206 7.330017 m +3.195634 7.330023 2.827103 7.330028 2.525421 7.309444 c +2.212649 7.288104 1.923455 7.242434 1.645149 7.127156 c +0.992149 6.856675 0.473343 6.337868 0.202861 5.684868 c +0.087583 5.406563 0.041913 5.117368 0.020573 4.804596 c +-0.000011 4.502914 -0.000006 4.134383 0.000000 3.687811 c +0.000000 3.642222 l +-0.000006 3.195651 -0.000011 2.827120 0.020573 2.525438 c +0.041913 2.212666 0.087583 1.923471 0.202861 1.645166 c +0.473343 0.992166 0.992149 0.473360 1.645149 0.202878 c +1.923455 0.087600 2.212649 0.041930 2.525421 0.020590 c +2.827105 0.000006 3.195638 0.000011 3.642213 0.000017 c +3.687788 0.000017 l +4.134362 0.000011 4.502895 0.000006 4.804579 0.020590 c +5.117351 0.041930 5.406546 0.087600 5.684851 0.202878 c +6.337851 0.473360 6.856658 0.992166 7.127139 1.645166 c +7.242417 1.923471 7.288087 2.212666 7.309427 2.525438 c +7.330011 2.827122 7.330006 3.195655 7.330000 3.642230 c +7.330000 3.687804 l +7.330006 4.134378 7.330011 4.502913 7.309427 4.804596 c +7.288087 5.117368 7.242417 5.406563 7.127139 5.684868 c +6.856658 6.337868 6.337851 6.856675 5.684851 7.127156 c +5.406546 7.242434 5.117351 7.288104 4.804579 7.309444 c +4.502897 7.330028 4.134366 7.330023 3.687795 7.330017 c +3.642206 7.330017 l +h +2.154118 5.898396 m +2.243354 5.935359 2.370901 5.965809 2.615956 5.982529 c +2.866984 5.999657 3.189960 6.000017 3.665000 6.000017 c +4.140040 6.000017 4.463016 5.999657 4.714044 5.982529 c +4.959099 5.965809 5.086646 5.935359 5.175882 5.898396 c +5.502995 5.762901 5.762885 5.503012 5.898379 5.175900 c +5.935342 5.086663 5.965792 4.959116 5.982512 4.714061 c +5.999640 4.463033 6.000000 4.140057 6.000000 3.665017 c +6.000000 3.189977 5.999640 2.867001 5.982512 2.615973 c +5.965792 2.370918 5.935342 2.243371 5.898379 2.154135 c +5.762885 1.827022 5.502995 1.567132 5.175882 1.431638 c +5.086646 1.394675 4.959099 1.364225 4.714044 1.347505 c +4.463016 1.330377 4.140040 1.330017 3.665000 1.330017 c +3.189960 1.330017 2.866984 1.330377 2.615956 1.347505 c +2.370901 1.364225 2.243354 1.394675 2.154118 1.431638 c +1.827005 1.567132 1.567116 1.827022 1.431621 2.154135 c +1.394658 2.243371 1.364208 2.370918 1.347488 2.615973 c +1.330360 2.867001 1.330000 3.189977 1.330000 3.665017 c +1.330000 4.140057 1.330360 4.463033 1.347488 4.714061 c +1.364208 4.959116 1.394658 5.086663 1.431621 5.175900 c +1.567116 5.503012 1.827005 5.762901 2.154118 5.898396 c +h +f* +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 13.334961 cm +0.000000 0.000000 0.000000 scn +13.642205 7.330017 m +13.195634 7.330023 12.827103 7.330028 12.525421 7.309444 c +12.212649 7.288104 11.923454 7.242434 11.645148 7.127156 c +10.992148 6.856675 10.473342 6.337868 10.202861 5.684868 c +10.087583 5.406563 10.041913 5.117368 10.020573 4.804596 c +9.999990 4.502929 9.999994 4.134418 10.000000 3.687876 c +10.000000 3.642222 l +9.999994 3.195680 9.999990 2.827105 10.020573 2.525438 c +10.041913 2.212666 10.087583 1.923471 10.202861 1.645166 c +10.473342 0.992166 10.992148 0.473360 11.645148 0.202878 c +11.923454 0.087600 12.212649 0.041930 12.525421 0.020590 c +12.827105 0.000006 13.195639 0.000011 13.642213 0.000017 c +13.687787 0.000017 l +14.134361 0.000011 14.502895 0.000006 14.804579 0.020590 c +15.117352 0.041930 15.406546 0.087600 15.684851 0.202878 c +16.337851 0.473360 16.856657 0.992166 17.127140 1.645166 c +17.242416 1.923471 17.288086 2.212666 17.309427 2.525438 c +17.330009 2.827107 17.330006 3.195619 17.330000 3.642164 c +17.330000 3.687804 l +17.330006 4.134349 17.330009 4.502927 17.309427 4.804596 c +17.288086 5.117368 17.242416 5.406563 17.127140 5.684868 c +16.856657 6.337868 16.337851 6.856675 15.684851 7.127156 c +15.406546 7.242434 15.117352 7.288104 14.804579 7.309444 c +14.502897 7.330028 14.134366 7.330023 13.687795 7.330017 c +13.642205 7.330017 l +h +12.154118 5.898396 m +12.243354 5.935359 12.370901 5.965809 12.615956 5.982529 c +12.866983 5.999657 13.189960 6.000017 13.665000 6.000017 c +14.140040 6.000017 14.463017 5.999657 14.714045 5.982529 c +14.959099 5.965809 15.086646 5.935359 15.175882 5.898396 c +15.502995 5.762901 15.762884 5.503012 15.898379 5.175900 c +15.935343 5.086663 15.965792 4.959116 15.982512 4.714061 c +15.999640 4.463033 16.000000 4.140057 16.000000 3.665017 c +16.000000 3.189977 15.999640 2.867001 15.982512 2.615973 c +15.965792 2.370918 15.935343 2.243371 15.898379 2.154135 c +15.762884 1.827022 15.502995 1.567132 15.175882 1.431638 c +15.086646 1.394675 14.959099 1.364225 14.714045 1.347505 c +14.463017 1.330377 14.140040 1.330017 13.665000 1.330017 c +13.189960 1.330017 12.866983 1.330377 12.615956 1.347505 c +12.370901 1.364225 12.243354 1.394675 12.154118 1.431638 c +11.827005 1.567132 11.567115 1.827022 11.431621 2.154135 c +11.394658 2.243371 11.364207 2.370918 11.347487 2.615973 c +11.330360 2.867001 11.330000 3.189977 11.330000 3.665017 c +11.330000 4.140057 11.330360 4.463033 11.347487 4.714061 c +11.364207 4.959116 11.394658 5.086663 11.431621 5.175900 c +11.567115 5.503012 11.827005 5.762901 12.154118 5.898396 c +h +f* +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 13.334961 cm +0.000000 0.000000 0.000000 scn +13.642205 -2.669983 m +13.687795 -2.669983 l +14.134336 -2.669977 14.502912 -2.669972 14.804579 -2.690556 c +15.117352 -2.711896 15.406546 -2.757565 15.684851 -2.872844 c +16.337851 -3.143325 16.856657 -3.662131 17.127140 -4.315131 c +17.242416 -4.593437 17.288086 -4.882632 17.309427 -5.195404 c +17.330009 -5.497073 17.330006 -5.865585 17.330000 -6.312130 c +17.330000 -6.357770 l +17.330006 -6.804315 17.330009 -7.172893 17.309427 -7.474562 c +17.288086 -7.787334 17.242416 -8.076529 17.127140 -8.354834 c +16.856657 -9.007833 16.337851 -9.526640 15.684851 -9.797123 c +15.406546 -9.912399 15.117352 -9.958069 14.804579 -9.979410 c +14.502910 -9.999992 14.134398 -9.999989 13.687853 -9.999983 c +13.642213 -9.999983 l +13.195668 -9.999989 12.827090 -9.999992 12.525421 -9.979410 c +12.212649 -9.958069 11.923454 -9.912399 11.645148 -9.797123 c +10.992148 -9.526640 10.473342 -9.007833 10.202861 -8.354834 c +10.087583 -8.076529 10.041913 -7.787334 10.020573 -7.474562 c +9.999990 -7.172894 9.999994 -6.804385 10.000000 -6.357843 c +10.000000 -6.312188 l +9.999994 -5.865646 9.999990 -5.497071 10.020573 -5.195404 c +10.041913 -4.882632 10.087583 -4.593437 10.202861 -4.315131 c +10.473342 -3.662131 10.992148 -3.143325 11.645148 -2.872844 c +11.923454 -2.757565 12.212649 -2.711896 12.525421 -2.690556 c +12.827088 -2.669972 13.195663 -2.669977 13.642205 -2.669983 c +h +12.615956 -4.017470 m +12.370901 -4.034190 12.243354 -4.064641 12.154118 -4.101604 c +11.827005 -4.237098 11.567115 -4.496988 11.431621 -4.824100 c +11.394658 -4.913337 11.364207 -5.040884 11.347487 -5.285939 c +11.330360 -5.536966 11.330000 -5.859942 11.330000 -6.334983 c +11.330000 -6.810023 11.330360 -7.132999 11.347487 -7.384027 c +11.364207 -7.629082 11.394658 -7.756629 11.431621 -7.845865 c +11.567115 -8.172977 11.827005 -8.432867 12.154118 -8.568362 c +12.243354 -8.605326 12.370901 -8.635775 12.615956 -8.652495 c +12.866983 -8.669622 13.189960 -8.669983 13.665000 -8.669983 c +14.140040 -8.669983 14.463017 -8.669622 14.714045 -8.652495 c +14.959099 -8.635775 15.086646 -8.605326 15.175882 -8.568362 c +15.502995 -8.432867 15.762884 -8.172977 15.898379 -7.845865 c +15.935343 -7.756629 15.965792 -7.629082 15.982512 -7.384027 c +15.999640 -7.132999 16.000000 -6.810023 16.000000 -6.334983 c +16.000000 -5.859942 15.999640 -5.536966 15.982512 -5.285939 c +15.965792 -5.040884 15.935343 -4.913337 15.898379 -4.824100 c +15.762884 -4.496988 15.502995 -4.237098 15.175882 -4.101604 c +15.086646 -4.064641 14.959099 -4.034190 14.714045 -4.017470 c +14.463017 -4.000343 14.140040 -3.999983 13.665000 -3.999983 c +13.189960 -3.999983 12.866983 -4.000343 12.615956 -4.017470 c +h +f* +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 18.664978 cm +0.000000 0.000000 0.000000 scn +2.719497 -10.938004 m +2.665000 -11.044961 2.665000 -11.184974 2.665000 -11.465000 c +2.665000 -11.865000 l +2.665000 -12.145026 2.665000 -12.285039 2.719497 -12.391995 c +2.767434 -12.486076 2.843924 -12.562567 2.938005 -12.610503 c +3.044961 -12.665000 3.184974 -12.665000 3.465000 -12.665000 c +3.865000 -12.665000 l +4.145026 -12.665000 4.285039 -12.665000 4.391995 -12.610503 c +4.486076 -12.562567 4.562567 -12.486076 4.610503 -12.391995 c +4.665000 -12.285039 4.665000 -12.145026 4.665000 -11.865000 c +4.665000 -11.465000 l +4.665000 -11.184974 4.665000 -11.044961 4.610503 -10.938004 c +4.562567 -10.843924 4.486076 -10.767433 4.391995 -10.719497 c +4.285039 -10.665000 4.145026 -10.665000 3.865000 -10.665000 c +3.465000 -10.665000 l +3.184974 -10.665000 3.044961 -10.665000 2.938005 -10.719497 c +2.843924 -10.767433 2.767434 -10.843924 2.719497 -10.938004 c +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 18.664978 cm +0.000000 0.000000 0.000000 scn +0.165000 -13.965000 m +0.165000 -13.684974 0.165000 -13.544961 0.219497 -13.438004 c +0.267434 -13.343924 0.343924 -13.267433 0.438005 -13.219497 c +0.544961 -13.165000 0.684974 -13.165000 0.965000 -13.165000 c +1.365000 -13.165000 l +1.645026 -13.165000 1.785040 -13.165000 1.891995 -13.219497 c +1.986076 -13.267433 2.062567 -13.343924 2.110503 -13.438004 c +2.165000 -13.544961 2.165000 -13.684974 2.165000 -13.965000 c +2.165000 -14.365000 l +2.165000 -14.645027 2.165000 -14.785040 2.110503 -14.891994 c +2.062567 -14.986076 1.986076 -15.062567 1.891995 -15.110504 c +1.785040 -15.165001 1.645026 -15.165001 1.365000 -15.165001 c +0.965000 -15.165001 l +0.684974 -15.165001 0.544961 -15.165001 0.438005 -15.110504 c +0.343924 -15.062567 0.267434 -14.986076 0.219497 -14.891994 c +0.165000 -14.785040 0.165000 -14.645027 0.165000 -14.365000 c +0.165000 -13.965000 l +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 18.664978 cm +0.000000 0.000000 0.000000 scn +0.219497 -8.438004 m +0.165000 -8.544961 0.165000 -8.684974 0.165000 -8.965000 c +0.165000 -9.365000 l +0.165000 -9.645026 0.165000 -9.785039 0.219497 -9.891995 c +0.267434 -9.986076 0.343924 -10.062567 0.438005 -10.110503 c +0.544961 -10.165000 0.684974 -10.165000 0.965000 -10.165000 c +1.365000 -10.165000 l +1.645026 -10.165000 1.785040 -10.165000 1.891995 -10.110503 c +1.986076 -10.062567 2.062567 -9.986076 2.110503 -9.891995 c +2.165000 -9.785039 2.165000 -9.645026 2.165000 -9.365000 c +2.165000 -8.965000 l +2.165000 -8.684974 2.165000 -8.544961 2.110503 -8.438004 c +2.062567 -8.343924 1.986076 -8.267433 1.891995 -8.219497 c +1.785040 -8.165000 1.645026 -8.165000 1.365000 -8.165000 c +0.965000 -8.165000 l +0.684974 -8.165000 0.544961 -8.165000 0.438005 -8.219497 c +0.343924 -8.267433 0.267434 -8.343924 0.219497 -8.438004 c +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 18.664978 cm +0.000000 0.000000 0.000000 scn +5.165000 -8.965000 m +5.165000 -8.684974 5.165000 -8.544961 5.219497 -8.438004 c +5.267433 -8.343924 5.343924 -8.267433 5.438004 -8.219497 c +5.544960 -8.165000 5.684974 -8.165000 5.965000 -8.165000 c +6.365000 -8.165000 l +6.645026 -8.165000 6.785039 -8.165000 6.891995 -8.219497 c +6.986076 -8.267433 7.062567 -8.343924 7.110503 -8.438004 c +7.165000 -8.544961 7.165000 -8.684974 7.165000 -8.965000 c +7.165000 -9.365000 l +7.165000 -9.645026 7.165000 -9.785039 7.110503 -9.891995 c +7.062567 -9.986076 6.986076 -10.062567 6.891995 -10.110503 c +6.785039 -10.165000 6.645026 -10.165000 6.365000 -10.165000 c +5.965000 -10.165000 l +5.684974 -10.165000 5.544960 -10.165000 5.438004 -10.110503 c +5.343924 -10.062567 5.267433 -9.986076 5.219497 -9.891995 c +5.165000 -9.785039 5.165000 -9.645026 5.165000 -9.365000 c +5.165000 -8.965000 l +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 18.664978 cm +0.000000 0.000000 0.000000 scn +5.219497 -13.438004 m +5.165000 -13.544961 5.165000 -13.684974 5.165000 -13.965000 c +5.165000 -14.365000 l +5.165000 -14.645027 5.165000 -14.785040 5.219497 -14.891994 c +5.267433 -14.986076 5.343924 -15.062567 5.438004 -15.110504 c +5.544960 -15.165001 5.684974 -15.165001 5.965000 -15.165001 c +6.365000 -15.165001 l +6.645026 -15.165001 6.785039 -15.165001 6.891995 -15.110504 c +6.986076 -15.062567 7.062567 -14.986076 7.110503 -14.891994 c +7.165000 -14.785040 7.165000 -14.645027 7.165000 -14.365000 c +7.165000 -13.965000 l +7.165000 -13.684974 7.165000 -13.544961 7.110503 -13.438004 c +7.062567 -13.343924 6.986076 -13.267433 6.891995 -13.219497 c +6.785039 -13.165000 6.645026 -13.165000 6.365000 -13.165000 c +5.965000 -13.165000 l +5.684974 -13.165000 5.544960 -13.165000 5.438004 -13.219497 c +5.343924 -13.267433 5.267433 -13.343924 5.219497 -13.438004 c +h +f +n +Q +q +1.000000 0.000000 -0.000000 1.000000 3.334961 3.004761 cm +0.000000 0.000000 0.000000 scn +3.642206 17.660217 m +3.642203 17.495216 l +3.642206 17.495216 l +3.642206 17.660217 l +h +2.525421 17.639645 m +2.514190 17.804262 l +2.514190 17.804262 l +2.525421 17.639645 l +h +1.645149 17.457355 m +1.708292 17.304916 l +1.708292 17.304916 l +1.645149 17.457355 l +h +0.202861 16.015068 m +0.355301 15.951925 l +0.355301 15.951925 l +0.202861 16.015068 l +h +0.020573 15.134796 m +-0.144045 15.146028 l +-0.144045 15.146028 l +0.020573 15.134796 l +h +0.000000 14.018011 m +0.165000 14.018011 l +0.165000 14.018014 l +0.000000 14.018011 l +h +0.000000 13.972423 m +0.165000 13.972420 l +0.165000 13.972423 l +0.000000 13.972423 l +h +0.020573 12.855639 m +-0.144045 12.844406 l +-0.144045 12.844406 l +0.020573 12.855639 l +h +0.202861 11.975367 m +0.355301 12.038509 l +0.355301 12.038509 l +0.202861 11.975367 l +h +1.645149 10.533078 m +1.582006 10.380638 l +1.582006 10.380638 l +1.645149 10.533078 l +h +2.525421 10.350790 m +2.514189 10.186172 l +2.514190 10.186172 l +2.525421 10.350790 l +h +3.642213 10.330217 m +3.642213 10.495217 l +3.642210 10.495217 l +3.642213 10.330217 l +h +3.687788 10.330217 m +3.687790 10.495217 l +3.687788 10.495217 l +3.687788 10.330217 l +h +4.804579 10.350790 m +4.815811 10.186172 l +4.815811 10.186172 l +4.804579 10.350790 l +h +5.684851 10.533078 m +5.747994 10.380638 l +5.747994 10.380638 l +5.684851 10.533078 l +h +7.127139 11.975367 m +7.279579 11.912224 l +7.279579 11.912224 l +7.127139 11.975367 l +h +7.309427 12.855639 m +7.474044 12.844406 l +7.474044 12.844406 l +7.309427 12.855639 l +h +7.330000 13.972429 m +7.165000 13.972429 l +7.165000 13.972427 l +7.330000 13.972429 l +h +7.330000 14.018004 m +7.165000 14.018007 l +7.165000 14.018004 l +7.330000 14.018004 l +h +7.309427 15.134796 m +7.474044 15.146028 l +7.474044 15.146028 l +7.309427 15.134796 l +h +7.127139 16.015068 m +7.279579 16.078211 l +7.279579 16.078211 l +7.127139 16.015068 l +h +5.684851 17.457355 m +5.621708 17.304916 l +5.621708 17.304916 l +5.684851 17.457355 l +h +4.804579 17.639645 m +4.815811 17.804262 l +4.815811 17.804262 l +4.804579 17.639645 l +h +3.687795 17.660217 m +3.687795 17.495216 l +3.687797 17.495216 l +3.687795 17.660217 l +h +2.615956 16.312729 m +2.627188 16.148111 l +2.627188 16.148111 l +2.615956 16.312729 l +h +2.154118 16.228596 m +2.217261 16.076157 l +2.154118 16.228596 l +h +4.714044 16.312729 m +4.702812 16.148111 l +4.702813 16.148111 l +4.714044 16.312729 l +h +5.175882 16.228596 m +5.112740 16.076157 l +5.112740 16.076157 l +5.175882 16.228596 l +h +5.898379 15.506100 m +6.050819 15.569242 l +6.050819 15.569242 l +5.898379 15.506100 l +h +5.982512 15.044261 m +6.147130 15.055492 l +6.147130 15.055493 l +5.982512 15.044261 l +h +5.982512 12.946173 m +6.147130 12.934941 l +6.147130 12.934941 l +5.982512 12.946173 l +h +5.898379 12.484335 m +5.745939 12.547478 l +5.745939 12.547478 l +5.898379 12.484335 l +h +5.175882 11.761838 m +5.112740 11.914278 l +5.112740 11.914278 l +5.175882 11.761838 l +h +4.714044 11.677705 m +4.725276 11.513088 l +4.725276 11.513088 l +4.714044 11.677705 l +h +2.615956 11.677705 m +2.604724 11.513088 l +2.604724 11.513088 l +2.615956 11.677705 l +h +2.154118 11.761838 m +2.090975 11.609398 l +2.090975 11.609398 l +2.154118 11.761838 l +h +1.431621 12.484335 m +1.584061 12.547478 l +1.584061 12.547478 l +1.431621 12.484335 l +h +1.347488 12.946173 m +1.512105 12.957405 l +1.512105 12.957405 l +1.347488 12.946173 l +h +1.347488 15.044261 m +1.512105 15.033030 l +1.512105 15.033030 l +1.347488 15.044261 l +h +1.431621 15.506100 m +1.584061 15.442957 l +1.431621 15.506100 l +h +13.642205 17.660217 m +13.642203 17.495216 l +13.642205 17.495216 l +13.642205 17.660217 l +h +12.525421 17.639645 m +12.514190 17.804262 l +12.514190 17.804262 l +12.525421 17.639645 l +h +11.645148 17.457355 m +11.582006 17.609797 l +11.582006 17.609797 l +11.645148 17.457355 l +h +10.202861 16.015068 m +10.355301 15.951925 l +10.355301 15.951925 l +10.202861 16.015068 l +h +10.020573 15.134796 m +10.185190 15.123564 l +10.185190 15.123564 l +10.020573 15.134796 l +h +10.000000 14.018077 m +10.165000 14.018077 l +10.165000 14.018079 l +10.000000 14.018077 l +h +10.000000 13.972423 m +10.165000 13.972421 l +10.165000 13.972423 l +10.000000 13.972423 l +h +10.020573 12.855639 m +10.185190 12.866871 l +10.185190 12.866871 l +10.020573 12.855639 l +h +10.202861 11.975367 m +10.355301 12.038509 l +10.355301 12.038509 l +10.202861 11.975367 l +h +11.645148 10.533078 m +11.582006 10.380638 l +11.582006 10.380638 l +11.645148 10.533078 l +h +12.525421 10.350790 m +12.514190 10.186172 l +12.514190 10.186172 l +12.525421 10.350790 l +h +13.642213 10.330217 m +13.642213 10.495217 l +13.642211 10.495217 l +13.642213 10.330217 l +h +13.687787 10.330217 m +13.687789 10.495217 l +13.687787 10.495217 l +13.687787 10.330217 l +h +14.804579 10.350790 m +14.815810 10.186172 l +14.815810 10.186172 l +14.804579 10.350790 l +h +15.684851 10.533078 m +15.747993 10.380638 l +15.747993 10.380638 l +15.684851 10.533078 l +h +17.127140 11.975367 m +17.279579 11.912223 l +17.279581 11.912224 l +17.127140 11.975367 l +h +17.309427 12.855639 m +17.474045 12.844406 l +17.474045 12.844407 l +17.309427 12.855639 l +h +17.330000 13.972364 m +17.164999 13.972364 l +17.164999 13.972363 l +17.330000 13.972364 l +h +17.330000 14.018004 m +17.164999 14.018006 l +17.164999 14.018004 l +17.330000 14.018004 l +h +17.309427 15.134796 m +17.474045 15.146028 l +17.474045 15.146029 l +17.309427 15.134796 l +h +17.127140 16.015068 m +17.279581 16.078211 l +17.279579 16.078211 l +17.127140 16.015068 l +h +15.684851 17.457355 m +15.621708 17.304916 l +15.621708 17.304916 l +15.684851 17.457355 l +h +14.804579 17.639645 m +14.793347 17.475027 l +14.793347 17.475027 l +14.804579 17.639645 l +h +13.687795 17.660217 m +13.687795 17.495216 l +13.687797 17.495216 l +13.687795 17.660217 l +h +12.615956 16.312729 m +12.627188 16.148111 l +12.627188 16.148111 l +12.615956 16.312729 l +h +12.154118 16.228596 m +12.217260 16.076157 l +12.217260 16.076157 l +12.154118 16.228596 l +h +14.714045 16.312729 m +14.702813 16.148111 l +14.702813 16.148111 l +14.714045 16.312729 l +h +15.175882 16.228596 m +15.112740 16.076157 l +15.112740 16.076157 l +15.175882 16.228596 l +h +15.898379 15.506100 m +15.745939 15.442957 l +15.745939 15.442956 l +15.898379 15.506100 l +h +15.982512 15.044261 m +16.147129 15.055492 l +16.147129 15.055493 l +15.982512 15.044261 l +h +15.982512 12.946173 m +16.147129 12.934940 l +16.147129 12.934942 l +15.982512 12.946173 l +h +15.898379 12.484335 m +15.745939 12.547479 l +15.745939 12.547478 l +15.898379 12.484335 l +h +15.175882 11.761838 m +15.112740 11.914278 l +15.112740 11.914278 l +15.175882 11.761838 l +h +14.714045 11.677705 m +14.725276 11.513088 l +14.725277 11.513088 l +14.714045 11.677705 l +h +12.615956 11.677705 m +12.604724 11.513088 l +12.604725 11.513088 l +12.615956 11.677705 l +h +12.154118 11.761838 m +12.217260 11.914278 l +12.217260 11.914278 l +12.154118 11.761838 l +h +11.431621 12.484335 m +11.279181 12.421192 l +11.279181 12.421192 l +11.431621 12.484335 l +h +11.347487 12.946173 m +11.182870 12.934942 l +11.182870 12.934942 l +11.347487 12.946173 l +h +11.347487 15.044261 m +11.182870 15.055492 l +11.182870 15.055492 l +11.347487 15.044261 l +h +11.431621 15.506100 m +11.279181 15.569242 l +11.279181 15.569242 l +11.431621 15.506100 l +h +13.642205 7.660217 m +13.642203 7.495217 l +13.642205 7.495217 l +13.642205 7.660217 l +h +13.687795 7.660217 m +13.687795 7.495217 l +13.687797 7.495217 l +13.687795 7.660217 l +h +14.804579 7.639645 m +14.793346 7.475027 l +14.793347 7.475027 l +14.804579 7.639645 l +h +15.684851 7.457356 m +15.621708 7.304916 l +15.621708 7.304916 l +15.684851 7.457356 l +h +17.127140 6.015069 m +17.279581 6.078211 l +17.279579 6.078212 l +17.127140 6.015069 l +h +17.309427 5.134796 m +17.474045 5.146028 l +17.474045 5.146029 l +17.309427 5.134796 l +h +17.330000 4.018070 m +17.164999 4.018072 l +17.164999 4.018070 l +17.330000 4.018070 l +h +17.330000 3.972430 m +17.164999 3.972430 l +17.164999 3.972428 l +17.330000 3.972430 l +h +17.309427 2.855639 m +17.474045 2.844406 l +17.474045 2.844407 l +17.309427 2.855639 l +h +17.127140 1.975367 m +17.279579 1.912224 l +17.279581 1.912225 l +17.127140 1.975367 l +h +15.684851 0.533077 m +15.747993 0.380636 l +15.747993 0.380638 l +15.684851 0.533077 l +h +14.804579 0.350790 m +14.815810 0.186172 l +14.815811 0.186172 l +14.804579 0.350790 l +h +13.687853 0.330217 m +13.687855 0.495218 l +13.687853 0.495218 l +13.687853 0.330217 l +h +13.642213 0.330217 m +13.642213 0.495218 l +13.642211 0.495218 l +13.642213 0.330217 l +h +12.525421 0.350790 m +12.514189 0.186172 l +12.514190 0.186172 l +12.525421 0.350790 l +h +11.645148 0.533077 m +11.582006 0.380638 l +11.582006 0.380636 l +11.645148 0.533077 l +h +10.202861 1.975367 m +10.355301 2.038509 l +10.355301 2.038509 l +10.202861 1.975367 l +h +10.020573 2.855639 m +10.185190 2.866870 l +10.185190 2.866871 l +10.020573 2.855639 l +h +10.000000 3.972357 m +10.165000 3.972355 l +10.165000 3.972357 l +10.000000 3.972357 l +h +10.000000 4.018012 m +10.165000 4.018012 l +10.165000 4.018014 l +10.000000 4.018012 l +h +10.020573 5.134796 m +10.185190 5.123564 l +10.185190 5.123565 l +10.020573 5.134796 l +h +10.202861 6.015069 m +10.355301 5.951926 l +10.355301 5.951926 l +10.202861 6.015069 l +h +11.645148 7.457356 m +11.708291 7.304916 l +11.708291 7.304916 l +11.645148 7.457356 l +h +12.525421 7.639645 m +12.536653 7.475027 l +12.536654 7.475027 l +12.525421 7.639645 l +h +12.154118 6.228597 m +12.090976 6.381037 l +12.090975 6.381037 l +12.154118 6.228597 l +h +12.615956 6.312730 m +12.604725 6.477347 l +12.604725 6.477347 l +12.615956 6.312730 l +h +11.431621 5.506100 m +11.279181 5.569242 l +11.279181 5.569242 l +11.431621 5.506100 l +h +11.347487 5.044261 m +11.182870 5.055492 l +11.182870 5.055492 l +11.347487 5.044261 l +h +11.347487 2.946173 m +11.182870 2.934941 l +11.182870 2.934941 l +11.347487 2.946173 l +h +11.431621 2.484335 m +11.279181 2.421193 l +11.279181 2.421192 l +11.431621 2.484335 l +h +12.154118 1.761838 m +12.217261 1.914278 l +12.217260 1.914278 l +12.154118 1.761838 l +h +12.615956 1.677705 m +12.604724 1.513088 l +12.604725 1.513088 l +12.615956 1.677705 l +h +14.714045 1.677705 m +14.725276 1.513088 l +14.725277 1.513088 l +14.714045 1.677705 l +h +15.175882 1.761838 m +15.112740 1.914278 l +15.112739 1.914278 l +15.175882 1.761838 l +h +15.898379 2.484335 m +15.745939 2.547479 l +15.745939 2.547478 l +15.898379 2.484335 l +h +15.982512 2.946173 m +16.147129 2.934940 l +16.147129 2.934941 l +15.982512 2.946173 l +h +15.982512 5.044261 m +16.147129 5.055492 l +16.147129 5.055493 l +15.982512 5.044261 l +h +15.898379 5.506100 m +15.745939 5.442957 l +15.745939 5.442956 l +15.898379 5.506100 l +h +15.175882 6.228597 m +15.239025 6.381037 l +15.239024 6.381037 l +15.175882 6.228597 l +h +14.714045 6.312730 m +14.725276 6.477347 l +14.725276 6.477347 l +14.714045 6.312730 l +h +2.719497 4.722213 m +2.572481 4.797121 l +2.572481 4.797121 l +2.719497 4.722213 l +h +2.719497 3.268222 m +2.572481 3.193314 l +2.572481 3.193314 l +2.719497 3.268222 l +h +2.938005 3.049714 m +3.012913 3.196730 l +3.012913 3.196731 l +2.938005 3.049714 l +h +4.391995 3.049714 m +4.317087 3.196731 l +4.317087 3.196731 l +4.391995 3.049714 l +h +4.610503 3.268222 m +4.757519 3.193314 l +4.757519 3.193314 l +4.610503 3.268222 l +h +4.610503 4.722213 m +4.757519 4.797121 l +4.757519 4.797121 l +4.610503 4.722213 l +h +4.391995 4.940721 m +4.317087 4.793704 l +4.317087 4.793704 l +4.391995 4.940721 l +h +2.938005 4.940721 m +3.012913 4.793704 l +3.012913 4.793705 l +2.938005 4.940721 l +h +0.219497 2.222213 m +0.072481 2.297121 l +0.072481 2.297121 l +0.219497 2.222213 l +h +0.438005 2.440721 m +0.512913 2.293704 l +0.512913 2.293704 l +0.438005 2.440721 l +h +1.891995 2.440721 m +1.817087 2.293704 l +1.817087 2.293704 l +1.891995 2.440721 l +h +2.110503 2.222213 m +2.257520 2.297121 l +2.257519 2.297121 l +2.110503 2.222213 l +h +2.110503 0.768223 m +1.963488 0.843132 l +1.963487 0.843130 l +2.110503 0.768223 l +h +1.891995 0.549713 m +1.966904 0.402697 l +1.966905 0.402697 l +1.891995 0.549713 l +h +0.438005 0.549713 m +0.363096 0.402697 l +0.363096 0.402697 l +0.438005 0.549713 l +h +0.219497 0.768223 m +0.366513 0.843130 l +0.366513 0.843132 l +0.219497 0.768223 l +h +0.219497 7.222213 m +0.072481 7.297121 l +0.072481 7.297121 l +0.219497 7.222213 l +h +0.219497 5.768222 m +0.072481 5.693314 l +0.072481 5.693314 l +0.219497 5.768222 l +h +0.438005 5.549714 m +0.512913 5.696731 l +0.512913 5.696731 l +0.438005 5.549714 l +h +1.891995 5.549714 m +1.817087 5.696731 l +1.817087 5.696731 l +1.891995 5.549714 l +h +2.110503 5.768222 m +2.257519 5.693314 l +2.257520 5.693314 l +2.110503 5.768222 l +h +2.110503 7.222213 m +2.257520 7.297121 l +2.257519 7.297121 l +2.110503 7.222213 l +h +1.891995 7.440721 m +1.817087 7.293704 l +1.817087 7.293704 l +1.891995 7.440721 l +h +0.438005 7.440721 m +0.512913 7.293704 l +0.512913 7.293704 l +0.438005 7.440721 l +h +5.219497 7.222213 m +5.072481 7.297121 l +5.072481 7.297121 l +5.219497 7.222213 l +h +5.438004 7.440721 m +5.512913 7.293704 l +5.512913 7.293704 l +5.438004 7.440721 l +h +6.891995 7.440721 m +6.817087 7.293704 l +6.817087 7.293704 l +6.891995 7.440721 l +h +7.110503 7.222213 m +7.257519 7.297121 l +7.257519 7.297121 l +7.110503 7.222213 l +h +7.110503 5.768222 m +7.257519 5.693314 l +7.257519 5.693314 l +7.110503 5.768222 l +h +6.891995 5.549714 m +6.817087 5.696731 l +6.817087 5.696731 l +6.891995 5.549714 l +h +5.438004 5.549714 m +5.512913 5.696731 l +5.512913 5.696731 l +5.438004 5.549714 l +h +5.219497 5.768222 m +5.072481 5.693314 l +5.072481 5.693314 l +5.219497 5.768222 l +h +5.219497 2.222213 m +5.072481 2.297121 l +5.072481 2.297121 l +5.219497 2.222213 l +h +5.219497 0.768223 m +5.366513 0.843130 l +5.366512 0.843132 l +5.219497 0.768223 l +h +5.438004 0.549713 m +5.363095 0.402697 l +5.363096 0.402697 l +5.438004 0.549713 l +h +6.891995 0.549713 m +6.966904 0.402697 l +6.966905 0.402697 l +6.891995 0.549713 l +h +7.110503 0.768223 m +6.963488 0.843132 l +6.963487 0.843130 l +7.110503 0.768223 l +h +7.110503 2.222213 m +7.257519 2.297121 l +7.257519 2.297121 l +7.110503 2.222213 l +h +6.891995 2.440721 m +6.817087 2.293704 l +6.817087 2.293704 l +6.891995 2.440721 l +h +5.438004 2.440721 m +5.512913 2.293704 l +5.512913 2.293704 l +5.438004 2.440721 l +h +2.536653 17.475027 m +2.831474 17.495142 3.193613 17.495224 3.642203 17.495216 c +3.642208 17.825216 l +3.197656 17.825224 2.822733 17.825314 2.514190 17.804262 c +2.536653 17.475027 l +h +1.708292 17.304916 m +1.963168 17.410488 2.232327 17.454264 2.536653 17.475027 c +2.514190 17.804262 l +2.192971 17.782345 1.883741 17.734779 1.582006 17.609797 c +1.708292 17.304916 l +h +0.355301 15.951925 m +0.609036 16.564495 1.095721 17.051182 1.708292 17.304916 c +1.582006 17.609797 l +0.888577 17.322569 0.337649 16.771641 0.050421 16.078211 c +0.355301 15.951925 l +h +0.185190 15.123564 m +0.205954 15.427890 0.249728 15.697050 0.355301 15.951925 c +0.050421 16.078211 l +-0.074562 15.776476 -0.122128 15.467246 -0.144045 15.146028 c +0.185190 15.123564 l +h +0.165000 14.018014 m +0.164994 14.466604 0.165075 14.828744 0.185190 15.123564 c +-0.144045 15.146028 l +-0.165096 14.837484 -0.165006 14.462562 -0.165000 14.018009 c +0.165000 14.018014 l +h +0.185190 12.866871 m +0.165075 13.161690 0.164994 13.523830 0.165000 13.972420 c +-0.165000 13.972425 l +-0.165006 13.527872 -0.165096 13.152950 -0.144045 12.844406 c +0.185190 12.866871 l +h +0.355301 12.038509 m +0.249728 12.293385 0.205954 12.562544 0.185190 12.866871 c +-0.144045 12.844406 l +-0.122128 12.523188 -0.074562 12.213959 0.050421 11.912224 c +0.355301 12.038509 l +h +1.708292 10.685518 m +1.095721 10.939253 0.609036 11.425939 0.355301 12.038509 c +0.050421 11.912224 l +0.337649 11.218794 0.888577 10.667866 1.582006 10.380638 c +1.708292 10.685518 l +h +2.536653 10.515408 m +2.232327 10.536171 1.963167 10.579946 1.708292 10.685518 c +1.582006 10.380638 l +1.883742 10.255655 2.192971 10.208090 2.514189 10.186172 c +2.536653 10.515408 l +h +3.642210 10.495217 m +3.193617 10.495211 2.831475 10.495292 2.536653 10.515408 c +2.514190 10.186172 l +2.822734 10.165121 3.197660 10.165211 3.642215 10.165217 c +3.642210 10.495217 l +h +4.793347 10.515408 m +4.498525 10.495292 4.136383 10.495211 3.687790 10.495217 c +3.687785 10.165217 l +4.132341 10.165211 4.507266 10.165121 4.815811 10.186172 c +4.793347 10.515408 l +h +5.621708 10.685518 m +5.366833 10.579946 5.097673 10.536171 4.793347 10.515408 c +4.815811 10.186172 l +5.137029 10.208090 5.446259 10.255655 5.747994 10.380638 c +5.621708 10.685518 l +h +6.974699 12.038509 m +6.720964 11.425939 6.234279 10.939253 5.621708 10.685518 c +5.747994 10.380638 l +6.441423 10.667866 6.992351 11.218794 7.279579 11.912224 c +6.974699 12.038509 l +h +7.144810 12.866871 m +7.124046 12.562544 7.080272 12.293385 6.974699 12.038509 c +7.279579 11.912224 l +7.404562 12.213959 7.452128 12.523188 7.474044 12.844406 c +7.144810 12.866871 l +h +7.165000 13.972427 m +7.165006 13.523834 7.164926 13.161692 7.144810 12.866871 c +7.474044 12.844406 l +7.495096 13.152952 7.495006 13.527876 7.495000 13.972432 c +7.165000 13.972427 l +h +7.144810 15.123564 m +7.164926 14.828742 7.165006 14.466600 7.165000 14.018007 c +7.495000 14.018002 l +7.495006 14.462558 7.495096 14.837483 7.474044 15.146028 c +7.144810 15.123564 l +h +6.974699 15.951925 m +7.080272 15.697050 7.124046 15.427890 7.144810 15.123564 c +7.474044 15.146028 l +7.452128 15.467246 7.404562 15.776476 7.279579 16.078211 c +6.974699 15.951925 l +h +5.621708 17.304916 m +6.234279 17.051182 6.720964 16.564495 6.974699 15.951925 c +7.279579 16.078211 l +6.992351 16.771641 6.441423 17.322569 5.747994 17.609797 c +5.621708 17.304916 l +h +4.793347 17.475027 m +5.097673 17.454264 5.366833 17.410488 5.621708 17.304916 c +5.747994 17.609797 l +5.446259 17.734779 5.137029 17.782345 4.815811 17.804262 c +4.793347 17.475027 l +h +3.687797 17.495216 m +4.136387 17.495224 4.498527 17.495142 4.793347 17.475027 c +4.815811 17.804262 l +4.507267 17.825314 4.132345 17.825224 3.687792 17.825216 c +3.687797 17.495216 l +h +2.604724 16.477346 m +2.351359 16.460060 2.203719 16.427736 2.090975 16.381037 c +2.217261 16.076157 l +2.282989 16.103382 2.390444 16.131960 2.627188 16.148111 c +2.604724 16.477346 l +h +3.665000 16.495216 m +3.192279 16.495216 2.862686 16.494947 2.604724 16.477346 c +2.627188 16.148111 l +2.871282 16.164766 3.187641 16.165216 3.665000 16.165216 c +3.665000 16.495216 l +h +4.725276 16.477346 m +4.467314 16.494947 4.137722 16.495216 3.665000 16.495216 c +3.665000 16.165216 l +4.142359 16.165216 4.458718 16.164766 4.702812 16.148111 c +4.725276 16.477346 l +h +5.239025 16.381037 m +5.126281 16.427736 4.978642 16.460060 4.725276 16.477346 c +4.702813 16.148111 l +4.939556 16.131960 5.047011 16.103382 5.112740 16.076157 c +5.239025 16.381037 l +h +6.050819 15.569242 m +5.898578 15.936785 5.606567 16.228796 5.239025 16.381037 c +5.112740 16.076157 l +5.399423 15.957408 5.627191 15.729639 5.745939 15.442957 c +6.050819 15.569242 l +h +6.147130 15.055493 m +6.129842 15.308859 6.097520 15.456497 6.050819 15.569242 c +5.745939 15.442957 l +5.773165 15.377228 5.801742 15.269773 5.817895 15.033030 c +6.147130 15.055493 l +h +6.165000 13.995217 m +6.165000 14.467938 6.164731 14.797531 6.147130 15.055492 c +5.817895 15.033030 l +5.834549 14.788935 5.835000 14.472576 5.835000 13.995217 c +6.165000 13.995217 l +h +6.147130 12.934941 m +6.164731 13.192904 6.165000 13.522495 6.165000 13.995217 c +5.835000 13.995217 l +5.835000 13.517858 5.834549 13.201500 5.817895 12.957405 c +6.147130 12.934941 l +h +6.050819 12.421192 m +6.097520 12.533937 6.129842 12.681576 6.147130 12.934941 c +5.817895 12.957405 l +5.801742 12.720661 5.773165 12.613206 5.745939 12.547478 c +6.050819 12.421192 l +h +5.239025 11.609398 m +5.606567 11.761639 5.898578 12.053650 6.050819 12.421192 c +5.745939 12.547478 l +5.627191 12.260795 5.399423 12.033026 5.112740 11.914278 c +5.239025 11.609398 l +h +4.725276 11.513088 m +4.978641 11.530375 5.126281 11.562697 5.239025 11.609398 c +5.112740 11.914278 l +5.047011 11.887053 4.939557 11.858475 4.702812 11.842321 c +4.725276 11.513088 l +h +3.665000 11.495217 m +4.137722 11.495217 4.467314 11.495487 4.725276 11.513088 c +4.702812 11.842321 l +4.458718 11.825668 4.142360 11.825217 3.665000 11.825217 c +3.665000 11.495217 l +h +2.604724 11.513088 m +2.862686 11.495487 3.192279 11.495217 3.665000 11.495217 c +3.665000 11.825217 l +3.187641 11.825217 2.871282 11.825668 2.627188 11.842321 c +2.604724 11.513088 l +h +2.090975 11.609398 m +2.203720 11.562697 2.351359 11.530375 2.604724 11.513088 c +2.627188 11.842321 l +2.390444 11.858475 2.282989 11.887053 2.217261 11.914278 c +2.090975 11.609398 l +h +1.279181 12.421192 m +1.431422 12.053650 1.723433 11.761639 2.090975 11.609398 c +2.217261 11.914278 l +1.930578 12.033026 1.702809 12.260795 1.584061 12.547478 c +1.279181 12.421192 l +h +1.182871 12.934942 m +1.200158 12.681576 1.232481 12.533936 1.279181 12.421192 c +1.584061 12.547478 l +1.556836 12.613207 1.528258 12.720661 1.512105 12.957405 c +1.182871 12.934942 l +h +1.165000 13.995217 m +1.165000 13.522495 1.165270 13.192904 1.182871 12.934941 c +1.512105 12.957405 l +1.495451 13.201500 1.495000 13.517859 1.495000 13.995217 c +1.165000 13.995217 l +h +1.182871 15.055492 m +1.165270 14.797531 1.165000 14.467938 1.165000 13.995217 c +1.495000 13.995217 l +1.495000 14.472576 1.495451 14.788935 1.512105 15.033030 c +1.182871 15.055492 l +h +1.279181 15.569242 m +1.232481 15.456498 1.200158 15.308859 1.182871 15.055492 c +1.512105 15.033030 l +1.528258 15.269773 1.556835 15.377228 1.584061 15.442957 c +1.279181 15.569242 l +h +2.090975 16.381037 m +1.723433 16.228796 1.431422 15.936785 1.279181 15.569242 c +1.584061 15.442957 l +1.702809 15.729639 1.930578 15.957408 2.217261 16.076157 c +2.090975 16.381037 l +h +12.536653 17.475027 m +12.831473 17.495142 13.193613 17.495224 13.642203 17.495216 c +13.642207 17.825216 l +13.197655 17.825224 12.822732 17.825314 12.514190 17.804262 c +12.536653 17.475027 l +h +11.708291 17.304916 m +11.963167 17.410488 12.232327 17.454264 12.536653 17.475027 c +12.514190 17.804262 l +12.192971 17.782345 11.883741 17.734779 11.582006 17.609797 c +11.708291 17.304916 l +h +10.355301 15.951925 m +10.609035 16.564495 11.095721 17.051182 11.708291 17.304916 c +11.582006 17.609797 l +10.888576 17.322569 10.337648 16.771641 10.050421 16.078211 c +10.355301 15.951925 l +h +10.185190 15.123564 m +10.205954 15.427891 10.249727 15.697050 10.355301 15.951925 c +10.050421 16.078211 l +9.925438 15.776476 9.877872 15.467246 9.855955 15.146028 c +10.185190 15.123564 l +h +10.165000 14.018079 m +10.164994 14.466640 10.165075 14.828758 10.185190 15.123564 c +9.855955 15.146029 l +9.834904 14.837500 9.834994 14.462597 9.835000 14.018074 c +10.165000 14.018079 l +h +10.185190 12.866871 m +10.165075 13.161676 10.164994 13.523858 10.165000 13.972421 c +9.835000 13.972425 l +9.834994 13.527902 9.834904 13.152935 9.855955 12.844406 c +10.185190 12.866871 l +h +10.355301 12.038509 m +10.249727 12.293385 10.205954 12.562544 10.185190 12.866871 c +9.855955 12.844406 l +9.877872 12.523188 9.925438 12.213959 10.050421 11.912224 c +10.355301 12.038509 l +h +11.708291 10.685518 m +11.095721 10.939253 10.609035 11.425939 10.355301 12.038509 c +10.050421 11.912224 l +10.337648 11.218794 10.888576 10.667866 11.582006 10.380638 c +11.708291 10.685518 l +h +12.536653 10.515408 m +12.232327 10.536171 11.963167 10.579946 11.708291 10.685518 c +11.582006 10.380638 l +11.883741 10.255655 12.192971 10.208090 12.514190 10.186172 c +12.536653 10.515408 l +h +13.642211 10.495217 m +13.193618 10.495211 12.831475 10.495292 12.536653 10.515408 c +12.514190 10.186172 l +12.822734 10.165121 13.197659 10.165211 13.642215 10.165217 c +13.642211 10.495217 l +h +14.793347 10.515408 m +14.498525 10.495292 14.136382 10.495211 13.687789 10.495217 c +13.687785 10.165217 l +14.132340 10.165211 14.507266 10.165121 14.815810 10.186172 c +14.793347 10.515408 l +h +15.621708 10.685518 m +15.366833 10.579946 15.097673 10.536171 14.793347 10.515408 c +14.815810 10.186172 l +15.137030 10.208090 15.446259 10.255655 15.747993 10.380638 c +15.621708 10.685518 l +h +16.974701 12.038509 m +16.720964 11.425939 16.234278 10.939253 15.621708 10.685518 c +15.747993 10.380638 l +16.441423 10.667866 16.992350 11.218794 17.279579 11.912223 c +16.974701 12.038509 l +h +17.144810 12.866871 m +17.124044 12.562544 17.080271 12.293385 16.974699 12.038507 c +17.279581 11.912224 l +17.404562 12.213959 17.452127 12.523188 17.474045 12.844406 c +17.144810 12.866871 l +h +17.164999 13.972363 m +17.165005 13.523798 17.164925 13.161678 17.144810 12.866870 c +17.474045 12.844407 l +17.495094 13.152937 17.495007 13.527840 17.495001 13.972366 c +17.164999 13.972363 l +h +17.144810 15.123565 m +17.164925 14.828756 17.165005 14.466571 17.164999 14.018006 c +17.495001 14.018003 l +17.495007 14.462528 17.495094 14.837498 17.474045 15.146028 c +17.144810 15.123565 l +h +16.974699 15.951926 m +17.080271 15.697050 17.124044 15.427890 17.144810 15.123564 c +17.474045 15.146029 l +17.452127 15.467246 17.404562 15.776475 17.279581 16.078211 c +16.974699 15.951926 l +h +15.621708 17.304916 m +16.234278 17.051182 16.720964 16.564495 16.974701 15.951925 c +17.279579 16.078211 l +16.992350 16.771641 16.441423 17.322569 15.747993 17.609797 c +15.621708 17.304916 l +h +14.793347 17.475027 m +15.097673 17.454264 15.366833 17.410488 15.621708 17.304916 c +15.747993 17.609797 l +15.446259 17.734779 15.137030 17.782345 14.815810 17.804262 c +14.793347 17.475027 l +h +13.687797 17.495216 m +14.136387 17.495224 14.498527 17.495142 14.793347 17.475027 c +14.815810 17.804262 l +14.507268 17.825314 14.132345 17.825224 13.687793 17.825216 c +13.687797 17.495216 l +h +12.604725 16.477346 m +12.351358 16.460060 12.203719 16.427736 12.090975 16.381037 c +12.217260 16.076157 l +12.282989 16.103382 12.390444 16.131960 12.627188 16.148111 c +12.604725 16.477346 l +h +13.665000 16.495216 m +13.192278 16.495216 12.862685 16.494947 12.604725 16.477346 c +12.627188 16.148111 l +12.871282 16.164766 13.187641 16.165216 13.665000 16.165216 c +13.665000 16.495216 l +h +14.725276 16.477346 m +14.467315 16.494947 14.137722 16.495216 13.665000 16.495216 c +13.665000 16.165216 l +14.142359 16.165216 14.458718 16.164766 14.702813 16.148111 c +14.725276 16.477346 l +h +15.239025 16.381037 m +15.126281 16.427736 14.978642 16.460060 14.725276 16.477346 c +14.702813 16.148111 l +14.939556 16.131960 15.047011 16.103382 15.112740 16.076157 c +15.239025 16.381037 l +h +16.050819 15.569242 m +15.898578 15.936785 15.606567 16.228796 15.239025 16.381037 c +15.112740 16.076157 l +15.399422 15.957408 15.627191 15.729639 15.745939 15.442957 c +16.050819 15.569242 l +h +16.147129 15.055493 m +16.129843 15.308857 16.097521 15.456497 16.050819 15.569242 c +15.745939 15.442956 l +15.773165 15.377228 15.801742 15.269774 15.817895 15.033029 c +16.147129 15.055493 l +h +16.165001 13.995217 m +16.165001 14.467938 16.164730 14.797531 16.147129 15.055492 c +15.817895 15.033030 l +15.834549 14.788935 15.835000 14.472576 15.835000 13.995217 c +16.165001 13.995217 l +h +16.147129 12.934942 m +16.164730 13.192904 16.165001 13.522495 16.165001 13.995217 c +15.835000 13.995217 l +15.835000 13.517859 15.834549 13.201500 15.817895 12.957405 c +16.147129 12.934942 l +h +16.050819 12.421191 m +16.097521 12.533937 16.129843 12.681578 16.147129 12.934940 c +15.817895 12.957405 l +15.801742 12.720659 15.773165 12.613206 15.745939 12.547479 c +16.050819 12.421191 l +h +15.239025 11.609398 m +15.606567 11.761639 15.898578 12.053650 16.050819 12.421192 c +15.745939 12.547478 l +15.627191 12.260795 15.399422 12.033026 15.112740 11.914278 c +15.239025 11.609398 l +h +14.725277 11.513088 m +14.978642 11.530375 15.126281 11.562697 15.239025 11.609398 c +15.112740 11.914278 l +15.047011 11.887053 14.939556 11.858475 14.702812 11.842321 c +14.725277 11.513088 l +h +13.665000 11.495217 m +14.137721 11.495217 14.467315 11.495487 14.725276 11.513088 c +14.702813 11.842321 l +14.458718 11.825668 14.142360 11.825217 13.665000 11.825217 c +13.665000 11.495217 l +h +12.604725 11.513088 m +12.862685 11.495487 13.192279 11.495217 13.665000 11.495217 c +13.665000 11.825217 l +13.187640 11.825217 12.871282 11.825668 12.627188 11.842321 c +12.604725 11.513088 l +h +12.090975 11.609398 m +12.203719 11.562697 12.351358 11.530375 12.604724 11.513088 c +12.627189 11.842321 l +12.390444 11.858475 12.282989 11.887053 12.217260 11.914278 c +12.090975 11.609398 l +h +11.279181 12.421192 m +11.431421 12.053650 11.723433 11.761639 12.090975 11.609398 c +12.217260 11.914278 l +11.930577 12.033026 11.702808 12.260795 11.584061 12.547478 c +11.279181 12.421192 l +h +11.182870 12.934942 m +11.200157 12.681576 11.232481 12.533936 11.279181 12.421192 c +11.584061 12.547478 l +11.556835 12.613207 11.528257 12.720661 11.512105 12.957405 c +11.182870 12.934942 l +h +11.165000 13.995217 m +11.165000 13.522495 11.165270 13.192904 11.182870 12.934942 c +11.512105 12.957405 l +11.495451 13.201500 11.495000 13.517859 11.495000 13.995217 c +11.165000 13.995217 l +h +11.182870 15.055492 m +11.165270 14.797531 11.165000 14.467938 11.165000 13.995217 c +11.495000 13.995217 l +11.495000 14.472576 11.495451 14.788935 11.512105 15.033030 c +11.182870 15.055492 l +h +11.279181 15.569242 m +11.232481 15.456498 11.200157 15.308859 11.182870 15.055492 c +11.512105 15.033030 l +11.528257 15.269773 11.556835 15.377228 11.584061 15.442957 c +11.279181 15.569242 l +h +12.090975 16.381037 m +11.723433 16.228796 11.431421 15.936785 11.279181 15.569242 c +11.584061 15.442957 l +11.702808 15.729639 11.930577 15.957408 12.217260 16.076157 c +12.090975 16.381037 l +h +14.815811 7.804262 m +14.507282 7.825314 14.132315 7.825223 13.687793 7.825217 c +13.687797 7.495217 l +14.136358 7.495223 14.498541 7.495142 14.793346 7.475027 c +14.815811 7.804262 l +h +15.747993 7.609797 m +15.446259 7.734779 15.137030 7.782345 14.815810 7.804262 c +14.793347 7.475027 l +15.097673 7.454264 15.366833 7.410490 15.621708 7.304916 c +15.747993 7.609797 l +h +17.279579 6.078212 m +16.992350 6.771642 16.441423 7.322569 15.747993 7.609797 c +15.621708 7.304916 l +16.234278 7.051182 16.720964 6.564496 16.974701 5.951926 c +17.279579 6.078212 l +h +17.474045 5.146029 m +17.452127 5.467246 17.404562 5.776476 17.279581 6.078211 c +16.974699 5.951927 l +17.080271 5.697050 17.124044 5.427890 17.144810 5.123564 c +17.474045 5.146029 l +h +17.495001 4.018068 m +17.495007 4.462594 17.495094 4.837498 17.474045 5.146028 c +17.144810 5.123565 l +17.164925 4.828756 17.165005 4.466636 17.164999 4.018072 c +17.495001 4.018068 l +h +17.474045 2.844407 m +17.495094 3.152937 17.495007 3.527906 17.495001 3.972432 c +17.164999 3.972428 l +17.165005 3.523865 17.164925 3.161678 17.144810 2.866870 c +17.474045 2.844407 l +h +17.279581 1.912225 m +17.404562 2.213959 17.452127 2.523188 17.474045 2.844406 c +17.144810 2.866871 l +17.124044 2.562544 17.080271 2.293385 16.974699 2.038508 c +17.279581 1.912225 l +h +15.747993 0.380638 m +16.441423 0.667868 16.992350 1.218794 17.279579 1.912224 c +16.974701 2.038509 l +16.720964 1.425940 16.234278 0.939253 15.621708 0.685516 c +15.747993 0.380638 l +h +14.815811 0.186172 m +15.137030 0.208090 15.446259 0.255655 15.747993 0.380636 c +15.621709 0.685518 l +15.366833 0.579947 15.097673 0.536173 14.793346 0.515408 c +14.815811 0.186172 l +h +13.687851 0.165216 m +14.132377 0.165211 14.507280 0.165123 14.815810 0.186172 c +14.793347 0.515408 l +14.498539 0.495293 14.136418 0.495213 13.687855 0.495218 c +13.687851 0.165216 l +h +12.514190 0.186172 m +12.822720 0.165123 13.197689 0.165211 13.642215 0.165216 c +13.642211 0.495218 l +13.193647 0.495213 12.831461 0.495293 12.536653 0.515408 c +12.514190 0.186172 l +h +11.582006 0.380636 m +11.883741 0.255655 12.192971 0.208090 12.514189 0.186172 c +12.536654 0.515408 l +12.232327 0.536173 11.963167 0.579947 11.708290 0.685518 c +11.582006 0.380636 l +h +10.050421 1.912224 m +10.337648 1.218794 10.888576 0.667868 11.582006 0.380638 c +11.708291 0.685516 l +11.095721 0.939253 10.609035 1.425940 10.355301 2.038509 c +10.050421 1.912224 l +h +9.855955 2.844407 m +9.877872 2.523188 9.925438 2.213959 10.050421 1.912224 c +10.355301 2.038509 l +10.249727 2.293385 10.205954 2.562544 10.185190 2.866870 c +9.855955 2.844407 l +h +9.835000 3.972359 m +9.834994 3.527836 9.834904 3.152935 9.855955 2.844406 c +10.185190 2.866871 l +10.165075 3.161676 10.164994 3.523794 10.165000 3.972355 c +9.835000 3.972359 l +h +9.855955 5.146029 m +9.834904 4.837500 9.834994 4.462532 9.835000 4.018010 c +10.165000 4.018014 l +10.164994 4.466576 10.165075 4.828758 10.185190 5.123564 c +9.855955 5.146029 l +h +10.050421 6.078212 m +9.925438 5.776476 9.877872 5.467246 9.855955 5.146028 c +10.185190 5.123565 l +10.205954 5.427890 10.249727 5.697050 10.355301 5.951926 c +10.050421 6.078212 l +h +11.582006 7.609797 m +10.888576 7.322569 10.337648 6.771642 10.050421 6.078212 c +10.355301 5.951926 l +10.609035 6.564496 11.095721 7.051182 11.708291 7.304916 c +11.582006 7.609797 l +h +12.514190 7.804262 m +12.192971 7.782345 11.883741 7.734779 11.582006 7.609797 c +11.708291 7.304916 l +11.963167 7.410490 12.232327 7.454264 12.536653 7.475027 c +12.514190 7.804262 l +h +13.642207 7.825217 m +13.197685 7.825223 12.822718 7.825314 12.514189 7.804262 c +12.536654 7.475027 l +12.831459 7.495142 13.193642 7.495223 13.642203 7.495217 c +13.642207 7.825217 l +h +12.217259 6.076157 m +12.282989 6.103382 12.390444 6.131960 12.627188 6.148112 c +12.604725 6.477347 l +12.351358 6.460060 12.203719 6.427736 12.090976 6.381037 c +12.217259 6.076157 l +h +11.584061 5.442957 m +11.702808 5.729639 11.930578 5.957409 12.217260 6.076157 c +12.090975 6.381037 l +11.723433 6.228796 11.431421 5.936785 11.279181 5.569242 c +11.584061 5.442957 l +h +11.512105 5.033030 m +11.528257 5.269773 11.556835 5.377229 11.584061 5.442958 c +11.279181 5.569242 l +11.232481 5.456498 11.200157 5.308859 11.182870 5.055492 c +11.512105 5.033030 l +h +11.495000 3.995217 m +11.495000 4.472576 11.495451 4.788936 11.512105 5.033030 c +11.182870 5.055492 l +11.165270 4.797532 11.165000 4.467939 11.165000 3.995217 c +11.495000 3.995217 l +h +11.512105 2.957404 m +11.495451 3.201499 11.495000 3.517859 11.495000 3.995217 c +11.165000 3.995217 l +11.165000 3.522495 11.165270 3.192903 11.182870 2.934941 c +11.512105 2.957404 l +h +11.584061 2.547477 m +11.556835 2.613206 11.528257 2.720661 11.512105 2.957404 c +11.182870 2.934941 l +11.200157 2.681576 11.232481 2.533937 11.279181 2.421193 c +11.584061 2.547477 l +h +12.217260 1.914278 m +11.930577 2.033027 11.702808 2.260796 11.584061 2.547478 c +11.279181 2.421192 l +11.431421 2.053650 11.723433 1.761640 12.090975 1.609398 c +12.217260 1.914278 l +h +12.627189 1.842322 m +12.390443 1.858476 12.282989 1.887053 12.217261 1.914278 c +12.090974 1.609398 l +12.203719 1.562696 12.351359 1.530375 12.604724 1.513088 c +12.627189 1.842322 l +h +13.665000 1.825217 m +13.187641 1.825217 12.871282 1.825668 12.627188 1.842322 c +12.604725 1.513088 l +12.862685 1.495487 13.192278 1.495216 13.665000 1.495216 c +13.665000 1.825217 l +h +14.702813 1.842322 m +14.458718 1.825668 14.142359 1.825217 13.665000 1.825217 c +13.665000 1.495216 l +14.137722 1.495216 14.467315 1.495487 14.725276 1.513088 c +14.702813 1.842322 l +h +15.112739 1.914278 m +15.047011 1.887053 14.939557 1.858476 14.702812 1.842322 c +14.725277 1.513088 l +14.978641 1.530375 15.126281 1.562696 15.239026 1.609398 c +15.112739 1.914278 l +h +15.745939 2.547478 m +15.627191 2.260796 15.399422 2.033027 15.112740 1.914278 c +15.239025 1.609398 l +15.606567 1.761640 15.898578 2.053650 16.050819 2.421192 c +15.745939 2.547478 l +h +15.817895 2.957405 m +15.801742 2.720660 15.773165 2.613206 15.745939 2.547479 c +16.050819 2.421191 l +16.097521 2.533937 16.129843 2.681577 16.147129 2.934940 c +15.817895 2.957405 l +h +15.835000 3.995217 m +15.835000 3.517859 15.834549 3.201499 15.817895 2.957404 c +16.147129 2.934941 l +16.164730 3.192903 16.165001 3.522495 16.165001 3.995217 c +15.835000 3.995217 l +h +15.817895 5.033030 m +15.834549 4.788936 15.835000 4.472576 15.835000 3.995217 c +16.165001 3.995217 l +16.165001 4.467939 16.164730 4.797532 16.147129 5.055492 c +15.817895 5.033030 l +h +15.745939 5.442956 m +15.773165 5.377229 15.801742 5.269774 15.817895 5.033029 c +16.147129 5.055493 l +16.129843 5.308858 16.097521 5.456498 16.050819 5.569243 c +15.745939 5.442956 l +h +15.112740 6.076157 m +15.399422 5.957409 15.627191 5.729640 15.745939 5.442957 c +16.050819 5.569242 l +15.898578 5.936784 15.606567 6.228796 15.239025 6.381037 c +15.112740 6.076157 l +h +14.702813 6.148112 m +14.939556 6.131960 15.047011 6.103382 15.112741 6.076157 c +15.239024 6.381037 l +15.126281 6.427736 14.978642 6.460060 14.725276 6.477347 c +14.702813 6.148112 l +h +13.665000 6.165217 m +14.142359 6.165217 14.458718 6.164766 14.702813 6.148112 c +14.725276 6.477347 l +14.467315 6.494947 14.137722 6.495217 13.665000 6.495217 c +13.665000 6.165217 l +h +12.627188 6.148112 m +12.871282 6.164766 13.187641 6.165217 13.665000 6.165217 c +13.665000 6.495217 l +13.192278 6.495217 12.862685 6.494947 12.604725 6.477347 c +12.627188 6.148112 l +h +2.830000 4.195217 m +2.830000 4.337953 2.830128 4.435081 2.836264 4.510180 c +2.842243 4.583352 2.853092 4.620963 2.866513 4.647305 c +2.572481 4.797121 l +2.531405 4.716506 2.515006 4.630632 2.507360 4.537052 c +2.499872 4.445399 2.500000 4.332508 2.500000 4.195217 c +2.830000 4.195217 l +h +2.830000 3.795218 m +2.830000 4.195217 l +2.500000 4.195217 l +2.500000 3.795218 l +2.830000 3.795218 l +h +2.866513 3.343130 m +2.853092 3.369472 2.842243 3.407083 2.836264 3.480255 c +2.830128 3.555353 2.830000 3.652482 2.830000 3.795218 c +2.500000 3.795218 l +2.500000 3.657927 2.499872 3.545035 2.507360 3.453382 c +2.515006 3.359802 2.531405 3.273929 2.572481 3.193314 c +2.866513 3.343130 l +h +3.012913 3.196731 m +2.949879 3.228848 2.898631 3.280096 2.866513 3.343130 c +2.572481 3.193314 l +2.636237 3.068186 2.737968 2.966454 2.863097 2.902698 c +3.012913 3.196731 l +h +3.465000 3.160217 m +3.322264 3.160217 3.225136 3.160346 3.150038 3.166481 c +3.076865 3.172460 3.039254 3.183309 3.012913 3.196730 c +2.863096 2.902699 l +2.943712 2.861623 3.029585 2.845223 3.123165 2.837578 c +3.214818 2.830089 3.327710 2.830217 3.465000 2.830217 c +3.465000 3.160217 l +h +3.865000 3.160217 m +3.465000 3.160217 l +3.465000 2.830217 l +3.865000 2.830217 l +3.865000 3.160217 l +h +4.317087 3.196731 m +4.290746 3.183309 4.253135 3.172460 4.179963 3.166481 c +4.104865 3.160346 4.007736 3.160217 3.865000 3.160217 c +3.865000 2.830217 l +4.002291 2.830217 4.115182 2.830089 4.206835 2.837578 c +4.300415 2.845223 4.386289 2.861623 4.466904 2.902698 c +4.317087 3.196731 l +h +4.463487 3.343130 m +4.431370 3.280096 4.380121 3.228848 4.317087 3.196731 c +4.466904 2.902698 l +4.592031 2.966454 4.693764 3.068186 4.757519 3.193314 c +4.463487 3.343130 l +h +4.500000 3.795218 m +4.500000 3.652482 4.499872 3.555353 4.493736 3.480255 c +4.487757 3.407083 4.476908 3.369472 4.463487 3.343130 c +4.757519 3.193314 l +4.798595 3.273929 4.814994 3.359802 4.822640 3.453382 c +4.830128 3.545035 4.830000 3.657927 4.830000 3.795218 c +4.500000 3.795218 l +h +4.500000 4.195217 m +4.500000 3.795218 l +4.830000 3.795218 l +4.830000 4.195217 l +4.500000 4.195217 l +h +4.463487 4.647305 m +4.476908 4.620963 4.487757 4.583352 4.493736 4.510180 c +4.499872 4.435081 4.500000 4.337953 4.500000 4.195217 c +4.830000 4.195217 l +4.830000 4.332508 4.830128 4.445399 4.822640 4.537052 c +4.814994 4.630632 4.798595 4.716506 4.757519 4.797121 c +4.463487 4.647305 l +h +4.317087 4.793704 m +4.380121 4.761587 4.431370 4.710339 4.463487 4.647305 c +4.757519 4.797121 l +4.693764 4.922249 4.592031 5.023981 4.466904 5.087737 c +4.317087 4.793704 l +h +3.865000 4.830217 m +4.007736 4.830217 4.104865 4.830089 4.179963 4.823954 c +4.253135 4.817975 4.290746 4.807126 4.317087 4.793704 c +4.466904 5.087737 l +4.386289 5.128812 4.300415 5.145211 4.206835 5.152857 c +4.115182 5.160346 4.002291 5.160217 3.865000 5.160217 c +3.865000 4.830217 l +h +3.465000 4.830217 m +3.865000 4.830217 l +3.865000 5.160217 l +3.465000 5.160217 l +3.465000 4.830217 l +h +3.012913 4.793705 m +3.039254 4.807126 3.076865 4.817975 3.150038 4.823954 c +3.225136 4.830089 3.322264 4.830217 3.465000 4.830217 c +3.465000 5.160217 l +3.327710 5.160217 3.214818 5.160346 3.123165 5.152857 c +3.029585 5.145211 2.943712 5.128812 2.863096 5.087736 c +3.012913 4.793705 l +h +2.866513 4.647305 m +2.898631 4.710339 2.949879 4.761587 3.012913 4.793704 c +2.863097 5.087737 l +2.737968 5.023981 2.636237 4.922249 2.572481 4.797121 c +2.866513 4.647305 l +h +0.072481 2.297121 m +0.031405 2.216506 0.015006 2.130632 0.007360 2.037052 c +-0.000128 1.945399 0.000000 1.832508 0.000000 1.695217 c +0.330000 1.695217 l +0.330000 1.837953 0.330128 1.935081 0.336264 2.010180 c +0.342243 2.083352 0.353092 2.120963 0.366513 2.147305 c +0.072481 2.297121 l +h +0.363097 2.587737 m +0.237969 2.523981 0.136237 2.422249 0.072481 2.297121 c +0.366513 2.147305 l +0.398631 2.210339 0.449879 2.261587 0.512913 2.293704 c +0.363097 2.587737 l +h +0.965000 2.660217 m +0.827710 2.660217 0.714818 2.660346 0.623165 2.652857 c +0.529585 2.645211 0.443712 2.628812 0.363096 2.587737 c +0.512913 2.293704 l +0.539254 2.307126 0.576865 2.317975 0.650037 2.323954 c +0.725136 2.330089 0.822264 2.330217 0.965000 2.330217 c +0.965000 2.660217 l +h +1.365000 2.660217 m +0.965000 2.660217 l +0.965000 2.330217 l +1.365000 2.330217 l +1.365000 2.660217 l +h +1.966904 2.587737 m +1.886289 2.628812 1.800415 2.645211 1.706836 2.652857 c +1.615182 2.660346 1.502291 2.660217 1.365000 2.660217 c +1.365000 2.330217 l +1.507736 2.330217 1.604864 2.330089 1.679963 2.323954 c +1.753135 2.317975 1.790746 2.307126 1.817087 2.293704 c +1.966904 2.587737 l +h +2.257519 2.297121 m +2.193764 2.422249 2.092032 2.523981 1.966904 2.587737 c +1.817087 2.293704 l +1.880121 2.261587 1.931370 2.210339 1.963487 2.147305 c +2.257519 2.297121 l +h +2.330000 1.695217 m +2.330000 1.832508 2.330128 1.945399 2.322640 2.037052 c +2.314994 2.130632 2.298595 2.216506 2.257520 2.297121 c +1.963487 2.147305 l +1.976909 2.120963 1.987758 2.083352 1.993736 2.010180 c +1.999872 1.935081 2.000000 1.837953 2.000000 1.695217 c +2.330000 1.695217 l +h +2.330000 1.295218 m +2.330000 1.695217 l +2.000000 1.695217 l +2.000000 1.295218 l +2.330000 1.295218 l +h +2.257519 0.693314 m +2.298595 0.773928 2.314994 0.859802 2.322640 0.953382 c +2.330128 1.045034 2.330000 1.157927 2.330000 1.295218 c +2.000000 1.295218 l +2.000000 1.152481 1.999872 1.055353 1.993736 0.980253 c +1.987758 0.907082 1.976909 0.869473 1.963488 0.843132 c +2.257519 0.693314 l +h +1.966905 0.402697 m +2.092032 0.466454 2.193764 0.568186 2.257520 0.693316 c +1.963487 0.843130 l +1.931370 0.780096 1.880121 0.728848 1.817086 0.696730 c +1.966905 0.402697 l +h +1.365000 0.330215 m +1.502291 0.330215 1.615182 0.330088 1.706836 0.337576 c +1.800415 0.345222 1.886289 0.361622 1.966904 0.402697 c +1.817087 0.696730 l +1.790746 0.683308 1.753135 0.672459 1.679963 0.666481 c +1.604864 0.660345 1.507736 0.660217 1.365000 0.660217 c +1.365000 0.330215 l +h +0.965000 0.330215 m +1.365000 0.330215 l +1.365000 0.660217 l +0.965000 0.660217 l +0.965000 0.330215 l +h +0.363096 0.402697 m +0.443712 0.361622 0.529585 0.345222 0.623165 0.337576 c +0.714818 0.330088 0.827710 0.330215 0.965000 0.330215 c +0.965000 0.660217 l +0.822264 0.660217 0.725136 0.660345 0.650037 0.666481 c +0.576865 0.672459 0.539254 0.683308 0.512913 0.696730 c +0.363096 0.402697 l +h +0.072481 0.693316 m +0.136236 0.568186 0.237968 0.466454 0.363096 0.402697 c +0.512914 0.696730 l +0.449879 0.728848 0.398631 0.780096 0.366513 0.843130 c +0.072481 0.693316 l +h +0.000000 1.295218 m +0.000000 1.157927 -0.000128 1.045034 0.007360 0.953382 c +0.015006 0.859802 0.031405 0.773928 0.072481 0.693314 c +0.366513 0.843132 l +0.353092 0.869473 0.342243 0.907082 0.336264 0.980253 c +0.330128 1.055353 0.330000 1.152481 0.330000 1.295218 c +0.000000 1.295218 l +h +0.000000 1.695217 m +0.000000 1.295218 l +0.330000 1.295218 l +0.330000 1.695217 l +0.000000 1.695217 l +h +0.330000 6.695217 m +0.330000 6.837953 0.330128 6.935081 0.336264 7.010180 c +0.342243 7.083352 0.353092 7.120963 0.366513 7.147305 c +0.072481 7.297121 l +0.031405 7.216506 0.015006 7.130632 0.007360 7.037052 c +-0.000128 6.945399 0.000000 6.832508 0.000000 6.695217 c +0.330000 6.695217 l +h +0.330000 6.295218 m +0.330000 6.695217 l +0.000000 6.695217 l +0.000000 6.295218 l +0.330000 6.295218 l +h +0.366513 5.843130 m +0.353092 5.869472 0.342243 5.907083 0.336264 5.980255 c +0.330128 6.055353 0.330000 6.152482 0.330000 6.295218 c +0.000000 6.295218 l +0.000000 6.157927 -0.000128 6.045035 0.007360 5.953382 c +0.015006 5.859802 0.031405 5.773929 0.072481 5.693314 c +0.366513 5.843130 l +h +0.512913 5.696731 m +0.449879 5.728848 0.398631 5.780096 0.366513 5.843130 c +0.072481 5.693314 l +0.136237 5.568186 0.237969 5.466454 0.363097 5.402698 c +0.512913 5.696731 l +h +0.965000 5.660217 m +0.822264 5.660217 0.725136 5.660346 0.650037 5.666481 c +0.576865 5.672460 0.539254 5.683309 0.512913 5.696731 c +0.363096 5.402698 l +0.443712 5.361623 0.529585 5.345223 0.623165 5.337578 c +0.714818 5.330089 0.827710 5.330217 0.965000 5.330217 c +0.965000 5.660217 l +h +1.365000 5.660217 m +0.965000 5.660217 l +0.965000 5.330217 l +1.365000 5.330217 l +1.365000 5.660217 l +h +1.817087 5.696731 m +1.790746 5.683309 1.753135 5.672460 1.679963 5.666481 c +1.604864 5.660346 1.507736 5.660217 1.365000 5.660217 c +1.365000 5.330217 l +1.502291 5.330217 1.615182 5.330089 1.706836 5.337578 c +1.800415 5.345223 1.886289 5.361623 1.966904 5.402698 c +1.817087 5.696731 l +h +1.963487 5.843130 m +1.931370 5.780096 1.880121 5.728848 1.817087 5.696731 c +1.966904 5.402698 l +2.092032 5.466454 2.193764 5.568186 2.257519 5.693314 c +1.963487 5.843130 l +h +2.000000 6.295218 m +2.000000 6.152482 1.999872 6.055353 1.993736 5.980255 c +1.987758 5.907083 1.976909 5.869472 1.963487 5.843130 c +2.257520 5.693314 l +2.298595 5.773929 2.314994 5.859802 2.322640 5.953382 c +2.330128 6.045035 2.330000 6.157927 2.330000 6.295218 c +2.000000 6.295218 l +h +2.000000 6.695217 m +2.000000 6.295218 l +2.330000 6.295218 l +2.330000 6.695217 l +2.000000 6.695217 l +h +1.963487 7.147305 m +1.976909 7.120963 1.987758 7.083352 1.993736 7.010180 c +1.999872 6.935081 2.000000 6.837953 2.000000 6.695217 c +2.330000 6.695217 l +2.330000 6.832508 2.330128 6.945399 2.322640 7.037052 c +2.314994 7.130632 2.298595 7.216506 2.257520 7.297121 c +1.963487 7.147305 l +h +1.817087 7.293704 m +1.880121 7.261587 1.931370 7.210339 1.963487 7.147305 c +2.257519 7.297121 l +2.193764 7.422249 2.092032 7.523981 1.966904 7.587737 c +1.817087 7.293704 l +h +1.365000 7.330217 m +1.507736 7.330217 1.604864 7.330089 1.679963 7.323954 c +1.753135 7.317975 1.790746 7.307126 1.817087 7.293704 c +1.966904 7.587737 l +1.886289 7.628812 1.800415 7.645211 1.706836 7.652857 c +1.615182 7.660346 1.502291 7.660217 1.365000 7.660217 c +1.365000 7.330217 l +h +0.965000 7.330217 m +1.365000 7.330217 l +1.365000 7.660217 l +0.965000 7.660217 l +0.965000 7.330217 l +h +0.512913 7.293704 m +0.539254 7.307126 0.576865 7.317975 0.650037 7.323954 c +0.725136 7.330089 0.822264 7.330217 0.965000 7.330217 c +0.965000 7.660217 l +0.827710 7.660217 0.714818 7.660346 0.623165 7.652857 c +0.529585 7.645211 0.443712 7.628812 0.363096 7.587737 c +0.512913 7.293704 l +h +0.366513 7.147305 m +0.398631 7.210339 0.449879 7.261587 0.512913 7.293704 c +0.363097 7.587737 l +0.237969 7.523981 0.136237 7.422249 0.072481 7.297121 c +0.366513 7.147305 l +h +5.072481 7.297121 m +5.031405 7.216506 5.015006 7.130632 5.007360 7.037052 c +4.999872 6.945399 5.000000 6.832508 5.000000 6.695217 c +5.330000 6.695217 l +5.330000 6.837953 5.330128 6.935081 5.336264 7.010180 c +5.342243 7.083352 5.353092 7.120963 5.366513 7.147305 c +5.072481 7.297121 l +h +5.363096 7.587737 m +5.237968 7.523981 5.136236 7.422249 5.072481 7.297121 c +5.366513 7.147305 l +5.398630 7.210339 5.449879 7.261587 5.512913 7.293704 c +5.363096 7.587737 l +h +5.965000 7.660217 m +5.827710 7.660217 5.714818 7.660346 5.623165 7.652857 c +5.529585 7.645211 5.443711 7.628812 5.363096 7.587737 c +5.512913 7.293704 l +5.539254 7.307126 5.576865 7.317975 5.650037 7.323954 c +5.725136 7.330089 5.822264 7.330217 5.965000 7.330217 c +5.965000 7.660217 l +h +6.365000 7.660217 m +5.965000 7.660217 l +5.965000 7.330217 l +6.365000 7.330217 l +6.365000 7.660217 l +h +6.966904 7.587737 m +6.886289 7.628812 6.800415 7.645211 6.706835 7.652857 c +6.615181 7.660346 6.502290 7.660217 6.365000 7.660217 c +6.365000 7.330217 l +6.507736 7.330217 6.604864 7.330089 6.679963 7.323954 c +6.753135 7.317975 6.790746 7.307126 6.817087 7.293704 c +6.966904 7.587737 l +h +7.257519 7.297121 m +7.193764 7.422249 7.092031 7.523981 6.966904 7.587737 c +6.817087 7.293704 l +6.880121 7.261587 6.931370 7.210339 6.963487 7.147305 c +7.257519 7.297121 l +h +7.330000 6.695217 m +7.330000 6.832508 7.330128 6.945399 7.322640 7.037052 c +7.314994 7.130632 7.298595 7.216506 7.257519 7.297121 c +6.963487 7.147305 l +6.976908 7.120963 6.987757 7.083352 6.993736 7.010180 c +6.999872 6.935081 7.000000 6.837953 7.000000 6.695217 c +7.330000 6.695217 l +h +7.330000 6.295218 m +7.330000 6.695217 l +7.000000 6.695217 l +7.000000 6.295218 l +7.330000 6.295218 l +h +7.257519 5.693314 m +7.298595 5.773929 7.314994 5.859802 7.322640 5.953382 c +7.330128 6.045035 7.330000 6.157927 7.330000 6.295218 c +7.000000 6.295218 l +7.000000 6.152482 6.999872 6.055353 6.993736 5.980255 c +6.987757 5.907083 6.976908 5.869472 6.963487 5.843130 c +7.257519 5.693314 l +h +6.966904 5.402698 m +7.092031 5.466454 7.193764 5.568186 7.257519 5.693314 c +6.963487 5.843130 l +6.931370 5.780096 6.880121 5.728848 6.817087 5.696731 c +6.966904 5.402698 l +h +6.365000 5.330217 m +6.502290 5.330217 6.615181 5.330089 6.706835 5.337578 c +6.800415 5.345223 6.886289 5.361623 6.966904 5.402698 c +6.817087 5.696731 l +6.790746 5.683309 6.753135 5.672460 6.679963 5.666481 c +6.604864 5.660346 6.507736 5.660217 6.365000 5.660217 c +6.365000 5.330217 l +h +5.965000 5.330217 m +6.365000 5.330217 l +6.365000 5.660217 l +5.965000 5.660217 l +5.965000 5.330217 l +h +5.363096 5.402698 m +5.443711 5.361623 5.529585 5.345223 5.623165 5.337578 c +5.714818 5.330089 5.827710 5.330217 5.965000 5.330217 c +5.965000 5.660217 l +5.822264 5.660217 5.725136 5.660346 5.650037 5.666481 c +5.576865 5.672460 5.539254 5.683309 5.512913 5.696731 c +5.363096 5.402698 l +h +5.072481 5.693314 m +5.136236 5.568186 5.237968 5.466454 5.363096 5.402698 c +5.512913 5.696731 l +5.449879 5.728848 5.398630 5.780096 5.366513 5.843130 c +5.072481 5.693314 l +h +5.000000 6.295218 m +5.000000 6.157927 4.999872 6.045035 5.007360 5.953382 c +5.015006 5.859802 5.031405 5.773929 5.072481 5.693314 c +5.366513 5.843130 l +5.353092 5.869472 5.342243 5.907083 5.336264 5.980255 c +5.330128 6.055353 5.330000 6.152482 5.330000 6.295218 c +5.000000 6.295218 l +h +5.000000 6.695217 m +5.000000 6.295218 l +5.330000 6.295218 l +5.330000 6.695217 l +5.000000 6.695217 l +h +5.330000 1.695217 m +5.330000 1.837953 5.330128 1.935081 5.336264 2.010180 c +5.342243 2.083352 5.353092 2.120963 5.366513 2.147305 c +5.072481 2.297121 l +5.031405 2.216506 5.015006 2.130632 5.007360 2.037052 c +4.999872 1.945399 5.000000 1.832508 5.000000 1.695217 c +5.330000 1.695217 l +h +5.330000 1.295218 m +5.330000 1.695217 l +5.000000 1.695217 l +5.000000 1.295218 l +5.330000 1.295218 l +h +5.366512 0.843132 m +5.353092 0.869473 5.342243 0.907082 5.336264 0.980253 c +5.330128 1.055353 5.330000 1.152481 5.330000 1.295218 c +5.000000 1.295218 l +5.000000 1.157927 4.999872 1.045034 5.007360 0.953382 c +5.015006 0.859802 5.031405 0.773928 5.072481 0.693314 c +5.366512 0.843132 l +h +5.512914 0.696730 m +5.449879 0.728848 5.398631 0.780096 5.366513 0.843130 c +5.072480 0.693316 l +5.136236 0.568186 5.237968 0.466454 5.363095 0.402697 c +5.512914 0.696730 l +h +5.965000 0.660217 m +5.822264 0.660217 5.725136 0.660345 5.650037 0.666481 c +5.576865 0.672459 5.539254 0.683308 5.512913 0.696730 c +5.363096 0.402697 l +5.443711 0.361622 5.529585 0.345222 5.623165 0.337576 c +5.714818 0.330088 5.827710 0.330215 5.965000 0.330215 c +5.965000 0.660217 l +h +6.365000 0.660217 m +5.965000 0.660217 l +5.965000 0.330215 l +6.365000 0.330215 l +6.365000 0.660217 l +h +6.817087 0.696730 m +6.790746 0.683308 6.753135 0.672459 6.679963 0.666481 c +6.604864 0.660345 6.507736 0.660217 6.365000 0.660217 c +6.365000 0.330215 l +6.502290 0.330215 6.615181 0.330088 6.706835 0.337576 c +6.800415 0.345222 6.886289 0.361622 6.966904 0.402697 c +6.817087 0.696730 l +h +6.963487 0.843130 m +6.931369 0.780096 6.880121 0.728848 6.817086 0.696730 c +6.966905 0.402697 l +7.092032 0.466454 7.193764 0.568186 7.257520 0.693316 c +6.963487 0.843130 l +h +7.000000 1.295218 m +7.000000 1.152481 6.999872 1.055353 6.993736 0.980253 c +6.987757 0.907082 6.976908 0.869473 6.963488 0.843132 c +7.257519 0.693314 l +7.298595 0.773928 7.314994 0.859802 7.322640 0.953382 c +7.330128 1.045034 7.330000 1.157927 7.330000 1.295218 c +7.000000 1.295218 l +h +7.000000 1.695217 m +7.000000 1.295218 l +7.330000 1.295218 l +7.330000 1.695217 l +7.000000 1.695217 l +h +6.963487 2.147305 m +6.976908 2.120963 6.987757 2.083352 6.993736 2.010180 c +6.999872 1.935081 7.000000 1.837953 7.000000 1.695217 c +7.330000 1.695217 l +7.330000 1.832508 7.330128 1.945399 7.322640 2.037052 c +7.314994 2.130632 7.298595 2.216506 7.257519 2.297121 c +6.963487 2.147305 l +h +6.817087 2.293704 m +6.880121 2.261587 6.931370 2.210339 6.963487 2.147305 c +7.257519 2.297121 l +7.193764 2.422249 7.092031 2.523981 6.966904 2.587737 c +6.817087 2.293704 l +h +6.365000 2.330217 m +6.507736 2.330217 6.604864 2.330089 6.679963 2.323954 c +6.753135 2.317975 6.790746 2.307126 6.817087 2.293704 c +6.966904 2.587737 l +6.886289 2.628812 6.800415 2.645211 6.706835 2.652857 c +6.615181 2.660346 6.502290 2.660217 6.365000 2.660217 c +6.365000 2.330217 l +h +5.965000 2.330217 m +6.365000 2.330217 l +6.365000 2.660217 l +5.965000 2.660217 l +5.965000 2.330217 l +h +5.512913 2.293704 m +5.539254 2.307126 5.576865 2.317975 5.650037 2.323954 c +5.725136 2.330089 5.822264 2.330217 5.965000 2.330217 c +5.965000 2.660217 l +5.827710 2.660217 5.714818 2.660346 5.623165 2.652857 c +5.529585 2.645211 5.443711 2.628812 5.363096 2.587737 c +5.512913 2.293704 l +h +5.366513 2.147305 m +5.398630 2.210339 5.449879 2.261587 5.512913 2.293704 c +5.363096 2.587737 l +5.237968 2.523981 5.136236 2.422249 5.072481 2.297121 c +5.366513 2.147305 l +h +3.642206 17.495216 m +3.687795 17.495216 l +3.687795 17.825216 l +3.642206 17.825216 l +3.642206 17.495216 l +h +0.165000 13.972423 m +0.165000 14.018011 l +-0.165000 14.018011 l +-0.165000 13.972423 l +0.165000 13.972423 l +h +3.687788 10.495217 m +3.642213 10.495217 l +3.642213 10.165217 l +3.687788 10.165217 l +3.687788 10.495217 l +h +7.165000 14.018004 m +7.165000 13.972429 l +7.495000 13.972429 l +7.495000 14.018004 l +7.165000 14.018004 l +h +13.642205 17.495216 m +13.687795 17.495216 l +13.687795 17.825216 l +13.642205 17.825216 l +13.642205 17.495216 l +h +10.165000 13.972423 m +10.165000 14.018077 l +9.835000 14.018077 l +9.835000 13.972423 l +10.165000 13.972423 l +h +13.687787 10.495217 m +13.642213 10.495217 l +13.642213 10.165217 l +13.687787 10.165217 l +13.687787 10.495217 l +h +17.164999 14.018004 m +17.164999 13.972364 l +17.495001 13.972364 l +17.495001 14.018004 l +17.164999 14.018004 l +h +13.687795 7.825217 m +13.642205 7.825217 l +13.642205 7.495217 l +13.687795 7.495217 l +13.687795 7.825217 l +h +17.495001 3.972430 m +17.495001 4.018070 l +17.164999 4.018070 l +17.164999 3.972430 l +17.495001 3.972430 l +h +13.642213 0.165216 m +13.687853 0.165216 l +13.687853 0.495218 l +13.642213 0.495218 l +13.642213 0.165216 l +h +9.835000 4.018012 m +9.835000 3.972357 l +10.165000 3.972357 l +10.165000 4.018012 l +9.835000 4.018012 l +h +f +n +Q + +endstream +endobj + +3 0 obj + 66886 +endobj + +4 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] + /Resources 1 0 R + /Contents 2 0 R + /Parent 5 0 R + >> +endobj + +5 0 obj + << /Kids [ 4 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +6 0 obj + << /Pages 5 0 R + /Type /Catalog + >> +endobj + +xref +0 7 +0000000000 65535 f +0000000010 00000 n +0000000034 00000 n +0000066976 00000 n +0000067000 00000 n +0000067173 00000 n +0000067247 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 6 0 R + /Size 7 +>> +startxref +67306 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 27da4b69d6..8e3d5718af 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -7557,6 +7557,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.updateChatPresentationInterfaceState(interactive: true, { return $0.updatedShowSendAsPeers(true) }) + }, presentChatRequestAdminInfo: { [weak self] in + self?.presentChatRequestAdminInfo() }, statuses: ChatPanelInterfaceInteractionStatuses(editingMessage: self.editingMessage.get(), startingBot: self.startingBot.get(), unblockingPeer: self.unblockingPeer.get(), searching: self.searching.get(), loadingMessage: self.loadingMessage.get(), inlineSearch: self.performingInlineSearch.get())) do { @@ -13871,26 +13873,27 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } private func presentChatRequestAdminInfo() { - let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } - - let controller = ActionSheetController(presentationData: presentationData) - var items: [ActionSheetItem] = [] - - let text = "" - - items.append(ActionSheetTextItem(title: text)) - items.append(ActionSheetButtonItem(title: self.presentationData.strings.Conversation_InviteRequestInfoConfirm, color: .accent, action: { [weak self, weak controller] in - controller?.dismissAnimated() - self?.interfaceInteraction?.dismissReportPeer() - })) - controller.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ - ActionSheetButtonItem(title: self.presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak controller] in + if let requestChatPeer = self.presentationInterfaceState.contactStatus?.requestChatPeer, let requestDate = self.presentationInterfaceState.contactStatus?.peerStatusSettings?.requestChatDate { + let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } + + let controller = ActionSheetController(presentationData: presentationData) + var items: [ActionSheetItem] = [] + + let text = presentationData.strings.Conversation_InviteRequestInfo(EnginePeer(requestChatPeer).displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), stringForDate(timestamp: requestDate, strings: presentationData.strings)) + + items.append(ActionSheetTextItem(title: text.string)) + items.append(ActionSheetButtonItem(title: self.presentationData.strings.Conversation_InviteRequestInfoConfirm, color: .accent, action: { [weak self, weak controller] in controller?.dismissAnimated() - }) - ])]) - controller.setItemGroups([]) - self.chatDisplayNode.dismissInput() - self.push(controller) + self?.interfaceInteraction?.dismissReportPeer() + })) + controller.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: self.presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak controller] in + controller?.dismissAnimated() + }) + ])]) + self.chatDisplayNode.dismissInput() + self.present(controller, in: .window(.root)) + } } private var crossfading = false diff --git a/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift b/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift index f020bc06ab..344ea345df 100644 --- a/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift +++ b/submodules/TelegramUI/Sources/ChatPanelInterfaceInteraction.swift @@ -135,6 +135,7 @@ final class ChatPanelInterfaceInteraction { let updateShowSendAsPeers: ((Bool) -> Bool) -> Void let openInviteRequests: () -> Void let openSendAsPeer: (ASDisplayNode, ContextGesture?) -> Void + let presentChatRequestAdminInfo: () -> Void let statuses: ChatPanelInterfaceInteractionStatuses? init( @@ -224,6 +225,7 @@ final class ChatPanelInterfaceInteraction { updateShowSendAsPeers: @escaping ((Bool) -> Bool) -> Void, openInviteRequests: @escaping () -> Void, openSendAsPeer: @escaping (ASDisplayNode, ContextGesture?) -> Void, + presentChatRequestAdminInfo: @escaping () -> Void, statuses: ChatPanelInterfaceInteractionStatuses? ) { self.setupReplyMessage = setupReplyMessage @@ -312,6 +314,7 @@ final class ChatPanelInterfaceInteraction { self.updateShowSendAsPeers = updateShowSendAsPeers self.openInviteRequests = openInviteRequests self.openSendAsPeer = openSendAsPeer + self.presentChatRequestAdminInfo = presentChatRequestAdminInfo self.statuses = statuses } @@ -407,6 +410,7 @@ final class ChatPanelInterfaceInteraction { }, updateShowSendAsPeers: { _ in }, openInviteRequests: { }, openSendAsPeer: { _, _ in + }, presentChatRequestAdminInfo: { }, statuses: nil) } } diff --git a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift index 838dd96e29..93ad77cccd 100644 --- a/submodules/TelegramUI/Sources/ChatRecentActionsController.swift +++ b/submodules/TelegramUI/Sources/ChatRecentActionsController.swift @@ -148,7 +148,7 @@ final class ChatRecentActionsController: TelegramBaseController { }, updateShowSendAsPeers: { _ in }, openInviteRequests: { }, openSendAsPeer: { _, _ in - }, statuses: nil) + }, presentChatRequestAdminInfo: {}, statuses: nil) self.navigationItem.titleView = self.titleView diff --git a/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift b/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift index c447b6ccc1..1f957c291f 100644 --- a/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatReportPeerTitlePanelNode.swift @@ -311,6 +311,8 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { private var inviteInfoNode: ChatInfoTitlePanelInviteInfoNode? private var peerNearbyInfoNode: ChatInfoTitlePanelPeerNearbyInfoNode? + private var tapGestureRecognizer: UITapGestureRecognizer? + override init() { self.separatorNode = ASDisplayNode() self.separatorNode.isLayerBacked = true @@ -320,6 +322,8 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { self.closeButton.displaysAsynchronously = false self.textNode = ImmediateTextNode() + self.textNode.maximumNumberOfLines = 2 + self.textNode.textAlignment = .center super.init() @@ -330,6 +334,19 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { self.addSubnode(self.closeButton) } + override func didLoad() { + super.didLoad() + + let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.tapped)) + tapGestureRecognizer.isEnabled = false + self.view.addGestureRecognizer(tapGestureRecognizer) + self.tapGestureRecognizer = tapGestureRecognizer + } + + @objc func tapped() { + self.interfaceInteraction?.presentChatRequestAdminInfo() + } + override func updateLayout(width: CGFloat, leftInset: CGFloat, rightInset: CGFloat, transition: ContainedViewLayoutTransition, interfaceState: ChatPresentationInterfaceState) -> LayoutResult { if interfaceState.theme !== self.theme { self.theme = interfaceState.theme @@ -342,9 +359,6 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { let contentRightInset: CGFloat = 14.0 + rightInset - let closeButtonSize = self.closeButton.measure(CGSize(width: 100.0, height: 100.0)) - transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: width - contentRightInset - closeButtonSize.width, y: floorToScreenPixels((panelHeight - closeButtonSize.height) / 2.0)), size: closeButtonSize)) - let updatedButtons: [ChatReportPeerTitleButton] if let _ = interfaceState.renderedPeer?.peer { updatedButtons = peerButtons(interfaceState) @@ -434,8 +448,8 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { if let requestChatPeer = interfaceState.contactStatus?.requestChatPeer, let renderedPeer = interfaceState.renderedPeer, let peer = renderedPeer.chatMainPeer { let text: NSAttributedString - let regular = MarkdownAttributeSet(font: Font.regular(14.0), textColor: interfaceState.theme.rootController.navigationBar.primaryTextColor) - let bold = MarkdownAttributeSet(font: Font.bold(14.0), textColor: interfaceState.theme.rootController.navigationBar.primaryTextColor) + let regular = MarkdownAttributeSet(font: Font.regular(15.0), textColor: interfaceState.theme.rootController.navigationBar.primaryTextColor) + let bold = MarkdownAttributeSet(font: Font.bold(15.0), textColor: interfaceState.theme.rootController.navigationBar.primaryTextColor) if let requestChatPeer = requestChatPeer as? TelegramChannel, case .broadcast = requestChatPeer.info { text = addAttributesToStringWithRanges(interfaceState.strings.Conversation_InviteRequestAdminChannel(EnginePeer(peer).compactDisplayTitle, EnginePeer(requestChatPeer).displayTitle(strings: interfaceState.strings, displayOrder: interfaceState.nameDisplayOrder))._tuple, body: regular, argumentAttributes: [0: bold, 1: bold]) } else { @@ -445,19 +459,29 @@ final class ChatReportPeerTitlePanelNode: ChatTitleAccessoryPanelNode { transition.updateAlpha(node: self.textNode, alpha: 1.0) - let textSize = self.textNode.updateLayout(CGSize(width: width - leftInset - rightInset - 40.0, height: 40.0)) - self.textNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((width - textSize.width) / 2.0), y: 4.0), size: textSize) + let textSize = self.textNode.updateLayout(CGSize(width: width - leftInset - rightInset - 80.0, height: 40.0)) + self.textNode.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((width - textSize.width) / 2.0), y: 10.0), size: textSize) for (_, view) in self.buttons { transition.updateAlpha(layer: view.layer, alpha: 0.0) } + + self.tapGestureRecognizer?.isEnabled = true + + panelHeight += 15.0 } else { transition.updateAlpha(node: self.textNode, alpha: 0.0) for (_, view) in self.buttons { transition.updateAlpha(layer: view.layer, alpha: 1.0) } + + self.tapGestureRecognizer?.isEnabled = false } + + + let closeButtonSize = self.closeButton.measure(CGSize(width: 100.0, height: 100.0)) + transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: width - contentRightInset - closeButtonSize.width, y: floorToScreenPixels((panelHeight - closeButtonSize.height) / 2.0)), size: closeButtonSize)) let initialPanelHeight = panelHeight transition.updateFrame(node: self.separatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: width, height: UIScreenPixel))) diff --git a/submodules/TelegramUI/Sources/LinkHighlightingNode.swift b/submodules/TelegramUI/Sources/LinkHighlightingNode.swift deleted file mode 100644 index 8b13789179..0000000000 --- a/submodules/TelegramUI/Sources/LinkHighlightingNode.swift +++ /dev/null @@ -1 +0,0 @@ - diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 245740a8f6..e5dd7ed209 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -337,7 +337,7 @@ final class PeerInfoSelectionPanelNode: ASDisplayNode { }, updateShowSendAsPeers: { _ in }, openInviteRequests: { }, openSendAsPeer: { _, _ in - }, statuses: nil) + }, presentChatRequestAdminInfo: {}, statuses: nil) self.selectionPanel.interfaceInteraction = interfaceInteraction diff --git a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift index e8c49bfd38..dd05c779ae 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift @@ -304,7 +304,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { }, updateShowSendAsPeers: { _ in }, openInviteRequests: { }, openSendAsPeer: { _, _ in - }, statuses: nil) + }, presentChatRequestAdminInfo: {}, statuses: nil) self.readyValue.set(self.chatListNode.ready) }