Commit a2923d259ba809174dabcd61758bfe92de317426

Authored by liushiyu
1 parent ca5150a0

3.1.2

Showing 31 changed files with 1226 additions and 1641 deletions

Too many changes to show.

To preserve performance only 31 of 80 files are displayed.

Example/Podfile
... ... @@ -9,7 +9,7 @@ target 'YBImageBrowser_DSCnliveShop_Example' do
9 9 target 'YBImageBrowser_DSCnliveShop_Tests' do
10 10 inherit! :search_paths
11 11  
12   - pod 'SDWebImage'
  12 + pod 'SDWebImage','~>5.2.3'
13 13 pod 'YYKit'
14 14  
15 15 end
... ...
Example/Podfile.lock
1 1 PODS:
2   - - SDWebImage (5.8.4):
3   - - SDWebImage/Core (= 5.8.4)
4   - - SDWebImage/Core (5.8.4)
5   - - YBImageBrowser_DSCnliveShop (3.1.0):
6   - - SDWebImage
  2 + - SDWebImage (5.2.5):
  3 + - SDWebImage/Core (= 5.2.5)
  4 + - SDWebImage/Core (5.2.5)
  5 + - YBImageBrowser_DSCnliveShop (3.1.2):
  6 + - SDWebImage (~> 5.2.3)
7 7 - YYKit
8 8 - YYKit (1.0.9):
9 9 - YYKit/no-arc (= 1.0.9)
10 10 - YYKit/no-arc (1.0.9)
11 11  
12 12 DEPENDENCIES:
13   - - SDWebImage
  13 + - SDWebImage (~> 5.2.3)
14 14 - YBImageBrowser_DSCnliveShop (from `../`)
15 15 - YYKit
16 16  
... ... @@ -24,10 +24,10 @@ EXTERNAL SOURCES:
24 24 :path: "../"
25 25  
26 26 SPEC CHECKSUMS:
27   - SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9
28   - YBImageBrowser_DSCnliveShop: beca1a333282098979595a7eae0a73a4805d14a5
  27 + SDWebImage: 4eabf2fa6695c95c47724214417a9c036c965e4a
  28 + YBImageBrowser_DSCnliveShop: 0c757771a976328769463a9a55e43957030941c5
29 29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
30 30  
31   -PODFILE CHECKSUM: 1c9382532bba4c074f5c669a65132a33e0cc5171
  31 +PODFILE CHECKSUM: 634c1354f9225a9c3712a8a331ac1d0e0476a483
32 32  
33 33 COCOAPODS: 1.9.1
... ...
Example/Pods/Local Podspecs/YBImageBrowser_DSCnliveShop.podspec.json
1 1 {
2 2 "name": "YBImageBrowser_DSCnliveShop",
3   - "version": "3.1.0",
  3 + "version": "3.1.2",
4 4 "summary": "YBImageBrowser改依赖为YYKit",
5 5 "homepage": "http://bj.gitlab.cnlive.com/DSIOSTeam",
6 6 "authors": {
... ... @@ -9,7 +9,7 @@
9 9 "license": "MIT",
10 10 "source": {
11 11 "git": "http://bj.gitlab.cnlive.com/DSIOSTeam/YBImageBrowser_DSCnliveShop.git",
12   - "tag": "3.1.0"
  12 + "tag": "3.1.2"
13 13 },
14 14 "platforms": {
15 15 "ios": "9.0"
... ... @@ -21,7 +21,7 @@
21 21 ],
22 22 "dependencies": {
23 23 "SDWebImage": [
24   -
  24 + "~>5.2.3"
25 25 ],
26 26 "YYKit": [
27 27  
... ...
Example/Pods/Manifest.lock
1 1 PODS:
2   - - SDWebImage (5.8.4):
3   - - SDWebImage/Core (= 5.8.4)
4   - - SDWebImage/Core (5.8.4)
5   - - YBImageBrowser_DSCnliveShop (3.1.0):
6   - - SDWebImage
  2 + - SDWebImage (5.2.5):
  3 + - SDWebImage/Core (= 5.2.5)
  4 + - SDWebImage/Core (5.2.5)
  5 + - YBImageBrowser_DSCnliveShop (3.1.2):
  6 + - SDWebImage (~> 5.2.3)
7 7 - YYKit
8 8 - YYKit (1.0.9):
9 9 - YYKit/no-arc (= 1.0.9)
10 10 - YYKit/no-arc (1.0.9)
11 11  
12 12 DEPENDENCIES:
13   - - SDWebImage
  13 + - SDWebImage (~> 5.2.3)
14 14 - YBImageBrowser_DSCnliveShop (from `../`)
15 15 - YYKit
16 16  
... ... @@ -24,10 +24,10 @@ EXTERNAL SOURCES:
24 24 :path: "../"
25 25  
26 26 SPEC CHECKSUMS:
27   - SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9
28   - YBImageBrowser_DSCnliveShop: beca1a333282098979595a7eae0a73a4805d14a5
  27 + SDWebImage: 4eabf2fa6695c95c47724214417a9c036c965e4a
  28 + YBImageBrowser_DSCnliveShop: 0c757771a976328769463a9a55e43957030941c5
29 29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
30 30  
31   -PODFILE CHECKSUM: 1c9382532bba4c074f5c669a65132a33e0cc5171
  31 +PODFILE CHECKSUM: 634c1354f9225a9c3712a8a331ac1d0e0476a483
32 32  
33 33 COCOAPODS: 1.9.1
... ...
Example/Pods/Pods.xcodeproj/project.pbxproj
... ... @@ -8,71 +8,65 @@
8 8  
9 9 /* Begin PBXBuildFile section */
10 10 0060D0002F5404112A217929E462A1E3 /* NSString+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
11   - 010A21434427A1E7CE25060BA3A66A61 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
12   - 013FB3424E97C9CBA093B58F3FF74537 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
13 11 0272570CDAD7111506606BBA6F85A080 /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
14 12 029C5740548FC68443365660D8ABA6F9 /* UIColor+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
15   - 02A4C8ABD5DCC501DE7A6CE19B398E14 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
16   - 02B6598C52131C10E3CA344FB49B87FA /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };
17 13 02C881CC8FD4159AA03D68B194FD365B /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
18   - 033813F58E3D20FA511AF1B5C3D58FA7 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
19 14 048D7570F580B28F3DF0FC0B2AA930EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
20 15 04ADC5DD2971F1A73C00ADF4C40439EB /* YYTextContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  16 + 06012BECF3390F6D209D81ABC29DEE7F /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };
21 17 0678C6B089EDAAEBF0ABD11243A753A3 /* YYDispatchQueuePool.h in Headers */ = {isa = PBXBuildFile; fileRef = E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */; settings = {ATTRIBUTES = (Public, ); }; };
  18 + 06EF6A665BCC7FDFD85BD8ABD55A3959 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
22 19 0751F49015B77B3FB215DB3AD60A231D /* YBIBCopywriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
23 20 0755CF3A071367BA31851EB62D5B2A60 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
  21 + 07ECBE230ADCE64A5E565EAC5608FE06 /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
24 22 083BF8C20CE1E1F3773EE3C5536D0B0C /* YBIBImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  23 + 0897E820C9A330AEE938549F3A202047 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  24 + 09291E0580080AF730970F2DE20C6F2F /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
25 25 098E4E9C697F092846351BE92E971CCB /* YYDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
26   - 09EB95CBDF8D54EB05C26A5196EBBB65 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; };
  26 + 0A12ECF7CCD9D053812435656179FE07 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
27 27 0A29B5E3535A71017ED3189727F50C85 /* YYThreadSafeDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
28 28 0C2C51B9FDB2D20A15B32D15242BFBEA /* YBIBCellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
29 29 0CCE71ACEC301683C4A76B510BF57603 /* YBIBTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
30   - 0CD7B135FD4B84BDB1FB8727A2F85550 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
31 30 0D11DEFCE2724FE3C96AC4EE40F55DDF /* YBIBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
32 31 0E1842A4AB5D622772AEB9F4B6287A8D /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
33 32 0E5602930F727902D8CBC2F207D498D4 /* YBIBToolViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
34 33 0F1D2464A4C6139BB34E7B6E6E39023B /* NSObject+YYAddForKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
35 34 0F4E5CD38D18F2E3E75AC64F03934E98 /* YYKitMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */; settings = {ATTRIBUTES = (Public, ); }; };
36 35 0FC30F9DC8F64DC4B502B719869ED79C /* YYTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B335348A63303EE2CF47F0FB10EC9122 /* YYTextUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
37   - 104CBAC9F34C7B8475A096C4B0ACA3A0 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; };
38   - 1201437E196032353D4D2B2DF8206775 /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
  36 + 11631B3F15728204C488D6CF17DA63BF /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; };
39 37 122BD5442BBECACB54A06747DED37B0F /* YYWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
40 38 1238CAAE4120F0A66FDD66BC8ECA2418 /* YYWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; };
41   - 12A76A691E704E6EBE12CC888639C31A /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
42   - 1367682CED02F22D43F248A0E36CC17B /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; };
  39 + 130C29DD67F0DACDAA2E6A57DA2422D7 /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; };
43 40 137968123E34895CA083FE3FE12F8F57 /* YYAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  41 + 13B7C26AFEF7B9A9BB71D6340836C1D2 /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
44 42 14958A9E9713112DA8B0BDD453321168 /* YYTextSelectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
45   - 14C2D66D5EC7A892325562A7830E78D4 /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
46   - 14E9103FD1B1EFBE7BA8EE1137810EB2 /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
47   - 16B189FD50EB941DDBCEF3718C511381 /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  43 + 16EBE72F21A776BA4F5FA1B43DA0D550 /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
48 44 16F21DD55C514011E36EDA191BC47CE3 /* YBIBCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
49   - 183F84DC6D79A0F93AE6C13F2EDDDCD8 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
50 45 192CE67469A2B7BAD4691D712B2C9D13 /* YYMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
51   - 198D45399940A52F6AD442B5F96A24A1 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
52   - 19BA863C27D0A5BBD664CB1ABDA03238 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
53   - 1A04C35F3E2D85CFCAFC9934EAC8E033 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  46 + 1A645DC3F75D98F78F685E7E8172E6C4 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; };
  47 + 1A696C66B1AD121F4D74F70046E722BE /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
54 48 1B3F4D1188B463D85D392E89DABCDE88 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
55 49 1B529361E5652CD292D14F89C9D29ED3 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
56 50 1B8FD7D8E9EDF9BBA7ACD5FB448BE517 /* UIButton+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
57 51 1D457A5D62A3B26C40A0BF028086C923 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  52 + 1D8DC86B542A5C7B185D576593BFEF08 /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
58 53 204561FFAF8A0B7292A4045AFA3E6C96 /* NSThread+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
59   - 21C120EDFCE3F1B685833EAE2F088998 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
  54 + 21C54761AEC4B6FF8F628CF62503856C /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; };
60 55 22759285C81AA923E5863F79F180DBF7 /* YYWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
61 56 2294C9BC0119442FE4F0EE31CCD819F7 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  57 + 22AC8168428AA91CEFCC4A1EE18C61A1 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
62 58 22DB5291728E37A7B7580BA838C1A746 /* UIDevice+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
63 59 24437A6D0EA45A0A7D4D93972E399050 /* YYThreadSafeDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
64 60 24EE4728E0D8DCB91B7E600CD3618A99 /* CALayer+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
65 61 258DB6DA0945B112C39132D5F2B71ECE /* YBIBVideoCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
66   - 271841B1A02A31A896499240CC233E7A /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  62 + 27117846D36D17C67AD6B0BC49819C2E /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
67 63 271D732A36C08FBFA8BDDFF597300081 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */; };
68   - 27E23C72CC1BAD100D8F8E52A77E0DED /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
69 64 27E9D86EE4DB53E0619552A3D32CC2C5 /* YBIBVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ED618A61344837183008AF1693E8716 /* YBIBVideoView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
70   - 285BB197A61A0553905D872B6E4F6BA1 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; };
71   - 28B63809D42D68F3E44A2012695EC8E8 /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
72   - 292DFB006819CC5C457430933E9DF2CC /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  65 + 2987181816CE330B8D8C8011A163DED5 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
73 66 299334502C7E8A552B093FA1252592E1 /* YBIBImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
74 67 2ACB60B84B7C79A7739A5B0E44D4C65D /* NSObject+YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; };
75 68 2AF4B545058531DE31545B25783DD75D /* YBIBDataMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  69 + 2BB48CC4F4CCB6ED239A7116C1399192 /* NSBezierPath+RoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; };
76 70 2C74C620DEC4D8EF9E821945D942E42B /* YYTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
77 71 2C9826C18088A3500C545761C905F0F7 /* YYTextParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
78 72 2E0043CD33920B9F3E512FFD04E64A5D /* UIDevice+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
... ... @@ -80,65 +74,63 @@
80 74 2FB2D48CEC9FA3F13FE4C8FB20322356 /* YYReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
81 75 2FF328BC76D267CD2BD2464A76F1BE7B /* YYGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EE8BE60AF36139B6E231F4FA722917 /* YYGestureRecognizer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
82 76 313A089C34F2ECEB35BC86470ADC5FE9 /* YBIBImageCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
  77 + 31486EEF2AE7067DC3FB4C41D8B06044 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
  78 + 31C885C264ACBC869D0C15774FEEEE91 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
83 79 326ACB0AEC6F7BDDCD287D41EEB15F06 /* YBIBVideoData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
84 80 32E6EAEE45FAFBCC7363F8DA2D5ECE30 /* YYTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
85 81 33284B411935766A4D23A0AF0419392F /* YBIBVideoActionBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */; settings = {ATTRIBUTES = (Public, ); }; };
  82 + 3402867F1DCE2F01EE152BE666D15391 /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
86 83 34B96FCCC06C1D11BC31E63DBDE184E7 /* YBIBVideoTopBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */; settings = {ATTRIBUTES = (Public, ); }; };
87   - 34E8A42A4CD18CF55A1C5CBD1F222D71 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
88 84 34ED3A525719FD3EE9F2A7789D12D7D7 /* YYFileHash.h in Headers */ = {isa = PBXBuildFile; fileRef = B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */; settings = {ATTRIBUTES = (Public, ); }; };
89   - 3526C8C7BD0C5256C819AEB8DE26BC80 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */; };
90 85 35E986B3D2EF9589EDA6898E692750A1 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
91 86 36B94DF1E7E7776212429AE5CF1456B6 /* YBIBOperateBrowserProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
  87 + 3768A48148C1A559EFA6857AEE21499C /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
92 88 37E4FA1562451631BA152EDCB15710CF /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
93 89 384E30CBBBD2B4A155A989F32F982BEC /* YBImageBrowser_DSCnliveShop-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */; };
94 90 3951BC1F545F8733CBFC8E36CD6EC461 /* YYThreadSafeArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F23CF51EA97FF806B2D6A43C0B0AD50 /* YYThreadSafeArray.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
95 91 398ECA87D5BDB9FAAC6424101D8C1DB3 /* YYImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  92 + 3A717A936244852C7999DF2ACDD3EBA4 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
96 93 3B365E37B4FC771DA78CDE4C81E9ACC2 /* YBIBInteractionProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
97 94 3B697DC46854D39C5E029789A7EB60CF /* NSNotificationCenter+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
98   - 3BAC7E6B28028F929677080D34286C9A /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  95 + 3B9737EB4BDEA61D7A6D7C2F83ADE16B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
99 96 3C1845A20677487130FEEB952FB3743C /* YYThreadSafeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */; settings = {ATTRIBUTES = (Public, ); }; };
100 97 3CA5A2706484756D1BA83EFE6B50B63F /* YBIBSheetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  98 + 3CBE3496D679F3CAC215C24E124CEF20 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
101 99 3CECF913D9FE0F03BD7228B4E1C9EF71 /* YBIBTopView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */; settings = {ATTRIBUTES = (Public, ); }; };
102 100 3D05DA022EDD102E5514E769E47AE751 /* YYTextInput.m in Sources */ = {isa = PBXBuildFile; fileRef = E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
103   - 3D269D2B6E70D5134F84F471FA897C1D /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
104 101 3D454A471582F13942DB598AE5959B34 /* NSThread+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; };
105   - 3E404F1C1EF06355EBCAD17AAA6A7655 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  102 + 3F1C17F8ED3A2719985697A88379D691 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
106 103 3F6CD94029B30B62256BEE04B742944E /* NSKeyedUnarchiver+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
107   - 3FE529AB19EA206854B9668E508D927B /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
108 104 406944DED312A7E5BA1B0003EECEA947 /* NSTimer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
109 105 40802954DE9E2C6E621F0A6C52ECF32A /* UIButton+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
110 106 40B5E49E3E7BA95180F22F1F19BC719C /* YBIBImageData.h in Headers */ = {isa = PBXBuildFile; fileRef = CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */; settings = {ATTRIBUTES = (Public, ); }; };
111   - 40DD3721BA61598A56ECF57BB1C45EE8 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
112 107 40F884DA82F3490D28EE4A18D067133D /* YBIBImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
113 108 41CB6255FC0ABB5BBFAED4A0F704DD47 /* NSAttributedString+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
114   - 41E823881385B837FA086E301CBBB87C /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; };
115   - 42BB3098DC0E47748C6AD61A10575859 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
116   - 4458F0F06DDB8ED606F8089B51DE2857 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
117   - 449AF3A1E1DEFBD47B2411DAD0E5D6CC /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
118   - 44F7C039A4502CB6ABFE93BC1626ADAF /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  109 + 41D2B74D60CECB9A13273FEA70EB0853 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; };
  110 + 43367367332A88EC53B2BEA287BAA3DD /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  111 + 43413AE961CEDF130DB347D12953F90F /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
119 112 450020EF80EE2190F959859B70A7200C /* NSNotificationCenter+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
120   - 451775744CDDD8A2805CCC5FAAE96FE6 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
121   - 461394E1264BA539807AE22B6681037D /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
122   - 46E5579E12DEE8B0B0E8B4BD484303AF /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
123   - 477600BAE7223A59EC2D341F7EAA0C5B /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
124   - 47CFA5C583D7B3BFD0FBAD1F1A474913 /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
125 113 48021E999B1E5F973788B56CCA965E25 /* YYTextRunDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
126 114 48229CDD5F7F0027AD9E4156B76F2761 /* YYTextLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */; settings = {ATTRIBUTES = (Public, ); }; };
127 115 4823FF271BD5BF673DC75142A9C9E387 /* UIScreen+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
128 116 4A0AF19D46BA2F0FD4AF851196B38EF2 /* YYSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; };
  117 + 4A295CDE35C0C3A0C3BDC83BAEEBC8D1 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
129 118 4A5A8FC3C886ED3C64CED4D130FE0F03 /* YBIBDefaultWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
  119 + 4A63641D8EA2784EA3ED6DE31D3EEE7B /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
  120 + 4B010F01929654CD157576546C2CA5E5 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
130 121 4B3B7BFD84DD51A967904785A38307B7 /* YBIBContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
131 122 4B8C95CC6A366A73C4F26F2448899292 /* YBIBLoadingView.h in Headers */ = {isa = PBXBuildFile; fileRef = F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */; settings = {ATTRIBUTES = (Public, ); }; };
132 123 4B993FDB4652EC183C92386AD8A826F4 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */; };
133 124 4DE3E72DC3D3D19FF35127E11FACFC2C /* NSData+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
134 125 4E113F880A8F4186232B79C088D5B228 /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
135   - 4F227430C16CAB3FF65A1488229BF46A /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
  126 + 4E303A392C14264AF2A7846A47904C0E /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; };
  127 + 4E5C5A91108AA66D06C8D32C62266D23 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
136 128 4FB4BD99B28E8CFEA3F95747EF6CEF79 /* YBIBSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  129 + 4FB58F2A627219E59C6002407BA17370 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
137 130 4FEFE33A7E35A2D1C37A49A938DEA3BF /* YBIBToolViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
138 131 511503F829FAA5EC9610F4443E3D2847 /* YYTextArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; };
139 132 5170A333176FE316425BF9199E723910 /* YYTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = B4632D2A423ADC26289A01B226F70E28 /* YYTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
140 133 517A0598B2C0EA7B8F5C74D34845F0D5 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
141   - 521A2AB2326986DDA7210B222799D82D /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
142 134 52EB680BFBB3E4C3F09C36F423DF2CC8 /* YYDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
143 135 538760AA208FF206F3BF4156545C0AEC /* YBIBSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
144 136 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */; };
... ... @@ -146,23 +138,23 @@
146 138 54F83939D254C814BD261C4F9067EE45 /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
147 139 54F962BB1E3633A8CE3CD524A2A091EC /* NSObject+YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
148 140 5551655EE581057624E66895BC5A99EF /* YYTextLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
149   - 561EAFCC4AA4A4FFA55319ACF371D31C /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
  141 + 55F81E8A4E05DCEA1424C070100D7A08 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
150 142 565EE0410B39DE584B5CB1DC63FF74A9 /* YBIBDataMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
151   - 56D4C3BEBAF6D7B57123C4A919EDFC4D /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; };
  143 + 56D932D22CCE25078DDC72863C793EB6 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
  144 + 571964893E54957A53F88749EA22E79B /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
152 145 572FF20566D47336C057266897DE4592 /* YBIBVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3378EC961A947D7584285C497BA5C833 /* YBIBVideoCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
153 146 57AA56BCB8A92A8D90C5BA695D8E8FC8 /* UIApplication+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
154   - 580A58EB2DC597145BE726FF15B7B980 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  147 + 584691DE6F6DC43CCB28E2164DDD65C5 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; };
155 148 588A0B34308F4D28990E6B5C34B14E57 /* YYTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; };
156   - 5BCB8102AFF58BDD96E0C059F9B88BB5 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; };
157   - 5C11EACACCF1A59EC89E212517D471D2 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
158   - 5C5058FC446A9C6C4F3FA70C2121A267 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; };
  149 + 5B6E86C662422D902876E9564F7D0D62 /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
  150 + 5BB4DED775A9AB9259E214C9543F2409 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; };
159 151 5CE0FBC3853B89C290600C1D8FAA316D /* YBIBAuxiliaryViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
160 152 5D2EAD73E6A402F5BFED5E1899810342 /* NSData+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  153 + 5D93304CCA386D1CA921179A22788088 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
161 154 5DADAC8CF846B868BB1435BA03B14CB9 /* YBIBWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
162 155 5E21A134F5D88BEDF281002DBB92E3F7 /* YYTextEffectWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
163 156 5E2CDADC7CCD44D0C28AB2517341C12F /* MKAnnotationView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
164   - 5E96F449788433CD16C308CA4C4974AB /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
165   - 5EC0E24AEBC97BED8827D6824B20AEA3 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  157 + 5F7825DA2B38AE6F113742CD8640B6A5 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
166 158 5FF823B0C133DC09A947E1EEA83AE787 /* YBImageBrowser+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
167 159 604E401B7BD596E58D52BD8C3439E285 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */; };
168 160 608BA5B01D1787C25CE77E5A4B61010C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */; };
... ... @@ -170,124 +162,112 @@
170 162 613F0D98262025998DBC67A9DD29438C /* YYKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
171 163 623635ED16355C8405DDCCEE7E014476 /* YBIBVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; };
172 164 62EE7A80845DFDB75A9E1F0ABEE8A761 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
173   - 64CB4C39356EDD005F3104B820F4B299 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  165 + 637C07DAF593E361026C13455CED3356 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  166 + 6419E84A00BD1CC2D89FBD11DBA95B35 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  167 + 642B272637AFE100C01566715BE9A90E /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
174 168 64CE031D05AF0C7617076D3ADD88DCB8 /* YBIBImageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
175   - 64F3EB426774D6F1D593DBFAFFBF6791 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
176   - 66794E1E249B57756C75632B1CF7AA7A /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  169 + 66ABFE235C4A3EE1284E40B26EC06E50 /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  170 + 66E7DB4A06FD62E3319504FA066A159D /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
177 171 66EEEC491B30074BACEFD2257033864B /* YBImageBrowser_DSCnliveShop-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
178 172 6711B19F0807169D6079C83D4BFDF7D2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */; };
179 173 676B7D9D11B4F2687F9B296CC9950AA7 /* YYTextMagnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B436707B203DBCBB754448AF3071705A /* YYTextMagnifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
180 174 67992FD17748FE24783B25E1BF320274 /* YYLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */; settings = {ATTRIBUTES = (Public, ); }; };
181 175 68F3A40EADC0AF71E41CC70C36F6976E /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
182 176 696CD1B74C639EE917E0D2A956F50935 /* YYTextUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
183   - 69979E7EF7E1322AF64B9D04EC5DC4FC /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
184 177 69B6CA397711950A1FB1F7159D8C730D /* YBIBCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
185   - 69FC796803AADF6F7D78E034F759E07A /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; };
  178 + 69B78205FADBA6F82DD7D8842E744559 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
186 179 6AFF36353F18609B9EBF04EEFFF0AB4B /* YBIBPhotoAlbumManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
187   - 6B8E9A4250E31C61FFB2FA44B1ED587D /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
  180 + 6B841305B372900E43EAD6CF233EA695 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
188 181 6BACCB1BBF481BA828D7226094996218 /* UIBezierPath+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
189 182 6C294CB68EBA0C3F43058CCA6D0629DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
  183 + 6C9E415ACF9DBBF5276A439ECA83FF41 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
190 184 6DCEAB9BC2D35D749577C700151E76BE /* YYCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
191   - 6F14B66A0031F8CD2DBD49D05F285A5A /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
192   - 6F52C02EB7BEBB28BEF797764940E83D /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  185 + 6E23CCE1DD2C5694FB3733EF5969C2BA /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
193 186 6FFF65E8EF55589DBF7739C2B3C0C408 /* YYTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
194 187 7100C768AE648D8FF211D24F285AF3F7 /* YYTextRunDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
195   - 71C055BCF544D98F47CCFB404A9157A0 /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
196 188 71F103B56B2BE2EED9760CB429416EC9 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
  189 + 720BDB7561A9BF9FAA229655BF6BAACB /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
197 190 7239A93C05A719FEA5955CA08CACD819 /* NSBundle+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
198   - 725C541DA4309D9A2CE04EA1BAC9DB05 /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
199   - 7320BE37CC5564C9200656A346D16D7C /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  191 + 7296ED68E239CF8323284C327EFD34DB /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */; };
200 192 74A52BA6F30673465B7D46D9C0D589DF /* NSObject+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
201   - 758D45C8E630A9B2A29746AFAB257929 /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; };
202 193 75EFCC25F3AB66922773B08B40ACB930 /* YBIBImageCache+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
  194 + 765CF9D27014B63D63045C295D14D47F /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
  195 + 768B0529984555456940B969FB3B0C5B /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
203 196 771B60C15778D6A1F7F9EBA03217C0FE /* YBIBSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; };
204   - 7829F86094FA530717C4AF09DFA1FCB7 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; };
  197 + 773F599C7937832DC3E3C3F5FC41A2BF /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
205 198 783E03543353E623E739BE78A5929AF8 /* YBIBLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
206 199 78425788741B147A8800D730F768DDC9 /* UITableView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
207 200 7854082241AE68119F337D38216F3C71 /* YBIBCopywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
208   - 78A8F86E5996E580294B65E304C65F6A /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
  201 + 78C4797B83602657490272FB5AC87882 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
209 202 7906BC8879E295E9832A8668BEDAD6E9 /* YBIBDefaultWebImageMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
210   - 79140F3DB1DFA9969EF7EA809862461B /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
211   - 7A39F3B62173880BC1A1E872B2B0DE19 /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
212   - 7BDCFF16AD5094651DDF91E007A194A1 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; };
  203 + 7AA1932AD1AADADB7084C1120E353441 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  204 + 7BE352AC96A490424A89542C59B92D27 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
213 205 7BFB921FDAB6E3FE9ECDECF872C8E101 /* NSObject+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
214   - 7C9BCCE2BE2AB0F74617E9638E8383E2 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
215   - 7CB9508A6133F4674F3358339F62CF03 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
216 206 7D3C72B253473131AA5D6B75A4044A4D /* YYTextLine.m in Sources */ = {isa = PBXBuildFile; fileRef = CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
217 207 7E798DEF60E5AB2D32D36B2604826737 /* YBIBImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
218   - 7F47C6E48CDC5A9B788F8EB05D826BE6 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */; };
219 208 7F779583472271986B6B9AFE3C708D20 /* CALayer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  209 + 8095235275C7774DBD0439AEBF02EBF9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
220 210 8162CC737D0F996DB7986B1B89C50B29 /* NSParagraphStyle+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
221   - 826CC80A43888E4B01B8C0F546CCEB4C /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
222 211 82B7DA9954D4613DC589CF3A6D681E3A /* YBIBInteractionProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
223 212 82F9FC32B8CEFF860D7AF3ED3D109D79 /* YBIBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 33F8253486294181F468179983E49503 /* YBIBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
224 213 831E7B86A0A02A8B9099B742E8B9F365 /* NSObject+YYAddForARC.h in Headers */ = {isa = PBXBuildFile; fileRef = E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */; settings = {ATTRIBUTES = (Public, ); }; };
225   - 84996105619FE8603B904EBD8CAF4650 /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  214 + 83A3C38994C1BE0F1B3FDC74FF3EB86E /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; };
226 215 85433B42BB6C81E20A75F25805D4BCDB /* YYTextSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
227 216 856B3588D32C1F7B1F12D7EFEB3E6F0B /* YYCGUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
228 217 858027A29B152077943E0A28CE622EB5 /* YYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = B24C89AA8E69F17D8867CB8BAF8453DA /* YYLabel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
229   - 858BA6CE212BDE681F7B8EC99CDEA5A2 /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
230 218 85B06803E42F5D23940D925E5B50BC20 /* CALayer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
231   - 85B91AFDF4CF2F4FB54D35AE96CB02DE /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
232   - 86A92CFC75F685F5805824C81ED34DD9 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; };
233 219 86AA30BB751B23F8B7D87847A0D22CDC /* UIColor+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  220 + 873613A08846E4C11A3D0504EF738DD3 /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
234 221 8789F7B4DB1B1FB100F83B649A587A7E /* UIBarButtonItem+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
235 222 87BA235C9033EB1E9BD42009504AF9EC /* YBIBIconManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
236 223 882B95F4DB08FE20F2326F2C36D7844A /* YBIBPhotoAlbumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
237   - 8860B7C942F4FDAC599E545DEC6E0446 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
238 224 886F2D2210CE2308AA97C645044F692D /* UIBezierPath+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
239 225 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */; };
240 226 890F7FAF9C784AFD91B418628C895EA5 /* UIFont+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
241   - 89A6805309AE158EA70271058AD04DAC /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
242   - 8A1D68B08A42906461750649F460B63E /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  227 + 89AA4B620BAF006802F7FE16331FBB03 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  228 + 8AAEE8B8F842102CB770F4A2C286AEE0 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
243 229 8AE9809EDD831DD756AA7CE5682506C1 /* _YYWebImageSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */; settings = {ATTRIBUTES = (Public, ); }; };
244   - 8B74D26ECDC0A95EADFD2FE3D6044F45 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
245   - 8BE030582BFA5590BC7A1EB1A7E8DDC4 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
  230 + 8B3648DF3CD6DCE1F23B154EEC9F47BC /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  231 + 8B36C6BD6BC521D6EBFAA6C06204C8AE /* UIColor+HexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
246 232 8C0825934BBB790BB7D7F435B99A835F /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
247 233 8C2F2218E1D1A409DB32DEB82289DA8D /* YYDispatchQueuePool.m in Sources */ = {isa = PBXBuildFile; fileRef = F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
248   - 8D6092C5708543E1975D21EF342829A9 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
249   - 8D7206334016EF356DD5C06DB743927A /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
250 234 8E31AD7B15C74C86FAAC41197FFD834C /* UIView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
251 235 8EF950F7068D194AE492ECE97195952B /* YBIBCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
252   - 8F0623242A13E39BB0068F748D5A7819 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
253   - 9058F00D7FB0F44089EA7418C9BE80CD /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  236 + 902A0F8F36BB0CD612BD333AB538FFC0 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
254 237 909A12FCA29D66EFCCDEE05DEAA25AD2 /* UIScreen+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
255   - 90B45AE4B48040DD4DF7B2521A41FA93 /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
256   - 9140B89832569466DC295558951FF9A4 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
257   - 9212629910630E2F8888272B38EA81E4 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
258   - 92253035C5C62FC047813B453A47011B /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  238 + 91EC5D1276C67BD151CE0945E99D346B /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
259 239 92670B7BB6CEA73A198E8A746E1C1CD2 /* YBIBScreenRotationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
260 240 92913C44AD4321D8421DE300F0A9286E /* YYKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
261 241 936E1D7A3C66AE0EF67123511CD08229 /* CALayer+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
262   - 949BA4CC204D826571EA4E85BA769DB7 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; };
263   - 95D70798AF08A9AF6AC0455ABAC50B31 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; };
  242 + 93EEC3D112C8D5BAF8202BBB7C0F8D40 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; };
  243 + 95AC0F0E049EC392931B147F1BA4C11E /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */; };
264 244 96AB2F6D7AE46198D83ED24B28E00003 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
265 245 96FDF5B7C780A120B66EC7342764D4C0 /* NSParagraphStyle+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; };
  246 + 972F3D3004A38B2E91B514317462F912 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
266 247 9732D149C66794908C965F8C1945C883 /* MKAnnotationView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
267 248 989D406D24C2A82F500CDA7740E72F7F /* YYTextKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
268 249 98D3B3E9EA04801317B3AA768D4653AF /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; };
269 250 991B17A23FB6ED5F941D3DCEEC928568 /* NSBundle+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
270 251 99A675497C0B12DF9BE36547C3D0BEBF /* YYTextEffectWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */; settings = {ATTRIBUTES = (Public, ); }; };
  252 + 9A0E1A1BFFD28A2746792BE8D568E3AC /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
271 253 9A4B6430A6C62258BEE1D59C9F32A3CB /* NSDate+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
272   - 9A63822674C925980BCE24CF9162F224 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  254 + 9AA98747F0FFCB4629345C58F9DFF9A2 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
273 255 9AB3FC2B00EE9E46D879EA2A9DFA6F08 /* NSDictionary+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
274   - 9B0ADFBD0EE010BC1AE32B290FAF2D70 /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
275   - 9B9C593A401B16CA1F27613B33259116 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
276   - 9C39FA3EB2A9462B249432F655FC9AA8 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
277   - 9C6F61B6DD8964A03128BB996BCCCDF5 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; };
278   - 9CBF5A5EFC5491417ACEF9D2D6F604DD /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  256 + 9BE4B66909D27FA2DEE5D7B4DAF83DD5 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
279 257 9CC0EAE583AE53B63027C788AE199A3A /* UIImage+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
280 258 9E9EF2A2744A9618CBCF3130012C9C83 /* YBIBAnimatedTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };
  259 + 9F45ED51FB250F999DF9EEE26706306F /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  260 + 9F69D6D21857F40138D7EF02C9934F61 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
281 261 9F72C9269F972EEC75FFB02E1B006D75 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */; };
  262 + 9F8771C9472203AC8A6B882D32E081FD /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; };
282 263 9FB67DB92440E1D202FA1D557981970C /* YYTextDebugOption.m in Sources */ = {isa = PBXBuildFile; fileRef = E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
283 264 9FFD301A8B71CD3BBAF1B47ABE706FB3 /* YYFileHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
284 265 A0C1E82073BA9A8D5944BEFE15AEC8AD /* YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; };
285 266 A0E47F627106545F7381B76B458ED35D /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = F223C16A87C557408148C7C83CCB705A /* YYImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
286 267 A111957E65E970F7FB802F36D821EA1F /* YBIBImageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
287   - A1B62D4B373543D743AC938090EF65F2 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };
288 268 A1F850A263BA608683661E1BA3064F24 /* UIFont+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
289   - A26011648EA7CD910788DBBF08C36F32 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
290   - A3A38FFF99F8F65D21F6526D4D257230 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
  269 + A24ECE056F5DC1A130E45CD9DFDDAE9D /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  270 + A522F73D14A2CB4DE43E00754C6D504B /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; };
291 271 A5751911414FBB4525BA661301645A33 /* NSArray+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A081063D9132D39C1E65F619E8E08758 /* NSArray+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
292 272 A5D50A13E2D93699A6EA10827F821ACE /* YBIBImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
293 273 A6985B155E19B64987FD68C5F251A1BC /* YBIBToastView.m in Sources */ = {isa = PBXBuildFile; fileRef = A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
... ... @@ -295,99 +275,94 @@
295 275 A6EE9E0154F607481961BCD392381B7F /* YYTextArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
296 276 A7163439672A8E432F330594FBD927D2 /* YYTextDebugOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */; settings = {ATTRIBUTES = (Public, ); }; };
297 277 A7F1C07DCA2C79499E38A78F4C823B88 /* UIControl+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
298   - A8F9213841A1696CA4E3BAF5B0836F43 /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
299 278 A912BA340CE09249C7782B1FFD1365AB /* YYTextMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
  279 + A93168D1B8FE647836641A8FD0960D3F /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
300 280 A96436D0FB439F1F9716DAD1A565FC3F /* YYKVStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
301 281 A9BFCA6D140CE8D9F0F30D2D5AF1D3E4 /* YYKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 2472289EA21A4524121647E98565507F /* YYKeychain.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  282 + A9FB0B1C38B3DF1982D4D8F8B3B99A4E /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
302 283 AA02D1FC38F23E8ABB8437B0B319FE8F /* NSNumber+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
303 284 AA30113B879D83233709E1B94AA29896 /* UIApplication+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B452E9B587B86C63EE21311C07C2F204 /* UIApplication+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  285 + AA4B92512944686F23ABE5632656872E /* UIColor+HexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */; settings = {ATTRIBUTES = (Private, ); }; };
  286 + AAB78C68578015956BFE8A56A7E02BA7 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
304 287 AB59B214692AA81FF6315061758603C5 /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
305   - AB811350CFBFEC402845394DFB11C5B9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
306 288 AF9F20516033D3A05DCC8E8315E30732 /* YYWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
307 289 B06B32BF6913B604CD51DAC2D7588891 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */; };
  290 + B0D15842F6D9B27F7E656D6A3D715329 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  291 + B1635A0F2A9E883F5F9478F04F5F9B00 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; };
308 292 B1AB6D5391A7C80D83FB9A89E8AF6623 /* YBImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
309 293 B2105ECF2F00C51A3EA501A3D674DC5E /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
310 294 B2187DD11B7BE581B5D3C98681AD1FC6 /* YYWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  295 + B241B25BC7903216B219BCFDD5533ED2 /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
311 296 B24E0712943BC8C9C7DA39E71877DE59 /* YYTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */; settings = {ATTRIBUTES = (Public, ); }; };
312   - B34DA9789249B559F7D135CDC3D4FD77 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  297 + B27865F2F8513D2BAF80C119865014B2 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  298 + B2D122DFC079570A5A257B8FEFE1CF4C /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
313 299 B3D231FFA03E5AD08EA9DB95CC280BF9 /* UIPasteboard+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
314 300 B43AF7085746A2EDF63AC0561FDC5760 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */; };
315 301 B4A6A89B7C7A07DEF548DF0821A5D2A6 /* UITextField+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
316   - B52576B08EFC9D67F218CC2DAC542AF4 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
317 302 B580D3F3050F9BB858FC126353306F2E /* YBIBImageScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; };
318 303 B5EBC0334766A76DCFF0C05798C37150 /* YYReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
319   - B6A52B7697F15B487F846F3DA1CB3896 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; };
320 304 B6B29A71C36975429AB1368727403423 /* NSNumber+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
321   - B6B6619A760B666DE47643F684DCF92A /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
322 305 B6C28098B1907228C45A14E207D55AFE /* UIImage+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
323 306 B7AC252781ACA15FC73AF12490F21160 /* NSTimer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
324 307 B7D446CF8E8826A56E6D15929115BE04 /* YBIBGetBaseInfoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
  308 + B81B452FC4B5B6F7812022013E0050F9 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  309 + B9EAA2FEBC24879CE426A200D1943850 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; };
325 310 BA6F7BA03B9D0D30084C3ADE291F6473 /* YBIBVideoTopBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
326 311 BC58E6F1DB34E6D18AC043F147EB68A5 /* UIScrollView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
327   - BD1CC866FEB3E8226394BA640E7FA900 /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
328   - BDACD97A89128CDAECEE9F2C66A68041 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  312 + C15872A8795C18D17D7CB78D0D2AF5A9 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
329 313 C15CF0D0B7F57A8BB9EDA5F3A0EB4415 /* YYMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
330   - C32C3C747D6831244FA97E55D7EBC211 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
331 314 C336129A2AC12AEED1703E6863707C69 /* NSObject+YYAddForKVO.h in Headers */ = {isa = PBXBuildFile; fileRef = 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */; settings = {ATTRIBUTES = (Public, ); }; };
332   - C71E6525587D5FFE318A222C092FA6AE /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  315 + C50CAA073FFEC5DFDB16A59830E97C95 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  316 + C60409B7C6D34D479F3DC7157194706B /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
333 317 C78E2BB89633512E1E77690E47840731 /* NSString+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
334   - C854CD2F89E00E88FB1D6669A770DEE0 /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; };
335   - C88E97ED465D3973A3D9FD7AE94BDB9A /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
336   - C8D1A63DACC1ED208C203641C69EEEF1 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  318 + C8719B604AC23450E05D0E2F5716C8EE /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
337 319 C907A97665955ECF4DDD418449F11390 /* YBIBScreenRotationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
338   - C94DE8F907543852C6C5311CE0A2752A /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  320 + C926C81B2AE4D970FF43FA6854DF11B3 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
339 321 C9D04AD8C1E863F36DA77847B7DC00FF /* YYTextContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  322 + CA2A04B40C4584BB62EDF451D4691393 /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
340 323 CA376D8F23487BDFB24C801D2317FD4D /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */; };
341   - CAD57C741FFBC3EBCA19E4F1891E4FDA /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
342   - CBA469E2DD8702DECB634A81F850C516 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
343   - CC1B7B642CBAEA58A27D410B329E5FFD /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  324 + CB6B765C0485EA0801AC5AD27B988336 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
  325 + CBEDB718B4AB4391588A9347C9F03C4A /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
344 326 CC66D7F8BA25145CFA356804A0482B18 /* NSKeyedUnarchiver+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
345   - CCEF1E548BE78064BE12CC29D9977A28 /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; };
346 327 CD03525AD1F8D60C1C0AC8297DE34E11 /* YYTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
347   - CD06DC5FCA424D8A0928068BEB8AF2E5 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
348 328 CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
349 329 CDCE6593D130D8CDEDF0B621B0205E1A /* YBIBIconManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
350   - CF1AA8850ED16C5F49B61BC3A9B13DD7 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
351   - D0725567B7BD18C79A04E5EC9C72249D /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; };
  330 + CED0ADFAFACBD8EAC91D8FDFAD72CC3D /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  331 + CF5BBB5AA6B556A33F0FD0CBF107B538 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
352 332 D0C427F2B55EA4B9699DC5021958111C /* YYWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
353 333 D0D66AD4AB7E3486337F71C17BF3AD57 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */; };
354 334 D0EE21B9D50E334EAF1A380286222F0C /* NSObject+YYAddForARC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; };
355 335 D117372BE748F203CB46905AD37E4068 /* UITextField+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FC28E23CABD3BDE6EAB1ACECBE0303A /* UITextField+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
356   - D2EDDDAA1E3498604C570DA06526C7BA /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
357   - D347FCF56E468483A546E1F611DE081C /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
358   - D43B9E05CBF3046EB696F0357E263B54 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
359   - D4F67B56B3A2910031B248E07BC0FF9F /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  336 + D4C9FCF4108BF46522DA445E47524A6A /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; };
360 337 D69F7D5FC2B9F449EFD85CD54B17E575 /* YYKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */; };
361   - D6FDFE95CEDBD0A41D4E16FDB1599FA9 /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
362 338 D7C4871BB56F79A08300DD66AFDCF5DE /* YBIBVideoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
363 339 D827404302AC7E95F7667CC14AE08594 /* YYTextAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; };
  340 + D84BE358D7B1195BCA3556D7A0003968 /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
364 341 D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */; };
365 342 D96C39BA6D0884492E921E34AE5A1C66 /* YBIBVideoData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */; settings = {ATTRIBUTES = (Public, ); }; };
  343 + D9B0AE61DB0C28C1A453C57DBAA9894C /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
366 344 D9F2C1489EE9A0E4071E01C3ACC142F2 /* YYTextKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
367   - DA1F5EB06521252BF63369AFEF914368 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; };
368   - DB42064F83C6224213B940B249FC26FF /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
369   - DCDC5264F294AB9A622D368F2F7FA336 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; };
  345 + DB7CB011D38A0CF4CBA6380FF04F0B61 /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
  346 + DBB84BD7F62230F01B7533CF5DB8E2B8 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
370 347 DD25E262CDFAD075F62392B989CA6F4B /* YYSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
371   - DD784DFACF8863C7D46B9054B0DD7C42 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  348 + DDA63B6A16CAEC9EDAB8721409ED65EF /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
372 349 DDD32790B4BCE5190906DEEED75A5860 /* YBIBVideoData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
373 350 DDE5067059454F98CD6B2426D61716F7 /* YYAsyncLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
374   - DE311CA167D40330E2B71F4726A6B789 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
375 351 DF369A9EB40F06EEB590C41610BA2A10 /* YYTextRubyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
376   - DFE7857272AA4CDEC686248E790174F9 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; };
  352 + E05830BFF728135BC1A3FCD86B02AFED /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  353 + E159EA4B9CE7CA4EA7CC422F1BB359D0 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  354 + E1A13F65E327E70ED0A0322ED9D4E004 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };
377 355 E2AC119414A24C6B254F4EFD910B6364 /* YBIBImageData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
378 356 E321AD2370258DCF759B1C35DD419F41 /* YBIBOrientationReceiveProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
379   - E48B7D3309D22470B53A3EB47B6577E7 /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  357 + E4C4C17E15D7F01D31091341E3B22767 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
380 358 E655FF4E00EF146816A4A40588F91180 /* YYKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  359 + E807BB2D53EF822DDA0109BEB8F33F4B /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
381 360 E932BE7F6FC5497A6F685D0EF875A817 /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
382   - E9B97B2FD84DF4015AABD7E5978A710F /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
383 361 E9E7E25145EFE32065FFB8232DC42D8E /* YYTextAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = A0964A9B921F37553978DBD848A921DC /* YYTextAttribute.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
384   - EA50654643EF702D7F2DD17534459EAB /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
385   - EA5AE4148E9B9228E70EDB7F575D111E /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
386   - EB634403E13B36687931F62769C04F66 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };
387   - EC14B2E8E460DFC2E4EB78A9FC10117C /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  362 + EBD6DC15D9DA29829CD9A5BA5F2B2A76 /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  363 + EC2A8CA5F7249A4197E707E8008C2CAF /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
388 364 EC8034BDEF204F42C1F8FD47F69C72C2 /* YBIBCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
389 365 ECAB0BF105639461A59A044E08301859 /* YYTextParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
390   - ED388349310FF50899F3AEB5E2DF0500 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
391 366 ED419C4C5639D374160458959782CECC /* YBIBImageScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
392 367 ED434BACBB1031EB88803A3F3D53D0F2 /* NSDate+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
393 368 EE483E73A32B03DDEAFC3D0C7D23A998 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */; };
... ... @@ -396,7 +371,7 @@
396 371 EF0747F501C75F83DED72B2790BE5B5F /* YYTextRubyAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; };
397 372 F007745FE5F7A414A2DBD361AA8CC41B /* YYKVStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */; settings = {ATTRIBUTES = (Public, ); }; };
398 373 F01C35CC142BDBE879078A8E52D9DED3 /* YBImageBrowserDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
399   - F045BDBF956B9EE5340F3225336EDAC6 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  374 + F0AB74AED6D7C008445C01678F59B54D /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
400 375 F160637862E5B0125D069F7929777F1F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
401 376 F21C9E78F6663605A36593123F851ECF /* YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
402 377 F2A1EDFD9B0498CA877D75380EB946AB /* YYCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
... ... @@ -404,7 +379,7 @@
404 379 F3A055F58CF9B5A694EB4AABA1E51B11 /* UIScrollView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
405 380 F3F08BAB397CD4760A921D6FFAB91D09 /* UITableView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
406 381 F41DB7D94F86FC028BB3765429E83496 /* UIImageView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
407   - F4BE0CAF1D4BF04D766DB4A25AE4A4C2 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  382 + F4A2A3265060EE0EC36AE153BA2F11F1 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
408 383 F51107CAE592A67C12F6A654AA9DE72B /* YBImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
409 384 F57BB6C1959FC38F369D20C3D6280478 /* YBImageBrowserDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 332163CABE8CA20F1CDE74064906F999 /* YBImageBrowserDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
410 385 F6B4A873DB7EFD81739BB935180213F3 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
... ... @@ -412,16 +387,21 @@
412 387 F70B261CE6AF733A33E7AF41C5D96628 /* YBIBDataProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
413 388 F7532455FBADCB4B6D671A76A015BCDF /* YYGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
414 389 F7952C8743A3C3698661727A575F134A /* YYCGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
  390 + F7C220B780BE3FFD43D49EB09A4AA120 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  391 + F855CDFE0F0B48A22F8F0B4CD25E3F2A /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
415 392 F881E7F260550EEED2EC9C45749BFC7B /* YBIBContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
416 393 F8F4D168EA046BD783E82D35CD3B114C /* _YYWebImageSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  394 + F981FD60C717579B06FC77EBE5E3ECEE /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  395 + F9CD37EE6DD796D86FAFCE65C106D553 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; };
  396 + FA1132270226AEC00FD163A760F5BFDD /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };
  397 + FA626556DE0DB5DBE98269492EB9D858 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
417 398 FA6BA0853D951EDC88B27A2C94306C49 /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */; };
418   - FC4DE0456F37E3F47195E5F969314E0F /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
419   - FC5E54109CC0090D7CA4492C6225E5BB /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
  399 + FB731F3EEA54F44A238FBBFED93D9974 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  400 + FC5F561CA670D699F300DDA4FE2D8314 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
420 401 FCDAE4EE1EF7F75A6D9E465032A3EE25 /* UIBarButtonItem+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  402 + FD42C3773D4CE1E4ED8BC78369EE4898 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
421 403 FEB886C7ED26265911E85FEFEBA8891A /* YBIBVideoActionBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
422 404 FED2D036DCD6FF18C7AF6E251407E6B2 /* YBIBAnimatedTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
423   - FEF33326D4B5B59DFD0CA1DFAD4001FC /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; };
424   - FFA5793DBEE9AB3CC5C01F5B6F0B1151 /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
425 405 /* End PBXBuildFile section */
426 406  
427 407 /* Begin PBXContainerItemProxy section */
... ... @@ -484,92 +464,86 @@
484 464 /* End PBXContainerItemProxy section */
485 465  
486 466 /* Begin PBXFileReference section */
  467 + 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; };
487 468 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBTopView.h; sourceTree = "<group>"; };
488 469 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAnimatedTransition.m; sourceTree = "<group>"; };
489 470 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
490 471 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+YYAdd.h"; path = "YYKit/Base/UIKit/UIApplication+YYAdd.h"; sourceTree = "<group>"; };
491   - 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = "<group>"; };
492   - 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = "<group>"; };
493   - 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = "<group>"; };
  472 + 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = "<group>"; };
494 473 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSParagraphStyle+YYText.m"; path = "YYKit/Text/String/NSParagraphStyle+YYText.m"; sourceTree = "<group>"; };
495 474 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser+Internal.h"; sourceTree = "<group>"; };
496   - 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = "<group>"; };
497 475 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCache.h; path = YYKit/Cache/YYCache.h; sourceTree = "<group>"; };
498   - 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = "<group>"; };
499   - 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = "<group>"; };
  476 + 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = "<group>"; };
500 477 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+YYAdd.m"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.m"; sourceTree = "<group>"; };
501 478 09221948BA0D8609E66D29534B1637F9 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist"; sourceTree = "<group>"; };
502 479 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = "<group>"; };
503 480 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionView.m; sourceTree = "<group>"; };
504   - 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = "<group>"; };
  481 + 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = "<group>"; };
505 482 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+YYAdd.m"; path = "YYKit/Base/UIKit/UIColor+YYAdd.m"; sourceTree = "<group>"; };
506 483 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCache.m; path = YYKit/Cache/YYCache.m; sourceTree = "<group>"; };
507 484 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextSelectionView.m; path = YYKit/Text/Component/YYTextSelectionView.m; sourceTree = "<group>"; };
508 485 0D2681FA26C64223B316B544D77AA55D /* Pods_YBImageBrowser_DSCnliveShop_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Tests.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
  486 + 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = "<group>"; };
  487 + 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = "<group>"; };
509 488 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYKit/Base/UIKit/UIView+YYAdd.h"; sourceTree = "<group>"; };
510 489 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRubyAnnotation.h; path = YYKit/Text/String/YYTextRubyAnnotation.h; sourceTree = "<group>"; };
  490 + 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = "<group>"; };
511 491 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBContainerView.m; sourceTree = "<group>"; };
512   - 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = "<group>"; };
513   - 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = "<group>"; };
514   - 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = "<group>"; };
515   - 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = "<group>"; };
  492 + 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = "<group>"; };
516 493 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSObject+YBImageBrowser.m"; sourceTree = "<group>"; };
517 494 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYGestureRecognizer.h; path = YYKit/Utility/YYGestureRecognizer.h; sourceTree = "<group>"; };
518   - 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = "<group>"; };
519 495 1252A4B51C377A0204EA817105C31367 /* YBImageBrowser_DSCnliveShop.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.debug.xcconfig; sourceTree = "<group>"; };
520   - 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = "<group>"; };
521   - 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = "<group>"; };
522 496 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSentinel.m; sourceTree = "<group>"; };
523 497 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSheetView.h; sourceTree = "<group>"; };
524 498 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCache.h; path = YYKit/Image/YYImageCache.h; sourceTree = "<group>"; };
525 499 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBPhotoAlbumManager.m; sourceTree = "<group>"; };
526   - 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = "<group>"; };
527   - 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = "<group>"; };
528   - 15DA0DE7F827744C2CD1C503B90ED22A /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = "<group>"; };
  500 + 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = "<group>"; };
  501 + 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };
529 502 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOrientationReceiveProtocol.h; sourceTree = "<group>"; };
530   - 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = "<group>"; };
531   - 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = "<group>"; };
532   - 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = "<group>"; };
533   - 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = "<group>"; };
  503 + 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = "<group>"; };
534 504 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageScrollView.h; sourceTree = "<group>"; };
535 505 1A3ACB33EE20D3ACBAED2B2528ACF51B /* YYKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYKit.modulemap; sourceTree = "<group>"; };
  506 + 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = "<group>"; };
536 507 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextView.m; path = YYKit/Text/YYTextView.m; sourceTree = "<group>"; };
537 508 1BDC88838DB7DE47299D42DFB1449C97 /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.h"; sourceTree = "<group>"; };
538 509 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoData.h; sourceTree = "<group>"; };
539   - 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = "<group>"; };
540   - 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = "<group>"; };
  510 + 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = "<group>"; };
  511 + 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };
541 512 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYKit/Base/Foundation/NSString+YYAdd.m"; sourceTree = "<group>"; };
542   - 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = "<group>"; };
543 513 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+YYAdd.h"; path = "YYKit/Base/UIKit/UIColor+YYAdd.h"; sourceTree = "<group>"; };
544 514 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSThread+YYAdd.h"; path = "YYKit/Base/Foundation/NSThread+YYAdd.h"; sourceTree = "<group>"; };
545 515 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYKit/Image/YYSpriteSheetImage.h; sourceTree = "<group>"; };
546 516 22CF3B73FF5F5A8C94227088CE5E0FC8 /* YBImageBrowser_DSCnliveShop-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-prefix.pch"; sourceTree = "<group>"; };
547   - 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = "<group>"; };
  517 + 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = "<group>"; };
548 518 235A9602CEADB22A070933C84D790CE0 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
  519 + 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = "<group>"; };
549 520 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+YYWebImage.h"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.h"; sourceTree = "<group>"; };
550 521 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBIconManager.h; sourceTree = "<group>"; };
551 522 2472289EA21A4524121647E98565507F /* YYKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKeychain.m; path = YYKit/Utility/YYKeychain.m; sourceTree = "<group>"; };
552   - 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = "<group>"; };
553 523 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImage.h; sourceTree = "<group>"; };
  524 + 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = "<group>"; };
554 525 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSentinel.m; path = YYKit/Utility/YYSentinel.m; sourceTree = "<group>"; };
555 526 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCell+Internal.h"; sourceTree = "<group>"; };
556 527 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoTopBar.m; sourceTree = "<group>"; };
  528 + 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = "<group>"; };
557 529 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDiskCache.h; path = YYKit/Cache/YYDiskCache.h; sourceTree = "<group>"; };
558 530 282546E77187445CF7EBBDFA4E5CA774 /* YYImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCache.m; path = YYKit/Image/YYImageCache.m; sourceTree = "<group>"; };
  531 + 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = "<group>"; };
559 532 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTimer.m; path = YYKit/Utility/YYTimer.m; sourceTree = "<group>"; };
  533 + 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };
  534 + 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = "<group>"; };
  535 + 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = "<group>"; };
560 536 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageManager.h; path = YYKit/Image/YYWebImageManager.h; sourceTree = "<group>"; };
561 537 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextKeyboardManager.h; path = YYKit/Text/Component/YYTextKeyboardManager.h; sourceTree = "<group>"; };
562 538 2D2677C218E3A46355C345D95E7DE293 /* YBImageBrowser_DSCnliveShop-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YBImageBrowser_DSCnliveShop-Info.plist"; sourceTree = "<group>"; };
563   - 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = "<group>"; };
564 539 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSObject+YBImageBrowser.h"; sourceTree = "<group>"; };
565 540 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageScrollView.m; sourceTree = "<group>"; };
566   - 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };
567   - 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = "<group>"; };
  541 + 2E14AFE886371F80BB03C9261CAE653A /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; };
568 542 2FA8DD8E17F9BA15127FBA5142430978 /* YBImageBrowser_DSCnliveShop.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.release.xcconfig; sourceTree = "<group>"; };
569   - 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = "<group>"; };
  543 + 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = "<group>"; };
  544 + 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = "<group>"; };
570 545 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBScreenRotationHandler.m; sourceTree = "<group>"; };
571 546 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-umbrella.h"; sourceTree = "<group>"; };
572   - 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = "<group>"; };
573 547 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImage.m; sourceTree = "<group>"; };
574 548 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCache+Internal.h"; sourceTree = "<group>"; };
575 549 32AA9B50FD45F8829F9B21411363EC98 /* Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig"; sourceTree = "<group>"; };
... ... @@ -578,169 +552,162 @@
578 552 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCopywriter.m; sourceTree = "<group>"; };
579 553 33F8253486294181F468179983E49503 /* YBIBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBUtilities.h; sourceTree = "<group>"; };
580 554 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBScreenRotationHandler.h; sourceTree = "<group>"; };
  555 + 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = "<group>"; };
581 556 364A01FADBC877C6C8BC0B9E72655651 /* Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap"; sourceTree = "<group>"; };
582   - 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = "<group>"; };
583 557 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YYAdd.m"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.m"; sourceTree = "<group>"; };
584 558 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageLayout.m; sourceTree = "<group>"; };
585   - 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = "<group>"; };
586 559 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = "<group>"; };
587   - 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = "<group>"; };
588   - 3AEC8F623A6884FBFC7CF8D4309918D7 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; };
  560 + 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };
  561 + 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = "<group>"; };
  562 + 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = "<group>"; };
589 563 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
590   - 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = "<group>"; };
591   - 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = "<group>"; };
592   - 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = "<group>"; };
  564 + 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = "<group>"; };
593 565 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTimer+YYAdd.h"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.h"; sourceTree = "<group>"; };
594 566 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextEffectWindow.h; path = YYKit/Text/Component/YYTextEffectWindow.h; sourceTree = "<group>"; };
595 567 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+YYAdd.m"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.m"; sourceTree = "<group>"; };
596 568 3E04E2554A40CC109E87A30B4F4F3587 /* Pods-YBImageBrowser_DSCnliveShop_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Example.modulemap"; sourceTree = "<group>"; };
597   - 3E74798ACDDA5B166130859C04575723 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = "<group>"; };
598 569 3F544E13A1E9FD128E0AF79DBF99E602 /* Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig"; sourceTree = "<group>"; };
599   - 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = "<group>"; };
  570 + 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = "<group>"; };
600 571 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFrameImage.h; path = YYKit/Image/YYFrameImage.h; sourceTree = "<group>"; };
601   - 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = "<group>"; };
  572 + 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = "<group>"; };
602 573 431B4699FDBDE9286754313242740273 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
603 574 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+YYAdd.h"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.h"; sourceTree = "<group>"; };
604   - 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = "<group>"; };
605 575 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m"; sourceTree = "<group>"; };
606 576 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextParser.h; path = YYKit/Text/String/YYTextParser.h; sourceTree = "<group>"; };
  577 + 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = "<group>"; };
  578 + 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = "<group>"; };
607 579 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBLoadingView.m; sourceTree = "<group>"; };
  580 + 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = "<group>"; };
  581 + 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = "<group>"; };
608 582 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionViewLayout.h; sourceTree = "<group>"; };
609 583 4625B897D5EC65459B29737D53744D1B /* Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist"; sourceTree = "<group>"; };
610   - 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = "<group>"; };
611 584 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSentinel.h; path = YYKit/Utility/YYSentinel.h; sourceTree = "<group>"; };
612   - 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = "<group>"; };
  585 + 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+RoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.h"; sourceTree = "<group>"; };
613 586 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFrameImage.m; path = YYKit/Image/YYFrameImage.m; sourceTree = "<group>"; };
614   - 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = "<group>"; };
615   - 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = "<group>"; };
616 587 4B993C46E9B43AF9AE34EE10D6399802 /* DSYBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSYBImageBrowser.h; path = YBImageBrowser_DSCnliveShop/Classes/DSYBImageBrowser.h; sourceTree = "<group>"; };
617   - 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = "<group>"; };
  588 + 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = "<group>"; };
618 589 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+YYAdd.h"; path = "YYKit/Base/Foundation/NSData+YYAdd.h"; sourceTree = "<group>"; };
619   - 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = "<group>"; };
620   - 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = "<group>"; };
621   - 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = "<group>"; };
  590 + 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = "<group>"; };
  591 + 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };
  592 + 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = "<group>"; };
622 593 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYKit-dummy.m"; sourceTree = "<group>"; };
623   - 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = "<group>"; };
624 594 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = "<group>"; };
625 595 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRubyAnnotation.m; path = YYKit/Text/String/YYTextRubyAnnotation.m; sourceTree = "<group>"; };
  596 + 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = "<group>"; };
626 597 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _YYWebImageSetter.m; path = YYKit/Image/Categories/_YYWebImageSetter.m; sourceTree = "<group>"; };
627 598 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoCell.h; sourceTree = "<group>"; };
628 599 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.h"; sourceTree = "<group>"; };
629 600 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageData+Internal.h"; sourceTree = "<group>"; };
630   - 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = "<group>"; };
631   - 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = "<group>"; };
632   - 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = "<group>"; };
633 601 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYKit/Model/YYClassInfo.h; sourceTree = "<group>"; };
634 602 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCoder.m; path = YYKit/Image/YYImageCoder.m; sourceTree = "<group>"; };
635   - 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = "<group>"; };
  603 + 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = "<group>"; };
636 604 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAttribute.h; path = YYKit/Text/String/YYTextAttribute.h; sourceTree = "<group>"; };
637 605 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYThreadSafeDictionary.m; path = YYKit/Utility/YYThreadSafeDictionary.m; sourceTree = "<group>"; };
  606 + 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = "<group>"; };
638 607 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYWebImage.h"; path = "YYKit/Image/Categories/CALayer+YYWebImage.h"; sourceTree = "<group>"; };
639 608 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYWebImage.m"; path = "YYKit/Image/Categories/CALayer+YYWebImage.m"; sourceTree = "<group>"; };
640 609 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAsyncLayer.h; path = YYKit/Utility/YYAsyncLayer.h; sourceTree = "<group>"; };
641 610 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSentinel.h; sourceTree = "<group>"; };
642   - 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = "<group>"; };
643   - 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = "<group>"; };
644   - 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = "<group>"; };
  611 + 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+HexString.h"; path = "SDWebImage/Private/UIColor+HexString.h"; sourceTree = "<group>"; };
  612 + 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = "<group>"; };
645 613 5E84B87FDA9D2897071CB2718674F9C6 /* YBImageBrowser_DSCnliveShop.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YBImageBrowser_DSCnliveShop.framework; path = YBImageBrowser_DSCnliveShop.framework; sourceTree = BUILT_PRODUCTS_DIR; };
646   - 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = "<group>"; };
647   - 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = "<group>"; };
  614 + 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = "<group>"; };
  615 + 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };
648 616 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDefaultWebImageMediator.m; sourceTree = "<group>"; };
649 617 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWeakProxy.m; path = YYKit/Utility/YYWeakProxy.m; sourceTree = "<group>"; };
650   - 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = "<group>"; };
651   - 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = "<group>"; };
652   - 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };
653 618 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAuxiliaryViewHandler.m; sourceTree = "<group>"; };
654   - 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = "<group>"; };
  619 + 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = "<group>"; };
655 620 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYAdd.h"; path = "YYKit/Base/Quartz/CALayer+YYAdd.h"; sourceTree = "<group>"; };
656 621 64533B43DC32C38326C2FB11D3FB17D6 /* YYKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYKit-Info.plist"; sourceTree = "<group>"; };
657   - 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = "<group>"; };
658   - 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = "<group>"; };
  622 + 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = "<group>"; };
659 623 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m"; sourceTree = "<group>"; };
  624 + 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = "<group>"; };
660 625 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextContainerView.m; path = YYKit/Text/Component/YYTextContainerView.m; sourceTree = "<group>"; };
661 626 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
662 627 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYKit/Base/UIKit/UIControl+YYAdd.h"; sourceTree = "<group>"; };
663   - 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = "<group>"; };
  628 + 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };
664 629 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDefaultWebImageMediator.h; sourceTree = "<group>"; };
665   - 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = "<group>"; };
666 630 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+YYAdd.m"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.m"; sourceTree = "<group>"; };
667 631 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+YYAdd.h"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.h"; sourceTree = "<group>"; };
668 632 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+YYAdd.h"; path = "YYKit/Base/UIKit/UIFont+YYAdd.h"; sourceTree = "<group>"; };
669   - 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = "<group>"; };
  633 + 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = "<group>"; };
  634 + 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = "<group>"; };
  635 + 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = "<group>"; };
670 636 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeDictionary.h; path = YYKit/Utility/YYThreadSafeDictionary.h; sourceTree = "<group>"; };
671 637 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextContainerView.h; path = YYKit/Text/Component/YYTextContainerView.h; sourceTree = "<group>"; };
672   - 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = "<group>"; };
673   - 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = "<group>"; };
674   - 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = "<group>"; };
  638 + 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = "<group>"; };
  639 + 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = "<group>"; };
675 640 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageLayout.h; sourceTree = "<group>"; };
676 641 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.m"; sourceTree = "<group>"; };
677 642 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataProtocol.h; sourceTree = "<group>"; };
  643 + 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = "<group>"; };
  644 + 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = "<group>"; };
678 645 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTransaction.h; path = YYKit/Utility/YYTransaction.h; sourceTree = "<group>"; };
679 646 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionViewLayout.m; sourceTree = "<group>"; };
680 647 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-umbrella.h"; sourceTree = "<group>"; };
681   - 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = "<group>"; };
682 648 78025E79C159D1B545ECE0DBDCA36B66 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
683 649 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAnimatedTransition.h; sourceTree = "<group>"; };
684 650 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYReachability.h; path = YYKit/Utility/YYReachability.h; sourceTree = "<group>"; };
685 651 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
686 652 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowserVideo.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowserVideo.bundle; sourceTree = "<group>"; };
  653 + 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = "<group>"; };
687 654 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextArchiver.m; path = YYKit/Text/String/YYTextArchiver.m; sourceTree = "<group>"; };
688 655 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowser.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowser.bundle; sourceTree = "<group>"; };
  656 + 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = "<group>"; };
689 657 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLayout.m; path = YYKit/Text/Component/YYTextLayout.m; sourceTree = "<group>"; };
690 658 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLayout.h; path = YYKit/Text/Component/YYTextLayout.h; sourceTree = "<group>"; };
691   - 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = "<group>"; };
692   - 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = "<group>"; };
  659 + 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = "<group>"; };
693 660 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYKit/Image/YYImage.h; sourceTree = "<group>"; };
694   - 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = "<group>"; };
695 661 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+YYAdd.h"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.h"; sourceTree = "<group>"; };
696 662 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; };
697   - 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = "<group>"; };
698 663 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataMediator.h; sourceTree = "<group>"; };
  664 + 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = "<group>"; };
699 665 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; };
700   - 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = "<group>"; };
  666 + 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = "<group>"; };
  667 + 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = "<group>"; };
701 668 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFileHash.m; path = YYKit/Utility/YYFileHash.m; sourceTree = "<group>"; };
702 669 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCell.m; sourceTree = "<group>"; };
  670 + 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = "<group>"; };
703 671 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextDebugOption.h; path = YYKit/Text/Component/YYTextDebugOption.h; sourceTree = "<group>"; };
704   - 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = "<group>"; };
705   - 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = "<group>"; };
706   - 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = "<group>"; };
  672 + 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = "<group>"; };
707 673 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYAdd.m"; path = "YYKit/Base/UIKit/UIImage+YYAdd.m"; sourceTree = "<group>"; };
  674 + 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = "<group>"; };
708 675 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextMagnifier.h; path = YYKit/Text/Component/YYTextMagnifier.h; sourceTree = "<group>"; };
709 676 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRunDelegate.h; path = YYKit/Text/String/YYTextRunDelegate.h; sourceTree = "<group>"; };
710 677 8B249154A723FBC9D15D68C5DBE38A9D /* YBImageBrowser_DSCnliveShop.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = YBImageBrowser_DSCnliveShop.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
711 678 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h"; sourceTree = "<group>"; };
712   - 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = "<group>"; };
  679 + 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = "<group>"; };
  680 + 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = "<group>"; };
  681 + 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+HexString.m"; path = "SDWebImage/Private/UIColor+HexString.m"; sourceTree = "<group>"; };
  682 + 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = "<group>"; };
  683 + 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = "<group>"; };
713 684 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoData.m; sourceTree = "<group>"; };
714 685 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
715   - 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = "<group>"; };
716   - 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = "<group>"; };
717   - 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = "<group>"; };
718 686 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCGUtilities.h; path = YYKit/Base/Quartz/YYCGUtilities.h; sourceTree = "<group>"; };
719 687 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextArchiver.h; path = YYKit/Text/String/YYTextArchiver.h; sourceTree = "<group>"; };
720 688 91553D071AF4EB06E69E3698FC4BBB17 /* YYKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-prefix.pch"; sourceTree = "<group>"; };
721   - 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = "<group>"; };
722   - 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = "<group>"; };
  689 + 9190FDE4BAFCFE9EEEC32C362D54FC14 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = "<group>"; };
  690 + 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = "<group>"; };
723 691 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+YYAdd.m"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.m"; sourceTree = "<group>"; };
724 692 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = "<group>"; };
  693 + 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = "<group>"; };
725 694 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDiskCache.m; path = YYKit/Cache/YYDiskCache.m; sourceTree = "<group>"; };
726 695 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBTopView.m; sourceTree = "<group>"; };
727   - 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = "<group>"; };
728 696 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+YYAdd.m"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.m"; sourceTree = "<group>"; };
729 697 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCache.m; sourceTree = "<group>"; };
730 698 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageData.m; sourceTree = "<group>"; };
731   - 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = "<group>"; };
732   - 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; };
  699 + 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = "<group>"; };
733 700 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+YYText.m"; path = "YYKit/Text/String/NSAttributedString+YYText.m"; sourceTree = "<group>"; };
  701 + 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = "<group>"; };
734 702 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBIconManager.m; sourceTree = "<group>"; };
735 703 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYKit/Cache/YYMemoryCache.h; sourceTree = "<group>"; };
736   - 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };
737   - 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = "<group>"; };
  704 + 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = "<group>"; };
738 705 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBUtilities.m; sourceTree = "<group>"; };
739 706 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextSelectionView.h; path = YYKit/Text/Component/YYTextSelectionView.h; sourceTree = "<group>"; };
740 707 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.m"; sourceTree = "<group>"; };
  708 + 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = "<group>"; };
741 709 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
742 710 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoActionBar.m; sourceTree = "<group>"; };
743   - 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = "<group>"; };
744 711 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+YYAdd.h"; path = "YYKit/Base/Foundation/NSDate+YYAdd.h"; sourceTree = "<group>"; };
745 712 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYKit/Text/String/UIPasteboard+YYText.h"; sourceTree = "<group>"; };
746 713 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLine.h; path = YYKit/Text/Component/YYTextLine.h; sourceTree = "<group>"; };
... ... @@ -752,36 +719,35 @@
752 719 A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToolViewHandler.h; sourceTree = "<group>"; };
753 720 A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextKeyboardManager.m; path = YYKit/Text/Component/YYTextKeyboardManager.m; sourceTree = "<group>"; };
754 721 A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+YYAdd.m"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.m"; sourceTree = "<group>"; };
755   - A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = "<group>"; };
756 722 A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+YYAdd.m"; path = "YYKit/Base/Foundation/NSDate+YYAdd.m"; sourceTree = "<group>"; };
757 723 A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAsyncLayer.m; path = YYKit/Utility/YYAsyncLayer.m; sourceTree = "<group>"; };
758   - A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = "<group>"; };
  724 + A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = "<group>"; };
759 725 A328158B7BDCD9B9A54D7D40774FCC54 /* YBIBAuxiliaryViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAuxiliaryViewHandler.h; sourceTree = "<group>"; };
  726 + A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = "<group>"; };
  727 + A4015B1017950B192730F1ABF2793542 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = "<group>"; };
760 728 A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCellProtocol.h; sourceTree = "<group>"; };
761 729 A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToastView.m; sourceTree = "<group>"; };
762 730 A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
763 731 A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _YYWebImageSetter.h; path = YYKit/Image/Categories/_YYWebImageSetter.h; sourceTree = "<group>"; };
764   - A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = "<group>"; };
765   - A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = "<group>"; };
766   - A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = "<group>"; };
767 732 A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+YYWebImage.m"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.m"; sourceTree = "<group>"; };
768   - A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = "<group>"; };
769 733 A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSheetView.m; sourceTree = "<group>"; };
770 734 AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBInteractionProfile.m; sourceTree = "<group>"; };
  735 + AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = "<group>"; };
771 736 AB96F3B4BB148DAF41FDE86DF14036F4 /* Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh"; sourceTree = "<group>"; };
772 737 AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKitMacro.h; path = YYKit/Base/YYKitMacro.h; sourceTree = "<group>"; };
773 738 ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBPhotoAlbumManager.h; sourceTree = "<group>"; };
774 739 ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoTopBar.h; sourceTree = "<group>"; };
775 740 ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YYAdd.h"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.h"; sourceTree = "<group>"; };
  741 + ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = "<group>"; };
  742 + AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = "<group>"; };
  743 + AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = "<group>"; };
776 744 ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoActionBar.h; sourceTree = "<group>"; };
777 745 AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBezierPath+YYAdd.h"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.h"; sourceTree = "<group>"; };
778 746 AF2571FC04AEBB0049E5DF97CA8CB9F1 /* NSAttributedString+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+YYText.h"; path = "YYKit/Text/String/NSAttributedString+YYText.h"; sourceTree = "<group>"; };
779 747 AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextView.h; path = YYKit/Text/YYTextView.h; sourceTree = "<group>"; };
780   - AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = "<group>"; };
781 748 AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOperateBrowserProtocol.h; sourceTree = "<group>"; };
782 749 AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDataMediator.m; sourceTree = "<group>"; };
783 750 B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYKit/Image/YYWebImageOperation.m; sourceTree = "<group>"; };
784   - B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = "<group>"; };
785 751 B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
786 752 B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAdd.h"; path = "YYKit/Base/Foundation/NSObject+YYAdd.h"; sourceTree = "<group>"; };
787 753 B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRunDelegate.m; path = YYKit/Text/String/YYTextRunDelegate.m; sourceTree = "<group>"; };
... ... @@ -794,145 +760,139 @@
794 760 B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+YYAdd.h"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.h"; sourceTree = "<group>"; };
795 761 B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYKit/Cache/YYKVStorage.m; sourceTree = "<group>"; };
796 762 B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextUtilities.m; path = YYKit/Text/String/YYTextUtilities.m; sourceTree = "<group>"; };
  763 + B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = "<group>"; };
797 764 B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYKit/Base/Foundation/NSData+YYAdd.m"; sourceTree = "<group>"; };
798 765 B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+YYAdd.m"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.m"; sourceTree = "<group>"; };
799 766 B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCopywriter.h; sourceTree = "<group>"; };
800 767 B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+YYAdd.m"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.m"; sourceTree = "<group>"; };
801   - B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = "<group>"; };
802 768 B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBGetBaseInfoProtocol.h; sourceTree = "<group>"; };
  769 + B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = "<group>"; };
  770 + B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = "<group>"; };
803 771 B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFileHash.h; path = YYKit/Utility/YYFileHash.h; sourceTree = "<group>"; };
804 772 B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSpriteSheetImage.m; path = YYKit/Image/YYSpriteSheetImage.m; sourceTree = "<group>"; };
805 773 B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; };
806 774 BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAnimatedImageView.m; path = YYKit/Image/YYAnimatedImageView.m; sourceTree = "<group>"; };
807 775 BB6D4086660DB0E2BA9271C5D4780106 /* YBIBToastView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToastView.h; sourceTree = "<group>"; };
  776 + BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = "<group>"; };
808 777 BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYKit/Text/String/NSParagraphStyle+YYText.h"; sourceTree = "<group>"; };
809 778 BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageOperation.h; path = YYKit/Image/YYWebImageOperation.h; sourceTree = "<group>"; };
810   - BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = "<group>"; };
811 779 BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSKeyedUnarchiver+YYAdd.h"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.h"; sourceTree = "<group>"; };
  780 + BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = "<group>"; };
  781 + C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = "<group>"; };
  782 + C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = "<group>"; };
812 783 C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYLabel.h; path = YYKit/Text/YYLabel.h; sourceTree = "<group>"; };
813   - C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = "<group>"; };
814   - C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = "<group>"; };
815 784 C2C48205DC5A7E61206B83FBA6C16A03 /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  785 + C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = "<group>"; };
816 786 C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
817   - C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = "<group>"; };
  787 + C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = "<group>"; };
818 788 C38664F785477D7E2523617102E1EDC4 /* YBImageBrowser_DSCnliveShop.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YBImageBrowser_DSCnliveShop.modulemap; sourceTree = "<group>"; };
819   - C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = "<group>"; };
820 789 C44903C29949935DD57FD35B5C9BF35F /* YYKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.release.xcconfig; sourceTree = "<group>"; };
821 790 C468387A3C29B551DAA6C6AF5145ACB1 /* Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig"; sourceTree = "<group>"; };
822 791 C53CAE703785CC63612BF51D647BF00A /* Pods_YBImageBrowser_DSCnliveShop_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Example.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
823   - C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = "<group>"; };
824   - C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = "<group>"; };
  792 + C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = "<group>"; };
825 793 C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIPasteboard+YYText.m"; path = "YYKit/Text/String/UIPasteboard+YYText.m"; sourceTree = "<group>"; };
826   - C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };
827 794 C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCGUtilities.m; path = YYKit/Base/Quartz/YYCGUtilities.m; sourceTree = "<group>"; };
828 795 C687ECF69184AC5484EFA0598E66B804 /* Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh"; sourceTree = "<group>"; };
829 796 C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig"; sourceTree = "<group>"; };
830 797 C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YBImageBrowser_DSCnliveShop-dummy.m"; sourceTree = "<group>"; };
831   - C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = "<group>"; };
832 798 C78F1C99D55F3A5B2B595CEAAF59A086 /* Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist"; sourceTree = "<group>"; };
833 799 C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCoder.h; path = YYKit/Image/YYImageCoder.h; sourceTree = "<group>"; };
834   - C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = "<group>"; };
  800 + C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = "<group>"; };
835 801 C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTransaction.m; path = YYKit/Utility/YYTransaction.m; sourceTree = "<group>"; };
836 802 C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeArray.h; path = YYKit/Utility/YYThreadSafeArray.h; sourceTree = "<group>"; };
837   - C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = "<group>"; };
838 803 C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYAdd.m"; path = "YYKit/Base/UIKit/UIView+YYAdd.m"; sourceTree = "<group>"; };
  804 + CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = "<group>"; };
839 805 CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCache.h; sourceTree = "<group>"; };
840 806 CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYKit/Text/Component/YYTextLine.m; sourceTree = "<group>"; };
841   - CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = "<group>"; };
  807 + CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = "<group>"; };
  808 + CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = "<group>"; };
842 809 CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageData.h; sourceTree = "<group>"; };
843   - CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = "<group>"; };
844   - CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = "<group>"; };
845   - CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = "<group>"; };
846   - CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = "<group>"; };
847   - CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = "<group>"; };
848   - CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = "<group>"; };
849   - D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = "<group>"; };
  810 + CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = "<group>"; };
  811 + CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = "<group>"; };
  812 + D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = "<group>"; };
850 813 D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYKit/Text/Component/YYTextEffectWindow.m; sourceTree = "<group>"; };
851   - D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = "<group>"; };
852 814 D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; };
853   - D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = "<group>"; };
854 815 D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYReachability.m; path = YYKit/Utility/YYReachability.m; sourceTree = "<group>"; };
  816 + D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = "<group>"; };
855 817 D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYKit/Text/String/YYTextParser.m; sourceTree = "<group>"; };
856 818 D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.debug.xcconfig; sourceTree = "<group>"; };
857   - D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = "<group>"; };
  819 + D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = "<group>"; };
858 820 D4E670F4B8312D4F2B06ADC2B636AFE4 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
859   - D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = "<group>"; };
  821 + D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = "<group>"; };
860 822 D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+YYWebImage.m"; path = "YYKit/Image/Categories/UIButton+YYWebImage.m"; sourceTree = "<group>"; };
861 823 D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+YYAdd.m"; path = "YYKit/Base/UIKit/UIFont+YYAdd.m"; sourceTree = "<group>"; };
862 824 D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionView.h; sourceTree = "<group>"; };
863   - D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };
864   - DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };
865 825 DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; };
866   - DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = "<group>"; };
867   - DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = "<group>"; };
  826 + DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = "<group>"; };
868 827 DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+YYAdd.m"; path = "YYKit/Base/UIKit/UITableView+YYAdd.m"; sourceTree = "<group>"; };
  828 + DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = "<group>"; };
  829 + DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = "<group>"; };
869 830 DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowserDataSource.h; sourceTree = "<group>"; };
870 831 DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAnimatedImageView.h; path = YYKit/Image/YYAnimatedImageView.h; sourceTree = "<group>"; };
871   - DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = "<group>"; };
872 832 DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToolViewHandler.m; sourceTree = "<group>"; };
873   - DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = "<group>"; };
  833 + DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = "<group>"; };
874 834 DFF08367FC3C8240577C21AB0C7C45C0 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist"; sourceTree = "<group>"; };
  835 + DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+RoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.m"; sourceTree = "<group>"; };
  836 + E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = "<group>"; };
875 837 E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYKit/Model/NSObject+YYModel.m"; sourceTree = "<group>"; };
876 838 E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYKit/Base/UIKit/UITableView+YYAdd.h"; sourceTree = "<group>"; };
877 839 E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBWebImageMediator.h; sourceTree = "<group>"; };
878 840 E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKeychain.h; path = YYKit/Utility/YYKeychain.h; sourceTree = "<group>"; };
  841 + E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = "<group>"; };
879 842 E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImageBrowser.m; sourceTree = "<group>"; };
880 843 E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForKVO.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.m"; sourceTree = "<group>"; };
881   - E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = "<group>"; };
882 844 E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYKit/Base/UIKit/UIControl+YYAdd.m"; sourceTree = "<group>"; };
  845 + E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = "<group>"; };
883 846 E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextInput.m; path = YYKit/Text/Component/YYTextInput.m; sourceTree = "<group>"; };
884 847 E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYKit.framework; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
885 848 E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
886 849 E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDispatchQueuePool.h; path = YYKit/Utility/YYDispatchQueuePool.h; sourceTree = "<group>"; };
887 850 E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYKit/Base/UIKit/UIImage+YYAdd.h"; sourceTree = "<group>"; };
888   - E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };
889 851 E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForARC.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.h"; sourceTree = "<group>"; };
890   - E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = "<group>"; };
  852 + E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = "<group>"; };
891 853 E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextInput.h; path = YYKit/Text/Component/YYTextInput.h; sourceTree = "<group>"; };
  854 + E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = "<group>"; };
892 855 E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYMemoryCache.m; path = YYKit/Cache/YYMemoryCache.m; sourceTree = "<group>"; };
893 856 E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextDebugOption.m; path = YYKit/Text/Component/YYTextDebugOption.m; sourceTree = "<group>"; };
894   - E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = "<group>"; };
895 857 E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+YYWebImage.h"; path = "YYKit/Image/Categories/UIButton+YYWebImage.h"; sourceTree = "<group>"; };
896 858 EA76762360977A0F9DF281854B915408 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = Vendor/WebP.framework; sourceTree = "<group>"; };
  859 + EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = "<group>"; };
  860 + EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = "<group>"; };
  861 + EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = "<group>"; };
897 862 EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBInteractionProfile.h; sourceTree = "<group>"; };
898   - ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = "<group>"; };
899 863 ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+YYAdd.h"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.h"; sourceTree = "<group>"; };
900 864 ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoView.h; sourceTree = "<group>"; };
901   - EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = "<group>"; };
  865 + EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = "<group>"; };
  866 + EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = "<group>"; };
902 867 EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+YYAdd.h"; path = "YYKit/Base/Foundation/NSArray+YYAdd.h"; sourceTree = "<group>"; };
903   - EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = "<group>"; };
904   - EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = "<group>"; };
905 868 F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBLoadingView.h; sourceTree = "<group>"; };
906 869 F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h"; sourceTree = "<group>"; };
907 870 F223C16A87C557408148C7C83CCB705A /* YYImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImage.m; path = YYKit/Image/YYImage.m; sourceTree = "<group>"; };
908 871 F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYKit/Model/YYClassInfo.m; sourceTree = "<group>"; };
909 872 F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKit.h; path = YYKit/YYKit.h; sourceTree = "<group>"; };
910   - F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = "<group>"; };
911 873 F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDispatchQueuePool.m; path = YYKit/Utility/YYDispatchQueuePool.m; sourceTree = "<group>"; };
912   - F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = "<group>"; };
913 874 F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoCell+Internal.h"; sourceTree = "<group>"; };
914   - F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = "<group>"; };
  875 + F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = "<group>"; };
915 876 F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+YYAdd.h"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.h"; sourceTree = "<group>"; };
916 877 F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoData+Internal.h"; sourceTree = "<group>"; };
917   - F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = "<group>"; };
  878 + F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = "<group>"; };
918 879 F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+YYAdd.h"; path = "YYKit/Base/UIKit/UITextField+YYAdd.h"; sourceTree = "<group>"; };
919 880 F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBContainerView.h; sourceTree = "<group>"; };
920   - F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = "<group>"; };
921 881 F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowser.h; sourceTree = "<group>"; };
922 882 F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+YYAdd.h"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.h"; sourceTree = "<group>"; };
923 883 F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKVStorage.h; path = YYKit/Cache/YYKVStorage.h; sourceTree = "<group>"; };
924 884 F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCell.h; sourceTree = "<group>"; };
925 885 FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYKit/Base/Foundation/NSThread+YYAdd.m"; sourceTree = "<group>"; };
926 886 FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYAdd.m"; path = "YYKit/Base/Quartz/CALayer+YYAdd.m"; sourceTree = "<group>"; };
  887 + FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = "<group>"; };
  888 + FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = "<group>"; };
927 889 FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYKit/Model/NSObject+YYModel.h"; sourceTree = "<group>"; };
928 890 FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageManager.m; path = YYKit/Image/YYWebImageManager.m; sourceTree = "<group>"; };
929   - FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = "<group>"; };
930 891 FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYKit/Base/Foundation/NSString+YYAdd.h"; sourceTree = "<group>"; };
  892 + FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = "<group>"; };
931 893 FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWeakProxy.h; path = YYKit/Utility/YYWeakProxy.h; sourceTree = "<group>"; };
932   - FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = "<group>"; };
933   - FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = "<group>"; };
934 894 FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAdd.m"; path = "YYKit/Base/Foundation/NSObject+YYAdd.m"; sourceTree = "<group>"; };
935   - FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = "<group>"; };
  895 + FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = "<group>"; };
936 896 /* End PBXFileReference section */
937 897  
938 898 /* Begin PBXFrameworksBuildPhase section */
... ... @@ -971,22 +931,22 @@
971 931 );
972 932 runOnlyForDeploymentPostprocessing = 0;
973 933 };
974   - 93E1803EFFB49B8B5D9BE9C3FF15E708 /* Frameworks */ = {
  934 + D63F6433B5D27689683CDCF24F678FE6 /* Frameworks */ = {
975 935 isa = PBXFrameworksBuildPhase;
976 936 buildActionMask = 2147483647;
977 937 files = (
978   - 8F0623242A13E39BB0068F748D5A7819 /* Foundation.framework in Frameworks */,
979   - 7F47C6E48CDC5A9B788F8EB05D826BE6 /* ImageIO.framework in Frameworks */,
  938 + CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */,
  939 + D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */,
  940 + 60B44F3A94381A9FC25BD53BCDBA7062 /* YYKit.framework in Frameworks */,
980 941 );
981 942 runOnlyForDeploymentPostprocessing = 0;
982 943 };
983   - D63F6433B5D27689683CDCF24F678FE6 /* Frameworks */ = {
  944 + ECEA1B04AA580BD337B52CB84D1C00A8 /* Frameworks */ = {
984 945 isa = PBXFrameworksBuildPhase;
985 946 buildActionMask = 2147483647;
986 947 files = (
987   - CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */,
988   - D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */,
989   - 60B44F3A94381A9FC25BD53BCDBA7062 /* YYKit.framework in Frameworks */,
  948 + 3B9737EB4BDEA61D7A6D7C2F83ADE16B /* Foundation.framework in Frameworks */,
  949 + 95AC0F0E049EC392931B147F1BA4C11E /* ImageIO.framework in Frameworks */,
990 950 );
991 951 runOnlyForDeploymentPostprocessing = 0;
992 952 };
... ... @@ -1055,154 +1015,6 @@
1055 1015 name = Pod;
1056 1016 sourceTree = "<group>";
1057 1017 };
1058   - 1A858AEA06D9DB5413EC15E1834061B8 /* Core */ = {
1059   - isa = PBXGroup;
1060   - children = (
1061   - 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */,
1062   - 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */,
1063   - C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */,
1064   - 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */,
1065   - DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */,
1066   - EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */,
1067   - A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */,
1068   - 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */,
1069   - 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */,
1070   - D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */,
1071   - DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */,
1072   - E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */,
1073   - 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */,
1074   - FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */,
1075   - AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */,
1076   - 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */,
1077   - 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */,
1078   - CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */,
1079   - 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */,
1080   - 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */,
1081   - 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */,
1082   - A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */,
1083   - CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */,
1084   - 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */,
1085   - 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */,
1086   - C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */,
1087   - 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */,
1088   - 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */,
1089   - 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */,
1090   - 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */,
1091   - 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */,
1092   - 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */,
1093   - E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */,
1094   - 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */,
1095   - 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */,
1096   - 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */,
1097   - 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */,
1098   - 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */,
1099   - DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */,
1100   - A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */,
1101   - A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */,
1102   - 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */,
1103   - 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */,
1104   - 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */,
1105   - F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */,
1106   - CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */,
1107   - F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */,
1108   - 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */,
1109   - CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */,
1110   - E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */,
1111   - D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */,
1112   - 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */,
1113   - C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */,
1114   - D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */,
1115   - EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */,
1116   - C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */,
1117   - A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */,
1118   - 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */,
1119   - 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */,
1120   - F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */,
1121   - C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */,
1122   - 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */,
1123   - FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */,
1124   - 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */,
1125   - 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */,
1126   - 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */,
1127   - 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */,
1128   - C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */,
1129   - CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */,
1130   - 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */,
1131   - 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */,
1132   - 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */,
1133   - 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */,
1134   - C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */,
1135   - CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */,
1136   - CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */,
1137   - F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */,
1138   - 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */,
1139   - 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */,
1140   - 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */,
1141   - 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */,
1142   - 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */,
1143   - 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */,
1144   - 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */,
1145   - 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */,
1146   - FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */,
1147   - 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */,
1148   - 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */,
1149   - 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */,
1150   - 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */,
1151   - BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */,
1152   - 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */,
1153   - 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */,
1154   - 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */,
1155   - E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */,
1156   - 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */,
1157   - FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */,
1158   - B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */,
1159   - 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */,
1160   - 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */,
1161   - 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */,
1162   - 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */,
1163   - 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */,
1164   - F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */,
1165   - 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */,
1166   - 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */,
1167   - 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */,
1168   - C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */,
1169   - D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */,
1170   - 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */,
1171   - A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */,
1172   - 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */,
1173   - 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */,
1174   - 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */,
1175   - DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */,
1176   - ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */,
1177   - 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */,
1178   - 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */,
1179   - 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */,
1180   - 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */,
1181   - 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */,
1182   - D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */,
1183   - 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */,
1184   - 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */,
1185   - 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */,
1186   - 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */,
1187   - 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */,
1188   - C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */,
1189   - EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */,
1190   - 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */,
1191   - 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */,
1192   - 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */,
1193   - 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */,
1194   - C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */,
1195   - D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */,
1196   - B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */,
1197   - 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */,
1198   - 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */,
1199   - 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */,
1200   - 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */,
1201   - DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */,
1202   - );
1203   - name = Core;
1204   - sourceTree = "<group>";
1205   - };
1206 1018 2114D1F9BC187D61883E9A4E077458A4 /* ToolView */ = {
1207 1019 isa = PBXGroup;
1208 1020 children = (
... ... @@ -1255,6 +1067,149 @@
1255 1067 name = Frameworks;
1256 1068 sourceTree = "<group>";
1257 1069 };
  1070 + 418B8500CC0BC65A0DE0B609A2F36DA8 /* Core */ = {
  1071 + isa = PBXGroup;
  1072 + children = (
  1073 + 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */,
  1074 + DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */,
  1075 + F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */,
  1076 + 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */,
  1077 + EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */,
  1078 + 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */,
  1079 + 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */,
  1080 + CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */,
  1081 + CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */,
  1082 + 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */,
  1083 + 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */,
  1084 + 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */,
  1085 + D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */,
  1086 + 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */,
  1087 + 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */,
  1088 + 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */,
  1089 + CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */,
  1090 + 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */,
  1091 + 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */,
  1092 + 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */,
  1093 + CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */,
  1094 + F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */,
  1095 + B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */,
  1096 + 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */,
  1097 + 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */,
  1098 + 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */,
  1099 + 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */,
  1100 + EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */,
  1101 + 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */,
  1102 + D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */,
  1103 + EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */,
  1104 + 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */,
  1105 + 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */,
  1106 + A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */,
  1107 + B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */,
  1108 + 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */,
  1109 + 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */,
  1110 + 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */,
  1111 + 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */,
  1112 + 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */,
  1113 + 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */,
  1114 + 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */,
  1115 + FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */,
  1116 + 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */,
  1117 + AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */,
  1118 + E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */,
  1119 + 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */,
  1120 + DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */,
  1121 + E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */,
  1122 + C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */,
  1123 + BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */,
  1124 + 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */,
  1125 + 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */,
  1126 + 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */,
  1127 + 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */,
  1128 + 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */,
  1129 + FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */,
  1130 + D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */,
  1131 + 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */,
  1132 + 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */,
  1133 + D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */,
  1134 + 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */,
  1135 + 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */,
  1136 + DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */,
  1137 + ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */,
  1138 + EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */,
  1139 + FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */,
  1140 + AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */,
  1141 + 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */,
  1142 + 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */,
  1143 + 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */,
  1144 + E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */,
  1145 + 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */,
  1146 + 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */,
  1147 + BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */,
  1148 + EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */,
  1149 + FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */,
  1150 + C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */,
  1151 + 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */,
  1152 + 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */,
  1153 + 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */,
  1154 + 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */,
  1155 + 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */,
  1156 + 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */,
  1157 + B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */,
  1158 + 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */,
  1159 + AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */,
  1160 + C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */,
  1161 + 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */,
  1162 + C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */,
  1163 + 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */,
  1164 + 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */,
  1165 + 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */,
  1166 + 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */,
  1167 + A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */,
  1168 + E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */,
  1169 + 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */,
  1170 + E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */,
  1171 + 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */,
  1172 + 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */,
  1173 + 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */,
  1174 + 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */,
  1175 + DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */,
  1176 + 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */,
  1177 + 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */,
  1178 + 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */,
  1179 + 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */,
  1180 + C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */,
  1181 + C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */,
  1182 + CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */,
  1183 + 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */,
  1184 + DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */,
  1185 + 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */,
  1186 + 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */,
  1187 + 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */,
  1188 + 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */,
  1189 + 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */,
  1190 + 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */,
  1191 + 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */,
  1192 + 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */,
  1193 + 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */,
  1194 + );
  1195 + name = Core;
  1196 + sourceTree = "<group>";
  1197 + };
  1198 + 4A12BD7E0F24F7DA5CB75AC152DCA427 /* Support Files */ = {
  1199 + isa = PBXGroup;
  1200 + children = (
  1201 + 9190FDE4BAFCFE9EEEC32C362D54FC14 /* SDWebImage.modulemap */,
  1202 + 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */,
  1203 + A4015B1017950B192730F1ABF2793542 /* SDWebImage-Info.plist */,
  1204 + 2E14AFE886371F80BB03C9261CAE653A /* SDWebImage-prefix.pch */,
  1205 + 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */,
  1206 + 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */,
  1207 + 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */,
  1208 + );
  1209 + name = "Support Files";
  1210 + path = "../Target Support Files/SDWebImage";
  1211 + sourceTree = "<group>";
  1212 + };
1258 1213 6395BBC4FE7C6C41AE1CB6A3363066BD /* Targets Support Files */ = {
1259 1214 isa = PBXGroup;
1260 1215 children = (
... ... @@ -1289,21 +1244,6 @@
1289 1244 path = Image;
1290 1245 sourceTree = "<group>";
1291 1246 };
1292   - 710F178F0547C8EE314E14F2AB2C4124 /* Support Files */ = {
1293   - isa = PBXGroup;
1294   - children = (
1295   - 3E74798ACDDA5B166130859C04575723 /* SDWebImage.modulemap */,
1296   - 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */,
1297   - 15DA0DE7F827744C2CD1C503B90ED22A /* SDWebImage-Info.plist */,
1298   - 3AEC8F623A6884FBFC7CF8D4309918D7 /* SDWebImage-prefix.pch */,
1299   - 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */,
1300   - 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */,
1301   - 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */,
1302   - );
1303   - name = "Support Files";
1304   - path = "../Target Support Files/SDWebImage";
1305   - sourceTree = "<group>";
1306   - };
1307 1247 7681CA34E755E133CA6962CC78CCA732 /* YBImageBrowser */ = {
1308 1248 isa = PBXGroup;
1309 1249 children = (
... ... @@ -1321,6 +1261,16 @@
1321 1261 path = YBImageBrowser_DSCnliveShop/Classes/YBImageBrowser;
1322 1262 sourceTree = "<group>";
1323 1263 };
  1264 + 7A014A40B4BE421CD0E89DA824A04413 /* SDWebImage */ = {
  1265 + isa = PBXGroup;
  1266 + children = (
  1267 + 418B8500CC0BC65A0DE0B609A2F36DA8 /* Core */,
  1268 + 4A12BD7E0F24F7DA5CB75AC152DCA427 /* Support Files */,
  1269 + );
  1270 + name = SDWebImage;
  1271 + path = SDWebImage;
  1272 + sourceTree = "<group>";
  1273 + };
1324 1274 9A9577D5B370441D1926FE268E305F56 /* Resources */ = {
1325 1275 isa = PBXGroup;
1326 1276 children = (
... ... @@ -1348,7 +1298,7 @@
1348 1298 A2BE8DF77D03508B9B8418BD9602255F /* Pods */ = {
1349 1299 isa = PBXGroup;
1350 1300 children = (
1351   - FEF90DB2DC962AA8A54D42B042F65B9E /* SDWebImage */,
  1301 + 7A014A40B4BE421CD0E89DA824A04413 /* SDWebImage */,
1352 1302 B0A9653E4CBB5BBF0D27A9511C0EE8C4 /* YYKit */,
1353 1303 );
1354 1304 name = Pods;
... ... @@ -1661,16 +1611,6 @@
1661 1611 name = Frameworks;
1662 1612 sourceTree = "<group>";
1663 1613 };
1664   - FEF90DB2DC962AA8A54D42B042F65B9E /* SDWebImage */ = {
1665   - isa = PBXGroup;
1666   - children = (
1667   - 1A858AEA06D9DB5413EC15E1834061B8 /* Core */,
1668   - 710F178F0547C8EE314E14F2AB2C4124 /* Support Files */,
1669   - );
1670   - name = SDWebImage;
1671   - path = SDWebImage;
1672   - sourceTree = "<group>";
1673   - };
1674 1614 FF6E94A47A5FB0D3A3409B902104CDC9 /* Helper */ = {
1675 1615 isa = PBXGroup;
1676 1616 children = (
... ... @@ -1846,84 +1786,74 @@
1846 1786 );
1847 1787 runOnlyForDeploymentPostprocessing = 0;
1848 1788 };
1849   - CB6048343884143F7919689F2F9BEEA2 /* Headers */ = {
  1789 + CA4065646A60ED133DABD1609AE9B77F /* Headers */ = {
1850 1790 isa = PBXHeadersBuildPhase;
1851 1791 buildActionMask = 2147483647;
1852 1792 files = (
1853   - D0725567B7BD18C79A04E5EC9C72249D /* NSBezierPath+SDRoundedCorners.h in Headers */,
1854   - 449AF3A1E1DEFBD47B2411DAD0E5D6CC /* NSButton+WebCache.h in Headers */,
1855   - EB634403E13B36687931F62769C04F66 /* NSData+ImageContentType.h in Headers */,
1856   - 9C6F61B6DD8964A03128BB996BCCCDF5 /* NSImage+Compatibility.h in Headers */,
1857   - 1201437E196032353D4D2B2DF8206775 /* SDAnimatedImage.h in Headers */,
1858   - 9B0ADFBD0EE010BC1AE32B290FAF2D70 /* SDAnimatedImagePlayer.h in Headers */,
1859   - 86A92CFC75F685F5805824C81ED34DD9 /* SDAnimatedImageRep.h in Headers */,
1860   - 6F14B66A0031F8CD2DBD49D05F285A5A /* SDAnimatedImageView+WebCache.h in Headers */,
1861   - 40DD3721BA61598A56ECF57BB1C45EE8 /* SDAnimatedImageView.h in Headers */,
1862   - 85B91AFDF4CF2F4FB54D35AE96CB02DE /* SDAssociatedObject.h in Headers */,
1863   - 7C9BCCE2BE2AB0F74617E9638E8383E2 /* SDAsyncBlockOperation.h in Headers */,
1864   - 09EB95CBDF8D54EB05C26A5196EBBB65 /* SDDeviceHelper.h in Headers */,
1865   - DE311CA167D40330E2B71F4726A6B789 /* SDDiskCache.h in Headers */,
1866   - 1367682CED02F22D43F248A0E36CC17B /* SDDisplayLink.h in Headers */,
1867   - 69FC796803AADF6F7D78E034F759E07A /* SDFileAttributeHelper.h in Headers */,
1868   - 5BCB8102AFF58BDD96E0C059F9B88BB5 /* SDGraphicsImageRenderer.h in Headers */,
1869   - C88E97ED465D3973A3D9FD7AE94BDB9A /* SDImageAPNGCoder.h in Headers */,
1870   - 8860B7C942F4FDAC599E545DEC6E0446 /* SDImageAssetManager.h in Headers */,
1871   - 9140B89832569466DC295558951FF9A4 /* SDImageCache.h in Headers */,
1872   - 0CD7B135FD4B84BDB1FB8727A2F85550 /* SDImageCacheConfig.h in Headers */,
1873   - A26011648EA7CD910788DBBF08C36F32 /* SDImageCacheDefine.h in Headers */,
1874   - E9B97B2FD84DF4015AABD7E5978A710F /* SDImageCachesManager.h in Headers */,
1875   - 78A8F86E5996E580294B65E304C65F6A /* SDImageCachesManagerOperation.h in Headers */,
1876   - 8BE030582BFA5590BC7A1EB1A7E8DDC4 /* SDImageCoder.h in Headers */,
1877   - 285BB197A61A0553905D872B6E4F6BA1 /* SDImageCoderHelper.h in Headers */,
1878   - 47CFA5C583D7B3BFD0FBAD1F1A474913 /* SDImageCodersManager.h in Headers */,
1879   - 5C5058FC446A9C6C4F3FA70C2121A267 /* SDImageFrame.h in Headers */,
1880   - 12A76A691E704E6EBE12CC888639C31A /* SDImageGIFCoder.h in Headers */,
1881   - 7829F86094FA530717C4AF09DFA1FCB7 /* SDImageGraphics.h in Headers */,
1882   - 4F227430C16CAB3FF65A1488229BF46A /* SDImageHEICCoder.h in Headers */,
1883   - D347FCF56E468483A546E1F611DE081C /* SDImageHEICCoderInternal.h in Headers */,
1884   - 79140F3DB1DFA9969EF7EA809862461B /* SDImageIOAnimatedCoder.h in Headers */,
1885   - EA50654643EF702D7F2DD17534459EAB /* SDImageIOAnimatedCoderInternal.h in Headers */,
1886   - D6FDFE95CEDBD0A41D4E16FDB1599FA9 /* SDImageIOCoder.h in Headers */,
1887   - 104CBAC9F34C7B8475A096C4B0ACA3A0 /* SDImageLoader.h in Headers */,
1888   - 858BA6CE212BDE681F7B8EC99CDEA5A2 /* SDImageLoadersManager.h in Headers */,
1889   - 949BA4CC204D826571EA4E85BA769DB7 /* SDImageTransformer.h in Headers */,
1890   - 561EAFCC4AA4A4FFA55319ACF371D31C /* SDInternalMacros.h in Headers */,
1891   - FC4DE0456F37E3F47195E5F969314E0F /* SDMemoryCache.h in Headers */,
1892   - 183F84DC6D79A0F93AE6C13F2EDDDCD8 /* SDmetamacros.h in Headers */,
1893   - 5E96F449788433CD16C308CA4C4974AB /* SDWeakProxy.h in Headers */,
1894   - 1A04C35F3E2D85CFCAFC9934EAC8E033 /* SDWebImage-umbrella.h in Headers */,
1895   - 64F3EB426774D6F1D593DBFAFFBF6791 /* SDWebImage.h in Headers */,
1896   - FEF33326D4B5B59DFD0CA1DFAD4001FC /* SDWebImageCacheKeyFilter.h in Headers */,
1897   - DFE7857272AA4CDEC686248E790174F9 /* SDWebImageCacheSerializer.h in Headers */,
1898   - 010A21434427A1E7CE25060BA3A66A61 /* SDWebImageCompat.h in Headers */,
1899   - CBA469E2DD8702DECB634A81F850C516 /* SDWebImageDefine.h in Headers */,
1900   - 9C39FA3EB2A9462B249432F655FC9AA8 /* SDWebImageDownloader.h in Headers */,
1901   - A3A38FFF99F8F65D21F6526D4D257230 /* SDWebImageDownloaderConfig.h in Headers */,
1902   - C854CD2F89E00E88FB1D6669A770DEE0 /* SDWebImageDownloaderDecryptor.h in Headers */,
1903   - CF1AA8850ED16C5F49B61BC3A9B13DD7 /* SDWebImageDownloaderOperation.h in Headers */,
1904   - 6B8E9A4250E31C61FFB2FA44B1ED587D /* SDWebImageDownloaderRequestModifier.h in Headers */,
1905   - 02A4C8ABD5DCC501DE7A6CE19B398E14 /* SDWebImageDownloaderResponseModifier.h in Headers */,
1906   - 95D70798AF08A9AF6AC0455ABAC50B31 /* SDWebImageError.h in Headers */,
1907   - B6A52B7697F15B487F846F3DA1CB3896 /* SDWebImageIndicator.h in Headers */,
1908   - FC5E54109CC0090D7CA4492C6225E5BB /* SDWebImageManager.h in Headers */,
1909   - CD06DC5FCA424D8A0928068BEB8AF2E5 /* SDWebImageOperation.h in Headers */,
1910   - DA1F5EB06521252BF63369AFEF914368 /* SDWebImageOptionsProcessor.h in Headers */,
1911   - B52576B08EFC9D67F218CC2DAC542AF4 /* SDWebImagePrefetcher.h in Headers */,
1912   - 02B6598C52131C10E3CA344FB49B87FA /* SDWebImageTransition.h in Headers */,
1913   - 71C055BCF544D98F47CCFB404A9157A0 /* SDWebImageTransitionInternal.h in Headers */,
1914   - 7320BE37CC5564C9200656A346D16D7C /* UIButton+WebCache.h in Headers */,
1915   - 41E823881385B837FA086E301CBBB87C /* UIColor+SDHexString.h in Headers */,
1916   - 758D45C8E630A9B2A29746AFAB257929 /* UIImage+ExtendedCacheData.h in Headers */,
1917   - 56D4C3BEBAF6D7B57123C4A919EDFC4D /* UIImage+ForceDecode.h in Headers */,
1918   - A1B62D4B373543D743AC938090EF65F2 /* UIImage+GIF.h in Headers */,
1919   - 7BDCFF16AD5094651DDF91E007A194A1 /* UIImage+MemoryCacheCost.h in Headers */,
1920   - CCEF1E548BE78064BE12CC29D9977A28 /* UIImage+Metadata.h in Headers */,
1921   - 7CB9508A6133F4674F3358339F62CF03 /* UIImage+MultiFormat.h in Headers */,
1922   - DCDC5264F294AB9A622D368F2F7FA336 /* UIImage+Transform.h in Headers */,
1923   - 42BB3098DC0E47748C6AD61A10575859 /* UIImageView+HighlightedWebCache.h in Headers */,
1924   - 9212629910630E2F8888272B38EA81E4 /* UIImageView+WebCache.h in Headers */,
1925   - 033813F58E3D20FA511AF1B5C3D58FA7 /* UIView+WebCache.h in Headers */,
1926   - 21C120EDFCE3F1B685833EAE2F088998 /* UIView+WebCacheOperation.h in Headers */,
  1793 + 2BB48CC4F4CCB6ED239A7116C1399192 /* NSBezierPath+RoundedCorners.h in Headers */,
  1794 + C8719B604AC23450E05D0E2F5716C8EE /* NSButton+WebCache.h in Headers */,
  1795 + E1A13F65E327E70ED0A0322ED9D4E004 /* NSData+ImageContentType.h in Headers */,
  1796 + 584691DE6F6DC43CCB28E2164DDD65C5 /* NSImage+Compatibility.h in Headers */,
  1797 + 5B6E86C662422D902876E9564F7D0D62 /* SDAnimatedImage.h in Headers */,
  1798 + F9CD37EE6DD796D86FAFCE65C106D553 /* SDAnimatedImageRep.h in Headers */,
  1799 + E807BB2D53EF822DDA0109BEB8F33F4B /* SDAnimatedImageView+WebCache.h in Headers */,
  1800 + F7C220B780BE3FFD43D49EB09A4AA120 /* SDAnimatedImageView.h in Headers */,
  1801 + 56D932D22CCE25078DDC72863C793EB6 /* SDAsyncBlockOperation.h in Headers */,
  1802 + 89AA4B620BAF006802F7FE16331FBB03 /* SDDiskCache.h in Headers */,
  1803 + F4A2A3265060EE0EC36AE153BA2F11F1 /* SDImageAPNGCoder.h in Headers */,
  1804 + 31C885C264ACBC869D0C15774FEEEE91 /* SDImageAssetManager.h in Headers */,
  1805 + CED0ADFAFACBD8EAC91D8FDFAD72CC3D /* SDImageCache.h in Headers */,
  1806 + 4A63641D8EA2784EA3ED6DE31D3EEE7B /* SDImageCacheConfig.h in Headers */,
  1807 + 6E23CCE1DD2C5694FB3733EF5969C2BA /* SDImageCacheDefine.h in Headers */,
  1808 + 1D8DC86B542A5C7B185D576593BFEF08 /* SDImageCachesManager.h in Headers */,
  1809 + 07ECBE230ADCE64A5E565EAC5608FE06 /* SDImageCachesManagerOperation.h in Headers */,
  1810 + 3F1C17F8ED3A2719985697A88379D691 /* SDImageCoder.h in Headers */,
  1811 + 41D2B74D60CECB9A13273FEA70EB0853 /* SDImageCoderHelper.h in Headers */,
  1812 + 765CF9D27014B63D63045C295D14D47F /* SDImageCodersManager.h in Headers */,
  1813 + 4E303A392C14264AF2A7846A47904C0E /* SDImageFrame.h in Headers */,
  1814 + A9FB0B1C38B3DF1982D4D8F8B3B99A4E /* SDImageGIFCoder.h in Headers */,
  1815 + A522F73D14A2CB4DE43E00754C6D504B /* SDImageGraphics.h in Headers */,
  1816 + 0A12ECF7CCD9D053812435656179FE07 /* SDImageHEICCoder.h in Headers */,
  1817 + 3402867F1DCE2F01EE152BE666D15391 /* SDImageHEICCoderInternal.h in Headers */,
  1818 + DB7CB011D38A0CF4CBA6380FF04F0B61 /* SDImageIOAnimatedCoder.h in Headers */,
  1819 + 4FB58F2A627219E59C6002407BA17370 /* SDImageIOAnimatedCoderInternal.h in Headers */,
  1820 + 16EBE72F21A776BA4F5FA1B43DA0D550 /* SDImageIOCoder.h in Headers */,
  1821 + 9F8771C9472203AC8A6B882D32E081FD /* SDImageLoader.h in Headers */,
  1822 + 66E7DB4A06FD62E3319504FA066A159D /* SDImageLoadersManager.h in Headers */,
  1823 + 93EEC3D112C8D5BAF8202BBB7C0F8D40 /* SDImageTransformer.h in Headers */,
  1824 + B241B25BC7903216B219BCFDD5533ED2 /* SDInternalMacros.h in Headers */,
  1825 + 0897E820C9A330AEE938549F3A202047 /* SDMemoryCache.h in Headers */,
  1826 + CB6B765C0485EA0801AC5AD27B988336 /* SDmetamacros.h in Headers */,
  1827 + EC2A8CA5F7249A4197E707E8008C2CAF /* SDWeakProxy.h in Headers */,
  1828 + 78C4797B83602657490272FB5AC87882 /* SDWebImage-umbrella.h in Headers */,
  1829 + 31486EEF2AE7067DC3FB4C41D8B06044 /* SDWebImage.h in Headers */,
  1830 + B1635A0F2A9E883F5F9478F04F5F9B00 /* SDWebImageCacheKeyFilter.h in Headers */,
  1831 + 83A3C38994C1BE0F1B3FDC74FF3EB86E /* SDWebImageCacheSerializer.h in Headers */,
  1832 + B27865F2F8513D2BAF80C119865014B2 /* SDWebImageCompat.h in Headers */,
  1833 + D9B0AE61DB0C28C1A453C57DBAA9894C /* SDWebImageDefine.h in Headers */,
  1834 + FC5F561CA670D699F300DDA4FE2D8314 /* SDWebImageDownloader.h in Headers */,
  1835 + 9A0E1A1BFFD28A2746792BE8D568E3AC /* SDWebImageDownloaderConfig.h in Headers */,
  1836 + 571964893E54957A53F88749EA22E79B /* SDWebImageDownloaderOperation.h in Headers */,
  1837 + CA2A04B40C4584BB62EDF451D4691393 /* SDWebImageDownloaderRequestModifier.h in Headers */,
  1838 + 1A645DC3F75D98F78F685E7E8172E6C4 /* SDWebImageError.h in Headers */,
  1839 + 5BB4DED775A9AB9259E214C9543F2409 /* SDWebImageIndicator.h in Headers */,
  1840 + DBB84BD7F62230F01B7533CF5DB8E2B8 /* SDWebImageManager.h in Headers */,
  1841 + 5D93304CCA386D1CA921179A22788088 /* SDWebImageOperation.h in Headers */,
  1842 + B9EAA2FEBC24879CE426A200D1943850 /* SDWebImageOptionsProcessor.h in Headers */,
  1843 + FA626556DE0DB5DBE98269492EB9D858 /* SDWebImagePrefetcher.h in Headers */,
  1844 + FA1132270226AEC00FD163A760F5BFDD /* SDWebImageTransition.h in Headers */,
  1845 + 972F3D3004A38B2E91B514317462F912 /* UIButton+WebCache.h in Headers */,
  1846 + AA4B92512944686F23ABE5632656872E /* UIColor+HexString.h in Headers */,
  1847 + 130C29DD67F0DACDAA2E6A57DA2422D7 /* UIImage+ForceDecode.h in Headers */,
  1848 + 06012BECF3390F6D209D81ABC29DEE7F /* UIImage+GIF.h in Headers */,
  1849 + D4C9FCF4108BF46522DA445E47524A6A /* UIImage+MemoryCacheCost.h in Headers */,
  1850 + 21C54761AEC4B6FF8F628CF62503856C /* UIImage+Metadata.h in Headers */,
  1851 + 43367367332A88EC53B2BEA287BAA3DD /* UIImage+MultiFormat.h in Headers */,
  1852 + 11631B3F15728204C488D6CF17DA63BF /* UIImage+Transform.h in Headers */,
  1853 + 6B841305B372900E43EAD6CF233EA695 /* UIImageView+HighlightedWebCache.h in Headers */,
  1854 + 06EF6A665BCC7FDFD85BD8ABD55A3959 /* UIImageView+WebCache.h in Headers */,
  1855 + 902A0F8F36BB0CD612BD333AB538FFC0 /* UIView+WebCache.h in Headers */,
  1856 + 768B0529984555456940B969FB3B0C5B /* UIView+WebCacheOperation.h in Headers */,
1927 1857 );
1928 1858 runOnlyForDeploymentPostprocessing = 0;
1929 1859 };
... ... @@ -2000,12 +1930,12 @@
2000 1930 };
2001 1931 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */ = {
2002 1932 isa = PBXNativeTarget;
2003   - buildConfigurationList = AC6F755EB18559BA16F3A7501A53F36A /* Build configuration list for PBXNativeTarget "SDWebImage" */;
  1933 + buildConfigurationList = 74451F5A9D7B9165630F6C64F97C5913 /* Build configuration list for PBXNativeTarget "SDWebImage" */;
2004 1934 buildPhases = (
2005   - CB6048343884143F7919689F2F9BEEA2 /* Headers */,
2006   - 6B33B89724E2F1127E0B67158DDEA242 /* Sources */,
2007   - 93E1803EFFB49B8B5D9BE9C3FF15E708 /* Frameworks */,
2008   - D6D70F7565EE0DD3BC12CD0BB42B01A8 /* Resources */,
  1935 + CA4065646A60ED133DABD1609AE9B77F /* Headers */,
  1936 + BAD7BFF6FC8F0397DB86C139AF674045 /* Sources */,
  1937 + ECEA1B04AA580BD337B52CB84D1C00A8 /* Frameworks */,
  1938 + 016B131B0F6F68BCBAE6DB01E3F25349 /* Resources */,
2009 1939 );
2010 1940 buildRules = (
2011 1941 );
... ... @@ -2068,37 +1998,37 @@
2068 1998 /* End PBXProject section */
2069 1999  
2070 2000 /* Begin PBXResourcesBuildPhase section */
2071   - 04E5F5CBE7ACCFB62968403927984C4D /* Resources */ = {
  2001 + 016B131B0F6F68BCBAE6DB01E3F25349 /* Resources */ = {
2072 2002 isa = PBXResourcesBuildPhase;
2073 2003 buildActionMask = 2147483647;
2074 2004 files = (
2075   - 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */,
2076   - 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */,
2077 2005 );
2078 2006 runOnlyForDeploymentPostprocessing = 0;
2079 2007 };
2080   - 1B5D0ACC6DCF897D7CF6F5B8A6D36155 /* Resources */ = {
  2008 + 04E5F5CBE7ACCFB62968403927984C4D /* Resources */ = {
2081 2009 isa = PBXResourcesBuildPhase;
2082 2010 buildActionMask = 2147483647;
2083 2011 files = (
  2012 + 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */,
  2013 + 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */,
2084 2014 );
2085 2015 runOnlyForDeploymentPostprocessing = 0;
2086 2016 };
2087   - 419C229B6C5AA15382BC7E9ABB6926B5 /* Resources */ = {
  2017 + 1B5D0ACC6DCF897D7CF6F5B8A6D36155 /* Resources */ = {
2088 2018 isa = PBXResourcesBuildPhase;
2089 2019 buildActionMask = 2147483647;
2090 2020 files = (
2091 2021 );
2092 2022 runOnlyForDeploymentPostprocessing = 0;
2093 2023 };
2094   - 4C79C6E06B50883D4F5B69556511C7D0 /* Resources */ = {
  2024 + 419C229B6C5AA15382BC7E9ABB6926B5 /* Resources */ = {
2095 2025 isa = PBXResourcesBuildPhase;
2096 2026 buildActionMask = 2147483647;
2097 2027 files = (
2098 2028 );
2099 2029 runOnlyForDeploymentPostprocessing = 0;
2100 2030 };
2101   - D6D70F7565EE0DD3BC12CD0BB42B01A8 /* Resources */ = {
  2031 + 4C79C6E06B50883D4F5B69556511C7D0 /* Resources */ = {
2102 2032 isa = PBXResourcesBuildPhase;
2103 2033 buildActionMask = 2147483647;
2104 2034 files = (
... ... @@ -2205,79 +2135,69 @@
2205 2135 );
2206 2136 runOnlyForDeploymentPostprocessing = 0;
2207 2137 };
2208   - 6B33B89724E2F1127E0B67158DDEA242 /* Sources */ = {
  2138 + BAD7BFF6FC8F0397DB86C139AF674045 /* Sources */ = {
2209 2139 isa = PBXSourcesBuildPhase;
2210 2140 buildActionMask = 2147483647;
2211 2141 files = (
2212   - 14C2D66D5EC7A892325562A7830E78D4 /* NSBezierPath+SDRoundedCorners.m in Sources */,
2213   - EC14B2E8E460DFC2E4EB78A9FC10117C /* NSButton+WebCache.m in Sources */,
2214   - 64CB4C39356EDD005F3104B820F4B299 /* NSData+ImageContentType.m in Sources */,
2215   - 3E404F1C1EF06355EBCAD17AAA6A7655 /* NSImage+Compatibility.m in Sources */,
2216   - 28B63809D42D68F3E44A2012695EC8E8 /* SDAnimatedImage.m in Sources */,
2217   - 826CC80A43888E4B01B8C0F546CCEB4C /* SDAnimatedImagePlayer.m in Sources */,
2218   - 27E23C72CC1BAD100D8F8E52A77E0DED /* SDAnimatedImageRep.m in Sources */,
2219   - 84996105619FE8603B904EBD8CAF4650 /* SDAnimatedImageView+WebCache.m in Sources */,
2220   - 4458F0F06DDB8ED606F8089B51DE2857 /* SDAnimatedImageView.m in Sources */,
2221   - 9A63822674C925980BCE24CF9162F224 /* SDAssociatedObject.m in Sources */,
2222   - D43B9E05CBF3046EB696F0357E263B54 /* SDAsyncBlockOperation.m in Sources */,
2223   - 292DFB006819CC5C457430933E9DF2CC /* SDDeviceHelper.m in Sources */,
2224   - DB42064F83C6224213B940B249FC26FF /* SDDiskCache.m in Sources */,
2225   - 3BAC7E6B28028F929677080D34286C9A /* SDDisplayLink.m in Sources */,
2226   - FFA5793DBEE9AB3CC5C01F5B6F0B1151 /* SDFileAttributeHelper.m in Sources */,
2227   - 725C541DA4309D9A2CE04EA1BAC9DB05 /* SDGraphicsImageRenderer.m in Sources */,
2228   - 477600BAE7223A59EC2D341F7EAA0C5B /* SDImageAPNGCoder.m in Sources */,
2229   - BD1CC866FEB3E8226394BA640E7FA900 /* SDImageAssetManager.m in Sources */,
2230   - 198D45399940A52F6AD442B5F96A24A1 /* SDImageCache.m in Sources */,
2231   - 8A1D68B08A42906461750649F460B63E /* SDImageCacheConfig.m in Sources */,
2232   - 69979E7EF7E1322AF64B9D04EC5DC4FC /* SDImageCacheDefine.m in Sources */,
2233   - 3FE529AB19EA206854B9668E508D927B /* SDImageCachesManager.m in Sources */,
2234   - 14E9103FD1B1EFBE7BA8EE1137810EB2 /* SDImageCachesManagerOperation.m in Sources */,
2235   - 451775744CDDD8A2805CCC5FAAE96FE6 /* SDImageCoder.m in Sources */,
2236   - CC1B7B642CBAEA58A27D410B329E5FFD /* SDImageCoderHelper.m in Sources */,
2237   - BDACD97A89128CDAECEE9F2C66A68041 /* SDImageCodersManager.m in Sources */,
2238   - D2EDDDAA1E3498604C570DA06526C7BA /* SDImageFrame.m in Sources */,
2239   - D4F67B56B3A2910031B248E07BC0FF9F /* SDImageGIFCoder.m in Sources */,
2240   - 44F7C039A4502CB6ABFE93BC1626ADAF /* SDImageGraphics.m in Sources */,
2241   - 5C11EACACCF1A59EC89E212517D471D2 /* SDImageHEICCoder.m in Sources */,
2242   - 89A6805309AE158EA70271058AD04DAC /* SDImageIOAnimatedCoder.m in Sources */,
2243   - 521A2AB2326986DDA7210B222799D82D /* SDImageIOCoder.m in Sources */,
2244   - B34DA9789249B559F7D135CDC3D4FD77 /* SDImageLoader.m in Sources */,
2245   - 013FB3424E97C9CBA093B58F3FF74537 /* SDImageLoadersManager.m in Sources */,
2246   - 6F52C02EB7BEBB28BEF797764940E83D /* SDImageTransformer.m in Sources */,
2247   - 19BA863C27D0A5BBD664CB1ABDA03238 /* SDInternalMacros.m in Sources */,
2248   - 8D7206334016EF356DD5C06DB743927A /* SDMemoryCache.m in Sources */,
2249   - 9B9C593A401B16CA1F27613B33259116 /* SDWeakProxy.m in Sources */,
2250   - 3526C8C7BD0C5256C819AEB8DE26BC80 /* SDWebImage-dummy.m in Sources */,
2251   - F045BDBF956B9EE5340F3225336EDAC6 /* SDWebImageCacheKeyFilter.m in Sources */,
2252   - 46E5579E12DEE8B0B0E8B4BD484303AF /* SDWebImageCacheSerializer.m in Sources */,
2253   - DD784DFACF8863C7D46B9054B0DD7C42 /* SDWebImageCompat.m in Sources */,
2254   - E48B7D3309D22470B53A3EB47B6577E7 /* SDWebImageDefine.m in Sources */,
2255   - AB811350CFBFEC402845394DFB11C5B9 /* SDWebImageDownloader.m in Sources */,
2256   - C94DE8F907543852C6C5311CE0A2752A /* SDWebImageDownloaderConfig.m in Sources */,
2257   - 5EC0E24AEBC97BED8827D6824B20AEA3 /* SDWebImageDownloaderDecryptor.m in Sources */,
2258   - 9058F00D7FB0F44089EA7418C9BE80CD /* SDWebImageDownloaderOperation.m in Sources */,
2259   - A8F9213841A1696CA4E3BAF5B0836F43 /* SDWebImageDownloaderRequestModifier.m in Sources */,
2260   - EA5AE4148E9B9228E70EDB7F575D111E /* SDWebImageDownloaderResponseModifier.m in Sources */,
2261   - C32C3C747D6831244FA97E55D7EBC211 /* SDWebImageError.m in Sources */,
2262   - C71E6525587D5FFE318A222C092FA6AE /* SDWebImageIndicator.m in Sources */,
2263   - 92253035C5C62FC047813B453A47011B /* SDWebImageManager.m in Sources */,
2264   - 461394E1264BA539807AE22B6681037D /* SDWebImageOperation.m in Sources */,
2265   - CAD57C741FFBC3EBCA19E4F1891E4FDA /* SDWebImageOptionsProcessor.m in Sources */,
2266   - ED388349310FF50899F3AEB5E2DF0500 /* SDWebImagePrefetcher.m in Sources */,
2267   - 7A39F3B62173880BC1A1E872B2B0DE19 /* SDWebImageTransition.m in Sources */,
2268   - C8D1A63DACC1ED208C203641C69EEEF1 /* UIButton+WebCache.m in Sources */,
2269   - F4BE0CAF1D4BF04D766DB4A25AE4A4C2 /* UIColor+SDHexString.m in Sources */,
2270   - 3D269D2B6E70D5134F84F471FA897C1D /* UIImage+ExtendedCacheData.m in Sources */,
2271   - 66794E1E249B57756C75632B1CF7AA7A /* UIImage+ForceDecode.m in Sources */,
2272   - 34E8A42A4CD18CF55A1C5CBD1F222D71 /* UIImage+GIF.m in Sources */,
2273   - 8B74D26ECDC0A95EADFD2FE3D6044F45 /* UIImage+MemoryCacheCost.m in Sources */,
2274   - 90B45AE4B48040DD4DF7B2521A41FA93 /* UIImage+Metadata.m in Sources */,
2275   - B6B6619A760B666DE47643F684DCF92A /* UIImage+MultiFormat.m in Sources */,
2276   - 9CBF5A5EFC5491417ACEF9D2D6F604DD /* UIImage+Transform.m in Sources */,
2277   - 271841B1A02A31A896499240CC233E7A /* UIImageView+HighlightedWebCache.m in Sources */,
2278   - 580A58EB2DC597145BE726FF15B7B980 /* UIImageView+WebCache.m in Sources */,
2279   - 16B189FD50EB941DDBCEF3718C511381 /* UIView+WebCache.m in Sources */,
2280   - 8D6092C5708543E1975D21EF342829A9 /* UIView+WebCacheOperation.m in Sources */,
  2142 + 8AAEE8B8F842102CB770F4A2C286AEE0 /* NSBezierPath+RoundedCorners.m in Sources */,
  2143 + 13B7C26AFEF7B9A9BB71D6340836C1D2 /* NSButton+WebCache.m in Sources */,
  2144 + C15872A8795C18D17D7CB78D0D2AF5A9 /* NSData+ImageContentType.m in Sources */,
  2145 + DDA63B6A16CAEC9EDAB8721409ED65EF /* NSImage+Compatibility.m in Sources */,
  2146 + 642B272637AFE100C01566715BE9A90E /* SDAnimatedImage.m in Sources */,
  2147 + AAB78C68578015956BFE8A56A7E02BA7 /* SDAnimatedImageRep.m in Sources */,
  2148 + 8B3648DF3CD6DCE1F23B154EEC9F47BC /* SDAnimatedImageView+WebCache.m in Sources */,
  2149 + 7BE352AC96A490424A89542C59B92D27 /* SDAnimatedImageView.m in Sources */,
  2150 + 6419E84A00BD1CC2D89FBD11DBA95B35 /* SDAsyncBlockOperation.m in Sources */,
  2151 + F855CDFE0F0B48A22F8F0B4CD25E3F2A /* SDDiskCache.m in Sources */,
  2152 + F0AB74AED6D7C008445C01678F59B54D /* SDImageAPNGCoder.m in Sources */,
  2153 + 66ABFE235C4A3EE1284E40B26EC06E50 /* SDImageAssetManager.m in Sources */,
  2154 + CBEDB718B4AB4391588A9347C9F03C4A /* SDImageCache.m in Sources */,
  2155 + 9BE4B66909D27FA2DEE5D7B4DAF83DD5 /* SDImageCacheConfig.m in Sources */,
  2156 + B0D15842F6D9B27F7E656D6A3D715329 /* SDImageCacheDefine.m in Sources */,
  2157 + 43413AE961CEDF130DB347D12953F90F /* SDImageCachesManager.m in Sources */,
  2158 + 720BDB7561A9BF9FAA229655BF6BAACB /* SDImageCachesManagerOperation.m in Sources */,
  2159 + 2987181816CE330B8D8C8011A163DED5 /* SDImageCoder.m in Sources */,
  2160 + E4C4C17E15D7F01D31091341E3B22767 /* SDImageCoderHelper.m in Sources */,
  2161 + 6C9E415ACF9DBBF5276A439ECA83FF41 /* SDImageCodersManager.m in Sources */,
  2162 + B81B452FC4B5B6F7812022013E0050F9 /* SDImageFrame.m in Sources */,
  2163 + C926C81B2AE4D970FF43FA6854DF11B3 /* SDImageGIFCoder.m in Sources */,
  2164 + EBD6DC15D9DA29829CD9A5BA5F2B2A76 /* SDImageGraphics.m in Sources */,
  2165 + 91EC5D1276C67BD151CE0945E99D346B /* SDImageHEICCoder.m in Sources */,
  2166 + 1A696C66B1AD121F4D74F70046E722BE /* SDImageIOAnimatedCoder.m in Sources */,
  2167 + 637C07DAF593E361026C13455CED3356 /* SDImageIOCoder.m in Sources */,
  2168 + 3CBE3496D679F3CAC215C24E124CEF20 /* SDImageLoader.m in Sources */,
  2169 + A93168D1B8FE647836641A8FD0960D3F /* SDImageLoadersManager.m in Sources */,
  2170 + 9F45ED51FB250F999DF9EEE26706306F /* SDImageTransformer.m in Sources */,
  2171 + C50CAA073FFEC5DFDB16A59830E97C95 /* SDInternalMacros.m in Sources */,
  2172 + E159EA4B9CE7CA4EA7CC422F1BB359D0 /* SDMemoryCache.m in Sources */,
  2173 + 69B78205FADBA6F82DD7D8842E744559 /* SDWeakProxy.m in Sources */,
  2174 + 7296ED68E239CF8323284C327EFD34DB /* SDWebImage-dummy.m in Sources */,
  2175 + CF5BBB5AA6B556A33F0FD0CBF107B538 /* SDWebImageCacheKeyFilter.m in Sources */,
  2176 + 773F599C7937832DC3E3C3F5FC41A2BF /* SDWebImageCacheSerializer.m in Sources */,
  2177 + 9AA98747F0FFCB4629345C58F9DFF9A2 /* SDWebImageCompat.m in Sources */,
  2178 + A24ECE056F5DC1A130E45CD9DFDDAE9D /* SDWebImageDefine.m in Sources */,
  2179 + 8095235275C7774DBD0439AEBF02EBF9 /* SDWebImageDownloader.m in Sources */,
  2180 + FD42C3773D4CE1E4ED8BC78369EE4898 /* SDWebImageDownloaderConfig.m in Sources */,
  2181 + 55F81E8A4E05DCEA1424C070100D7A08 /* SDWebImageDownloaderOperation.m in Sources */,
  2182 + 3768A48148C1A559EFA6857AEE21499C /* SDWebImageDownloaderRequestModifier.m in Sources */,
  2183 + 27117846D36D17C67AD6B0BC49819C2E /* SDWebImageError.m in Sources */,
  2184 + 7AA1932AD1AADADB7084C1120E353441 /* SDWebImageIndicator.m in Sources */,
  2185 + 5F7825DA2B38AE6F113742CD8640B6A5 /* SDWebImageManager.m in Sources */,
  2186 + 22AC8168428AA91CEFCC4A1EE18C61A1 /* SDWebImageOptionsProcessor.m in Sources */,
  2187 + E05830BFF728135BC1A3FCD86B02AFED /* SDWebImagePrefetcher.m in Sources */,
  2188 + F981FD60C717579B06FC77EBE5E3ECEE /* SDWebImageTransition.m in Sources */,
  2189 + B2D122DFC079570A5A257B8FEFE1CF4C /* UIButton+WebCache.m in Sources */,
  2190 + 8B36C6BD6BC521D6EBFAA6C06204C8AE /* UIColor+HexString.m in Sources */,
  2191 + 3A717A936244852C7999DF2ACDD3EBA4 /* UIImage+ForceDecode.m in Sources */,
  2192 + 4B010F01929654CD157576546C2CA5E5 /* UIImage+GIF.m in Sources */,
  2193 + 9F69D6D21857F40138D7EF02C9934F61 /* UIImage+MemoryCacheCost.m in Sources */,
  2194 + D84BE358D7B1195BCA3556D7A0003968 /* UIImage+Metadata.m in Sources */,
  2195 + 09291E0580080AF730970F2DE20C6F2F /* UIImage+MultiFormat.m in Sources */,
  2196 + 4A295CDE35C0C3A0C3BDC83BAEEBC8D1 /* UIImage+Transform.m in Sources */,
  2197 + 4E5C5A91108AA66D06C8D32C62266D23 /* UIImageView+HighlightedWebCache.m in Sources */,
  2198 + FB731F3EEA54F44A238FBBFED93D9974 /* UIImageView+WebCache.m in Sources */,
  2199 + 873613A08846E4C11A3D0504EF738DD3 /* UIView+WebCache.m in Sources */,
  2200 + C60409B7C6D34D479F3DC7157194706B /* UIView+WebCacheOperation.m in Sources */,
2281 2201 );
2282 2202 runOnlyForDeploymentPostprocessing = 0;
2283 2203 };
... ... @@ -2417,9 +2337,9 @@
2417 2337 };
2418 2338 name = Release;
2419 2339 };
2420   - 0E0881E1CF6CB5CB69A59B5DB8946635 /* Release */ = {
  2340 + 0D51E6D665830E8C0F6875C54D2AC40B /* Release */ = {
2421 2341 isa = XCBuildConfiguration;
2422   - baseConfigurationReference = 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */;
  2342 + baseConfigurationReference = 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */;
2423 2343 buildSettings = {
2424 2344 CODE_SIGN_IDENTITY = "";
2425 2345 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
... ... @@ -2449,37 +2369,6 @@
2449 2369 };
2450 2370 name = Release;
2451 2371 };
2452   - 10ED6ADB52D8B1FCFB0CF456419C6894 /* Debug */ = {
2453   - isa = XCBuildConfiguration;
2454   - baseConfigurationReference = 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */;
2455   - buildSettings = {
2456   - CODE_SIGN_IDENTITY = "";
2457   - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
2458   - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
2459   - "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
2460   - CURRENT_PROJECT_VERSION = 1;
2461   - DEFINES_MODULE = YES;
2462   - DYLIB_COMPATIBILITY_VERSION = 1;
2463   - DYLIB_CURRENT_VERSION = 1;
2464   - DYLIB_INSTALL_NAME_BASE = "@rpath";
2465   - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
2466   - INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist";
2467   - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
2468   - IPHONEOS_DEPLOYMENT_TARGET = 8.0;
2469   - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
2470   - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
2471   - PRODUCT_MODULE_NAME = SDWebImage;
2472   - PRODUCT_NAME = SDWebImage;
2473   - SDKROOT = iphoneos;
2474   - SKIP_INSTALL = YES;
2475   - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
2476   - SWIFT_VERSION = 4.0;
2477   - TARGETED_DEVICE_FAMILY = "1,2";
2478   - VERSIONING_SYSTEM = "apple-generic";
2479   - VERSION_INFO_PREFIX = "";
2480   - };
2481   - name = Debug;
2482   - };
2483 2372 314845AEFA52C16806836E92F522B3DA /* Debug */ = {
2484 2373 isa = XCBuildConfiguration;
2485 2374 baseConfigurationReference = D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */;
... ... @@ -2730,6 +2619,37 @@
2730 2619 };
2731 2620 name = Debug;
2732 2621 };
  2622 + BEA610A857E2D8D010A0A55145F83675 /* Debug */ = {
  2623 + isa = XCBuildConfiguration;
  2624 + baseConfigurationReference = 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */;
  2625 + buildSettings = {
  2626 + CODE_SIGN_IDENTITY = "";
  2627 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  2628 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  2629 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  2630 + CURRENT_PROJECT_VERSION = 1;
  2631 + DEFINES_MODULE = YES;
  2632 + DYLIB_COMPATIBILITY_VERSION = 1;
  2633 + DYLIB_CURRENT_VERSION = 1;
  2634 + DYLIB_INSTALL_NAME_BASE = "@rpath";
  2635 + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
  2636 + INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist";
  2637 + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
  2638 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  2639 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  2640 + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
  2641 + PRODUCT_MODULE_NAME = SDWebImage;
  2642 + PRODUCT_NAME = SDWebImage;
  2643 + SDKROOT = iphoneos;
  2644 + SKIP_INSTALL = YES;
  2645 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2646 + SWIFT_VERSION = 4.0;
  2647 + TARGETED_DEVICE_FAMILY = "1,2";
  2648 + VERSIONING_SYSTEM = "apple-generic";
  2649 + VERSION_INFO_PREFIX = "";
  2650 + };
  2651 + name = Debug;
  2652 + };
2733 2653 E795E7E265DDC88CE4D069201368C872 /* Release */ = {
2734 2654 isa = XCBuildConfiguration;
2735 2655 baseConfigurationReference = C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */;
... ... @@ -2869,11 +2789,11 @@
2869 2789 defaultConfigurationIsVisible = 0;
2870 2790 defaultConfigurationName = Release;
2871 2791 };
2872   - AC6F755EB18559BA16F3A7501A53F36A /* Build configuration list for PBXNativeTarget "SDWebImage" */ = {
  2792 + 74451F5A9D7B9165630F6C64F97C5913 /* Build configuration list for PBXNativeTarget "SDWebImage" */ = {
2873 2793 isa = XCConfigurationList;
2874 2794 buildConfigurations = (
2875   - 10ED6ADB52D8B1FCFB0CF456419C6894 /* Debug */,
2876   - 0E0881E1CF6CB5CB69A59B5DB8946635 /* Release */,
  2795 + BEA610A857E2D8D010A0A55145F83675 /* Debug */,
  2796 + 0D51E6D665830E8C0F6875C54D2AC40B /* Release */,
2877 2797 );
2878 2798 defaultConfigurationIsVisible = 0;
2879 2799 defaultConfigurationName = Release;
... ...
Example/Pods/SDWebImage/README.md
... ... @@ -19,9 +19,8 @@ This library provides an async image downloader with cache support. For convenie
19 19 - [x] Categories for `UIImageView`, `UIButton`, `MKAnnotationView` adding web image and cache management
20 20 - [x] An asynchronous image downloader
21 21 - [x] An asynchronous memory + disk image caching with automatic cache expiration handling
22   -- [x] A background image decompression to avoid frame rate drop
23   -- [x] [Progressive image loading](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#progressive-animation) (including animated image, like GIF showing in Web browser)
24   -- [x] [Thumbnail image decoding](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#thumbnail-decoding-550) to save CPU && Memory for large images
  22 +- [x] A background image decompression
  23 +- [x] Progressive image loading (including animated image, like GIF showing in Web browser)
25 24 - [x] [Extendable image coder](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#custom-coder-420) to support massive image format, like WebP
26 25 - [x] [Full-stack solution for animated images](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) which keep a balance between CPU && Memory
27 26 - [x] [Customizable and composable transformations](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#transformer-50) can be applied to the images right after download
... ... @@ -37,11 +36,11 @@ This library provides an async image downloader with cache support. For convenie
37 36  
38 37 ## Supported Image Formats
39 38  
40   -- Image formats supported by Apple system (JPEG, PNG, TIFF, HEIC, ...), including GIF/APNG/HEIC animation
  39 +- Image formats supported by UIImage (JPEG, PNG, HEIC, ...), including GIF/APNG/HEIC animation
41 40 - WebP format, including animated WebP (use the [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) project)
42 41 - Support extendable coder plugins for new image formats like BPG, AVIF. And vector format like PDF, SVG. See all the list in [Image coder plugin List](https://github.com/SDWebImage/SDWebImage/wiki/Coder-Plugin-List)
43 42  
44   -## Additional modules and Ecosystem
  43 +## Additional modules
45 44  
46 45 In order to keep SDWebImage focused and limited to the core features, but also allow extensibility and custom behaviors, during the 5.0 refactoring we focused on modularizing the library.
47 46 As such, we have moved/built new modules to [SDWebImage org](https://github.com/SDWebImage).
... ... @@ -49,47 +48,29 @@ As such, we have moved/built new modules to [SDWebImage org](https://github.com/
49 48 #### SwiftUI
50 49 [SwiftUI](https://developer.apple.com/xcode/swiftui/) is an innovative UI framework written in Swift to build user interfaces across all Apple platforms.
51 50  
52   -We support SwiftUI by building a brand new framework called [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI), which is built on top of SDWebImage core functions (caching, loading and animation).
53   -
54   -The new framework introduce two View structs `WebImage` and `AnimatedImage` for SwiftUI world, `ImageIndicator` modifier for any View, `ImageManager` observable object for data source. Supports iOS 13+/macOS 10.15+/tvOS 13+/watchOS 6+ and Swift 5.1. Have a nice try and provide feedback!
  51 +We support SwiftUI by building with the functions (caching, loading and animation) powered by SDWebImage. You can have a try with [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI)
55 52  
56 53 #### Coders for additional image formats
57   -- [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) - coder for WebP format. Based on [libwebp](https://chromium.googlesource.com/webm/libwebp)
58   -- [SDWebImageHEIFCoder](https://github.com/SDWebImage/SDWebImageHEIFCoder) - coder for HEIF format, iOS 8+/macOS 10.10+ support. Based on [libheif](https://github.com/strukturag/libheif)
59   -- [SDWebImageBPGCoder](https://github.com/SDWebImage/SDWebImageBPGCoder) - coder for BPG format. Based on [libbpg](https://github.com/mirrorer/libbpg)
60   -- [SDWebImageFLIFCoder](https://github.com/SDWebImage/SDWebImageFLIFCoder) - coder for FLIF format. Based on [libflif](https://github.com/FLIF-hub/FLIF)
61   -- [SDWebImageAVIFCoder](https://github.com/SDWebImage/SDWebImageAVIFCoder) - coder for AVIF (AV1-based) format. Based on [libavif](https://github.com/AOMediaCodec/libavif)
62   -- [SDWebImagePDFCoder](https://github.com/SDWebImage/SDWebImagePDFCoder) - coder for PDF vector format. Using built-in frameworks
63   -- [SDWebImageSVGCoder](https://github.com/SDWebImage/SDWebImageSVGCoder) - coder for SVG vector format. Using built-in frameworks
64   -- [SDWebImageLottieCoder](https://github.com/SDWebImage/SDWebImageLottieCoder) - coder for Lottie animation format. Based on [rlottie](https://github.com/Samsung/rlottie)
  54 +- [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) - coder for WebP image format. Based on [libwebp](https://chromium.googlesource.com/webm/libwebp)
  55 +- [SDWebImageHEIFCoder](https://github.com/SDWebImage/SDWebImageHEIFCoder) - coder to support HEIF image without Apple's `Image/IO framework`, iOS 8+/macOS 10.10+ support.
  56 +- [SDWebImageBPGCoder](https://github.com/SDWebImage/SDWebImageBPGCoder) - coder for BPG format
  57 +- [SDWebImageFLIFCoder](https://github.com/SDWebImage/SDWebImageFLIFCoder) - coder for FLIF format
  58 +- [SDWebImageAVIFCoder](https://github.com/SDWebImage/SDWebImageAVIFCoder) - coder for AVIF (AV1-based) format
65 59 - and more from community!
66 60  
67   -#### Custom Caches
68   -- [SDWebImageYYPlugin](https://github.com/SDWebImage/SDWebImageYYPlugin) - plugin to support caching images with [YYCache](https://github.com/ibireme/YYCache)
69   -- [SDWebImagePINPlugin](https://github.com/SDWebImage/SDWebImagePINPlugin) - plugin to support caching images with [PINCache](https://github.com/pinterest/PINCache)
70   -
71   -#### Custom Loaders
  61 +#### Loaders
72 62 - [SDWebImagePhotosPlugin](https://github.com/SDWebImage/SDWebImagePhotosPlugin) - plugin to support loading images from Photos (using `Photos.framework`)
73   -- [SDWebImageLinkPlugin](https://github.com/SDWebImage/SDWebImageLinkPlugin) - plugin to support loading images from rich link url, as well as `LPLinkView` (using `LinkPresentation.framework`)
74 63  
75 64 #### Integration with 3rd party libraries
76   -- [SDWebImageLottiePlugin](https://github.com/SDWebImage/SDWebImageLottiePlugin) - plugin to support [Lottie-iOS](https://github.com/airbnb/lottie-ios), vector animation rending with remote JSON files
77   -- [SDWebImageSVGKitPlugin](https://github.com/SDWebImage/SDWebImageLottiePlugin) - plugin to support [SVGKit](https://github.com/SVGKit/SVGKit), SVG rendering using Core Animation, iOS 8+/macOS 10.10+ support
78 65 - [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin) - plugin to support [FLAnimatedImage](https://github.com/Flipboard/FLAnimatedImage) as the engine for animated GIFs
79 66 - [SDWebImageYYPlugin](https://github.com/SDWebImage/SDWebImageYYPlugin) - plugin to integrate [YYImage](https://github.com/ibireme/YYImage) & [YYCache](https://github.com/ibireme/YYCache) for image rendering & caching
80 67  
81   -#### Community driven popular libraries
82   -- [FirebaseUI](https://github.com/firebase/FirebaseUI-iOS) - Firebase Storage binding for query images, based on SDWebImage loader system
83   -- [react-native-fast-image](https://github.com/DylanVann/react-native-fast-image) - React Native fast image component, based on SDWebImage Animated Image solution
84   -- [flutter_image_compress](https://github.com/OpenFlutter/flutter_image_compress) - Flutter compresses image plugin, based on SDWebImage WebP coder plugin
85   -
86 68 #### Make our lives easier
87 69 - [libwebp-Xcode](https://github.com/SDWebImage/libwebp-Xcode) - A wrapper for [libwebp](https://chromium.googlesource.com/webm/libwebp) + an Xcode project.
88 70 - [libheif-Xcode](https://github.com/SDWebImage/libheif-Xcode) - A wrapper for [libheif](https://github.com/strukturag/libheif) + an Xcode project.
89   -- [libavif-Xcode](https://github.com/SDWebImage/libavif-Xcode) - A wrapper for [libavif](https://github.com/AOMediaCodec/libavif) + an Xcode project.
90   -- and more third-party C/C++ image codec libraries with CocoaPods/Carthage/SwiftPM support.
  71 +- and more third-party C/C++ image codec libraries with CocoaPods/Carthage support.
91 72  
92   -You can use those directly, or create similar components of your own, by using the customizable architecture of SDWebImage.
  73 +You can use those directly, or create similar components of your own.
93 74  
94 75 ## Requirements
95 76  
... ... @@ -127,13 +108,11 @@ You can use those directly, or create similar components of your own, by using t
127 108 - If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/sdwebimage).
128 109 - If you **found a bug**, open an issue.
129 110 - If you **have a feature request**, open an issue.
130   -- If you **need IRC channel**, use [Gitter](https://gitter.im/SDWebImage/community).
131 111  
132 112 ## Contribution
133 113  
134 114 - If you **want to contribute**, read the [Contributing Guide](https://github.com/SDWebImage/SDWebImage/blob/master/.github/CONTRIBUTING.md)
135 115 - For **development contribution guide**, read the [How-To-Contribute](https://github.com/SDWebImage/SDWebImage/wiki/How-to-Contribute)
136   -- For **understanding code architecture**, read the [Code Architecture Analysis](https://github.com/SDWebImage/SDWebImage/wiki/5.6-Code-Architecture-Analysis)
137 116  
138 117 ## How To Use
139 118  
... ... @@ -159,30 +138,7 @@ imageView.sd_setImage(with: URL(string: &quot;http://www.domain.com/path/to/image.jpg
159 138 ## Animated Images (GIF) support
160 139  
161 140 In 5.0, we introduced a brand new mechanism for supporting animated images. This includes animated image loading, rendering, decoding, and also supports customizations (for advanced users).
162   -
163   -This animated image solution is available for `iOS`/`tvOS`/`macOS`. The `SDAnimatedImage` is subclass of `UIImage/NSImage`, and `SDAnimatedImageView` is subclass of `UIImageView/NSImageView`, to make them compatible with the common frameworks APIs.
164   -
165   -The `SDAnimatedImageView` supports the familiar image loading category methods, works like drop-in replacement for `UIImageView/NSImageView`.
166   -
167   -Don't have UIView (like WatchKit or CALayer)? you can still use `SDAnimatedPlayer` the player engine for advanced playback and rendering.
168   -
169   -See [Animated Image](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) for more detailed information.
170   -
171   -* Objective-C
172   -
173   -```objective-c
174   -SDAnimatedImageView *imageView = [SDAnimatedImageView new];
175   -SDAnimatedImage *animatedImage = [SDAnimatedImage imageNamed:@"image.gif"];
176   -imageView.image = animatedImage;
177   -```
178   -
179   -* Swift
180   -
181   -```swift
182   -let imageView = SDAnimatedImageView()
183   -let animatedImage = SDAnimatedImage(named: "image.gif")
184   -imageView.image = animatedImage
185   -```
  141 +This animated image solution is available for `iOS`/`tvOS`/`macOS`. The `SDAnimatedImage` is subclass of `UIImage/NSImage`, and `SDAnimatedImageView` is subclass of `UIImageView/NSImageView`, to make them compatible with the common frameworks APIs. See [Animated Image](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) for more detailed information.
186 142  
187 143 #### FLAnimatedImage integration has its own dedicated repo
188 144 In order to clean up things and make our core project do less things, we decided that the `FLAnimatedImage` integration does not belong here. From 5.0, this will still be available, but under a dedicated repo [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin).
... ... @@ -284,12 +240,6 @@ In the source files where you need to use the library, import the umbrella heade
284 240 #import <SDWebImage/SDWebImage.h>
285 241 ```
286 242  
287   -It's also recommend to use the module import syntax, available for CocoaPods(enable `modular_headers`)/Carthage/SwiftPM.
288   -
289   -```objecitivec
290   -@import SDWebImage;
291   -```
292   -
293 243 ### Build Project
294 244  
295 245 At this point your workspace should build without error. If you are having problem, post to the Issue and the
... ... @@ -317,8 +267,6 @@ All source code is licensed under the [MIT License](https://github.com/SDWebImag
317 267  
318 268 ## Architecture
319 269  
320   -To learn about SDWebImage's architecture design for contribution, read [The Core of SDWebImage v5.6 Architecture](https://github.com/SDWebImage/SDWebImage/wiki/5.6-Code-Architecture-Analysis). Thanks @looseyi for the post and translation.
321   -
322 270 #### High Level Diagram
323 271 <p align="center" >
324 272 <img src="https://raw.githubusercontent.com/SDWebImage/SDWebImage/master/Docs/Diagrams/SDWebImageHighLevelDiagram.jpeg" title="SDWebImage high level diagram">
... ...
Example/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.h
... ... @@ -23,8 +23,6 @@ static const SDImageFormat SDImageFormatTIFF = 3;
23 23 static const SDImageFormat SDImageFormatWebP = 4;
24 24 static const SDImageFormat SDImageFormatHEIC = 5;
25 25 static const SDImageFormat SDImageFormatHEIF = 6;
26   -static const SDImageFormat SDImageFormatPDF = 7;
27   -static const SDImageFormat SDImageFormatSVG = 8;
28 26  
29 27 /**
30 28 NSData category about the image content type and UTI.
... ... @@ -45,16 +43,14 @@ static const SDImageFormat SDImageFormatSVG = 8;
45 43 *
46 44 * @param format Format as SDImageFormat
47 45 * @return The UTType as CFStringRef
48   - * @note For unknown format, `kUTTypeImage` abstract type will return
49 46 */
50 47 + (nonnull CFStringRef)sd_UTTypeFromImageFormat:(SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sd_UTType(from:));
51 48  
52 49 /**
53   - * Convert UTType to SDImageFormat
  50 + * Convert UTTyppe to SDImageFormat
54 51 *
55 52 * @param uttype The UTType as CFStringRef
56 53 * @return The Format as SDImageFormat
57   - * @note For unknown type, `SDImageFormatUndefined` will return
58 54 */
59 55 + (SDImageFormat)sd_imageFormatFromUTType:(nonnull CFStringRef)uttype;
60 56  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.m
... ... @@ -17,7 +17,6 @@
17 17  
18 18 // Currently Image/IO does not support WebP
19 19 #define kSDUTTypeWebP ((__bridge CFStringRef)@"public.webp")
20   -#define kSVGTagEnd @"</svg>"
21 20  
22 21 @implementation NSData (ImageContentType)
23 22  
... ... @@ -66,24 +65,6 @@
66 65 }
67 66 break;
68 67 }
69   - case 0x25: {
70   - if (data.length >= 4) {
71   - //%PDF
72   - NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(1, 3)] encoding:NSASCIIStringEncoding];
73   - if ([testString isEqualToString:@"PDF"]) {
74   - return SDImageFormatPDF;
75   - }
76   - }
77   - }
78   - case 0x3C: {
79   - if (data.length > 100) {
80   - // Check end with SVG tag
81   - NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(data.length - 100, 100)] encoding:NSASCIIStringEncoding];
82   - if ([testString containsString:kSVGTagEnd]) {
83   - return SDImageFormatSVG;
84   - }
85   - }
86   - }
87 68 }
88 69 return SDImageFormatUndefined;
89 70 }
... ... @@ -112,15 +93,9 @@
112 93 case SDImageFormatHEIF:
113 94 UTType = kSDUTTypeHEIF;
114 95 break;
115   - case SDImageFormatPDF:
116   - UTType = kUTTypePDF;
117   - break;
118   - case SDImageFormatSVG:
119   - UTType = kUTTypeScalableVectorGraphics;
120   - break;
121 96 default:
122   - // default is kUTTypeImage abstract type
123   - UTType = kUTTypeImage;
  97 + // default is kUTTypePNG
  98 + UTType = kUTTypePNG;
124 99 break;
125 100 }
126 101 return UTType;
... ... @@ -145,10 +120,6 @@
145 120 imageFormat = SDImageFormatHEIC;
146 121 } else if (CFStringCompare(uttype, kSDUTTypeHEIF, 0) == kCFCompareEqualTo) {
147 122 imageFormat = SDImageFormatHEIF;
148   - } else if (CFStringCompare(uttype, kUTTypePDF, 0) == kCFCompareEqualTo) {
149   - imageFormat = SDImageFormatPDF;
150   - } else if (CFStringCompare(uttype, kUTTypeScalableVectorGraphics, 0) == kCFCompareEqualTo) {
151   - imageFormat = SDImageFormatSVG;
152 123 } else {
153 124 imageFormat = SDImageFormatUndefined;
154 125 }
... ...
Example/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.h
... ... @@ -20,10 +20,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro
20 20 */
21 21 @property (nonatomic, readonly, nullable) CGImageRef CGImage;
22 22 /**
23   - The underlying Core Image data. This will actually use `bestRepresentationForRect` with the image size to find the `NSCIImageRep`.
24   - */
25   -@property (nonatomic, readonly, nullable) CIImage *CIImage;
26   -/**
27 23 The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0.
28 24 */
29 25 @property (nonatomic, readonly) CGFloat scale;
... ... @@ -43,16 +39,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro
43 39 - (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation;
44 40  
45 41 /**
46   - Initializes and returns an image object with the specified Core Image object. The representation is `NSCIImageRep`.
47   -
48   - @param ciImage A Core Image image object
49   - @param scale The image scale factor
50   - @param orientation The orientation of the image data
51   - @return The image object
52   - */
53   -- (nonnull instancetype)initWithCIImage:(nonnull CIImage *)ciImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation;
54   -
55   -/**
56 42 Returns an image object with the scale factor. The representation is created from the image data.
57 43 @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor.
58 44  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.m
... ... @@ -20,15 +20,6 @@
20 20 return cgImage;
21 21 }
22 22  
23   -- (nullable CIImage *)CIImage {
24   - NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height);
25   - NSImageRep *imageRep = [self bestRepresentationForRect:imageRect context:nil hints:nil];
26   - if (![imageRep isKindOfClass:NSCIImageRep.class]) {
27   - return nil;
28   - }
29   - return ((NSCIImageRep *)imageRep).CIImage;
30   -}
31   -
32 23 - (CGFloat)scale {
33 24 CGFloat scale = 1;
34 25 NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height);
... ... @@ -74,28 +65,6 @@
74 65 return self;
75 66 }
76 67  
77   -- (instancetype)initWithCIImage:(nonnull CIImage *)ciImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation {
78   - NSCIImageRep *imageRep;
79   - if (orientation != kCGImagePropertyOrientationUp) {
80   - CIImage *rotatedCIImage = [ciImage imageByApplyingOrientation:orientation];
81   - imageRep = [[NSCIImageRep alloc] initWithCIImage:rotatedCIImage];
82   - } else {
83   - imageRep = [[NSCIImageRep alloc] initWithCIImage:ciImage];
84   - }
85   - if (scale < 1) {
86   - scale = 1;
87   - }
88   - CGFloat pixelWidth = imageRep.pixelsWide;
89   - CGFloat pixelHeight = imageRep.pixelsHigh;
90   - NSSize size = NSMakeSize(pixelWidth / scale, pixelHeight / scale);
91   - self = [self initWithSize:size];
92   - if (self) {
93   - imageRep.size = size;
94   - [self addRepresentation:imageRep];
95   - }
96   - return self;
97   -}
98   -
99 68 - (instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale {
100 69 NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithData:data];
101 70 if (!imageRep) {
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.h
... ... @@ -57,12 +57,6 @@
57 57 */
58 58 @property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded;
59 59  
60   -/**
61   - Return the animated image coder if the image is created with `initWithAnimatedCoder:scale:` method.
62   - @note We use this with animated coder which conforms to `SDProgressiveImageCoder` for progressive animation decoding.
63   - */
64   -@property (nonatomic, strong, readonly, nullable) id<SDAnimatedImageCoder> animatedCoder;
65   -
66 60 @end
67 61  
68 62 /**
... ... @@ -72,7 +66,6 @@
72 66  
73 67 // This class override these methods from UIImage(NSImage), and it supports NSSecureCoding.
74 68 // You should use these methods to create a new animated image. Use other methods just call super instead.
75   -// Pay attention, when the animated image frame count <= 1, all the `SDAnimatedImageProvider` protocol methods will return nil or 0 value, you'd better check the frame count before usage and keep fallback.
76 69 + (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support
77 70 #if __has_include(<UIKit/UITraitCollection.h>)
78 71 + (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support
... ... @@ -101,11 +94,11 @@
101 94 The scale factor of the image.
102 95  
103 96 @note For UIKit, this just call super instead.
104   - @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We process the scale like UIKit. This will actually be calculated from image size and pixel size.
  97 + @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We processs the scale like UIKit. This wil actually be calculated from image size and pixel size.
105 98 */
106 99 @property (nonatomic, readonly) CGFloat scale;
107 100  
108   -// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the description in `SDAnimatedImage` protocol.
  101 +// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the decsription in `SDAnimatedImage` protocol.
109 102 // After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need.
110 103 - (void)preloadAllFrames;
111 104 - (void)unloadAllFrames;
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.m
... ... @@ -12,9 +12,6 @@
12 12 #import "SDImageCodersManager.h"
13 13 #import "SDImageFrame.h"
14 14 #import "UIImage+MemoryCacheCost.h"
15   -#import "UIImage+Metadata.h"
16   -#import "UIImage+MultiFormat.h"
17   -#import "SDImageCoderHelper.h"
18 15 #import "SDImageAssetManager.h"
19 16 #import "objc/runtime.h"
20 17  
... ... @@ -35,7 +32,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
35 32  
36 33 @interface SDAnimatedImage ()
37 34  
38   -@property (nonatomic, strong) id<SDAnimatedImageCoder> animatedCoder;
  35 +@property (nonatomic, strong) id<SDAnimatedImageCoder> coder;
39 36 @property (nonatomic, assign, readwrite) SDImageFormat animatedImageFormat;
40 37 @property (atomic, copy) NSArray<SDImageFrame *> *loadedAnimatedImageFrames; // Mark as atomic to keep thread-safe
41 38 @property (nonatomic, assign, getter=isAllFramesLoaded) BOOL allFramesLoaded;
... ... @@ -159,10 +156,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
159 156 self = [super initWithCGImage:image.CGImage scale:MAX(scale, 1) orientation:image.imageOrientation];
160 157 #endif
161 158 if (self) {
162   - // Only keep the animated coder if frame count > 1, save RAM usage for non-animated image format (APNG/WebP)
163   - if (animatedCoder.animatedImageFrameCount > 1) {
164   - _animatedCoder = animatedCoder;
165   - }
  159 + _coder = animatedCoder;
166 160 NSData *data = [animatedCoder animatedImageData];
167 161 SDImageFormat format = [NSData sd_imageFormatForImageData:data];
168 162 _animatedImageFormat = format;
... ... @@ -172,9 +166,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
172 166  
173 167 #pragma mark - Preload
174 168 - (void)preloadAllFrames {
175   - if (!_animatedCoder) {
176   - return;
177   - }
178 169 if (!self.isAllFramesLoaded) {
179 170 NSMutableArray<SDImageFrame *> *frames = [NSMutableArray arrayWithCapacity:self.animatedImageFrameCount];
180 171 for (size_t i = 0; i < self.animatedImageFrameCount; i++) {
... ... @@ -189,9 +180,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
189 180 }
190 181  
191 182 - (void)unloadAllFrames {
192   - if (!_animatedCoder) {
193   - return;
194   - }
195 183 if (self.isAllFramesLoaded) {
196 184 self.loadedAnimatedImageFrames = nil;
197 185 self.allFramesLoaded = NO;
... ... @@ -202,12 +190,11 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
202 190 - (instancetype)initWithCoder:(NSCoder *)aDecoder {
203 191 self = [super initWithCoder:aDecoder];
204 192 if (self) {
205   - _animatedImageFormat = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(animatedImageFormat))];
206 193 NSData *animatedImageData = [aDecoder decodeObjectOfClass:[NSData class] forKey:NSStringFromSelector(@selector(animatedImageData))];
  194 + CGFloat scale = self.scale;
207 195 if (!animatedImageData) {
208 196 return self;
209 197 }
210   - CGFloat scale = self.scale;
211 198 id<SDAnimatedImageCoder> animatedCoder = nil;
212 199 for (id<SDImageCoder>coder in [SDImageCodersManager sharedManager].coders) {
213 200 if ([coder conformsToProtocol:@protocol(SDAnimatedImageCoder)]) {
... ... @@ -220,16 +207,15 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
220 207 if (!animatedCoder) {
221 208 return self;
222 209 }
223   - if (animatedCoder.animatedImageFrameCount > 1) {
224   - _animatedCoder = animatedCoder;
225   - }
  210 + _coder = animatedCoder;
  211 + SDImageFormat format = [NSData sd_imageFormatForImageData:animatedImageData];
  212 + _animatedImageFormat = format;
226 213 }
227 214 return self;
228 215 }
229 216  
230 217 - (void)encodeWithCoder:(NSCoder *)aCoder {
231 218 [super encodeWithCoder:aCoder];
232   - [aCoder encodeInteger:self.animatedImageFormat forKey:NSStringFromSelector(@selector(animatedImageFormat))];
233 219 NSData *animatedImageData = self.animatedImageData;
234 220 if (animatedImageData) {
235 221 [aCoder encodeObject:animatedImageData forKey:NSStringFromSelector(@selector(animatedImageData))];
... ... @@ -240,18 +226,18 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
240 226 return YES;
241 227 }
242 228  
243   -#pragma mark - SDAnimatedImageProvider
  229 +#pragma mark - SDAnimatedImage
244 230  
245 231 - (NSData *)animatedImageData {
246   - return [self.animatedCoder animatedImageData];
  232 + return [self.coder animatedImageData];
247 233 }
248 234  
249 235 - (NSUInteger)animatedImageLoopCount {
250   - return [self.animatedCoder animatedImageLoopCount];
  236 + return [self.coder animatedImageLoopCount];
251 237 }
252 238  
253 239 - (NSUInteger)animatedImageFrameCount {
254   - return [self.animatedCoder animatedImageFrameCount];
  240 + return [self.coder animatedImageFrameCount];
255 241 }
256 242  
257 243 - (UIImage *)animatedImageFrameAtIndex:(NSUInteger)index {
... ... @@ -262,7 +248,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
262 248 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index];
263 249 return frame.image;
264 250 }
265   - return [self.animatedCoder animatedImageFrameAtIndex:index];
  251 + return [self.coder animatedImageFrameAtIndex:index];
266 252 }
267 253  
268 254 - (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index {
... ... @@ -273,7 +259,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
273 259 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index];
274 260 return frame.duration;
275 261 }
276   - return [self.animatedCoder animatedImageDurationAtIndex:index];
  262 + return [self.coder animatedImageDurationAtIndex:index];
277 263 }
278 264  
279 265 @end
... ... @@ -301,90 +287,3 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
301 287 }
302 288  
303 289 @end
304   -
305   -@implementation SDAnimatedImage (Metadata)
306   -
307   -- (BOOL)sd_isAnimated {
308   - return YES;
309   -}
310   -
311   -- (NSUInteger)sd_imageLoopCount {
312   - return self.animatedImageLoopCount;
313   -}
314   -
315   -- (void)setSd_imageLoopCount:(NSUInteger)sd_imageLoopCount {
316   - return;
317   -}
318   -
319   -- (SDImageFormat)sd_imageFormat {
320   - return self.animatedImageFormat;
321   -}
322   -
323   -- (void)setSd_imageFormat:(SDImageFormat)sd_imageFormat {
324   - return;
325   -}
326   -
327   -- (BOOL)sd_isVector {
328   - return NO;
329   -}
330   -
331   -@end
332   -
333   -@implementation SDAnimatedImage (MultiFormat)
334   -
335   -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data {
336   - return [self sd_imageWithData:data scale:1];
337   -}
338   -
339   -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data scale:(CGFloat)scale {
340   - return [self sd_imageWithData:data scale:scale firstFrameOnly:NO];
341   -}
342   -
343   -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data scale:(CGFloat)scale firstFrameOnly:(BOOL)firstFrameOnly {
344   - if (!data) {
345   - return nil;
346   - }
347   - return [[self alloc] initWithData:data scale:scale options:@{SDImageCoderDecodeFirstFrameOnly : @(firstFrameOnly)}];
348   -}
349   -
350   -- (nullable NSData *)sd_imageData {
351   - NSData *imageData = self.animatedImageData;
352   - if (imageData) {
353   - return imageData;
354   - } else {
355   - return [self sd_imageDataAsFormat:self.animatedImageFormat];
356   - }
357   -}
358   -
359   -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat {
360   - return [self sd_imageDataAsFormat:imageFormat compressionQuality:1];
361   -}
362   -
363   -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat compressionQuality:(double)compressionQuality {
364   - return [self sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:NO];
365   -}
366   -
367   -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat compressionQuality:(double)compressionQuality firstFrameOnly:(BOOL)firstFrameOnly {
368   - if (firstFrameOnly) {
369   - // First frame, use super implementation
370   - return [super sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];
371   - }
372   - NSUInteger frameCount = self.animatedImageFrameCount;
373   - if (frameCount <= 1) {
374   - // Static image, use super implementation
375   - return [super sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];
376   - }
377   - // Keep animated image encoding, loop each frame.
378   - NSMutableArray<SDImageFrame *> *frames = [NSMutableArray arrayWithCapacity:frameCount];
379   - for (size_t i = 0; i < frameCount; i++) {
380   - UIImage *image = [self animatedImageFrameAtIndex:i];
381   - NSTimeInterval duration = [self animatedImageDurationAtIndex:i];
382   - SDImageFrame *frame = [SDImageFrame frameWithImage:image duration:duration];
383   - [frames addObject:frame];
384   - }
385   - UIImage *animatedImage = [SDImageCoderHelper animatedImageWithFrames:frames];
386   - NSData *imageData = [animatedImage sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];
387   - return imageData;
388   -}
389   -
390   -@end
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.m
... ... @@ -27,13 +27,13 @@
27 27 }
28 28 }
29 29  
30   -// `NSBitmapImageRep`'s `imageRepWithData:` is not designed initializer
  30 +// `NSBitmapImageRep`'s `imageRepWithData:` is not designed initlizer
31 31 + (instancetype)imageRepWithData:(NSData *)data {
32 32 SDAnimatedImageRep *imageRep = [[SDAnimatedImageRep alloc] initWithData:data];
33 33 return imageRep;
34 34 }
35 35  
36   -// We should override init method for `NSBitmapImageRep` to do initialize about animated image format
  36 +// We should override init method for `NSBitmapImageRep` to do initlize about animated image format
37 37 - (instancetype)initWithData:(NSData *)data {
38 38 self = [super initWithData:data];
39 39 if (self) {
... ... @@ -58,14 +58,14 @@
58 58 [self setProperty:NSImageLoopCount withValue:@(loopCount)];
59 59 } else if (CFStringCompare(type, kUTTypePNG, 0) == kCFCompareEqualTo) {
60 60 // APNG
61   - // Do initialize about frame count, current frame/duration and loop count
  61 + // Do initilize about frame count, current frame/duration and loop count
62 62 [self setProperty:NSImageFrameCount withValue:@(frameCount)];
63 63 [self setProperty:NSImageCurrentFrame withValue:@(0)];
64 64 NSUInteger loopCount = [SDImageAPNGCoder imageLoopCountWithSource:imageSource];
65 65 [self setProperty:NSImageLoopCount withValue:@(loopCount)];
66 66 } else if (CFStringCompare(type, kSDUTTypeHEICS, 0) == kCFCompareEqualTo) {
67 67 // HEIC
68   - // Do initialize about frame count, current frame/duration and loop count
  68 + // Do initilize about frame count, current frame/duration and loop count
69 69 [self setProperty:NSImageFrameCount withValue:@(frameCount)];
70 70 [self setProperty:NSImageCurrentFrame withValue:@(0)];
71 71 NSUInteger loopCount = [SDImageHEICCoder imageLoopCountWithSource:imageSource];
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.h
... ... @@ -21,7 +21,7 @@
21 21 @interface SDAnimatedImageView : UIImageView
22 22  
23 23 /**
24   - Current display frame image. This value is KVO Compliance.
  24 + Current display frame image.
25 25 */
26 26 @property (nonatomic, strong, readonly, nullable) UIImage *currentFrame;
27 27 /**
... ... @@ -44,15 +44,6 @@
44 44 */
45 45 @property (nonatomic, assign) NSInteger animationRepeatCount;
46 46 /**
47   - The animation playback rate. Default is 1.0.
48   - `1.0` means the normal speed.
49   - `0.0` means stopping the animation.
50   - `0.0-1.0` means the slow speed.
51   - `> 1.0` means the fast speed.
52   - `< 0.0` is not supported currently and stop animation. (may support reverse playback in the future)
53   - */
54   -@property (nonatomic, assign) double playbackRate;
55   -/**
56 47 Provide a max buffer size by bytes. This is used to adjust frame buffer count and can be useful when the decoding cost is expensive (such as Animated WebP software decoding). Default is 0.
57 48 `0` means automatically adjust by calculating current memory usage.
58 49 `1` means without any buffer cache, each of frames will be decoded and then be freed after rendering. (Lowest Memory and Highest CPU)
... ... @@ -81,19 +72,13 @@
81 72 */
82 73 @property (nonatomic, assign) BOOL resetFrameIndexWhenStopped;
83 74  
84   -/**
85   - If the image has more than one frame, set this value to `YES` will automatically
86   - play/stop the animation when the view become visible/invisible.
87   - Default is YES.
88   - */
89   -@property (nonatomic, assign) BOOL autoPlayAnimatedImage;
90   -
  75 +#if SD_UIKIT
91 76 /**
92 77 You can specify a runloop mode to let it rendering.
93   - Default is NSRunLoopCommonModes on multi-core device, NSDefaultRunLoopMode on single-core device
94   - @note This is useful for some cases, for example, always specify NSDefaultRunLoopMode, if you want to pause the animation when user scroll (for Mac user, drag the mouse or touchpad)
  78 + Default is NSRunLoopCommonModes on multi-core iOS device, NSDefaultRunLoopMode on single-core iOS device
95 79 */
96 80 @property (nonatomic, copy, nonnull) NSRunLoopMode runLoopMode;
  81 +#endif
97 82 @end
98 83  
99 84 #endif
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.m
... ... @@ -10,28 +10,61 @@
10 10  
11 11 #if SD_UIKIT || SD_MAC
12 12  
13   -#import "SDAnimatedImagePlayer.h"
14 13 #import "UIImage+Metadata.h"
15 14 #import "NSImage+Compatibility.h"
  15 +#import "SDWeakProxy.h"
16 16 #import "SDInternalMacros.h"
17   -#import "objc/runtime.h"
  17 +#import <mach/mach.h>
  18 +#import <objc/runtime.h>
18 19  
19   -@interface UIImageView () <CALayerDelegate>
20   -@end
  20 +#if SD_MAC
  21 +#import <CoreVideo/CoreVideo.h>
  22 +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext);
  23 +#endif
21 24  
22   -@interface SDAnimatedImageView () {
23   - BOOL _initFinished; // Extra flag to mark the `commonInit` is called
  25 +static NSUInteger SDDeviceTotalMemory() {
  26 + return (NSUInteger)[[NSProcessInfo processInfo] physicalMemory];
  27 +}
  28 +
  29 +static NSUInteger SDDeviceFreeMemory() {
  30 + mach_port_t host_port = mach_host_self();
  31 + mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
  32 + vm_size_t page_size;
  33 + vm_statistics_data_t vm_stat;
  34 + kern_return_t kern;
  35 +
  36 + kern = host_page_size(host_port, &page_size);
  37 + if (kern != KERN_SUCCESS) return 0;
  38 + kern = host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size);
  39 + if (kern != KERN_SUCCESS) return 0;
  40 + return vm_stat.free_count * page_size;
  41 +}
  42 +
  43 +@interface SDAnimatedImageView () <CALayerDelegate> {
24 44 NSRunLoopMode _runLoopMode;
25   - NSUInteger _maxBufferSize;
26   - double _playbackRate;
  45 + BOOL _initFinished; // Extra flag to mark the `commonInit` is called
27 46 }
28 47  
29 48 @property (nonatomic, strong, readwrite) UIImage *currentFrame;
30 49 @property (nonatomic, assign, readwrite) NSUInteger currentFrameIndex;
31 50 @property (nonatomic, assign, readwrite) NSUInteger currentLoopCount;
  51 +@property (nonatomic, assign) NSUInteger totalFrameCount;
  52 +@property (nonatomic, assign) NSUInteger totalLoopCount;
  53 +@property (nonatomic, strong) UIImage<SDAnimatedImage> *animatedImage;
  54 +@property (nonatomic, strong) NSMutableDictionary<NSNumber *, UIImage *> *frameBuffer;
  55 +@property (nonatomic, assign) NSTimeInterval currentTime;
  56 +@property (nonatomic, assign) BOOL bufferMiss;
32 57 @property (nonatomic, assign) BOOL shouldAnimate;
33 58 @property (nonatomic, assign) BOOL isProgressive;
34   -@property (nonatomic,strong) SDAnimatedImagePlayer *player; // The animation player.
  59 +@property (nonatomic, assign) NSUInteger maxBufferCount;
  60 +@property (nonatomic, strong) NSOperationQueue *fetchQueue;
  61 +@property (nonatomic, strong) dispatch_semaphore_t lock;
  62 +@property (nonatomic, assign) CGFloat animatedImageScale;
  63 +#if SD_MAC
  64 +@property (nonatomic, assign) CVDisplayLinkRef displayLink;
  65 +#else
  66 +@property (nonatomic, strong) CADisplayLink *displayLink;
  67 +#endif
35 68 @property (nonatomic) CALayer *imageViewLayer; // The actual rendering layer.
36 69  
37 70 @end
... ... @@ -96,17 +129,63 @@
96 129 {
97 130 // Pay attention that UIKit's `initWithImage:` will trigger a `setImage:` during initialization before this `commonInit`.
98 131 // So the properties which rely on this order, should using lazy-evaluation or do extra check in `setImage:`.
99   - self.autoPlayAnimatedImage = YES;
100 132 self.shouldCustomLoopCount = NO;
101 133 self.shouldIncrementalLoad = YES;
102   - self.playbackRate = 1.0;
103 134 #if SD_MAC
104 135 self.wantsLayer = YES;
105 136 #endif
  137 +#if SD_UIKIT
  138 + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMemoryWarning:) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
  139 +#endif
106 140 // Mark commonInit finished
107 141 _initFinished = YES;
108 142 }
109 143  
  144 +- (void)resetAnimatedImage
  145 +{
  146 + self.animatedImage = nil;
  147 + self.totalFrameCount = 0;
  148 + self.totalLoopCount = 0;
  149 + // reset current state
  150 + [self resetCurrentFrameIndex];
  151 + self.shouldAnimate = NO;
  152 + self.isProgressive = NO;
  153 + self.maxBufferCount = 0;
  154 + self.animatedImageScale = 1;
  155 + [_fetchQueue cancelAllOperations];
  156 + // clear buffer cache
  157 + [self clearFrameBuffer];
  158 +}
  159 +
  160 +- (void)resetProgressiveImage
  161 +{
  162 + self.animatedImage = nil;
  163 + self.totalFrameCount = 0;
  164 + self.totalLoopCount = 0;
  165 + // preserve current state
  166 + self.shouldAnimate = NO;
  167 + self.isProgressive = YES;
  168 + self.maxBufferCount = 0;
  169 + self.animatedImageScale = 1;
  170 + // preserve buffer cache
  171 +}
  172 +
  173 +- (void)resetCurrentFrameIndex
  174 +{
  175 + self.currentFrame = nil;
  176 + self.currentFrameIndex = 0;
  177 + self.currentLoopCount = 0;
  178 + self.currentTime = 0;
  179 + self.bufferMiss = NO;
  180 +}
  181 +
  182 +- (void)clearFrameBuffer
  183 +{
  184 + SD_LOCK(self.lock);
  185 + [_frameBuffer removeAllObjects];
  186 + SD_UNLOCK(self.lock);
  187 +}
  188 +
110 189 #pragma mark - Accessors
111 190 #pragma mark Public
112 191  
... ... @@ -119,87 +198,71 @@
119 198 // Check Progressive rendering
120 199 [self updateIsProgressiveWithImage:image];
121 200  
122   - if (!self.isProgressive) {
  201 + if (self.isProgressive) {
  202 + // Reset all value, but keep current state
  203 + [self resetProgressiveImage];
  204 + } else {
123 205 // Stop animating
124   - self.player = nil;
125   - self.currentFrame = nil;
126   - self.currentFrameIndex = 0;
127   - self.currentLoopCount = 0;
  206 + [self stopAnimating];
  207 + // Reset all value
  208 + [self resetAnimatedImage];
128 209 }
129 210  
130 211 // We need call super method to keep function. This will impliedly call `setNeedsDisplay`. But we have no way to avoid this when using animated image. So we call `setNeedsDisplay` again at the end.
131 212 super.image = image;
132 213 if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)]) {
133   - if (!self.player) {
134   - id<SDAnimatedImageProvider> provider;
135   - // Check progressive loading
136   - if (self.isProgressive) {
137   - provider = [self progressiveAnimatedCoderForImage:image];
138   - } else {
139   - provider = (id<SDAnimatedImage>)image;
140   - }
141   - // Create animated player
142   - self.player = [SDAnimatedImagePlayer playerWithProvider:provider];
143   - } else {
144   - // Update Frame Count
145   - self.player.totalFrameCount = [(id<SDAnimatedImage>)image animatedImageFrameCount];
  214 + NSUInteger animatedImageFrameCount = ((UIImage<SDAnimatedImage> *)image).animatedImageFrameCount;
  215 + // Check the frame count
  216 + if (animatedImageFrameCount <= 1) {
  217 + return;
146 218 }
147   -
148   - if (!self.player) {
149   - // animated player nil means the image format is not supported, or frame count <= 1
  219 + // If progressive rendering is disabled but animated image is incremental. Only show poster image
  220 + if (!self.isProgressive && image.sd_isIncremental) {
150 221 return;
151 222 }
152   -
153   - // Custom Loop Count
154   - if (self.shouldCustomLoopCount) {
155   - self.player.totalLoopCount = self.animationRepeatCount;
  223 + self.animatedImage = (UIImage<SDAnimatedImage> *)image;
  224 + self.totalFrameCount = animatedImageFrameCount;
  225 + // Get the current frame and loop count.
  226 + self.totalLoopCount = self.animatedImage.animatedImageLoopCount;
  227 + // Get the scale
  228 + self.animatedImageScale = image.scale;
  229 + if (!self.isProgressive) {
  230 + self.currentFrame = image;
  231 + SD_LOCK(self.lock);
  232 + self.frameBuffer[@(self.currentFrameIndex)] = self.currentFrame;
  233 + SD_UNLOCK(self.lock);
156 234 }
157 235  
158   - // RunLoop Mode
159   - self.player.runLoopMode = self.runLoopMode;
160   -
161   - // Max Buffer Size
162   - self.player.maxBufferSize = self.maxBufferSize;
163   -
164   - // Play Rate
165   - self.player.playbackRate = self.playbackRate;
166   -
167   - // Setup handler
168   - @weakify(self);
169   - self.player.animationFrameHandler = ^(NSUInteger index, UIImage * frame) {
170   - @strongify(self);
171   - self.currentFrameIndex = index;
172   - self.currentFrame = frame;
173   - [self.imageViewLayer setNeedsDisplay];
174   - };
175   - self.player.animationLoopHandler = ^(NSUInteger loopCount) {
176   - @strongify(self);
177   - // Progressive image reach the current last frame index. Keep the state and pause animating. Wait for later restart
178   - if (self.isProgressive) {
179   - NSUInteger lastFrameIndex = self.player.totalFrameCount - 1;
180   - [self.player seekToFrameAtIndex:lastFrameIndex loopCount:0];
181   - [self.player pausePlaying];
182   - } else {
183   - self.currentLoopCount = loopCount;
184   - }
185   - };
186   -
187 236 // Ensure disabled highlighting; it's not supported (see `-setHighlighted:`).
188 237 super.highlighted = NO;
189 238  
190   - [self stopAnimating];
191   - [self checkPlay];
  239 + // Calculate max buffer size
  240 + [self calculateMaxBufferCount];
  241 + // Update should animate
  242 + [self updateShouldAnimate];
  243 + if (self.shouldAnimate) {
  244 + [self startAnimating];
  245 + }
192 246  
193 247 [self.imageViewLayer setNeedsDisplay];
194 248 }
195 249 }
196 250  
197   -#pragma mark - Configuration
198   -
  251 +#if SD_UIKIT
199 252 - (void)setRunLoopMode:(NSRunLoopMode)runLoopMode
200 253 {
  254 + if ([_runLoopMode isEqual:runLoopMode]) {
  255 + return;
  256 + }
  257 + if (_displayLink) {
  258 + if (_runLoopMode) {
  259 + [_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:_runLoopMode];
  260 + }
  261 + if (runLoopMode.length > 0) {
  262 + [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:runLoopMode];
  263 + }
  264 + }
201 265 _runLoopMode = [runLoopMode copy];
202   - self.player.runLoopMode = runLoopMode;
203 266 }
204 267  
205 268 - (NSRunLoopMode)runLoopMode
... ... @@ -209,42 +272,99 @@
209 272 }
210 273 return _runLoopMode;
211 274 }
  275 +#endif
212 276  
213   -+ (NSString *)defaultRunLoopMode {
214   - // Key off `activeProcessorCount` (as opposed to `processorCount`) since the system could shut down cores in certain situations.
215   - return [NSProcessInfo processInfo].activeProcessorCount > 1 ? NSRunLoopCommonModes : NSDefaultRunLoopMode;
  277 +- (BOOL)shouldIncrementalLoad {
  278 + if (!_initFinished) {
  279 + return YES; // Defaults to YES
  280 + }
  281 + return _initFinished;
216 282 }
217 283  
218   -- (void)setMaxBufferSize:(NSUInteger)maxBufferSize
  284 +#pragma mark - Private
  285 +- (NSOperationQueue *)fetchQueue
219 286 {
220   - _maxBufferSize = maxBufferSize;
221   - self.player.maxBufferSize = maxBufferSize;
  287 + if (!_fetchQueue) {
  288 + _fetchQueue = [[NSOperationQueue alloc] init];
  289 + _fetchQueue.maxConcurrentOperationCount = 1;
  290 + }
  291 + return _fetchQueue;
222 292 }
223 293  
224   -- (NSUInteger)maxBufferSize {
225   - return _maxBufferSize; // Defaults to 0
  294 +- (NSMutableDictionary<NSNumber *,UIImage *> *)frameBuffer
  295 +{
  296 + if (!_frameBuffer) {
  297 + _frameBuffer = [NSMutableDictionary dictionary];
  298 + }
  299 + return _frameBuffer;
226 300 }
227 301  
228   -- (void)setPlaybackRate:(double)playbackRate
229   -{
230   - _playbackRate = playbackRate;
231   - self.player.playbackRate = playbackRate;
  302 +- (dispatch_semaphore_t)lock {
  303 + if (!_lock) {
  304 + _lock = dispatch_semaphore_create(1);
  305 + }
  306 + return _lock;
232 307 }
233 308  
234   -- (double)playbackRate
  309 +#if SD_MAC
  310 +- (CVDisplayLinkRef)displayLink
235 311 {
236   - if (!_initFinished) {
237   - return 1.0; // Defaults to 1.0
  312 + if (!_displayLink) {
  313 + CVReturn error = CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink);
  314 + if (error) {
  315 + return NULL;
  316 + }
  317 + CVDisplayLinkSetOutputCallback(_displayLink, DisplayLinkCallback, (__bridge void *)self);
238 318 }
239   - return _playbackRate;
  319 + return _displayLink;
240 320 }
  321 +#else
  322 +- (CADisplayLink *)displayLink
  323 +{
  324 + if (!_displayLink) {
  325 + // It is important to note the use of a weak proxy here to avoid a retain cycle. `-displayLinkWithTarget:selector:`
  326 + // will retain its target until it is invalidated. We use a weak proxy so that the image view will get deallocated
  327 + // independent of the display link's lifetime. Upon image view deallocation, we invalidate the display
  328 + // link which will lead to the deallocation of both the display link and the weak proxy.
  329 + SDWeakProxy *weakProxy = [SDWeakProxy proxyWithTarget:self];
  330 + _displayLink = [CADisplayLink displayLinkWithTarget:weakProxy selector:@selector(displayDidRefresh:)];
  331 + [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:self.runLoopMode];
  332 + }
  333 + return _displayLink;
  334 +}
  335 +#endif
  336 +
  337 +#pragma mark - Life Cycle
241 338  
242   -- (BOOL)shouldIncrementalLoad
  339 +- (void)dealloc
243 340 {
244   - if (!_initFinished) {
245   - return YES; // Defaults to YES
  341 + // Removes the display link from all run loop modes.
  342 +#if SD_MAC
  343 + if (_displayLink) {
  344 + CVDisplayLinkRelease(_displayLink);
  345 + _displayLink = NULL;
246 346 }
247   - return _initFinished;
  347 +#else
  348 + [_displayLink invalidate];
  349 + _displayLink = nil;
  350 + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
  351 +#endif
  352 +}
  353 +
  354 +- (void)didReceiveMemoryWarning:(NSNotification *)notification {
  355 + [_fetchQueue cancelAllOperations];
  356 + [_fetchQueue addOperationWithBlock:^{
  357 + NSNumber *currentFrameIndex = @(self.currentFrameIndex);
  358 + SD_LOCK(self.lock);
  359 + NSArray *keys = self.frameBuffer.allKeys;
  360 + // only keep the next frame for later rendering
  361 + for (NSNumber * key in keys) {
  362 + if (![key isEqualToNumber:currentFrameIndex]) {
  363 + [self.frameBuffer removeObjectForKey:key];
  364 + }
  365 + }
  366 + SD_UNLOCK(self.lock);
  367 + }];
248 368 }
249 369  
250 370 #pragma mark - UIView Method Overrides
... ... @@ -262,7 +382,12 @@
262 382 [super didMoveToSuperview];
263 383 #endif
264 384  
265   - [self checkPlay];
  385 + [self updateShouldAnimate];
  386 + if (self.shouldAnimate) {
  387 + [self startAnimating];
  388 + } else {
  389 + [self stopAnimating];
  390 + }
266 391 }
267 392  
268 393 #if SD_MAC
... ... @@ -277,7 +402,12 @@
277 402 [super didMoveToWindow];
278 403 #endif
279 404  
280   - [self checkPlay];
  405 + [self updateShouldAnimate];
  406 + if (self.shouldAnimate) {
  407 + [self startAnimating];
  408 + } else {
  409 + [self stopAnimating];
  410 + }
281 411 }
282 412  
283 413 #if SD_MAC
... ... @@ -292,91 +422,88 @@
292 422 [super setAlpha:alpha];
293 423 #endif
294 424  
295   - [self checkPlay];
  425 + [self updateShouldAnimate];
  426 + if (self.shouldAnimate) {
  427 + [self startAnimating];
  428 + } else {
  429 + [self stopAnimating];
  430 + }
296 431 }
297 432  
298 433 - (void)setHidden:(BOOL)hidden
299 434 {
300 435 [super setHidden:hidden];
301 436  
302   - [self checkPlay];
  437 + [self updateShouldAnimate];
  438 + if (self.shouldAnimate) {
  439 + [self startAnimating];
  440 + } else {
  441 + [self stopAnimating];
  442 + }
303 443 }
304 444  
305 445 #pragma mark - UIImageView Method Overrides
306 446 #pragma mark Image Data
307 447  
308   -- (void)setAnimationRepeatCount:(NSInteger)animationRepeatCount
  448 +- (void)startAnimating
309 449 {
310   -#if SD_UIKIT
311   - [super setAnimationRepeatCount:animationRepeatCount];
  450 + if (self.animatedImage) {
  451 +#if SD_MAC
  452 + CVDisplayLinkStart(self.displayLink);
312 453 #else
313   - _animationRepeatCount = animationRepeatCount;
  454 + self.displayLink.paused = NO;
314 455 #endif
315   -
316   - if (self.shouldCustomLoopCount) {
317   - self.player.totalLoopCount = animationRepeatCount;
318   - }
319   -}
320   -
321   -- (void)startAnimating
322   -{
323   - if (self.player) {
324   - [self updateShouldAnimate];
325   - if (self.shouldAnimate) {
326   - [self.player startPlaying];
327   - }
328 456 } else {
329 457 #if SD_UIKIT
330 458 [super startAnimating];
331   -#else
332   - [super setAnimates:YES];
333 459 #endif
334 460 }
335 461 }
336 462  
337 463 - (void)stopAnimating
338 464 {
339   - if (self.player) {
  465 + if (self.animatedImage) {
  466 + [_fetchQueue cancelAllOperations];
  467 + // Using `_displayLink` here because when UIImageView dealloc, it may trigger `[self stopAnimating]`, we already release the display link in SDAnimatedImageView's dealloc method.
  468 +#if SD_MAC
  469 + CVDisplayLinkStop(_displayLink);
  470 +#else
  471 + _displayLink.paused = YES;
  472 +#endif
340 473 if (self.resetFrameIndexWhenStopped) {
341   - [self.player stopPlaying];
342   - } else {
343   - [self.player pausePlaying];
  474 + [self resetCurrentFrameIndex];
344 475 }
345 476 if (self.clearBufferWhenStopped) {
346   - [self.player clearFrameBuffer];
  477 + [self clearFrameBuffer];
347 478 }
348 479 } else {
349 480 #if SD_UIKIT
350 481 [super stopAnimating];
351   -#else
352   - [super setAnimates:NO];
353 482 #endif
354 483 }
355 484 }
356 485  
357   -#if SD_UIKIT
358 486 - (BOOL)isAnimating
359 487 {
360   - if (self.player) {
361   - return self.player.isPlaying;
362   - } else {
363   - return [super isAnimating];
364   - }
365   -}
366   -#endif
367   -
  488 + BOOL isAnimating = NO;
  489 + if (self.animatedImage) {
368 490 #if SD_MAC
369   -- (BOOL)animates
370   -{
371   - if (self.player) {
372   - return self.player.isPlaying;
  491 + isAnimating = CVDisplayLinkIsRunning(self.displayLink);
  492 +#else
  493 + isAnimating = !self.displayLink.isPaused;
  494 +#endif
373 495 } else {
374   - return [super animates];
  496 +#if SD_UIKIT
  497 + isAnimating = [super isAnimating];
  498 +#endif
375 499 }
  500 + return isAnimating;
376 501 }
377 502  
  503 +#if SD_MAC
378 504 - (void)setAnimates:(BOOL)animates
379 505 {
  506 + [super setAnimates:animates];
380 507 if (animates) {
381 508 [self startAnimating];
382 509 } else {
... ... @@ -390,7 +517,7 @@
390 517 - (void)setHighlighted:(BOOL)highlighted
391 518 {
392 519 // Highlighted image is unsupported for animated images, but implementing it breaks the image view when embedded in a UICollectionViewCell.
393   - if (!self.player) {
  520 + if (!self.animatedImage) {
394 521 [super setHighlighted:highlighted];
395 522 }
396 523 }
... ... @@ -399,19 +526,6 @@
399 526 #pragma mark - Private Methods
400 527 #pragma mark Animation
401 528  
402   -/// Check if it should be played
403   -- (void)checkPlay
404   -{
405   - if (self.autoPlayAnimatedImage) {
406   - [self updateShouldAnimate];
407   - if (self.shouldAnimate) {
408   - [self startAnimating];
409   - } else {
410   - [self stopAnimating];
411   - }
412   - }
413   -}
414   -
415 529 // Don't repeatedly check our window & superview in `-displayDidRefresh:` for performance reasons.
416 530 // Just update our cached value whenever the animated image or visibility (window, superview, hidden, alpha) is changed.
417 531 - (void)updateShouldAnimate
... ... @@ -421,7 +535,7 @@
421 535 #else
422 536 BOOL isVisible = self.window && self.superview && ![self isHidden] && self.alpha > 0.0;
423 537 #endif
424   - self.shouldAnimate = self.player && isVisible;
  538 + self.shouldAnimate = self.animatedImage && self.totalFrameCount > 1 && isVisible;
425 539 }
426 540  
427 541 // Update progressive status only after `setImage:` call.
... ... @@ -434,32 +548,170 @@
434 548 }
435 549 // We must use `image.class conformsToProtocol:` instead of `image conformsToProtocol:` here
436 550 // Because UIKit on macOS, using internal hard-coded override method, which returns NO
437   - id<SDAnimatedImageCoder> currentAnimatedCoder = [self progressiveAnimatedCoderForImage:image];
438   - if (currentAnimatedCoder) {
  551 + if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)] && image.sd_isIncremental) {
439 552 UIImage *previousImage = self.image;
440   - if (!previousImage) {
441   - // If current animated coder supports progressive, and no previous image to check, start progressive loading
442   - self.isProgressive = YES;
443   - } else {
444   - id<SDAnimatedImageCoder> previousAnimatedCoder = [self progressiveAnimatedCoderForImage:previousImage];
445   - if (previousAnimatedCoder == currentAnimatedCoder) {
446   - // If current animated coder is the same as previous, start progressive loading
  553 + if ([previousImage.class conformsToProtocol:@protocol(SDAnimatedImage)] && previousImage.sd_isIncremental) {
  554 + NSData *previousData = [((UIImage<SDAnimatedImage> *)previousImage) animatedImageData];
  555 + NSData *currentData = [((UIImage<SDAnimatedImage> *)image) animatedImageData];
  556 + // Check whether to use progressive rendering or not
  557 + if (!previousData || !currentData) {
  558 + // Early return
  559 + return;
  560 + }
  561 +
  562 + // Warning: normally the `previousData` is same instance as `currentData` because our `SDAnimatedImage` class share the same `coder` instance internally. But there may be a race condition, that later retrived `currentData` is already been updated and it's not the same instance as `previousData`.
  563 + // And for protocol extensible design, we should not assume `SDAnimatedImage` protocol implementations always share same instance. So both of two reasons, we need that `rangeOfData` check.
  564 + if ([currentData isEqualToData:previousData]) {
  565 + // If current data is the same data (or instance) as previous data
447 566 self.isProgressive = YES;
  567 + } else if (currentData.length > previousData.length) {
  568 + // If current data is appended by previous data, use `NSDataSearchAnchored`, search is limited to start of currentData
  569 + NSRange range = [currentData rangeOfData:previousData options:NSDataSearchAnchored range:NSMakeRange(0, previousData.length)];
  570 + if (range.location != NSNotFound) {
  571 + // Contains hole previous data and they start with the same beginning
  572 + self.isProgressive = YES;
  573 + }
448 574 }
  575 + } else {
  576 + // Previous image is not progressive, so start progressive rendering
  577 + self.isProgressive = YES;
449 578 }
450 579 }
451 580 }
452 581  
453   -// Check if image can represent a `Progressive Animated Image` during loading
454   -- (id<SDAnimatedImageCoder, SDProgressiveImageCoder>)progressiveAnimatedCoderForImage:(UIImage *)image
  582 +#if SD_MAC
  583 +- (void)displayDidRefresh:(CVDisplayLinkRef)displayLink duration:(NSTimeInterval)duration
  584 +#else
  585 +- (void)displayDidRefresh:(CADisplayLink *)displayLink
  586 +#endif
455 587 {
456   - if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)] && image.sd_isIncremental && [image respondsToSelector:@selector(animatedCoder)]) {
457   - id<SDAnimatedImageCoder> animatedCoder = [(id<SDAnimatedImage>)image animatedCoder];
458   - if ([animatedCoder conformsToProtocol:@protocol(SDProgressiveImageCoder)]) {
459   - return (id<SDAnimatedImageCoder, SDProgressiveImageCoder>)animatedCoder;
  588 + // If for some reason a wild call makes it through when we shouldn't be animating, bail.
  589 + // Early return!
  590 + if (!self.shouldAnimate) {
  591 + return;
  592 + }
  593 + // Calculate refresh duration
  594 +#if SD_UIKIT
  595 +#pragma clang diagnostic push
  596 +#pragma clang diagnostic ignored "-Wdeprecated-declarations"
  597 + NSTimeInterval duration = displayLink.duration * displayLink.frameInterval;
  598 +#pragma clang diagnostic pop
  599 +#endif
  600 + NSUInteger totalFrameCount = self.totalFrameCount;
  601 + NSUInteger currentFrameIndex = self.currentFrameIndex;
  602 + NSUInteger nextFrameIndex = (currentFrameIndex + 1) % totalFrameCount;
  603 +
  604 + // Check if we have the frame buffer firstly to improve performance
  605 + if (!self.bufferMiss) {
  606 + // Then check if timestamp is reached
  607 + self.currentTime += duration;
  608 + NSTimeInterval currentDuration = [self.animatedImage animatedImageDurationAtIndex:currentFrameIndex];
  609 + if (self.currentTime < currentDuration) {
  610 + // Current frame timestamp not reached, return
  611 + return;
  612 + }
  613 + self.currentTime -= currentDuration;
  614 + NSTimeInterval nextDuration = [self.animatedImage animatedImageDurationAtIndex:nextFrameIndex];
  615 + if (self.currentTime > nextDuration) {
  616 + // Do not skip frame
  617 + self.currentTime = nextDuration;
  618 + }
  619 + }
  620 +
  621 + // Update the current frame
  622 + UIImage *currentFrame;
  623 + UIImage *fetchFrame;
  624 + SD_LOCK(self.lock);
  625 + currentFrame = self.frameBuffer[@(currentFrameIndex)];
  626 + fetchFrame = currentFrame ? self.frameBuffer[@(nextFrameIndex)] : nil;
  627 + SD_UNLOCK(self.lock);
  628 + BOOL bufferFull = NO;
  629 + if (currentFrame) {
  630 + SD_LOCK(self.lock);
  631 + // Remove the frame buffer if need
  632 + if (self.frameBuffer.count > self.maxBufferCount) {
  633 + self.frameBuffer[@(currentFrameIndex)] = nil;
  634 + }
  635 + // Check whether we can stop fetch
  636 + if (self.frameBuffer.count == totalFrameCount) {
  637 + bufferFull = YES;
  638 + }
  639 + SD_UNLOCK(self.lock);
  640 + self.currentFrame = currentFrame;
  641 + self.currentFrameIndex = nextFrameIndex;
  642 + self.bufferMiss = NO;
  643 + [self.imageViewLayer setNeedsDisplay];
  644 + } else {
  645 + self.bufferMiss = YES;
  646 + }
  647 +
  648 + // Update the loop count when last frame rendered
  649 + if (nextFrameIndex == 0 && !self.bufferMiss) {
  650 + // Progressive image reach the current last frame index. Keep the state and stop animating. Wait for later restart
  651 + if (self.isProgressive) {
  652 + // Recovery the current frame index and removed frame buffer (See above)
  653 + self.currentFrameIndex = currentFrameIndex;
  654 + SD_LOCK(self.lock);
  655 + self.frameBuffer[@(currentFrameIndex)] = self.currentFrame;
  656 + SD_UNLOCK(self.lock);
  657 + [self stopAnimating];
  658 + return;
  659 + }
  660 + // Update the loop count
  661 + self.currentLoopCount++;
  662 + // if reached the max loop count, stop animating, 0 means loop indefinitely
  663 + NSUInteger maxLoopCount = self.shouldCustomLoopCount ? self.animationRepeatCount : self.totalLoopCount;
  664 + if (maxLoopCount != 0 && (self.currentLoopCount >= maxLoopCount)) {
  665 + [self stopAnimating];
  666 + return;
460 667 }
461 668 }
462   - return nil;
  669 +
  670 + // Check if we should prefetch next frame or current frame
  671 + NSUInteger fetchFrameIndex;
  672 + if (self.bufferMiss) {
  673 + // When buffer miss, means the decode speed is slower than render speed, we fetch current miss frame
  674 + fetchFrameIndex = currentFrameIndex;
  675 + } else {
  676 + // Or, most cases, the decode speed is faster than render speed, we fetch next frame
  677 + fetchFrameIndex = nextFrameIndex;
  678 + }
  679 +
  680 + if (!fetchFrame && !bufferFull && self.fetchQueue.operationCount == 0) {
  681 + // Prefetch next frame in background queue
  682 + UIImage<SDAnimatedImage> *animatedImage = self.animatedImage;
  683 + @weakify(self);
  684 + NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
  685 + @strongify(self);
  686 + if (!self) {
  687 + return;
  688 + }
  689 + UIImage *frame = [animatedImage animatedImageFrameAtIndex:fetchFrameIndex];
  690 +
  691 + BOOL isAnimating = NO;
  692 +#if SD_MAC
  693 + isAnimating = CVDisplayLinkIsRunning(self.displayLink);
  694 +#else
  695 + isAnimating = !self.displayLink.isPaused;
  696 +#endif
  697 + if (isAnimating) {
  698 + SD_LOCK(self.lock);
  699 + self.frameBuffer[@(fetchFrameIndex)] = frame;
  700 + SD_UNLOCK(self.lock);
  701 + }
  702 + // Ensure when self dealloc, it dealloced on the main queue (UIKit/AppKit rule)
  703 + dispatch_async(dispatch_get_main_queue(), ^{
  704 + [self class];
  705 + });
  706 + }];
  707 + [self.fetchQueue addOperation:operation];
  708 + }
  709 +}
  710 +
  711 ++ (NSString *)defaultRunLoopMode
  712 +{
  713 + // Key off `activeProcessorCount` (as opposed to `processorCount`) since the system could shut down cores in certain situations.
  714 + return [NSProcessInfo processInfo].activeProcessorCount > 1 ? NSRunLoopCommonModes : NSDefaultRunLoopMode;
463 715 }
464 716  
465 717  
... ... @@ -468,15 +720,9 @@
468 720  
469 721 - (void)displayLayer:(CALayer *)layer
470 722 {
471   - UIImage *currentFrame = self.currentFrame;
472   - if (currentFrame) {
473   - layer.contentsScale = currentFrame.scale;
474   - layer.contents = (__bridge id)currentFrame.CGImage;
475   - } else {
476   - // If we have no animation frames, call super implementation. iOS 14+ UIImageView use this delegate method for rendering.
477   - if ([UIImageView instancesRespondToSelector:@selector(displayLayer:)]) {
478   - [super displayLayer:layer];
479   - }
  723 + if (self.currentFrame) {
  724 + layer.contentsScale = self.animatedImageScale;
  725 + layer.contents = (__bridge id)self.currentFrame.CGImage;
480 726 }
481 727 }
482 728  
... ... @@ -484,10 +730,10 @@
484 730 // NSImageView use a subview. We need this subview's layer for actual rendering.
485 731 // Why using this design may because of properties like `imageAlignment` and `imageScaling`, which it's not available for UIImageView.contentMode (it's impossible to align left and keep aspect ratio at the same time)
486 732 - (NSView *)imageView {
487   - NSImageView *imageView = objc_getAssociatedObject(self, SD_SEL_SPI(imageView));
  733 + NSImageView *imageView = imageView = objc_getAssociatedObject(self, NSSelectorFromString(@"_imageView"));
488 734 if (!imageView) {
489 735 // macOS 10.14
490   - imageView = objc_getAssociatedObject(self, SD_SEL_SPI(imageSubview));
  736 + imageView = objc_getAssociatedObject(self, NSSelectorFromString(@"_imageSubview"));
491 737 }
492 738 return imageView;
493 739 }
... ... @@ -514,6 +760,45 @@
514 760  
515 761 #endif
516 762  
  763 +
  764 +#pragma mark - Util
  765 +- (void)calculateMaxBufferCount {
  766 + NSUInteger bytes = CGImageGetBytesPerRow(self.currentFrame.CGImage) * CGImageGetHeight(self.currentFrame.CGImage);
  767 + if (bytes == 0) bytes = 1024;
  768 +
  769 + NSUInteger max = 0;
  770 + if (self.maxBufferSize > 0) {
  771 + max = self.maxBufferSize;
  772 + } else {
  773 + // Calculate based on current memory, these factors are by experience
  774 + NSUInteger total = SDDeviceTotalMemory();
  775 + NSUInteger free = SDDeviceFreeMemory();
  776 + max = MIN(total * 0.2, free * 0.6);
  777 + }
  778 +
  779 + NSUInteger maxBufferCount = (double)max / (double)bytes;
  780 + if (!maxBufferCount) {
  781 + // At least 1 frame
  782 + maxBufferCount = 1;
  783 + }
  784 +
  785 + self.maxBufferCount = maxBufferCount;
  786 +}
  787 +
517 788 @end
518 789  
  790 +#if SD_MAC
  791 +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) {
  792 + // Calculate refresh duration
  793 + NSTimeInterval duration = (double)inOutputTime->videoRefreshPeriod / ((double)inOutputTime->videoTimeScale * inOutputTime->rateScalar);
  794 + // CVDisplayLink callback is not on main queue
  795 + SDAnimatedImageView *imageView = (__bridge SDAnimatedImageView *)displayLinkContext;
  796 + __weak SDAnimatedImageView *weakImageView = imageView;
  797 + dispatch_async(dispatch_get_main_queue(), ^{
  798 + [weakImageView displayDidRefresh:displayLink duration:duration];
  799 + });
  800 + return kCVReturnSuccess;
  801 +}
  802 +#endif
  803 +
519 804 #endif
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.h
... ... @@ -55,26 +55,6 @@
55 55 - (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key;
56 56  
57 57 /**
58   - Returns the extended data associated with a given key.
59   - This method may blocks the calling thread until file read finished.
60   -
61   - @param key A string identifying the data. If nil, just return nil.
62   - @return The value associated with key, or nil if no value is associated with key.
63   - */
64   -- (nullable NSData *)extendedDataForKey:(nonnull NSString *)key;
65   -
66   -/**
67   - Set extended data with a given key.
68   -
69   - @discussion You can set any extended data to exist cache key. Without override the exist disk file data.
70   - on UNIX, the common way for this is to use the Extended file attributes (xattr)
71   -
72   - @param extendedData The extended data (pass nil to remove).
73   - @param key The key with which to associate the value. If nil, this method has no effect.
74   -*/
75   -- (void)setExtendedData:(nullable NSData *)extendedData forKey:(nonnull NSString *)key;
76   -
77   -/**
78 58 Removes the value of the specified key in the cache.
79 59 This method may blocks the calling thread until file delete finished.
80 60  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.m
... ... @@ -8,11 +8,8 @@
8 8  
9 9 #import "SDDiskCache.h"
10 10 #import "SDImageCacheConfig.h"
11   -#import "SDFileAttributeHelper.h"
12 11 #import <CommonCrypto/CommonDigest.h>
13 12  
14   -static NSString * const SDDiskCacheExtendedAttributeName = @"com.hackemist.SDDiskCache";
15   -
16 13 @interface SDDiskCache ()
17 14  
18 15 @property (nonatomic, copy) NSString *diskCachePath;
... ... @@ -86,7 +83,7 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
86 83  
87 84 // get cache Path for image key
88 85 NSString *cachePathForKey = [self cachePathForKey:key];
89   - // transform to NSURL
  86 + // transform to NSUrl
90 87 NSURL *fileURL = [NSURL fileURLWithPath:cachePathForKey];
91 88  
92 89 [data writeToURL:fileURL options:self.config.diskCacheWritingOptions error:nil];
... ... @@ -98,31 +95,6 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
98 95 }
99 96 }
100 97  
101   -- (NSData *)extendedDataForKey:(NSString *)key {
102   - NSParameterAssert(key);
103   -
104   - // get cache Path for image key
105   - NSString *cachePathForKey = [self cachePathForKey:key];
106   -
107   - NSData *extendedData = [SDFileAttributeHelper extendedAttribute:SDDiskCacheExtendedAttributeName atPath:cachePathForKey traverseLink:NO error:nil];
108   -
109   - return extendedData;
110   -}
111   -
112   -- (void)setExtendedData:(NSData *)extendedData forKey:(NSString *)key {
113   - NSParameterAssert(key);
114   - // get cache Path for image key
115   - NSString *cachePathForKey = [self cachePathForKey:key];
116   -
117   - if (!extendedData) {
118   - // Remove
119   - [SDFileAttributeHelper removeExtendedAttribute:SDDiskCacheExtendedAttributeName atPath:cachePathForKey traverseLink:NO error:nil];
120   - } else {
121   - // Override
122   - [SDFileAttributeHelper setExtendedAttribute:SDDiskCacheExtendedAttributeName value:extendedData atPath:cachePathForKey traverseLink:NO overwrite:YES error:nil];
123   - }
124   -}
125   -
126 98 - (void)removeDataForKey:(NSString *)key {
127 99 NSParameterAssert(key);
128 100 NSString *filePath = [self cachePathForKey:key];
... ... @@ -146,15 +118,11 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
146 118 case SDImageCacheConfigExpireTypeAccessDate:
147 119 cacheContentDateKey = NSURLContentAccessDateKey;
148 120 break;
  121 +
149 122 case SDImageCacheConfigExpireTypeModificationDate:
150 123 cacheContentDateKey = NSURLContentModificationDateKey;
151 124 break;
152   - case SDImageCacheConfigExpireTypeCreationDate:
153   - cacheContentDateKey = NSURLCreationDateKey;
154   - break;
155   - case SDImageCacheConfigExpireTypeChangeDate:
156   - cacheContentDateKey = NSURLAttributeModificationDateKey;
157   - break;
  125 +
158 126 default:
159 127 break;
160 128 }
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.m
... ... @@ -13,7 +13,7 @@
13 13 #import <MobileCoreServices/MobileCoreServices.h>
14 14 #endif
15 15  
16   -// iOS 8 Image/IO framework binary does not contains these APNG constants, so we define them. Thanks Apple :)
  16 +// iOS 8 Image/IO framework binary does not contains these APNG contants, so we define them. Thanks Apple :)
17 17 // We can not use runtime @available check for this issue, because it's a global symbol and should be loaded during launch time by dyld. So hack if the min deployment target version < iOS 9.0, whatever it running on iOS 9+ or not.
18 18 #if (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0)
19 19 const CFStringRef kCGImagePropertyAPNGLoopCount = (__bridge CFStringRef)@"LoopCount";
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCache.h
... ... @@ -40,7 +40,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
40 40 */
41 41 SDImageCacheAvoidDecodeImage = 1 << 4,
42 42 /**
43   - * By default, we decode the animated image. This flag can force decode the first frame only and produce the static image.
  43 + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image.
44 44 */
45 45 SDImageCacheDecodeFirstFrameOnly = 1 << 5,
46 46 /**
... ... @@ -49,7 +49,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
49 49 SDImageCachePreloadAllFrames = 1 << 6,
50 50 /**
51 51 * By default, when you use `SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution.
52   - * Using this option, can ensure we always produce image with your provided class. If failed, an error with code `SDWebImageErrorBadImageData` will be used.
  52 + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used.
53 53 * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage.
54 54 */
55 55 SDImageCacheMatchAnimatedImageClass = 1 << 7,
... ... @@ -65,7 +65,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
65 65  
66 66 /**
67 67 * Cache Config object - storing all kind of settings.
68   - * The property is copy so change of current config will not accidentally affect other cache's config.
  68 + * The property is copy so change of currrent config will not accidentally affect other cache's config.
69 69 */
70 70 @property (nonatomic, copy, nonnull, readonly) SDImageCacheConfig *config;
71 71  
... ... @@ -162,7 +162,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
162 162 * @param key The unique image cache key, usually it's image absolute URL
163 163 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously
164 164 * @param completionBlock A block executed after the operation is finished
165   - * @note If no image data is provided and encode to disk, we will try to detect the image format (using either `sd_imageFormat` or `SDAnimatedImage` protocol method) and animation status, to choose the best matched format, including GIF, JPEG or PNG.
166 165 */
167 166 - (void)storeImage:(nullable UIImage *)image
168 167 forKey:(nullable NSString *)key
... ... @@ -179,7 +178,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
179 178 * @param key The unique image cache key, usually it's image absolute URL
180 179 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously
181 180 * @param completionBlock A block executed after the operation is finished
182   - * @note If no image data is provided and encode to disk, we will try to detect the image format (using either `sd_imageFormat` or `SDAnimatedImage` protocol method) and animation status, to choose the best matched format, including GIF, JPEG or PNG.
183 181 */
184 182 - (void)storeImage:(nullable UIImage *)image
185 183 imageData:(nullable NSData *)imageData
... ... @@ -227,7 +225,8 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
227 225 #pragma mark - Query and Retrieve Ops
228 226  
229 227 /**
230   - * Synchronously query the image data for the given key in disk cache. You can decode the image data to image after loaded.
  228 + * Asynchronously queries the cache with operation and call the completion when done.
  229 + * Query the image data for the given key synchronously.
231 230 *
232 231 * @param key The unique key used to store the wanted image
233 232 * @return The image data for the given key, or nil if not found.
... ... @@ -235,18 +234,9 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
235 234 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key;
236 235  
237 236 /**
238   - * Asynchronously query the image data for the given key in disk cache. You can decode the image data to image after loaded.
  237 + * Operation that queries the cache asynchronously and call the completion when done.
239 238 *
240   - * @param key The unique key used to store the wanted image
241   - * @param completionBlock the block to be executed when the query is done.
242   - * @note the completion block will be always executed on the main queue
243   - */
244   -- (void)diskImageDataQueryForKey:(nullable NSString *)key completion:(nullable SDImageCacheQueryDataCompletionBlock)completionBlock;
245   -
246   -/**
247   - * Asynchronously queries the cache with operation and call the completion when done.
248   - *
249   - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`.
  239 + * @param key The unique key used to store the wanted image
250 240 * @param doneBlock The completion block. Will not get called if the operation is cancelled
251 241 *
252 242 * @return a NSOperation instance containing the cache op
... ... @@ -256,7 +246,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
256 246 /**
257 247 * Asynchronously queries the cache with operation and call the completion when done.
258 248 *
259   - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`.
  249 + * @param key The unique key used to store the wanted image
260 250 * @param options A mask to specify options to use for this cache query
261 251 * @param doneBlock The completion block. Will not get called if the operation is cancelled
262 252 *
... ... @@ -267,7 +257,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
267 257 /**
268 258 * Asynchronously queries the cache with operation and call the completion when done.
269 259 *
270   - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`.
  260 + * @param key The unique key used to store the wanted image
271 261 * @param options A mask to specify options to use for this cache query
272 262 * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
273 263 * @param doneBlock The completion block. Will not get called if the operation is cancelled
... ... @@ -277,19 +267,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
277 267 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock;
278 268  
279 269 /**
280   - * Asynchronously queries the cache with operation and call the completion when done.
281   - *
282   - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`.
283   - * @param options A mask to specify options to use for this cache query
284   - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
285   - * @param queryCacheType Specify where to query the cache from. By default we use `.all`, which means both memory cache and disk cache. You can choose to query memory only or disk only as well. Pass `.none` is invalid and callback with nil immediately.
286   - * @param doneBlock The completion block. Will not get called if the operation is cancelled
287   - *
288   - * @return a NSOperation instance containing the cache op
289   - */
290   -- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType done:(nullable SDImageCacheQueryCompletionBlock)doneBlock;
291   -
292   -/**
293 270 * Synchronously query the memory cache.
294 271 *
295 272 * @param key The unique key used to store the image
... ... @@ -306,16 +283,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
306 283 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key;
307 284  
308 285 /**
309   - * Synchronously query the disk cache. With the options and context which may effect the image generation. (Such as transformer, animated image, thumbnail, etc)
310   - *
311   - * @param key The unique key used to store the image
312   - * @param options A mask to specify options to use for this cache query
313   - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
314   - * @return The image for the given key, or nil if not found.
315   - */
316   -- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context;
317   -
318   -/**
319 286 * Synchronously query the cache (memory and or disk) after checking the memory cache.
320 287 *
321 288 * @param key The unique key used to store the image
... ... @@ -323,16 +290,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
323 290 */
324 291 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key;
325 292  
326   -/**
327   - * Synchronously query the cache (memory and or disk) after checking the memory cache. With the options and context which may effect the image generation. (Such as transformer, animated image, thumbnail, etc)
328   - *
329   - * @param key The unique key used to store the image
330   - * @param options A mask to specify options to use for this cache query
331   - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
332   - * @return The image for the given key, or nil if not found.
333   - */
334   -- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context;;
335   -
336 293 #pragma mark - Remove Ops
337 294  
338 295 /**
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCache.m
... ... @@ -9,11 +9,11 @@
9 9 #import "SDImageCache.h"
10 10 #import "NSImage+Compatibility.h"
11 11 #import "SDImageCodersManager.h"
  12 +#import "SDImageTransformer.h"
12 13 #import "SDImageCoderHelper.h"
13 14 #import "SDAnimatedImage.h"
14 15 #import "UIImage+MemoryCacheCost.h"
15 16 #import "UIImage+Metadata.h"
16   -#import "UIImage+ExtendedCacheData.h"
17 17  
18 18 @interface SDImageCache ()
19 19  
... ... @@ -186,55 +186,17 @@
186 186 dispatch_async(self.ioQueue, ^{
187 187 @autoreleasepool {
188 188 NSData *data = imageData;
189   - if (!data && [image conformsToProtocol:@protocol(SDAnimatedImage)]) {
190   - // If image is custom animated image class, prefer its original animated data
191   - data = [((id<SDAnimatedImage>)image) animatedImageData];
192   - }
193 189 if (!data && image) {
194   - // Check image's associated image format, may return .undefined
195   - SDImageFormat format = image.sd_imageFormat;
196   - if (format == SDImageFormatUndefined) {
197   - // If image is animated, use GIF (APNG may be better, but has bugs before macOS 10.14)
198   - if (image.sd_isAnimated) {
199   - format = SDImageFormatGIF;
200   - } else {
201   - // If we do not have any data to detect image format, check whether it contains alpha channel to use PNG or JPEG format
202   - if ([SDImageCoderHelper CGImageContainsAlpha:image.CGImage]) {
203   - format = SDImageFormatPNG;
204   - } else {
205   - format = SDImageFormatJPEG;
206   - }
207   - }
  190 + // If we do not have any data to detect image format, check whether it contains alpha channel to use PNG or JPEG format
  191 + SDImageFormat format;
  192 + if ([SDImageCoderHelper CGImageContainsAlpha:image.CGImage]) {
  193 + format = SDImageFormatPNG;
  194 + } else {
  195 + format = SDImageFormatJPEG;
208 196 }
209 197 data = [[SDImageCodersManager sharedManager] encodedDataWithImage:image format:format options:nil];
210 198 }
211 199 [self _storeImageDataToDisk:data forKey:key];
212   - if (image) {
213   - // Check extended data
214   - id extendedObject = image.sd_extendedObject;
215   - if ([extendedObject conformsToProtocol:@protocol(NSCoding)]) {
216   - NSData *extendedData;
217   - if (@available(iOS 11, tvOS 11, macOS 10.13, watchOS 4, *)) {
218   - NSError *error;
219   - extendedData = [NSKeyedArchiver archivedDataWithRootObject:extendedObject requiringSecureCoding:NO error:&error];
220   - if (error) {
221   - NSLog(@"NSKeyedArchiver archive failed with error: %@", error);
222   - }
223   - } else {
224   - @try {
225   -#pragma clang diagnostic push
226   -#pragma clang diagnostic ignored "-Wdeprecated-declarations"
227   - extendedData = [NSKeyedArchiver archivedDataWithRootObject:extendedObject];
228   -#pragma clang diagnostic pop
229   - } @catch (NSException *exception) {
230   - NSLog(@"NSKeyedArchiver archive failed with exception: %@", exception);
231   - }
232   - }
233   - if (extendedData) {
234   - [self.diskCache setExtendedData:extendedData forKey:key];
235   - }
236   - }
237   - }
238 200 }
239 201  
240 202 if (completionBlock) {
... ... @@ -313,17 +275,6 @@
313 275 return [self.diskCache containsDataForKey:key];
314 276 }
315 277  
316   -- (void)diskImageDataQueryForKey:(NSString *)key completion:(SDImageCacheQueryDataCompletionBlock)completionBlock {
317   - dispatch_async(self.ioQueue, ^{
318   - NSData *imageData = [self diskImageDataBySearchingAllPathsForKey:key];
319   - if (completionBlock) {
320   - dispatch_async(dispatch_get_main_queue(), ^{
321   - completionBlock(imageData);
322   - });
323   - }
324   - });
325   -}
326   -
327 278 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key {
328 279 if (!key) {
329 280 return nil;
... ... @@ -341,12 +292,7 @@
341 292 }
342 293  
343 294 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key {
344   - return [self imageFromDiskCacheForKey:key options:0 context:nil];
345   -}
346   -
347   -- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context {
348   - NSData *data = [self diskImageDataForKey:key];
349   - UIImage *diskImage = [self diskImageForKey:key data:data options:options context:context];
  295 + UIImage *diskImage = [self diskImageForKey:key];
350 296 if (diskImage && self.config.shouldCacheImagesInMemory) {
351 297 NSUInteger cost = diskImage.sd_memoryCost;
352 298 [self.memoryCache setObject:diskImage forKey:key cost:cost];
... ... @@ -356,10 +302,6 @@
356 302 }
357 303  
358 304 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key {
359   - return [self imageFromCacheForKey:key options:0 context:nil];
360   -}
361   -
362   -- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context {
363 305 // First check the in-memory cache...
364 306 UIImage *image = [self imageFromMemoryCacheForKey:key];
365 307 if (image) {
... ... @@ -367,7 +309,7 @@
367 309 }
368 310  
369 311 // Second check the disk cache...
370   - image = [self imageFromDiskCacheForKey:key options:options context:context];
  312 + image = [self imageFromDiskCacheForKey:key];
371 313 return image;
372 314 }
373 315  
... ... @@ -404,32 +346,6 @@
404 346 - (nullable UIImage *)diskImageForKey:(nullable NSString *)key data:(nullable NSData *)data options:(SDImageCacheOptions)options context:(SDWebImageContext *)context {
405 347 if (data) {
406 348 UIImage *image = SDImageCacheDecodeImageData(data, key, [[self class] imageOptionsFromCacheOptions:options], context);
407   - if (image) {
408   - // Check extended data
409   - NSData *extendedData = [self.diskCache extendedDataForKey:key];
410   - if (extendedData) {
411   - id extendedObject;
412   - if (@available(iOS 11, tvOS 11, macOS 10.13, watchOS 4, *)) {
413   - NSError *error;
414   - NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:extendedData error:&error];
415   - unarchiver.requiresSecureCoding = NO;
416   - extendedObject = [unarchiver decodeTopLevelObjectForKey:NSKeyedArchiveRootObjectKey error:&error];
417   - if (error) {
418   - NSLog(@"NSKeyedUnarchiver unarchive failed with error: %@", error);
419   - }
420   - } else {
421   - @try {
422   -#pragma clang diagnostic push
423   -#pragma clang diagnostic ignored "-Wdeprecated-declarations"
424   - extendedObject = [NSKeyedUnarchiver unarchiveObjectWithData:extendedData];
425   -#pragma clang diagnostic pop
426   - } @catch (NSException *exception) {
427   - NSLog(@"NSKeyedUnarchiver unarchive failed with exception: %@", exception);
428   - }
429   - }
430   - image.sd_extendedObject = extendedObject;
431   - }
432   - }
433 349 return image;
434 350 } else {
435 351 return nil;
... ... @@ -445,29 +361,22 @@
445 361 }
446 362  
447 363 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock {
448   - return [self queryCacheOperationForKey:key options:options context:context cacheType:SDImageCacheTypeAll done:doneBlock];
449   -}
450   -
451   -- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType done:(nullable SDImageCacheQueryCompletionBlock)doneBlock {
452 364 if (!key) {
453 365 if (doneBlock) {
454 366 doneBlock(nil, nil, SDImageCacheTypeNone);
455 367 }
456 368 return nil;
457 369 }
458   - // Invalid cache type
459   - if (queryCacheType == SDImageCacheTypeNone) {
460   - if (doneBlock) {
461   - doneBlock(nil, nil, SDImageCacheTypeNone);
462   - }
463   - return nil;
  370 +
  371 + id<SDImageTransformer> transformer = context[SDWebImageContextImageTransformer];
  372 + if (transformer) {
  373 + // grab the transformed disk image if transformer provided
  374 + NSString *transformerKey = [transformer transformerKey];
  375 + key = SDTransformedKeyForKey(key, transformerKey);
464 376 }
465 377  
466 378 // First check the in-memory cache...
467   - UIImage *image;
468   - if (queryCacheType != SDImageCacheTypeDisk) {
469   - image = [self imageFromMemoryCacheForKey:key];
470   - }
  379 + UIImage *image = [self imageFromMemoryCacheForKey:key];
471 380  
472 381 if (image) {
473 382 if (options & SDImageCacheDecodeFirstFrameOnly) {
... ... @@ -490,7 +399,7 @@
490 399 }
491 400 }
492 401  
493   - BOOL shouldQueryMemoryOnly = (queryCacheType == SDImageCacheTypeMemory) || (image && !(options & SDImageCacheQueryMemoryData));
  402 + BOOL shouldQueryMemoryOnly = (image && !(options & SDImageCacheQueryMemoryData));
494 403 if (shouldQueryMemoryOnly) {
495 404 if (doneBlock) {
496 405 doneBlock(image, nil, SDImageCacheTypeMemory);
... ... @@ -604,7 +513,7 @@
604 513 });
605 514 }
606 515  
607   -// Make sure to call from io queue by caller
  516 +// Make sure to call form io queue by caller
608 517 - (void)_removeImageFromDiskForKey:(NSString *)key {
609 518 if (!key) {
610 519 return;
... ... @@ -725,10 +634,6 @@
725 634 #pragma mark - SDImageCache
726 635  
727 636 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock {
728   - return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:completionBlock];
729   -}
730   -
731   -- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)cacheType completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock {
732 637 SDImageCacheOptions cacheOptions = 0;
733 638 if (options & SDWebImageQueryMemoryData) cacheOptions |= SDImageCacheQueryMemoryData;
734 639 if (options & SDWebImageQueryMemoryDataSync) cacheOptions |= SDImageCacheQueryMemoryDataSync;
... ... @@ -739,7 +644,7 @@
739 644 if (options & SDWebImagePreloadAllFrames) cacheOptions |= SDImageCachePreloadAllFrames;
740 645 if (options & SDWebImageMatchAnimatedImageClass) cacheOptions |= SDImageCacheMatchAnimatedImageClass;
741 646  
742   - return [self queryCacheOperationForKey:key options:cacheOptions context:context cacheType:cacheType done:completionBlock];
  647 + return [self queryCacheOperationForKey:key options:cacheOptions context:context done:completionBlock];
743 648 }
744 649  
745 650 - (void)storeImage:(UIImage *)image imageData:(NSData *)imageData forKey:(nullable NSString *)key cacheType:(SDImageCacheType)cacheType completion:(nullable SDWebImageNoParamsBlock)completionBlock {
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.h
... ... @@ -12,21 +12,13 @@
12 12 /// Image Cache Expire Type
13 13 typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
14 14 /**
15   - * When the image cache is accessed it will update this value
  15 + * When the image is accessed it will update this value
16 16 */
17 17 SDImageCacheConfigExpireTypeAccessDate,
18 18 /**
19   - * When the image cache is created or modified it will update this value (Default)
  19 + * The image was obtained from the disk cache (Default)
20 20 */
21   - SDImageCacheConfigExpireTypeModificationDate,
22   - /**
23   - * When the image cache is created it will update this value
24   - */
25   - SDImageCacheConfigExpireTypeCreationDate,
26   - /**
27   - * When the image cache is created, modified, renamed, file attribute updated (like permission, xattr) it will update this value
28   - */
29   - SDImageCacheConfigExpireTypeChangeDate,
  21 + SDImageCacheConfigExpireTypeModificationDate
30 22 };
31 23  
32 24 /**
... ... @@ -57,7 +49,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
57 49 /*
58 50 * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time.
59 51 * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground.
60   - * Defaults to YES. You can change this option dynamically.
  52 + * Defautls to YES. You can change this option dynamically.
61 53 */
62 54 @property (assign, nonatomic) BOOL shouldUseWeakMemoryCache;
63 55  
... ... @@ -115,7 +107,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
115 107 /**
116 108 * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager.
117 109 * Defaults to nil.
118   - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect.
  110 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
119 111 * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`.
120 112 */
121 113 @property (strong, nonatomic, nullable) NSFileManager *fileManager;
... ... @@ -123,14 +115,14 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
123 115 /**
124 116 * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage.
125 117 * Defaults to built-in `SDMemoryCache` class.
126   - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect.
  118 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
127 119 */
128 120 @property (assign, nonatomic, nonnull) Class memoryCacheClass;
129 121  
130 122 /**
131 123 * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage.
132 124 * Defaults to built-in `SDDiskCache` class.
133   - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect.
  125 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
134 126 */
135 127 @property (assign ,nonatomic, nonnull) Class diskCacheClass;
136 128  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.h
... ... @@ -36,7 +36,6 @@ typedef NS_ENUM(NSInteger, SDImageCacheType) {
36 36 };
37 37  
38 38 typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache);
39   -typedef void(^SDImageCacheQueryDataCompletionBlock)(NSData * _Nullable data);
40 39 typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize);
41 40 typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key);
42 41 typedef void(^SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType);
... ... @@ -64,7 +63,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
64 63 @required
65 64 /**
66 65 Query the cached image from image cache for given key. The operation can be used to cancel the query.
67   - If image is cached in memory, completion is called synchronously, else asynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`)
  66 + If image is cached in memory, completion is called synchronously, else aynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`)
68 67  
69 68 @param key The image cache key
70 69 @param options A mask to specify options to use for this query
... ... @@ -78,24 +77,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
78 77 completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock;
79 78  
80 79 /**
81   - Query the cached image from image cache for given key. The operation can be used to cancel the query.
82   - If image is cached in memory, completion is called synchronously, else asynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`)
83   -
84   - @param key The image cache key
85   - @param options A mask to specify options to use for this query
86   - @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
87   - @param cacheType Specify where to query the cache from. By default we use `.all`, which means both memory cache and disk cache. You can choose to query memory only or disk only as well. Pass `.none` is invalid and callback with nil immediately.
88   - @param completionBlock The completion block. Will not get called if the operation is cancelled
89   - @return The operation for this query
90   - */
91   -- (nullable id<SDWebImageOperation>)queryImageForKey:(nullable NSString *)key
92   - options:(SDWebImageOptions)options
93   - context:(nullable SDWebImageContext *)context
94   - cacheType:(SDImageCacheType)cacheType
95   - completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock;
96   -
97   -/**
98   - Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else asynchronously.
  80 + Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously.
99 81  
100 82 @param image The image to store
101 83 @param imageData The image data to be used for disk storage
... ... @@ -110,7 +92,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
110 92 completion:(nullable SDWebImageNoParamsBlock)completionBlock;
111 93  
112 94 /**
113   - Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else asynchronously.
  95 + Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously.
114 96  
115 97 @param key The image cache key
116 98 @param cacheType The image remove op cache type
... ... @@ -121,7 +103,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
121 103 completion:(nullable SDWebImageNoParamsBlock)completionBlock;
122 104  
123 105 /**
124   - Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else asynchronously.
  106 + Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else aynchronously.
125 107  
126 108 @param key The image cache key
127 109 @param cacheType The image contains op cache type
... ... @@ -132,7 +114,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
132 114 completion:(nullable SDImageCacheContainsCompletionBlock)completionBlock;
133 115  
134 116 /**
135   - Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else asynchronously.
  117 + Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else aynchronously.
136 118  
137 119 @param cacheType The image clear op cache type
138 120 @param completionBlock A block executed after the operation is finished
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m
... ... @@ -18,32 +18,11 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
18 18 BOOL decodeFirstFrame = SD_OPTIONS_CONTAINS(options, SDWebImageDecodeFirstFrameOnly);
19 19 NSNumber *scaleValue = context[SDWebImageContextImageScaleFactor];
20 20 CGFloat scale = scaleValue.doubleValue >= 1 ? scaleValue.doubleValue : SDImageScaleFactorForKey(cacheKey);
21   - NSNumber *preserveAspectRatioValue = context[SDWebImageContextImagePreserveAspectRatio];
22   - NSValue *thumbnailSizeValue;
23   - BOOL shouldScaleDown = SD_OPTIONS_CONTAINS(options, SDWebImageScaleDownLargeImages);
24   - if (shouldScaleDown) {
25   - CGFloat thumbnailPixels = SDImageCoderHelper.defaultScaleDownLimitBytes / 4;
26   - CGFloat dimension = ceil(sqrt(thumbnailPixels));
27   - thumbnailSizeValue = @(CGSizeMake(dimension, dimension));
28   - }
29   - if (context[SDWebImageContextImageThumbnailPixelSize]) {
30   - thumbnailSizeValue = context[SDWebImageContextImageThumbnailPixelSize];
31   - }
32   -
33   - SDImageCoderMutableOptions *mutableCoderOptions = [NSMutableDictionary dictionaryWithCapacity:2];
34   - mutableCoderOptions[SDImageCoderDecodeFirstFrameOnly] = @(decodeFirstFrame);
35   - mutableCoderOptions[SDImageCoderDecodeScaleFactor] = @(scale);
36   - mutableCoderOptions[SDImageCoderDecodePreserveAspectRatio] = preserveAspectRatioValue;
37   - mutableCoderOptions[SDImageCoderDecodeThumbnailPixelSize] = thumbnailSizeValue;
38   - mutableCoderOptions[SDImageCoderWebImageContext] = context;
39   - SDImageCoderOptions *coderOptions = [mutableCoderOptions copy];
40   -
41   - // Grab the image coder
42   - id<SDImageCoder> imageCoder;
43   - if ([context[SDWebImageContextImageCoder] conformsToProtocol:@protocol(SDImageCoder)]) {
44   - imageCoder = context[SDWebImageContextImageCoder];
45   - } else {
46   - imageCoder = [SDImageCodersManager sharedManager];
  21 + SDImageCoderOptions *coderOptions = @{SDImageCoderDecodeFirstFrameOnly : @(decodeFirstFrame), SDImageCoderDecodeScaleFactor : @(scale)};
  22 + if (context) {
  23 + SDImageCoderMutableOptions *mutableCoderOptions = [coderOptions mutableCopy];
  24 + [mutableCoderOptions setValue:context forKey:SDImageCoderWebImageContext];
  25 + coderOptions = [mutableCoderOptions copy];
47 26 }
48 27  
49 28 if (!decodeFirstFrame) {
... ... @@ -65,7 +44,7 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
65 44 }
66 45 }
67 46 if (!image) {
68   - image = [imageCoder decodedImageWithData:imageData options:coderOptions];
  47 + image = [[SDImageCodersManager sharedManager] decodedImageWithData:imageData options:coderOptions];
69 48 }
70 49 if (image) {
71 50 BOOL shouldDecode = !SD_OPTIONS_CONTAINS(options, SDWebImageAvoidDecodeImage);
... ... @@ -77,7 +56,12 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
77 56 shouldDecode = NO;
78 57 }
79 58 if (shouldDecode) {
80   - image = [SDImageCoderHelper decodedImageWithImage:image];
  59 + BOOL shouldScaleDown = SD_OPTIONS_CONTAINS(options, SDWebImageScaleDownLargeImages);
  60 + if (shouldScaleDown) {
  61 + image = [SDImageCoderHelper decodedAndScaledDownImageWithImage:image limitBytes:0];
  62 + } else {
  63 + image = [SDImageCoderHelper decodedImageWithImage:image];
  64 + }
81 65 }
82 66 }
83 67  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.m
... ... @@ -85,10 +85,6 @@
85 85 #pragma mark - SDImageCache
86 86  
87 87 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock {
88   - return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:completionBlock];
89   -}
90   -
91   -- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock {
92 88 if (!key) {
93 89 return nil;
94 90 }
... ... @@ -97,30 +93,30 @@
97 93 if (count == 0) {
98 94 return nil;
99 95 } else if (count == 1) {
100   - return [caches.firstObject queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
  96 + return [caches.firstObject queryImageForKey:key options:options context:context completion:completionBlock];
101 97 }
102 98 switch (self.queryOperationPolicy) {
103 99 case SDImageCachesManagerOperationPolicyHighestOnly: {
104 100 id<SDImageCache> cache = caches.lastObject;
105   - return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
  101 + return [cache queryImageForKey:key options:options context:context completion:completionBlock];
106 102 }
107 103 break;
108 104 case SDImageCachesManagerOperationPolicyLowestOnly: {
109 105 id<SDImageCache> cache = caches.firstObject;
110   - return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock];
  106 + return [cache queryImageForKey:key options:options context:context completion:completionBlock];
111 107 }
112 108 break;
113 109 case SDImageCachesManagerOperationPolicyConcurrent: {
114 110 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
115 111 [operation beginWithTotalCount:caches.count];
116   - [self concurrentQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
  112 + [self concurrentQueryImageForKey:key options:options context:context completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
117 113 return operation;
118 114 }
119 115 break;
120 116 case SDImageCachesManagerOperationPolicySerial: {
121 117 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
122 118 [operation beginWithTotalCount:caches.count];
123   - [self serialQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
  119 + [self serialQueryImageForKey:key options:options context:context completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
124 120 return operation;
125 121 }
126 122 break;
... ... @@ -283,11 +279,11 @@
283 279  
284 280 #pragma mark - Concurrent Operation
285 281  
286   -- (void)concurrentQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
  282 +- (void)concurrentQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
287 283 NSParameterAssert(enumerator);
288 284 NSParameterAssert(operation);
289 285 for (id<SDImageCache> cache in enumerator) {
290   - [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
  286 + [cache queryImageForKey:key options:options context:context completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
291 287 if (operation.isCancelled) {
292 288 // Cancelled
293 289 return;
... ... @@ -426,7 +422,7 @@
426 422  
427 423 #pragma mark - Serial Operation
428 424  
429   -- (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
  425 +- (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
430 426 NSParameterAssert(enumerator);
431 427 NSParameterAssert(operation);
432 428 id<SDImageCache> cache = enumerator.nextObject;
... ... @@ -439,7 +435,7 @@
439 435 return;
440 436 }
441 437 @weakify(self);
442   - [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
  438 + [cache queryImageForKey:key options:options context:context completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
443 439 @strongify(self);
444 440 if (operation.isCancelled) {
445 441 // Cancelled
... ... @@ -459,7 +455,7 @@
459 455 return;
460 456 }
461 457 // Next
462   - [self serialQueryImageForKey:key options:options context:context cacheType:queryCacheType completion:completionBlock enumerator:enumerator operation:operation];
  458 + [self serialQueryImageForKey:key options:options context:context completion:completionBlock enumerator:enumerator operation:operation];
463 459 }];
464 460 }
465 461  
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.h
... ... @@ -21,30 +21,12 @@ typedef NSMutableDictionary&lt;SDImageCoderOption, id&gt; SDImageCoderMutableOptions;
21 21 @note works for `SDImageCoder`.
22 22 */
23 23 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeFirstFrameOnly;
24   -
25 24 /**
26 25 A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber)
27 26 @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.
28 27 */
29 28 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeScaleFactor;
30 29  
31   -/**
32   - A Boolean value indicating whether to keep the original aspect ratio when generating thumbnail images (or bitmap images from vector format).
33   - Defaults to YES.
34   - @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.
35   - */
36   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodePreserveAspectRatio;
37   -
38   -/**
39   - A CGSize value indicating whether or not to generate the thumbnail images (or bitmap images from vector format). When this value is provided, the decoder will generate a thumbnail image which pixel size is smaller than or equal to (depends the `.preserveAspectRatio`) the value size.
40   - Defaults to CGSizeZero, which means no thumbnail generation at all.
41   - @note Supports for animated image as well.
42   - @note When you pass `.preserveAspectRatio == NO`, the thumbnail image is stretched to match each dimension. When `.preserveAspectRatio == YES`, the thumbnail image's width is limited to pixel size's width, the thumbnail image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both.
43   - @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.
44   - */
45   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeThumbnailPixelSize;
46   -
47   -
48 30 // These options are for image encoding
49 31 /**
50 32 A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need.
... ... @@ -58,42 +40,12 @@ FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeFirstFrame
58 40 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeCompressionQuality;
59 41  
60 42 /**
61   - A UIColor(NSColor) value to used for non-alpha image encoding when the input image has alpha channel, the background color will be used to compose the alpha one. If not provide, use white color.
62   - @note works for `SDImageCoder`
63   - */
64   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeBackgroundColor;
65   -
66   -/**
67   - A CGSize value indicating the max image resolution in pixels during encoding. For vector image, this also effect the output vector data information about width and height. The encoder will not generate the encoded image larger than this limit. Note it always use the aspect ratio of input image..
68   - Defaults to CGSizeZero, which means no max size limit at all.
69   - @note Supports for animated image as well.
70   - @note The output image's width is limited to pixel size's width, the output image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both.
71   - @note works for `SDImageCoder`
72   - */
73   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeMaxPixelSize;
74   -
75   -/**
76   - A NSUInteger value specify the max output data bytes size after encoding. Some lossy format like JPEG/HEIF supports the hint for codec to automatically reduce the quality and match the file size you want. Note this option will override the `SDImageCoderEncodeCompressionQuality`, because now the quality is decided by the encoder. (NSNumber)
77   - @note This is a hint, no guarantee for output size because of compression algorithm limit. And this options does not works for vector images.
78   - @note works for `SDImageCoder`
79   - */
80   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeMaxFileSize;
81   -
82   -/**
83   - A Boolean value indicating the encoding format should contains a thumbnail image into the output data. Only some of image format (like JPEG/HEIF/AVIF) support this behavior. The embed thumbnail will be used during next time thumbnail decoding (provided `.thumbnailPixelSize`), which is faster than full image thumbnail decoding. (NSNumber)
84   - Defaults to NO, which does not embed any thumbnail.
85   - @note The thumbnail image's pixel size is not defined, the encoder can choose the proper pixel size which is suitable for encoding quality.
86   - @note works for `SDImageCoder`
87   - */
88   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeEmbedThumbnail;
89   -
90   -/**
91 43 A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext)
92 44 This option is ignored for all built-in coders and take no effect.
93   - But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data information only.
  45 + But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data inforamtion only.
94 46 See `SDWebImageContext` for more detailed information.
95 47 */
96   -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderWebImageContext API_DEPRECATED("The coder component will be seperated from Core subspec in the future. Update your code to not rely on this context option.", macos(10.10, API_TO_BE_DEPRECATED), ios(8.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED));;
  48 +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderWebImageContext;
97 49  
98 50 #pragma mark - Coder
99 51 /**
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.m
... ... @@ -10,14 +10,8 @@
10 10  
11 11 SDImageCoderOption const SDImageCoderDecodeFirstFrameOnly = @"decodeFirstFrameOnly";
12 12 SDImageCoderOption const SDImageCoderDecodeScaleFactor = @"decodeScaleFactor";
13   -SDImageCoderOption const SDImageCoderDecodePreserveAspectRatio = @"decodePreserveAspectRatio";
14   -SDImageCoderOption const SDImageCoderDecodeThumbnailPixelSize = @"decodeThumbnailPixelSize";
15 13  
16 14 SDImageCoderOption const SDImageCoderEncodeFirstFrameOnly = @"encodeFirstFrameOnly";
17 15 SDImageCoderOption const SDImageCoderEncodeCompressionQuality = @"encodeCompressionQuality";
18   -SDImageCoderOption const SDImageCoderEncodeBackgroundColor = @"encodeBackgroundColor";
19   -SDImageCoderOption const SDImageCoderEncodeMaxPixelSize = @"encodeMaxPixelSize";
20   -SDImageCoderOption const SDImageCoderEncodeMaxFileSize = @"encodeMaxFileSize";
21   -SDImageCoderOption const SDImageCoderEncodeEmbedThumbnail = @"encodeEmbedThumbnail";
22 16  
23 17 SDImageCoderOption const SDImageCoderWebImageContext = @"webImageContext";
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.h
... ... @@ -74,16 +74,6 @@
74 74 + (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED;
75 75  
76 76 /**
77   - Create a scaled CGImage by the provided CGImage and size. This follows The Create Rule and you are response to call release after usage.
78   - It will detect whether the image size matching the scale size, if not, stretch the image to the target size.
79   -
80   - @param cgImage The CGImage
81   - @param size The scale size in pixel.
82   - @return A new created scaled image
83   - */
84   -+ (CGImageRef _Nullable)CGImageCreateScaled:(_Nonnull CGImageRef)cgImage size:(CGSize)size CF_RETURNS_RETAINED;
85   -
86   -/**
87 77 Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image
88 78 @param image The image to be decoded
89 79 @return The decoded image
... ... @@ -99,12 +89,6 @@
99 89 */
100 90 + (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes;
101 91  
102   -/**
103   - Control the default limit bytes to scale down largest images.
104   - This value must be larger than or equal to 1MB. Defaults to 60MB on iOS/tvOS, 90MB on macOS, 30MB on watchOS.
105   - */
106   -@property (class, readwrite) NSUInteger defaultScaleDownLimitBytes;
107   -
108 92 #if SD_UIKIT || SD_WATCH
109 93 /**
110 94 Convert an EXIF image orientation to an iOS one.
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m
... ... @@ -12,35 +12,35 @@
12 12 #import "NSData+ImageContentType.h"
13 13 #import "SDAnimatedImageRep.h"
14 14 #import "UIImage+ForceDecode.h"
15   -#import "SDAssociatedObject.h"
16 15 #import "UIImage+Metadata.h"
17   -#import "SDInternalMacros.h"
18   -#import <Accelerate/Accelerate.h>
19   -
20   -static inline size_t SDByteAlign(size_t size, size_t alignment) {
21   - return ((size + (alignment - 1)) / alignment) * alignment;
22   -}
23 16  
  17 +#if SD_UIKIT || SD_WATCH
24 18 static const size_t kBytesPerPixel = 4;
25 19 static const size_t kBitsPerComponent = 8;
26 20  
27   -static const CGFloat kBytesPerMB = 1024.0f * 1024.0f;
28   -static const CGFloat kPixelsPerMB = kBytesPerMB / kBytesPerPixel;
29 21 /*
30 22 * Defines the maximum size in MB of the decoded image when the flag `SDWebImageScaleDownLargeImages` is set
31 23 * Suggested value for iPad1 and iPhone 3GS: 60.
32 24 * Suggested value for iPad2 and iPhone 4: 120.
33 25 * Suggested value for iPhone 3G and iPod 2 and earlier devices: 30.
34 26 */
35   -#if SD_MAC
36   -static CGFloat kDestImageLimitBytes = 90.f * kBytesPerMB;
37   -#elif SD_UIKIT
38   -static CGFloat kDestImageLimitBytes = 60.f * kBytesPerMB;
39   -#elif SD_WATCH
40   -static CGFloat kDestImageLimitBytes = 30.f * kBytesPerMB;
41   -#endif
  27 +static const CGFloat kDestImageSizeMB = 60.f;
  28 +
  29 +/*
  30 + * Defines the maximum size in MB of a tile used to decode image when the flag `SDWebImageScaleDownLargeImages` is set
  31 + * Suggested value for iPad1 and iPhone 3GS: 20.
  32 + * Suggested value for iPad2 and iPhone 4: 40.
  33 + * Suggested value for iPhone 3G and iPod 2 and earlier devices: 10.
  34 + */
  35 +static const CGFloat kSourceImageTileSizeMB = 20.f;
  36 +
  37 +static const CGFloat kBytesPerMB = 1024.0f * 1024.0f;
  38 +static const CGFloat kPixelsPerMB = kBytesPerMB / kBytesPerPixel;
  39 +static const CGFloat kDestTotalPixels = kDestImageSizeMB * kPixelsPerMB;
  40 +static const CGFloat kTileTotalPixels = kSourceImageTileSizeMB * kPixelsPerMB;
42 41  
43 42 static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to overlap the seems where tiles meet.
  43 +#endif
44 44  
45 45 @implementation SDImageCoderHelper
46 46  
... ... @@ -277,57 +277,10 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
277 277 return newImageRef;
278 278 }
279 279  
280   -+ (CGImageRef)CGImageCreateScaled:(CGImageRef)cgImage size:(CGSize)size {
281   - if (!cgImage) {
282   - return NULL;
283   - }
284   - size_t width = CGImageGetWidth(cgImage);
285   - size_t height = CGImageGetHeight(cgImage);
286   - if (width == size.width && height == size.height) {
287   - CGImageRetain(cgImage);
288   - return cgImage;
289   - }
290   -
291   - __block vImage_Buffer input_buffer = {}, output_buffer = {};
292   - @onExit {
293   - if (input_buffer.data) free(input_buffer.data);
294   - if (output_buffer.data) free(output_buffer.data);
295   - };
296   - BOOL hasAlpha = [self CGImageContainsAlpha:cgImage];
297   - // iOS display alpha info (BGRA8888/BGRX8888)
298   - CGBitmapInfo bitmapInfo = kCGBitmapByteOrder32Host;
299   - bitmapInfo |= hasAlpha ? kCGImageAlphaPremultipliedFirst : kCGImageAlphaNoneSkipFirst;
300   - vImage_CGImageFormat format = (vImage_CGImageFormat) {
301   - .bitsPerComponent = 8,
302   - .bitsPerPixel = 32,
303   - .colorSpace = NULL,
304   - .bitmapInfo = bitmapInfo,
305   - .version = 0,
306   - .decode = NULL,
307   - .renderingIntent = kCGRenderingIntentDefault,
308   - };
309   -
310   - vImage_Error a_ret = vImageBuffer_InitWithCGImage(&input_buffer, &format, NULL, cgImage, kvImageNoFlags);
311   - if (a_ret != kvImageNoError) return NULL;
312   - output_buffer.width = MAX(size.width, 0);
313   - output_buffer.height = MAX(size.height, 0);
314   - output_buffer.rowBytes = SDByteAlign(output_buffer.width * 4, 64);
315   - output_buffer.data = malloc(output_buffer.rowBytes * output_buffer.height);
316   - if (!output_buffer.data) return NULL;
317   -
318   - vImage_Error ret = vImageScale_ARGB8888(&input_buffer, &output_buffer, NULL, kvImageHighQualityResampling);
319   - if (ret != kvImageNoError) return NULL;
320   -
321   - CGImageRef outputImage = vImageCreateCGImageFromBuffer(&output_buffer, &format, NULL, NULL, kvImageNoFlags, &ret);
322   - if (ret != kvImageNoError) {
323   - CGImageRelease(outputImage);
324   - return NULL;
325   - }
326   -
327   - return outputImage;
328   -}
329   -
330 280 + (UIImage *)decodedImageWithImage:(UIImage *)image {
  281 +#if SD_MAC
  282 + return image;
  283 +#else
331 284 if (![self shouldDecodeImage:image]) {
332 285 return image;
333 286 }
... ... @@ -336,18 +289,18 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
336 289 if (!imageRef) {
337 290 return image;
338 291 }
339   -#if SD_MAC
340   - UIImage *decodedImage = [[UIImage alloc] initWithCGImage:imageRef scale:image.scale orientation:kCGImagePropertyOrientationUp];
341   -#else
342 292 UIImage *decodedImage = [[UIImage alloc] initWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation];
343   -#endif
344 293 CGImageRelease(imageRef);
345   - SDImageCopyAssociatedObject(image, decodedImage);
346 294 decodedImage.sd_isDecoded = YES;
  295 + decodedImage.sd_imageFormat = image.sd_imageFormat;
347 296 return decodedImage;
  297 +#endif
348 298 }
349 299  
350 300 + (UIImage *)decodedAndScaledDownImageWithImage:(UIImage *)image limitBytes:(NSUInteger)bytes {
  301 +#if SD_MAC
  302 + return image;
  303 +#else
351 304 if (![self shouldDecodeImage:image]) {
352 305 return image;
353 306 }
... ... @@ -358,11 +311,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
358 311  
359 312 CGFloat destTotalPixels;
360 313 CGFloat tileTotalPixels;
361   - if (bytes == 0) {
362   - bytes = kDestImageLimitBytes;
  314 + if (bytes > 0) {
  315 + destTotalPixels = bytes / kBytesPerPixel;
  316 + tileTotalPixels = destTotalPixels / 3;
  317 + } else {
  318 + destTotalPixels = kDestTotalPixels;
  319 + tileTotalPixels = kTileTotalPixels;
363 320 }
364   - destTotalPixels = bytes / kBytesPerPixel;
365   - tileTotalPixels = destTotalPixels / 3;
366 321 CGContextRef destContext;
367 322  
368 323 // autorelease the bitmap context and all vars to help system to free memory when there are memory warning.
... ... @@ -406,13 +361,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
406 361 CGContextSetInterpolationQuality(destContext, kCGInterpolationHigh);
407 362  
408 363 // Now define the size of the rectangle to be used for the
409   - // incremental bits from the input image to the output image.
  364 + // incremental blits from the input image to the output image.
410 365 // we use a source tile width equal to the width of the source
411 366 // image due to the way that iOS retrieves image data from disk.
412 367 // iOS must decode an image from disk in full width 'bands', even
413 368 // if current graphics context is clipped to a subrect within that
414 369 // band. Therefore we fully utilize all of the pixel data that results
415   - // from a decoding operation by anchoring our tile size to the full
  370 + // from a decoding opertion by achnoring our tile size to the full
416 371 // width of the input image.
417 372 CGRect sourceTile = CGRectZero;
418 373 sourceTile.size.width = sourceResolution.width;
... ... @@ -428,7 +383,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
428 383 destTile.size.height = sourceTile.size.height * imageScale;
429 384 destTile.origin.x = 0.0f;
430 385 // The source seem overlap is proportionate to the destination seem overlap.
431   - // this is the amount of pixels to overlap each tile as we assemble the output image.
  386 + // this is the amount of pixels to overlap each tile as we assemble the ouput image.
432 387 float sourceSeemOverlap = (int)((kDestSeemOverlap/destResolution.height)*sourceResolution.height);
433 388 CGImageRef sourceTileImageRef;
434 389 // calculate the number of read/write operations required to assemble the
... ... @@ -465,30 +420,16 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
465 420 if (destImageRef == NULL) {
466 421 return image;
467 422 }
468   -#if SD_MAC
469   - UIImage *destImage = [[UIImage alloc] initWithCGImage:destImageRef scale:image.scale orientation:kCGImagePropertyOrientationUp];
470   -#else
471 423 UIImage *destImage = [[UIImage alloc] initWithCGImage:destImageRef scale:image.scale orientation:image.imageOrientation];
472   -#endif
473 424 CGImageRelease(destImageRef);
474 425 if (destImage == nil) {
475 426 return image;
476 427 }
477   - SDImageCopyAssociatedObject(image, destImage);
478 428 destImage.sd_isDecoded = YES;
  429 + destImage.sd_imageFormat = image.sd_imageFormat;
479 430 return destImage;
480 431 }
481   -}
482   -
483   -+ (NSUInteger)defaultScaleDownLimitBytes {
484   - return kDestImageLimitBytes;
485   -}
486   -
487   -+ (void)setDefaultScaleDownLimitBytes:(NSUInteger)defaultScaleDownLimitBytes {
488   - if (defaultScaleDownLimitBytes < kBytesPerMB) {
489   - return;
490   - }
491   - kDestImageLimitBytes = defaultScaleDownLimitBytes;
  432 +#endif
492 433 }
493 434  
494 435 #if SD_UIKIT || SD_WATCH
... ... @@ -561,22 +502,19 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
561 502 }
562 503 #endif
563 504  
564   -#pragma mark - Helper Function
  505 +#pragma mark - Helper Fuction
  506 +#if SD_UIKIT || SD_WATCH
565 507 + (BOOL)shouldDecodeImage:(nullable UIImage *)image {
566   - // Prevent "CGBitmapContextCreateImage: invalid context 0x0" error
567   - if (image == nil) {
568   - return NO;
569   - }
570 508 // Avoid extra decode
571 509 if (image.sd_isDecoded) {
572 510 return NO;
573 511 }
574   - // do not decode animated images
575   - if (image.sd_isAnimated) {
  512 + // Prevent "CGBitmapContextCreateImage: invalid context 0x0" error
  513 + if (image == nil) {
576 514 return NO;
577 515 }
578   - // do not decode vector images
579   - if (image.sd_isVector) {
  516 + // do not decode animated images
  517 + if (image.images != nil) {
580 518 return NO;
581 519 }
582 520  
... ... @@ -595,10 +533,11 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
595 533 return NO;
596 534 }
597 535 CGFloat destTotalPixels;
598   - if (bytes == 0) {
599   - bytes = kDestImageLimitBytes;
  536 + if (bytes > 0) {
  537 + destTotalPixels = bytes / kBytesPerPixel;
  538 + } else {
  539 + destTotalPixels = kDestTotalPixels;
600 540 }
601   - destTotalPixels = bytes / kBytesPerPixel;
602 541 if (destTotalPixels <= kPixelsPerMB) {
603 542 // Too small to scale down
604 543 return NO;
... ... @@ -612,6 +551,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
612 551  
613 552 return shouldScaleDown;
614 553 }
  554 +#endif
615 555  
616 556 static inline CGAffineTransform SDCGContextTransformFromOrientation(CGImagePropertyOrientation orientation, CGSize size) {
617 557 // Inspiration from @libfeihu
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.h
... ... @@ -13,7 +13,6 @@
13 13 These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code.
14 14 For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage.
15 15 For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit.
16   - @note If you don't care bitmap format (ARGB8888) and just draw image, use `SDGraphicsImageRenderer` instead. It's more performant on RAM usage.`
17 16 */
18 17  
19 18 /// Returns the current graphics context.
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.m
... ... @@ -9,7 +9,7 @@
9 9 #import "SDImageHEICCoder.h"
10 10 #import "SDImageHEICCoderInternal.h"
11 11  
12   -// These constants are available from iOS 13+ and Xcode 11. This raw value is used for toolchain and firmware compatibility
  12 +// These constantce are available from iOS 13+ and Xcode 11. This raw value is used for toolchain and firmware compatiblitiy
13 13 static NSString * kSDCGImagePropertyHEICSDictionary = @"{HEICS}";
14 14 static NSString * kSDCGImagePropertyHEICSLoopCount = @"LoopCount";
15 15 static NSString * kSDCGImagePropertyHEICSDelayTime = @"DelayTime";
... ...
Example/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.h
... ... @@ -12,7 +12,7 @@
12 12  
13 13 /**
14 14 This is the abstract class for all animated coder, which use the Image/IO API. You can not use this directly as real coders. A exception will be raised if you use this class.
15   - All of the properties need the subclass to implement and works as expected.
  15 + All of the properties need the subclass to implment and works as expceted.
16 16 For Image/IO, See Apple's documentation: https://developer.apple.com/documentation/imageio
17 17 */
18 18 @interface SDImageIOAnimatedCoder : NSObject <SDProgressiveImageCoder, SDAnimatedImageCoder>
... ... @@ -35,7 +35,7 @@
35 35 */
36 36 @property (class, readonly, nonnull) NSString *dictionaryProperty;
37 37 /**
38   - The image unclamped delay time property key used in Image/IO API. Such as `kCGImagePropertyGIFUnclampedDelayTime`
  38 + The image unclamped deply time property key used in Image/IO API. Such as `kCGImagePropertyGIFUnclampedDelayTime`
39 39 @note Subclass override.
40 40 */
41 41 @property (class, readonly, nonnull) NSString *unclampedDelayTimeProperty;
... ...