Various improvements

This commit is contained in:
Ilya Laktyushin 2022-04-26 00:24:56 +04:00
parent f38d77a985
commit bc4952ce81
29 changed files with 1320 additions and 598 deletions

View File

@ -222,7 +222,7 @@ private final class ContextControllerNode: ViewControllerTracingNode, UIScrollVi
private var initialContinueGesturePoint: CGPoint?
private var didMoveFromInitialGesturePoint = false
private var highlightedActionNode: ContextActionNodeProtocol?
private var highlightedReaction: ReactionContextItem.Reaction?
private var highlightedReaction: ReactionItem.Reaction?
private let hapticFeedback = HapticFeedback()

View File

@ -12,7 +12,7 @@ import Lottie
import AppBundle
import AvatarNode
public final class ReactionContextItem {
public final class ReactionItem {
public struct Reaction: Equatable {
public var rawValue: String
@ -21,7 +21,7 @@ public final class ReactionContextItem {
}
}
public let reaction: ReactionContextItem.Reaction
public let reaction: ReactionItem.Reaction
public let appearAnimation: TelegramMediaFile
public let stillAnimation: TelegramMediaFile
public let listAnimation: TelegramMediaFile
@ -30,7 +30,7 @@ public final class ReactionContextItem {
public let largeApplicationAnimation: TelegramMediaFile
public init(
reaction: ReactionContextItem.Reaction,
reaction: ReactionItem.Reaction,
appearAnimation: TelegramMediaFile,
stillAnimation: TelegramMediaFile,
listAnimation: TelegramMediaFile,
@ -48,6 +48,19 @@ public final class ReactionContextItem {
}
}
public enum ReactionContextItem {
case reaction(ReactionItem)
case premium
public var reaction: ReactionItem.Reaction? {
if case let .reaction(item) = self {
return item.reaction
} else {
return nil
}
}
}
private let largeCircleSize: CGFloat = 16.0
private let smallCircleSize: CGFloat = 8.0
@ -62,12 +75,12 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
private let contentContainerMask: UIImageView
private let scrollNode: ASScrollNode
private let previewingItemContainer: ASDisplayNode
private var visibleItemNodes: [Int: ReactionNode] = [:]
private var visibleItemNodes: [Int: ReactionItemNode] = [:]
private var longPressRecognizer: UILongPressGestureRecognizer?
private var longPressTimer: SwiftSignalKit.Timer?
private var highlightedReaction: ReactionContextItem.Reaction?
private var highlightedReaction: ReactionItem.Reaction?
private var didTriggerExpandedReaction: Bool = false
private var continuousHaptic: Any?
private var validLayout: (CGSize, UIEdgeInsets, CGRect)?
@ -255,7 +268,12 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
}
let appearBounds = visibleBounds.insetBy(dx: 16.0, dy: 0.0)
let highlightedReactionIndex = self.items.firstIndex(where: { $0.reaction == self.highlightedReaction })
let highlightedReactionIndex: Int?
if let highlightedReaction = self.highlightedReaction {
highlightedReactionIndex = self.items.firstIndex(where: { $0.reaction == highlightedReaction })
} else {
highlightedReactionIndex = nil
}
var validIndices = Set<Int>()
var nextX: CGFloat = sideInset
@ -295,7 +313,7 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
let itemFrame = baseItemFrame
var isPreviewing = false
if self.highlightedReaction == self.items[i].reaction {
if let highlightedReaction = self.highlightedReaction, highlightedReaction == self.items[i].reaction {
//let updatedSize = CGSize(width: floor(itemFrame.width * 2.5), height: floor(itemFrame.height * 2.5))
//itemFrame = CGRect(origin: CGPoint(x: itemFrame.midX - updatedSize.width / 2.0, y: itemFrame.maxY + 4.0 - updatedSize.height), size: updatedSize)
isPreviewing = true
@ -306,7 +324,7 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
var animateIn = false
let itemNode: ReactionNode
let itemNode: ReactionItemNode
var itemTransition = transition
if let current = self.visibleItemNodes[i] {
itemNode = current
@ -314,7 +332,11 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
animateIn = self.didAnimateIn
itemTransition = .immediate
itemNode = ReactionNode(context: self.context, theme: self.theme, item: self.items[i])
if case let .reaction(item) = self.items[i] {
itemNode = ReactionNode(context: self.context, theme: self.theme, item: item)
} else {
itemNode = PremiumReactionsNode()
}
self.visibleItemNodes[i] = itemNode
self.scrollNode.addSubnode(itemNode)
}
@ -526,17 +548,16 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
public func willAnimateOutToReaction(value: String) {
for (_, itemNode) in self.visibleItemNodes {
if itemNode.item.reaction.rawValue != value {
continue
if let itemNode = itemNode as? ReactionNode, itemNode.item.reaction.rawValue == value {
itemNode.isExtracted = true
}
itemNode.isExtracted = true
}
}
public func animateOutToReaction(value: String, targetView: UIView, hideNode: Bool, animateTargetContainer: UIView?, addStandaloneReactionAnimation: ((StandaloneReactionAnimation) -> Void)?, completion: @escaping () -> Void) {
var foundItemNode: ReactionNode?
for (_, itemNode) in self.visibleItemNodes {
if itemNode.item.reaction.rawValue == value {
if let itemNode = itemNode as? ReactionNode, itemNode.item.reaction.rawValue == value {
foundItemNode = itemNode
break
}
@ -708,12 +729,12 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
return nil
}
private let longPressDuration: Double = 1.5
private let longPressDuration: Double = 0.5
@objc private func longPressGesture(_ recognizer: UILongPressGestureRecognizer) {
switch recognizer.state {
case .began:
let point = recognizer.location(in: self.view)
if let itemNode = self.reactionItemNode(at: point) {
if let itemNode = self.reactionItemNode(at: point) as? ReactionNode {
self.highlightedReaction = itemNode.item.reaction
if #available(iOS 13.0, *) {
self.continuousHaptic = try? ContinuousHaptic(duration: longPressDuration)
@ -739,7 +760,7 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
case .changed:
let point = recognizer.location(in: self.view)
var shouldCancel = false
if let itemNode = self.reactionItemNode(at: point) {
if let itemNode = self.reactionItemNode(at: point) as? ReactionNode {
if self.highlightedReaction != itemNode.item.reaction {
shouldCancel = true
}
@ -811,7 +832,7 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
}
}
private func previewReaction(at point: CGPoint) -> ReactionContextItem? {
private func previewReaction(at point: CGPoint) -> ReactionItem? {
let scrollPoint = self.view.convert(point, to: self.scrollNode.view)
if !self.scrollNode.bounds.contains(scrollPoint) {
return nil
@ -837,13 +858,13 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
closestItem = (index, distance)
}
}
if let closestItem = closestItem {
return self.visibleItemNodes[closestItem.index]?.item
if let closestItem = closestItem, let closestItemNode = self.visibleItemNodes[closestItem.index] as? ReactionNode {
return closestItemNode.item
}
return nil
}
private func reactionItemNode(at point: CGPoint) -> ReactionNode? {
private func reactionItemNode(at point: CGPoint) -> ReactionItemNode? {
for i in 0 ..< 2 {
let touchInset: CGFloat = i == 0 ? 0.0 : 8.0
for (_, itemNode) in self.visibleItemNodes {
@ -860,13 +881,19 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
}
public func reaction(at point: CGPoint) -> ReactionContextItem? {
return self.reactionItemNode(at: point)?.item
let itemNode = self.reactionItemNode(at: point)
if let itemNode = itemNode as? ReactionNode {
return .reaction(itemNode.item)
} else if let _ = itemNode as? PremiumReactionsNode {
return .premium
}
return nil
}
public func performReactionSelection(reaction: ReactionContextItem.Reaction, isLarge: Bool) {
public func performReactionSelection(reaction: ReactionItem.Reaction, isLarge: Bool) {
for (_, itemNode) in self.visibleItemNodes {
if itemNode.item.reaction == reaction {
self.reactionSelected?(itemNode.item, isLarge)
if let itemNode = itemNode as? ReactionNode, itemNode.item.reaction == reaction {
self.reactionSelected?(.reaction(itemNode.item), isLarge)
break
}
}
@ -881,7 +908,7 @@ public final class ReactionContextNode: ASDisplayNode, UIScrollViewDelegate {
}
}
public func setHighlightedReaction(_ value: ReactionContextItem.Reaction?) {
public func setHighlightedReaction(_ value: ReactionItem.Reaction?) {
self.highlightedReaction = value
if let (size, insets, anchorRect) = self.validLayout {
self.updateLayout(size: size, insets: insets, anchorRect: anchorRect, transition: .animated(duration: 0.18, curve: .easeInOut), animateInFromAnchorRect: nil, animateOutToAnchorRect: nil, animateReactionHighlight: true)
@ -905,11 +932,11 @@ public final class StandaloneReactionAnimation: ASDisplayNode {
self.isUserInteractionEnabled = false
}
public func animateReactionSelection(context: AccountContext, theme: PresentationTheme, reaction: ReactionContextItem, avatarPeers: [EnginePeer], playHaptic: Bool, isLarge: Bool, targetView: UIView, addStandaloneReactionAnimation: ((StandaloneReactionAnimation) -> Void)?, completion: @escaping () -> Void) {
public func animateReactionSelection(context: AccountContext, theme: PresentationTheme, reaction: ReactionItem, avatarPeers: [EnginePeer], playHaptic: Bool, isLarge: Bool, targetView: UIView, addStandaloneReactionAnimation: ((StandaloneReactionAnimation) -> Void)?, completion: @escaping () -> Void) {
self.animateReactionSelection(context: context, theme: theme, reaction: reaction, avatarPeers: avatarPeers, playHaptic: playHaptic, isLarge: isLarge, targetView: targetView, addStandaloneReactionAnimation: addStandaloneReactionAnimation, currentItemNode: nil, completion: completion)
}
func animateReactionSelection(context: AccountContext, theme: PresentationTheme, reaction: ReactionContextItem, avatarPeers: [EnginePeer], playHaptic: Bool, isLarge: Bool, targetView: UIView, addStandaloneReactionAnimation: ((StandaloneReactionAnimation) -> Void)?, currentItemNode: ReactionNode?, completion: @escaping () -> Void) {
func animateReactionSelection(context: AccountContext, theme: PresentationTheme, reaction: ReactionItem, avatarPeers: [EnginePeer], playHaptic: Bool, isLarge: Bool, targetView: UIView, addStandaloneReactionAnimation: ((StandaloneReactionAnimation) -> Void)?, currentItemNode: ReactionNode?, completion: @escaping () -> Void) {
guard let sourceSnapshotView = targetView.snapshotContentTree() else {
completion()
return

View File

@ -35,9 +35,16 @@ private func generateBubbleShadowImage(shadow: UIColor, diameter: CGFloat, shado
private let font = Font.medium(13.0)
final class ReactionNode: ASDisplayNode {
protocol ReactionItemNode: ASDisplayNode {
var isExtracted: Bool { get }
func appear(animated: Bool)
func updateLayout(size: CGSize, isExpanded: Bool, largeExpanded: Bool, isPreviewing: Bool, transition: ContainedViewLayoutTransition)
}
final class ReactionNode: ASDisplayNode, ReactionItemNode {
let context: AccountContext
let item: ReactionContextItem
let item: ReactionItem
private var animateInAnimationNode: AnimatedStickerNode?
private let staticAnimationNode: AnimatedStickerNode
@ -54,13 +61,10 @@ final class ReactionNode: ASDisplayNode {
var isExtracted: Bool = false
var didSetupStillAnimation: Bool = false
private var isLongPressing: Bool = false
private var longPressAnimator: DisplayLinkAnimator?
var expandedAnimationDidBegin: (() -> Void)?
init(context: AccountContext, theme: PresentationTheme, item: ReactionContextItem) {
init(context: AccountContext, theme: PresentationTheme, item: ReactionItem) {
self.context = context
self.item = item
@ -291,32 +295,16 @@ final class ReactionNode: ASDisplayNode {
}
}
}
}
final class PremiumReactionsNode: ASDisplayNode, ReactionItemNode {
var isExtracted: Bool = false
func updateIsLongPressing(isLongPressing: Bool) {
if self.isLongPressing == isLongPressing {
return
}
self.isLongPressing = isLongPressing
func appear(animated: Bool) {
}
func updateLayout(size: CGSize, isExpanded: Bool, largeExpanded: Bool, isPreviewing: Bool, transition: ContainedViewLayoutTransition) {
if isLongPressing {
if self.longPressAnimator == nil {
let longPressAnimator = DisplayLinkAnimator(duration: 2.0, from: 1.0, to: 2.0, update: { [weak self] value in
guard let strongSelf = self else {
return
}
let transition: ContainedViewLayoutTransition = .immediate
transition.updateSublayerTransformScale(node: strongSelf, scale: value)
}, completion: {
})
self.longPressAnimator = longPressAnimator
}
} else if let longPressAnimator = self.longPressAnimator {
self.longPressAnimator = nil
let transition: ContainedViewLayoutTransition = .animated(duration: 0.2, curve: .easeInOut)
transition.updateSublayerTransformScale(node: self, scale: 1.0)
longPressAnimator.invalidate()
}
}
}

View File

@ -161,8 +161,8 @@ class ReactionChatPreviewItemNode: ListViewItemNode {
supernode.addSubnode(standaloneReactionAnimation)
standaloneReactionAnimation.frame = supernode.bounds
standaloneReactionAnimation.animateReactionSelection(
context: item.context, theme: item.theme, reaction: ReactionContextItem(
reaction: ReactionContextItem.Reaction(rawValue: reaction.value),
context: item.context, theme: item.theme, reaction: ReactionItem(
reaction: ReactionItem.Reaction(rawValue: reaction.value),
appearAnimation: reaction.appearAnimation,
stillAnimation: reaction.selectAnimation,
listAnimation: centerAnimation,

View File

@ -226,7 +226,7 @@ final class StickerPackPreviewControllerNode: ViewControllerTracingNode, UIScrol
f(.default)
})))
}
menuItems.append(.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
menuItems.append(.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -348,7 +348,7 @@ private final class StickerPackContainer: ASDisplayNode {
f(.default)
})))
}
menuItems.append(.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
menuItems.append(.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -292,11 +292,10 @@ public struct PresentationResourcesChat {
public static func chatInputMediaPanelPremiumIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelPremiumIcon.rawValue, { theme in
return generateImage(CGSize(width: 48.0, height: 48.0), contextGenerator: { size, context in
return generateImage(CGSize(width: 44.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/PremiumIcon"), color: theme.chat.inputMediaPanel.panelIconColor) {
let imageSize = CGSize(width: 48.0, height: 48.0)
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - imageSize.width) / 2.0), y: floor((size.height - imageSize.height) / 2.0)), size: imageSize))
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Size=24px, Type=Default.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,237 @@
%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.500000 3.695801 cm
0.000000 0.000000 0.000000 scn
0.987748 1.335138 m
0.995896 2.000089 l
0.987748 1.335138 l
h
0.214905 1.715688 m
0.736993 2.127573 l
0.214905 1.715688 l
h
7.475537 4.553786 m
7.880994 5.080882 l
7.475537 4.553786 l
h
6.759282 5.008368 m
6.931704 5.650627 l
6.759282 5.008368 l
h
5.524463 4.553786 m
5.119005 5.080881 l
5.524463 4.553786 l
h
6.240718 5.008368 m
6.413141 4.366111 l
6.240718 5.008368 l
h
12.785094 1.715688 m
13.307182 1.303802 l
12.785094 1.715688 l
h
12.012252 1.335138 m
12.020399 0.670189 l
12.012252 1.335138 l
h
12.673019 14.166171 m
13.265539 14.468075 l
12.673019 14.166171 l
h
4.800000 15.139199 m
8.200000 15.139199 l
8.200000 16.469200 l
4.800000 16.469200 l
4.800000 15.139199 l
h
12.335000 11.004200 m
12.335000 3.553580 l
13.665000 3.553580 l
13.665000 11.004200 l
12.335000 11.004200 l
h
10.829921 2.812478 m
7.880994 5.080882 l
7.070079 4.026691 l
10.019006 1.758287 l
10.829921 2.812478 l
h
5.119005 5.080881 m
2.170079 2.812478 l
2.980995 1.758287 l
5.929921 4.026691 l
5.119005 5.080881 l
h
0.665000 3.553581 m
0.665000 11.004200 l
-0.665000 11.004200 l
-0.665000 3.553581 l
0.665000 3.553581 l
h
2.170079 2.812478 m
1.745955 2.486228 1.464026 2.270198 1.245555 2.131740 c
1.017826 1.987413 0.966634 2.000447 0.995896 2.000089 c
0.979601 0.670189 l
1.355808 0.665579 1.684895 0.835570 1.957517 1.008347 c
2.239396 1.186991 2.577890 1.448207 2.980995 1.758287 c
2.170079 2.812478 l
h
-0.665000 3.553581 m
-0.665000 3.045012 -0.665664 2.617447 -0.635396 2.285101 c
-0.606123 1.963671 -0.540213 1.599183 -0.307182 1.303802 c
0.736993 2.127573 l
0.755119 2.104598 0.713575 2.137226 0.689122 2.405727 c
0.665664 2.663313 0.665000 3.018492 0.665000 3.553581 c
-0.665000 3.553581 l
h
0.995896 2.000089 m
0.894777 2.001328 0.799629 2.048179 0.736993 2.127573 c
-0.307182 1.303802 l
0.004125 0.909204 0.477024 0.676347 0.979601 0.670189 c
0.995896 2.000089 l
h
7.880994 5.080882 m
7.579985 5.312428 7.283384 5.556214 6.931704 5.650627 c
6.586859 4.366111 l
6.620120 4.357182 6.672709 4.332360 7.070079 4.026691 c
7.880994 5.080882 l
h
5.929921 4.026691 m
6.327291 4.332360 6.379880 4.357182 6.413141 4.366111 c
6.068296 5.650627 l
5.716616 5.556214 5.420015 5.312428 5.119005 5.080881 c
5.929921 4.026691 l
h
6.931704 5.650627 m
6.648908 5.726547 6.351092 5.726547 6.068296 5.650627 c
6.413141 4.366111 l
6.470039 4.381386 6.529961 4.381386 6.586859 4.366111 c
6.931704 5.650627 l
h
12.335000 3.553580 m
12.335000 3.018492 12.334336 2.663312 12.310878 2.405727 c
12.286425 2.137227 12.244882 2.104598 12.263006 2.127573 c
13.307182 1.303802 l
13.540214 1.599183 13.606123 1.963671 13.635396 2.285101 c
13.665664 2.617446 13.665000 3.045011 13.665000 3.553580 c
12.335000 3.553580 l
h
10.019006 1.758287 m
10.422110 1.448207 10.760604 1.186991 11.042483 1.008347 c
11.315104 0.835570 11.644193 0.665579 12.020399 0.670189 c
12.004105 2.000089 l
12.033366 2.000447 11.982174 1.987413 11.754444 2.131740 c
11.535974 2.270198 11.254045 2.486228 10.829921 2.812478 c
10.019006 1.758287 l
h
12.263006 2.127573 m
12.200372 2.048179 12.105224 2.001328 12.004105 2.000089 c
12.020399 0.670189 l
12.522976 0.676347 12.995875 0.909204 13.307182 1.303802 c
12.263006 2.127573 l
h
8.200000 15.139199 m
9.051051 15.139199 9.649346 15.138682 10.116241 15.100535 c
10.575374 15.063023 10.848572 14.992462 11.060068 14.884700 c
11.663876 16.069738 l
11.233637 16.288956 10.765926 16.381886 10.224546 16.426119 c
9.690928 16.469717 9.029105 16.469200 8.200000 16.469200 c
8.200000 15.139199 l
h
13.665000 11.004200 m
13.665000 11.833305 13.665517 12.495129 13.621919 13.028746 c
13.577686 13.570126 13.484756 14.037836 13.265539 14.468075 c
12.080501 13.864267 l
12.188263 13.652771 12.258823 13.379573 12.296336 12.920441 c
12.334483 12.453546 12.335000 11.855251 12.335000 11.004200 c
13.665000 11.004200 l
h
11.060068 14.884700 m
11.499426 14.660835 11.856636 14.303625 12.080501 13.864267 c
13.265539 14.468075 l
12.914163 15.157688 12.353489 15.718362 11.663876 16.069738 c
11.060068 14.884700 l
h
4.800000 16.469200 m
3.970894 16.469200 3.309071 16.469717 2.775454 16.426119 c
2.234073 16.381886 1.766364 16.288956 1.336125 16.069738 c
1.939932 14.884700 l
2.151429 14.992462 2.424626 15.063023 2.883758 15.100535 c
3.350653 15.138682 3.948948 15.139199 4.800000 15.139199 c
4.800000 16.469200 l
h
0.665000 11.004200 m
0.665000 11.855251 0.665517 12.453547 0.703664 12.920442 c
0.741177 13.379573 0.811737 13.652771 0.919500 13.864267 c
-0.265539 14.468075 l
-0.484756 14.037836 -0.577686 13.570126 -0.621919 13.028746 c
-0.665517 12.495129 -0.665000 11.833305 -0.665000 11.004200 c
0.665000 11.004200 l
h
1.336125 16.069738 m
0.646511 15.718362 0.085837 15.157688 -0.265539 14.468075 c
0.919500 13.864267 l
1.143364 14.303625 1.500574 14.660835 1.939932 14.884700 c
1.336125 16.069738 l
h
f
n
Q
endstream
endobj
3 0 obj
4897
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
0000004987 00000 n
0000005010 00000 n
0000005183 00000 n
0000005257 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
5316
%%EOF

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Size=24px, Type=Crossed Out.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,165 @@
%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 4.834961 4.361450 cm
0.000000 0.000000 0.000000 scn
0.294029 13.569108 m
0.148725 13.203500 0.079447 12.808213 0.043083 12.363134 c
-0.000009 11.835724 -0.000005 11.183071 0.000001 10.367449 c
0.000001 10.367412 l
0.000001 10.338589 l
0.000001 2.887971 l
0.000001 2.855927 l
0.000001 2.855909 l
-0.000013 2.361413 -0.000024 1.944829 0.029606 1.619491 c
0.058879 1.298060 0.124788 0.933573 0.357819 0.638192 c
0.669126 0.243593 1.142026 0.010736 1.644602 0.004579 c
2.020809 -0.000031 2.349897 0.169960 2.622518 0.342736 c
2.898462 0.517618 3.228661 0.771631 3.620616 1.073153 c
3.645996 1.092677 l
6.594922 3.361081 l
6.992292 3.666750 7.044882 3.691571 7.078142 3.700500 c
7.135041 3.715775 7.194962 3.715775 7.251861 3.700500 c
7.285121 3.691571 7.337711 3.666750 7.735081 3.361081 c
10.684008 1.092677 l
10.709353 1.073179 l
11.101323 0.771646 11.431534 0.517624 11.707485 0.342736 c
11.980106 0.169960 12.309195 -0.000031 12.685401 0.004579 c
13.008502 0.008537 13.319336 0.106193 13.582854 0.280283 c
12.355464 1.507673 l
12.146183 1.646584 11.878798 1.851580 11.494923 2.146868 c
8.545997 4.415272 l
8.477973 4.467776 l
8.477962 4.467785 l
8.199948 4.682729 7.921870 4.897722 7.596705 4.985017 c
7.313910 5.060937 7.016093 5.060937 6.733298 4.985017 c
6.408127 4.897721 6.130046 4.682723 5.852028 4.467772 c
5.784007 4.415271 l
2.835081 2.146868 l
2.410956 1.820618 2.129028 1.604588 1.910557 1.466129 c
1.735109 1.354937 1.664445 1.337146 1.654627 1.334675 c
1.654414 1.334620 l
1.557878 1.337669 1.467334 1.382254 1.406059 1.456912 c
1.405972 1.457113 l
1.401946 1.466402 1.372963 1.533260 1.354124 1.740117 c
1.330665 1.997703 1.330002 2.352881 1.330002 2.887971 c
1.330002 10.338589 l
1.330002 11.189641 1.330519 11.787935 1.368666 12.254830 c
1.375014 12.332534 1.382310 12.404911 1.390571 12.472566 c
0.294029 13.569108 l
h
12.999968 2.744075 m
12.999996 2.790545 13.000002 2.838489 13.000002 2.887970 c
13.000002 10.338589 l
13.000002 11.189640 12.999485 11.787935 12.961338 12.254830 c
12.923825 12.713963 12.853265 12.987160 12.745502 13.198656 c
12.521638 13.638015 12.164428 13.995224 11.725070 14.219089 c
11.513574 14.326852 11.240376 14.397411 10.781243 14.434924 c
10.314348 14.473071 9.716053 14.473588 8.865002 14.473588 c
5.465002 14.473588 l
4.613950 14.473588 4.015655 14.473071 3.548759 14.434924 c
3.089628 14.397411 2.816430 14.326852 2.604934 14.219089 c
2.372593 14.100705 2.163225 13.945032 1.984401 13.759640 c
1.043852 14.700190 l
1.320836 14.983611 1.643658 15.221989 2.001126 15.404127 c
2.431365 15.623345 2.899075 15.716275 3.440455 15.760508 c
3.967874 15.803599 4.620536 15.803595 5.436175 15.803589 c
5.436180 15.803589 l
5.465002 15.803589 l
8.865002 15.803589 l
8.893824 15.803589 l
9.709463 15.803595 10.362128 15.803599 10.889548 15.760508 c
11.430928 15.716275 11.898639 15.623345 12.328877 15.404127 c
13.018491 15.052752 13.579165 14.492078 13.930541 13.802464 c
14.149758 13.372225 14.242688 12.904515 14.286921 12.363134 c
14.330012 11.835714 14.330008 11.183048 14.330002 10.367406 c
14.330002 10.367395 l
14.330002 10.338589 l
14.330002 2.887970 l
14.330002 2.855918 l
14.330016 2.361417 14.330028 1.944830 14.300398 1.619491 c
14.295680 1.567688 14.290010 1.514769 14.282844 1.461199 c
12.999968 2.744075 l
h
f*
n
Q
q
1.000000 0.000000 -0.000000 1.000000 4.500000 3.540039 cm
0.000000 0.000000 0.000000 scn
0.470226 17.930187 m
0.210527 18.189886 -0.210527 18.189886 -0.470226 17.930187 c
-0.729925 17.670488 -0.729925 17.249434 -0.470226 16.989735 c
0.470226 17.930187 l
h
15.529774 0.989735 m
15.789473 0.730036 16.210527 0.730036 16.470226 0.989735 c
16.729925 1.249434 16.729925 1.670488 16.470226 1.930187 c
15.529774 0.989735 l
h
-0.470226 16.989735 m
15.529774 0.989735 l
16.470226 1.930187 l
0.470226 17.930187 l
-0.470226 16.989735 l
h
f
n
Q
endstream
endobj
3 0 obj
3871
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
0000003961 00000 n
0000003984 00000 n
0000004157 00000 n
0000004231 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
4290
%%EOF

View File

@ -1,12 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_lt_unstar.pdf"
"filename" : "Size=24px, Type=Crossed Out.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,165 @@
%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 4.834961 4.361450 cm
0.000000 0.000000 0.000000 scn
0.294029 13.569108 m
0.148725 13.203500 0.079447 12.808213 0.043083 12.363134 c
-0.000009 11.835724 -0.000005 11.183071 0.000001 10.367449 c
0.000001 10.367412 l
0.000001 10.338589 l
0.000001 2.887971 l
0.000001 2.855927 l
0.000001 2.855909 l
-0.000013 2.361413 -0.000024 1.944829 0.029606 1.619491 c
0.058879 1.298060 0.124788 0.933573 0.357819 0.638192 c
0.669126 0.243593 1.142026 0.010736 1.644602 0.004579 c
2.020809 -0.000031 2.349897 0.169960 2.622518 0.342736 c
2.898462 0.517618 3.228661 0.771631 3.620616 1.073153 c
3.645996 1.092677 l
6.594922 3.361081 l
6.992292 3.666750 7.044882 3.691571 7.078142 3.700500 c
7.135041 3.715775 7.194962 3.715775 7.251861 3.700500 c
7.285121 3.691571 7.337711 3.666750 7.735081 3.361081 c
10.684008 1.092677 l
10.709353 1.073179 l
11.101323 0.771646 11.431534 0.517624 11.707485 0.342736 c
11.980106 0.169960 12.309195 -0.000031 12.685401 0.004579 c
13.008502 0.008537 13.319336 0.106193 13.582854 0.280283 c
12.355464 1.507673 l
12.146183 1.646584 11.878798 1.851580 11.494923 2.146868 c
8.545997 4.415272 l
8.477973 4.467776 l
8.477962 4.467785 l
8.199948 4.682729 7.921870 4.897722 7.596705 4.985017 c
7.313910 5.060937 7.016093 5.060937 6.733298 4.985017 c
6.408127 4.897721 6.130046 4.682723 5.852028 4.467772 c
5.784007 4.415271 l
2.835081 2.146868 l
2.410956 1.820618 2.129028 1.604588 1.910557 1.466129 c
1.735109 1.354937 1.664445 1.337146 1.654627 1.334675 c
1.654414 1.334620 l
1.557878 1.337669 1.467334 1.382254 1.406059 1.456912 c
1.405972 1.457113 l
1.401946 1.466402 1.372963 1.533260 1.354124 1.740117 c
1.330665 1.997703 1.330002 2.352881 1.330002 2.887971 c
1.330002 10.338589 l
1.330002 11.189641 1.330519 11.787935 1.368666 12.254830 c
1.375014 12.332534 1.382310 12.404911 1.390571 12.472566 c
0.294029 13.569108 l
h
12.999968 2.744075 m
12.999996 2.790545 13.000002 2.838489 13.000002 2.887970 c
13.000002 10.338589 l
13.000002 11.189640 12.999485 11.787935 12.961338 12.254830 c
12.923825 12.713963 12.853265 12.987160 12.745502 13.198656 c
12.521638 13.638015 12.164428 13.995224 11.725070 14.219089 c
11.513574 14.326852 11.240376 14.397411 10.781243 14.434924 c
10.314348 14.473071 9.716053 14.473588 8.865002 14.473588 c
5.465002 14.473588 l
4.613950 14.473588 4.015655 14.473071 3.548759 14.434924 c
3.089628 14.397411 2.816430 14.326852 2.604934 14.219089 c
2.372593 14.100705 2.163225 13.945032 1.984401 13.759640 c
1.043852 14.700190 l
1.320836 14.983611 1.643658 15.221989 2.001126 15.404127 c
2.431365 15.623345 2.899075 15.716275 3.440455 15.760508 c
3.967874 15.803599 4.620536 15.803595 5.436175 15.803589 c
5.436180 15.803589 l
5.465002 15.803589 l
8.865002 15.803589 l
8.893824 15.803589 l
9.709463 15.803595 10.362128 15.803599 10.889548 15.760508 c
11.430928 15.716275 11.898639 15.623345 12.328877 15.404127 c
13.018491 15.052752 13.579165 14.492078 13.930541 13.802464 c
14.149758 13.372225 14.242688 12.904515 14.286921 12.363134 c
14.330012 11.835714 14.330008 11.183048 14.330002 10.367406 c
14.330002 10.367395 l
14.330002 10.338589 l
14.330002 2.887970 l
14.330002 2.855918 l
14.330016 2.361417 14.330028 1.944830 14.300398 1.619491 c
14.295680 1.567688 14.290010 1.514769 14.282844 1.461199 c
12.999968 2.744075 l
h
f*
n
Q
q
1.000000 0.000000 -0.000000 1.000000 4.500000 3.540039 cm
0.000000 0.000000 0.000000 scn
0.470226 17.930187 m
0.210527 18.189886 -0.210527 18.189886 -0.470226 17.930187 c
-0.729925 17.670488 -0.729925 17.249434 -0.470226 16.989735 c
0.470226 17.930187 l
h
15.529774 0.989735 m
15.789473 0.730036 16.210527 0.730036 16.470226 0.989735 c
16.729925 1.249434 16.729925 1.670488 16.470226 1.930187 c
15.529774 0.989735 l
h
-0.470226 16.989735 m
15.529774 0.989735 l
16.470226 1.930187 l
0.470226 17.930187 l
-0.470226 16.989735 l
h
f
n
Q
endstream
endobj
3 0 obj
3871
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
0000003961 00000 n
0000003984 00000 n
0000004157 00000 n
0000004231 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
4290
%%EOF

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "premium_48.pdf",
"filename" : "premium_48 (1).pdf",
"idiom" : "universal"
}
],

View File

@ -0,0 +1,359 @@
%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.167969 0.232300 cm
0.000000 0.000000 0.000000 scn
26.596321 7.326611 m
26.017796 6.131248 l
26.017796 6.131248 l
26.596321 7.326611 l
h
33.049633 4.203373 m
33.628159 5.398735 l
33.628159 5.398735 l
33.049633 4.203373 l
h
23.465450 11.359636 m
24.766926 11.623732 l
24.766926 11.623732 l
23.465450 11.359636 l
h
21.219912 22.425730 m
22.521387 22.689827 l
22.521385 22.689829 l
21.219912 22.425730 l
h
20.468536 22.426363 m
21.769566 22.160072 l
21.769566 22.160076 l
20.468536 22.426363 l
h
18.201447 11.349876 m
16.900419 11.616165 l
16.900419 11.616165 l
18.201447 11.349876 l
h
15.076786 7.328415 m
15.656298 6.133530 l
15.656300 6.133530 l
15.076786 7.328415 l
h
8.645002 4.209038 m
8.065491 5.403923 l
8.065490 5.403923 l
8.645002 4.209038 l
h
6.009511 6.527775 m
7.266081 6.098106 l
7.266081 6.098106 l
6.009511 6.527775 l
h
0.756405 26.105867 m
1.562058 27.161572 l
1.562058 27.161572 l
0.756405 26.105867 l
h
1.732299 29.537737 m
1.861923 28.216080 l
1.861923 28.216080 l
1.732299 29.537737 l
h
13.316613 30.673882 m
13.446237 29.352222 l
13.446237 29.352222 l
13.316613 30.673882 l
h
14.893808 31.831930 m
16.116005 31.312487 l
16.116005 31.312487 l
14.893808 31.831930 l
h
19.081465 41.685043 m
20.303661 41.165604 l
20.303661 41.165604 l
19.081465 41.685043 l
h
19.421009 42.224472 m
20.411942 41.340370 l
20.444679 41.377064 20.475355 41.415550 20.503824 41.455647 c
19.421009 42.224472 l
h
22.270512 42.224518 m
21.187717 41.455658 l
21.216190 41.415562 21.246868 41.377079 21.279608 41.340382 c
22.270512 42.224518 l
h
22.610096 41.685043 m
21.387899 41.165604 l
21.387901 41.165600 l
22.610096 41.685043 l
h
26.797756 31.831928 m
28.019951 32.351372 l
28.019951 32.351372 l
26.797756 31.831928 l
h
28.374952 30.673882 m
28.245329 29.352222 l
28.245329 29.352222 l
28.374952 30.673882 l
h
39.959267 29.537737 m
39.829643 28.216080 l
39.829643 28.216080 l
39.959267 29.537737 l
h
40.935162 26.105867 m
41.740814 25.050165 l
41.740814 25.050167 l
40.935162 26.105867 l
h
35.683735 6.522823 m
36.940308 6.952484 l
36.940308 6.952484 l
35.683735 6.522823 l
h
32.468925 19.644917 m
31.663275 20.700619 l
32.468925 19.644917 l
h
9.222645 19.644909 m
10.028297 20.700611 l
9.222645 19.644909 l
h
31.848946 17.567064 m
30.596266 17.126188 l
31.848946 17.567064 l
h
9.842616 17.567089 m
8.589934 18.007967 l
9.842616 17.567089 l
h
26.017796 6.131248 m
32.471111 3.008007 l
33.628159 5.398735 l
27.174847 8.521973 l
26.017796 6.131248 l
h
22.163977 11.095541 m
22.603409 8.930000 24.028820 7.093861 26.017796 6.131248 c
27.174847 8.521973 l
25.932106 9.123428 25.041489 10.270676 24.766926 11.623732 c
22.163977 11.095541 l
h
19.918436 22.161634 m
22.163977 11.095541 l
24.766926 11.623732 l
22.521387 22.689827 l
19.918436 22.161634 l
h
21.769566 22.160076 m
21.563301 21.152304 20.123007 21.153507 19.918436 22.161633 c
22.521385 22.689829 l
22.150745 24.516350 19.541220 24.518536 19.167509 22.692650 c
21.769566 22.160076 l
h
19.502476 11.083588 m
21.769566 22.160072 l
19.167509 22.692652 l
16.900419 11.616165 l
19.502476 11.083588 l
h
15.656300 6.133530 m
17.638857 7.095062 19.060648 8.924915 19.502476 11.083588 c
16.900419 11.616165 l
16.624359 10.267399 15.736004 9.124077 14.497272 8.523296 c
15.656300 6.133530 l
h
9.224514 3.014153 m
15.656298 6.133530 l
14.497274 8.523300 l
8.065491 5.403923 l
9.224514 3.014153 l
h
4.752941 6.957447 m
3.816943 4.220119 6.650061 1.765560 9.224514 3.014153 c
8.065490 5.403923 l
7.586564 5.171646 7.104112 5.624428 7.266081 6.098106 c
4.752941 6.957447 l
h
8.589934 18.007967 m
6.955464 13.363882 5.655949 9.598297 4.752941 6.957447 c
7.266081 6.098106 l
8.166792 8.732243 9.463710 12.490316 11.095298 17.126213 c
8.589934 18.007967 l
h
-0.049248 25.050165 m
8.416991 18.589207 l
10.028297 20.700611 l
1.562058 27.161572 l
-0.049248 25.050165 l
h
1.602676 30.859396 m
-1.330588 30.571712 -2.392261 26.838221 -0.049247 25.050165 c
1.562058 27.161572 l
1.136752 27.486139 1.329462 28.163857 1.861923 28.216080 c
1.602676 30.859396 l
h
13.186990 31.995541 m
1.602676 30.859396 l
1.861923 28.216080 l
13.446237 29.352222 l
13.186990 31.995541 l
h
13.671613 32.351376 m
13.587321 32.153046 13.401456 32.016575 13.186990 31.995541 c
13.446237 29.352222 l
14.627732 29.468102 15.651648 30.219906 16.116005 31.312487 c
13.671613 32.351376 l
h
17.859270 42.204487 m
13.671613 32.351372 l
16.116005 31.312487 l
20.303661 41.165604 l
17.859270 42.204487 l
h
18.430077 43.108574 m
18.196718 42.847019 18.003445 42.543720 17.859268 42.204487 c
20.303661 41.165604 l
20.335835 41.241302 20.373804 41.297623 20.411942 41.340370 c
18.430077 43.108574 l
h
23.353304 42.993378 m
22.120342 44.729771 19.571110 44.729740 18.338192 42.993298 c
20.503824 41.455647 l
20.678020 41.700985 21.013519 41.700985 21.187717 41.455658 c
23.353304 42.993378 l
h
23.832294 42.204487 m
23.688103 42.543755 23.494802 42.847080 23.261414 43.108654 c
21.279608 41.340382 l
21.317753 41.297634 21.355724 41.241310 21.387899 41.165604 c
23.832294 42.204487 l
h
28.019951 32.351372 m
23.832293 42.204487 l
21.387901 41.165600 l
25.575560 31.312485 l
28.019951 32.351372 l
h
28.504576 31.995541 m
28.290104 32.016575 28.104240 32.153046 28.019951 32.351372 c
25.575560 31.312489 l
26.039915 30.219902 27.063835 29.468100 28.245329 29.352222 c
28.504576 31.995541 l
h
40.088890 30.859396 m
28.504576 31.995541 l
28.245329 29.352222 l
39.829643 28.216080 l
40.088890 30.859396 l
h
41.740814 25.050167 m
44.083820 26.838221 43.022160 30.571712 40.088890 30.859396 c
39.829643 28.216080 l
40.362099 28.163857 40.554817 27.486143 40.129505 27.161570 c
41.740814 25.050167 l
h
33.274578 18.589212 m
41.740814 25.050165 l
40.129509 27.161572 l
31.663275 20.700619 l
33.274578 18.589212 l
h
36.940308 6.952484 m
36.037231 9.593578 34.737118 13.360964 33.101627 18.007942 c
30.596266 17.126188 l
32.228870 12.487404 33.526386 8.727535 34.427162 6.093159 c
36.940308 6.952484 l
h
32.471111 3.008007 m
35.045464 1.762089 37.875858 4.216412 36.940308 6.952484 c
34.427162 6.093163 l
34.589066 5.619659 34.107037 5.166969 33.628159 5.398735 c
32.471111 3.008007 l
h
31.663275 20.700619 m
31.388407 20.490854 31.149704 20.237541 30.956619 19.950712 c
33.159912 18.467527 l
33.191242 18.514071 33.229977 18.555176 33.274578 18.589212 c
31.663275 20.700619 l
h
10.734936 19.950726 m
10.541856 20.237547 10.303158 20.490852 10.028297 20.700611 c
8.416991 18.589207 l
8.461590 18.555170 8.500321 18.514071 8.531651 18.467529 c
10.734936 19.950726 l
h
30.956619 19.950712 m
30.396477 19.118612 30.263741 18.071003 30.596266 17.126188 c
33.101627 18.007942 l
33.047279 18.162365 33.069302 18.332926 33.159912 18.467527 c
30.956619 19.950712 l
h
11.095298 17.126213 m
11.427822 18.071028 11.295080 19.118631 10.734936 19.950726 c
8.531651 18.467529 l
8.622259 18.332932 8.644280 18.162380 8.589934 18.007967 c
11.095298 17.126213 l
h
f
n
Q
endstream
endobj
3 0 obj
6902
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000006992 00000 n
0000007015 00000 n
0000007188 00000 n
0000007262 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
7321
%%EOF

View File

@ -1,252 +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 20.799988 8.439514 cm
0.000000 0.000000 0.000000 scn
-0.939038 14.899500 m
-1.457654 14.380883 -1.457654 13.540040 -0.939038 13.021423 c
-0.420422 12.502808 0.420421 12.502808 0.939038 13.021423 c
-0.939038 14.899500 l
h
3.200000 17.160461 m
4.528000 17.160461 l
4.528000 17.697588 4.204443 18.181824 3.708204 18.387373 c
3.211964 18.592922 2.640768 18.479305 2.260962 18.099499 c
3.200000 17.160461 l
h
1.872000 2.760462 m
1.872000 2.027028 2.466566 1.432463 3.200000 1.432463 c
3.933434 1.432463 4.528000 2.027028 4.528000 2.760462 c
1.872000 2.760462 l
h
0.939038 13.021423 m
4.139038 16.221424 l
2.260962 18.099499 l
-0.939038 14.899500 l
0.939038 13.021423 l
h
1.872000 17.160461 m
1.872000 2.760462 l
4.528000 2.760462 l
4.528000 17.160461 l
1.872000 17.160461 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 37.599640 -5.487183 cm
0.000000 0.000000 0.000000 scn
-13.599648 48.319149 m
-14.633526 48.319149 -15.471648 47.481026 -15.471648 46.447147 c
-15.471648 45.888218 -15.228365 45.387764 -14.837526 45.042801 c
-14.287642 44.557465 -14.235316 43.718250 -14.720654 43.168365 c
-15.205992 42.618481 -16.045206 42.566154 -16.595089 43.051495 c
-17.532925 43.879246 -18.127647 45.094570 -18.127647 46.447147 c
-18.127647 48.947891 -16.100393 50.975147 -13.599648 50.975147 c
-11.098903 50.975147 -9.071648 48.947891 -9.071648 46.447147 c
-9.071648 45.461380 -9.387541 44.548515 -9.921925 43.805458 c
-5.592371 34.280434 l
-5.377628 33.808002 -5.249858 33.529579 -5.139878 33.333305 c
-5.090175 33.244606 -5.058738 33.200428 -5.044950 33.182560 c
-5.002737 33.155678 -4.953909 33.140961 -4.903872 33.140034 c
-4.882506 33.147305 -4.831891 33.166748 -4.741446 33.213200 c
-4.541314 33.315990 -4.280955 33.477409 -3.840887 33.752453 c
-0.703485 35.713329 l
-0.303486 35.963329 l
-0.119619 36.078243 l
0.010664 36.203102 l
0.153188 38.261143 1.695286 40.023022 3.820018 40.359547 c
6.289974 40.750748 8.609403 39.065586 9.000606 36.595627 c
9.342075 34.439674 8.161527 32.337822 6.112925 31.625401 c
0.694185 15.369183 l
0.628194 15.171204 0.577123 15.040951 0.414422 14.737587 c
0.340410 14.599590 0.204416 14.401844 0.124208 14.287277 c
0.044002 14.172710 -0.095275 13.977261 -0.199620 13.860500 c
-0.229012 13.827316 l
-0.234736 13.819023 -0.240436 13.810963 -0.246096 13.803143 c
-0.292854 13.738518 -0.336812 13.690075 -0.366265 13.659515 c
-0.395976 13.628689 -0.421425 13.605282 -0.436658 13.591625 c
-0.463474 13.567585 -0.486274 13.549215 -0.490921 13.545471 c
-0.491389 13.545094 l
-0.504090 13.534939 l
-1.951841 12.385654 -5.525676 10.559189 -13.599648 10.559189 c
-14.333081 10.559189 -14.927648 11.153755 -14.927648 11.887188 c
-14.927648 12.620621 -14.333081 13.215187 -13.599648 13.215187 c
-6.223460 13.215187 -3.236060 14.814758 -2.269981 15.527596 c
-2.252175 15.548344 l
-2.234446 15.568878 -2.215001 15.591042 -2.193654 15.615047 c
-2.186613 15.624081 -2.175787 15.638283 -2.161172 15.657967 c
-2.130181 15.699711 -2.091512 15.753487 -2.051579 15.810524 c
-2.011646 15.867565 -1.974349 15.922298 -1.945730 15.965702 c
-1.932520 15.985737 -1.923005 16.000561 -1.916908 16.010284 c
-1.865568 16.106575 -1.849941 16.140930 -1.845642 16.150833 c
-1.845495 16.151119 l
-1.845044 16.151909 -1.843923 16.153866 -1.825517 16.209084 c
3.807167 33.107140 l
3.882387 33.332798 4.012318 33.524826 4.177295 33.673386 c
4.369656 33.869110 4.624150 34.007130 4.916007 34.053356 c
5.885390 34.206890 6.547414 35.106117 6.377306 36.180138 c
6.215571 37.201286 5.256656 37.897980 4.235507 37.736244 c
3.320282 37.591290 2.663632 36.804295 2.655953 35.907169 c
2.653791 35.654636 2.581280 35.419170 2.457180 35.219215 c
2.409160 34.952869 2.279548 34.698715 2.069203 34.497135 c
1.619203 34.065887 l
1.553459 34.002884 1.481409 33.946808 1.404191 33.898544 c
1.304192 33.836044 l
1.104191 33.711044 l
0.704191 33.461044 l
-2.433210 31.500168 l
-2.473930 31.474716 l
-2.859507 31.233688 -3.215973 31.010859 -3.527993 30.850601 c
-3.862429 30.678833 -4.262333 30.515205 -4.734132 30.488625 c
-5.421426 30.449900 -6.100389 30.654572 -6.651776 31.066694 c
-7.030281 31.349598 -7.273128 31.706982 -7.456913 32.034969 c
-7.628387 32.340984 -7.802321 32.723717 -7.990458 33.137707 c
-8.010303 33.181374 l
-12.626795 43.337658 l
-12.645971 43.379845 -12.662757 43.422508 -12.677210 43.465500 c
-12.932566 43.989037 -12.819699 44.638626 -12.361771 45.042801 c
-11.970932 45.387764 -11.727648 45.888218 -11.727648 46.447147 c
-11.727648 47.481026 -12.565771 48.319149 -13.599648 48.319149 c
h
f*
n
Q
q
-1.000000 -0.000000 -0.000000 1.000000 10.416351 -5.487305 cm
0.000000 0.000000 0.000000 scn
-13.599648 48.319145 m
-14.633526 48.319145 -15.471648 47.481026 -15.471648 46.447147 c
-15.471648 45.888218 -15.228365 45.387764 -14.837526 45.042801 c
-14.287642 44.557465 -14.235316 43.718250 -14.720654 43.168365 c
-15.205992 42.618481 -16.045206 42.566154 -16.595089 43.051495 c
-17.532925 43.879242 -18.127647 45.094566 -18.127647 46.447147 c
-18.127647 48.947891 -16.100393 50.975147 -13.599648 50.975147 c
-11.098903 50.975147 -9.071648 48.947891 -9.071648 46.447147 c
-9.071648 45.461380 -9.387541 44.548515 -9.921925 43.805454 c
-5.592372 34.280434 l
-5.377629 33.808002 -5.249859 33.529579 -5.139879 33.333305 c
-5.090176 33.244606 -5.058739 33.200428 -5.044950 33.182560 c
-5.002738 33.155678 -4.953910 33.140957 -4.903872 33.140034 c
-4.882507 33.147305 -4.831892 33.166744 -4.741446 33.213200 c
-4.541315 33.315990 -4.280956 33.477409 -3.840888 33.752453 c
-0.703486 35.713329 l
-0.303487 35.963329 l
-0.119620 36.078243 l
0.010664 36.203102 l
0.153188 38.261143 1.695286 40.023022 3.820018 40.359547 c
6.289974 40.750748 8.609403 39.065586 9.000606 36.595627 c
9.342075 34.439674 8.161526 32.337822 6.112923 31.625401 c
0.694184 15.369181 l
0.628193 15.171204 0.577122 15.040951 0.414421 14.737587 c
0.340409 14.599588 0.204415 14.401842 0.124207 14.287275 c
0.044001 14.172709 -0.095276 13.977261 -0.199621 13.860498 c
-0.229013 13.827314 l
-0.234737 13.819021 -0.240437 13.810963 -0.246097 13.803141 c
-0.292855 13.738518 -0.336813 13.690073 -0.366266 13.659513 c
-0.395977 13.628687 -0.421426 13.605282 -0.436659 13.591625 c
-0.463487 13.567575 -0.486296 13.549196 -0.490928 13.545464 c
-0.491390 13.545092 l
-0.504091 13.534939 l
-1.951842 12.385654 -5.525677 10.559187 -13.599648 10.559187 c
-14.333082 10.559187 -14.927649 11.153753 -14.927649 11.887186 c
-14.927649 12.620619 -14.333082 13.215185 -13.599648 13.215185 c
-6.223461 13.215185 -3.236061 14.814758 -2.269982 15.527594 c
-2.252176 15.548342 l
-2.234447 15.568876 -2.215002 15.591040 -2.193655 15.615047 c
-2.186614 15.624079 -2.175788 15.638281 -2.161173 15.657967 c
-2.130182 15.699709 -2.091513 15.753485 -2.051579 15.810524 c
-2.011647 15.867563 -1.974350 15.922298 -1.945731 15.965702 c
-1.932521 15.985735 -1.923006 16.000561 -1.916909 16.010283 c
-1.865569 16.106573 -1.849942 16.140930 -1.845643 16.150831 c
-1.845496 16.151119 l
-1.845045 16.151907 -1.843924 16.153864 -1.825518 16.209082 c
3.807166 33.107136 l
3.882387 33.332802 4.012319 33.524830 4.177298 33.673389 c
4.369658 33.869110 4.624152 34.007130 4.916007 34.053356 c
5.885390 34.206890 6.547414 35.106117 6.377306 36.180138 c
6.215571 37.201286 5.256656 37.897980 4.235507 37.736244 c
3.320282 37.591290 2.663632 36.804295 2.655953 35.907169 c
2.653791 35.654636 2.581279 35.419167 2.457179 35.219212 c
2.409158 34.952869 2.279546 34.698715 2.069202 34.497135 c
1.619202 34.065887 l
1.553458 34.002880 1.481408 33.946808 1.404190 33.898544 c
1.304191 33.836044 l
1.104190 33.711044 l
0.704190 33.461044 l
-2.433211 31.500168 l
-2.473931 31.474714 l
-2.473954 31.474701 l
-2.859522 31.233679 -3.215980 31.010857 -3.527994 30.850601 c
-3.862430 30.678833 -4.262334 30.515205 -4.734133 30.488623 c
-5.421427 30.449900 -6.100390 30.654572 -6.651777 31.066694 c
-7.030282 31.349598 -7.273129 31.706982 -7.456914 32.034966 c
-7.628388 32.340981 -7.802322 32.723717 -7.990458 33.137707 c
-8.010305 33.181374 l
-12.626796 43.337658 l
-12.645973 43.379845 -12.662760 43.422512 -12.677213 43.465504 c
-12.932565 43.989040 -12.819697 44.638626 -12.361771 45.042801 c
-11.970932 45.387764 -11.727648 45.888218 -11.727648 46.447147 c
-11.727648 47.481026 -12.565771 48.319145 -13.599648 48.319145 c
h
f*
n
Q
endstream
endobj
3 0 obj
8306
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000008396 00000 n
0000008419 00000 n
0000008592 00000 n
0000008666 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
8725
%%EOF

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "fave_48.pdf",
"filename" : "favourites_48.pdf",
"idiom" : "universal"
}
],

View File

@ -1,247 +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 5.000000 3.946289 cm
0.000000 0.000000 0.000000 scn
8.635828 2.820679 m
9.321689 1.681164 l
8.635828 2.820679 l
h
9.731453 16.567810 m
10.600920 17.574253 l
9.731453 16.567810 l
h
1.384685 25.091970 m
1.496809 23.766705 l
1.384685 25.091970 l
h
1.051567 24.066368 m
1.921034 25.072811 l
1.051567 24.066368 l
h
20.038393 37.786930 m
18.814356 37.266705 l
20.038393 37.786930 l
h
18.961609 37.786930 m
17.737572 38.307156 l
18.961609 37.786930 l
h
26.180216 26.059437 m
26.292339 27.384703 l
26.180216 26.059437 l
h
24.508167 27.270023 m
23.284132 26.749798 l
24.508167 27.270023 l
h
37.948433 24.066368 m
38.817898 23.059925 l
37.948433 24.066368 l
h
37.615314 25.091970 m
37.503193 23.766705 l
37.615314 25.091970 l
h
28.628592 14.598795 m
27.333555 14.295841 l
28.628592 14.598795 l
h
29.268547 16.567810 m
28.399080 17.574253 l
29.268547 16.567810 l
h
30.364174 2.820679 m
31.050034 3.960194 l
31.050034 3.960194 l
30.364174 2.820679 l
h
31.235470 3.455151 m
32.530506 3.758102 l
31.235470 3.455151 l
h
19.801676 9.178118 m
19.115814 8.038603 l
19.115814 8.038603 l
19.801676 9.178118 l
h
19.115814 8.038603 m
29.678312 1.681164 l
31.050034 3.960194 l
20.487535 10.317635 l
19.115814 8.038603 l
h
32.530506 3.758102 m
29.923628 14.901747 l
27.333555 14.295841 l
29.940432 3.152195 l
32.530506 3.758102 l
h
30.138014 15.561367 m
38.817898 23.059925 l
37.078964 25.072811 l
28.399080 17.574253 l
30.138014 15.561367 l
h
37.727440 26.417236 m
26.292339 27.384703 l
26.068092 24.734173 l
37.503193 23.766705 l
37.727440 26.417236 l
h
25.732204 27.790249 m
21.262428 38.307156 l
18.814356 37.266705 l
23.284132 26.749798 l
25.732204 27.790249 l
h
17.737572 38.307156 m
13.267798 27.790249 l
15.715871 26.749798 l
20.185644 37.266705 l
17.737572 38.307156 l
h
12.707662 27.384703 m
1.272561 26.417236 l
1.496809 23.766705 l
12.931910 24.734173 l
12.707662 27.384703 l
h
0.182100 23.059925 m
8.861986 15.561367 l
10.600920 17.574253 l
1.921034 25.072811 l
0.182100 23.059925 l
h
9.076371 14.901747 m
6.469495 3.758102 l
9.059568 3.152195 l
11.666444 14.295841 l
9.076371 14.901747 l
h
9.321689 1.681164 m
19.884186 8.038603 l
18.512465 10.317635 l
7.949968 3.960194 l
9.321689 1.681164 l
h
6.469495 3.758102 m
6.083770 2.109238 7.870839 0.807915 9.321689 1.681164 c
7.949968 3.960194 l
8.514397 4.299919 9.209628 3.793659 9.059568 3.152195 c
6.469495 3.758102 l
h
8.861986 15.561367 m
9.050550 15.398468 9.133131 15.144379 9.076371 14.901747 c
11.666444 14.295841 l
11.948550 15.501760 11.538106 16.764618 10.600920 17.574253 c
8.861986 15.561367 l
h
1.272561 26.417236 m
-0.416872 26.274302 -1.100905 24.168316 0.182100 23.059925 c
1.921034 25.072811 l
2.420168 24.641609 2.154054 23.822311 1.496809 23.766705 c
1.272561 26.417236 l
h
13.267798 27.790249 m
13.170667 27.561710 12.955100 27.405638 12.707662 27.384703 c
12.931910 24.734173 l
14.161719 24.838221 15.233116 25.613928 15.715871 26.749798 c
13.267798 27.790249 l
h
21.262428 38.307156 m
20.601709 39.861759 18.398293 39.861763 17.737572 38.307156 c
20.185644 37.266705 l
19.928600 36.661911 19.071398 36.661915 18.814356 37.266705 c
21.262428 38.307156 l
h
26.292339 27.384703 m
26.044901 27.405638 25.829334 27.561710 25.732204 27.790249 c
23.284132 26.749798 l
23.766886 25.613926 24.838282 24.838221 26.068092 24.734173 c
26.292339 27.384703 l
h
38.817898 23.059925 m
40.100903 24.168312 39.416878 26.274300 37.727440 26.417236 c
37.503193 23.766705 l
36.845943 23.822311 36.579834 24.641613 37.078964 25.072811 c
38.817898 23.059925 l
h
29.923628 14.901747 m
29.866869 15.144379 29.949450 15.398466 30.138014 15.561367 c
28.399080 17.574253 l
27.461895 16.764618 27.051451 15.501762 27.333555 14.295841 c
29.923628 14.901747 l
h
29.678312 1.681164 m
31.129168 0.807911 32.916229 2.109245 32.530506 3.758102 c
29.940432 3.152195 l
29.790373 3.793655 30.485600 4.299923 31.050034 3.960194 c
29.678312 1.681164 l
h
20.487535 10.317635 m
19.879963 10.683325 19.120041 10.683329 18.512465 10.317635 c
19.884186 8.038603 l
19.647816 7.896336 19.352180 7.896338 19.115814 8.038603 c
20.487535 10.317635 l
h
f
n
Q
endstream
endobj
3 0 obj
4135
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000004225 00000 n
0000004248 00000 n
0000004421 00000 n
0000004495 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
4554
%%EOF

View File

@ -0,0 +1,257 @@
%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 8.640038 3.178040 cm
0.000000 0.000000 0.000000 scn
6.261478 5.109386 m
5.424051 6.140068 l
6.261478 5.109386 l
h
2.415318 2.664314 m
2.406842 3.992287 l
2.415318 2.664314 l
h
0.527705 3.562763 m
1.563708 4.393593 l
0.527705 3.562763 l
h
17.377895 10.862392 m
18.215322 11.893072 l
17.377895 10.862392 l
h
15.899100 11.850965 m
16.257063 13.129810 l
15.899100 11.850965 l
h
13.342102 10.862394 m
14.179529 9.831715 l
13.342102 10.862394 l
h
14.820896 11.850965 m
15.178860 10.572121 l
14.820896 11.850965 l
h
30.192291 3.562763 m
29.156288 4.393593 l
30.192291 3.562763 l
h
28.304678 2.664314 m
28.296202 1.336342 l
28.304678 2.664314 l
h
27.225536 37.724377 m
26.622637 36.541122 l
27.225536 37.724377 l
h
30.022438 34.927475 m
31.205694 35.530376 l
30.022438 34.927475 l
h
3.494461 37.724377 m
2.891561 38.907635 l
3.494461 37.724377 l
h
10.240000 37.093937 m
20.479986 37.093937 l
20.479986 39.749935 l
10.240000 39.749935 l
10.240000 37.093937 l
h
29.391996 28.181934 m
29.391996 8.089657 l
32.047997 8.089657 l
32.047997 28.181934 l
29.391996 28.181934 l
h
25.295948 6.140064 m
18.215322 11.893072 l
16.540470 9.831713 l
23.621094 4.078705 l
25.295948 6.140064 l
h
12.504675 11.893072 m
5.424051 6.140068 l
7.098906 4.078709 l
14.179529 9.831715 l
12.504675 11.893072 l
h
1.328000 8.089663 m
1.328000 28.181942 l
-1.328000 28.181942 l
-1.328000 8.089663 l
1.328000 8.089663 l
h
5.424051 6.140068 m
4.402600 5.310135 3.707039 4.746693 3.163149 4.381077 c
2.897757 4.202675 2.710315 4.100582 2.576172 4.044216 c
2.447700 3.990234 2.400969 3.992249 2.406842 3.992287 c
2.423795 1.336342 l
3.258891 1.341671 3.998366 1.742203 4.644900 2.176819 c
5.312774 2.625778 6.118561 3.282177 7.098906 4.078709 c
5.424051 6.140068 l
h
-1.328000 8.089663 m
-1.328000 6.826519 -1.329317 5.787216 -1.256605 4.985760 c
-1.186216 4.209911 -1.030768 3.383423 -0.508299 2.731930 c
1.563708 4.393593 l
1.567382 4.389011 1.536350 4.424007 1.497233 4.557758 c
1.456389 4.697414 1.417425 4.907269 1.388531 5.225739 c
1.329317 5.878414 1.328000 6.773554 1.328000 8.089663 c
-1.328000 8.089663 l
h
2.406842 3.992287 m
2.079242 3.990196 1.768668 4.138020 1.563708 4.393593 c
-0.508299 2.731930 l
0.204472 1.843143 1.284526 1.329071 2.423795 1.336342 c
2.406842 3.992287 l
h
18.215322 11.893072 m
17.870771 12.173019 17.557215 12.428867 17.277817 12.623514 c
16.984676 12.827738 16.656111 13.018112 16.257063 13.129810 c
15.541137 10.572121 l
15.541925 10.571899 15.593106 10.560205 15.759577 10.444231 c
15.939793 10.318680 16.165714 10.136200 16.540470 9.831713 c
18.215322 11.893072 l
h
14.179529 9.831715 m
14.554282 10.136202 14.780205 10.318680 14.960420 10.444231 c
15.126890 10.560205 15.178071 10.571899 15.178860 10.572121 c
14.462933 13.129810 l
14.063885 13.018112 13.735321 12.827738 13.442180 12.623516 c
13.162783 12.428869 12.849226 12.173021 12.504675 11.893072 c
14.179529 9.831715 l
h
16.257063 13.129810 m
15.670297 13.294054 15.049700 13.294054 14.462933 13.129810 c
15.178860 10.572121 l
15.297341 10.605284 15.422654 10.605284 15.541137 10.572121 c
16.257063 13.129810 l
h
29.391996 8.089657 m
29.391996 6.773550 29.390678 5.878414 29.331465 5.225739 c
29.302572 4.907269 29.263607 4.697414 29.222763 4.557758 c
29.183647 4.424007 29.152615 4.389011 29.156288 4.393593 c
31.228294 2.731930 l
31.750763 3.383423 31.906212 4.209911 31.976601 4.985760 c
32.049313 5.787212 32.047997 6.826513 32.047997 8.089657 c
29.391996 8.089657 l
h
23.621094 4.078705 m
24.601437 3.282177 25.407223 2.625778 26.075096 2.176819 c
26.721630 1.742203 27.461105 1.341671 28.296202 1.336342 c
28.313154 3.992287 l
28.319027 3.992249 28.272297 3.990234 28.143824 4.044216 c
28.009682 4.100582 27.822239 4.202671 27.556849 4.381073 c
27.012959 4.746689 26.317398 5.310135 25.295948 6.140064 c
23.621094 4.078705 l
h
29.156288 4.393593 m
28.951328 4.138020 28.640755 3.990196 28.313154 3.992287 c
28.296202 1.336342 l
29.435471 1.329071 30.515524 1.843143 31.228294 2.731930 c
29.156288 4.393593 l
h
20.479986 37.093937 m
22.294069 37.093937 23.574766 37.092903 24.575359 37.011150 c
25.560450 36.930668 26.156532 36.778614 26.622637 36.541122 c
27.828436 38.907635 l
26.925505 39.367702 25.940983 39.564426 24.791643 39.658329 c
23.657806 39.750969 22.250244 39.749935 20.479986 39.749935 c
20.479986 37.093937 l
h
32.047997 28.181934 m
32.047997 29.952190 32.049030 31.359749 31.956390 32.493584 c
31.862486 33.642921 31.665760 34.627445 31.205694 35.530376 c
28.839182 34.324577 l
29.076674 33.858471 29.228727 33.262390 29.309212 32.277302 c
29.390965 31.276711 29.391996 29.996016 29.391996 28.181934 c
32.047997 28.181934 l
h
26.622637 36.541122 m
27.576994 36.054852 28.352911 35.278934 28.839182 34.324577 c
31.205694 35.530376 l
30.464785 36.984489 29.282551 38.166725 27.828436 38.907635 c
26.622637 36.541122 l
h
10.240000 39.749935 m
8.469745 39.749935 7.062186 39.750969 5.928351 39.658329 c
4.779013 39.564426 3.794492 39.367702 2.891561 38.907635 c
4.097360 36.541122 l
4.563464 36.778614 5.159545 36.930668 6.144634 37.011150 c
7.145226 37.092903 8.425919 37.093937 10.240000 37.093937 c
10.240000 39.749935 l
h
1.328000 28.181942 m
1.328000 29.996021 1.329033 31.276712 1.410784 32.277302 c
1.491269 33.262390 1.643323 33.858471 1.880815 34.324577 c
-0.485698 35.530376 l
-0.945765 34.627445 -1.142490 33.642925 -1.236395 32.493587 c
-1.329033 31.359753 -1.328000 29.952194 -1.328000 28.181942 c
1.328000 28.181942 l
h
2.891561 38.907635 m
1.437445 38.166725 0.255211 36.984489 -0.485698 35.530376 c
1.880815 34.324577 l
2.367085 35.278934 3.143002 36.054852 4.097360 36.541122 c
2.891561 38.907635 l
h
f
n
Q
endstream
endobj
3 0 obj
5667
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000005757 00000 n
0000005780 00000 n
0000005953 00000 n
0000006027 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
6086
%%EOF

View File

@ -1044,15 +1044,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
case .all:
break
}
actions.reactionItems.append(ReactionContextItem(
reaction: ReactionContextItem.Reaction(rawValue: reaction.value),
actions.reactionItems.append(.reaction(ReactionItem(
reaction: ReactionItem.Reaction(rawValue: reaction.value),
appearAnimation: reaction.appearAnimation,
stillAnimation: reaction.selectAnimation,
listAnimation: centerAnimation,
largeListAnimation: reaction.activateAnimation,
applicationAnimation: aroundAnimation,
largeApplicationAnimation: reaction.effectAnimation
))
)))
}
}
@ -1062,24 +1062,24 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
strongSelf.currentContextController = controller
controller.reactionSelected = { [weak controller] value, isLarge in
guard let strongSelf = self, let message = messages.first else {
guard let strongSelf = self, let message = messages.first, let reaction = value.reaction else {
return
}
var updatedReaction: String? = value.reaction.rawValue
var updatedReaction: String? = reaction.rawValue
var isFirst = true
for attribute in topMessage.attributes {
if let attribute = attribute as? ReactionsMessageAttribute {
for reaction in attribute.reactions {
if reaction.value == value.reaction.rawValue {
if reaction.isSelected {
for existingReaction in attribute.reactions {
if existingReaction.value == reaction.rawValue {
if existingReaction.isSelected {
updatedReaction = nil
}
isFirst = false
}
}
} else if let attribute = attribute as? PendingReactionsMessageAttribute {
if let current = attribute.value, current == value.reaction.rawValue {
if let current = attribute.value, current == reaction.rawValue {
updatedReaction = nil
}
}
@ -1302,8 +1302,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
standaloneReactionAnimation.animateReactionSelection(
context: strongSelf.context,
theme: strongSelf.presentationData.theme,
reaction: ReactionContextItem(
reaction: ReactionContextItem.Reaction(rawValue: reaction.value),
reaction: ReactionItem(
reaction: ReactionItem.Reaction(rawValue: reaction.value),
appearAnimation: reaction.appearAnimation,
stillAnimation: reaction.selectAnimation,
listAnimation: centerAnimation,
@ -6231,8 +6231,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
standaloneReactionAnimation.animateReactionSelection(
context: strongSelf.context,
theme: strongSelf.presentationData.theme,
reaction: ReactionContextItem(
reaction: ReactionContextItem.Reaction(rawValue: reaction.value),
reaction: ReactionItem(
reaction: ReactionItem.Reaction(rawValue: reaction.value),
appearAnimation: reaction.appearAnimation,
stillAnimation: reaction.selectAnimation,
listAnimation: centerAnimation,

View File

@ -2764,8 +2764,8 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
standaloneReactionAnimation.animateReactionSelection(
context: self.context,
theme: item.presentationData.theme.theme,
reaction: ReactionContextItem(
reaction: ReactionContextItem.Reaction(rawValue: reaction.value),
reaction: ReactionItem(
reaction: ReactionItem.Reaction(rawValue: reaction.value),
appearAnimation: reaction.appearAnimation,
stillAnimation: reaction.selectAnimation,
listAnimation: centerAnimation,

View File

@ -617,7 +617,7 @@ func contextMenuForChatPresentationInterfaceState(chatPresentationInterfaceState
if let starStatus = data.starStatus {
actions.append(.action(ContextMenuActionItem(text: starStatus ? chatPresentationInterfaceState.strings.Stickers_RemoveFromFavorites : chatPresentationInterfaceState.strings.Stickers_AddToFavorites, icon: { theme in
return generateTintedImage(image: starStatus ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.actionSheet.primaryTextColor)
return generateTintedImage(image: starStatus ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.actionSheet.primaryTextColor)
}, action: { _, f in
interfaceInteraction.toggleMessageStickerStarred(messages[0].id)
f(.default)

View File

@ -132,7 +132,7 @@ final class ChatMediaInputMetaSectionItemNode: ListViewItemNode {
self.imageNode = ASImageNode()
self.imageNode.isLayerBacked = true
self.imageNode.contentMode = .scaleAspectFit
self.imageNode.contentMode = .center
self.textNodeContainer = ASDisplayNode()
self.textNodeContainer.isUserInteractionEnabled = false
@ -180,7 +180,7 @@ final class ChatMediaInputMetaSectionItemNode: ListViewItemNode {
}
func updateTheme(account: Account, theme: PresentationTheme, strings: PresentationStrings, expanded: Bool) {
let imageSize = CGSize(width: 26.0 * 1.6, height: 26.0 * 1.6)
let imageSize = CGSize(width: 44.0, height: 42.0)
self.imageNode.frame = CGRect(origin: CGPoint(x: floor((expandedBoundingSize.width - imageSize.width) / 2.0), y: floor((expandedBoundingSize.height - imageSize.height) / 2.0) + UIScreenPixel), size: imageSize)
self.textNodeContainer.frame = CGRect(origin: CGPoint(x: floor((expandedBoundingSize.width - imageSize.width) / 2.0) + verticalOffset, y: floor((expandedBoundingSize.height - imageSize.height) / 2.0) + 1.0), size: imageSize)

View File

@ -1583,7 +1583,7 @@ final class ChatMediaInputNode: ChatInputNode {
}
}
menuItems.append(
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {
@ -1701,7 +1701,7 @@ final class ChatMediaInputNode: ChatInputNode {
}
menuItems.append(
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -493,7 +493,7 @@ private final class FeaturedStickersScreenNode: ViewControllerTracingNode {
}
f(.default)
})),
.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {
@ -557,7 +557,7 @@ private final class FeaturedStickersScreenNode: ViewControllerTracingNode {
}
f(.default)
})),
.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.presentationData.strings.Stickers_RemoveFromFavorites : strongSelf.presentationData.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -182,7 +182,7 @@ final class HorizontalStickersChatContextPanelNode: ChatInputContextPanelNode {
let _ = controllerInteraction.sendSticker(.standalone(media: item.file), false, false, nil, true, itemNode, itemNode.bounds)
})),
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -134,7 +134,7 @@ private final class InlineReactionSearchStickersNode: ASDisplayNode, UIScrollVie
})))
menuItems.append(
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {

View File

@ -138,7 +138,7 @@ final class StickersChatInputContextPanelNode: ChatInputContextPanelNode {
let _ = controllerInteraction.sendSticker(.standalone(media: item.file), false, false, nil, true, itemNode, itemNode.bounds)
})),
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unstar") : UIImage(bundleImageName: "Chat/Context Menu/Rate"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
.action(ContextMenuActionItem(text: isStarred ? strongSelf.strings.Stickers_RemoveFromFavorites : strongSelf.strings.Stickers_AddToFavorites, icon: { theme in generateTintedImage(image: isStarred ? UIImage(bundleImageName: "Chat/Context Menu/Unfave") : UIImage(bundleImageName: "Chat/Context Menu/Fave"), color: theme.contextMenu.primaryColor) }, action: { [weak self] _, f in
f(.default)
if let strongSelf = self {