From cc55bb107ac0c677609d6ce2420ab41921fc115b Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Wed, 19 Nov 2025 15:39:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9A=AE=E8=82=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile | 4 +- Podfile.lock | 6 +- Pods/Manifest.lock | 6 +- Pods/Pods.xcodeproj/project.pbxproj | 6823 +++++++++-------- .../xcschemes/SSZipArchive.xcscheme | 58 + Pods/SSZipArchive/LICENSE.txt | 20 + Pods/SSZipArchive/README.md | 88 + Pods/SSZipArchive/SSZipArchive/SSZipArchive.h | 165 + Pods/SSZipArchive/SSZipArchive/SSZipArchive.m | 1433 ++++ Pods/SSZipArchive/SSZipArchive/SSZipCommon.h | 68 + .../SSZipArchive/include/ZipArchive.h | 25 + Pods/SSZipArchive/SSZipArchive/minizip/mz.h | 274 + .../SSZipArchive/minizip/mz_compat.c | 991 +++ .../SSZipArchive/minizip/mz_compat.h | 250 + .../SSZipArchive/minizip/mz_crypt.c | 196 + .../SSZipArchive/minizip/mz_crypt.h | 65 + .../SSZipArchive/minizip/mz_crypt_apple.c | 487 ++ .../SSZipArchive/SSZipArchive/minizip/mz_os.c | 354 + .../SSZipArchive/SSZipArchive/minizip/mz_os.h | 175 + .../SSZipArchive/minizip/mz_os_posix.c | 367 + .../SSZipArchive/minizip/mz_strm.c | 560 ++ .../SSZipArchive/minizip/mz_strm.h | 132 + .../SSZipArchive/minizip/mz_strm_buf.c | 385 + .../SSZipArchive/minizip/mz_strm_buf.h | 42 + .../SSZipArchive/minizip/mz_strm_mem.c | 272 + .../SSZipArchive/minizip/mz_strm_mem.h | 48 + .../SSZipArchive/minizip/mz_strm_os.h | 40 + .../SSZipArchive/minizip/mz_strm_os_posix.c | 206 + .../SSZipArchive/minizip/mz_strm_pkcrypt.c | 338 + .../SSZipArchive/minizip/mz_strm_pkcrypt.h | 46 + .../SSZipArchive/minizip/mz_strm_split.c | 438 ++ .../SSZipArchive/minizip/mz_strm_split.h | 43 + .../SSZipArchive/minizip/mz_strm_wzaes.c | 362 + .../SSZipArchive/minizip/mz_strm_wzaes.h | 46 + .../SSZipArchive/minizip/mz_strm_zlib.c | 393 + .../SSZipArchive/minizip/mz_strm_zlib.h | 43 + .../SSZipArchive/minizip/mz_zip.c | 2771 +++++++ .../SSZipArchive/minizip/mz_zip.h | 259 + .../SSZipArchive/minizip/mz_zip_rw.c | 1943 +++++ .../SSZipArchive/minizip/mz_zip_rw.h | 285 + .../Pods-keyBoard-acknowledgements.markdown | 24 + .../Pods-keyBoard-acknowledgements.plist | 30 + ...rd-frameworks-Debug-input-files.xcfilelist | 3 +- ...d-frameworks-Debug-output-files.xcfilelist | 3 +- ...-frameworks-Release-input-files.xcfilelist | 3 +- ...frameworks-Release-output-files.xcfilelist | 3 +- .../Pods-keyBoard/Pods-keyBoard-frameworks.sh | 2 + .../Pods-keyBoard.debug.xcconfig | 8 +- .../Pods-keyBoard.release.xcconfig | 8 +- .../SSZipArchive/SSZipArchive-Info.plist | 26 + .../SSZipArchive/SSZipArchive-dummy.m | 5 + .../SSZipArchive/SSZipArchive-prefix.pch | 12 + .../SSZipArchive/SSZipArchive-umbrella.h | 18 + .../SSZipArchive/SSZipArchive.debug.xcconfig | 14 + .../SSZipArchive/SSZipArchive.modulemap | 6 + .../SSZipArchive.release.xcconfig | 14 + Shared/KBConfig.h | 2 +- keyBoard.xcodeproj/project.pbxproj | 116 +- .../Home/VC/FunctionTest/KBSkinCenterVC.m | 178 +- keyBoard/Class/Manager/KBSkinService.m | 84 +- keyBoard/Class/Resource/001.zip | Bin 0 -> 831641 bytes .../Class/Resource/Images/Indicator/boat.png | Bin 21478 -> 0 bytes .../Class/Resource/Images/Indicator/city.png | Bin 38236 -> 0 bytes .../Class/Resource/Images/Indicator/light.png | Bin 44813 -> 0 bytes .../Class/Resource/Images/Indicator/lotus.png | Bin 178089 -> 0 bytes .../Class/Resource/Images/Indicator/river.png | Bin 19245 -> 0 bytes .../Resource/Images/Indicator/seaWave.png | Bin 62773 -> 0 bytes .../Class/Resource/Images/JXCategoryView.png | Bin 2968 -> 0 bytes .../Images/JXCategoryViewStructure.png | Bin 13546 -> 0 bytes keyBoard/Class/Resource/Images/apple.png | Bin 2032 -> 0 bytes .../Class/Resource/Images/apple_selected.png | Bin 1488 -> 0 bytes keyBoard/Class/Resource/Images/arrow_down.png | Bin 155 -> 0 bytes keyBoard/Class/Resource/Images/arrow_up.png | Bin 156 -> 0 bytes keyBoard/Class/Resource/Images/carrot.png | Bin 1953 -> 0 bytes .../Class/Resource/Images/carrot_selected.png | Bin 1305 -> 0 bytes keyBoard/Class/Resource/Images/crab.png | Bin 3581 -> 0 bytes .../Class/Resource/Images/crab_selected.png | Bin 2195 -> 0 bytes keyBoard/Class/Resource/Images/filter.png | Bin 228 -> 0 bytes keyBoard/Class/Resource/Images/football.png | Bin 65011 -> 0 bytes keyBoard/Class/Resource/Images/grape.png | Bin 3350 -> 0 bytes .../Class/Resource/Images/grape_selected.png | Bin 1915 -> 0 bytes keyBoard/Class/Resource/Images/lobster.png | Bin 4499 -> 0 bytes .../Resource/Images/lobster_selected.png | Bin 2856 -> 0 bytes keyBoard/Class/Resource/Images/lufei.jpg | Bin 72830 -> 0 bytes keyBoard/Class/Resource/Images/watermelon.png | Bin 3531 -> 0 bytes .../Resource/Images/watermelon_selected.png | Bin 1953 -> 0 bytes 86 files changed, 17599 insertions(+), 3467 deletions(-) create mode 100644 Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/SSZipArchive.xcscheme create mode 100644 Pods/SSZipArchive/LICENSE.txt create mode 100644 Pods/SSZipArchive/README.md create mode 100644 Pods/SSZipArchive/SSZipArchive/SSZipArchive.h create mode 100644 Pods/SSZipArchive/SSZipArchive/SSZipArchive.m create mode 100644 Pods/SSZipArchive/SSZipArchive/SSZipCommon.h create mode 100644 Pods/SSZipArchive/SSZipArchive/include/ZipArchive.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt_apple.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_os.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_os.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_os_posix.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os_posix.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.h create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.c create mode 100644 Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.h create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive-Info.plist create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive-dummy.m create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive-prefix.pch create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive-umbrella.h create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive.debug.xcconfig create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive.modulemap create mode 100644 Pods/Target Support Files/SSZipArchive/SSZipArchive.release.xcconfig create mode 100644 keyBoard/Class/Resource/001.zip delete mode 100644 keyBoard/Class/Resource/Images/Indicator/boat.png delete mode 100644 keyBoard/Class/Resource/Images/Indicator/city.png delete mode 100644 keyBoard/Class/Resource/Images/Indicator/light.png delete mode 100644 keyBoard/Class/Resource/Images/Indicator/lotus.png delete mode 100644 keyBoard/Class/Resource/Images/Indicator/river.png delete mode 100644 keyBoard/Class/Resource/Images/Indicator/seaWave.png delete mode 100644 keyBoard/Class/Resource/Images/JXCategoryView.png delete mode 100644 keyBoard/Class/Resource/Images/JXCategoryViewStructure.png delete mode 100644 keyBoard/Class/Resource/Images/apple.png delete mode 100644 keyBoard/Class/Resource/Images/apple_selected.png delete mode 100644 keyBoard/Class/Resource/Images/arrow_down.png delete mode 100644 keyBoard/Class/Resource/Images/arrow_up.png delete mode 100644 keyBoard/Class/Resource/Images/carrot.png delete mode 100644 keyBoard/Class/Resource/Images/carrot_selected.png delete mode 100644 keyBoard/Class/Resource/Images/crab.png delete mode 100644 keyBoard/Class/Resource/Images/crab_selected.png delete mode 100644 keyBoard/Class/Resource/Images/filter.png delete mode 100644 keyBoard/Class/Resource/Images/football.png delete mode 100644 keyBoard/Class/Resource/Images/grape.png delete mode 100644 keyBoard/Class/Resource/Images/grape_selected.png delete mode 100644 keyBoard/Class/Resource/Images/lobster.png delete mode 100644 keyBoard/Class/Resource/Images/lobster_selected.png delete mode 100644 keyBoard/Class/Resource/Images/lufei.jpg delete mode 100644 keyBoard/Class/Resource/Images/watermelon.png delete mode 100644 keyBoard/Class/Resource/Images/watermelon_selected.png diff --git a/Podfile b/Podfile index fcee438..212be83 100644 --- a/Podfile +++ b/Podfile @@ -21,7 +21,7 @@ target 'keyBoard' do pod 'MJExtension', '3.4.2' pod 'MJRefresh', '3.7.9' pod 'SDWebImage', '5.21.1' - pod 'SSZipArchive', '~> 2.5' + pod 'SSZipArchive', '~> 2.4.3' end target 'CustomKeyboard' do @@ -34,6 +34,6 @@ target 'CustomKeyboard' do pod 'MBProgressHUD', '1.2.0' pod 'MJExtension', '3.4.2' pod 'DZNEmptyDataSet', '1.8.1' - pod 'SSZipArchive', '~> 2.5' +# pod 'SSZipArchive', '~> 2.5' end diff --git a/Podfile.lock b/Podfile.lock index 3166a6d..0efe7ae 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -37,6 +37,7 @@ PODS: - SDWebImage (5.21.1): - SDWebImage/Core (= 5.21.1) - SDWebImage/Core (5.21.1) + - SSZipArchive (2.4.3) DEPENDENCIES: - AFNetworking (= 4.0.1) @@ -54,6 +55,7 @@ DEPENDENCIES: - MJExtension (= 3.4.2) - MJRefresh (= 3.7.9) - SDWebImage (= 5.21.1) + - SSZipArchive (~> 2.4.3) SPEC REPOS: https://github.com/CocoaPods/Specs.git: @@ -73,6 +75,7 @@ SPEC REPOS: - MJExtension - MJRefresh - SDWebImage + - SSZipArchive SPEC CHECKSUMS: AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58 @@ -91,7 +94,8 @@ SPEC CHECKSUMS: MJExtension: e97d164cb411aa9795cf576093a1fa208b4a8dd8 MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 SDWebImage: f29024626962457f3470184232766516dee8dfea + SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef -PODFILE CHECKSUM: 74f734479eb0a17a905a260cec140c37703d4479 +PODFILE CHECKSUM: 42c5d673998598c7cf832a32c51bc130ff42f8a3 COCOAPODS: 1.16.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 3166a6d..0efe7ae 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -37,6 +37,7 @@ PODS: - SDWebImage (5.21.1): - SDWebImage/Core (= 5.21.1) - SDWebImage/Core (5.21.1) + - SSZipArchive (2.4.3) DEPENDENCIES: - AFNetworking (= 4.0.1) @@ -54,6 +55,7 @@ DEPENDENCIES: - MJExtension (= 3.4.2) - MJRefresh (= 3.7.9) - SDWebImage (= 5.21.1) + - SSZipArchive (~> 2.4.3) SPEC REPOS: https://github.com/CocoaPods/Specs.git: @@ -73,6 +75,7 @@ SPEC REPOS: - MJExtension - MJRefresh - SDWebImage + - SSZipArchive SPEC CHECKSUMS: AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58 @@ -91,7 +94,8 @@ SPEC CHECKSUMS: MJExtension: e97d164cb411aa9795cf576093a1fa208b4a8dd8 MJRefresh: ff9e531227924c84ce459338414550a05d2aea78 SDWebImage: f29024626962457f3470184232766516dee8dfea + SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef -PODFILE CHECKSUM: 74f734479eb0a17a905a260cec140c37703d4479 +PODFILE CHECKSUM: 42c5d673998598c7cf832a32c51bc130ff42f8a3 COCOAPODS: 1.16.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 8a4f23b..2a286a4 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -19,1618 +19,1690 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 0005259AEE76604A26E43EA994475B68 /* HWShoppingCartPresentingAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = C5D725B550FCED60C80870F1B120D3B4 /* HWShoppingCartPresentingAnimation.m */; }; - 00DAE48C9A4FBCD1FCAA922CA57B45F9 /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 607560CCA2D3766D85B5AEE557812D0E /* SDWebImageDownloaderRequestModifier.m */; }; - 01D2F1D0ABE13AAB2CDC0C25E378E964 /* FLAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EAC20398B46C2C580B542618314D9E /* FLAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 020FEDA58170EE1ABDF9E268D373CF4F /* JXCategoryNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = D5119B7CF0FE429CF0E185983E72F98F /* JXCategoryNumberView.m */; }; - 021ACCD4343D154E4782A5ECE222A8DF /* LookinIvarTrace.h in Headers */ = {isa = PBXBuildFile; fileRef = 00C9A4038FA1CE3381055E02DAAEC90E /* LookinIvarTrace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03623FBDBE9F6B422E9A5C6EAD321A58 /* HWPanModalPresenterProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = DE4F66BD16AF47C58F5E08D62D7916E3 /* HWPanModalPresenterProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 042D40751BD2F51FBE9FECD4707CBBE9 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F287F335FB60871C584FAC1904FF4181 /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0453019EC6578A67B82CF569EC765546 /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ED5656E5971882A3EA314E222EBC2C5 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 05E2B7C1DB7528A0BBEA1521BE0DBAF1 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 7083FA062632CC52050FC4EB53D64E3A /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 05EEA40D460AB9A5A6E8D33AAAEF801E /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 10AACE3BDEFABB8B9E709942B03E5595 /* JXPagingView-dummy.m */; }; - 06C4E233E7977DB81A24482E69B2D7D7 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EBF81CE72AA8B4B06F1BC37CFA7B96A /* UIImage+Transform.m */; }; - 0845A6CB7AE77A99CC475BD14101FE87 /* LookinAttrType.h in Headers */ = {isa = PBXBuildFile; fileRef = C9E1D6C567F43B4A9410AC83170573DE /* LookinAttrType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = ED2A7F3394578B0F6BEA7FBFFE1E2291 /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 089F3C4BAA46A37EC5763DD312771021 /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B75E67C2319B8FDBF4D6263203A06D6B /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08D50C5AC969A3701B6F9137CF3A10F1 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = CF91BA63B659D0E10C9E123EBEAB8FA3 /* UIImage+ForceDecode.m */; }; - 09A2ACBC8CE1761652EAA20886AEFE10 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EF3B546633CC3DB26A173DE519AC3D7 /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A7342FACEBA0077F1B06178940883DB /* HWPanModal.h in Headers */ = {isa = PBXBuildFile; fileRef = EC37DBDA721D0EFF5AB018086BE1B195 /* HWPanModal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AA1842830C770B1E299BAC977E813D9 /* JXCategoryIndicatorRainbowLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = D25C8F67455D872A48F4797213321EA4 /* JXCategoryIndicatorRainbowLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B0E6CECDF516BC83756C1D5515A725B /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A03E8820B42DFF0FCE849CB64302CAF /* SDAsyncBlockOperation.m */; }; - 0B449236AF25C6C11B0DE3D6D0E4A19B /* LookinEventHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 05EE9449F14265ADB3100E60632AB642 /* LookinEventHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0BE3B8DB6034364E7CF3AE9D01C7C0B4 /* CALayer+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 657631264951C7514A1788B1C6316E7F /* CALayer+Lookin.m */; }; - 0C312924F0A07471A1D04AD15D32BF3A /* JXCategoryIndicatorRainbowLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 021930E01F482BDF2DEAAA2AF9FDCF18 /* JXCategoryIndicatorRainbowLineView.m */; }; - 0C79142D1349DD9A969F47A0A8AAA0CB /* Lookin_PTProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B6F5F5F32C55F6B9F4E87EC57A0A074 /* Lookin_PTProtocol.m */; }; - 0D6EFFD314E70C1E547970D8CEF11131 /* JXPagerMainTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C2DAB09AC8F3AD6E82FDC5DB2562CB4 /* JXPagerMainTableView.m */; }; - 0E97928FD3B4476EDC015E83A8E2CAA3 /* UIView+Empty.m in Sources */ = {isa = PBXBuildFile; fileRef = A34A186C33DB71F8C4ACB6E0705472D0 /* UIView+Empty.m */; }; - 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D65BB6AAD351E64F3FE46FACDEED4F /* MJRefreshNormalHeader.m */; }; - 0F1D0F5DCC8C94A4C684DF846D14F436 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AA439B2B87976D37C23F7DCCE897F8C /* SDWebImagePrefetcher.m */; }; - 0FF9F459ED16719292443A4C99B52B20 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 77715D6F65035CFA25715F00E4915BA5 /* SDImageCache.m */; }; - 10017B43AC38C3A89D7AC1376C6E7066 /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1F5F86210D3FB1EF59D8665E7C4A77 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 104D9196010D2A8C52C0C19E9C9D52E8 /* MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D30B8333D334528105E28100C243348D /* MBProgressHUD-dummy.m */; }; - 117F4B6F653A8DA2637C5C93B4993884 /* Peertalk.h in Headers */ = {isa = PBXBuildFile; fileRef = 70D52E1253BDF6EF05A1C5C1D46734EA /* Peertalk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11AD210D385F977383AFB974D3CDEF53 /* JXCategoryListContainerRTLCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E948F26A10F663204E24603E8527A7F5 /* JXCategoryListContainerRTLCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 14CF605A6E1A867AA3131733CCE53D99 /* MJRefreshAutoFooter.m */; }; - 11D4DC1FCE5647EEA8484AA4A880AF8F /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 347DA9A1002297848F6BF9D97BB1F302 /* MBProgressHUD.m */; }; - 126496714AD564062A8C10787CC01B8B /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF14CEE3203A4E740B9A9FD66CCABA4 /* MJFoundation.m */; }; - 12EC136F97CCCDD8C3765925FABA52CD /* HWPanModalHeight.h in Headers */ = {isa = PBXBuildFile; fileRef = EF7183977EF6286C16A64DBC3D765320 /* HWPanModalHeight.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1399CD097E164E2C7A6882F0C8FFA525 /* JXCategoryIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 92A35222DEEC452079F1343331C6E154 /* JXCategoryIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14943D0EE97A4966510A86F5C3FC66A5 /* MJExtension-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2713EAAF042877733E01E359F3224ABF /* MJExtension-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14CA284AC4FF1EED75E785641EE98034 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = E368F7BC820788B717CC047A744E4326 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 150116E888969E8304BA3E2BB6529461 /* LookinHierarchyFile.h in Headers */ = {isa = PBXBuildFile; fileRef = FDCCFFDED68135F2816CA2167E15CF64 /* LookinHierarchyFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15B27182B591769C57B55544260DC886 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 165F1C9CBD621828C788A3018D0426C5 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3501E850F701BA678364B4AFBF1C8417 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 168889E3E897E6D6102A2AA7F7C47496 /* JXCategoryIndicatorComponentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C2A3B1C753D4547646108720BF5321 /* JXCategoryIndicatorComponentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0005259AEE76604A26E43EA994475B68 /* HWShoppingCartPresentingAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = E532AF84D90C3C764514E4997CB67BFC /* HWShoppingCartPresentingAnimation.m */; }; + 00DAE48C9A4FBCD1FCAA922CA57B45F9 /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = C37E369E045D1954868FA3F8BD76BE0E /* SDWebImageDownloaderRequestModifier.m */; }; + 01448B814492AEE3B887978D098F7FD2 /* LSTTimer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BA1686C72867CD846AF19514CDB0DB24 /* LSTTimer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01D2F1D0ABE13AAB2CDC0C25E378E964 /* FLAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = C746AE47069EC0FC26033C8BE9327094 /* FLAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 020FEDA58170EE1ABDF9E268D373CF4F /* JXCategoryNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7322836C2297450D37149C5382810B /* JXCategoryNumberView.m */; }; + 021ACCD4343D154E4782A5ECE222A8DF /* LookinIvarTrace.h in Headers */ = {isa = PBXBuildFile; fileRef = 80BF1785EB85332804D7A38FC927C011 /* LookinIvarTrace.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03588B938BECEEF89042E2C73159BEA2 /* mz_strm_wzaes.h in Headers */ = {isa = PBXBuildFile; fileRef = B6FBCFD26A3B8A9AAFA4FC414E405AAA /* mz_strm_wzaes.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 03623FBDBE9F6B422E9A5C6EAD321A58 /* HWPanModalPresenterProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = E6C476448137596396FEC701467DA4A0 /* HWPanModalPresenterProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 042D40751BD2F51FBE9FECD4707CBBE9 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = B9579B08DA6D1FF93EA1A319C7934531 /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0453019EC6578A67B82CF569EC765546 /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB4C233F83FD0B96F8490BFD7485587 /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 05E2B7C1DB7528A0BBEA1521BE0DBAF1 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = AC71E00B08C163BDC9595A666E4DD0BB /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 05EEA40D460AB9A5A6E8D33AAAEF801E /* JXPagingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8AA97DE3A5096AC474171B27CE045A0 /* JXPagingView-dummy.m */; }; + 06C4E233E7977DB81A24482E69B2D7D7 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = B47748E05CB9242948D04AE8D182AA02 /* UIImage+Transform.m */; }; + 0845A6CB7AE77A99CC475BD14101FE87 /* LookinAttrType.h in Headers */ = {isa = PBXBuildFile; fileRef = F4362531C46D376449500E4E4ABD46B8 /* LookinAttrType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08719ABCE689ED74FE7486B1E49DAA6C /* MJRefreshBackStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = A983C9EAC053E3A902EDBD7259A44CCC /* MJRefreshBackStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 089F3C4BAA46A37EC5763DD312771021 /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D7F080347E7550373BD2ABDE7F06BA15 /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 08D50C5AC969A3701B6F9137CF3A10F1 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = D6900481698B9F48FCA8D28EBAA092DF /* UIImage+ForceDecode.m */; }; + 090CC8DB2713055B65F3693A67A9F0AF /* mz_zip_rw.c in Sources */ = {isa = PBXBuildFile; fileRef = 151C8F6D88020F922D61D037136E3DFB /* mz_zip_rw.c */; }; + 09A2ACBC8CE1761652EAA20886AEFE10 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CA92ABE6AB98DEFE6896E40AC428193 /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A7342FACEBA0077F1B06178940883DB /* HWPanModal.h in Headers */ = {isa = PBXBuildFile; fileRef = D49CDA48914032B26F3A10790C6CC843 /* HWPanModal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AA1842830C770B1E299BAC977E813D9 /* JXCategoryIndicatorRainbowLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = EE2EF3F6F5D20D166802D58E874E4726 /* JXCategoryIndicatorRainbowLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B0E6CECDF516BC83756C1D5515A725B /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 462826D970853E9C8FE383182C96312F /* SDAsyncBlockOperation.m */; }; + 0B449236AF25C6C11B0DE3D6D0E4A19B /* LookinEventHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 050D9A9BA00647620853E7BB1D8F7894 /* LookinEventHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0BE3B8DB6034364E7CF3AE9D01C7C0B4 /* CALayer+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = A2922793BBB0ED7A43277BC1705F6C65 /* CALayer+Lookin.m */; }; + 0C312924F0A07471A1D04AD15D32BF3A /* JXCategoryIndicatorRainbowLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = AD030D4FE25B39220113AA491F784D34 /* JXCategoryIndicatorRainbowLineView.m */; }; + 0C79142D1349DD9A969F47A0A8AAA0CB /* Lookin_PTProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = D44F285EDEE4AF310DBFDC692616C9A2 /* Lookin_PTProtocol.m */; }; + 0D6EFFD314E70C1E547970D8CEF11131 /* JXPagerMainTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D5DC48829B4C9491CC086CFD600A48A6 /* JXPagerMainTableView.m */; }; + 0E97928FD3B4476EDC015E83A8E2CAA3 /* UIView+Empty.m in Sources */ = {isa = PBXBuildFile; fileRef = D3931B77C846928C35AD1FF0896988E4 /* UIView+Empty.m */; }; + 0EF10747EF2A02413E84BD5EF7C87A4B /* MJRefreshNormalHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F573E017D0C85FEF4A821E84BB3635F /* MJRefreshNormalHeader.m */; }; + 0F1D0F5DCC8C94A4C684DF846D14F436 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A921248D50C2AB16156A42A3D7878239 /* SDWebImagePrefetcher.m */; }; + 0FF9F459ED16719292443A4C99B52B20 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EDA9F35E6812154628B5DBA71DF892F /* SDImageCache.m */; }; + 10017B43AC38C3A89D7AC1376C6E7066 /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E4FFE75E911DE829448DE3C673671F3 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 104D9196010D2A8C52C0C19E9C9D52E8 /* MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7336C0047ACEDE5EA0CB2AE118A7D79F /* MBProgressHUD-dummy.m */; }; + 117F4B6F653A8DA2637C5C93B4993884 /* Peertalk.h in Headers */ = {isa = PBXBuildFile; fileRef = BAC93B86D6778471FAE7BA6676662150 /* Peertalk.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11AD210D385F977383AFB974D3CDEF53 /* JXCategoryListContainerRTLCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9EAEBBAE3A74DFDF23B1FEAE9D4E5BB /* JXCategoryListContainerRTLCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11C929E6BFB46F981685446F26DCE605 /* MJRefreshAutoFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E471E488CB3B1BBD00A20FDE73CF37A /* MJRefreshAutoFooter.m */; }; + 11D4DC1FCE5647EEA8484AA4A880AF8F /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A8D246A17AC99C083AD6B315A4F43E /* MBProgressHUD.m */; }; + 126496714AD564062A8C10787CC01B8B /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FD3AD2667575D5EC04C51DDC2C85158 /* MJFoundation.m */; }; + 12EC136F97CCCDD8C3765925FABA52CD /* HWPanModalHeight.h in Headers */ = {isa = PBXBuildFile; fileRef = 07D1C2473BCFEB86B0504DB18A9D04D8 /* HWPanModalHeight.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1399CD097E164E2C7A6882F0C8FFA525 /* JXCategoryIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 0144DBC6460DBCF85C0357C2BD9270EF /* JXCategoryIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14943D0EE97A4966510A86F5C3FC66A5 /* MJExtension-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C574A06BD79BD663087E268891D35FC4 /* MJExtension-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14CA284AC4FF1EED75E785641EE98034 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A0B4C1FE0597D5C65F6A35599569483 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 150116E888969E8304BA3E2BB6529461 /* LookinHierarchyFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE373EEFE41CB11B4ADBF33F7FCFF1E /* LookinHierarchyFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15B27182B591769C57B55544260DC886 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 165F1C9CBD621828C788A3018D0426C5 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 726915ABC3694AE95F5F0C13806235F0 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 168889E3E897E6D6102A2AA7F7C47496 /* JXCategoryIndicatorComponentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F94F37349FFB161919EFE71C2CD9E77 /* JXCategoryIndicatorComponentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 16D7DCB7CC985C33EEC41B371C029C84 /* SDWebImage-SDWebImage in Resources */ = {isa = PBXBuildFile; fileRef = CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */; }; - 1708C1D28B421C4AD310426D1695CE77 /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB258BF0BE17AFC3BFB4FB942403B82 /* SDAnimatedImage.m */; }; - 17341EDF872432C3966B77976F3E0470 /* JXCategoryTitleVerticalZoomCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = C4D51AE584C5960F5C6B60C866377741 /* JXCategoryTitleVerticalZoomCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1754DD5511A7BF462B116F70B0D4006A /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A70A9B1B9D076F21A4C704EAC69B3E9 /* SDWebImageOperation.m */; }; - 1830558A4D2D63C8E76BC3136D8213F9 /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D2F3BF5EE9E269F816330AC6BF6745F /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 18660FA595DBE133BB784E813A7122A8 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CA6A325AACF7253FFEB9D258746335D /* SDImageHEICCoder.m */; }; - 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0260C833576479A14C0F759F9D161479 /* MJRefreshFooter.m */; }; - 18AD90784D549657DF51BC8377DA3085 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F1245D39980C8CC23C4FFA557C72FA3 /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B52E938D7999FC0CDA2AA22674948EB /* LookinAttributesGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = E6FEAED2BC2A577A78A12FA14FC3BB6B /* LookinAttributesGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B6CE67196EE181E6B56788EFC7E00D3 /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C0E279B5FFB9696801CC86ACF92805A /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BC44E2FDD197D5210A23C9CCF1A906B /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = F00B3F2B17BB2816232EB507B7AC9018 /* SDWebImageCompat.m */; }; - 1C0FA6017CAD67C1A80FFA70024FC6FD /* JXCategoryIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F9F30602CBEA307F110682B47DBF3B59 /* JXCategoryIndicatorCell.m */; }; - 1C1BC9F0555B36914FF5278D30152DE6 /* JXCategoryNumberView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B8734ED62BE39C69073D2C32183C6FC /* JXCategoryNumberView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C5CCB87E5B9C500F07A8244D7906295 /* LookinAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D8A828331C79742A41F54C2050C90A8 /* LookinAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C8B70C74291A3076746C3B18781568E /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A41E1A305241C5A627FAD06CB90A275 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1CA85ECC202E5CF62530BAD7C0DCDAF2 /* LookinHierarchyInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 26469EA2BF7F49FCDA80695277950B2B /* LookinHierarchyInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D18A1A5D485D57192B021A8765C0AF5 /* LookinTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 17A16F153D08C8BBF15070C730EC0C3A /* LookinTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D3DCD05B685A7CAF291C25D922B1831 /* HWPanModalPresentationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9506DDA8FBAA7420E9B8137BFCFDFA /* HWPanModalPresentationController.m */; }; - 1DB724891F1F6468BDB333369F667F39 /* HWPanModalPresentableHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = C644FF26241C14C759578567892EF00D /* HWPanModalPresentableHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1DC161351EBD409CC622E826340E4FD8 /* JXCategoryTitleVerticalZoomCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 25475D081A3343232AD119F5F5A5F24A /* JXCategoryTitleVerticalZoomCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EA011B45EC780B434507AFB3D9647ED /* NSObject+MJCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2F0E472487CBFBA5CA4F3C62C1BB0B /* NSObject+MJCoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EC3AEA15AE416A53357261B37C622BD /* LKS_TraceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 52AF8374431A1EA8420BA1E29139131E /* LKS_TraceManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1ECC5F320AEFB120081358B4FFB7442F /* NSString+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C39377834B42681C3BF6A5471C5F78 /* NSString+MJExtension.m */; }; - 1ED0D560CC57BCED931C26E643B2A96A /* UIView+Empty.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A5F8A5650078BFF9587944F0042AE79 /* UIView+Empty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EDC6F899051F0E858270F7556AF2F12 /* UIVisualEffectView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = A7DF910F689AA8FEAD1EF63DDDFCB780 /* UIVisualEffectView+LookinServer.m */; }; - 1EDF5F5B68D4A76CE59D5B6CC7B6C469 /* LookinAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 903EBE6439B30182644FFF066DE11129 /* LookinAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F2863645F3DEAC57B592AFFB45D5E77 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 20674A80959A90C9F9E51DBDC8807D93 /* PrivacyInfo.xcprivacy */; }; - 1F778CA18D1F4A50D9F15280B25D10EB /* JXCategoryTitleImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B812F8DDDC6CC3E3ACDB1D17716E70C /* JXCategoryTitleImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FD36A180D43C773D95D8E5BF719494C /* LookinDisplayItemDetail.h in Headers */ = {isa = PBXBuildFile; fileRef = 407D327724ADF96791DFD9B922AA254A /* LookinDisplayItemDetail.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FDEA3FFA45F29C1331723E9579D66A5 /* LookinAutoLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 38F21B02ED02115E613C152CE563BD5A /* LookinAutoLayoutConstraint.m */; }; - 2055774CD703B52DABFB1CC588394A94 /* MJExtension-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 43E163147E40F868F458CD979D77C4E4 /* MJExtension-dummy.m */; }; - 20D5706AD3ED295B4FBACD8825DC3A1E /* JXPagerListRefreshView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B250EFB659FBBBBA5D680859085344D /* JXPagerListRefreshView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20D618EF3EA5E3BE96DA24D36E3CA9EF /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 026BB0AEDD69539DEC39191EE0C5214B /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 20E738E52B4712385489A62374C74C7F /* Lookin_PTUSBHub.m in Sources */ = {isa = PBXBuildFile; fileRef = B1850D4E22F95780586FA04DA695C24C /* Lookin_PTUSBHub.m */; }; - 20FBBC12322412237D48D3695D98E043 /* JXCategoryDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = C86FEA7FA982FA034501F7AB37760D49 /* JXCategoryDotView.m */; }; - 21232E67D630EBF8EA4CB3322B359F0D /* LSTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5782C68BCDC8C49DD74B206B3FFFF1 /* LSTTimer.m */; }; - 2175B894008D948C762468307BA677B8 /* RTLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A3BA26DC995AB016051D522F5691C91 /* RTLManager.m */; }; - 2210A1E405AB21104E7AF86D05C8AD39 /* LYEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 39267406AD82F75ABB872A20BE14F010 /* LYEmptyView.m */; }; - 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 304FA88F8B2636C2DD7FA535D2BD617D /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22C38AE7AB145224FF646303AFED11D2 /* JXCategoryDotCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 931669FB7F8BA540208B2F23E13B2F19 /* JXCategoryDotCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22F19B23471EE7840581A348EB735BD1 /* UIViewController+LayoutHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F9AA00EC509DE2C0E25E749F629EF1F6 /* UIViewController+LayoutHelper.m */; }; - 231A40F14D020AE2F61AA5C3289E6CF9 /* UITextView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = FCA4EBF34C88159600AC127D3548346D /* UITextView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2395CE03CE80FC5F9A7F61C48270618B /* JXCategoryViewAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 95BCF1B96C9A492409E9634BC63A400B /* JXCategoryViewAnimator.m */; }; - 2460C08042AF8B7D0492A062F755986E /* NSString+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = C9A08CB30EFC3A6CB342354C253BE4D8 /* NSString+Lookin.m */; }; - 24E8E4ED0B5D988E3346E6638619F4E4 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 452754C8CDFE17EC42C563B4B6E1F69A /* SDImageFrame.m */; }; - 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ECA4FF1A4B2A73F055139B44105081C /* NSBundle+MJRefresh.m */; }; - 2567FE276DB76481DEFC7DDFE7D775CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 261C31F4038EC00D5961218C97905E21 /* LookinConnectionResponseAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = D9BB987ADE61FFDF3C240961F2EB4DDB /* LookinConnectionResponseAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 266352AA446DAE8C9502E83810C174D9 /* JXCategoryImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CB6F43E2EFE165260D66B0BFF9A8831 /* JXCategoryImageView.m */; }; - 27212D06F5EDE3BB10264D93075B2275 /* LookinDashboardBlueprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AB6F2617132C99A6B5CB953305CCA89 /* LookinDashboardBlueprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2759D8D4FCE58812ADECB348E369C6F0 /* LKS_MultiplatformAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 957B3209BD81CDA1C8049B3245F6946E /* LKS_MultiplatformAdapter.m */; }; - 27CC45A4ABE5B40723D35310D05CD146 /* LKS_EventHandlerMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = CD6BC672271DF551FD22D8BABC528CA6 /* LKS_EventHandlerMaker.m */; }; - 27CE2AFFB3219A5D3717045970929C80 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7EC4505824D228FB201DC90A544C01B3 /* PrivacyInfo.xcprivacy */; }; - 288CD3416B265CAC1300D7938167AE66 /* MJPropertyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 05A7B005509B15E31ECEED7DFEEB1EDB /* MJPropertyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 288D796F3F7B9F42690E24A3B1018B2C /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = B92B905C66437721BB933FEDA5B00CB4 /* SDImageIOAnimatedCoder.m */; }; - 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 63A3BD4651AA1DDCB216ABB7FBC3A69E /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29F7F0E98FD26A96364DBACD7D5F237A /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 96AEDA915084E949F39F28D248C2FB43 /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A24F241D7D74FF6DEA953F9DD49391C /* LKS_EventHandlerMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 51AB8F5FA4517AC80D7763B2894462EB /* LKS_EventHandlerMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C2405D23D1A7428F65C7D740476ABA2 /* Pods-keyBoard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D8E1EB42D41EA6B94901E5B68C9011 /* Pods-keyBoard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CDC7B9EAD356E35FEAF526EEA6A8E91 /* LookinWeakContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 60F9066C601EE11D24D22C170F05AF13 /* LookinWeakContainer.m */; }; - 2D0E2E3CDCB12399497B4F31D4C20E3E /* HWShoppingCartPresentingAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FCBCC9D408AF4A848CBB9CEE3327E256 /* HWShoppingCartPresentingAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C71B9877A51B54673C7FFC0C3276863 /* MJRefreshConfig.m */; }; - 2DDA5F044BC698BC5D48A7CFDDBF71E3 /* LookinAttributeModification.m in Sources */ = {isa = PBXBuildFile; fileRef = 39592D3DD29808CC34F5BDE8FFAD64E6 /* LookinAttributeModification.m */; }; - 2DDD48230ED9E8068C7E439D79B99A8E /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 962D7794EB805E6D2F4F5F0B58218401 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2E86A7C77E43AEA4697979F1F848E68D /* LKS_RequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBA747DBA20D4BACF78CA8DE98ADF94 /* LKS_RequestHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EC1750C894F036194B90CFD26072B0C /* FLAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = E386525610DF7AB4E84ED0202969AB8E /* FLAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EC7BA321016EC71EA595E4BAF0B7E8B /* JXCategoryDotCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B890DAD1E942EF3DB7BF5C23113C1B6 /* JXCategoryDotCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EDA227454079ED3F6371BF34AFD4735 /* JXCategoryIndicatorCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E73D1DD407F0535009A207AB317F8B7 /* JXCategoryIndicatorCellModel.m */; }; - 2EFF1EFA2FF0D2F1AE44A9DDBB932425 /* UIScrollView+EmptyDataSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 2945888F89AB6D3ECBBEDD6E09D1B949 /* UIScrollView+EmptyDataSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F6D9BEA582A2DBB70A6C3B2FC2DB91E /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BC98580A0BA844CDD661F01812A35C7 /* SDWebImageDownloaderResponseModifier.m */; }; - 3111CEA93C868CA68CBD351C934FEB80 /* LSTPopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633C3F66E9BA0FD7538C55D5287ED77E /* LSTPopView.m */; }; - 3127F22BF0A5465D472669272D586BDC /* HWPanModalIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = BCDE5AFCF524DCA9CD59B6F4A4738325 /* HWPanModalIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3187FF0C251D1B78BE87F64F6F6E944A /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = A4B49E8FCEA2AFEE938A133ECC269CF2 /* SDWebImageTransition.m */; }; - 31DC2EC78AD1F8241AE6051EF9E73B0A /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = AEEC6C323BA320F8FE0EFED607BC9994 /* SDWebImageDefine.m */; }; - 31FA8264AA5553AB85039530B1FB8C4B /* JXCategoryNumberCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A23AD7EF4A12F64EAAFE5154D8DC5843 /* JXCategoryNumberCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 320DE42AF3CFE11FF785FEB1A7E6547B /* SDImageFramePool.m in Sources */ = {isa = PBXBuildFile; fileRef = BF31B533FDEE0B0DA7ED824B4F336534 /* SDImageFramePool.m */; }; - 321F87DA34863DC5C977323BAEDB2B55 /* NSObject+MJCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 0249A8711339B6CD1E26258C064677E9 /* NSObject+MJCoding.m */; }; - 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A2E7581F1DA07EBD6D2568091FCCB71 /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1708C1D28B421C4AD310426D1695CE77 /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 58EEB7C2A63BEB01A88AE5CF3E60AAB6 /* SDAnimatedImage.m */; }; + 17341EDF872432C3966B77976F3E0470 /* JXCategoryTitleVerticalZoomCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = B65A0644DDC3DBF2C3A6A5539FCDBCFF /* JXCategoryTitleVerticalZoomCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1754DD5511A7BF462B116F70B0D4006A /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C9CD1D6B313C7BC3B434A5429146D43D /* SDWebImageOperation.m */; }; + 1830558A4D2D63C8E76BC3136D8213F9 /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 81982EB3F0F0B2FC231802C3D3BA6043 /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 18660FA595DBE133BB784E813A7122A8 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = EEF155F921CCF995504E20C130EDCF43 /* SDImageHEICCoder.m */; }; + 186B573F1BEB8A23419A02814A7741DB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7182AB2D5FC7F8A82EFABD7188C650B0 /* MJRefreshFooter.m */; }; + 18AD90784D549657DF51BC8377DA3085 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = B5859EFB57577F79DE0594BFE5FCE960 /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B52E938D7999FC0CDA2AA22674948EB /* LookinAttributesGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = BF890D3C8FFDC0A8645FE4AC7B3FEAC2 /* LookinAttributesGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B6CE67196EE181E6B56788EFC7E00D3 /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DB1E93D96D72ACA42B0423E19594280 /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BC44E2FDD197D5210A23C9CCF1A906B /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 7055E6E8C5E3B9875C9AA1F78051BD79 /* SDWebImageCompat.m */; }; + 1C0FA6017CAD67C1A80FFA70024FC6FD /* JXCategoryIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ADD806A65FD213516E38006E7412A29 /* JXCategoryIndicatorCell.m */; }; + 1C1BC9F0555B36914FF5278D30152DE6 /* JXCategoryNumberView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3896EF3FC153DCD9550AA0C34B1DD94B /* JXCategoryNumberView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C5CCB87E5B9C500F07A8244D7906295 /* LookinAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E0E514D6B12F84E6EE4FEDF1E175E984 /* LookinAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C8B70C74291A3076746C3B18781568E /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C85A06A2C6EDE51803F645EBFC3C666 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 1CA85ECC202E5CF62530BAD7C0DCDAF2 /* LookinHierarchyInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C792FA3E4D3612659DA4500FE9D4A687 /* LookinHierarchyInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D18A1A5D485D57192B021A8765C0AF5 /* LookinTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = A6D1CC45A7943BAD96C97D9225C9021D /* LookinTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D3DCD05B685A7CAF291C25D922B1831 /* HWPanModalPresentationController.m in Sources */ = {isa = PBXBuildFile; fileRef = F1FAB9A951323777D4A48D49725B9802 /* HWPanModalPresentationController.m */; }; + 1DB724891F1F6468BDB333369F667F39 /* HWPanModalPresentableHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A518E59A590CAA7BC0D3ADD4113D0AC /* HWPanModalPresentableHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1DC161351EBD409CC622E826340E4FD8 /* JXCategoryTitleVerticalZoomCell.h in Headers */ = {isa = PBXBuildFile; fileRef = ECE929CFE87E3E6402751CE58A6B7439 /* JXCategoryTitleVerticalZoomCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EA011B45EC780B434507AFB3D9647ED /* NSObject+MJCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 0157E81AF7D3A5016170216831D8914B /* NSObject+MJCoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EC3AEA15AE416A53357261B37C622BD /* LKS_TraceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DB0ECAE0D87D0608A8C30B2F77C3E87D /* LKS_TraceManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ECC5F320AEFB120081358B4FFB7442F /* NSString+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 275A97C0F153DC6504268701E357DFA9 /* NSString+MJExtension.m */; }; + 1ED0D560CC57BCED931C26E643B2A96A /* UIView+Empty.h in Headers */ = {isa = PBXBuildFile; fileRef = 705E1CDF6DBE2DA00E53E3F32DFE69FE /* UIView+Empty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EDC6F899051F0E858270F7556AF2F12 /* UIVisualEffectView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 05AA4A29A03BFDC3AF0BB640C3F32120 /* UIVisualEffectView+LookinServer.m */; }; + 1EDF5F5B68D4A76CE59D5B6CC7B6C469 /* LookinAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = B7B17C8F66F48EB638E0AF42D54F42F3 /* LookinAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F778CA18D1F4A50D9F15280B25D10EB /* JXCategoryTitleImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6878C06D99EA8CF7B773696E02B36205 /* JXCategoryTitleImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FD36A180D43C773D95D8E5BF719494C /* LookinDisplayItemDetail.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FC7E3E9FCD82B298D83EB141669B492 /* LookinDisplayItemDetail.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FDEA3FFA45F29C1331723E9579D66A5 /* LookinAutoLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = D1F2502AC8DD19068B26EF772154A729 /* LookinAutoLayoutConstraint.m */; }; + 2055774CD703B52DABFB1CC588394A94 /* MJExtension-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 34168E6315396E3BC8DB0C0D92135317 /* MJExtension-dummy.m */; }; + 20D5706AD3ED295B4FBACD8825DC3A1E /* JXPagerListRefreshView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E9F1FA14918710AF561794E295889C2 /* JXPagerListRefreshView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20D618EF3EA5E3BE96DA24D36E3CA9EF /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DE417BE9A31E93EC536EAA37DBDC145 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 20E738E52B4712385489A62374C74C7F /* Lookin_PTUSBHub.m in Sources */ = {isa = PBXBuildFile; fileRef = AEAA7AD51C8DC304F8BC9473ABFDE6EB /* Lookin_PTUSBHub.m */; }; + 20FBBC12322412237D48D3695D98E043 /* JXCategoryDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9ACCB7980F41D5919C5B1C6AE7A518B /* JXCategoryDotView.m */; }; + 2175B894008D948C762468307BA677B8 /* RTLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AD9FC9F1DFCA104E54D6E4547D96356D /* RTLManager.m */; }; + 2210A1E405AB21104E7AF86D05C8AD39 /* LYEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = B7C6325AEC2E86B0B251C3EB931247DD /* LYEmptyView.m */; }; + 22516EA77E7120000632C30BD9A03927 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 5ED944F2FDEEB1DA10261DC24BC5A158 /* UIScrollView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22C38AE7AB145224FF646303AFED11D2 /* JXCategoryDotCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 44F2EA17CF495B3C7801177736C26647 /* JXCategoryDotCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22F19B23471EE7840581A348EB735BD1 /* UIViewController+LayoutHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 44FDE6E0FD25622CBD1C32FE4FDD3698 /* UIViewController+LayoutHelper.m */; }; + 231A40F14D020AE2F61AA5C3289E6CF9 /* UITextView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 81D1208390281107018E2EF73BCE3B61 /* UITextView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2395CE03CE80FC5F9A7F61C48270618B /* JXCategoryViewAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C3A8528434F887418155966D871DFB /* JXCategoryViewAnimator.m */; }; + 2460C08042AF8B7D0492A062F755986E /* NSString+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 179ED378488E412DC29146DCB8F69511 /* NSString+Lookin.m */; }; + 24E8E4ED0B5D988E3346E6638619F4E4 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AC1BE167B4F437B66364BE2F9827F10 /* SDImageFrame.m */; }; + 24E963C1D6245F98BAC8A0ACCB7DE987 /* NSBundle+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = ACBB0C1BA927BCF08DA6871143832DFE /* NSBundle+MJRefresh.m */; }; + 2567FE276DB76481DEFC7DDFE7D775CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 261C31F4038EC00D5961218C97905E21 /* LookinConnectionResponseAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = E654B5C45A42A75AB020868F1B5828B3 /* LookinConnectionResponseAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 266352AA446DAE8C9502E83810C174D9 /* JXCategoryImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 60960D0EF4A92968C18A9FF56584EA1B /* JXCategoryImageView.m */; }; + 27212D06F5EDE3BB10264D93075B2275 /* LookinDashboardBlueprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FEEF3836D9713133E7AFBE1EA8D47DC /* LookinDashboardBlueprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27293E7084BFE6AF873BB233419CFA2D /* mz_strm_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 22EF64375E10367E8F309F38BC8EC17B /* mz_strm_mem.c */; }; + 2759D8D4FCE58812ADECB348E369C6F0 /* LKS_MultiplatformAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 315FB86B28046E0FCE4DFBF33E80E881 /* LKS_MultiplatformAdapter.m */; }; + 27CC45A4ABE5B40723D35310D05CD146 /* LKS_EventHandlerMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 176E7D816EC787D976C5ACA3E34D42FB /* LKS_EventHandlerMaker.m */; }; + 288CD3416B265CAC1300D7938167AE66 /* MJPropertyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = F07066B7EBC44F24F83DB2951BA2D805 /* MJPropertyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 288D796F3F7B9F42690E24A3B1018B2C /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 67504807CDF89710526929533D4BA24D /* SDImageIOAnimatedCoder.m */; }; + 28BA9702905AA2B4C1E9E4878032D4E4 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 496191DAB3633628753F592D2757EC69 /* MJRefreshConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29F7F0E98FD26A96364DBACD7D5F237A /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BEABBD34E483D264740E6B0459E003D /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2A24F241D7D74FF6DEA953F9DD49391C /* LKS_EventHandlerMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = C4C0F3F15553F501197C49C0CCA3C71B /* LKS_EventHandlerMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CDC7B9EAD356E35FEAF526EEA6A8E91 /* LookinWeakContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 00DA480EB7624092ED2636F89F005350 /* LookinWeakContainer.m */; }; + 2D0E2E3CDCB12399497B4F31D4C20E3E /* HWShoppingCartPresentingAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = CEFD754D5929FD7A8119DC60B6F1E309 /* HWShoppingCartPresentingAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DC44A09A6C9D6DC7D1BDA2DFCF99EE3 /* MJRefreshConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F462FDD4C59AB4FFC71791984996458 /* MJRefreshConfig.m */; }; + 2DDA5F044BC698BC5D48A7CFDDBF71E3 /* LookinAttributeModification.m in Sources */ = {isa = PBXBuildFile; fileRef = 923CAFFF098ECF44FC1958880D856006 /* LookinAttributeModification.m */; }; + 2DDD48230ED9E8068C7E439D79B99A8E /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3016074F4F1A2D4E18C044550651536D /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2E86A7C77E43AEA4697979F1F848E68D /* LKS_RequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 8512889E3BBE8E06C30815D98480A1FE /* LKS_RequestHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EC1750C894F036194B90CFD26072B0C /* FLAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D924634BFAF263689076CBD968A17D1B /* FLAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EC7BA321016EC71EA595E4BAF0B7E8B /* JXCategoryDotCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 41507ECEBFBFE8748A3A5C6FD2DE2BDF /* JXCategoryDotCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EDA227454079ED3F6371BF34AFD4735 /* JXCategoryIndicatorCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5131824FAE2ADD647AE8C54EC334E280 /* JXCategoryIndicatorCellModel.m */; }; + 2EFF1EFA2FF0D2F1AE44A9DDBB932425 /* UIScrollView+EmptyDataSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CB08E6A37B7A2EAC285B505C385ABE /* UIScrollView+EmptyDataSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F6D9BEA582A2DBB70A6C3B2FC2DB91E /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B992D5E26C32247C4C94C9861F3527E7 /* SDWebImageDownloaderResponseModifier.m */; }; + 30AAA9DEB7BB5E2B7F578499D01B0AA4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 3111CEA93C868CA68CBD351C934FEB80 /* LSTPopView.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D3CABC7E918DC0ACB269749E4C3EBB /* LSTPopView.m */; }; + 3127F22BF0A5465D472669272D586BDC /* HWPanModalIndicatorProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = D6D93409F6A6BDA4C7CE4B8E57F61151 /* HWPanModalIndicatorProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3187FF0C251D1B78BE87F64F6F6E944A /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 26919AE8BCA76133F2F1C43FD19CC76C /* SDWebImageTransition.m */; }; + 31DC2EC78AD1F8241AE6051EF9E73B0A /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = C59FCAF4FF4CBD0C5C0DDF43DA90219F /* SDWebImageDefine.m */; }; + 31FA8264AA5553AB85039530B1FB8C4B /* JXCategoryNumberCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 60FD104CFB0C8648AF5171590639AB74 /* JXCategoryNumberCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 320DE42AF3CFE11FF785FEB1A7E6547B /* SDImageFramePool.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2EFB6E13CC9AA252123FA37B490F29 /* SDImageFramePool.m */; }; + 321F87DA34863DC5C977323BAEDB2B55 /* NSObject+MJCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = C09AA983D9F8A9C0C58FF8C1F1A0F2A5 /* NSObject+MJCoding.m */; }; + 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E7D7CDC1DC8DD6D7A6DD095CADEBE100 /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; }; - 32ACEDCEBE0507A82D6323114A1C74F1 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B5075BB968E268BB5D61B393C333DB4 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32F2B91621A2F8F9AD7C8E2B224D73F6 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = E38A10934CB29F9B2C75A0785209FA84 /* SDWebImageDownloaderDecryptor.m */; }; - 32FF240AE9443A1D2CFE27F50B55F591 /* LKS_MultiplatformAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = EDA0AA2D50C091E5400CDFDEC4B5B802 /* LKS_MultiplatformAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 332F2099D726E75CEFAF1F734104A066 /* LookinWeakContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = B0922492568B0DD6D1F92C0E3B3A53A1 /* LookinWeakContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3331A013D48A5063B483A51B7E9068ED /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA3E73CFAE53223D9EC3DE4B0794DB06 /* AFURLSessionManager.m */; }; - 33D3587AF629B2FA21554DA002D6ACB8 /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DFE214BE294126C1B4FFE49DDADA7AEE /* SDImageCachesManager.m */; }; - 34B28D4F0168194B6EFAC0520EB7A7F4 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = B09C6285E70223CDED72989080A8442A /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 353C1D03325B8F3E65F985DA29245F18 /* UIViewController+LayoutHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC211B96CB1A7D40B3203E4778066C9 /* UIViewController+LayoutHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35D42759A562C482EA5DF574F75CF3B8 /* NSArray+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 852A42FAC0EA5F64033033841A03891A /* NSArray+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3679603CE8336E00A0BFAA39E10A92D0 /* HWPanModalShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 568F43CF567335FABEC4825ED4776B19 /* HWPanModalShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 36B3F095DFFC8D2AF2C0A8C523173927 /* HWPanModalContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 091DAAA7597B1233173C3BB1DC8D1D79 /* HWPanModalContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 36F4B09E7C71DCC5CEC6057814033C37 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 36BEAD7507B8644D14D46C852A6EF20B /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3777CD89D444CBBB48AE323B303F3FC7 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77F4C0466DFC43C56F1D982F88EF74A0 /* ImageIO.framework */; }; - 37B890ABDC7DD441E6AA662325D412E6 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = FD61DA71A7253ED59D65D424C86E2C50 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3800EA1B83FDE869FB2E4B049F519962 /* UIViewController+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7F47A09BE728487DF546FE00CA555E /* UIViewController+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 381E0DBE152CA0D9C66310CB77A20A83 /* HWPanModalInteractiveAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 74751305705DEA03873DFA2AF4DDC9B7 /* HWPanModalInteractiveAnimator.m */; }; - 38938E604A7D708E6378A44063EF3512 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FB718B97DF8D94DCF736C973F8184652 /* UIImageView+WebCache.m */; }; - 392F62298E0D8C669229E132D791BBF5 /* UIImageView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = DA0C012CAB8552E7EA8382B0E5D6B738 /* UIImageView+LookinServer.m */; }; - 3A1AD84C0DC3C256418CC46739024E96 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 98B3D67E4B164109B9B94A959496BA25 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 38C2193309DE8B485EA6F0495C08B115 /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B1C72DC480AB19BD55B6275750D62FE /* NSSet+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = C1D06F4343D9C630BC102E7BCD9CECCF /* NSSet+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B62431BEF820E7FC779F344AB2A1D17 /* JXCategoryIndicatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = B49F76B93F72D361782D7DA99B65ADC9 /* JXCategoryIndicatorLineView.m */; }; - 3B8EDFF69A68ABD3735E0C6931CA5C95 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1612A7E2EB4D912BD038AFA9FAE11CFD /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BB69CB142D744367868F834912993CB /* UITextField+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = C64A52A00F5D8A13BA6BD40D1834BF56 /* UITextField+LookinServer.m */; }; - 3BD85ED8999015326D93D8EEADCCF910 /* HWPanModalPresentationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1724C0944D7BC65545806EE9EDED203D /* HWPanModalPresentationDelegate.m */; }; - 3C7815EEC599DD7D42FDEF19B2FF1563 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = FD3C0DF69EC6CFA1DD8299F62B1A84FB /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C7EAECB8C573E714C818BA04EB33773 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 517D8EDC9F4BA34E4E4060247125B56D /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C8F2F868D0C361CAF43E53CDB8EB631 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = BD430BA3E5DB115A0F8BF9D6110923AE /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CA9E838F014DC32CFCF6AD36F5D7E58 /* HWPanModalInteractiveAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 47A97040129EEE8B96AEEA0A9B73DA45 /* HWPanModalInteractiveAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CE13969772F4180701A575FAB98E978 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B4319C3394898C8897D6580DAC5A5124 /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D0BBFEC1921CE71BC240DC18D8BE540 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = C45DF4498F0949CD4F02FA86BFE50D93 /* SDImageTransformer.m */; }; - 3E3D09700A62280A9EB8D65B97335ED8 /* LKS_CustomDisplayItemsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = C19EBB7B5E5A5B4CB83F93B794EA02A1 /* LKS_CustomDisplayItemsMaker.m */; }; - 3E982309E295BB31C065D62750D0F1FD /* UIView+LSTPV.h in Headers */ = {isa = PBXBuildFile; fileRef = 6757029D58C1BFD772BCC87D14A52E39 /* UIView+LSTPV.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FF7252DD60182221BB1E5A167C41A07 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B758502F7753329D591359BA2747831 /* UIProgressView+AFNetworking.m */; }; - 40AD5D0AB3ABF7F3A5A4A98BC5B84419 /* LookinAttributesSection.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE21A3C562355122DA705E505CCA673 /* LookinAttributesSection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 416DA8B2997381F954DBA6E6A53DA4A2 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 928339E7523C1267D5DF15E548454A5E /* NSData+ImageContentType.m */; }; - 41A4AAE7E6024E7AAB83DD22FB42D34D /* UIColor+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = FED91C88820F2942B3A007C5E5D17ACB /* UIColor+LookinServer.m */; }; - 425C9EA28FBEB7F7FC09A3F4A88C5955 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = A4F1299F85FD74B081B5C5F85EF530B7 /* SDWebImageError.m */; }; - 4281CC31F4D4EAE690F999C778F17E5B /* JXCategoryViewAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF761C99D422AE106C31A4A7AE469C7 /* JXCategoryViewAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 431023914A5D2653ABAE7AB54880C9AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 4334CCEA5B7EA16A4EF26702D287CB07 /* UIScrollView+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BDFAC11D184E7F4498FC12FE0AFDCFC /* UIScrollView+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4424E7517B86FE622BCD3D5040FC579C /* JXCategoryTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CF1A36FA548FCE3A4F7DA66625E9583 /* JXCategoryTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 16308A5AF08E401B61B68CCD953A0528 /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 447BBB1BCA8E0F2D23634888BED6DA81 /* LookinDashboardBlueprint.m in Sources */ = {isa = PBXBuildFile; fileRef = 73A2C1D7BD2A650246BEE1A00F6D836C /* LookinDashboardBlueprint.m */; }; - 44CD842019B1CEA681F820F37A30B7C4 /* SDImageFramePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 449CCE39A5A9EA789B9A284113D1025E /* SDImageFramePool.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4503182D5F8EF2F02609862026D2D455 /* HWVisualEffectView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E270235979252FF388A0C6D1E54966D /* HWVisualEffectView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 29792A8AE7CB7444FE7BA20424B814AD /* MJRefreshStateTrailer.m */; }; - 4571A0EA37DC84F39E3830D38A1531AB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */; }; - 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = F32DF0242A37C60B9E8BEDC175125BB2 /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 464A0100327C8531D86BDC31737CCF75 /* LookinAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DF85367F662269F3652AFC693AA2B00F /* LookinAppInfo.m */; }; - 4688743B7B845309486559EB7BD5D147 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = B87895ABF5221A865DF2D53247763F89 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BBA58A99F7E528A8D41BD96706230160 /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47C6C10BB05445BCB8CBCA4DADE7E933 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 48916DE9521F627589300512ECC2D4A5 /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 53155231B4EB5B29274A0546D6F39B91 /* NSButton+WebCache.m */; }; - 4A15ABB502D625EBE3E63100664AB822 /* LookinCodingValueType.h in Headers */ = {isa = PBXBuildFile; fileRef = 99712B41FFAFC24C5F649A94D8DD7FFE /* LookinCodingValueType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A2D7878579537881DD3859B3359F702 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 638488B4F5FF9C67F848A841B1A34765 /* CoreGraphics.framework */; }; - 4ACC15DF96D179E48E4276AE3C540C7C /* KeyValueObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = A2350DF4D8FE6C892E64B8C644667527 /* KeyValueObserver.m */; }; - 4B2C2AE16AE3DDA7417AFCF7952588F1 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F5507B4A6BD90BF5F74B1AAC009AD90 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 4C8C34A09D61A3881DFB1A544A2CA2A5 /* JXCategoryFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C9E2AC9C9AE14EBBFDCDBBA925613E4 /* JXCategoryFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D2C79AB2D24CFEC864F08D913CE7692 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 03700B93F7A3FF6F3675D80E5DB1C1C7 /* SDImageCodersManager.m */; }; - 4DA2C6099343CD55160ECB3EBDDFE1DF /* NSObject+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A2BDE1ACE119E645C72F92B4CCAECF4 /* NSObject+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B4792E0E693278C27DB918B70E58272 /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4DD9F4BAA95C3527A660D3AAD055CF1E /* HWPanModalContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = E6CAC4483459A4704E779D629644670B /* HWPanModalContentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E964FFE29CFF8613C0029C913F39A05 /* LKS_InbuiltAttrModificationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8796E86BD11BC29D00EED72E50AE91 /* LKS_InbuiltAttrModificationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EC8DBADA7BB954276351A639EB4398D /* UIBlurEffect+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = C41AE199679E3EEC03FA1272FE103027 /* UIBlurEffect+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4ECE7F80A917130DE4045E25D741EAF9 /* JXCategoryTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A750F053AB9B0B60CBF456ED577A9 /* JXCategoryTitleCellModel.m */; }; - 4ED05DB3E43FF6AE1FA22130B2B50F05 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 0055AF44029FABEF5E29D1BC1B86CC15 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 50096BAC0F3270FB111E76D32714E579 /* Image+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = C6553D3214536278C24D990CC36267F3 /* Image+Lookin.m */; }; - 506FC58999564A737C745F2590E9B4D5 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FB614FC70886C761E2BA7E9C7E7F2D88 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5106193FDEA44A08AAAAB9B8A227CBE9 /* HWPanModalPanGestureDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F764EB4004D4A21398D072493BD19D56 /* HWPanModalPanGestureDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5111A0A0934551CD2B9DDB1A1CA79FA7 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = C94F3031AB6C5451E9610DBD24FE9029 /* SDAnimatedImageRep.m */; }; - 512B9661FC34235E0EEB3A6D3E319B88 /* MJPropertyType.m in Sources */ = {isa = PBXBuildFile; fileRef = 073DE0C455B2CE33A0FBA3C6ECF4F8CF /* MJPropertyType.m */; }; - 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 70021D526E8906DE61E9D2D0F92A78C3 /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5174DD2019966DFDC21B8864453ED3DE /* NSObject+MJClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D149C2EB765D348E439D96EC2A80A04 /* NSObject+MJClass.m */; }; - 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 572433DB55AF2085E2E4D419FCE37679 /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 526485EF6D2B62B24DB59122FB94BD42 /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = F947DB2E34F4112ED83356B8AA944880 /* SDDeviceHelper.m */; }; - 52E60EE26D065DB63D272298AC8867DF /* JXCategoryTitleVerticalZoomView.h in Headers */ = {isa = PBXBuildFile; fileRef = 996C55702A2E4E7B3785C0C5454598C9 /* JXCategoryTitleVerticalZoomView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5308E660E723C11E7691D311FD59C459 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 1679E08A4A241FB86455E71FDFB20D9F /* SDDisplayLink.m */; }; - 53433003112C4FE271EC985803862B61 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B4F7FC0CFCBE2143A4999C2F356D2B47 /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53C1722650FCAB2637867D0DC31FC3CB /* Lookin_PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = 210B700E8324769F741C26126E6B1F4A /* Lookin_PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 541AD3B0F5EA216EE730ECC6E8B84C31 /* HWPanModalPresentationAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 831897EBD9EF72C4D55D02DE399C410A /* HWPanModalPresentationAnimator.m */; }; - 546DE9D8142C6D8554E083C6FD65D0BE /* JXCategoryIndicatorTriangleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B766998FBEAD558A15F06134D5A9335 /* JXCategoryIndicatorTriangleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5490C03887ACF6C4EAC25ADFBB509CE5 /* NSSet+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = E312EC8FB74A492C6D5A647700644AC4 /* NSSet+Lookin.m */; }; - 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 8638AEC16F5A3F7D05EF0F7C39544261 /* MJRefreshConst.m */; }; - 55910DBCDF99E39955BE01EAD8251081 /* JXCategoryImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C9A23E37AE09BB9DC1BC766BD3A6AA /* JXCategoryImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55F7C7F055A18044497F8C88CAE34118 /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = EE9E5D3590E1EC14CD269A8B340CE3F0 /* SDImageCachesManagerOperation.m */; }; - 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = DE7E60B5B6A0850596F935D95CAFE167 /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 564714D075CF51356D3D8437846AA6EB /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = DE378B71C4559C86FA84F1AB2F15BD03 /* AFURLRequestSerialization.m */; }; - 56D8A7EAE4D72FF6C23421CAB6F21504 /* MJPropertyType.h in Headers */ = {isa = PBXBuildFile; fileRef = A0329494F5B3BBF4A9C54DD83622388B /* MJPropertyType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56E800EB3B2BE8AE0BA45A30974D7920 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 07001E763AE097A75E1AFBEB80197373 /* Masonry-dummy.m */; }; - 56F1B543BC54204336CB5E50B60F719F /* Color+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BE10EB8B74E3D1DE4172EF863BC22F8 /* Color+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5735091665AC18FAD028EB68786A85AE /* LKS_CustomAttrGroupsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FF07E10C8C0B816653B6836CCFFD04 /* LKS_CustomAttrGroupsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 579DDC4FE78455D88E0350C3268D96C4 /* JXCategoryIndicatorComponentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D490F15AED6B55BCD64F4D5193A9375 /* JXCategoryIndicatorComponentView.m */; }; - 58852265A6A355CDF8D25BCD71F54F3D /* Pods-keyBoard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 969A9A842778EFB5D62826500DFF4E11 /* Pods-keyBoard-dummy.m */; }; - 58F7CE37BB4CB3BE806B68A502E6E1A7 /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = A92BC89EBEE6C3CE964CA994B506EA43 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 596180E0EC9F46D12BA840DC4AA62659 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 0451FF8513ABCE79BA473B450192579B /* UIImage+MemoryCacheCost.m */; }; - 597E390C0BBB75B8045B651C487C2034 /* SDImageAWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = BC30CFC7778FEADF9DCBF0A4ABA1769C /* SDImageAWebPCoder.m */; }; - 5A6D3BE92C77ED70C397567996DFAEB9 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = A11C415AC80BAC0B06685E1F8AC7C7C8 /* AFHTTPSessionManager.m */; }; - 5A8BC91257FF6B36237BF09A7A6EADF6 /* LookinObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CFC8ED8D34DD2679124911EB0F515607 /* LookinObject.m */; }; - 5AF22814CD055B553AD9D78BE54B94E1 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = EB461C49F04DBE8D8B709BDAA4911ADC /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B08596E856E4CC2F34A8A2372F9F764 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E34DAE4904CE87FBB70688EA36DF9D3 /* NSArray+MASAdditions.m */; }; - 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C065D632F2F749CBD48B178A68B1631 /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C64D6AC35DE27CAD74CA154541AF1C9 /* MJRefreshTrailer.m */; }; - 5C8279C226EB028B044C5A0F4AC5A91A /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E4BFFACAA945CC17167910BF3C319571 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5CAB535753B28B463140F421E9B00136 /* JXCategoryIndicatorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 913F72595D3AEFAFE006FD96A54FD8DA /* JXCategoryIndicatorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D0DEC179A7B4143769C663082E2662A /* LKS_ExportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C47102257C212ED978684D39466579B /* LKS_ExportManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DCBA14510E091D6A1CE499B08B794B5 /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 429004AF40A48DE835234068590E6A94 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = F8CEEFBE4317D04F4FD181E44C90A119 /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E10328A83E05D0015D7459FAAEF121D /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = D444527057532BACBF8EC98BE62D3E03 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EE53074B8A35D48AB76CAF38C88A37A /* JXCategoryView.h in Headers */ = {isa = PBXBuildFile; fileRef = 892976CDE28E9BEF86BFABB5F84E72F6 /* JXCategoryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EFCAC311A0285F51E8B1B0F7416D7D8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 5F45735DF355530CC955066D3C007E19 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB329DC3D8A252CA69C19DAF330A784 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F5426608460A8B17C1AE5C2351BAA19 /* UIScrollView+EmptyDataSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 45FCB10C5ADD911EC17F1E6BAAFE9892 /* UIScrollView+EmptyDataSet.m */; }; - 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 60696FE70F42B1A0CD7B0614C2A2F16C /* UIView+MJExtension.m */; }; - 6002CB94684D7C786700D2A294146AEC /* Color+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B2681504ECC11F7B0563ECF0A1FDDFA /* Color+Lookin.m */; }; - 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 7718D3A1CB256B2263AD76B8EFDC9B86 /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61507E402F1F7C58BF119995A0479A22 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 986324EA3CC9A3BDF0E5C7B1763862EE /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 616A8338C42FB01748DF1BDDA944858D /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F8CCC7FB49429A8093BC8191C6474D58 /* UIView+WebCache.m */; }; - 61857C821395B868C65A8FFE4DA1B4E3 /* MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 13AC6B7EC0E45B7BC751451206C8C575 /* MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61EAFBCDC83B2C603918B3C9D9A73A18 /* LookinConnectionAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 10DBEAC7DAAC95D5A947ACA061058C0B /* LookinConnectionAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6204F3E4E75772BB6CAB13CD53D9D93E /* JXPagerSmoothView.m in Sources */ = {isa = PBXBuildFile; fileRef = CF46C0579CB3C54966C0F025487DB215 /* JXPagerSmoothView.m */; }; - 620A0FFFDE5AEF215E28135566106BA4 /* JXCategoryBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 39D939E1825294C23871CD06F0A1E6A2 /* JXCategoryBaseView.m */; }; - 62FE895DF9D65A2955A275D909ECBE18 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 883434364AD74D3F77868A0CF2FB7A09 /* SDAnimatedImageView.m */; }; - 6525ECE1CAFC1259F9E6E5FDDE6CF218 /* UIVisualEffectView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ABEB6B0A44AC8BCBC6CB1A8A8A9A0FF /* UIVisualEffectView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 659D38386A3E09422812283BF27D71D1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 6630C0B541E50903F9AD81FD847CFE7A /* JXCategoryIndicatorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D68722AFBA338282E0B3C89AFE0F83AC /* JXCategoryIndicatorBackgroundView.m */; }; - 67178A8153B1A2F1D0D544B8093E23C5 /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C2A9B920BB92B872BA2AC2EA086220 /* SDAnimatedImageView+WebCache.m */; }; - 676775CB29378BB6CA3CA5992E9C6A99 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = EF1815C1F114106321929B2F631067E5 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 67FCC0F9B42B1C20A66E99A3D56BED18 /* LookinStaticAsyncUpdateTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 09799A44FC43F3184E20B590CC73FFC7 /* LookinStaticAsyncUpdateTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 683D708C157C95ADB467BDD2230BD4E3 /* UITextField+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2F2FDA20E8BC9884D1E9ED05D83DDF /* UITextField+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 68C3E98F8B9D6035962F29AE025DA891 /* UIImage+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 20C453B83E1025092DAD587080018B43 /* UIImage+LookinServer.m */; }; - 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9C6ED309FB0F6481FF6639AA9C417B /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 694B8697854A776E32032999B2EF1FEA /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E5C516541F7C7AC40E990C05307FEEF /* UIImage+Metadata.m */; }; - 6960FF2C4D61A09722930B33B1C7135D /* LKS_ObjectRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5214881D82D6C122FB4D3B471F9D93 /* LKS_ObjectRegistry.m */; }; - 69A06A02F52EB26259FAD1DF6B121BE1 /* SDCallbackQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD134826FCB54429F667B8DBF296710 /* SDCallbackQueue.m */; }; - 69AB6A513D5F36D7360FEF4FDA1D60D0 /* UIView+WebCacheState.h in Headers */ = {isa = PBXBuildFile; fileRef = 919C930C4E0162377E3C95D0F6F11177 /* UIView+WebCacheState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = DE0511947F57D1CF3F274B6414AE449B /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69F6E66A089C40FB1063DE15499BCFDE /* LKS_Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D2B4D757199E020DE43661B60EB2819 /* LKS_Helper.m */; }; - 6A19379E3B0370EDA447743C9B1A1379 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 855BA7199BD9AC7B4687AF3F66E21279 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B0978C9398336656EE309E62060AEAB /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 87B2A7EE05A20B3EDDFE045A6B7911E5 /* SDImageAssetManager.m */; }; - 6B5C3592B5E911E833D067D0BC785B1A /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D8BE2762FA18EF88A5BAD861C739B02 /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B9D333C18DDBF4E7CC889F7FDE05EEA /* JXCategoryDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EFBD2E7A88C44123D980C42CB8702A4 /* JXCategoryDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BC2A615678C8BAE9F34ABA68BFDEF78 /* LKS_AttrModificationPatchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DEFCE7D8BFD813860A380F7F5B5EB401 /* LKS_AttrModificationPatchHandler.m */; }; - 6BE86A0FFB0D69C6098CC75E1FB4E8B5 /* JXCategoryIndicatorCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EFCD05B81004D2C239BFBEBEE4DC3D5 /* JXCategoryIndicatorCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BF5DB46D42D8B9D536C870EC77BF4A3 /* JXCategoryIndicatorBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9FBE6B4C01D1445DBFC466AEA64E5D8 /* JXCategoryIndicatorBallView.m */; }; - 6C57809DCEA4B6C0CA79918A69FD75DE /* LKS_ConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DA49453EBB9C905AD701D17F18479113 /* LKS_ConnectionManager.m */; }; - 6C76DB1B99B98C951F687DE80FE6F463 /* JXPagerListRefreshView.m in Sources */ = {isa = PBXBuildFile; fileRef = 659E098AEC86E789470E344EB23EC1DD /* JXPagerListRefreshView.m */; }; - 6C85CA8D99E50C137D056B6057DAC58A /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 80E9CB1F62E65A837FF5E47B2FC3ECA1 /* UIRefreshControl+AFNetworking.m */; }; - 6CA0B4A9E7B2957063163BC673F355CD /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = ED87146FC94850F3891F867B1931F652 /* AFAutoPurgingImageCache.m */; }; - 6CE8701D161A4BC0860FAF3951762A34 /* LookinHierarchyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A1C13D0C9F5E8ED93D0398C379507C1 /* LookinHierarchyFile.m */; }; - 6D637D02F5EE50D21C8548061956C898 /* UIViewController+Presentation.h in Headers */ = {isa = PBXBuildFile; fileRef = DB3B6BBCBC04C438F099DE5DEC15C188 /* UIViewController+Presentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6021531912761F1BDBFE14A61784B26D /* MJRefreshAutoNormalFooter.m */; }; - 6E4DE8085E69AD1DDB49B059DCE286DB /* HWBackgroundConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F0DA836C065C821DDDE100A36B1C087 /* HWBackgroundConfig.m */; }; - 6E66305665DBCFBCF5B2480BF705D500 /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 59CF9D4B8C92110B4BC1E1792E4AAEA5 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EFC0630CB2761A2B1FC47176CCD62D1 /* LookinCustomDisplayItemInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DDFB85C3FF1851267A20FACB64B4497 /* LookinCustomDisplayItemInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EFEEE3AE22E97DCEC4F5A3B88F56FC7 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E1D06297B630EA32D1369915C0CB97 /* SDImageLoader.m */; }; - 6F3637EE643EABB1DE9212EA68649A64 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 343C42E325F84441C510AF8DEE739ADF /* UIColor+SDHexString.m */; }; - 6F75FDB9BE37C9A8473F97B1696B5D09 /* JXCategoryListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9CF33220A4EDFF59077DE1F83605414 /* JXCategoryListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7053A9EB6335BEAC9EFDF2D5320E6E2A /* UIView+HW_Frame.m in Sources */ = {isa = PBXBuildFile; fileRef = ECA7ED760D61427E9195A2805DB71798 /* UIView+HW_Frame.m */; }; - 7074EA7FCC90B4967A437F5C43496828 /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F6ED51FA52849CB3D9D44DD45396E2 /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 70D30BC7134E3C8006BF0B6A4B438057 /* JXCategoryTitleImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 524557CADCF9674C470A7B1764594AEC /* JXCategoryTitleImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 711D32EF4A9901567A488291603BF906 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = EE827BC4171898B142EBDE3C763AFC7F /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 713D162A627185DA38847832AB5BDA44 /* LSTPopView.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7D4CE7BA063A9CA415CD86C8825985 /* LSTPopView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71538A1D21015F459964BA625D5EE90A /* NSObject+MJClass.h in Headers */ = {isa = PBXBuildFile; fileRef = DEDA7D852A16AEB2E4133F8138BB40A3 /* NSObject+MJClass.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 717F76926C7BCB5B10C3037AD9239084 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04094D9F916F0B3E8A409CF5EEC45FCC /* SDImageIOCoder.m */; }; - 71BEB1D9532900291A5A24B1C038516F /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = DC85B08C4C82F12C3AA7970FE44E1D9F /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 71F2B8CBB99087F348C472230200586F /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 46F71F9F19999F6D4F186847FA3CC8F7 /* SDGraphicsImageRenderer.m */; }; - 723D1925C39764631641D0DBFDF6833B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 724991CA89C46BAFBC08264D94D86484 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4228538168305A12A3465600D6FA372A /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7276688DEA6FB95D4DEB7F3D019C3958 /* HWPageSheetPresentingAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EC115C953943E0027F6AD5AFEE41A30 /* HWPageSheetPresentingAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 728107C8D8479AADE986F4EC23233DC3 /* UIScrollView+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 330AFA4D280CBB2EE073DCC942489EAB /* UIScrollView+Helper.m */; }; - 73B19D03C7B7DF1C944544165F742D82 /* HWPanModalContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BED1E57A7780D7944D806EF7FB48648 /* HWPanModalContainerView.m */; }; - 743BBA00940EF6877AE1D5014755D0D6 /* UIView+LYExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B4EEA7B77703F45AB157AC651CEF4EA /* UIView+LYExtension.m */; }; - 74ABF19BACB99F862DB62AA14508AFA0 /* LookinAttributesGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B1EDD790AB62D80A6CA23D5272938B /* LookinAttributesGroup.m */; }; - 74C474676C69A80BEC29B0F55FDF4D19 /* UIView+WebCacheState.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4925A54FF503F963785651A98856BD /* UIView+WebCacheState.m */; }; - 74E069F8C9E22C0E37F261A5AB03A613 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 6650E50E5FAFFD61FC973E5A0D5C8398 /* SDWebImageDownloaderConfig.m */; }; - 752822FE3F5092322D18FEC4533B79A9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = B453C947A0F7F0133F2F98F9E8EF1E43 /* SDWebImageDownloader.m */; }; - 75771A97B77FA30A0175A81B480F80EF /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 317AEF64C0405ADA2DB47569A6D72FC4 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76019F9FDD44B8F79261AD55C8728164 /* UIView+HW_Frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B0B272843C604B68C602DEE1AD3605F /* UIView+HW_Frame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76C8C631DF9AC2F667369EEA0CE46522 /* HWDimmedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F1705DF1CC5E82194523F85FE871354 /* HWDimmedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 772CF8E9CD02ECA4275B6173E2110E80 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = EBEEA0239556FEF194877FD307A4ADD6 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 780EDF2615923E89C179EB5A60D2DA41 /* JXCategoryCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 051A66FC7C22537DD150BA86539EC9D4 /* JXCategoryCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32ACEDCEBE0507A82D6323114A1C74F1 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C728326011B8B56DD213BF567030FBFE /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 32F2B91621A2F8F9AD7C8E2B224D73F6 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = EE90FB14799C3DB2688F525047622CE9 /* SDWebImageDownloaderDecryptor.m */; }; + 32FF240AE9443A1D2CFE27F50B55F591 /* LKS_MultiplatformAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3496B4EAE2849B5A2A6E8BA7A3BDE3BD /* LKS_MultiplatformAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 332F2099D726E75CEFAF1F734104A066 /* LookinWeakContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 961E45DD758EA04F4F40485164C36376 /* LookinWeakContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3331A013D48A5063B483A51B7E9068ED /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C88B063885CBDBDC0D3C3C9C76FA86DA /* AFURLSessionManager.m */; }; + 33D3587AF629B2FA21554DA002D6ACB8 /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5947624C463587896B461DBD447D7C15 /* SDImageCachesManager.m */; }; + 34B28D4F0168194B6EFAC0520EB7A7F4 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = B818D4A1BAE22A9C619951DE8D9DB678 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 352E63E404CED072E7F714C52FF93E49 /* mz_compat.c in Sources */ = {isa = PBXBuildFile; fileRef = 96BD67303B109FB9C0AD4CB428F9076E /* mz_compat.c */; }; + 353C1D03325B8F3E65F985DA29245F18 /* UIViewController+LayoutHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 396248A5638A63D99C663B0185BD35D7 /* UIViewController+LayoutHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35D42759A562C482EA5DF574F75CF3B8 /* NSArray+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 587F3D57A14E0843D394318214FCF8B0 /* NSArray+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3679603CE8336E00A0BFAA39E10A92D0 /* HWPanModalShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = 67F81F7725B74024479124B6022DE5EC /* HWPanModalShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3683A04365A59519AAB2F47C5FA6FA3C /* mz_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = 304121A0D3C435F033B160ED27159497 /* mz_os_posix.c */; }; + 36B3F095DFFC8D2AF2C0A8C523173927 /* HWPanModalContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C4EB5EB615CEF1E6FA0038236EAACE1 /* HWPanModalContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 36F4B09E7C71DCC5CEC6057814033C37 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F6FB08AC59AE2DE3A3B140EA1EDF73E1 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 374FECA22750A2F7F17CA125C25DB352 /* mz_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 730E2207BC82D8C9886643147B12844A /* mz_compat.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3777CD89D444CBBB48AE323B303F3FC7 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DB48DB92D5E3A8823F80321C8C328B1 /* ImageIO.framework */; }; + 37B890ABDC7DD441E6AA662325D412E6 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D5348DE9248FE6D70D34D73A9774C83 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3800EA1B83FDE869FB2E4B049F519962 /* UIViewController+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = D76288639CA695867537E017B89F9AF4 /* UIViewController+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 381E0DBE152CA0D9C66310CB77A20A83 /* HWPanModalInteractiveAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F8CBF6DA35A241F4B3AC77D1A248B98 /* HWPanModalInteractiveAnimator.m */; }; + 38938E604A7D708E6378A44063EF3512 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C13E45D6A86AF887A2F349DE33857057 /* UIImageView+WebCache.m */; }; + 392F62298E0D8C669229E132D791BBF5 /* UIImageView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 747C20749A2BFC0F42CFCE05482B9D6B /* UIImageView+LookinServer.m */; }; + 3A1AD84C0DC3C256418CC46739024E96 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 08CC5A94403B3651B53F005A9D1B8C25 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 3A20FC446D75A777E76DAF7E416A4569 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 3A2FCB914F6EADED828FF05F7E9132AE /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = E9AB4D3B4239306FF89D7B36B4C586DE /* UIView+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B1C72DC480AB19BD55B6275750D62FE /* NSSet+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = E96F17B7717518537E81A1BBEB4DBC11 /* NSSet+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B62431BEF820E7FC779F344AB2A1D17 /* JXCategoryIndicatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B996B2DECA5BF4F051BF1653B667CC9 /* JXCategoryIndicatorLineView.m */; }; + 3B8EDFF69A68ABD3735E0C6931CA5C95 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F2A8BF7AE40248D692ACE5AE8354602 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BB69CB142D744367868F834912993CB /* UITextField+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 560B458A525AF32A2AB5C477CFBBDE88 /* UITextField+LookinServer.m */; }; + 3BD85ED8999015326D93D8EEADCCF910 /* HWPanModalPresentationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A0E2A2C243239D60767D58C2FC52F3E /* HWPanModalPresentationDelegate.m */; }; + 3C7815EEC599DD7D42FDEF19B2FF1563 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E2A5EB02370F6FF8A09BB7553CA3F36 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C7EAECB8C573E714C818BA04EB33773 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 61156FA5CCBB3614A39E37A50E301200 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C8F2F868D0C361CAF43E53CDB8EB631 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3698FC1368DA6E124367FE8947EF4A57 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CA9E838F014DC32CFCF6AD36F5D7E58 /* HWPanModalInteractiveAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CF646920821F69A3AE386E730ABBCDE /* HWPanModalInteractiveAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CE13969772F4180701A575FAB98E978 /* JXPagingView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FC6D402CF57CF9F6287E67BF1F1DA7E /* JXPagingView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D0BBFEC1921CE71BC240DC18D8BE540 /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ADF9561958D72382E9DB16372039071 /* SDImageTransformer.m */; }; + 3E3D09700A62280A9EB8D65B97335ED8 /* LKS_CustomDisplayItemsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = EF8000FD1EA99F68D7E5291991D79B0E /* LKS_CustomDisplayItemsMaker.m */; }; + 3E982309E295BB31C065D62750D0F1FD /* UIView+LSTPV.h in Headers */ = {isa = PBXBuildFile; fileRef = 47967249E6F0D4DE5940EB3E03FDDACA /* UIView+LSTPV.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FF7252DD60182221BB1E5A167C41A07 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 00141057F0C1BE712F66EE7FBD96487D /* UIProgressView+AFNetworking.m */; }; + 40AD5D0AB3ABF7F3A5A4A98BC5B84419 /* LookinAttributesSection.h in Headers */ = {isa = PBXBuildFile; fileRef = 16DD21F9DF416D56090211469D54E9D3 /* LookinAttributesSection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 416DA8B2997381F954DBA6E6A53DA4A2 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D21E1077C6E7A011517EEE18D2A29B /* NSData+ImageContentType.m */; }; + 41A4AAE7E6024E7AAB83DD22FB42D34D /* UIColor+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = AF674229C7D31D64E69F0EDA1C666B5E /* UIColor+LookinServer.m */; }; + 425C9EA28FBEB7F7FC09A3F4A88C5955 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CC1EDD3159361A7D64AA07E99E1F6E6 /* SDWebImageError.m */; }; + 4281CC31F4D4EAE690F999C778F17E5B /* JXCategoryViewAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = A4477E6E0B5BF098745477DF6B2DFDAD /* JXCategoryViewAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 431023914A5D2653ABAE7AB54880C9AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 4334CCEA5B7EA16A4EF26702D287CB07 /* UIScrollView+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE2293AF60119096F17C5A20EA09D4A /* UIScrollView+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4424E7517B86FE622BCD3D5040FC579C /* JXCategoryTitleCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CC3DB470C154D8612194B2A8D575210C /* JXCategoryTitleCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 442F468E261A1106C291BF52BDBF9DB7 /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B04332BED5C7D9C996558A46E0DF8C2 /* MJRefreshHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 447BBB1BCA8E0F2D23634888BED6DA81 /* LookinDashboardBlueprint.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B7FB400E636A49FA352DB030999083B /* LookinDashboardBlueprint.m */; }; + 44CD842019B1CEA681F820F37A30B7C4 /* SDImageFramePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AD0951BB7D145E5BD06DCD3F0945B14 /* SDImageFramePool.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4503182D5F8EF2F02609862026D2D455 /* HWVisualEffectView.h in Headers */ = {isa = PBXBuildFile; fileRef = FB793CF2D68D5ADBDD8489F5CBC07600 /* HWVisualEffectView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 452C940762F65B125C216F73B369F583 /* MJRefreshStateTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = AF02BE9AE63BC1D0DEC990CDDA7EB8C6 /* MJRefreshStateTrailer.m */; }; + 4569AD436BB87FA37A01C5C982F025A2 /* SSZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = BA0FC9A098AF47CC01D182E6B2146446 /* SSZipArchive.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4571A0EA37DC84F39E3830D38A1531AB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */; }; + 45E1583D7EF53489B82C4CA2AD1AD0CF /* MJRefreshBackFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5A891567A87544F380E7B7E4EC276D /* MJRefreshBackFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 464A0100327C8531D86BDC31737CCF75 /* LookinAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F07A3B81902A2108AA8BB142C97638F2 /* LookinAppInfo.m */; }; + 4688743B7B845309486559EB7BD5D147 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 19A25EB7993E1C0F7234107E1FB3F495 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 475B4F3E71C293065AAFDB1888696CF6 /* MJRefreshBackGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 54EF4753ED63F047DF0353076DCB7C08 /* MJRefreshBackGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47C6C10BB05445BCB8CBCA4DADE7E933 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 48916DE9521F627589300512ECC2D4A5 /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F51E9EA5F3AE984817B1537C8E36E04 /* NSButton+WebCache.m */; }; + 49900106BEFC9C1BEB3E96558C0C4AE8 /* mz_zip.h in Headers */ = {isa = PBXBuildFile; fileRef = E363F5B362D7EF73BAACDE270E7CE4F3 /* mz_zip.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4A15ABB502D625EBE3E63100664AB822 /* LookinCodingValueType.h in Headers */ = {isa = PBXBuildFile; fileRef = 230C407239A171B37B3DED270C128E42 /* LookinCodingValueType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A2D7878579537881DD3859B3359F702 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B039DC77C7D8D33CEAB56314AAFE04CB /* CoreGraphics.framework */; }; + 4ACC15DF96D179E48E4276AE3C540C7C /* KeyValueObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0C92B5F9D72F862E8457D7C22F73C8 /* KeyValueObserver.m */; }; + 4B2C2AE16AE3DDA7417AFCF7952588F1 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E5868297D4E2CFA69A3CFFA859113631 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 4C652DF3EC0F0F39B29287E72864FC11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 4C8A5ADD06D2DFC9E7FA2A1CA9DD565A /* mz_strm_pkcrypt.c in Sources */ = {isa = PBXBuildFile; fileRef = 6927E81FE85B83E8D8E4E87CC57F28DB /* mz_strm_pkcrypt.c */; }; + 4C8C34A09D61A3881DFB1A544A2CA2A5 /* JXCategoryFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 013838CC5F2B4FC390D28A911B5EF797 /* JXCategoryFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D2C79AB2D24CFEC864F08D913CE7692 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E46E5E8438AA5B00E625B784B187B8A3 /* SDImageCodersManager.m */; }; + 4DA2C6099343CD55160ECB3EBDDFE1DF /* NSObject+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = ED1158F9B24BF9550BB13ECF0F47E19C /* NSObject+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4DCA75BFE1558CE59DFC56607E49B3D2 /* MJRefreshConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = A28A16C5E14D9C1CD821421AF316D794 /* MJRefreshConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4DD9F4BAA95C3527A660D3AAD055CF1E /* HWPanModalContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF92FB29A700B0634F55358F1FC1D8BE /* HWPanModalContentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E56BA148170B3A6E7FA6D312B06C784 /* mz_zip_rw.h in Headers */ = {isa = PBXBuildFile; fileRef = B313FB2E02E6138E1628A481AF03A970 /* mz_zip_rw.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4E964FFE29CFF8613C0029C913F39A05 /* LKS_InbuiltAttrModificationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A0041C94BD88F8B62868FB3EF9609FB8 /* LKS_InbuiltAttrModificationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4EC8DBADA7BB954276351A639EB4398D /* UIBlurEffect+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A301C66E696681FADD2B5F1A72E77F /* UIBlurEffect+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4ECE7F80A917130DE4045E25D741EAF9 /* JXCategoryTitleCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 677A9795E43833ACFE4BEFACEB9C9E50 /* JXCategoryTitleCellModel.m */; }; + 4ED05DB3E43FF6AE1FA22130B2B50F05 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF0A8FDB47640450B4AD235DDCCFFE1 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50096BAC0F3270FB111E76D32714E579 /* Image+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 785B19DEFCB5992DCCD13268D7F0D558 /* Image+Lookin.m */; }; + 506FC58999564A737C745F2590E9B4D5 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 69FB2B06CB82B71B02944853E87357A2 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5106193FDEA44A08AAAAB9B8A227CBE9 /* HWPanModalPanGestureDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 932A9F898260C3AB0195DEBF202212CB /* HWPanModalPanGestureDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5111A0A0934551CD2B9DDB1A1CA79FA7 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 83833C719CDAC2C58CF7A1DF4575CF3A /* SDAnimatedImageRep.m */; }; + 512B9661FC34235E0EEB3A6D3E319B88 /* MJPropertyType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3280BDBC75CF4A431E722CC2EDCC3C1E /* MJPropertyType.m */; }; + 5163FC6D715F6881B1FA1AB13DCEF870 /* UICollectionViewLayout+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = EBD0F9A21DB6A84EAE5AFA4F4A502129 /* UICollectionViewLayout+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5174DD2019966DFDC21B8864453ED3DE /* NSObject+MJClass.m in Sources */ = {isa = PBXBuildFile; fileRef = D309D9F9D6EC63460F0FE974E2910D6A /* NSObject+MJClass.m */; }; + 523235228A1C021C67F2E3776A922DC5 /* MJRefreshTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = FB5CA715BCC731372742E4E5BA7AB20A /* MJRefreshTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 526485EF6D2B62B24DB59122FB94BD42 /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 50BADD121EA372277C8833D3686FA23C /* SDDeviceHelper.m */; }; + 52E60EE26D065DB63D272298AC8867DF /* JXCategoryTitleVerticalZoomView.h in Headers */ = {isa = PBXBuildFile; fileRef = 37B20E15FD376B168BFA0BEE0E4E8A49 /* JXCategoryTitleVerticalZoomView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5308E660E723C11E7691D311FD59C459 /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = AA35ACB38D9154B4D400113AFC90C3A4 /* SDDisplayLink.m */; }; + 53433003112C4FE271EC985803862B61 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 38BB10A60ABDA6EA5E356A40C65605AD /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53C1722650FCAB2637867D0DC31FC3CB /* Lookin_PTUSBHub.h in Headers */ = {isa = PBXBuildFile; fileRef = CA6877C7E2F08DD57E39B1630AB4D3CE /* Lookin_PTUSBHub.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53DB80F23F4881D7F7CB1816A74746D2 /* Pods-keyBoard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 969A9A842778EFB5D62826500DFF4E11 /* Pods-keyBoard-dummy.m */; }; + 541AD3B0F5EA216EE730ECC6E8B84C31 /* HWPanModalPresentationAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC4A2C833B1F76F40DA917134EB3399 /* HWPanModalPresentationAnimator.m */; }; + 546DE9D8142C6D8554E083C6FD65D0BE /* JXCategoryIndicatorTriangleView.h in Headers */ = {isa = PBXBuildFile; fileRef = CBBA1D54FD2ACBA6EE9FBDA18C9CE86E /* JXCategoryIndicatorTriangleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5490C03887ACF6C4EAC25ADFBB509CE5 /* NSSet+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 579D465907AF561A964E6215E3417CD6 /* NSSet+Lookin.m */; }; + 54E268C32915CF908E7AA776909B45EB /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 5977C1FD1130EB89CA34ABC7D62CE1AC /* MJRefreshConst.m */; }; + 55910DBCDF99E39955BE01EAD8251081 /* JXCategoryImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6139E37B1857BFE42F1D5F6D57F96F /* JXCategoryImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 55F7C7F055A18044497F8C88CAE34118 /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 341C14E47443E43EC0ED92B2C9C21AD2 /* SDImageCachesManagerOperation.m */; }; + 561420A20DC0A84258A902E9EB69A15A /* MJRefreshAutoFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 934B0D2215917C91E1CD517930AE99B6 /* MJRefreshAutoFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 564714D075CF51356D3D8437846AA6EB /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 5681D07EBA45EA9D44658A1C3CB089C1 /* AFURLRequestSerialization.m */; }; + 56D8A7EAE4D72FF6C23421CAB6F21504 /* MJPropertyType.h in Headers */ = {isa = PBXBuildFile; fileRef = D6461306EC2DB92B54F94A02C7BC779E /* MJPropertyType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56E800EB3B2BE8AE0BA45A30974D7920 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E101C495162815FB13CF5C0C63EF9A60 /* Masonry-dummy.m */; }; + 56F1B543BC54204336CB5E50B60F719F /* Color+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 265403DB3694F132F2DAC68999219865 /* Color+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5735091665AC18FAD028EB68786A85AE /* LKS_CustomAttrGroupsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 24999108D48C81C62429B11AA1ADA40D /* LKS_CustomAttrGroupsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 579DDC4FE78455D88E0350C3268D96C4 /* JXCategoryIndicatorComponentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A7A4B2B6111CA779A2758C944C3324D /* JXCategoryIndicatorComponentView.m */; }; + 58F7CE37BB4CB3BE806B68A502E6E1A7 /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C4D6472D5FBEDA9358021C134FFF24 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 596180E0EC9F46D12BA840DC4AA62659 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F55F2644DAEF4709F02F974A798912 /* UIImage+MemoryCacheCost.m */; }; + 597E390C0BBB75B8045B651C487C2034 /* SDImageAWebPCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 69407A17E565B223F10BB1553FE98A42 /* SDImageAWebPCoder.m */; }; + 5A6D3BE92C77ED70C397567996DFAEB9 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B4F570BBE31A067BEE366B96CD4A2232 /* AFHTTPSessionManager.m */; }; + 5A8BC91257FF6B36237BF09A7A6EADF6 /* LookinObject.m in Sources */ = {isa = PBXBuildFile; fileRef = DB1863C43548C48626DFDAA326CF57C0 /* LookinObject.m */; }; + 5AF22814CD055B553AD9D78BE54B94E1 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C1AD74CA456B29E515BEDEC9FD34222 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B08596E856E4CC2F34A8A2372F9F764 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8327BC57519C008047652BB3EFE469D3 /* NSArray+MASAdditions.m */; }; + 5BB6B99986FD7111B3AEBE931C7F507B /* MJRefreshAutoStateFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = DDA6A298E6B1C01B099D029ACA189FBA /* MJRefreshAutoStateFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BD5D9B8F61C124A62C75D9AC36A07BD /* MJRefreshTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A5D0F3A919514BFE451BC69BE009E6 /* MJRefreshTrailer.m */; }; + 5C8279C226EB028B044C5A0F4AC5A91A /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E3DA8682C6116031E80C1246AFE1DAAB /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 5CAB535753B28B463140F421E9B00136 /* JXCategoryIndicatorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BD0F786321DA91AA42CBCE576325DFC3 /* JXCategoryIndicatorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D0DEC179A7B4143769C663082E2662A /* LKS_ExportManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0F71330D13A74D3AEBCFB9914E77E0 /* LKS_ExportManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DCBA14510E091D6A1CE499B08B794B5 /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A07E53A5646D6D6AF061C079709FE6D /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DFCBADAC7D0FAC82C84A6C8E7BF1DA6 /* MJRefreshStateHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 312405E920D8F27B2ABAD5C7C5047F50 /* MJRefreshStateHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E10328A83E05D0015D7459FAAEF121D /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E417B8A4CDDEA0E4F162074EAA5D370 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5EE53074B8A35D48AB76CAF38C88A37A /* JXCategoryView.h in Headers */ = {isa = PBXBuildFile; fileRef = 332200A6FC684D5728F6AA658E5AE9A5 /* JXCategoryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F45735DF355530CC955066D3C007E19 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C14A6A28CF36FB34BD301B51F50ECF4 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F5426608460A8B17C1AE5C2351BAA19 /* UIScrollView+EmptyDataSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3445155E57E40ED8F0D5AEEC3F9F20 /* UIScrollView+EmptyDataSet.m */; }; + 5FDC4239F7B651092BF582D0F460BAD4 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EF85FA983DF21C56902422E554965D7 /* UIView+MJExtension.m */; }; + 6002CB94684D7C786700D2A294146AEC /* Color+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 04FE9083F11D6C40672576B6F65F4DFE /* Color+Lookin.m */; }; + 60E384ABEF99F5104C99DCB596E2BE95 /* mz_crypt.c in Sources */ = {isa = PBXBuildFile; fileRef = F2A4BB8032DDBC79455789713856A408 /* mz_crypt.c */; }; + 61461B0D9D7B81C3F8D24066D9A19DCE /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = EAD38F0B5918EB49AC9801402FB7B43B /* MJRefreshGifHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61507E402F1F7C58BF119995A0479A22 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FB7FC8DB91393E935926A1585D578E99 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 616A8338C42FB01748DF1BDDA944858D /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E1231782398454B0E68DE07403B7EC3 /* UIView+WebCache.m */; }; + 61857C821395B868C65A8FFE4DA1B4E3 /* MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = C30E7CAA4E69994CC7E5C27812DF875A /* MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61EAFBCDC83B2C603918B3C9D9A73A18 /* LookinConnectionAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 91A3BEB81D3C5F9750683749F0036022 /* LookinConnectionAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6204F3E4E75772BB6CAB13CD53D9D93E /* JXPagerSmoothView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B953FEBF29D86AD70331F6A6DC74C8 /* JXPagerSmoothView.m */; }; + 620A0FFFDE5AEF215E28135566106BA4 /* JXCategoryBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A29F3EE0247FA13905035912EFB7CA /* JXCategoryBaseView.m */; }; + 62FE895DF9D65A2955A275D909ECBE18 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C6AD52499B385E19C48897006A1010A /* SDAnimatedImageView.m */; }; + 6525ECE1CAFC1259F9E6E5FDDE6CF218 /* UIVisualEffectView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BC8C00F1561B5D7DB93AE4BC24DCBA /* UIVisualEffectView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6577A9EB1AED47B915B7F77C3F8BF335 /* mz_os.c in Sources */ = {isa = PBXBuildFile; fileRef = 114931D01287BFA93E9D29B53CA38A76 /* mz_os.c */; }; + 659D38386A3E09422812283BF27D71D1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 6630C0B541E50903F9AD81FD847CFE7A /* JXCategoryIndicatorBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = FBCDAC22C25AFAD18A45C5ACECEB0DAB /* JXCategoryIndicatorBackgroundView.m */; }; + 67178A8153B1A2F1D0D544B8093E23C5 /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = AC22D6C07A4D561385506A0C9BAA8264 /* SDAnimatedImageView+WebCache.m */; }; + 676775CB29378BB6CA3CA5992E9C6A99 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 37BA545EC5296B88830E16293AEE0DF6 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 67FCC0F9B42B1C20A66E99A3D56BED18 /* LookinStaticAsyncUpdateTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 23721857393C1A6F3C7F8AACFBD34013 /* LookinStaticAsyncUpdateTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 683D708C157C95ADB467BDD2230BD4E3 /* UITextField+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DA8C2D4790BED356591B63B0C25204D /* UITextField+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 68C3E98F8B9D6035962F29AE025DA891 /* UIImage+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = CC0FAA66E9F92FE598CA52ABB654861F /* UIImage+LookinServer.m */; }; + 68D4A83EA695C463981E04DAD037064F /* mz_strm_split.c in Sources */ = {isa = PBXBuildFile; fileRef = 47DFF43E6BE4EF7BEEFEAB5D142B408B /* mz_strm_split.c */; }; + 69345CBCB31076EBF8A2C5885AF973AB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F08EE508E662277DBDA80CFA408C026 /* MJRefreshComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 694B8697854A776E32032999B2EF1FEA /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF29172F6D618B2B1EFF9D3E4621B60 /* UIImage+Metadata.m */; }; + 6960FF2C4D61A09722930B33B1C7135D /* LKS_ObjectRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E9C77C9C0F2FA0C3086D0F5FD1B3EF7 /* LKS_ObjectRegistry.m */; }; + 69A06A02F52EB26259FAD1DF6B121BE1 /* SDCallbackQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = C44983FCE81235EA1DAC918E17D1BD46 /* SDCallbackQueue.m */; }; + 69AB6A513D5F36D7360FEF4FDA1D60D0 /* UIView+WebCacheState.h in Headers */ = {isa = PBXBuildFile; fileRef = 27EF519F1411546B2B144AD5845FDBB0 /* UIView+WebCacheState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69E353C99C6EEA3C93CCF2E526460B9D /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CCEC9218560404B175BE7FFAEB65948 /* UIScrollView+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69F6E66A089C40FB1063DE15499BCFDE /* LKS_Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FF04EF888516E2DB6679EDE980F5425 /* LKS_Helper.m */; }; + 6A19379E3B0370EDA447743C9B1A1379 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 3332F7D1A3C0C615D03E2AD11086C3A3 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B0978C9398336656EE309E62060AEAB /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FD692A87EFF35082DE5AA17822AF4CF0 /* SDImageAssetManager.m */; }; + 6B5C3592B5E911E833D067D0BC785B1A /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6F484D2DE86C22840A78D18D88200D /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B9D333C18DDBF4E7CC889F7FDE05EEA /* JXCategoryDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = A1D387A010A63456DE5E7AFF7018FE2A /* JXCategoryDotView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BC2A615678C8BAE9F34ABA68BFDEF78 /* LKS_AttrModificationPatchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E900EA2C75888A78AAE83F5EA129123 /* LKS_AttrModificationPatchHandler.m */; }; + 6BE86A0FFB0D69C6098CC75E1FB4E8B5 /* JXCategoryIndicatorCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = C99C2C51482A68E16DCB90EA75CB196C /* JXCategoryIndicatorCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BF5DB46D42D8B9D536C870EC77BF4A3 /* JXCategoryIndicatorBallView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BCA5DA5834A1F32620A3B6F778113AD /* JXCategoryIndicatorBallView.m */; }; + 6C57809DCEA4B6C0CA79918A69FD75DE /* LKS_ConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B5D037718A134965F540D45A0F6B588 /* LKS_ConnectionManager.m */; }; + 6C76DB1B99B98C951F687DE80FE6F463 /* JXPagerListRefreshView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A82548800D862412971DCA17627ED6F /* JXPagerListRefreshView.m */; }; + 6C85CA8D99E50C137D056B6057DAC58A /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF3812108539965DC779569F4275FC2 /* UIRefreshControl+AFNetworking.m */; }; + 6CA0B4A9E7B2957063163BC673F355CD /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B24C6651F79840BF3D3D3ABE8A82658 /* AFAutoPurgingImageCache.m */; }; + 6CE8701D161A4BC0860FAF3951762A34 /* LookinHierarchyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = C00853DA866D706105E3F07641DC0307 /* LookinHierarchyFile.m */; }; + 6D637D02F5EE50D21C8548061956C898 /* UIViewController+Presentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 17770789DDC8684E979B0B4B2C068647 /* UIViewController+Presentation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DE6C7F0FA965828E4FCE687BF75FBBE /* MJRefreshAutoNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDCB917F08ED5C65EA344CD0EE4714F /* MJRefreshAutoNormalFooter.m */; }; + 6E4DE8085E69AD1DDB49B059DCE286DB /* HWBackgroundConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = BA5E009B8610690D3DDBC67E45D5FF7F /* HWBackgroundConfig.m */; }; + 6E66305665DBCFBCF5B2480BF705D500 /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = EFE75BEF49F2BD35D06D9124F926221B /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EFC0630CB2761A2B1FC47176CCD62D1 /* LookinCustomDisplayItemInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A99A2859857EEF42DB510B44CD7D4F /* LookinCustomDisplayItemInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EFEEE3AE22E97DCEC4F5A3B88F56FC7 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 294C64BA0B5C5308574A8A3AE2A85D1A /* SDImageLoader.m */; }; + 6F3637EE643EABB1DE9212EA68649A64 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = C519A51D66E63515421E2A7F5D0292B5 /* UIColor+SDHexString.m */; }; + 6F75FDB9BE37C9A8473F97B1696B5D09 /* JXCategoryListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8313D5FF3F427FD8BA3251FBA57679EB /* JXCategoryListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7053A9EB6335BEAC9EFDF2D5320E6E2A /* UIView+HW_Frame.m in Sources */ = {isa = PBXBuildFile; fileRef = B502706704C901967AE5F80555ABC8E1 /* UIView+HW_Frame.m */; }; + 7074EA7FCC90B4967A437F5C43496828 /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CF6A4B55762F585DB01667B496A7519 /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 70D30BC7134E3C8006BF0B6A4B438057 /* JXCategoryTitleImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C0E1986191F6390AE52D414954598C40 /* JXCategoryTitleImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 711D32EF4A9901567A488291603BF906 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B11A2DBF0484EE735D6C9D0C72D9C5 /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 713D162A627185DA38847832AB5BDA44 /* LSTPopView.h in Headers */ = {isa = PBXBuildFile; fileRef = C659CE9E1FF90805F3DC1F8D3DDD1B24 /* LSTPopView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71538A1D21015F459964BA625D5EE90A /* NSObject+MJClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 568011BEDC1B875E593855247AF2ED81 /* NSObject+MJClass.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 717F76926C7BCB5B10C3037AD9239084 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 3041393DEDB2B4121A720B516580C6F4 /* SDImageIOCoder.m */; }; + 71BEB1D9532900291A5A24B1C038516F /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 7678B0EDC7AAC94916357B3DB83F1EA2 /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 71F2B8CBB99087F348C472230200586F /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = E78EE4C27B4687DC4F5C0AE7F8FFCE6D /* SDGraphicsImageRenderer.m */; }; + 723D1925C39764631641D0DBFDF6833B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 724991CA89C46BAFBC08264D94D86484 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D66F851DF43462C5CFB4A390D98EEE4E /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7276688DEA6FB95D4DEB7F3D019C3958 /* HWPageSheetPresentingAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 859AA8139C69A8ED55CE4C03AF2A3341 /* HWPageSheetPresentingAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 728107C8D8479AADE986F4EC23233DC3 /* UIScrollView+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = A556707295C493B48EB5B9D7B5035878 /* UIScrollView+Helper.m */; }; + 73B19D03C7B7DF1C944544165F742D82 /* HWPanModalContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D8A0CB202E3BC0417C62AE054DFE91 /* HWPanModalContainerView.m */; }; + 743BBA00940EF6877AE1D5014755D0D6 /* UIView+LYExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 4933034880CCA5F38E9C996B03E67F7F /* UIView+LYExtension.m */; }; + 74ABF19BACB99F862DB62AA14508AFA0 /* LookinAttributesGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 6359DFA964A60852EBC4AB8002EAED38 /* LookinAttributesGroup.m */; }; + 74C474676C69A80BEC29B0F55FDF4D19 /* UIView+WebCacheState.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E98FFCBAE59963C642EC8E3AF550CFF /* UIView+WebCacheState.m */; }; + 74E069F8C9E22C0E37F261A5AB03A613 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F7508CEE013484034B16046290F3AB /* SDWebImageDownloaderConfig.m */; }; + 752822FE3F5092322D18FEC4533B79A9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = A8A7E3E3C822A5CC2F51A88301622FA8 /* SDWebImageDownloader.m */; }; + 75771A97B77FA30A0175A81B480F80EF /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9286540764F28BCBEB072442803F3D3F /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76019F9FDD44B8F79261AD55C8728164 /* UIView+HW_Frame.h in Headers */ = {isa = PBXBuildFile; fileRef = E12645F1AD3E236897418492D724DBCB /* UIView+HW_Frame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76C8C631DF9AC2F667369EEA0CE46522 /* HWDimmedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 340965B893AD5E7E845960971D20228E /* HWDimmedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 772CF8E9CD02ECA4275B6173E2110E80 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 687F99CF59698A825238A228A9326EEC /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 780EDF2615923E89C179EB5A60D2DA41 /* JXCategoryCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFB8178934237D2097197FFA692EDCE /* JXCategoryCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7819DD27A1B62DFC933835DFAFBDBF42 /* mz.h in Headers */ = {isa = PBXBuildFile; fileRef = 794EDDEC99AE62D5D00411F3511B13E1 /* mz.h */; settings = {ATTRIBUTES = (Project, ); }; }; 7873F2F89CD0A435FAB776BC27BFB56A /* MJExtension-MJExtension in Resources */ = {isa = PBXBuildFile; fileRef = 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */; }; - 78A3C3994AFFC6A2D4970AEB6D797CE5 /* LKS_HierarchyDetailsHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0719BBC5095E9B709A7485C347010514 /* LKS_HierarchyDetailsHandler.m */; }; - 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 77973C87CC9649629EBEE249DCC355F5 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79534562F85AA71041043B395DE14AD0 /* HWPanModalContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E31AD6314EC8102DE4FC6291C0FE66F /* HWPanModalContentView.m */; }; - 79701CF51014A7C02D810F9DAEFE6D79 /* JXCategoryTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B49837A2AA042F710F43F143A929D49F /* JXCategoryTitleCell.m */; }; - 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = F64D04ACE9EB0341E57129D44479C065 /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A4EB9ED5D4E03170FFE61FCB299687B /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A5D6AD5CB7122607D6E477D373A31E2 /* SDAnimatedImagePlayer.m */; }; - 7BC817F176759B34FDC3C9A3BDE900BF /* LYEmptyBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5885DEE0FCB371101A605FDA3D3F35C /* LYEmptyBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C45DBA62EE045C4922404182F6393B8 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = 16465B6B7358098E137335C9985BBBBC /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C53FB6BBB0CBAA879F1603B0FEDB80B /* LookinAttributesSection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8D39C76EB84B28054B453882C78E41 /* LookinAttributesSection.m */; }; - 7C5505A2D3F2A697A5F324787061F4B7 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = AC368BF52013B3AE323DC35D782A044B /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C8782A3078662BC2EF639A9608A2C82 /* LKS_InbuiltAttrModificationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A1DAAC915F745C515E0BF4D613B5CB1C /* LKS_InbuiltAttrModificationHandler.m */; }; - 7D1C6E10B8E0F98E19048BB416A39A0D /* LYEmptyBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D0C4CB17BF463D490AE3400293A0D47 /* LYEmptyBaseView.m */; }; - 7D1E98BE9558F6E5E29B0E81EC526A90 /* JXCategoryImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9234E8779322D7F9722AF6E18FF9F6F3 /* JXCategoryImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D4B5D7A593F4436B57347FD2A5072B4 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7AC0215893BDD3C5E126FCE996097AB4 /* PrivacyInfo.xcprivacy */; }; - 7D736CE5AD0A987D2A7D2FD72E31BF41 /* CALayer+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 798B3DCD95877B6C7D997E0652FB6E9A /* CALayer+LookinServer.m */; }; - 7DFACBAC8324FE3F177FA465E0006A9C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = A0497973DD4190C4C37CC950C86C6F2B /* PrivacyInfo.xcprivacy */; }; - 7E4F0978B25350B2B28678A0BE7B3785 /* LKS_HierarchyDisplayItemsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = F1FB9919B7B8171A6A8679BDDA407F68 /* LKS_HierarchyDisplayItemsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7E8A564A958AF81E5F63F34B8E550E58 /* LookinAttributeModification.h in Headers */ = {isa = PBXBuildFile; fileRef = B915A35174E3017D6DC61C0A3E31050E /* LookinAttributeModification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F10C0D094C74F2FA4CD38C7FD77B0A8 /* WKWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A1C4717F035C7128013EA7E000DAC18A /* WKWebView+AFNetworking.m */; }; - 7F886FC2763F0BF1625A24EE4F94C04D /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 48A816CF0BA23EA39A514E31ED98C5D3 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FA48BF8B9F73775654E75CEB5363FF4 /* UIViewController+PanModalPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 82F6D1678A37FB68B3455162AB8BDAA2 /* UIViewController+PanModalPresenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FA8C78DB021A7731D30D80C102DE042 /* NSObject+MJKeyValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C7575113B17F46DF34D3C118CB31308 /* NSObject+MJKeyValue.m */; }; - 7FF8A56511E71D6FEC966BF9FEE135B5 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A198AAC0BC41558B9FC61F89E90D900F /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80EBFDD01E84CE4E8AE5BAE9CB3C7C1D /* HWPanModalAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = EDA5337EF8951852F4AA839734BF6786 /* HWPanModalAnimator.m */; }; - 810C8D7902163BBA0185A4A112B2DFD6 /* LKS_TraceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C7F42FC60A06A5673FA7DE53298188E2 /* LKS_TraceManager.m */; }; - 8128D2BD3AC890F75E7AD243AA104C13 /* JXCategoryIndicatorParamsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1936EF3FEE34E513D746BA5037CDEE80 /* JXCategoryIndicatorParamsModel.m */; }; - 813BE4C96A6D39C13EC50C6CD164F0AF /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 404BBFC3B5A2ADAEF4E188881B357111 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 412FD8B68949345873B82E2D0C864C85 /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 821FF6B43F7ADAB6B60459D2966B33CB /* CALayer+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 768785318FEB9536A4DAAD47BD76396B /* CALayer+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83530BF68848CD2C4A79A1FD69B304A5 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 763CF36C11B6092D9D5485AC2363F205 /* SDImageGIFCoder.m */; }; - 83A4F2816C1B3F072E1A26A34C3BC4AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 8414CFEEB64ACA817EB88D2FEADDA3B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 854807558DCB972EDDFC1D00032BA6E4 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = CBD58A6BE5B4D23DDB42D3D26A87CAEA /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 66E849825D4B5783372753D6820DE97F /* MJRefreshHeader.m */; }; - 85BB8B4B5C29C5EEC52282F33A4CAF23 /* LookinCustomAttrModification.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E445C787AA09C1E3A771E4C7DBCE2CA /* LookinCustomAttrModification.m */; }; - 85C0B4EE334B9972299E62DE61A4BB56 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E585503EB164F6C036C85B124140368 /* SDImageLoadersManager.m */; }; - 85ED10431A6C01970A3DAD8A8C9BF25F /* JXPagerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8310CCDF3085A9EE32455CB865148664 /* JXPagerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 860CB3A5D2E13B946CD2EFB7F749C4CF /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB771163568003A2EA8F4B1A606B9ED /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 864972FB0DF4B464B1B505AA5F788E91 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CF9E4569F5B94286E175AF9D675C11 /* SDInternalMacros.m */; }; - 874CE8F3650D220092077846A46598E6 /* JXCategoryTitleImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E91A12C513A640E68663D4ED668C0FC /* JXCategoryTitleImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88197D535BEBB0F4B71F106AE300631D /* JXCategoryBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 45E71D8592674E85D7D5DA4831A592BE /* JXCategoryBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88473AE7C22F952DACB39FA0758D1624 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 256D50D68BFC3FD314552D1D0BC2044D /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CF1445CC744306AE4ECBA85DFD6DB27 /* MJRefreshAutoStateFooter.m */; }; - 88889F5DA04EB4FA08125742B5E522DA /* JXCategoryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5105F32D29B4C0D80B780EE2DF6D2898 /* JXCategoryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88A23DF6F5638AC66C28C4102824E8B5 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 23763927ED025640A4CAA94867A3D823 /* NSImage+Compatibility.m */; }; - 89B88FAD396608AAA9F935E471BB3CB9 /* LKS_HierarchyDetailsHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA159570B75D1C95DC0E0B5836BACFF /* LKS_HierarchyDetailsHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89EAB8D0452D0E2114ED971B10D98CC3 /* LKS_HierarchyDisplayItemsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B27A1456536538B2E7220C71AA3F4F /* LKS_HierarchyDisplayItemsMaker.m */; }; - 8A256CA266FB314BBD4DB2287DAEF247 /* LookinAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = B267D6EC269C7ADF7A4202363528E8C2 /* LookinAttribute.m */; }; - 8AF38EDB1E9BF0D334AEB23C488870B8 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = 00449113F3BDDB46E11CEE02CF1F29A1 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B47B7F220A2B9E121EFF5A28B477972 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 8B990235A0006E1F9C1E6F68AD81F77C /* JXCategoryView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D98B4BEA4820634A8F01172731FF97B7 /* JXCategoryView-dummy.m */; }; - 8C6C7E25C5A24C936F81823978190E96 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FED4C87CAD14B9336A225C943B75263C /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D2CBEBF5F1DA6766A833CCD0BF02B5B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 638488B4F5FF9C67F848A841B1A34765 /* CoreGraphics.framework */; }; - 8D8AD606ECD8E1F247965CD43956D412 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = A39050EBA53940D0CE63B52BF031BE6C /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78A3C3994AFFC6A2D4970AEB6D797CE5 /* LKS_HierarchyDetailsHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF45D4CE90980A5F7EC393EA9E9D029 /* LKS_HierarchyDetailsHandler.m */; }; + 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = C61FA70CB01999A6107A42EFF9E59D0C /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 79534562F85AA71041043B395DE14AD0 /* HWPanModalContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 541912CF842509E54C2F9817338B90E5 /* HWPanModalContentView.m */; }; + 79701CF51014A7C02D810F9DAEFE6D79 /* JXCategoryTitleCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B887B4AF044F9F7F71EE2A0315D9C39F /* JXCategoryTitleCell.m */; }; + 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = BE611142AC4AA27D3CF48AE78CE8ABE7 /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A4EB9ED5D4E03170FFE61FCB299687B /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3380C668B7FA17B9F0A13799CB2C15F9 /* SDAnimatedImagePlayer.m */; }; + 7BC817F176759B34FDC3C9A3BDE900BF /* LYEmptyBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2516575DAD30E19BE433515541FACCFA /* LYEmptyBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C45DBA62EE045C4922404182F6393B8 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = AA6BE0D284683F4B3154DA2FEAA55268 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C53FB6BBB0CBAA879F1603B0FEDB80B /* LookinAttributesSection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3857A564BC94B93CC94D3EA56DDC4671 /* LookinAttributesSection.m */; }; + 7C5505A2D3F2A697A5F324787061F4B7 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B788040001791F66B5813C1FC3C51736 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7C8782A3078662BC2EF639A9608A2C82 /* LKS_InbuiltAttrModificationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 373DF461217F7D5921663CC9414928C2 /* LKS_InbuiltAttrModificationHandler.m */; }; + 7D1C6E10B8E0F98E19048BB416A39A0D /* LYEmptyBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 867B35D37248D0009B38597F3C836DCE /* LYEmptyBaseView.m */; }; + 7D1E98BE9558F6E5E29B0E81EC526A90 /* JXCategoryImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FFD6E10A8BDC66C4D68B27A8F14E068 /* JXCategoryImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D736CE5AD0A987D2A7D2FD72E31BF41 /* CALayer+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 36F42C589BF3CE6FB1651BCBEC115229 /* CALayer+LookinServer.m */; }; + 7E4F0978B25350B2B28678A0BE7B3785 /* LKS_HierarchyDisplayItemsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E027A157991C01A32ECD381AFC34FAD /* LKS_HierarchyDisplayItemsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E8A564A958AF81E5F63F34B8E550E58 /* LookinAttributeModification.h in Headers */ = {isa = PBXBuildFile; fileRef = F6809A3B1E06063A42F8BE812CB61608 /* LookinAttributeModification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7EB365BD2FC75CE205A638DD725B0555 /* LSTTimer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B60A9EA622DCF45E87F4BCA20F525D85 /* LSTTimer-dummy.m */; }; + 7ED6C3C05EA6EE83780A3600C7088B46 /* mz_crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 43F7DFAD54A39AC067B93B7F37CEACC4 /* mz_crypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7F10C0D094C74F2FA4CD38C7FD77B0A8 /* WKWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = E7430A9EA4CB87590757C1508062129E /* WKWebView+AFNetworking.m */; }; + 7F886FC2763F0BF1625A24EE4F94C04D /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = A496809B712DE9F509171A8B6356A099 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FA48BF8B9F73775654E75CEB5363FF4 /* UIViewController+PanModalPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FDD439886220AA95FF6B36A5C000873 /* UIViewController+PanModalPresenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FA8C78DB021A7731D30D80C102DE042 /* NSObject+MJKeyValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 36F771A08989CA5134B23D5F5E970ACA /* NSObject+MJKeyValue.m */; }; + 7FF8A56511E71D6FEC966BF9FEE135B5 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 512A25DAEA073CE0762D2115C0A3524A /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80EBFDD01E84CE4E8AE5BAE9CB3C7C1D /* HWPanModalAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = B9FA6EA3495E0341DC2AA0799245209C /* HWPanModalAnimator.m */; }; + 810C8D7902163BBA0185A4A112B2DFD6 /* LKS_TraceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AAAD9C4443ACAC2E1EAA35A70A4A148 /* LKS_TraceManager.m */; }; + 8128D2BD3AC890F75E7AD243AA104C13 /* JXCategoryIndicatorParamsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FE7198C233A2640C008082E5B441F41 /* JXCategoryIndicatorParamsModel.m */; }; + 813BE4C96A6D39C13EC50C6CD164F0AF /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 701FB0B3C957B12385F4A22B36BDD16B /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 817909CFA2E8032670693BF57A2D5519 /* mz_strm_mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 777F9F6A7889203D9F5204A776E487AE /* mz_strm_mem.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 81A5635CEA2AD9623E30CAE9AFC3BF65 /* NSBundle+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 03F3FB18F3FE5DF91F10C40D42188F96 /* NSBundle+MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 821FF6B43F7ADAB6B60459D2966B33CB /* CALayer+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 327CD1528BBA4042036E97BEBA74274F /* CALayer+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 823033F3DF2D5C7C4B123A277DB55073 /* mz_strm.c in Sources */ = {isa = PBXBuildFile; fileRef = EFACE3751373A384D5D01B02DD24C448 /* mz_strm.c */; }; + 83530BF68848CD2C4A79A1FD69B304A5 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3F5B499190A8045661B658575C588C /* SDImageGIFCoder.m */; }; + 835C687083E3D51DE87C2F2C4C681B1C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99B4F13594632F82C9EF984C08EE4078 /* Security.framework */; }; + 83A4F2816C1B3F072E1A26A34C3BC4AC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 8414CFEEB64ACA817EB88D2FEADDA3B3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 8415E191A2886EC3426A01BC86299E1F /* mz_strm_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = F9217DB48F424BA008216EE318F042B0 /* mz_strm_buf.c */; }; + 84B5FB65B38C19F534F49DE6471C0E5B /* mz_strm_zlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 06E0AA3C0029EF26819C4B61B00C6151 /* mz_strm_zlib.c */; }; + 854807558DCB972EDDFC1D00032BA6E4 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = A6AD21C98EA6D7A54B77F9D7BFAD316C /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85AB23275E9D19394969235E5DC2300E /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 872A4BB6701891FA0FBC944E222E367F /* MJRefreshHeader.m */; }; + 85BB8B4B5C29C5EEC52282F33A4CAF23 /* LookinCustomAttrModification.m in Sources */ = {isa = PBXBuildFile; fileRef = 65A5B788E203EFDF66F6AD93970E02A0 /* LookinCustomAttrModification.m */; }; + 85C0B4EE334B9972299E62DE61A4BB56 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 151DDB03C19559867EEF743375F719C4 /* SDImageLoadersManager.m */; }; + 85ED10431A6C01970A3DAD8A8C9BF25F /* JXPagerView.h in Headers */ = {isa = PBXBuildFile; fileRef = E9E4243141E8A38958C1F2A40D84008E /* JXPagerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 860CB3A5D2E13B946CD2EFB7F749C4CF /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E73A2BECC319E466CBB42196B328E76A /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 864972FB0DF4B464B1B505AA5F788E91 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 583A0C19F8D1ACE1709410EB4733F2B0 /* SDInternalMacros.m */; }; + 874CE8F3650D220092077846A46598E6 /* JXCategoryTitleImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5450AB8CC809FC5DCFD5B6A5E51531 /* JXCategoryTitleImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88197D535BEBB0F4B71F106AE300631D /* JXCategoryBaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3269114114DA4A29A874C429E9CA18 /* JXCategoryBaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88473AE7C22F952DACB39FA0758D1624 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C23EC7E95138738B17D177EB5FA686B /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8872BEB0954C0254A792469F4DBC9891 /* MJRefreshAutoStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3369E1F4F864EABA5F02292CEDA67422 /* MJRefreshAutoStateFooter.m */; }; + 88889F5DA04EB4FA08125742B5E522DA /* JXCategoryTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F35095D3053E2A3DBDF2DEE0430F6A9 /* JXCategoryTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88A23DF6F5638AC66C28C4102824E8B5 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EA3D8AD01DA3E015B6159A35F13BB3D /* NSImage+Compatibility.m */; }; + 89B88FAD396608AAA9F935E471BB3CB9 /* LKS_HierarchyDetailsHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = C38F79D9F2BBBC5DD6406B67406CBB17 /* LKS_HierarchyDetailsHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89EAB8D0452D0E2114ED971B10D98CC3 /* LKS_HierarchyDisplayItemsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 269FA03C0F139A78628FFE7007BC40BA /* LKS_HierarchyDisplayItemsMaker.m */; }; + 8A256CA266FB314BBD4DB2287DAEF247 /* LookinAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C54D0915D093EEE2BE69C3D6A495144 /* LookinAttribute.m */; }; + 8AF38EDB1E9BF0D334AEB23C488870B8 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5DEFD150893C86D3BEB5BD54870151 /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B47B7F220A2B9E121EFF5A28B477972 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 8B990235A0006E1F9C1E6F68AD81F77C /* JXCategoryView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F727D55D6275E422C78261D496AAC93 /* JXCategoryView-dummy.m */; }; + 8C6C7E25C5A24C936F81823978190E96 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CF13D7504F201F21E62DE0C23B49F7 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D2CBEBF5F1DA6766A833CCD0BF02B5B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B039DC77C7D8D33CEAB56314AAFE04CB /* CoreGraphics.framework */; }; + 8D8AD606ECD8E1F247965CD43956D412 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD20E21FF7A2BAB6FAAB004A82D3143 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F30C8026F48C60D5B2CAE9CFC166004 /* Pods-CustomKeyboard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB13D51E717D347023EEB57263E3072 /* Pods-CustomKeyboard-dummy.m */; }; - 8FF4E9A492CA258F45C0BC51F6F69650 /* JXCategoryTitleImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EADC8693C7692FBBE4CE165F51B28E9 /* JXCategoryTitleImageCell.m */; }; - 8FF7B6477BFA6E6ABA168E1417291D5F /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 70CD4567ACE296214EA982091E2B8F90 /* MASCompositeConstraint.m */; }; - 906DCE66CD5BD236081D468616199BB7 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B82CFD6AD23DAB70352983FFFA8DBBE /* SDWebImageOptionsProcessor.m */; }; - 91AAF555B286FBF53E4F98D092B406BD /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD18D412C592E0FB706C10554E5283E /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 8F43694404EAFF6D73EE58928154C0F2 /* mz_strm_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 263454233B5B0DBB14C5D80582B2B2AD /* mz_strm_buf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8FF4E9A492CA258F45C0BC51F6F69650 /* JXCategoryTitleImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 44D08F7CF9BB9D6E3D4646C7B30B91D9 /* JXCategoryTitleImageCell.m */; }; + 8FF7B6477BFA6E6ABA168E1417291D5F /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = ED5F3E83C25ED0811869DD8EA163FA78 /* MASCompositeConstraint.m */; }; + 906DCE66CD5BD236081D468616199BB7 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = EB794DFD026CA33CB6632909B75BE26E /* SDWebImageOptionsProcessor.m */; }; + 91AAF555B286FBF53E4F98D092B406BD /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F9A2F4EF053344FC9A0ADD19237B587 /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; 91AFF41167C616A131F2E24563B8DDD8 /* JXPagingView-JXPagerView in Resources */ = {isa = PBXBuildFile; fileRef = E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */; }; - 91BEBD471C408E6C72763AFB6926242B /* JXCategoryTitleImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EC4E80691EA4009AB067722DA72E4D5 /* JXCategoryTitleImageView.m */; }; - 91E8B94F8E02ABF5197DF5AE7D0B3934 /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ED4F75E10F9C3D76FF139C89BBB8154 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 928371B066E1211CE87089668D5BCB4C /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A464713D364DCC51BD1C744435EF31A3 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 928A1ED0692DF0229F66A87135F93F2A /* LKS_CustomAttrModificationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D00729EFDA62359B2F2AA1EF43FADFD9 /* LKS_CustomAttrModificationHandler.m */; }; - 9345137ED10358B60E37D05FB6165759 /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 72CEA2C3193763834CD0E25D8DB88F2D /* SDFileAttributeHelper.m */; }; - 9358FC6C6DA728AEE250D8E7DD236946 /* MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = AB379411892DE9D6AC2BA478DD047B45 /* MJProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 93E2C24501FAE3C3B886B9879786EF22 /* JXCategoryTitleVerticalZoomCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F3BAE7C9BD506017B4C0D7BBB9100900 /* JXCategoryTitleVerticalZoomCell.m */; }; - 93E8C78EAE0B7613201813966B8E04E2 /* Image+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 8679B55EBC5DC660D8E798D1B986FC22 /* Image+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 940CD731A431894B0EE4E3283E6F352F /* JXCategoryBaseCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 897530E070833B039DC2821D0B63B137 /* JXCategoryBaseCellModel.m */; }; - 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = A64A22A853C13E4375B73E01D1D90CB1 /* MJRefreshBackNormalFooter.m */; }; - 96C1D55B3436C158B4CBB4E3D0AE53EE /* UIColor+JXAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = EA759F283932CC196A3C378E0037B993 /* UIColor+JXAdd.m */; }; - 96E97174F4614FFA0649085022CB4AFE /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C0CC288A628CFA871D599D497E2A8E /* SDWebImage-dummy.m */; }; - 97235408E59E16C18B6BDA1D29E1CB26 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EFC3A24D1CE615DA957AE8C5AC47E5D7 /* SDWebImageManager.m */; }; - 97385A64CA020489951EF769392C6DCF /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43901AAA2BB40AE5F534540676833E30 /* UIView+WebCacheOperation.m */; }; - 9887678D7D6BC165694560D92AF2C31A /* LookinConnectionResponseAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B7D0FDFC6ECF60B59728E60160431B /* LookinConnectionResponseAttachment.m */; }; - 98AB6B8EB7FF096BCE87488C5AB3DF1C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = E45A9679E38D826E316675D8F368F69C /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9A89C16038149623A1DF06D47E7F953A /* LookinStaticAsyncUpdateTask.m in Sources */ = {isa = PBXBuildFile; fileRef = FCBD8DFA94436F5E62F1AA0F1AD2F2FA /* LookinStaticAsyncUpdateTask.m */; }; - 9B06400877E40C173F5A1C9761F288CB /* UITextView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D8DC297A0249D2FB0109542F14B89AB /* UITextView+LookinServer.m */; }; - 9B1EF09A8A473D92C1258B00791BF5F0 /* UIView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 76AEEFCD2262D6843C63EB46FD6663BB /* UIView+LookinServer.m */; }; - 9B3420DEB8A0CCB9E1241A669AEFCA8E /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = A1411B1EA7A3C51DB2072BF40B4D5A60 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9B9343E8599EE5196BA75E842DCB48B7 /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A5839D54BEE8A98756D5288A3E5050 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 9BBBDC6BB6583BCAA75242231B62B530 /* HWPanModalPresentationUpdateProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = EF62C88D7041DEBD26117AF61789D8AB /* HWPanModalPresentationUpdateProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C623DECA454522DB641AA29C86F6387 /* LSTTimer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A3211D6272FC8FFC9717C01969D328F7 /* LSTTimer-dummy.m */; }; - 9C6A760E54D2281BBE39A443C0F78D55 /* LYEmptyViewHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = FA5C6E28985540EE03804DDC4277D459 /* LYEmptyViewHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CE425B89294BE2C13E70A86E75B15CF /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FAA3871C50E5746944D1C3FA3E4736CE /* SDDiskCache.m */; }; - 9D07985CF518269347F3FD5FE6D22609 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - 9D422527A25BAE6A207DEFE11958ABBC /* AFCompatibilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 060133813AFA51D11B917CB91A3D4950 /* AFCompatibilityMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9D859B99561C389C0F494428F66F1871 /* HWDimmedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9230BE776665C8EB51C8889631B1B31B /* HWDimmedView.m */; }; - 9DDDCFC08B54A61C519DA78F94464E6B /* LookinHierarchyInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F4F901625B3879AD34FA2A0373208F59 /* LookinHierarchyInfo.m */; }; - 9DF446F8CA5BC4D4098766EC9063012C /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 949A8C57291DF7D8139F90AD367DB80C /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DFFD4780CA32B8E53D9F4FBC8B3F5AC /* LookinAttrIdentifiers.h in Headers */ = {isa = PBXBuildFile; fileRef = F32705CBE56ACF430653A1C459F5351E /* LookinAttrIdentifiers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9E3C5CB1C97B2ED16218956999BFF7AC /* LookinTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = B5157027D16B7E61C1D5AB091D10458E /* LookinTuple.m */; }; - 9E6B00AF2ECE462D4D3C42AFC02F2AD7 /* LookinEventHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D4CFF1EB3CBDD5217E39DD58BD101359 /* LookinEventHandler.m */; }; - 9E7FD4501C2EF7FBF3379D21E46DB07B /* JXCategoryBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD544A644986722B86F15A292995457 /* JXCategoryBaseCell.m */; }; - 9EBA682DA814406E9E5EF300587AF341 /* LookinAutoLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 97DE751E0ED3939932D72FB39C5A934A /* LookinAutoLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F89DCAA4092F3897E43E89842069A26 /* LKS_AttrModificationPatchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = ADF656282B85E6C974597F555BDE3F21 /* LKS_AttrModificationPatchHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F8A77D8902C98115735987BA80BD5C9 /* UIView+LYExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CA8B3EFCD9E73829676C70CE3E88BE0 /* UIView+LYExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FB234EB4D8B5BCC699DB491E204594F /* LKS_GestureTargetActionsSearcher.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7E9357D1D22FB737AEE89305734112 /* LKS_GestureTargetActionsSearcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 3259CC7D8EE4331CC9B8A86DA09EA5B3 /* MJRefreshStateHeader.m */; }; - A0ADDB3C7DF96DF0E6BC53086778A103 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */; }; - A0B7A3B941134AA95A20F5A85165CC72 /* LSTPopView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C98FF255A58DDF6F211BD72458B9C3D0 /* LSTPopView-dummy.m */; }; - A0E0DC76F51300E7EB1EBA5492DE854D /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B628043D13CE1145E17714D58AB2A687 /* UIImageView+AFNetworking.m */; }; - A1560247914C760D9EE5F7A2392CC06C /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = FB1FCAC52ADC49B2B3A81FFCCD3D56EE /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1A1266FD70CEB545FD7602CC33F2F7B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDEE6097B6411333154FEF90A280E3E4 /* QuartzCore.framework */; }; - A1ACD509069144C27542774A41FE0243 /* UITableView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = E847BE3D7FA245C62A989A8A4F90542A /* UITableView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1BFCC1BC5107F5F72BDBDB98E12559C /* JXCategoryViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B4750EDA171CA7EB95AFE62489A712EF /* JXCategoryViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91BEBD471C408E6C72763AFB6926242B /* JXCategoryTitleImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 55F8377D2B875785FEEA759FCF32A69C /* JXCategoryTitleImageView.m */; }; + 91E8B94F8E02ABF5197DF5AE7D0B3934 /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = CB419394F1C9468854632763B9DBA464 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 928371B066E1211CE87089668D5BCB4C /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABD0EF98F92FC86D229EEF559B0B6A3 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 928A1ED0692DF0229F66A87135F93F2A /* LKS_CustomAttrModificationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = C7673C6A1F4331DE69644342A618B59E /* LKS_CustomAttrModificationHandler.m */; }; + 9345137ED10358B60E37D05FB6165759 /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DD59C77CD21D361AE42FCE338B88221 /* SDFileAttributeHelper.m */; }; + 9358FC6C6DA728AEE250D8E7DD236946 /* MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 395934EE4CE43C1DE9788DC03A7C6D89 /* MJProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93E2C24501FAE3C3B886B9879786EF22 /* JXCategoryTitleVerticalZoomCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E1E851A7A7CA784A018B5E55D9A6FAB /* JXCategoryTitleVerticalZoomCell.m */; }; + 93E8C78EAE0B7613201813966B8E04E2 /* Image+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BBA876292C39EC75D3A3DE0E1936D10 /* Image+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 940CD731A431894B0EE4E3283E6F352F /* JXCategoryBaseCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 175E902683747415D180D3F558DE6E14 /* JXCategoryBaseCellModel.m */; }; + 955B87902E039163281C4F47C95DB851 /* MJRefreshBackNormalFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F5F6BAF17E839077E81636970DB5D0 /* MJRefreshBackNormalFooter.m */; }; + 96C1D55B3436C158B4CBB4E3D0AE53EE /* UIColor+JXAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 1538C76EA76285E450D5CEF966BD77EC /* UIColor+JXAdd.m */; }; + 96E97174F4614FFA0649085022CB4AFE /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 69B6E9CFAF1B79FA1CD551AC592A3F13 /* SDWebImage-dummy.m */; }; + 97235408E59E16C18B6BDA1D29E1CB26 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F131F769EF13BBF4832AFDCB866C9A2 /* SDWebImageManager.m */; }; + 97385A64CA020489951EF769392C6DCF /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 149C71381AA7AA30529E98DB6A1F4B31 /* UIView+WebCacheOperation.m */; }; + 9887678D7D6BC165694560D92AF2C31A /* LookinConnectionResponseAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C23BF6472529CBAF23C7D4F8912144 /* LookinConnectionResponseAttachment.m */; }; + 98AB6B8EB7FF096BCE87488C5AB3DF1C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + 9A7FB1E975A5955C896E6B195C521804 /* MJRefreshBackNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3004D0D0AA35348BA3E4E41C002EADF2 /* MJRefreshBackNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A89C16038149623A1DF06D47E7F953A /* LookinStaticAsyncUpdateTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 18522E1361AF4A77AC618662C5D5CBD9 /* LookinStaticAsyncUpdateTask.m */; }; + 9B06400877E40C173F5A1C9761F288CB /* UITextView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B186A7798AB389A4AD802804B15504 /* UITextView+LookinServer.m */; }; + 9B1EF09A8A473D92C1258B00791BF5F0 /* UIView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = E9BCF126899DF058C602D585C70A9150 /* UIView+LookinServer.m */; }; + 9B3420DEB8A0CCB9E1241A669AEFCA8E /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 80531B9754F423FD57E0805CE2593D30 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B9343E8599EE5196BA75E842DCB48B7 /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BDCE9952D3D5ECFE37B853918E47D89 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9BBBDC6BB6583BCAA75242231B62B530 /* HWPanModalPresentationUpdateProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 05FF78D8DD78F6698BD01FCBB18E5020 /* HWPanModalPresentationUpdateProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C6A760E54D2281BBE39A443C0F78D55 /* LYEmptyViewHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = AFA6581234C27D63A104875F08AF8AD0 /* LYEmptyViewHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CE425B89294BE2C13E70A86E75B15CF /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D8BBE3D6597CA5C084B0ECBB8BE04050 /* SDDiskCache.m */; }; + 9D422527A25BAE6A207DEFE11958ABBC /* AFCompatibilityMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F23893048C14274F083E80FDA82DF98 /* AFCompatibilityMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D859B99561C389C0F494428F66F1871 /* HWDimmedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1626A7F50D6347841FFE43D04BAB9EF2 /* HWDimmedView.m */; }; + 9DDDCFC08B54A61C519DA78F94464E6B /* LookinHierarchyInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 96692A8BBFC06F26E5C9CE0895319495 /* LookinHierarchyInfo.m */; }; + 9DF446F8CA5BC4D4098766EC9063012C /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DE631CFB2FD87B391DC31617A0F8F7E6 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DFFD4780CA32B8E53D9F4FBC8B3F5AC /* LookinAttrIdentifiers.h in Headers */ = {isa = PBXBuildFile; fileRef = 37062203C7A1D75A3D580DF7678FCF91 /* LookinAttrIdentifiers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9E3C5CB1C97B2ED16218956999BFF7AC /* LookinTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 84ADAACA62D3D83C92C455142BC8D490 /* LookinTuple.m */; }; + 9E6B00AF2ECE462D4D3C42AFC02F2AD7 /* LookinEventHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D1CA51113D2C810242700450E6D5F91 /* LookinEventHandler.m */; }; + 9E7FD4501C2EF7FBF3379D21E46DB07B /* JXCategoryBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 553C3B3D779AB6CB5190C219D6C92261 /* JXCategoryBaseCell.m */; }; + 9EBA682DA814406E9E5EF300587AF341 /* LookinAutoLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D13D5C804FC991DCB89F6DF78DD5C96 /* LookinAutoLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F89DCAA4092F3897E43E89842069A26 /* LKS_AttrModificationPatchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0780B40D7B5BA4ABD33634434DECD679 /* LKS_AttrModificationPatchHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F8A77D8902C98115735987BA80BD5C9 /* UIView+LYExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 737E52BDAB744FC876BD52E7BB7110AF /* UIView+LYExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9FB234EB4D8B5BCC699DB491E204594F /* LKS_GestureTargetActionsSearcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 53067D5B14E4EEA9819FC6B7F9321221 /* LKS_GestureTargetActionsSearcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A012A526264460C196D354A165DAB0CB /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = EB1DFDBA1EBE0E384ED4AA87F1246C18 /* PrivacyInfo.xcprivacy */; }; + A078A275FFFA48D620074790DA3CA6CE /* MJRefreshStateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEB3868FF1316BC4B334ABEDA353664 /* MJRefreshStateHeader.m */; }; + A0ADDB3C7DF96DF0E6BC53086778A103 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */; }; + A0B7A3B941134AA95A20F5A85165CC72 /* LSTPopView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B15A8466AD16797422A5769DBF335FF9 /* LSTPopView-dummy.m */; }; + A0E0DC76F51300E7EB1EBA5492DE854D /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DAA001DA4B0511B694549BF046EAD29 /* UIImageView+AFNetworking.m */; }; + A1560247914C760D9EE5F7A2392CC06C /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C7383492DDC35F73027778CD00DE748 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A190A9DFC23558006BE5D8D5B6DAE51C /* mz_strm_zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 145359962B1F7316ADD800516212E8AB /* mz_strm_zlib.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A1A1266FD70CEB545FD7602CC33F2F7B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD30B9EF8BA7F13C73065F6A94D35ECD /* QuartzCore.framework */; }; + A1ACD509069144C27542774A41FE0243 /* UITableView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2777F67758A4643B06DA9FC44531D569 /* UITableView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1BFCC1BC5107F5F72BDBDB98E12559C /* JXCategoryViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = EE970DD8AC37EB86349A9696105DA965 /* JXCategoryViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; A1C02A0C13BE4A139BC38BBE20217FA2 /* JXCategoryView-JXCategoryView in Resources */ = {isa = PBXBuildFile; fileRef = BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */; }; - A1DC9EFDF50DF0EAF24D9D7C219AD2C1 /* NSObject+MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C6F8F3E8953AADD74838D4A882F45A1 /* NSObject+MJProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = FD937703BB1091324CC7A54FB95A5217 /* MJRefreshBackGifFooter.m */; }; - A324722BA42F21E98F158EA6C133D715 /* LookinServerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = EB54379A72A5DCC64A2C9D42F05AE928 /* LookinServerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A325C7E5098EB5641EF49D279EA9EF03 /* JXCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FEE8F6EEF601125225DCB1FEACED91C /* JXCategoryTitleView.m */; }; - A3EA39A13714B3103B82F4066A642F53 /* MJExtensionConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 65CCB6F10EC6B284E771B999975CE0B0 /* MJExtensionConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A59F64C74CB407EBC0385F026FC7234A /* LYEmptyView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F19C07EBC4D3E8EF1AD6C474E7F24FE /* LYEmptyView-dummy.m */; }; - A643679AC9795083558C6D8E33AF6151 /* JXCategoryBaseCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 72B1B153E1909E0A9DFA6E6097FD363D /* JXCategoryBaseCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6728DA26A7C457B78A7A3CCFA9D9A10 /* UILabel+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = D5909A44E1AC01893309CADDDBC4E50C /* UILabel+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6B2B022993BBC55550CFBB0A0C78209 /* LookinConnectionAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C75F181A3E07F7E7B4B017B48488393 /* LookinConnectionAttachment.m */; }; - A6FCF74348D1907891FBDE3F2E331136 /* DZNEmptyDataSet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6523AFC889399B6B25C08CCBEEE2F0B6 /* DZNEmptyDataSet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A760FF1452F08B787F0997D91F4A2C98 /* HWPageSheetPresentingAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = F5EB73BE761C595601603CE39EC8D850 /* HWPageSheetPresentingAnimation.m */; }; - A839428F403C52D8AA3466B65E20C27A /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CE2B5265F3721FD7EAE15556CCDB1151 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B94BD4B7CE09D63E43117EFC4B15D0D /* UIScrollView+MJRefresh.m */; }; - A8AD2AE9695630E93DE504211EBAFBF1 /* LKS_CustomDisplayItemsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 98935AEC9F6608D5CCBFEF667B9F658A /* LKS_CustomDisplayItemsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A92AB5E65CA85947368E46E6627F1BFB /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B2553B72F322F7DC0ED38BB760DDC6 /* UIButton+WebCache.m */; }; - A93BA1C5A4FFEF3ACF371690485A2703 /* NSObject+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A9477BE731926B610D9B847EF5B7347 /* NSObject+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A9609EEBDD5FD40292925E80ED84D5DF /* LookinServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D00FB0A2824B0B4E8A345D97C52AA3B /* LookinServer-dummy.m */; }; - A9A49E4A3BE8882F60DF32BAF39DE191 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 253C2858A52DB3FD4BE13D65D2B6C2A6 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A9BEDE2ADF9D1E0D0D1A241806A1A486 /* LKSConfigManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32E665F5EEABCF137D52CE4A3889C9F0 /* LKSConfigManager.m */; }; - AA1EA8F0F0470F1596B1FFA58ABF3375 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B67A3C0E25A19B996355E03ED4A3CD /* SDWebImageDownloaderOperation.m */; }; - ABCB80C4813C849FC93D57676820C907 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C2A4CA80B5FE7CB8927FAEE4CAF5F4 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC14E56ECA7A4980A8E1CA68E800B12C /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6099FBA2A3EE3D602B49D82E19FA5875 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC710813CB6A1DAEEE45914402F864D2 /* MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D7E307063029FFE21DDCDC0455FA473 /* MJProperty.m */; }; - AD01931D200C49153984E27CBCEFE9D1 /* FLAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D1046C4A0F4D596969B881D83BCC0FA1 /* FLAnimatedImage.m */; }; - AD395F6BD7F53258A431E9479D07C6AF /* JXCategoryTitleImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = B28192DA39251C0AC1C30AE245A9A547 /* JXCategoryTitleImageCellModel.m */; }; - AE69A3B75BEEB9E2C54168BF0C502BC6 /* LKS_RequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DF017A36F518C19E10298190FD8A84C4 /* LKS_RequestHandler.m */; }; - AE7B02645B8F769CA5F215EE8F7CC5B0 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AB8065F8811289957B59E9EBA6B47 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF17C7BD3344504E243E234004B4593E /* JXCategoryIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1817B2506E6D89DAFA8176C4A51738C0 /* JXCategoryIndicatorView.m */; }; - AF185CDCA462AD6450543676951C82F9 /* LKS_ObjectRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = DBFA6FCFCE1CB3F169BDBDCE936950B5 /* LKS_ObjectRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFD1D411A9387DCEC6F0034653E23787 /* DZNEmptyDataSet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B8322800FD1F06BC2FEA3A9EEA874E20 /* DZNEmptyDataSet-dummy.m */; }; - AFDC0B8255B2F3CED8E609F8A3BD1CDB /* LKS_AttrGroupsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 00AE10F23D2B898E9F45884FD9904B2F /* LKS_AttrGroupsMaker.m */; }; - B01F27CEAE1971DEC56A8811FE669EB6 /* UIViewController+Presentation.m in Sources */ = {isa = PBXBuildFile; fileRef = F6CDCEC9BF52B36734600241EB9CC345 /* UIViewController+Presentation.m */; }; - B030B558BE97E0225652EFB8C8FA431F /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C3DBF2503619D6F278D203DBF5D29B4E /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B03761E468C3B0F1BFEB2401CF2D5245 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = E7485AA213719656370219B55A0AAE3C /* MJRefreshBackStateFooter.m */; }; - B0F512045830FAB66AE7526E35501800 /* JXCategoryImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D51E4D4230E01D5F3D9340BDF320C3E1 /* JXCategoryImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2704AFFC5CC053154839DB44924D255 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = FEE19DBCD45615CC389DD7223D3C447A /* SDImageCoderHelper.m */; }; - B2B5444DFE63D2835A7561C1D64C9344 /* LKS_CustomAttrModificationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EFF4D34DD5391DCE7D206B11306BCE5 /* LKS_CustomAttrModificationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2BC43DEC8DE2B9234693FE3782AB76C /* LKSConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A4CFB2BE169777F50B29077639FCFEC4 /* LKSConfigManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2E706AF15CBC9BBDA6B180AA008345E /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0FFF1AB10AC30C72DB3B2F106B23E5B3 /* PrivacyInfo.xcprivacy */; }; - B331CE2D3DEB461E738B886086A365F9 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EA970CCF2164DC59ECEE9DE06B1BCBA /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B48A975992E58328254C494F133DE467 /* NSObject+MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = D44C8E719DA4251716FDA4B2519C022D /* NSObject+MJProperty.m */; }; - B4F231C5CBAB3D4A184699D0066E0E83 /* SDImageAWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = BF3C6AEB909F4472F8D8E4E21B25B716 /* SDImageAWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B565C08CE947CF591B1D3582272D5E1D /* LKS_CustomAttrSetterManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F363F53534ED7FE5A4BB0A1E1863D5E7 /* LKS_CustomAttrSetterManager.m */; }; - B59E60FBC9665FC1061B88B8E6FD9FAF /* Masonry-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 128CF11122A7C2009F733361122E39A1 /* Masonry-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5AF87C11A465F666473F6191D173905 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = CF6ABA6691731EEA533F56170FB03C5C /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5C521FFB8E09DFE348238E21556842F /* UILabel+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BD526972490CFC41EE7106FF8E272CC /* UILabel+LookinServer.m */; }; - B66356D4E7E43B3D15324569AA7EBB05 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 304D443FD07AF14BA7F1628D80971669 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B680C2604BD8BC9644AE7C67BC46B9BB /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A98EB9CE425ECC87D9747E4EAC3DB0C /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B741DBE2A466E6211F879EF997D9322D /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BC7EB117F009B160822B3FFCCC63F2A /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B79864F972C51037B350802D8CD48024 /* LKS_GestureTargetActionsSearcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C81473AB6162F68681F317D8EC207A4C /* LKS_GestureTargetActionsSearcher.m */; }; - B81566F19789EBD9BE2714E2A6059D36 /* LookinDisplayItem.m in Sources */ = {isa = PBXBuildFile; fileRef = AE19AE8E2478EF2E39C49272A1998EFE /* LookinDisplayItem.m */; }; - B8CA1F338C44C633916650FD85DA5A30 /* HWPanModalPresentationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 87888E540A812F012C68F804E8F5AE7B /* HWPanModalPresentationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B948DCB652CEF1509FBE410D85844A53 /* JXCategoryView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3EF9D4544217A0B4E13DA6B530C974 /* JXCategoryView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B95C63A039D9D08896421291DEBD3AEB /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = C909F8904D301FB96965DD62CE4E2CA7 /* SDWebImageCacheKeyFilter.m */; }; - B987864019E987FE32AB26A9CF2C8E12 /* UIViewController+PanModalDefault.h in Headers */ = {isa = PBXBuildFile; fileRef = E8C71212CAB0DCBF4059538A93053A4A /* UIViewController+PanModalDefault.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA904ABA8ED36CC4E5EB2B2004CA1F18 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = AE4CC2528765A45B472AD5B813D01119 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BACAA91A92F35CD7E7795232A83F21D1 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6516BB90D0CA47F75712B356350A9FC1 /* AFNetworkActivityIndicatorManager.m */; }; - BADA31750A2136D073EDA4461DBE1EEA /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 731A2E2A09E554B786F7BD8D9285D1CC /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBA61EF31BFDFA6FCA34DC4EBE6E1D9A /* NSString+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = 92670C1E3C13D6C6157E7AFB4347DB17 /* NSString+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBF5FDA7D647517E2F904FE8E5596D96 /* LKS_AttrGroupsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 313050E8524ED89E2B2CF8F5C1CC7633 /* LKS_AttrGroupsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 83340409B38BF2A20F089A4B919FC02F /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC5458210A973BC7A29D1F45D458A14B /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E8510A179E756198B5FC915A27736E /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC7A1933CCF40C3C5E2E4A70AD2D0657 /* LookinDisplayItemDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = 15D6A20A536D39FB4F4DE78CEC3512CE /* LookinDisplayItemDetail.m */; }; - BCDC1E1D46DD124B5726A064D2EE66A3 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 373258A2F6DFCE8ADD1C1D42DE5EF5D3 /* UIImage+MultiFormat.m */; }; - BCEEAFC24178DE5AABACC74245CE1739 /* JXCategoryIndicatorDotLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = C398AC4FA166ECBDBFA37681D3C108CC /* JXCategoryIndicatorDotLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BCEFDE57BB0E0B36731C8D39FFA1BE2C /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CE10A014B3B7826BFF751346CE7495 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD2F6B06ADB5136DA881D1B918367125 /* UIViewController+PanModalPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A1E2D85798C902C2A1E1B714EF78587 /* UIViewController+PanModalPresenter.m */; }; - BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1A1849BD6BB4B796D54DCBEF79FB7A /* UICollectionViewLayout+MJRefresh.m */; }; - BD7E02AB6057AD5A6AC513C34D508135 /* JXCategoryIndicatorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EE479D553AE99C7C893E8B21299B3AC /* JXCategoryIndicatorBackgroundView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BDBE494BAC544843982C3CA96A6C41DD /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C1E503B34448DC968FB5BDFADFAE70F /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE4F0DF600FBF07E812D262B293CF76C /* UIView+LSTPV.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B1E80842E43848FFB0F162AFF96E774 /* UIView+LSTPV.m */; }; - BE7F6E08A9BDA2EF6FA625EB5CD685EC /* JXCategoryCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E81450568229FA708143E74A7A580F89 /* JXCategoryCollectionView.m */; }; - BF0C3D2782FE1425C2F1F8827132A94B /* MJFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 99650956C6DC18187951AE72D50E44A2 /* MJFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF22D137EF6324675FA50080C5D93C00 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 05FF40C91ADEB302CBF4314535A1A6E7 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFAC671767912906E90060B0F4BED5FB /* LookinCustomAttrModification.h in Headers */ = {isa = PBXBuildFile; fileRef = F5B865CFCA1FF1600CB766B9BC34B8D9 /* LookinCustomAttrModification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BFD8EC99CD8DA66E3C6C0B3EE8CC4859 /* JXCategoryNumberCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 292BBC0398F56F3818017A7314541B45 /* JXCategoryNumberCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C04D578067F77AAB6717D32712CC39A2 /* HWPanModal-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EFF4EEBD779C7DB39B6B044205385FA /* HWPanModal-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C07F8A334C739FD38D9CB5C5239D683F /* JXCategoryTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = E01ADBA325921AF74B0FBD58F7BB5032 /* JXCategoryTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C0D7926E41A294ACA98D7B033B283919 /* WKWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B052BF123A39C5CF4B531584A2A83BED /* WKWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C16483526F6C6287240A75EDCB7E2F2F /* FLAnimatedImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD2F6CD21BCE8D4DC6CE0FB91B91CB /* FLAnimatedImage-dummy.m */; }; - C1D9802BE2A6410FFDFB1650FB9BA317 /* LookinDisplayItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE8AE5699FC4ACD4283D4626ACDF742 /* LookinDisplayItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1DD8C6A64F948E4C53560C76B995DA4 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 37977014CE5B8A9E93F1EC56C3AC6D52 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2033A68F13923BF9B3EE19F39FC1411 /* UIColor+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = A810CCF3953514350B557ABBEEBE5FF6 /* UIColor+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2068AEACC2D9C7F1FFE41AA25B12A68 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BFABBA210FF6BEF09CABCCBE8AE590F /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C22BFD04EAB76981E7F112D57A1F5E79 /* JXCategoryNumberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B51D3C0C65114DF44F6DDB3ED9C4E4E /* JXCategoryNumberCell.m */; }; - C2840BF1950FF7EE2DCD6D55F768A49C /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A2AEB4C3E4F6147F107DF9376FA7264 /* UIImage+GIF.m */; }; + A1DC9EFDF50DF0EAF24D9D7C219AD2C1 /* NSObject+MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = BA484D3460A1CAAE9A30E333F8FEF7D5 /* NSObject+MJProperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1E44277704AD68E867FD7C955A6632D /* MJRefreshBackGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 099ABFBE80EFA2F4DEC75B206DDA6F67 /* MJRefreshBackGifFooter.m */; }; + A324722BA42F21E98F158EA6C133D715 /* LookinServerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = E2D7300C7CE7808A8442A4388EB1F39F /* LookinServerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A325C7E5098EB5641EF49D279EA9EF03 /* JXCategoryTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 994082D97E1CB7E4A8A16621ED4CA03B /* JXCategoryTitleView.m */; }; + A3EA39A13714B3103B82F4066A642F53 /* MJExtensionConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EBDFDD5302359A5FEBDF6E7EF669642 /* MJExtensionConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A59F64C74CB407EBC0385F026FC7234A /* LYEmptyView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D7459F1B3692611E84C7237F8A8EA38D /* LYEmptyView-dummy.m */; }; + A643679AC9795083558C6D8E33AF6151 /* JXCategoryBaseCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 7378147CC792F0E2D70589D723E75D8C /* JXCategoryBaseCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6728DA26A7C457B78A7A3CCFA9D9A10 /* UILabel+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2582063FAB255AD2C3B395722AD71B01 /* UILabel+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6B2B022993BBC55550CFBB0A0C78209 /* LookinConnectionAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B8C93AD319F378DC20803CB9F69D59D /* LookinConnectionAttachment.m */; }; + A6FCF74348D1907891FBDE3F2E331136 /* DZNEmptyDataSet-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E65A3C5316B5D16D9BA5FBB6E692FDDD /* DZNEmptyDataSet-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A71E222C76A20B18600A6DE4091CFB0E /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = 19477F689A241293943E6DAEC7809F4F /* SSZipArchive.m */; }; + A760FF1452F08B787F0997D91F4A2C98 /* HWPageSheetPresentingAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BA0B6E1C928CC5B614C19887B987C09 /* HWPageSheetPresentingAnimation.m */; }; + A839428F403C52D8AA3466B65E20C27A /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B98A886462BC99072A046EEF76F5E1C /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A86CC1AFDFDD692DC4EE66F57C0F39E6 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 064A69D8B552879D7796F22E265077D9 /* UIScrollView+MJRefresh.m */; }; + A8AD2AE9695630E93DE504211EBAFBF1 /* LKS_CustomDisplayItemsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = A63180F0C773029E91215EEB353265C4 /* LKS_CustomDisplayItemsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A90260F860E51EC89130250EA3E61F22 /* SSZipArchive-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D83421C2502DEB97A44C598BE21EA296 /* SSZipArchive-dummy.m */; }; + A92AB5E65CA85947368E46E6627F1BFB /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DF58A5D7E3000FB7877B0DD30BA16FF /* UIButton+WebCache.m */; }; + A93BA1C5A4FFEF3ACF371690485A2703 /* NSObject+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = DDD62A03019F7CD9137BEE1E93471445 /* NSObject+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9609EEBDD5FD40292925E80ED84D5DF /* LookinServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F7A92B30F0EF258777457F8494801128 /* LookinServer-dummy.m */; }; + A9A49E4A3BE8882F60DF32BAF39DE191 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 844AEFD4FF7F7E80597BB71010218009 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9BEDE2ADF9D1E0D0D1A241806A1A486 /* LKSConfigManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AEC2B0BCCF800B9E27EEDCAD6ECB138 /* LKSConfigManager.m */; }; + AA1EA8F0F0470F1596B1FFA58ABF3375 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B618AD54568085441B258C0BFB68D1FB /* SDWebImageDownloaderOperation.m */; }; + AAF2B7BD4C56295DBA1BB6039AC0EDD4 /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C3CE4647FE4CED3DEFE776630B7284F /* ZipArchive.h */; settings = {ATTRIBUTES = (Project, ); }; }; + ABCB80C4813C849FC93D57676820C907 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = BEBF633302636EB455572D1BB0481C65 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC14E56ECA7A4980A8E1CA68E800B12C /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 613C30128B9E1F76CE751AEF4DF4AD1F /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC710813CB6A1DAEEE45914402F864D2 /* MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C30903C3F8001C37FDAC3BD7410223D /* MJProperty.m */; }; + AD01931D200C49153984E27CBCEFE9D1 /* FLAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0079155AD5A15B6346CE4DD7B4C5AF05 /* FLAnimatedImage.m */; }; + AD395F6BD7F53258A431E9479D07C6AF /* JXCategoryTitleImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F9C31CE20A9FC3A93220859F3B365A /* JXCategoryTitleImageCellModel.m */; }; + AE0F1284A9C414203C1D5C66EDE95E8E /* mz_strm.h in Headers */ = {isa = PBXBuildFile; fileRef = CB807F985CDE872D9B41A7A326A880B4 /* mz_strm.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AE69A3B75BEEB9E2C54168BF0C502BC6 /* LKS_RequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CB75A5B2A3704A67AE8EBCD2E084F76 /* LKS_RequestHandler.m */; }; + AE7B02645B8F769CA5F215EE8F7CC5B0 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C758EAB6412C592511A197D1BD7BD3 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF17C7BD3344504E243E234004B4593E /* JXCategoryIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = E850A898202F08F5D8832C1A476BFC61 /* JXCategoryIndicatorView.m */; }; + AF185CDCA462AD6450543676951C82F9 /* LKS_ObjectRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E5D6A1DE9751FB33B1F22D67AA06638 /* LKS_ObjectRegistry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFD1D411A9387DCEC6F0034653E23787 /* DZNEmptyDataSet-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F6728D0708813AFDD17C58BF882AF21 /* DZNEmptyDataSet-dummy.m */; }; + AFDC0B8255B2F3CED8E609F8A3BD1CDB /* LKS_AttrGroupsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 52C589D40F94F3744B770C369237A59D /* LKS_AttrGroupsMaker.m */; }; + B01F27CEAE1971DEC56A8811FE669EB6 /* UIViewController+Presentation.m in Sources */ = {isa = PBXBuildFile; fileRef = 60DE3C334949936CB03401378B243088 /* UIViewController+Presentation.m */; }; + B030B558BE97E0225652EFB8C8FA431F /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DC3138C5F0B6B2DB074A075062C6FAC /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B03761E468C3B0F1BFEB2401CF2D5245 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + B09F08548ACA8379445F6525011EE219 /* MJRefreshBackStateFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 07721EF30DD781C3E73164D54471C5B3 /* MJRefreshBackStateFooter.m */; }; + B0F512045830FAB66AE7526E35501800 /* JXCategoryImageCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AC24F43085D93918FC2FF8EA9D4A9BA /* JXCategoryImageCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2704AFFC5CC053154839DB44924D255 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 275F268E2D4AE549550400B573C1667D /* SDImageCoderHelper.m */; }; + B2B5444DFE63D2835A7561C1D64C9344 /* LKS_CustomAttrModificationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C7A3A7B1E2977C0A4D17055B849A7B2 /* LKS_CustomAttrModificationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2BC43DEC8DE2B9234693FE3782AB76C /* LKSConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 731B422E4100ABB7BB6E1F387EA92CA6 /* LKSConfigManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B331CE2D3DEB461E738B886086A365F9 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9FA2A6C19CDFE33720642A875BA2EA /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B48A975992E58328254C494F133DE467 /* NSObject+MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 9834B5FFACD633FFCD21134C05396420 /* NSObject+MJProperty.m */; }; + B4DF1CDCE2413AF579E102954A4033F6 /* mz_strm_os_posix.c in Sources */ = {isa = PBXBuildFile; fileRef = CC5AD50A387E797ED45F5031160FCC1B /* mz_strm_os_posix.c */; }; + B4F231C5CBAB3D4A184699D0066E0E83 /* SDImageAWebPCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E35A20C3FEB049D0F609FBAFE38C467 /* SDImageAWebPCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B565C08CE947CF591B1D3582272D5E1D /* LKS_CustomAttrSetterManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 06CC8DC68E679AF1CA3517F011FD585A /* LKS_CustomAttrSetterManager.m */; }; + B59E60FBC9665FC1061B88B8E6FD9FAF /* Masonry-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 84141539AD2EF68E8799DAC96873E247 /* Masonry-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5AF87C11A465F666473F6191D173905 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 63134755B811B0A20FAAA4D0FDAB7FF0 /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5C521FFB8E09DFE348238E21556842F /* UILabel+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9158E1A18D64B6BEBD8A536D3C5AFC15 /* UILabel+LookinServer.m */; }; + B6415624A82D88E4C7B00A49B741DCD1 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8B8648796F69C213249771AF45760CD0 /* PrivacyInfo.xcprivacy */; }; + B66356D4E7E43B3D15324569AA7EBB05 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = B6DEC1D3D0D45845A0C362AB6D6856E2 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B680C2604BD8BC9644AE7C67BC46B9BB /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 8216CB9249FAE1BE5541140EAF873038 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B741DBE2A466E6211F879EF997D9322D /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 297CD54CDF904CABF1F66E0A0DCA46A9 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B79864F972C51037B350802D8CD48024 /* LKS_GestureTargetActionsSearcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B43E5461D43BFAECF375AB2DC8E85E /* LKS_GestureTargetActionsSearcher.m */; }; + B81566F19789EBD9BE2714E2A6059D36 /* LookinDisplayItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C26AB205827C5EC4F0B52B2B9F01198E /* LookinDisplayItem.m */; }; + B8CA1F338C44C633916650FD85DA5A30 /* HWPanModalPresentationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9ACA3F6C5DB4154DEE785FCCC90C1D3D /* HWPanModalPresentationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B948DCB652CEF1509FBE410D85844A53 /* JXCategoryView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E500FBB10C2688926FE711E6F0799D44 /* JXCategoryView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B95C63A039D9D08896421291DEBD3AEB /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 72BDFA68030C9CDCE44C43E0092AEE32 /* SDWebImageCacheKeyFilter.m */; }; + B987864019E987FE32AB26A9CF2C8E12 /* UIViewController+PanModalDefault.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE40ABE514BA94E77FE7FDB6CE98130 /* UIViewController+PanModalDefault.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA904ABA8ED36CC4E5EB2B2004CA1F18 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF40777BE2905C8C5AF4879273482C0 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BACAA91A92F35CD7E7795232A83F21D1 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 666B288F1B04D5B5933AC43405CB0DF7 /* AFNetworkActivityIndicatorManager.m */; }; + BADA31750A2136D073EDA4461DBE1EEA /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AFD090B3E30E20C52F02159E880012A /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBA61EF31BFDFA6FCA34DC4EBE6E1D9A /* NSString+Lookin.h in Headers */ = {isa = PBXBuildFile; fileRef = D85E4436F11F7C2B5E5E62E6883830C9 /* NSString+Lookin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBF5FDA7D647517E2F904FE8E5596D96 /* LKS_AttrGroupsMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6996BD8F22035A9DB062483A3FF3BFFC /* LKS_AttrGroupsMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC2F9B1D6986FEB23B4FB1288B512538 /* MJRefreshNormalTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = A2031EBA2E667FA06ACE033F6EF29FEF /* MJRefreshNormalTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC5458210A973BC7A29D1F45D458A14B /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F87A76C86DFD48AB232333E21FDDC25 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC7A1933CCF40C3C5E2E4A70AD2D0657 /* LookinDisplayItemDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C17FECDC099A898CAEC3A839A6AD128 /* LookinDisplayItemDetail.m */; }; + BCDC1E1D46DD124B5726A064D2EE66A3 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AAAA1FDAA61248D5726D1F9E837C2F5 /* UIImage+MultiFormat.m */; }; + BCEEAFC24178DE5AABACC74245CE1739 /* JXCategoryIndicatorDotLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = BF5E8A1B56E1CB24CE62F9229FFDA081 /* JXCategoryIndicatorDotLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BCEFDE57BB0E0B36731C8D39FFA1BE2C /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 17EB79001C8413E3DA65E7EB9BF22349 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD2F6B06ADB5136DA881D1B918367125 /* UIViewController+PanModalPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF65D21498E52597FA5C3E47AACB489 /* UIViewController+PanModalPresenter.m */; }; + BD30193C1E3D7B1F17B1B1F3F08BE655 /* UICollectionViewLayout+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BC07909714244E42BDEDA8EF0E7EFA8 /* UICollectionViewLayout+MJRefresh.m */; }; + BD7E02AB6057AD5A6AC513C34D508135 /* JXCategoryIndicatorBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = A3E7B39FA8615318D0B9DBA376B5E5BB /* JXCategoryIndicatorBackgroundView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BDBE494BAC544843982C3CA96A6C41DD /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 09674DC0D83C3B2D5C0CB5DF74A36828 /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE4F0DF600FBF07E812D262B293CF76C /* UIView+LSTPV.m in Sources */ = {isa = PBXBuildFile; fileRef = 302975DFD9229749EE5D0CC495C097B3 /* UIView+LSTPV.m */; }; + BE7F6E08A9BDA2EF6FA625EB5CD685EC /* JXCategoryCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C4EB6BF2D4CE9365194BD60FD83F78F /* JXCategoryCollectionView.m */; }; + BF0C3D2782FE1425C2F1F8827132A94B /* MJFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F224C8A22DB0EAEE38D71221511DDFE /* MJFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF22D137EF6324675FA50080C5D93C00 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 582878B2C284C868038DC1140C755280 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BFAC671767912906E90060B0F4BED5FB /* LookinCustomAttrModification.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9CBD37D8F9BF7DECEA75B97A1B5072 /* LookinCustomAttrModification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BFD8EC99CD8DA66E3C6C0B3EE8CC4859 /* JXCategoryNumberCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367271CF6B9B86B9F6378B464235E15 /* JXCategoryNumberCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C04D578067F77AAB6717D32712CC39A2 /* HWPanModal-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 30707FCDD9AD91DBE93F5F78AF85037D /* HWPanModal-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C07F8A334C739FD38D9CB5C5239D683F /* JXCategoryTitleCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = EEADEEAE0BFAF0DC677B571C63E1C606 /* JXCategoryTitleCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C0D7926E41A294ACA98D7B033B283919 /* WKWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = F1CF780FAB50332DD27BCA8132E35917 /* WKWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C16483526F6C6287240A75EDCB7E2F2F /* FLAnimatedImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E1956172D6145D28B4A986C61A84B881 /* FLAnimatedImage-dummy.m */; }; + C1D9802BE2A6410FFDFB1650FB9BA317 /* LookinDisplayItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 5811FCC0F688112EBBC68172735EE311 /* LookinDisplayItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1DD8C6A64F948E4C53560C76B995DA4 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 96F67C871FB0FB53D6A184EB01599752 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2033A68F13923BF9B3EE19F39FC1411 /* UIColor+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 45CD236134E5D2F49DF88F4618260F0E /* UIColor+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2068AEACC2D9C7F1FFE41AA25B12A68 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C56CE434AD64B4F0203646AFEABDC62C /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C22BFD04EAB76981E7F112D57A1F5E79 /* JXCategoryNumberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2873D39F50AC194637181D598DA90E8 /* JXCategoryNumberCell.m */; }; + C2840BF1950FF7EE2DCD6D55F768A49C /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 09693E19C583A7DD12C09F2304F3A3E2 /* UIImage+GIF.m */; }; C2F8C43CFD4C890405F217DA7E00C839 /* Pods-CustomKeyboard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DDD0462C32F55EF5E9CB1056459809F /* Pods-CustomKeyboard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2FE60A10C792613E45031AE6E851ECB /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CE35A6903D3E473ACA2703E7286A28E /* MASViewConstraint.m */; }; - C4CC01ED368863C6E3220988FBC6CEFB /* LKS_CustomAttrSetterManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A0925E96742E33F78D548F10A7C0475D /* LKS_CustomAttrSetterManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C9E32D40F89FB7470530B4F8AAB6162 /* MJRefreshComponent.m */; }; - C6A100159974349FEAAC99B82BE0F872 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = C8ED101794ADA1876F4FFCBD1F79D622 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C6FEC1088121FEA7DDC3384B7ECF3B44 /* LKS_Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CA454A209E71894BC9366B10B95D086 /* LKS_Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C71935C30C1AEDF32B96670BD8FA64CE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */; }; - C74589E03918328E4D27EFCBF6C4A0B8 /* JXCategoryBaseCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D7A76984F1E3BB7440B31DF8D5447F0 /* JXCategoryBaseCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C857B8D2D0BAA5A8A764F9E1C4B85807 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DB1B5D6DA097974C176F91F3853055EC /* ViewController+MASAdditions.m */; }; - C8685678D1B020F87365D022216FFE29 /* JXCategoryIndicatorImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = EF2876A2D62001FE741FE92492A10CFF /* JXCategoryIndicatorImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8771885BEA9EA0BD2E2C474587325E2 /* LKS_ExportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 207535A186296DE018201ED1B7DDD076 /* LKS_ExportManager.m */; }; - C8EC35DFB0945DBE2F2FF9ECFE6D9711 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = D8B8A062E76BF87D54F581F6428D4E28 /* NSLayoutConstraint+MASDebugAdditions.m */; }; - C922BFFF717515E5878910DF4078CE1E /* JXCategoryIndicatorDotLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = FD7C0DEE68BC5E8256170F72FCC61847 /* JXCategoryIndicatorDotLineView.m */; }; - C93E972E75F84674690300123984EC43 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 321334B98147E6E64FCE056E3717FEE0 /* SDAssociatedObject.m */; }; - C992A335399F942237E754EE65C40CA5 /* LookinObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 371A20C759D3E78183B0BC7EA626FA2D /* LookinObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C993A4D0CFA51E567F458CA65C1298AA /* MBProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A8AF8342462E3EDE8E3D40F840DFA00C /* MBProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9A72F0A93329C42B77395B0F6CEA26C /* HWPanModalPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A10B1AFB4B6959F4A11AB1B1BC4A437 /* HWPanModalPresentable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9B63C6ED2ED691EA83D3EE65939444B /* Lookin_PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E05D85B85A84A7D628539AD042EC841 /* Lookin_PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9E19D164C26414115CC969ED9A303C1 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DEDD90DB6CF7DD05B6B753765E65AAD /* MASLayoutConstraint.m */; }; - C9E8C9372C2DA29D302B058BE3AE9877 /* CALayer+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 77DEC7B6CE458C6AAB89A25A3E05BA4B /* CALayer+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA1E0DCDF679EA2DE2ED0915426E1D04 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 98901829A364C7B4F13375AEB6AA0FBE /* SDWeakProxy.m */; }; - CA543D086B4C8E314FB43F0B78147FE9 /* LSTTimer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 88F65BAED091224357C1ABFEA1C484FA /* LSTTimer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA56274BE7CBB3E759E0364785DF9799 /* Lookin_PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C3DB4C7661755654D296A929BE2CE7 /* Lookin_PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA9AFE3460622CC65F75A2DDE845F6E9 /* JXPagerSmoothView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B167FA26CB7B8DC98E1A68B1B44BA8A /* JXPagerSmoothView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE2AF36EBB17CDA2652CBADD4A7ABF82 /* JXCategoryImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 570A4EA50A989D93BDAC90837E4F3637 /* JXCategoryImageCellModel.m */; }; - CE86196C00DC1D658B6CB7D47A0233AA /* LKS_ConnectionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 769C3408F11A51A90B589A6DBB334C55 /* LKS_ConnectionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEC9EF043F69710AC29940EB4E1E2B19 /* RTLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A80188C121A76950A88A3321260BFD /* RTLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF7005F2C42AC2E2DD6D437D52C7048B /* HWPresentingVCAnimatedTransitioning.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F1989DBFF7A3D94A0CF758DF35B3F6 /* HWPresentingVCAnimatedTransitioning.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFF8D1A5E4C2097EF05E1021FE112886 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = A56060BC793E00F370FD0DF3B4157376 /* SDWebImageIndicator.m */; }; - D06BB547D59D183FD1DDD84DEBAC9EE8 /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D6771046C7CF97C82B7D303F2AFD49E /* SDWebImageCacheSerializer.m */; }; - D08901EA319887BE6D694F8333BE8D1F /* JXCategoryIndicatorTriangleView.m in Sources */ = {isa = PBXBuildFile; fileRef = C31C4A7197700436AFBAB631C088A6AE /* JXCategoryIndicatorTriangleView.m */; }; - D091F05269EE0566B665B00C7D912F8E /* Lookin_PTChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 862D8BDF52FBE8FCF3A562F5A62C802E /* Lookin_PTChannel.m */; }; - D0E37358C3DCF2A8A572C4F38BB0569B /* JXCategoryListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = C63CFE9D73B31D9EBEF51E32F9AC7286 /* JXCategoryListContainerView.m */; }; - D121163078CA9BBE54A83BD73EF784CF /* LSTPopViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D7595F0F8BE4F40C64D68F0D491C6C6 /* LSTPopViewProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1230E19DD1507E6370B80DF6653AC2A /* NSArray+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AAF4EE016C54A7F264F9B8FBB0853C8 /* NSArray+Lookin.m */; }; - D2AF9A7FD73B95960FDA4FD06C4BED08 /* NSObject+MJKeyValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B41D364B66F85CF33EB15116929CF48 /* NSObject+MJKeyValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D2CD8848F856EC9942A76610AAE66F0A /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E4718E4C19C181FBAEBD080580F8C026 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D31558927DE3F62D1BB1FC416E6F237D /* JXCategoryDotCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AF0216318F4C1EBD4207012E5E70EB1 /* JXCategoryDotCellModel.m */; }; - D3615499AFE4D2A8EC2E773F4D8A82B2 /* KeyValueObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 05D708E8F9065868500ABC98E789B739 /* KeyValueObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D380F9C945002DBF2E7D64983ABDC890 /* JXPagerListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 57460121EED43E41D624C46A92FE9E08 /* JXPagerListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D559CC4D0695CEE05F3B4C1C06475044 /* UIImageView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 310DC522C0637DDB20D8D38412CB4153 /* UIImageView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5C046C46961BE465293625D6B870620 /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 18106F0763EC023048DB3F77457B9596 /* AFNetworking-dummy.m */; }; - D62A672EEB252581BD972DDA862BE1DD /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FB84DF0F5016EBAF04FE5FE9F22081C0 /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D662C83ECE8BEDA5FFB52F3575CA3E1A /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = DEEA81C89F22AF300ABFA4E5550B7B06 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D663837F4347AF58660EE6F7FD426ECE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - D737D93725B0E072027AB6DA9C4DDDEC /* HWPanModalAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = CF7B4B9CB0EF762A12884D6FE337E068 /* HWPanModalAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D788BA4B9E8186271BA75CA52B30502C /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1069EA3A85D1A1A87FE087B0FE402436 /* View+MASAdditions.m */; }; - D7B3E8948DB04BD8FB6748419DA03EA9 /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B705DD8FCD54B3AFD61B70C82828ACE4 /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D89C7D5455E3E8E2D7EC6B880253BD9B /* LookinIvarTrace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6148399DD529311A930CEF2A2AC2FBD4 /* LookinIvarTrace.m */; }; - D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DE6908A836615F946533A6FEE623373 /* MJRefreshNormalTrailer.m */; }; - D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 800ECE845D6F36BE51A284DFCAE27307 /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 083F5143D12F213638EF9FE439F1CEFA /* MJRefresh.bundle */; }; - D93EA925FC24665584B3653514A56706 /* JXCategoryIndicatorImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = B3443BE7FBE80A857A146093C743D9BF /* JXCategoryIndicatorImageView.m */; }; - D968461E31E8FF3FF6BA1DC621B0433B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */; }; - DBA9500CBBA5FF6FCBBA115AE4D12152 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BE9E061AE26F933A7BBEFF3D94E9B32D /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBB7D12AC159E50D059772E4B6CF1D2F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - DBD9152526A180771BF7D7CD209B957E /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C354F545C0CC91C4033DC0D648B3819 /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCCBFE0D3914D33369C19AC135AB54AA /* HWBackgroundConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8583F4233091326F271A4C13185F5B /* HWBackgroundConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD7F63D4E4640C7386877BB787740272 /* LookinServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 469576EF612EDF18C057B4FB1E423192 /* LookinServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDA16FB9C21AD941442357DAE6939530 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB2B3782C3C4626F075A8900436D09D /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DDB268F1408C6AA5860C768310E9B9D6 /* LSTPopView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D7C0280DF79D384D6CBED6E080E02BB8 /* LSTPopView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE5A78F116018E2AC54714238276574D /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = BF141C03BAA67847DFB6B6DFF0D1CBFC /* UIActivityIndicatorView+AFNetworking.m */; }; - DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 741E2A603352D4102F1DAFBB68C69122 /* MJRefresh-dummy.m */; }; - DEA09692CF813A23899CD4949A9B6801 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 674659ECD497CB56B02FD385F68621CA /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DED9ADFC8CC65243FC54E008A853742C /* MJPropertyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 57A3558C23C0EFA92D7C80FBF8A6332A /* MJPropertyKey.m */; }; - DF2B15402CE105F5A8CE48BBDCFFD5DD /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B6D3BC0C4291E4CB154E7F35862BCB /* MASConstraint.m */; }; - DF525E5405FAD3B98B0C2D966EB2DD95 /* UIViewController+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A9BFDE06B11541EA7E87336A09C3816 /* UIViewController+LookinServer.m */; }; - E038F02D08E33A673A360ED34648A027 /* JXCategoryDotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 87D7822F88C7B9608DF7E50878B7970B /* JXCategoryDotCell.m */; }; - E0B48B9D5D45AF3500FC718459D66E6C /* LookinDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DD55E3EFF5073BEBD483D293C40A0D6 /* LookinDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0BCF21E9FA59F638C13ECCECC4D9690 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C202F1C5D8455CDDCAE965BD7BAAFC3B /* SDMemoryCache.m */; }; - E0DB14976CA6F6E604FD5E4EDF3378E7 /* JXPagerListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = E0742EB318197474CB672E4520705ACC /* JXPagerListContainerView.m */; }; - E1B4145C5201DB66B65520B36849067C /* HWPanModal-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AE235E52EF7BBF7348F9B4CAB71F7D8 /* HWPanModal-dummy.m */; }; - E1BF615DD0422B06C97542F03C879D41 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 860D7179002683A0368E532B751FC40E /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = B8F1319B150BB3DBD94BEB4C80F6F296 /* UIScrollView+MJExtension.m */; }; - E2DF1B379D9444D40D78320E90B1DC07 /* JXCategoryIndicatorLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = A527D460219BC25D3D8E05E8A68C23C9 /* JXCategoryIndicatorLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3FC6BEE41652C0500F57E0CB83B347F /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D7F6132E07FDE40130D6C51920456A21 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E42D6EF120A5C17DA2F6FD6473CE7E7A /* JXCategoryTitleVerticalZoomCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 230B07768E56A05E48373DAA2EAC05DE /* JXCategoryTitleVerticalZoomCellModel.m */; }; - E4773572BED239AA7D618F1C05BAF51E /* HWPanModalPresentationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EBFFAE4CE0471C78DB70755CFCC7609 /* HWPanModalPresentationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4B688B8A0D07AFB883A52250CA874A1 /* JXCategoryNumberCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5633AC0E53EEE3085AFE9CB101E6C0CF /* JXCategoryNumberCellModel.m */; }; - E4F1B478580D6D7328BC29607BDE46F6 /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A348B5BB8CB7A444F827000C95DAE5 /* UIImage+ExtendedCacheData.m */; }; - E50613C67DD02AF6EA825DA0B31EFFAD /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = E9FA8ED817E86A0F4415B8E73B62DCF8 /* SDImageGraphics.m */; }; - E52DCE394A6E02B6BA11FA64624F68F3 /* JXCategoryIndicatorParamsModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 30E03A823CD994C7C3DEA8D91B90C5DE /* JXCategoryIndicatorParamsModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E55B3151D86660E28CEABC3CDE6B1508 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0EE7E880EA65C279154531EF91F5E8 /* UIButton+AFNetworking.m */; }; - E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = BC7F3F9323470C634DC0D469E7C13B10 /* MJRefreshAutoGifFooter.m */; }; - E7520DAA65004368C61453B8A2740295 /* HWPanModalShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = 513C1A2EE22268DD51EB02AE24E3B579 /* HWPanModalShadow.m */; }; - E76969F9B01139118427505B18F9CD21 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 55488AFE93BF97340EF80D0D6C1E2CA0 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E77175BDAE33AADF66766B28AA710247 /* JXPagerMainTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = D564B14F434E85E8016FF192E33548A8 /* JXPagerMainTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7FEAB9F421F7EBAF021F792D8E9C4D6 /* LookinCustomDisplayItemInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 44B0B0F109E74E6F92B6497967BCE536 /* LookinCustomDisplayItemInfo.m */; }; - E82964ED7092CDCDAD08BC596A57B43A /* UIImage+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 60195DBDE404C5ECBC4E710D0F5E50E7 /* UIImage+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E8AB529B9E0B4C23921344F6C4ABFEA4 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E79D80C613F4B57826DA627018BB1C5 /* SDImageCoder.m */; }; - E930A5612DC6D120BE040AD17C6D1BCD /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = B9CA9F01554205BFBACCA553143C8676 /* MASViewAttribute.m */; }; - E97B2C62D3EE772504A939BEE7D6B459 /* HWPanModalPresentationAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = DB48FEC8123075E04395CF34F6F8227D /* HWPanModalPresentationAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA82B6D97C9C5D0558047AF552D63203 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3313EDBDBF7A4CA0DC32526D9ED0B496 /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EABCB60A26B06BF576E50BBD2F89A385 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - EB3DF628891F7D6AB114718AF760CB2A /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = ED332DDCE634104C42A2AF8F698EDFB2 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB646114ABEA7A4D6C2A724404778670 /* LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = E23048DA7D038B179D12173BA0F800DB /* LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC6671997676ABEBC34F2BE6C01266B1 /* LSTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 68AAA13D71385283DB69A35327BC2F47 /* LSTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE9A594E8A127B7273A7D82E1882497 /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC9B34262AED632D7EFB49804337648E /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E2CD23DF8D29ECCE7278412B1BFFFA2 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC9B8D81AEAF11E16149869246F7D4C1 /* JXCategoryFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = B82D0099E75E96FE5ACCF5B647388551 /* JXCategoryFactory.m */; }; - ECC6BC85943DB873215826A344A462FD /* JXCategoryIndicatorBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A4AC508097EE18B75D5D75FDA7CF5C1 /* JXCategoryIndicatorBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECE64B732F9FA7C402DDEEC58DCB9D98 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 07274C755D75F4A07C925D1DDE5FA529 /* SDImageAPNGCoder.m */; }; - ED8991A8AE7C04362C2BED3875DC1656 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD3D7BBD826081D1399FCDA65D59838 /* AFURLResponseSerialization.m */; }; - ED8F64FF98CFAE0B12CF60A1B0E6BAF8 /* SDCallbackQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 402736588AC9D07AA589F2943BAE3C89 /* SDCallbackQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EDB9E11998290348E4DFB5140D678942 /* HWPanContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 94CE97E5A9659D6EE58C83DCB52F73D5 /* HWPanContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE101918DFCDC1D6728BF910DB5AF29A /* JXPagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 044A47D1E36901CA79D51CC72EA995C9 /* JXPagerView.m */; }; - EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = D411D25D78A2F9E3CF17B20443ED9F40 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EED016DE8173CD38CC01D88CD2628984 /* NSString+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 12702606A08588ACD81E031A777BAB70 /* NSString+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEF0BF7E53148EB20BED242061BDC5ED /* JXCategoryTitleVerticalZoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 43BA7B9A75BE654B8242649314595C2D /* JXCategoryTitleVerticalZoomView.m */; }; - EF51279C724969A99FF5EF85F832FC00 /* LYEmptyView.h in Headers */ = {isa = PBXBuildFile; fileRef = 374CEB5E4CAC5B1889E4B3A57B47546E /* LYEmptyView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF6A6C725598F572A70C5FCEE328C184 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EAD8B1C822E0F2BAB884329D798190B /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1A04C26FAF235FD6B0AF30E7ACD5DD5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */; }; - F1ABB5428A1CCF2EAC42A4C3B388F25D /* JXCategoryIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DFC8007FA865661CA9E295ADD1014BA /* JXCategoryIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1D845E22D5B8FC6AFC3C2E41DA1B6DF /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C0082C9FF6875DA300AE3D8453DCB62 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2892F71762EC5410EE733B862712BB3 /* LYEmptyView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C00601FB0A8CFBE203150BAEC58E95FC /* LYEmptyView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2AD91050B1FE3C8BC78567F1FDE3ED5 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A6B26A93BDE64568CF7AF44D709974 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2C9F9038FBEFD951516694AE873A2B9 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DC759BB8D0141E0F064F3BCA7197315 /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3263D294D688533EB974E37C61F1E24 /* MJExtensionConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D0DE149DDBAC4B5DCFA0C2217970015 /* MJExtensionConst.m */; }; - F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = A7EA79586CBF531A23E8B00CFA7B82C7 /* MJRefreshBackFooter.m */; }; - F3DA1005917E252B306712DAAA287FB0 /* UIViewController+PanModalDefault.m in Sources */ = {isa = PBXBuildFile; fileRef = B95FDE5F86C6AC76E24A82E181084256 /* UIViewController+PanModalDefault.m */; }; - F3F4A6309BD95DFAA4DCC60A4E07C515 /* UITableView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = B77422F87DF00923771B3EF8E6C0A9BF /* UITableView+LookinServer.m */; }; - F43396B5CB23638E5509B3ED61AE6192 /* JXCategoryListContainerRTLCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D1E2DE4F6F4EB00BD41C7ABD504109 /* JXCategoryListContainerRTLCell.m */; }; - F458385338076D8734DD74BE4A94B33F /* UIColor+JXAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D72A1C48CB238B4D5F50BA925DEDEAE /* UIColor+JXAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F47EBDD360E642A0499A767BC7C17B4B /* HWPanIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6EFEE426EA2068D5FE2B73740D659 /* HWPanIndicatorView.m */; }; - F49CB22863CCFEC7817D259F27F91C57 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = E0DD4370E4AF2D75716AE1B5D67EABEB /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F53BE4449AE5896F76325E4DCB6D0B13 /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 839CCD719F79C7FBC2909C72822FB470 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F600BB873FD4764BAA9E02826F804486 /* FLAnimatedImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FAB126742756E8C628ED27AEC1B9567 /* FLAnimatedImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = AB1D54171867DC3B104DAE8C6D30F644 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F62B0711DA506CCB3DF79F65134566C7 /* Lookin_PTPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B523AAA92DB90BD5B95092AF6B85BFB /* Lookin_PTPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F68889CD481716EE5D6B75EBD8FD53A6 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A3E40CB9D351DF0E70C7A452071E82E1 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6A0D6EA1B5DC3FE04DC4A1B0A914121 /* UIView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = DC7496C927F9E881D19A203C207B5417 /* UIView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6A2DEEA8E8B92D365AFDDBD5E8C1218 /* NSObject+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = B6575913AB2C7FDA723D279165349FF6 /* NSObject+Lookin.m */; }; - F6A34F74BE7FE816114D7F3902296AF2 /* HWVisualEffectView.m in Sources */ = {isa = PBXBuildFile; fileRef = F5D8EBF4698D8B331794EA6F9BF47665 /* HWVisualEffectView.m */; }; - F6D1C960368EB1E067ABD0BFF707FC56 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 673C80521DE4F20FDE3E9A82E6EBEC53 /* MASConstraintMaker.m */; }; - F7623E7C314AA5010D8D0BD6ED4AAAD4 /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B61F60FDADCD1988F2A5F1B93F6FB0 /* AFImageDownloader.m */; }; - F847E3C26E5AC43CD73364AD3DF49AFE /* JXCategoryImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8067C53E08CA3787D9D5C3551F86EF9D /* JXCategoryImageCell.m */; }; - F8616FAFEE1124368CB96473CE20CDB4 /* LookinAttrIdentifiers.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4F497397BEDE35BC05F6C2B6D33577 /* LookinAttrIdentifiers.m */; }; - F8F1B1196CAA5114BA9A95AA7E6D6AEB /* UIBlurEffect+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = B041D1C998D0894DB89A31049CC1B872 /* UIBlurEffect+LookinServer.m */; }; - F9789D86D3279D71B398B550F27C3EFF /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4883D2BC668CDDE38C319AC414885077 /* AFSecurityPolicy.m */; }; - FA3021DED76B9B182CC9195A60EB1209 /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F0487226F5EBEBA3C6D3E1743C5260 /* NSBezierPath+SDRoundedCorners.m */; }; - FA6DA93357E2E9E9AADDFB3E39DEB6C2 /* NSObject+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = A566FD7AC8F85BE1E72F6DF11FEA6338 /* NSObject+LookinServer.m */; }; - FB6E014B34F33B89E5060DA1F00168A5 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77F4C0466DFC43C56F1D982F88EF74A0 /* ImageIO.framework */; }; - FC32143CA2A916F032F2B569313315AA /* HWPanContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 453FB14441528B4AE2CF3592D5874C54 /* HWPanContainerView.m */; }; - FCDEC6A53CF5517E1AF5B331FD65F6D9 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D9450A4AAE9542E6A1A0473B7DF812 /* SDImageCacheConfig.m */; }; - FCEE5BD645E95FF55468C4AB6D17CFDA /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F139F3BFF4ABD0678E7947E118F47774 /* UIImageView+HighlightedWebCache.m */; }; - FD3AF10F8723DABEE406D25592B5F562 /* FLAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 148EEB030F62D4D33B4C03AE45AD6C08 /* FLAnimatedImageView.m */; }; - FDACBA49610EA6F39CABB7FE44B137D1 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 36CBA5AB35EE7DE7B4A5CDBAC4BE20A8 /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDD4C4D4F03502D5CB0B8763009A0948 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDEE6097B6411333154FEF90A280E3E4 /* QuartzCore.framework */; }; - FE07C069C2E3543002CEB5D751ABA9AC /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C75FCCDECEB6A92A56B67E27033473B6 /* AFNetworkReachabilityManager.m */; }; - FEA8BA4F82CCBD1D28DCC7EF39FB4096 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = C74EA9D59FFCBE16D0C0E5B7B2D53516 /* SDImageCacheDefine.m */; }; - FEE3D901B4A4638F9E00935144E982B3 /* HWPanModalPresentableHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FC2E352D2D0DD942A9B4488E3654AB0 /* HWPanModalPresentableHandler.m */; }; - FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = B6242B29A00A9DBC6FF1CD09266BBF54 /* MJRefreshGifHeader.m */; }; - FF106518AFECA24E74B1D649E4F9AC70 /* HWPanIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A15AB0AB6FCF1589E2A6CEDC3CF0B95 /* HWPanIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FFC6D50089FA32FD7AAF25747E56EA60 /* LKS_CustomAttrGroupsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = AB2B98D8DC3605842D8528F53C1896A2 /* LKS_CustomAttrGroupsMaker.m */; }; + C2FE60A10C792613E45031AE6E851ECB /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FB4EE2E060394D9A52D562E13D8396D /* MASViewConstraint.m */; }; + C4CC01ED368863C6E3220988FBC6CEFB /* LKS_CustomAttrSetterManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C465F2B07425AB6119127372849CF8C4 /* LKS_CustomAttrSetterManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C53D326186927C0C85580CC5FEB133E3 /* mz_os.h in Headers */ = {isa = PBXBuildFile; fileRef = D0EA1758087DF6422638C3E1E4752106 /* mz_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C60DB44F719853DE3B7157960DAF9270 /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 120FF27BBFBEDF549CB2CB32E39B4C48 /* MJRefreshComponent.m */; }; + C64C28E8B15C171323473E543C608E68 /* mz_strm_os.h in Headers */ = {isa = PBXBuildFile; fileRef = F515F757FEB677BF07AC5EA12F7FEEBF /* mz_strm_os.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C6A100159974349FEAAC99B82BE0F872 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C3BC948AB7C2AC6ECD8CC177F281DF0 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C6FEC1088121FEA7DDC3384B7ECF3B44 /* LKS_Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E5B058615070C57D95C6744ED270A5 /* LKS_Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C71935C30C1AEDF32B96670BD8FA64CE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */; }; + C74589E03918328E4D27EFCBF6C4A0B8 /* JXCategoryBaseCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CC39D433389340C17FA7CE4395B505F /* JXCategoryBaseCellModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C857B8D2D0BAA5A8A764F9E1C4B85807 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B77880B1EE68D1F7EBC61B07E7224C /* ViewController+MASAdditions.m */; }; + C8685678D1B020F87365D022216FFE29 /* JXCategoryIndicatorImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 015CD0DA056184B91C43881714257993 /* JXCategoryIndicatorImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8771885BEA9EA0BD2E2C474587325E2 /* LKS_ExportManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 516AE9E97902910ABC8576640FB4C80F /* LKS_ExportManager.m */; }; + C8EC35DFB0945DBE2F2FF9ECFE6D9711 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B274C85C40A4722970D6752B0CEB3492 /* NSLayoutConstraint+MASDebugAdditions.m */; }; + C922BFFF717515E5878910DF4078CE1E /* JXCategoryIndicatorDotLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ECDF66E7F05D1F20CE08D11819DBA52 /* JXCategoryIndicatorDotLineView.m */; }; + C93E972E75F84674690300123984EC43 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F409A3F2498780698A2FB50819D6F55 /* SDAssociatedObject.m */; }; + C992A335399F942237E754EE65C40CA5 /* LookinObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C534235E73B4CE717D8C2531F72319C /* LookinObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C993A4D0CFA51E567F458CA65C1298AA /* MBProgressHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E4D03194518CA82B12270473AEAB7B83 /* MBProgressHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9A72F0A93329C42B77395B0F6CEA26C /* HWPanModalPresentable.h in Headers */ = {isa = PBXBuildFile; fileRef = 5918D263D7433ADA39A5E4A89EBFB550 /* HWPanModalPresentable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9AFC6682FD2C8231E779A4349DBDFD6 /* mz_strm_wzaes.c in Sources */ = {isa = PBXBuildFile; fileRef = 93E91FA280E77CCF4FFD86FF3957ABCC /* mz_strm_wzaes.c */; }; + C9B63C6ED2ED691EA83D3EE65939444B /* Lookin_PTProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 9847621357113F3B9BE2AD1FDFB32BA0 /* Lookin_PTProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9E19D164C26414115CC969ED9A303C1 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 78EEF85B7BD959BD946F0104DE6A6111 /* MASLayoutConstraint.m */; }; + C9E8C9372C2DA29D302B058BE3AE9877 /* CALayer+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = B6B2FE0CBDE39531B676501864F1834F /* CALayer+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA1E0DCDF679EA2DE2ED0915426E1D04 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 706E018F829E56281581930EDFFA29DA /* SDWeakProxy.m */; }; + CA56274BE7CBB3E759E0364785DF9799 /* Lookin_PTChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 59A6313DB1DDFF0278C2714355019D44 /* Lookin_PTChannel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA9AFE3460622CC65F75A2DDE845F6E9 /* JXPagerSmoothView.h in Headers */ = {isa = PBXBuildFile; fileRef = 280E72A6D896FA41C22E1332D51BFAC4 /* JXPagerSmoothView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAFE6AE80CBC8F15D2E2BD73E5B39CDA /* LSTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 24AF21E2D394FFB4D39972DF67EA8879 /* LSTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE2AF36EBB17CDA2652CBADD4A7ABF82 /* JXCategoryImageCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CF889E904F1B6EE73FA17B69790805B /* JXCategoryImageCellModel.m */; }; + CE86196C00DC1D658B6CB7D47A0233AA /* LKS_ConnectionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D8838EF1CB5604BA59341E2D21DF16 /* LKS_ConnectionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEC9EF043F69710AC29940EB4E1E2B19 /* RTLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C106D57FCD41BF611795643D714421F /* RTLManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF7005F2C42AC2E2DD6D437D52C7048B /* HWPresentingVCAnimatedTransitioning.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A9531FA2B1B637BBDA9F1F75A2AB7E4 /* HWPresentingVCAnimatedTransitioning.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFF8D1A5E4C2097EF05E1021FE112886 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = AF09B126EF200D965115496EB9E79C2B /* SDWebImageIndicator.m */; }; + D06BB547D59D183FD1DDD84DEBAC9EE8 /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 639BD3922CD4C84DA3488440B02B53F4 /* SDWebImageCacheSerializer.m */; }; + D08901EA319887BE6D694F8333BE8D1F /* JXCategoryIndicatorTriangleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 79340F952B7DAF35D159061FC814BB3A /* JXCategoryIndicatorTriangleView.m */; }; + D091F05269EE0566B665B00C7D912F8E /* Lookin_PTChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E17147866E2EFAC8FA996447DBA62 /* Lookin_PTChannel.m */; }; + D0E37358C3DCF2A8A572C4F38BB0569B /* JXCategoryListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = AFD298D5839EC6B16CB35C63BA6311A9 /* JXCategoryListContainerView.m */; }; + D121163078CA9BBE54A83BD73EF784CF /* LSTPopViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = A92EBDBD9ADD77AC125DE4FAE2A050CD /* LSTPopViewProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1230E19DD1507E6370B80DF6653AC2A /* NSArray+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = EE02826B807E0D7464EF9DB1CA82C18A /* NSArray+Lookin.m */; }; + D2AF9A7FD73B95960FDA4FD06C4BED08 /* NSObject+MJKeyValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A6396CB164B773A6219AED50C6B148 /* NSObject+MJKeyValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2CD8848F856EC9942A76610AAE66F0A /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = CB626F56EF11C62E6F49F42CB4341053 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2E6ED217227452C59C9B29C62858F7C /* SSZipArchive-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DDAE60D91D737330BC579F3D1D73D35 /* SSZipArchive-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D31558927DE3F62D1BB1FC416E6F237D /* JXCategoryDotCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 589689F46EC520D58650D81C0BCDCD52 /* JXCategoryDotCellModel.m */; }; + D3615499AFE4D2A8EC2E773F4D8A82B2 /* KeyValueObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C03B0A1B7E7515D288BC124A1D727BFF /* KeyValueObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D380F9C945002DBF2E7D64983ABDC890 /* JXPagerListContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F6C86558A8FA32C2A096F1E916B7FDE /* JXPagerListContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D559CC4D0695CEE05F3B4C1C06475044 /* UIImageView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = CF4ECEE409DD9983607A183AF34F50C6 /* UIImageView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5C046C46961BE465293625D6B870620 /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 405C7E78856FC9D135BA999764F6C694 /* AFNetworking-dummy.m */; }; + D62A672EEB252581BD972DDA862BE1DD /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B3320819532C765855244E2B917027EC /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D662C83ECE8BEDA5FFB52F3575CA3E1A /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4025663085C3F76169BB9584AE2F06C6 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D663837F4347AF58660EE6F7FD426ECE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + D6B7883D57752BC596907C45E9740FD1 /* LSTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = C93081D998142D9D1077E4218203CB6F /* LSTTimer.m */; }; + D737D93725B0E072027AB6DA9C4DDDEC /* HWPanModalAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 56077C48389F9B1095044672B0887D63 /* HWPanModalAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D788BA4B9E8186271BA75CA52B30502C /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0373237DDE9FD31C7EA3AA4CB0955A70 /* View+MASAdditions.m */; }; + D7B3E8948DB04BD8FB6748419DA03EA9 /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0791017FACBA886A47B03806F7FB79FE /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D89C7D5455E3E8E2D7EC6B880253BD9B /* LookinIvarTrace.m in Sources */ = {isa = PBXBuildFile; fileRef = BAF93F1F248973B4AC6CFD18CF736F3F /* LookinIvarTrace.m */; }; + D90607B4E56247B19B14462E487BA86E /* MJRefreshNormalTrailer.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F8E422C2A9D24C584E61A6CEF779E6 /* MJRefreshNormalTrailer.m */; }; + D90DED0F5638B1C44F4B6C62D600D240 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BE47DAA5E72BB278A1DB977182E3283B /* MJRefreshFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B2F7B372590A2F892FF1A0088E013829 /* MJRefresh.bundle */; }; + D93EA925FC24665584B3653514A56706 /* JXCategoryIndicatorImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B3632C1493FC9C66498F1FB8E1572C /* JXCategoryIndicatorImageView.m */; }; + D968461E31E8FF3FF6BA1DC621B0433B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */; }; + D9C15A8B92E62396D95DB88415A38A8F /* mz_strm_split.h in Headers */ = {isa = PBXBuildFile; fileRef = DD67952FFCDC4D0DA05DB535DB5E6CE7 /* mz_strm_split.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DBA9500CBBA5FF6FCBBA115AE4D12152 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A6CDDB9DA3BFC3F4D86BE7978C171C4C /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBB7D12AC159E50D059772E4B6CF1D2F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + DBD9152526A180771BF7D7CD209B957E /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 493BE38A720CE0AA9D19CC2814C3EFEC /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCCBFE0D3914D33369C19AC135AB54AA /* HWBackgroundConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = F90DCD218D9CE7B66410718F903FD42F /* HWBackgroundConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD7F63D4E4640C7386877BB787740272 /* LookinServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B139D44C6AB4E474C119817ECBACCB5 /* LookinServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDA16FB9C21AD941442357DAE6939530 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = EB8E6D6116AB58EBD0BC1FBAD7D4794F /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DDB268F1408C6AA5860C768310E9B9D6 /* LSTPopView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 189A17FA9BFD38560693564310A19294 /* LSTPopView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE5A78F116018E2AC54714238276574D /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E93A65559DA531AD62A42386304041D /* UIActivityIndicatorView+AFNetworking.m */; }; + DE98ECCCA7106A4EA575EF34830D41FF /* MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 92EA7FFB1C07248E9A2C69FD0F478201 /* MJRefresh-dummy.m */; }; + DEA09692CF813A23899CD4949A9B6801 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 493E45585E98235EFCE933B028A0D309 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DED9ADFC8CC65243FC54E008A853742C /* MJPropertyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 697282DD8BC19C487FB9C53A11615D22 /* MJPropertyKey.m */; }; + DF2B15402CE105F5A8CE48BBDCFFD5DD /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = DCBCA1C2F2293D0C830583795A736685 /* MASConstraint.m */; }; + DF525E5405FAD3B98B0C2D966EB2DD95 /* UIViewController+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = AA8B7E098C9891D8A55FBFC522096F4A /* UIViewController+LookinServer.m */; }; + E038F02D08E33A673A360ED34648A027 /* JXCategoryDotCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E26F8E152009690B0E2BDD1044C99CE6 /* JXCategoryDotCell.m */; }; + E0B48B9D5D45AF3500FC718459D66E6C /* LookinDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 6860400C5750CEA1DDC11A081C80778E /* LookinDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0BCF21E9FA59F638C13ECCECC4D9690 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A1FFD349FE5D938D03025EBAB1F06028 /* SDMemoryCache.m */; }; + E0DB14976CA6F6E604FD5E4EDF3378E7 /* JXPagerListContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 942B5587A6DFF73BD842C8ADA3B71A9F /* JXPagerListContainerView.m */; }; + E1B4145C5201DB66B65520B36849067C /* HWPanModal-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4ED5124C7D58B79382F953B4D4AF1B /* HWPanModal-dummy.m */; }; + E1BF615DD0422B06C97542F03C879D41 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 06A64D211ADC6AF2DF1D9E7D4F7F2788 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E1DE69F6BB6235A6EDB6C99A184BEDB4 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 85E0616DFCFEB6E1346B75E425451AFD /* UIScrollView+MJExtension.m */; }; + E283D8FF283E09D9CF863A27B55886EF /* mz_crypt_apple.c in Sources */ = {isa = PBXBuildFile; fileRef = 59AF9F3690B04B3F352C8CAC3F871AB8 /* mz_crypt_apple.c */; }; + E2DF1B379D9444D40D78320E90B1DC07 /* JXCategoryIndicatorLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 67CB215173B14FC72227F43EE74EF96E /* JXCategoryIndicatorLineView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3FC6BEE41652C0500F57E0CB83B347F /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 9187109C444449118A500CD6A1F2D532 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E42D6EF120A5C17DA2F6FD6473CE7E7A /* JXCategoryTitleVerticalZoomCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9252395065AF703DEC1F4DB7906407 /* JXCategoryTitleVerticalZoomCellModel.m */; }; + E4773572BED239AA7D618F1C05BAF51E /* HWPanModalPresentationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 43F68B04BCC53A477CA8E0DDD0110B01 /* HWPanModalPresentationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4B688B8A0D07AFB883A52250CA874A1 /* JXCategoryNumberCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AB22AD946DEFF60CD04A121B225C9206 /* JXCategoryNumberCellModel.m */; }; + E4F1B478580D6D7328BC29607BDE46F6 /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DDA08A6FD0A3E7C4F00EE37A9425D6 /* UIImage+ExtendedCacheData.m */; }; + E50613C67DD02AF6EA825DA0B31EFFAD /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 49FCA4D456B0E93FB4BA0769CBE5AC2E /* SDImageGraphics.m */; }; + E52DCE394A6E02B6BA11FA64624F68F3 /* JXCategoryIndicatorParamsModel.h in Headers */ = {isa = PBXBuildFile; fileRef = D79F119190F2A5B16B795F629A7210D0 /* JXCategoryIndicatorParamsModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E55B3151D86660E28CEABC3CDE6B1508 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = AF8F130ED4A740A7CACD266AEC22B19C /* UIButton+AFNetworking.m */; }; + E5B057BC87284367918B2DB9CA084B4E /* MJRefreshAutoGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 37E6A60337DC1DB10FAFE7C0D9A43E92 /* MJRefreshAutoGifFooter.m */; }; + E5FA0235CD286C13C0F568946EB0AEA8 /* mz_strm_pkcrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = D97F9C78C4A650C93D2FFA258F5C78AD /* mz_strm_pkcrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E7520DAA65004368C61453B8A2740295 /* HWPanModalShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA6355C505F3FEF64B6C7C621AC94D0 /* HWPanModalShadow.m */; }; + E76969F9B01139118427505B18F9CD21 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 795A0BA1A721EEBA6FE32FEC837069DF /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E77175BDAE33AADF66766B28AA710247 /* JXPagerMainTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F1265E3FE9A084FF2AA73E77669BE83 /* JXPagerMainTableView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7FEAB9F421F7EBAF021F792D8E9C4D6 /* LookinCustomDisplayItemInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B04749D7EDFDC4F0FD3C45B5E2CC1F0 /* LookinCustomDisplayItemInfo.m */; }; + E82964ED7092CDCDAD08BC596A57B43A /* UIImage+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EA7B059D4EA4894A724A157A1ABDA61 /* UIImage+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8AB529B9E0B4C23921344F6C4ABFEA4 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E1D76D20DCD763AD3D8654ABF7E1459 /* SDImageCoder.m */; }; + E930A5612DC6D120BE040AD17C6D1BCD /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E55222C6C86AFF25E27B0D455BF241 /* MASViewAttribute.m */; }; + E97B2C62D3EE772504A939BEE7D6B459 /* HWPanModalPresentationAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = 00BBED242BDE8C243ED57F21C604EABA /* HWPanModalPresentationAnimator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA82B6D97C9C5D0558047AF552D63203 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = F430162DE1827C9C391CBD99809BFD9A /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EABCB60A26B06BF576E50BBD2F89A385 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + EB3DF628891F7D6AB114718AF760CB2A /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = EC7B5C20256DD7D6DDEB7DC77A23FDE4 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB646114ABEA7A4D6C2A724404778670 /* LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C1A794B32C002930A0B7A81C1F9125D /* LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC8E84A8FFADDCA562A8608D141D9027 /* MJRefreshAutoGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = A8F3C162ECFFC7C269990C3F6C60EA02 /* MJRefreshAutoGifFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC9B34262AED632D7EFB49804337648E /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AABA37C73D3E8D4BEFE90BE49794EC3 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC9B8D81AEAF11E16149869246F7D4C1 /* JXCategoryFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 791D7ED57B5D75A67DE912C0525A5EA9 /* JXCategoryFactory.m */; }; + ECC6BC85943DB873215826A344A462FD /* JXCategoryIndicatorBallView.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E0642B5105D706429A67BF11CDE26C /* JXCategoryIndicatorBallView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECE64B732F9FA7C402DDEEC58DCB9D98 /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 14516EC656025694EFAAE12BB348EFB7 /* SDImageAPNGCoder.m */; }; + ED8991A8AE7C04362C2BED3875DC1656 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = F267753B35B7DC58AA017AA0CE62A18B /* AFURLResponseSerialization.m */; }; + ED8F64FF98CFAE0B12CF60A1B0E6BAF8 /* SDCallbackQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D1634EA2B0314D56355771EF869E1DEF /* SDCallbackQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDB9E11998290348E4DFB5140D678942 /* HWPanContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FBB6DFB067A86D0FC167B767A20D67C /* HWPanContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EE101918DFCDC1D6728BF910DB5AF29A /* JXPagerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A1940CBA5061AD3C2F7D08859C0943C1 /* JXPagerView.m */; }; + EE6E8FE636D2C02E3D2FC1E8555B4612 /* MJRefreshNormalHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 75BA0263D4F2D47FB081E19A0B71E320 /* MJRefreshNormalHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EED016DE8173CD38CC01D88CD2628984 /* NSString+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = F68DA306242C844983240C5B668F1835 /* NSString+MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EEF0BF7E53148EB20BED242061BDC5ED /* JXCategoryTitleVerticalZoomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CCB7B54387FCBB12572FC56CAC6DE97 /* JXCategoryTitleVerticalZoomView.m */; }; + EF51279C724969A99FF5EF85F832FC00 /* LYEmptyView.h in Headers */ = {isa = PBXBuildFile; fileRef = FA7033B5A3184560961D6D5840C3DF6E /* LYEmptyView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF6A6C725598F572A70C5FCEE328C184 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 80B68CA19530E7C3233B50C2E224B494 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1A04C26FAF235FD6B0AF30E7ACD5DD5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */; }; + F1ABB5428A1CCF2EAC42A4C3B388F25D /* JXCategoryIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 276C21472282FA055E81DC5389C473C6 /* JXCategoryIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1D845E22D5B8FC6AFC3C2E41DA1B6DF /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DDC47417445918B14DABED8324E64CDF /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2892F71762EC5410EE733B862712BB3 /* LYEmptyView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CD95470553CE3E7B3AD30401481B40C2 /* LYEmptyView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2AD91050B1FE3C8BC78567F1FDE3ED5 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = BD754332D1E3AE1D91664D4145F6D80A /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2C9F9038FBEFD951516694AE873A2B9 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C40F591873B26F65D38A11F4FB4D49E /* MBProgressHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3263D294D688533EB974E37C61F1E24 /* MJExtensionConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EF5FA3365163C5EE095A8BA87558958 /* MJExtensionConst.m */; }; + F3AECEF6D3BB919B3E7392942E1BC58B /* MJRefreshBackFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 68CCF1A7579D879154B163B5016261BD /* MJRefreshBackFooter.m */; }; + F3C6C068FCF85C2816DCBA0D67A4FF8C /* Pods-keyBoard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D8E1EB42D41EA6B94901E5B68C9011 /* Pods-keyBoard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3DA1005917E252B306712DAAA287FB0 /* UIViewController+PanModalDefault.m in Sources */ = {isa = PBXBuildFile; fileRef = FCF7BB2D7D7F4886FAE37155A0217F59 /* UIViewController+PanModalDefault.m */; }; + F3F4A6309BD95DFAA4DCC60A4E07C515 /* UITableView+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 97D5ABBCA1E57EF7A4153DA8B5D31E2C /* UITableView+LookinServer.m */; }; + F43396B5CB23638E5509B3ED61AE6192 /* JXCategoryListContainerRTLCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EDDAF7FCF8E6F2DE305B8D213CC6135C /* JXCategoryListContainerRTLCell.m */; }; + F458385338076D8734DD74BE4A94B33F /* UIColor+JXAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 502567ED20EC16FD9EAAB5C4A9CA4886 /* UIColor+JXAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F47EBDD360E642A0499A767BC7C17B4B /* HWPanIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0628F76E42EF6B256C47D95774F6487 /* HWPanIndicatorView.m */; }; + F49CB22863CCFEC7817D259F27F91C57 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CD05F22DD9C777ADD1844C1AA92A6E /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F53BE4449AE5896F76325E4DCB6D0B13 /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 33A699CA2A6AB899286C0D62BB40C7E6 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F600BB873FD4764BAA9E02826F804486 /* FLAnimatedImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 47758962FF5EA178A385878D70B7D23A /* FLAnimatedImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F60F90EAF35CFF40DF1C33557965787D /* MJRefreshStateTrailer.h in Headers */ = {isa = PBXBuildFile; fileRef = E48635E876D9CEF7C21BFE6D84DD3C63 /* MJRefreshStateTrailer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F62B0711DA506CCB3DF79F65134566C7 /* Lookin_PTPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D2E96E3FE3174CF0DBE2B98522202B64 /* Lookin_PTPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F68889CD481716EE5D6B75EBD8FD53A6 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = C6936388674E3A09DD13C04993D68D7B /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6A0D6EA1B5DC3FE04DC4A1B0A914121 /* UIView+LookinServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8985B7A847721EC00A75B85DDA83C8F6 /* UIView+LookinServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6A2DEEA8E8B92D365AFDDBD5E8C1218 /* NSObject+Lookin.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A9597A3B19D20F2D1CC81A1ABB722C /* NSObject+Lookin.m */; }; + F6A34F74BE7FE816114D7F3902296AF2 /* HWVisualEffectView.m in Sources */ = {isa = PBXBuildFile; fileRef = B0A46543847985D468FCB069493BA429 /* HWVisualEffectView.m */; }; + F6D1C960368EB1E067ABD0BFF707FC56 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A6D127A5F91E50191D10CCE0BF96AF9 /* MASConstraintMaker.m */; }; + F7623E7C314AA5010D8D0BD6ED4AAAD4 /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 615BC44E22B7900F28F104F19D013B7F /* AFImageDownloader.m */; }; + F847E3C26E5AC43CD73364AD3DF49AFE /* JXCategoryImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 38FA429E7EB072E02DCC6868AFB0631B /* JXCategoryImageCell.m */; }; + F8616FAFEE1124368CB96473CE20CDB4 /* LookinAttrIdentifiers.m in Sources */ = {isa = PBXBuildFile; fileRef = 135F58906DCDEDF7FFA3F89556224912 /* LookinAttrIdentifiers.m */; }; + F8F1B1196CAA5114BA9A95AA7E6D6AEB /* UIBlurEffect+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C94D5A09742CF8529D729BB964C8676 /* UIBlurEffect+LookinServer.m */; }; + F9789D86D3279D71B398B550F27C3EFF /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = A5E251507CD3F7845A3A2D382302220A /* AFSecurityPolicy.m */; }; + FA3021DED76B9B182CC9195A60EB1209 /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = CB7E424AE2A6FC9C8A4DBA6387CE406F /* NSBezierPath+SDRoundedCorners.m */; }; + FA6DA93357E2E9E9AADDFB3E39DEB6C2 /* NSObject+LookinServer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8FBA7603C63946EEF45272B16F6885D /* NSObject+LookinServer.m */; }; + FA9F74458362FEF57BAA47D48ADEB547 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 980B3C544025B71D6F62E1D7529A986D /* PrivacyInfo.xcprivacy */; }; + FB6E014B34F33B89E5060DA1F00168A5 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DB48DB92D5E3A8823F80321C8C328B1 /* ImageIO.framework */; }; + FBF481A2EC25D99DC41914AE7B9754D2 /* mz_zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 72AD11FA94A7409673A84E79F9A3020E /* mz_zip.c */; }; + FC32143CA2A916F032F2B569313315AA /* HWPanContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9435F94B2530DBBBA2B0F4818DB2ED3 /* HWPanContainerView.m */; }; + FCDEC6A53CF5517E1AF5B331FD65F6D9 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C511B649864B27A1FFE7D145A6C6656F /* SDImageCacheConfig.m */; }; + FCEE5BD645E95FF55468C4AB6D17CFDA /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 646C45DB37F9D0734DAAC20755029BB7 /* UIImageView+HighlightedWebCache.m */; }; + FD25538558AC72EB1BD7FE646A962283 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 5C8E404DAF454FD55DABB3DC94C284B8 /* PrivacyInfo.xcprivacy */; }; + FD3AF10F8723DABEE406D25592B5F562 /* FLAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 829B68F73797A78FEF3F03A753C4A6A0 /* FLAnimatedImageView.m */; }; + FD90CE8EC54430B50A242731DE62BA3C /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8B9045E26513809CA2F842DA0ED38C32 /* PrivacyInfo.xcprivacy */; }; + FDACBA49610EA6F39CABB7FE44B137D1 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = C5F30B6A64A6BA3D79791488816A9ACF /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FDD4C4D4F03502D5CB0B8763009A0948 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD30B9EF8BA7F13C73065F6A94D35ECD /* QuartzCore.framework */; }; + FE07C069C2E3543002CEB5D751ABA9AC /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F94B4F3D4DD90DFA2F85D7A1E5A7906E /* AFNetworkReachabilityManager.m */; }; + FEA8BA4F82CCBD1D28DCC7EF39FB4096 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 90E72E4EDCAC0507BE25B28B9A895CD8 /* SDImageCacheDefine.m */; }; + FEE3D901B4A4638F9E00935144E982B3 /* HWPanModalPresentableHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 043AF57662BB2CDF7FF630CD3C3A4250 /* HWPanModalPresentableHandler.m */; }; + FEE883575278D5BE8F185437AB5DB3BB /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = C9AD64D83E505E433188B9A60444891D /* MJRefreshGifHeader.m */; }; + FF106518AFECA24E74B1D649E4F9AC70 /* HWPanIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = D613067417303514F3697BE599A2270E /* HWPanIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF500FD55C6C8DD8418FA2290B95811A /* SSZipCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 14CC48A476DB5DA5978DCA39F22BAEBE /* SSZipCommon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FFC6D50089FA32FD7AAF25747E56EA60 /* LKS_CustomAttrGroupsMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = F27D51BD8717D8107D6F470FC85BEE9C /* LKS_CustomAttrGroupsMaker.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 02FAAF39D5DC83544D9E66B036B176EA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; - remoteInfo = Bugly; - }; - 080FDB8CF401316D3CCD779F38297489 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4AA4C7BB776C55F3421BA137B643DD64; - remoteInfo = LYEmptyView; - }; - 0AC2AD8EAFB742F27A3D34C64E40AFC6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; - remoteInfo = JXCategoryView; - }; - 492374464B2EEB82B866DBC203FB6CF9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4D3BA58D0583DF37575CACAB3DDADC85; - remoteInfo = MJExtension; - }; - 4B52CF33FA25735578A3E44A4CD0C61E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 16704C6B67439DA959DB043702C75A7A; - remoteInfo = "JXPagingView-JXPagerView"; - }; - 4F853CA6F77CC1808AF5BAF0CCAB86C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4D3BA58D0583DF37575CACAB3DDADC85; - remoteInfo = MJExtension; - }; - 586A5F02457EAA9AECE8CFCC7EDC4A36 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; - remoteInfo = AFNetworking; - }; - 6B502CE29B8265D64E66B68DA64E8BAF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 94CFBA7D633ECA58DF85C327B035E6A3; - remoteInfo = "SDWebImage-SDWebImage"; - }; - 6C0462143C24DADCF6D346CFCCF1F2DF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; - remoteInfo = MBProgressHUD; - }; - 6C532ADBCD9DB30208C8082362062867 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; - remoteInfo = SDWebImage; - }; - 70663BD3E4659CFF0C7EF0B56DBC9C78 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; - remoteInfo = MBProgressHUD; - }; - 71C3BF8323A3B89C42C815297FB1B486 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 638FEAAFC575BB76BC6AC055CDDA3506; - remoteInfo = LookinServer; - }; - 9D62F9D7E8B03E6D53909480991C8AEA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A2609DB0612F95A3450D2E02CA850A0; - remoteInfo = LSTTimer; - }; - A2D6E99D61C37E2D571D73F75FCFE0B4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; - remoteInfo = "MJRefresh-MJRefresh.Privacy"; - }; - A3A1467D883FED3ABCAC49113A737098 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A2609DB0612F95A3450D2E02CA850A0; - remoteInfo = LSTTimer; - }; - B0121AEB150BEE5708989CCC69A51E6E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; - remoteInfo = MJRefresh; - }; - BAEC79AAEBBDF2BA3087612B7E05FD8E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E79E29F55A2453370D27112480FCF6A2; - remoteInfo = "JXCategoryView-JXCategoryView"; - }; - C30FB24BD734A3779E20934DB3D4D9C8 /* PBXContainerItemProxy */ = { + 07BCA7294227EB1662F67CC00FA31484 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = B32AF3F43989CBA171BB1FB3957A4509; remoteInfo = "MJExtension-MJExtension"; }; - C548A30C8E9A6CD52D6655421F9E80B2 /* PBXContainerItemProxy */ = { + 0F9E615457E5337681A14D3D3D4458A5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; - remoteInfo = AFNetworking; + remoteGlobalIDString = F60E38364AFF5E1349FF07415B944396; + remoteInfo = SSZipArchive; }; - CEFF12BAC2DF7A2FB2A16265805F8779 /* PBXContainerItemProxy */ = { + 1A2511022FE632E00361DE19C60A62DE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; - remoteInfo = JXPagingView; + remoteGlobalIDString = 8BEAFAA726C1965864B79B4B441AA513; + remoteInfo = JXCategoryView; }; - D031B103E98AAB5CEC13491B24F6A82E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F1BCD9702276377FB5B3BDB6EAF709D7; - remoteInfo = DZNEmptyDataSet; - }; - D9630B9E5DE60DCADFA9106CF013D735 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8B7D23DD98E41BAE91418E9E85F191D6; - remoteInfo = LSTPopView; - }; - DB09B1B3C4EF493AB0763F0795077728 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 31DCABABCA873FBA7A92FEB47D71ED8E; - remoteInfo = HWPanModal; - }; - F02666E823668E7F6E705B610204BBE2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F1BCD9702276377FB5B3BDB6EAF709D7; - remoteInfo = DZNEmptyDataSet; - }; - F24DDDDEE9FC26F48E2EA84062015B72 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - F518DC696627DF925BE789501947DBC7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - FD339A2CF804D4CD1FADE6633BE4DB45 /* PBXContainerItemProxy */ = { + 2FE163B88A520FE9B2F4EF7346158A53 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 4A8E8992707D01510894596DB9BCCA00; remoteInfo = FLAnimatedImage; }; + 31F9906BAEED016573D69F00DE9BA133 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A2609DB0612F95A3450D2E02CA850A0; + remoteInfo = LSTTimer; + }; + 43E0BC7F6C06EB0590226928F1AA1BA3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6868056D761E163D10FDAF8CF1C4D9B8; + remoteInfo = MJRefresh; + }; + 460C711DE0B071D1CF739D8584B4EB4A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3847153A6E5EEFB86565BA840768F429; + remoteInfo = SDWebImage; + }; + 4BE0B614B56B0136EC31B18693DBA8DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F1BCD9702276377FB5B3BDB6EAF709D7; + remoteInfo = DZNEmptyDataSet; + }; + 4CFAE8F71CB246F1A7196659761BA82B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4AA4C7BB776C55F3421BA137B643DD64; + remoteInfo = LYEmptyView; + }; + 5209BC7C8FADA86A492F08918BEABCD8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; + remoteInfo = MBProgressHUD; + }; + 5E2F9C1908DE8387A6F9BF93EF451351 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; + remoteInfo = AFNetworking; + }; + 625D29D18C6D7C39FC39AD7E1F9FE915 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F1BCD9702276377FB5B3BDB6EAF709D7; + remoteInfo = DZNEmptyDataSet; + }; + 682B4482FB905997BF77F5EE588BD3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 16704C6B67439DA959DB043702C75A7A; + remoteInfo = "JXPagingView-JXPagerView"; + }; + 6B620F7E6CAE75D31C5837B4790559A8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4A68CFD979D413A619DF631BB121D98F; + remoteInfo = Bugly; + }; + 6F36E6997992D372CE822686985EB3F3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + 73A9CA6BDE2B4D18F9677452E6992CBE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B26054DF1DEA11585A231AF6D1D80D5E; + remoteInfo = "MJRefresh-MJRefresh.Privacy"; + }; + 802DEA5B6289431AABE0F15DA324916B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4D3BA58D0583DF37575CACAB3DDADC85; + remoteInfo = MJExtension; + }; + 8B4AF11BA988C8F1F93788F8C486B793 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 638FEAAFC575BB76BC6AC055CDDA3506; + remoteInfo = LookinServer; + }; + 9E12D5E078E322AEAC001666EEE5AA65 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 94CFBA7D633ECA58DF85C327B035E6A3; + remoteInfo = "SDWebImage-SDWebImage"; + }; + A671E8D796937C62D30391BE1F16A0AD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4D3BA58D0583DF37575CACAB3DDADC85; + remoteInfo = MJExtension; + }; + AB4EC7D2E9FDF608986EDAF1E480CFD7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E79E29F55A2453370D27112480FCF6A2; + remoteInfo = "JXCategoryView-JXCategoryView"; + }; + B4B05B8E8A2B8CDA0C66D6BAD76B2853 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A2609DB0612F95A3450D2E02CA850A0; + remoteInfo = LSTTimer; + }; + BC543733677861A9B2B4C809EE4F5026 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 31DCABABCA873FBA7A92FEB47D71ED8E; + remoteInfo = HWPanModal; + }; + C4958E3B26588834E71F94361C112780 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + C522DD02643623D83F7B527AC574C98D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C4E1020AF425614337737213AA26DBD5; + remoteInfo = JXPagingView; + }; + D264D8BA205995C828877A13415E636F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8B7D23DD98E41BAE91418E9E85F191D6; + remoteInfo = LSTPopView; + }; + D539378EEA6136633B02554E94E0D0C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0130B3724283586C0E9D2A112D4F2AA1; + remoteInfo = AFNetworking; + }; + EAD1EAB2089264FC2D357DCD1B0D09EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 82B0A41D3031FF27D78E17B0A9A46FB0; + remoteInfo = MBProgressHUD; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00449113F3BDDB46E11CEE02CF1F29A1 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; - 0055AF44029FABEF5E29D1BC1B86CC15 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; - 00AE10F23D2B898E9F45884FD9904B2F /* LKS_AttrGroupsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_AttrGroupsMaker.m; path = Src/Main/Server/Others/LKS_AttrGroupsMaker.m; sourceTree = ""; }; - 00B27A1456536538B2E7220C71AA3F4F /* LKS_HierarchyDisplayItemsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_HierarchyDisplayItemsMaker.m; path = Src/Main/Server/Others/LKS_HierarchyDisplayItemsMaker.m; sourceTree = ""; }; - 00C9A4038FA1CE3381055E02DAAEC90E /* LookinIvarTrace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinIvarTrace.h; path = Src/Base/LookinIvarTrace.h; sourceTree = ""; }; - 021930E01F482BDF2DEAAA2AF9FDCF18 /* JXCategoryIndicatorRainbowLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorRainbowLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.m; sourceTree = ""; }; - 0249A8711339B6CD1E26258C064677E9 /* NSObject+MJCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJCoding.m"; path = "MJExtension/NSObject+MJCoding.m"; sourceTree = ""; }; - 0260C833576479A14C0F759F9D161479 /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; - 026BB0AEDD69539DEC39191EE0C5214B /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; - 03700B93F7A3FF6F3675D80E5DB1C1C7 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; - 04094D9F916F0B3E8A409CF5EEC45FCC /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; - 044A47D1E36901CA79D51CC72EA995C9 /* JXPagerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerView.m; path = Sources/JXPagerView/JXPagerView.m; sourceTree = ""; }; - 0451FF8513ABCE79BA473B450192579B /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; - 04996832466C0B682760DEB660586A88 /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; - 051A66FC7C22537DD150BA86539EC9D4 /* JXCategoryCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryCollectionView.h; path = Sources/Common/JXCategoryCollectionView.h; sourceTree = ""; }; - 05A7B005509B15E31ECEED7DFEEB1EDB /* MJPropertyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJPropertyKey.h; path = MJExtension/MJPropertyKey.h; sourceTree = ""; }; - 05D708E8F9065868500ABC98E789B739 /* KeyValueObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KeyValueObserver.h; path = Sources/KVO/KeyValueObserver.h; sourceTree = ""; }; - 05EE9449F14265ADB3100E60632AB642 /* LookinEventHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinEventHandler.h; path = Src/Main/Shared/LookinEventHandler.h; sourceTree = ""; }; - 05FF40C91ADEB302CBF4314535A1A6E7 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; - 060133813AFA51D11B917CB91A3D4950 /* AFCompatibilityMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFCompatibilityMacros.h; path = AFNetworking/AFCompatibilityMacros.h; sourceTree = ""; }; - 06878A6718B46A5E825D03CB581CD8B2 /* LookinServer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LookinServer-Info.plist"; sourceTree = ""; }; - 07001E763AE097A75E1AFBEB80197373 /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; - 0719BBC5095E9B709A7485C347010514 /* LKS_HierarchyDetailsHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_HierarchyDetailsHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_HierarchyDetailsHandler.m; sourceTree = ""; }; - 07274C755D75F4A07C925D1DDE5FA529 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; - 073DE0C455B2CE33A0FBA3C6ECF4F8CF /* MJPropertyType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJPropertyType.m; path = MJExtension/MJPropertyType.m; sourceTree = ""; }; - 07C3DB4C7661755654D296A929BE2CE7 /* Lookin_PTChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTChannel.h; path = Src/Main/Shared/Peertalk/Lookin_PTChannel.h; sourceTree = ""; }; - 083F5143D12F213638EF9FE439F1CEFA /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; - 091DAAA7597B1233173C3BB1DC8D1D79 /* HWPanModalContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalContainerView.h; path = Sources/View/PanModal/HWPanModalContainerView.h; sourceTree = ""; }; - 09799A44FC43F3184E20B590CC73FFC7 /* LookinStaticAsyncUpdateTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinStaticAsyncUpdateTask.h; path = Src/Main/Shared/LookinStaticAsyncUpdateTask.h; sourceTree = ""; }; - 0A70A9B1B9D076F21A4C704EAC69B3E9 /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = ""; }; - 0A7D8AD4481BE4F0D7389A1662CCA111 /* Masonry.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Masonry.modulemap; sourceTree = ""; }; - 0AD4477B34BC6EAF1A362183974F34DC /* Bugly.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.release.xcconfig; sourceTree = ""; }; - 0AE235E52EF7BBF7348F9B4CAB71F7D8 /* HWPanModal-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "HWPanModal-dummy.m"; sourceTree = ""; }; + 00141057F0C1BE712F66EE7FBD96487D /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + 0079155AD5A15B6346CE4DD7B4C5AF05 /* FLAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImage.m; path = FLAnimatedImage/FLAnimatedImage.m; sourceTree = ""; }; + 00BBED242BDE8C243ED57F21C604EABA /* HWPanModalPresentationAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationAnimator.h; path = Sources/Animator/HWPanModalPresentationAnimator.h; sourceTree = ""; }; + 00DA480EB7624092ED2636F89F005350 /* LookinWeakContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinWeakContainer.m; path = Src/Main/Shared/LookinWeakContainer.m; sourceTree = ""; }; + 01154E6CA763EC7736E4D032FCD619FD /* MBProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MBProgressHUD-Info.plist"; sourceTree = ""; }; + 013838CC5F2B4FC390D28A911B5EF797 /* JXCategoryFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryFactory.h; path = Sources/Common/JXCategoryFactory.h; sourceTree = ""; }; + 0144DBC6460DBCF85C0357C2BD9270EF /* JXCategoryIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorProtocol.h; path = Sources/Common/JXCategoryIndicatorProtocol.h; sourceTree = ""; }; + 0157E81AF7D3A5016170216831D8914B /* NSObject+MJCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJCoding.h"; path = "MJExtension/NSObject+MJCoding.h"; sourceTree = ""; }; + 015CD0DA056184B91C43881714257993 /* JXCategoryIndicatorImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorImageView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h; sourceTree = ""; }; + 01771F71A5835C346537272402AFB9A6 /* LSTTimer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTTimer.debug.xcconfig; sourceTree = ""; }; + 02A1000DA3A38A20812409494D6BBB1A /* LSTPopView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTPopView.debug.xcconfig; sourceTree = ""; }; + 0373237DDE9FD31C7EA3AA4CB0955A70 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; + 03CB08E6A37B7A2EAC285B505C385ABE /* UIScrollView+EmptyDataSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+EmptyDataSet.h"; path = "Source/UIScrollView+EmptyDataSet.h"; sourceTree = ""; }; + 03CF13D7504F201F21E62DE0C23B49F7 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; + 03F3FB18F3FE5DF91F10C40D42188F96 /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; + 043AF57662BB2CDF7FF630CD3C3A4250 /* HWPanModalPresentableHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentableHandler.m; path = Sources/Mediator/HWPanModalPresentableHandler.m; sourceTree = ""; }; + 04FE9083F11D6C40672576B6F65F4DFE /* Color+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Color+Lookin.m"; path = "Src/Main/Shared/Category/Color+Lookin.m"; sourceTree = ""; }; + 050D9A9BA00647620853E7BB1D8F7894 /* LookinEventHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinEventHandler.h; path = Src/Main/Shared/LookinEventHandler.h; sourceTree = ""; }; + 05AA4A29A03BFDC3AF0BB640C3F32120 /* UIVisualEffectView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIVisualEffectView+LookinServer.m"; path = "Src/Main/Server/Category/UIVisualEffectView+LookinServer.m"; sourceTree = ""; }; + 05FF78D8DD78F6698BD01FCBB18E5020 /* HWPanModalPresentationUpdateProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationUpdateProtocol.h; path = Sources/Presentable/HWPanModalPresentationUpdateProtocol.h; sourceTree = ""; }; + 064A69D8B552879D7796F22E265077D9 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; + 06A64D211ADC6AF2DF1D9E7D4F7F2788 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 06CC8DC68E679AF1CA3517F011FD585A /* LKS_CustomAttrSetterManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrSetterManager.m; path = Src/Main/Server/Others/LKS_CustomAttrSetterManager.m; sourceTree = ""; }; + 06E0AA3C0029EF26819C4B61B00C6151 /* mz_strm_zlib.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_zlib.c; path = SSZipArchive/minizip/mz_strm_zlib.c; sourceTree = ""; }; + 07721EF30DD781C3E73164D54471C5B3 /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; + 0780B40D7B5BA4ABD33634434DECD679 /* LKS_AttrModificationPatchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_AttrModificationPatchHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_AttrModificationPatchHandler.h; sourceTree = ""; }; + 0791017FACBA886A47B03806F7FB79FE /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; + 07D1C2473BCFEB86B0504DB18A9D04D8 /* HWPanModalHeight.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalHeight.h; path = Sources/Presentable/HWPanModalHeight.h; sourceTree = ""; }; + 08C74ED147C3E3398381FC64F9C291E6 /* FLAnimatedImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FLAnimatedImage-Info.plist"; sourceTree = ""; }; + 08CC5A94403B3651B53F005A9D1B8C25 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; + 08E33FC86CA3CA084EE1AB11459F8F4E /* HWPanModal.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HWPanModal.modulemap; sourceTree = ""; }; + 08F65DEAE908E352ADAF8F44AF49B2BD /* MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-prefix.pch"; sourceTree = ""; }; + 09674DC0D83C3B2D5C0CB5DF74A36828 /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; + 09693E19C583A7DD12C09F2304F3A3E2 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; + 099ABFBE80EFA2F4DEC75B206DDA6F67 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; + 09A5D0F3A919514BFE451BC69BE009E6 /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; + 0A82548800D862412971DCA17627ED6F /* JXPagerListRefreshView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListRefreshView.m; path = Sources/JXPagerView/JXPagerListRefreshView.m; sourceTree = ""; }; + 0B04749D7EDFDC4F0FD3C45B5E2CC1F0 /* LookinCustomDisplayItemInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinCustomDisplayItemInfo.m; path = Src/Main/Shared/LookinCustomDisplayItemInfo.m; sourceTree = ""; }; 0B4AAC15A428CDC2A62AF9CC27BEA609 /* Pods-CustomKeyboard */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-CustomKeyboard"; path = Pods_CustomKeyboard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0B4EEA7B77703F45AB157AC651CEF4EA /* UIView+LYExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LYExtension.m"; path = "LYEmptyView/UIView+LYExtension.m"; sourceTree = ""; }; - 0B5075BB968E268BB5D61B393C333DB4 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; - 0BC7EB117F009B160822B3FFCCC63F2A /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; - 0BED1E57A7780D7944D806EF7FB48648 /* HWPanModalContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalContainerView.m; path = Sources/View/PanModal/HWPanModalContainerView.m; sourceTree = ""; }; + 0C23EC7E95138738B17D177EB5FA686B /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; + 0C3445155E57E40ED8F0D5AEEC3F9F20 /* UIScrollView+EmptyDataSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+EmptyDataSet.m"; path = "Source/UIScrollView+EmptyDataSet.m"; sourceTree = ""; }; + 0C3F5B499190A8045661B658575C588C /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; + 0C40F591873B26F65D38A11F4FB4D49E /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; 0C4AE62ED97252893F28F670D61AFB24 /* Pods-keyBoard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-keyBoard-Info.plist"; sourceTree = ""; }; - 0C6F8F3E8953AADD74838D4A882F45A1 /* NSObject+MJProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJProperty.h"; path = "MJExtension/NSObject+MJProperty.h"; sourceTree = ""; }; - 0C7575113B17F46DF34D3C118CB31308 /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJKeyValue.m"; path = "MJExtension/NSObject+MJKeyValue.m"; sourceTree = ""; }; - 0CA8B3EFCD9E73829676C70CE3E88BE0 /* UIView+LYExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LYExtension.h"; path = "LYEmptyView/UIView+LYExtension.h"; sourceTree = ""; }; - 0CE35A6903D3E473ACA2703E7286A28E /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; - 0CF1A36FA548FCE3A4F7DA66625E9583 /* JXCategoryTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCell.h; path = Sources/Title/JXCategoryTitleCell.h; sourceTree = ""; }; + 0CF6A4B55762F585DB01667B496A7519 /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; 0D6215D1BCCE125B8DF73E38013CBBDC /* Pods-CustomKeyboard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CustomKeyboard.debug.xcconfig"; sourceTree = ""; }; - 0D6771046C7CF97C82B7D303F2AFD49E /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; - 0DEA9604C374890EC86557DA00C054E0 /* LookinServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LookinServer.modulemap; sourceTree = ""; }; + 0DC3138C5F0B6B2DB074A075062C6FAC /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; 0E732C0D026ACBC7DBD039DC3BDC2BCE /* Pods-keyBoard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-keyBoard.modulemap"; sourceTree = ""; }; - 0EBF81CE72AA8B4B06F1BC37CFA7B96A /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; - 0ED5656E5971882A3EA314E222EBC2C5 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; - 0F1705DF1CC5E82194523F85FE871354 /* HWDimmedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWDimmedView.h; path = Sources/View/HWDimmedView.h; sourceTree = ""; }; - 0FC2E352D2D0DD942A9B4488E3654AB0 /* HWPanModalPresentableHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentableHandler.m; path = Sources/Mediator/HWPanModalPresentableHandler.m; sourceTree = ""; }; - 0FFF1AB10AC30C72DB3B2F106B23E5B3 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJExtension/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 1069EA3A85D1A1A87FE087B0FE402436 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; - 10AACE3BDEFABB8B9E709942B03E5595 /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; - 10DBEAC7DAAC95D5A947ACA061058C0B /* LookinConnectionAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinConnectionAttachment.h; path = Src/Main/Shared/LookinConnectionAttachment.h; sourceTree = ""; }; - 12702606A08588ACD81E031A777BAB70 /* NSString+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+MJExtension.h"; path = "MJExtension/NSString+MJExtension.h"; sourceTree = ""; }; - 128CF11122A7C2009F733361122E39A1 /* Masonry-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-umbrella.h"; sourceTree = ""; }; - 13AC6B7EC0E45B7BC751451206C8C575 /* MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJExtension.h; path = MJExtension/MJExtension.h; sourceTree = ""; }; - 148EEB030F62D4D33B4C03AE45AD6C08 /* FLAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImageView.m; path = FLAnimatedImage/FLAnimatedImageView.m; sourceTree = ""; }; - 14CF605A6E1A867AA3131733CCE53D99 /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; - 15C39377834B42681C3BF6A5471C5F78 /* NSString+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+MJExtension.m"; path = "MJExtension/NSString+MJExtension.m"; sourceTree = ""; }; - 15D6A20A536D39FB4F4DE78CEC3512CE /* LookinDisplayItemDetail.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDisplayItemDetail.m; path = Src/Main/Shared/LookinDisplayItemDetail.m; sourceTree = ""; }; - 1612A7E2EB4D912BD038AFA9FAE11CFD /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 16308A5AF08E401B61B68CCD953A0528 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; - 163DD1C8E32A767AC162D451FB47DECB /* LSTPopView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTPopView.debug.xcconfig; sourceTree = ""; }; - 16465B6B7358098E137335C9985BBBBC /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; - 1679E08A4A241FB86455E71FDFB20D9F /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; - 1724C0944D7BC65545806EE9EDED203D /* HWPanModalPresentationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationDelegate.m; path = Sources/Delegate/HWPanModalPresentationDelegate.m; sourceTree = ""; }; - 17A16F153D08C8BBF15070C730EC0C3A /* LookinTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinTuple.h; path = Src/Main/Shared/LookinTuple.h; sourceTree = ""; }; - 18106F0763EC023048DB3F77457B9596 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; - 1817B2506E6D89DAFA8176C4A51738C0 /* JXCategoryIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorView.m; path = Sources/Indicator/JXCategoryIndicatorView.m; sourceTree = ""; }; - 18EAC20398B46C2C580B542618314D9E /* FLAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImageView.h; path = FLAnimatedImage/include/FLAnimatedImageView.h; sourceTree = ""; }; - 1936EF3FEE34E513D746BA5037CDEE80 /* JXCategoryIndicatorParamsModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorParamsModel.m; path = Sources/Common/JXCategoryIndicatorParamsModel.m; sourceTree = ""; }; - 1B1E80842E43848FFB0F162AFF96E774 /* UIView+LSTPV.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LSTPV.m"; path = "LSTPopView/Classes/Code/UIView+LSTPV.m"; sourceTree = ""; }; - 1B41D364B66F85CF33EB15116929CF48 /* NSObject+MJKeyValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJKeyValue.h"; path = "MJExtension/NSObject+MJKeyValue.h"; sourceTree = ""; }; - 1B82CFD6AD23DAB70352983FFFA8DBBE /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; - 1BFABBA210FF6BEF09CABCCBE8AE590F /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; - 1C9E2AC9C9AE14EBBFDCDBBA925613E4 /* JXCategoryFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryFactory.h; path = Sources/Common/JXCategoryFactory.h; sourceTree = ""; }; - 1CA6A325AACF7253FFEB9D258746335D /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; - 1D0C4CB17BF463D490AE3400293A0D47 /* LYEmptyBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LYEmptyBaseView.m; path = LYEmptyView/LYEmptyBaseView.m; sourceTree = ""; }; - 1D490F15AED6B55BCD64F4D5193A9375 /* JXCategoryIndicatorComponentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorComponentView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.m; sourceTree = ""; }; + 0F224C8A22DB0EAEE38D71221511DDFE /* MJFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJFoundation.h; path = MJExtension/MJFoundation.h; sourceTree = ""; }; + 0F35095D3053E2A3DBDF2DEE0430F6A9 /* JXCategoryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleView.h; path = Sources/Title/JXCategoryTitleView.h; sourceTree = ""; }; + 0F409A3F2498780698A2FB50819D6F55 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; + 0F87A76C86DFD48AB232333E21FDDC25 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + 0FF04EF888516E2DB6679EDE980F5425 /* LKS_Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_Helper.m; path = Src/Main/Server/Others/LKS_Helper.m; sourceTree = ""; }; + 0FFD6E10A8BDC66C4D68B27A8F14E068 /* JXCategoryImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCell.h; path = Sources/Image/JXCategoryImageCell.h; sourceTree = ""; }; + 114931D01287BFA93E9D29B53CA38A76 /* mz_os.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os.c; path = SSZipArchive/minizip/mz_os.c; sourceTree = ""; }; + 120FF27BBFBEDF549CB2CB32E39B4C48 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; + 135F58906DCDEDF7FFA3F89556224912 /* LookinAttrIdentifiers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttrIdentifiers.m; path = Src/Main/Shared/LookinAttrIdentifiers.m; sourceTree = ""; }; + 14516EC656025694EFAAE12BB348EFB7 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = ""; }; + 145359962B1F7316ADD800516212E8AB /* mz_strm_zlib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_zlib.h; path = SSZipArchive/minizip/mz_strm_zlib.h; sourceTree = ""; }; + 149C71381AA7AA30529E98DB6A1F4B31 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; + 14CC48A476DB5DA5978DCA39F22BAEBE /* SSZipCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipCommon.h; path = SSZipArchive/SSZipCommon.h; sourceTree = ""; }; + 151C8F6D88020F922D61D037136E3DFB /* mz_zip_rw.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip_rw.c; path = SSZipArchive/minizip/mz_zip_rw.c; sourceTree = ""; }; + 151DDB03C19559867EEF743375F719C4 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; + 1538C76EA76285E450D5CEF966BD77EC /* UIColor+JXAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+JXAdd.m"; path = "Sources/Common/UIColor+JXAdd.m"; sourceTree = ""; }; + 15C4D6472D5FBEDA9358021C134FFF24 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; + 1626A7F50D6347841FFE43D04BAB9EF2 /* HWDimmedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWDimmedView.m; path = Sources/View/HWDimmedView.m; sourceTree = ""; }; + 16DD21F9DF416D56090211469D54E9D3 /* LookinAttributesSection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributesSection.h; path = Src/Main/Shared/LookinAttributesSection.h; sourceTree = ""; }; + 1737B86781ADA72E4D682BE09A42C54E /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SDWebImage-SDWebImage-Info.plist"; sourceTree = ""; }; + 175E902683747415D180D3F558DE6E14 /* JXCategoryBaseCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCellModel.m; path = Sources/Base/JXCategoryBaseCellModel.m; sourceTree = ""; }; + 176E7D816EC787D976C5ACA3E34D42FB /* LKS_EventHandlerMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_EventHandlerMaker.m; path = Src/Main/Server/Others/LKS_EventHandlerMaker.m; sourceTree = ""; }; + 17770789DDC8684E979B0B4B2C068647 /* UIViewController+Presentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+Presentation.h"; path = "Sources/Presentable/UIViewController+Presentation.h"; sourceTree = ""; }; + 179ED378488E412DC29146DCB8F69511 /* NSString+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Lookin.m"; path = "Src/Main/Shared/Category/NSString+Lookin.m"; sourceTree = ""; }; + 17EB79001C8413E3DA65E7EB9BF22349 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; + 18522E1361AF4A77AC618662C5D5CBD9 /* LookinStaticAsyncUpdateTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinStaticAsyncUpdateTask.m; path = Src/Main/Shared/LookinStaticAsyncUpdateTask.m; sourceTree = ""; }; + 189A17FA9BFD38560693564310A19294 /* LSTPopView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTPopView-umbrella.h"; sourceTree = ""; }; + 19477F689A241293943E6DAEC7809F4F /* SSZipArchive.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SSZipArchive.m; path = SSZipArchive/SSZipArchive.m; sourceTree = ""; }; + 19A25EB7993E1C0F7234107E1FB3F495 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; + 1A0E2A2C243239D60767D58C2FC52F3E /* HWPanModalPresentationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationDelegate.m; path = Sources/Delegate/HWPanModalPresentationDelegate.m; sourceTree = ""; }; + 1ABBAE357D36B12599112EFE912EDC1B /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; + 1AE373EEFE41CB11B4ADBF33F7FCFF1E /* LookinHierarchyFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinHierarchyFile.h; path = Src/Main/Shared/LookinHierarchyFile.h; sourceTree = ""; }; + 1B5D037718A134965F540D45A0F6B588 /* LKS_ConnectionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ConnectionManager.m; path = Src/Main/Server/Connection/LKS_ConnectionManager.m; sourceTree = ""; }; + 1B996B2DECA5BF4F051BF1653B667CC9 /* JXCategoryIndicatorLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.m; sourceTree = ""; }; + 1C94D5A09742CF8529D729BB964C8676 /* UIBlurEffect+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBlurEffect+LookinServer.m"; path = "Src/Main/Server/Category/UIBlurEffect+LookinServer.m"; sourceTree = ""; }; + 1CCB7B54387FCBB12572FC56CAC6DE97 /* JXCategoryTitleVerticalZoomView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomView.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.m; sourceTree = ""; }; 1D774D8146EBC82B4A77204A273761B8 /* Pods-CustomKeyboard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CustomKeyboard.release.xcconfig"; sourceTree = ""; }; - 1D8DC297A0249D2FB0109542F14B89AB /* UITextView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextView+LookinServer.m"; path = "Src/Main/Server/Category/UITextView+LookinServer.m"; sourceTree = ""; }; - 1DD3D7BBD826081D1399FCDA65D59838 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - 1E2CD23DF8D29ECCE7278412B1BFFFA2 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; - 1EC115C953943E0027F6AD5AFEE41A30 /* HWPageSheetPresentingAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPageSheetPresentingAnimation.h; path = Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.h; sourceTree = ""; }; - 1EFF4D34DD5391DCE7D206B11306BCE5 /* LKS_CustomAttrModificationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrModificationHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_CustomAttrModificationHandler.h; sourceTree = ""; }; - 1EFF4EEBD779C7DB39B6B044205385FA /* HWPanModal-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HWPanModal-umbrella.h"; sourceTree = ""; }; - 1F9506DDA8FBAA7420E9B8137BFCFDFA /* HWPanModalPresentationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationController.m; path = Sources/Controller/HWPanModalPresentationController.m; sourceTree = ""; }; + 1D7B5B23E34C29DE509C243F93BA3E4C /* AFNetworking-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AFNetworking-Info.plist"; sourceTree = ""; }; + 1DDAE60D91D737330BC579F3D1D73D35 /* SSZipArchive-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-umbrella.h"; sourceTree = ""; }; + 1E9C77C9C0F2FA0C3086D0F5FD1B3EF7 /* LKS_ObjectRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ObjectRegistry.m; path = Src/Main/Server/Others/LKS_ObjectRegistry.m; sourceTree = ""; }; + 1EC614A80F92F6EA6FC32AC61AC296A0 /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; + 1EF5FA3365163C5EE095A8BA87558958 /* MJExtensionConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJExtensionConst.m; path = MJExtension/MJExtensionConst.m; sourceTree = ""; }; + 1F23893048C14274F083E80FDA82DF98 /* AFCompatibilityMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFCompatibilityMacros.h; path = AFNetworking/AFCompatibilityMacros.h; sourceTree = ""; }; + 1F2A8BF7AE40248D692ACE5AE8354602 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + 1F462FDD4C59AB4FFC71791984996458 /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; + 1F94F37349FFB161919EFE71C2CD9E77 /* JXCategoryIndicatorComponentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorComponentView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h; sourceTree = ""; }; + 1FC6D402CF57CF9F6287E67BF1F1DA7E /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; + 1FD20E21FF7A2BAB6FAAB004A82D3143 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; + 1FDD439886220AA95FF6B36A5C000873 /* UIViewController+PanModalPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PanModalPresenter.h"; path = "Sources/Presenter/UIViewController+PanModalPresenter.h"; sourceTree = ""; }; 1FFED36A657123030ABB700256D73F15 /* Masonry */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Masonry; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 20674A80959A90C9F9E51DBDC8807D93 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 207535A186296DE018201ED1B7DDD076 /* LKS_ExportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ExportManager.m; path = Src/Main/Server/Others/LKS_ExportManager.m; sourceTree = ""; }; - 20C453B83E1025092DAD587080018B43 /* UIImage+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+LookinServer.m"; path = "Src/Main/Server/Category/UIImage+LookinServer.m"; sourceTree = ""; }; - 210B700E8324769F741C26126E6B1F4A /* Lookin_PTUSBHub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTUSBHub.h; path = Src/Main/Shared/Peertalk/Lookin_PTUSBHub.h; sourceTree = ""; }; - 22A80188C121A76950A88A3321260BFD /* RTLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RTLManager.h; path = Sources/RLTManager/RTLManager.h; sourceTree = ""; }; - 230B07768E56A05E48373DAA2EAC05DE /* JXCategoryTitleVerticalZoomCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCellModel.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.m; sourceTree = ""; }; - 23763927ED025640A4CAA94867A3D823 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; - 23B693321C3E2CA46CF401E48AE2795D /* MJExtension-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJExtension-Info.plist"; sourceTree = ""; }; - 23B6D3BC0C4291E4CB154E7F35862BCB /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; - 253C2858A52DB3FD4BE13D65D2B6C2A6 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; - 25475D081A3343232AD119F5F5A5F24A /* JXCategoryTitleVerticalZoomCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCell.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h; sourceTree = ""; }; + 20F7508CEE013484034B16046290F3AB /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; + 2245BDAEDC40FE0F5B44715A714C3EF9 /* LSTPopView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTPopView-prefix.pch"; sourceTree = ""; }; + 22EF64375E10367E8F309F38BC8EC17B /* mz_strm_mem.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_mem.c; path = SSZipArchive/minizip/mz_strm_mem.c; sourceTree = ""; }; + 230C407239A171B37B3DED270C128E42 /* LookinCodingValueType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCodingValueType.h; path = Src/Main/Shared/LookinCodingValueType.h; sourceTree = ""; }; + 23721857393C1A6F3C7F8AACFBD34013 /* LookinStaticAsyncUpdateTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinStaticAsyncUpdateTask.h; path = Src/Main/Shared/LookinStaticAsyncUpdateTask.h; sourceTree = ""; }; + 24999108D48C81C62429B11AA1ADA40D /* LKS_CustomAttrGroupsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrGroupsMaker.h; path = Src/Main/Server/Others/LKS_CustomAttrGroupsMaker.h; sourceTree = ""; }; + 24A6396CB164B773A6219AED50C6B148 /* NSObject+MJKeyValue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJKeyValue.h"; path = "MJExtension/NSObject+MJKeyValue.h"; sourceTree = ""; }; + 24AF21E2D394FFB4D39972DF67EA8879 /* LSTTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTTimer.h; path = LSTTimer/Classes/LSTTimer.h; sourceTree = ""; }; + 2516575DAD30E19BE433515541FACCFA /* LYEmptyBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyBaseView.h; path = LYEmptyView/LYEmptyBaseView.h; sourceTree = ""; }; 25664483ABF4DC8EC03E7472AA04333B /* LookinServer */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LookinServer; path = LookinServer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 256D50D68BFC3FD314552D1D0BC2044D /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = ""; }; - 26469EA2BF7F49FCDA80695277950B2B /* LookinHierarchyInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinHierarchyInfo.h; path = Src/Main/Shared/LookinHierarchyInfo.h; sourceTree = ""; }; - 2713EAAF042877733E01E359F3224ABF /* MJExtension-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJExtension-umbrella.h"; sourceTree = ""; }; - 2795C0F083BB71E948BE56DAFC73957B /* LSTPopView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LSTPopView.modulemap; sourceTree = ""; }; + 2582063FAB255AD2C3B395722AD71B01 /* UILabel+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UILabel+LookinServer.h"; path = "Src/Main/Server/Category/UILabel+LookinServer.h"; sourceTree = ""; }; + 263454233B5B0DBB14C5D80582B2B2AD /* mz_strm_buf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_buf.h; path = SSZipArchive/minizip/mz_strm_buf.h; sourceTree = ""; }; + 265403DB3694F132F2DAC68999219865 /* Color+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Color+Lookin.h"; path = "Src/Main/Shared/Category/Color+Lookin.h"; sourceTree = ""; }; + 26919AE8BCA76133F2F1C43FD19CC76C /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; + 269FA03C0F139A78628FFE7007BC40BA /* LKS_HierarchyDisplayItemsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_HierarchyDisplayItemsMaker.m; path = Src/Main/Server/Others/LKS_HierarchyDisplayItemsMaker.m; sourceTree = ""; }; + 275A97C0F153DC6504268701E357DFA9 /* NSString+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+MJExtension.m"; path = "MJExtension/NSString+MJExtension.m"; sourceTree = ""; }; + 275F268E2D4AE549550400B573C1667D /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; + 276C21472282FA055E81DC5389C473C6 /* JXCategoryIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorView.h; path = Sources/Indicator/JXCategoryIndicatorView.h; sourceTree = ""; }; + 2777F67758A4643B06DA9FC44531D569 /* UITableView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+LookinServer.h"; path = "Src/Main/Server/Category/UITableView+LookinServer.h"; sourceTree = ""; }; + 27EF519F1411546B2B144AD5845FDBB0 /* UIView+WebCacheState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheState.h"; path = "SDWebImage/Core/UIView+WebCacheState.h"; sourceTree = ""; }; + 280E72A6D896FA41C22E1332D51BFAC4 /* JXPagerSmoothView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerSmoothView.h; path = Sources/JXPagerView/JXPagerSmoothView.h; sourceTree = ""; }; 281686F4C9CC2C718B45E1DEB7E63948 /* Pods-CustomKeyboard-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-CustomKeyboard-acknowledgements.markdown"; sourceTree = ""; }; - 292BBC0398F56F3818017A7314541B45 /* JXCategoryNumberCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCellModel.h; path = Sources/Number/JXCategoryNumberCellModel.h; sourceTree = ""; }; - 2945888F89AB6D3ECBBEDD6E09D1B949 /* UIScrollView+EmptyDataSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+EmptyDataSet.h"; path = "Source/UIScrollView+EmptyDataSet.h"; sourceTree = ""; }; - 29792A8AE7CB7444FE7BA20424B814AD /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; - 2A03E8820B42DFF0FCE849CB64302CAF /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; - 2A1E2D85798C902C2A1E1B714EF78587 /* UIViewController+PanModalPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PanModalPresenter.m"; path = "Sources/Presenter/UIViewController+PanModalPresenter.m"; sourceTree = ""; }; - 2A4AC508097EE18B75D5D75FDA7CF5C1 /* JXCategoryIndicatorBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBallView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h; sourceTree = ""; }; - 2A98EB9CE425ECC87D9747E4EAC3DB0C /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; - 2B0B272843C604B68C602DEE1AD3605F /* UIView+HW_Frame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+HW_Frame.h"; path = "Sources/Category/UIView+HW_Frame.h"; sourceTree = ""; }; + 294C64BA0B5C5308574A8A3AE2A85D1A /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; + 297CD54CDF904CABF1F66E0A0DCA46A9 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = ""; }; + 29B3632C1493FC9C66498F1FB8E1572C /* JXCategoryIndicatorImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorImageView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.m; sourceTree = ""; }; + 2A07E53A5646D6D6AF061C079709FE6D /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; + 2ADD806A65FD213516E38006E7412A29 /* JXCategoryIndicatorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCell.m; path = Sources/Indicator/JXCategoryIndicatorCell.m; sourceTree = ""; }; 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJExtension; path = MJExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B4792E0E693278C27DB918B70E58272 /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; - 2B53DEB14A9698F954D95E54715C1911 /* DZNEmptyDataSet-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DZNEmptyDataSet-Info.plist"; sourceTree = ""; }; - 2CB55990BE7673BB5930FB77BB2A2C33 /* FLAnimatedImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.debug.xcconfig; sourceTree = ""; }; - 2CCD2F6CD21BCE8D4DC6CE0FB91B91CB /* FLAnimatedImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FLAnimatedImage-dummy.m"; sourceTree = ""; }; - 2D0DE149DDBAC4B5DCFA0C2217970015 /* MJExtensionConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJExtensionConst.m; path = MJExtension/MJExtensionConst.m; sourceTree = ""; }; - 2DC211B96CB1A7D40B3203E4778066C9 /* UIViewController+LayoutHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LayoutHelper.h"; path = "Sources/Presentable/UIViewController+LayoutHelper.h"; sourceTree = ""; }; - 2DFC8007FA865661CA9E295ADD1014BA /* JXCategoryIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorView.h; path = Sources/Indicator/JXCategoryIndicatorView.h; sourceTree = ""; }; - 2E585503EB164F6C036C85B124140368 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = ""; }; - 2E79D80C613F4B57826DA627018BB1C5 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; - 2F04E40EC66FE8A57ECA4BC540959E1D /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagerView-JXPagingView-Info.plist"; sourceTree = ""; }; - 2F19C07EBC4D3E8EF1AD6C474E7F24FE /* LYEmptyView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LYEmptyView-dummy.m"; sourceTree = ""; }; + 2B8C93AD319F378DC20803CB9F69D59D /* LookinConnectionAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinConnectionAttachment.m; path = Src/Main/Shared/LookinConnectionAttachment.m; sourceTree = ""; }; + 2BA0B6E1C928CC5B614C19887B987C09 /* HWPageSheetPresentingAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPageSheetPresentingAnimation.m; path = Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.m; sourceTree = ""; }; + 2C106D57FCD41BF611795643D714421F /* RTLManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RTLManager.h; path = Sources/RLTManager/RTLManager.h; sourceTree = ""; }; + 2C3CE4647FE4CED3DEFE776630B7284F /* ZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ZipArchive.h; path = SSZipArchive/include/ZipArchive.h; sourceTree = ""; }; + 2C4EB6BF2D4CE9365194BD60FD83F78F /* JXCategoryCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryCollectionView.m; path = Sources/Common/JXCategoryCollectionView.m; sourceTree = ""; }; + 2C7A3A7B1E2977C0A4D17055B849A7B2 /* LKS_CustomAttrModificationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrModificationHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_CustomAttrModificationHandler.h; sourceTree = ""; }; + 2CF646920821F69A3AE386E730ABBCDE /* HWPanModalInteractiveAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalInteractiveAnimator.h; path = Sources/Animator/HWPanModalInteractiveAnimator.h; sourceTree = ""; }; + 2D1CA51113D2C810242700450E6D5F91 /* LookinEventHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinEventHandler.m; path = Src/Main/Shared/LookinEventHandler.m; sourceTree = ""; }; + 2E5D6A1DE9751FB33B1F22D67AA06638 /* LKS_ObjectRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ObjectRegistry.h; path = Src/Main/Server/Others/LKS_ObjectRegistry.h; sourceTree = ""; }; + 2E93A65559DA531AD62A42386304041D /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + 2E98EFA305127CF2E48DD682D9142F4D /* JXCategoryView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXCategoryView.modulemap; sourceTree = ""; }; + 2ECDF66E7F05D1F20CE08D11819DBA52 /* JXCategoryIndicatorDotLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorDotLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.m; sourceTree = ""; }; + 2EDA9F35E6812154628B5DBA71DF892F /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; 2F4A1CCB21DB7EA5A2ACEB11E374FBCA /* JXPagingView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXPagingView; path = JXPagingView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 304D443FD07AF14BA7F1628D80971669 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; - 304FA88F8B2636C2DD7FA535D2BD617D /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; - 30E03A823CD994C7C3DEA8D91B90C5DE /* JXCategoryIndicatorParamsModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorParamsModel.h; path = Sources/Common/JXCategoryIndicatorParamsModel.h; sourceTree = ""; }; - 310DC522C0637DDB20D8D38412CB4153 /* UIImageView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+LookinServer.h"; path = "Src/Main/Server/Category/UIImageView+LookinServer.h"; sourceTree = ""; }; - 313050E8524ED89E2B2CF8F5C1CC7633 /* LKS_AttrGroupsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_AttrGroupsMaker.h; path = Src/Main/Server/Others/LKS_AttrGroupsMaker.h; sourceTree = ""; }; - 317AEF64C0405ADA2DB47569A6D72FC4 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; - 31C9A23E37AE09BB9DC1BC766BD3A6AA /* JXCategoryImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageView.h; path = Sources/Image/JXCategoryImageView.h; sourceTree = ""; }; - 321334B98147E6E64FCE056E3717FEE0 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = ""; }; - 3259CC7D8EE4331CC9B8A86DA09EA5B3 /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; - 32E665F5EEABCF137D52CE4A3889C9F0 /* LKSConfigManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKSConfigManager.m; path = Src/Main/Server/Others/LKSConfigManager.m; sourceTree = ""; }; - 330AFA4D280CBB2EE073DCC942489EAB /* UIScrollView+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+Helper.m"; path = "Sources/Category/UIScrollView+Helper.m"; sourceTree = ""; }; - 3313EDBDBF7A4CA0DC32526D9ED0B496 /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; - 343C42E325F84441C510AF8DEE739ADF /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = ""; }; - 347DA9A1002297848F6BF9D97BB1F302 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; - 34F0487226F5EBEBA3C6D3E1743C5260 /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = ""; }; - 3501E850F701BA678364B4AFBF1C8417 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; - 353BBBDE951248D62CFDF267ACFAD0A7 /* FLAnimatedImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-prefix.pch"; sourceTree = ""; }; - 35B67A3C0E25A19B996355E03ED4A3CD /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; + 2F8CBF6DA35A241F4B3AC77D1A248B98 /* HWPanModalInteractiveAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalInteractiveAnimator.m; path = Sources/Animator/HWPanModalInteractiveAnimator.m; sourceTree = ""; }; + 3004D0D0AA35348BA3E4E41C002EADF2 /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; + 3016074F4F1A2D4E18C044550651536D /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; + 302975DFD9229749EE5D0CC495C097B3 /* UIView+LSTPV.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LSTPV.m"; path = "LSTPopView/Classes/Code/UIView+LSTPV.m"; sourceTree = ""; }; + 304121A0D3C435F033B160ED27159497 /* mz_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_os_posix.c; path = SSZipArchive/minizip/mz_os_posix.c; sourceTree = ""; }; + 3041393DEDB2B4121A720B516580C6F4 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = ""; }; + 30707FCDD9AD91DBE93F5F78AF85037D /* HWPanModal-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HWPanModal-umbrella.h"; sourceTree = ""; }; + 30F9C31CE20A9FC3A93220859F3B365A /* JXCategoryTitleImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCellModel.m; path = Sources/TitleImage/JXCategoryTitleImageCellModel.m; sourceTree = ""; }; + 312405E920D8F27B2ABAD5C7C5047F50 /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; + 315FB86B28046E0FCE4DFBF33E80E881 /* LKS_MultiplatformAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_MultiplatformAdapter.m; path = Src/Main/Server/Others/LKS_MultiplatformAdapter.m; sourceTree = ""; }; + 327CD1528BBA4042036E97BEBA74274F /* CALayer+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+Lookin.h"; path = "Src/Main/Shared/Category/CALayer+Lookin.h"; sourceTree = ""; }; + 3280BDBC75CF4A431E722CC2EDCC3C1E /* MJPropertyType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJPropertyType.m; path = MJExtension/MJPropertyType.m; sourceTree = ""; }; + 32B43E5461D43BFAECF375AB2DC8E85E /* LKS_GestureTargetActionsSearcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_GestureTargetActionsSearcher.m; path = Src/Main/Server/Others/LKS_GestureTargetActionsSearcher.m; sourceTree = ""; }; + 332200A6FC684D5728F6AA658E5AE9A5 /* JXCategoryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryView.h; path = Sources/JXCategoryView.h; sourceTree = ""; }; + 3332F7D1A3C0C615D03E2AD11086C3A3 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; + 3369E1F4F864EABA5F02292CEDA67422 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; + 337BA8B645E62D8CD88D56EE0E054C95 /* LYEmptyView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LYEmptyView.debug.xcconfig; sourceTree = ""; }; + 3380C668B7FA17B9F0A13799CB2C15F9 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; + 33A699CA2A6AB899286C0D62BB40C7E6 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; + 340965B893AD5E7E845960971D20228E /* HWDimmedView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWDimmedView.h; path = Sources/View/HWDimmedView.h; sourceTree = ""; }; + 340B5F4A82453A4079D19115773C0E7E /* JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXCategoryView-Info.plist"; sourceTree = ""; }; + 34168E6315396E3BC8DB0C0D92135317 /* MJExtension-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJExtension-dummy.m"; sourceTree = ""; }; + 341C14E47443E43EC0ED92B2C9C21AD2 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; + 3496B4EAE2849B5A2A6E8BA7A3BDE3BD /* LKS_MultiplatformAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_MultiplatformAdapter.h; path = Src/Main/Server/Others/LKS_MultiplatformAdapter.h; sourceTree = ""; }; + 34A9597A3B19D20F2D1CC81A1ABB722C /* NSObject+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+Lookin.m"; path = "Src/Main/Shared/Category/NSObject+Lookin.m"; sourceTree = ""; }; 35BFA337F4E1FDE67C773A82CCDFD6DA /* Pods-keyBoard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-keyBoard.debug.xcconfig"; sourceTree = ""; }; - 36BEAD7507B8644D14D46C852A6EF20B /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; - 36CBA5AB35EE7DE7B4A5CDBAC4BE20A8 /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; - 371A20C759D3E78183B0BC7EA626FA2D /* LookinObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinObject.h; path = Src/Main/Shared/LookinObject.h; sourceTree = ""; }; - 373258A2F6DFCE8ADD1C1D42DE5EF5D3 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; - 374CEB5E4CAC5B1889E4B3A57B47546E /* LYEmptyView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyView.h; path = LYEmptyView/LYEmptyView.h; sourceTree = ""; }; - 37977014CE5B8A9E93F1EC56C3AC6D52 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; - 37C2A3B1C753D4547646108720BF5321 /* JXCategoryIndicatorComponentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorComponentView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.h; sourceTree = ""; }; - 38C2193309DE8B485EA6F0495C08B115 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; - 38F21B02ED02115E613C152CE563BD5A /* LookinAutoLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAutoLayoutConstraint.m; path = Src/Main/Shared/LookinAutoLayoutConstraint.m; sourceTree = ""; }; - 39267406AD82F75ABB872A20BE14F010 /* LYEmptyView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LYEmptyView.m; path = LYEmptyView/LYEmptyView.m; sourceTree = ""; }; - 39592D3DD29808CC34F5BDE8FFAD64E6 /* LookinAttributeModification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributeModification.m; path = Src/Main/Shared/LookinAttributeModification.m; sourceTree = ""; }; + 3698FC1368DA6E124367FE8947EF4A57 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; + 36C23BF6472529CBAF23C7D4F8912144 /* LookinConnectionResponseAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinConnectionResponseAttachment.m; path = Src/Main/Shared/LookinConnectionResponseAttachment.m; sourceTree = ""; }; + 36F42C589BF3CE6FB1651BCBEC115229 /* CALayer+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+LookinServer.m"; path = "Src/Main/Server/Category/CALayer+LookinServer.m"; sourceTree = ""; }; + 36F771A08989CA5134B23D5F5E970ACA /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJKeyValue.m"; path = "MJExtension/NSObject+MJKeyValue.m"; sourceTree = ""; }; + 37062203C7A1D75A3D580DF7678FCF91 /* LookinAttrIdentifiers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttrIdentifiers.h; path = Src/Main/Shared/LookinAttrIdentifiers.h; sourceTree = ""; }; + 373DF461217F7D5921663CC9414928C2 /* LKS_InbuiltAttrModificationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_InbuiltAttrModificationHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_InbuiltAttrModificationHandler.m; sourceTree = ""; }; + 37B20E15FD376B168BFA0BEE0E4E8A49 /* JXCategoryTitleVerticalZoomView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomView.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h; sourceTree = ""; }; + 37BA545EC5296B88830E16293AEE0DF6 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; + 37E6A60337DC1DB10FAFE7C0D9A43E92 /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; + 3857A564BC94B93CC94D3EA56DDC4671 /* LookinAttributesSection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributesSection.m; path = Src/Main/Shared/LookinAttributesSection.m; sourceTree = ""; }; + 3896EF3FC153DCD9550AA0C34B1DD94B /* JXCategoryNumberView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberView.h; path = Sources/Number/JXCategoryNumberView.h; sourceTree = ""; }; + 38BB10A60ABDA6EA5E356A40C65605AD /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; + 38FA429E7EB072E02DCC6868AFB0631B /* JXCategoryImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCell.m; path = Sources/Image/JXCategoryImageCell.m; sourceTree = ""; }; + 395934EE4CE43C1DE9788DC03A7C6D89 /* MJProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJProperty.h; path = MJExtension/MJProperty.h; sourceTree = ""; }; + 396248A5638A63D99C663B0185BD35D7 /* UIViewController+LayoutHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LayoutHelper.h"; path = "Sources/Presentable/UIViewController+LayoutHelper.h"; sourceTree = ""; }; 399102B94B534EB49EE0E5512D150CA8 /* LSTPopView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LSTPopView; path = LSTPopView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 39D7BCC784A30383722D127896FE591E /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; - 39D939E1825294C23871CD06F0A1E6A2 /* JXCategoryBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseView.m; path = Sources/Base/JXCategoryBaseView.m; sourceTree = ""; }; - 3A10B1AFB4B6959F4A11AB1B1BC4A437 /* HWPanModalPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentable.h; path = Sources/Presentable/HWPanModalPresentable.h; sourceTree = ""; }; - 3A1C13D0C9F5E8ED93D0398C379507C1 /* LookinHierarchyFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinHierarchyFile.m; path = Src/Main/Shared/LookinHierarchyFile.m; sourceTree = ""; }; - 3A9477BE731926B610D9B847EF5B7347 /* NSObject+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LookinServer.h"; path = "Src/Main/Server/Category/NSObject+LookinServer.h"; sourceTree = ""; }; - 3AF0216318F4C1EBD4207012E5E70EB1 /* JXCategoryDotCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCellModel.m; path = Sources/Dot/JXCategoryDotCellModel.m; sourceTree = ""; }; - 3B250EFB659FBBBBA5D680859085344D /* JXPagerListRefreshView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListRefreshView.h; path = Sources/JXPagerView/JXPagerListRefreshView.h; sourceTree = ""; }; - 3B812F8DDDC6CC3E3ACDB1D17716E70C /* JXCategoryTitleImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCellModel.h; path = Sources/TitleImage/JXCategoryTitleImageCellModel.h; sourceTree = ""; }; - 3C530EFDCDFFC732A409BADBE3F0D068 /* MBProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MBProgressHUD.modulemap; sourceTree = ""; }; - 3C71B9877A51B54673C7FFC0C3276863 /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; - 3CA454A209E71894BC9366B10B95D086 /* LKS_Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_Helper.h; path = Src/Main/Server/Others/LKS_Helper.h; sourceTree = ""; }; + 3A6D127A5F91E50191D10CCE0BF96AF9 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; + 3AC1BE167B4F437B66364BE2F9827F10 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; + 3AEC2B0BCCF800B9E27EEDCAD6ECB138 /* LKSConfigManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKSConfigManager.m; path = Src/Main/Server/Others/LKSConfigManager.m; sourceTree = ""; }; + 3BEABBD34E483D264740E6B0459E003D /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; + 3BFB8178934237D2097197FFA692EDCE /* JXCategoryCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryCollectionView.h; path = Sources/Common/JXCategoryCollectionView.h; sourceTree = ""; }; + 3C6AD52499B385E19C48897006A1010A /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; 3CB13D51E717D347023EEB57263E3072 /* Pods-CustomKeyboard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CustomKeyboard-dummy.m"; sourceTree = ""; }; - 3D72A1C48CB238B4D5F50BA925DEDEAE /* UIColor+JXAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+JXAdd.h"; path = "Sources/Common/UIColor+JXAdd.h"; sourceTree = ""; }; - 3D8A828331C79742A41F54C2050C90A8 /* LookinAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAppInfo.h; path = Src/Main/Shared/LookinAppInfo.h; sourceTree = ""; }; - 3DDFB85C3FF1851267A20FACB64B4497 /* LookinCustomDisplayItemInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCustomDisplayItemInfo.h; path = Src/Main/Shared/LookinCustomDisplayItemInfo.h; sourceTree = ""; }; - 3DF983F1377AD739C3DF33AE51632FCF /* Bugly.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.debug.xcconfig; sourceTree = ""; }; - 3E05D85B85A84A7D628539AD042EC841 /* Lookin_PTProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTProtocol.h; path = Src/Main/Shared/Peertalk/Lookin_PTProtocol.h; sourceTree = ""; }; - 3E34DAE4904CE87FBB70688EA36DF9D3 /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; - 3ED4F75E10F9C3D76FF139C89BBB8154 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; - 3F0DA836C065C821DDDE100A36B1C087 /* HWBackgroundConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWBackgroundConfig.m; path = Sources/View/HWBackgroundConfig.m; sourceTree = ""; }; - 402736588AC9D07AA589F2943BAE3C89 /* SDCallbackQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCallbackQueue.h; path = SDWebImage/Core/SDCallbackQueue.h; sourceTree = ""; }; - 404BBFC3B5A2ADAEF4E188881B357111 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; - 406C8D3FB686F0A24482B5EC0964787A /* DZNEmptyDataSet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DZNEmptyDataSet.modulemap; sourceTree = ""; }; - 407D327724ADF96791DFD9B922AA254A /* LookinDisplayItemDetail.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDisplayItemDetail.h; path = Src/Main/Shared/LookinDisplayItemDetail.h; sourceTree = ""; }; - 412FD8B68949345873B82E2D0C864C85 /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; - 41B61F60FDADCD1988F2A5F1B93F6FB0 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; - 4201C2CD51C00E5AC0EC45DC41B32695 /* HWPanModal.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HWPanModal.debug.xcconfig; sourceTree = ""; }; - 4228538168305A12A3465600D6FA372A /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - 429004AF40A48DE835234068590E6A94 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = ""; }; - 438B056E0DAE53D40DB4894FF36879AF /* LookinServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LookinServer.release.xcconfig; sourceTree = ""; }; - 43901AAA2BB40AE5F534540676833E30 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = ""; }; - 43BA7B9A75BE654B8242649314595C2D /* JXCategoryTitleVerticalZoomView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomView.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.m; sourceTree = ""; }; - 43E163147E40F868F458CD979D77C4E4 /* MJExtension-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJExtension-dummy.m"; sourceTree = ""; }; + 3D13D5C804FC991DCB89F6DF78DD5C96 /* LookinAutoLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAutoLayoutConstraint.h; path = Src/Main/Shared/LookinAutoLayoutConstraint.h; sourceTree = ""; }; + 3DA8C2D4790BED356591B63B0C25204D /* UITextField+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+LookinServer.h"; path = "Src/Main/Server/Category/UITextField+LookinServer.h"; sourceTree = ""; }; + 3DE417BE9A31E93EC536EAA37DBDC145 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = ""; }; + 3E1E851A7A7CA784A018B5E55D9A6FAB /* JXCategoryTitleVerticalZoomCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCell.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.m; sourceTree = ""; }; + 3E900EA2C75888A78AAE83F5EA129123 /* LKS_AttrModificationPatchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_AttrModificationPatchHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_AttrModificationPatchHandler.m; sourceTree = ""; }; + 3F727D55D6275E422C78261D496AAC93 /* JXCategoryView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXCategoryView-dummy.m"; sourceTree = ""; }; + 3F9A2F4EF053344FC9A0ADD19237B587 /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = ""; }; + 4025663085C3F76169BB9584AE2F06C6 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; + 405C7E78856FC9D135BA999764F6C694 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; + 4104FEFBDB5BFADF059A2BD4DCFAF5D3 /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; + 413861DB2AFD99CC8B6165C8D0DA278D /* DZNEmptyDataSet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.release.xcconfig; sourceTree = ""; }; + 41507ECEBFBFE8748A3A5C6FD2DE2BDF /* JXCategoryDotCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCell.h; path = Sources/Dot/JXCategoryDotCell.h; sourceTree = ""; }; + 42B611D79D74010B677BFD4B27039E49 /* SSZipArchive.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.release.xcconfig; sourceTree = ""; }; + 4367271CF6B9B86B9F6378B464235E15 /* JXCategoryNumberCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCellModel.h; path = Sources/Number/JXCategoryNumberCellModel.h; sourceTree = ""; }; + 43D1BFE612E29B08BEB356DA8798ED52 /* MJExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJExtension.debug.xcconfig; sourceTree = ""; }; 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJExtension-MJExtension"; path = MJExtension.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 449CCE39A5A9EA789B9A284113D1025E /* SDImageFramePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFramePool.h; path = SDWebImage/Private/SDImageFramePool.h; sourceTree = ""; }; - 44B0B0F109E74E6F92B6497967BCE536 /* LookinCustomDisplayItemInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinCustomDisplayItemInfo.m; path = Src/Main/Shared/LookinCustomDisplayItemInfo.m; sourceTree = ""; }; - 452754C8CDFE17EC42C563B4B6E1F69A /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = ""; }; - 4531FCCC5DE7D00D6F827809F7CD4289 /* MJExtension-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJExtension-prefix.pch"; sourceTree = ""; }; - 453FB14441528B4AE2CF3592D5874C54 /* HWPanContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanContainerView.m; path = Sources/View/HWPanContainerView.m; sourceTree = ""; }; - 45E71D8592674E85D7D5DA4831A592BE /* JXCategoryBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseView.h; path = Sources/Base/JXCategoryBaseView.h; sourceTree = ""; }; - 45FCB10C5ADD911EC17F1E6BAAFE9892 /* UIScrollView+EmptyDataSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+EmptyDataSet.m"; path = "Source/UIScrollView+EmptyDataSet.m"; sourceTree = ""; }; - 469576EF612EDF18C057B4FB1E423192 /* LookinServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LookinServer-umbrella.h"; sourceTree = ""; }; - 46F71F9F19999F6D4F186847FA3CC8F7 /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; - 47A97040129EEE8B96AEEA0A9B73DA45 /* HWPanModalInteractiveAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalInteractiveAnimator.h; path = Sources/Animator/HWPanModalInteractiveAnimator.h; sourceTree = ""; }; - 4883D2BC668CDDE38C319AC414885077 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 48A816CF0BA23EA39A514E31ED98C5D3 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - 48E1ED2BAC3C5C1B077AAB67F3325D4E /* DZNEmptyDataSet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.debug.xcconfig; sourceTree = ""; }; - 4A15AB0AB6FCF1589E2A6CEDC3CF0B95 /* HWPanIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanIndicatorView.h; path = Sources/View/HWPanIndicatorView.h; sourceTree = ""; }; - 4A2BDE1ACE119E645C72F92B4CCAECF4 /* NSObject+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Lookin.h"; path = "Src/Main/Shared/Category/NSObject+Lookin.h"; sourceTree = ""; }; - 4A4AE7A504C340AE8EE98F70C318D63C /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; - 4AAF4EE016C54A7F264F9B8FBB0853C8 /* NSArray+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+Lookin.m"; path = "Src/Main/Shared/Category/NSArray+Lookin.m"; sourceTree = ""; }; - 4B2681504ECC11F7B0563ECF0A1FDDFA /* Color+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Color+Lookin.m"; path = "Src/Main/Shared/Category/Color+Lookin.m"; sourceTree = ""; }; - 4B6F5F5F32C55F6B9F4E87EC57A0A074 /* Lookin_PTProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTProtocol.m; path = Src/Main/Shared/Peertalk/Lookin_PTProtocol.m; sourceTree = ""; }; - 4BC98580A0BA844CDD661F01812A35C7 /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; - 4C354F545C0CC91C4033DC0D648B3819 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - 4C7F47A09BE728487DF546FE00CA555E /* UIViewController+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LookinServer.h"; path = "Src/Main/Server/Category/UIViewController+LookinServer.h"; sourceTree = ""; }; - 4D2B4D757199E020DE43661B60EB2819 /* LKS_Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_Helper.m; path = Src/Main/Server/Others/LKS_Helper.m; sourceTree = ""; }; - 4EBFFAE4CE0471C78DB70755CFCC7609 /* HWPanModalPresentationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationDelegate.h; path = Sources/Delegate/HWPanModalPresentationDelegate.h; sourceTree = ""; }; - 4F8D39C76EB84B28054B453882C78E41 /* LookinAttributesSection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributesSection.m; path = Src/Main/Shared/LookinAttributesSection.m; sourceTree = ""; }; - 4F973225F70967D6C01DF18ABCACA3C4 /* HWPanModal-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HWPanModal-prefix.pch"; sourceTree = ""; }; - 5048CCD1406058B50480C383463B3C39 /* LYEmptyView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LYEmptyView.debug.xcconfig; sourceTree = ""; }; - 5105F32D29B4C0D80B780EE2DF6D2898 /* JXCategoryTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleView.h; path = Sources/Title/JXCategoryTitleView.h; sourceTree = ""; }; - 513C1A2EE22268DD51EB02AE24E3B579 /* HWPanModalShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalShadow.m; path = Sources/View/HWPanModalShadow.m; sourceTree = ""; }; - 517D8EDC9F4BA34E4E4060247125B56D /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; - 517EACA3BDCA2E1CB5B954656D4B9F02 /* LYEmptyView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LYEmptyView-prefix.pch"; sourceTree = ""; }; - 51AB8F5FA4517AC80D7763B2894462EB /* LKS_EventHandlerMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_EventHandlerMaker.h; path = Src/Main/Server/Others/LKS_EventHandlerMaker.h; sourceTree = ""; }; - 524557CADCF9674C470A7B1764594AEC /* JXCategoryTitleImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCell.h; path = Sources/TitleImage/JXCategoryTitleImageCell.h; sourceTree = ""; }; - 526BF014AFB62CD2E2E5312B573388BC /* JXCategoryView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXCategoryView.modulemap; sourceTree = ""; }; - 52AF8374431A1EA8420BA1E29139131E /* LKS_TraceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_TraceManager.h; path = Src/Main/Server/Others/LKS_TraceManager.h; sourceTree = ""; }; - 52FF07E10C8C0B816653B6836CCFFD04 /* LKS_CustomAttrGroupsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrGroupsMaker.h; path = Src/Main/Server/Others/LKS_CustomAttrGroupsMaker.h; sourceTree = ""; }; - 53155231B4EB5B29274A0546D6F39B91 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; + 43F68B04BCC53A477CA8E0DDD0110B01 /* HWPanModalPresentationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationDelegate.h; path = Sources/Delegate/HWPanModalPresentationDelegate.h; sourceTree = ""; }; + 43F7DFAD54A39AC067B93B7F37CEACC4 /* mz_crypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_crypt.h; path = SSZipArchive/minizip/mz_crypt.h; sourceTree = ""; }; + 44D08F7CF9BB9D6E3D4646C7B30B91D9 /* JXCategoryTitleImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCell.m; path = Sources/TitleImage/JXCategoryTitleImageCell.m; sourceTree = ""; }; + 44F2EA17CF495B3C7801177736C26647 /* JXCategoryDotCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCellModel.h; path = Sources/Dot/JXCategoryDotCellModel.h; sourceTree = ""; }; + 44FDE6E0FD25622CBD1C32FE4FDD3698 /* UIViewController+LayoutHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LayoutHelper.m"; path = "Sources/Presentable/UIViewController+LayoutHelper.m"; sourceTree = ""; }; + 44FFA285CAA6823C9FB21CF9A6BA99A2 /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; + 454462FEDDD4679F4268C1E79DDF2CB7 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; + 45CD236134E5D2F49DF88F4618260F0E /* UIColor+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+LookinServer.h"; path = "Src/Main/Server/Category/UIColor+LookinServer.h"; sourceTree = ""; }; + 462826D970853E9C8FE383182C96312F /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = ""; }; + 47758962FF5EA178A385878D70B7D23A /* FLAnimatedImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-umbrella.h"; sourceTree = ""; }; + 47967249E6F0D4DE5940EB3E03FDDACA /* UIView+LSTPV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LSTPV.h"; path = "LSTPopView/Classes/Code/UIView+LSTPV.h"; sourceTree = ""; }; + 47DFF43E6BE4EF7BEEFEAB5D142B408B /* mz_strm_split.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_split.c; path = SSZipArchive/minizip/mz_strm_split.c; sourceTree = ""; }; + 4933034880CCA5F38E9C996B03E67F7F /* UIView+LYExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LYExtension.m"; path = "LYEmptyView/UIView+LYExtension.m"; sourceTree = ""; }; + 493BE38A720CE0AA9D19CC2814C3EFEC /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; + 493E45585E98235EFCE933B028A0D309 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; + 496191DAB3633628753F592D2757EC69 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; + 49FCA4D456B0E93FB4BA0769CBE5AC2E /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; + 4AABA37C73D3E8D4BEFE90BE49794EC3 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; + 4ABD0EF98F92FC86D229EEF559B0B6A3 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; + 4AC24F43085D93918FC2FF8EA9D4A9BA /* JXCategoryImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCellModel.h; path = Sources/Image/JXCategoryImageCellModel.h; sourceTree = ""; }; + 4ACB666A05CC9FCBFCB2DF08A44EDCEF /* MJExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJExtension.release.xcconfig; sourceTree = ""; }; + 4B24C6651F79840BF3D3D3ABE8A82658 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; + 4C2EFB6E13CC9AA252123FA37B490F29 /* SDImageFramePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFramePool.m; path = SDWebImage/Private/SDImageFramePool.m; sourceTree = ""; }; + 4C534235E73B4CE717D8C2531F72319C /* LookinObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinObject.h; path = Src/Main/Shared/LookinObject.h; sourceTree = ""; }; + 4C85A06A2C6EDE51803F645EBFC3C666 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; + 4CA92ABE6AB98DEFE6896E40AC428193 /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; + 4CF65D21498E52597FA5C3E47AACB489 /* UIViewController+PanModalPresenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PanModalPresenter.m"; path = "Sources/Presenter/UIViewController+PanModalPresenter.m"; sourceTree = ""; }; + 4D7647553D09AC39B5FF8CAAB21B2F1D /* LSTTimer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LSTTimer.modulemap; sourceTree = ""; }; + 4E9252395065AF703DEC1F4DB7906407 /* JXCategoryTitleVerticalZoomCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCellModel.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.m; sourceTree = ""; }; + 4E9F1FA14918710AF561794E295889C2 /* JXPagerListRefreshView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListRefreshView.h; path = Sources/JXPagerView/JXPagerListRefreshView.h; sourceTree = ""; }; + 4FD3AD2667575D5EC04C51DDC2C85158 /* MJFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJFoundation.m; path = MJExtension/MJFoundation.m; sourceTree = ""; }; + 502567ED20EC16FD9EAAB5C4A9CA4886 /* UIColor+JXAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+JXAdd.h"; path = "Sources/Common/UIColor+JXAdd.h"; sourceTree = ""; }; + 50BADD121EA372277C8833D3686FA23C /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; + 512A25DAEA073CE0762D2115C0A3524A /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + 5131824FAE2ADD647AE8C54EC334E280 /* JXCategoryIndicatorCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCellModel.m; path = Sources/Indicator/JXCategoryIndicatorCellModel.m; sourceTree = ""; }; + 516AE9E97902910ABC8576640FB4C80F /* LKS_ExportManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ExportManager.m; path = Src/Main/Server/Others/LKS_ExportManager.m; sourceTree = ""; }; + 51A29F3EE0247FA13905035912EFB7CA /* JXCategoryBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseView.m; path = Sources/Base/JXCategoryBaseView.m; sourceTree = ""; }; + 52C589D40F94F3744B770C369237A59D /* LKS_AttrGroupsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_AttrGroupsMaker.m; path = Src/Main/Server/Others/LKS_AttrGroupsMaker.m; sourceTree = ""; }; + 53067D5B14E4EEA9819FC6B7F9321221 /* LKS_GestureTargetActionsSearcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_GestureTargetActionsSearcher.h; path = Src/Main/Server/Others/LKS_GestureTargetActionsSearcher.h; sourceTree = ""; }; 5327DD01C6533D102D66E1636B3827F3 /* Pods-keyBoard-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-keyBoard-acknowledgements.plist"; sourceTree = ""; }; - 541552D5AA99C6DF3406BD050E1467DB /* AFNetworking-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AFNetworking-Info.plist"; sourceTree = ""; }; - 55488AFE93BF97340EF80D0D6C1E2CA0 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; - 5633AC0E53EEE3085AFE9CB101E6C0CF /* JXCategoryNumberCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCellModel.m; path = Sources/Number/JXCategoryNumberCellModel.m; sourceTree = ""; }; - 568F43CF567335FABEC4825ED4776B19 /* HWPanModalShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalShadow.h; path = Sources/View/HWPanModalShadow.h; sourceTree = ""; }; - 56F54F2E70EF1B4C4CD6CC49471EBF8F /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; - 570A4EA50A989D93BDAC90837E4F3637 /* JXCategoryImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCellModel.m; path = Sources/Image/JXCategoryImageCellModel.m; sourceTree = ""; }; - 572433DB55AF2085E2E4D419FCE37679 /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; - 57460121EED43E41D624C46A92FE9E08 /* JXPagerListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListContainerView.h; path = Sources/JXPagerView/JXPagerListContainerView.h; sourceTree = ""; }; - 57A3558C23C0EFA92D7C80FBF8A6332A /* MJPropertyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJPropertyKey.m; path = MJExtension/MJPropertyKey.m; sourceTree = ""; }; - 57B2E23309380B0E15F50C277205AC0D /* AFNetworking.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.release.xcconfig; sourceTree = ""; }; - 59720B9654BC9C6EC9F2FF79FB3FEB5A /* HWPanModal.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HWPanModal.modulemap; sourceTree = ""; }; - 5978BDDC6A977C5D014B3D0CC0294043 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; - 59CF9D4B8C92110B4BC1E1792E4AAEA5 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; - 5B758502F7753329D591359BA2747831 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - 5B766998FBEAD558A15F06134D5A9335 /* JXCategoryIndicatorTriangleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorTriangleView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h; sourceTree = ""; }; - 5C64D6AC35DE27CAD74CA154541AF1C9 /* MJRefreshTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshTrailer.m; path = MJRefresh/Base/MJRefreshTrailer.m; sourceTree = ""; }; - 5C847B3748FF7761203F8DDBD028D651 /* LookinServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LookinServer-prefix.pch"; sourceTree = ""; }; - 5CB6F43E2EFE165260D66B0BFF9A8831 /* JXCategoryImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageView.m; path = Sources/Image/JXCategoryImageView.m; sourceTree = ""; }; - 5CB726B6B5C83EAABA9AC89E76D45643 /* DZNEmptyDataSet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.release.xcconfig; sourceTree = ""; }; - 5D2F2FDA20E8BC9884D1E9ED05D83DDF /* UITextField+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+LookinServer.h"; path = "Src/Main/Server/Category/UITextField+LookinServer.h"; sourceTree = ""; }; + 541912CF842509E54C2F9817338B90E5 /* HWPanModalContentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalContentView.m; path = Sources/View/PanModal/HWPanModalContentView.m; sourceTree = ""; }; + 54541842A6CB924467D09BA9259EEC66 /* FLAnimatedImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.debug.xcconfig; sourceTree = ""; }; + 54B953FEBF29D86AD70331F6A6DC74C8 /* JXPagerSmoothView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerSmoothView.m; path = Sources/JXPagerView/JXPagerSmoothView.m; sourceTree = ""; }; + 54EF4753ED63F047DF0353076DCB7C08 /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; + 54EF4964495A1314279618353DD88CFF /* DZNEmptyDataSet.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DZNEmptyDataSet.modulemap; sourceTree = ""; }; + 553C3B3D779AB6CB5190C219D6C92261 /* JXCategoryBaseCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCell.m; path = Sources/Base/JXCategoryBaseCell.m; sourceTree = ""; }; + 55E55222C6C86AFF25E27B0D455BF241 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; + 55F8377D2B875785FEEA759FCF32A69C /* JXCategoryTitleImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageView.m; path = Sources/TitleImage/JXCategoryTitleImageView.m; sourceTree = ""; }; + 56077C48389F9B1095044672B0887D63 /* HWPanModalAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalAnimator.h; path = Sources/Animator/HWPanModalAnimator.h; sourceTree = ""; }; + 560B458A525AF32A2AB5C477CFBBDE88 /* UITextField+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+LookinServer.m"; path = "Src/Main/Server/Category/UITextField+LookinServer.m"; sourceTree = ""; }; + 568011BEDC1B875E593855247AF2ED81 /* NSObject+MJClass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJClass.h"; path = "MJExtension/NSObject+MJClass.h"; sourceTree = ""; }; + 5681D07EBA45EA9D44658A1C3CB089C1 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + 56F94A64871B863922233556EBCC8B3C /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; + 579D465907AF561A964E6215E3417CD6 /* NSSet+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+Lookin.m"; path = "Src/Main/Shared/Category/NSSet+Lookin.m"; sourceTree = ""; }; + 5811FCC0F688112EBBC68172735EE311 /* LookinDisplayItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDisplayItem.h; path = Src/Main/Shared/LookinDisplayItem.h; sourceTree = ""; }; + 582878B2C284C868038DC1140C755280 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; + 583A0C19F8D1ACE1709410EB4733F2B0 /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; + 587F3D57A14E0843D394318214FCF8B0 /* NSArray+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+Lookin.h"; path = "Src/Main/Shared/Category/NSArray+Lookin.h"; sourceTree = ""; }; + 589689F46EC520D58650D81C0BCDCD52 /* JXCategoryDotCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCellModel.m; path = Sources/Dot/JXCategoryDotCellModel.m; sourceTree = ""; }; + 58A1DEAE0622F43AE3AD873A977F5D9A /* LookinServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LookinServer.debug.xcconfig; sourceTree = ""; }; + 58EEB7C2A63BEB01A88AE5CF3E60AAB6 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; + 5918D263D7433ADA39A5E4A89EBFB550 /* HWPanModalPresentable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentable.h; path = Sources/Presentable/HWPanModalPresentable.h; sourceTree = ""; }; + 5947624C463587896B461DBD447D7C15 /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; + 5977C1FD1130EB89CA34ABC7D62CE1AC /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; + 59A6313DB1DDFF0278C2714355019D44 /* Lookin_PTChannel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTChannel.h; path = Src/Main/Shared/Peertalk/Lookin_PTChannel.h; sourceTree = ""; }; + 59AF9F3690B04B3F352C8CAC3F871AB8 /* mz_crypt_apple.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt_apple.c; path = SSZipArchive/minizip/mz_crypt_apple.c; sourceTree = ""; }; + 5A9531FA2B1B637BBDA9F1F75A2AB7E4 /* HWPresentingVCAnimatedTransitioning.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPresentingVCAnimatedTransitioning.h; path = Sources/Animator/HWPresentingVCAnimatedTransitioning.h; sourceTree = ""; }; + 5AAAD9C4443ACAC2E1EAA35A70A4A148 /* LKS_TraceManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_TraceManager.m; path = Src/Main/Server/Others/LKS_TraceManager.m; sourceTree = ""; }; + 5B98A886462BC99072A046EEF76F5E1C /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; + 5BBA876292C39EC75D3A3DE0E1936D10 /* Image+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Image+Lookin.h"; path = "Src/Main/Shared/Category/Image+Lookin.h"; sourceTree = ""; }; + 5BCA5DA5834A1F32620A3B6F778113AD /* JXCategoryIndicatorBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBallView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.m; sourceTree = ""; }; + 5C8E404DAF454FD55DABB3DC94C284B8 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 5CC39D433389340C17FA7CE4395B505F /* JXCategoryBaseCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCellModel.h; path = Sources/Base/JXCategoryBaseCellModel.h; sourceTree = ""; }; 5DA4577FE3BC4A03751108FFED07B385 /* DZNEmptyDataSet */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DZNEmptyDataSet; path = DZNEmptyDataSet.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5DC759BB8D0141E0F064F3BCA7197315 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; - 5E5C516541F7C7AC40E990C05307FEEF /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; - 5E9C6ED309FB0F6481FF6639AA9C417B /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; - 5EA970CCF2164DC59ECEE9DE06B1BCBA /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; - 5EADC8693C7692FBBE4CE165F51B28E9 /* JXCategoryTitleImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCell.m; path = Sources/TitleImage/JXCategoryTitleImageCell.m; sourceTree = ""; }; - 5EE479D553AE99C7C893E8B21299B3AC /* JXCategoryIndicatorBackgroundView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBackgroundView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h; sourceTree = ""; }; - 5EF3B546633CC3DB26A173DE519AC3D7 /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = ""; }; - 5EFCD05B81004D2C239BFBEBEE4DC3D5 /* JXCategoryIndicatorCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCellModel.h; path = Sources/Indicator/JXCategoryIndicatorCellModel.h; sourceTree = ""; }; - 60195DBDE404C5ECBC4E710D0F5E50E7 /* UIImage+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+LookinServer.h"; path = "Src/Main/Server/Category/UIImage+LookinServer.h"; sourceTree = ""; }; - 6021531912761F1BDBFE14A61784B26D /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; - 60696FE70F42B1A0CD7B0614C2A2F16C /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; - 607560CCA2D3766D85B5AEE557812D0E /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; - 6099FBA2A3EE3D602B49D82E19FA5875 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; - 60F9066C601EE11D24D22C170F05AF13 /* LookinWeakContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinWeakContainer.m; path = Src/Main/Shared/LookinWeakContainer.m; sourceTree = ""; }; - 6148399DD529311A930CEF2A2AC2FBD4 /* LookinIvarTrace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinIvarTrace.m; path = Src/Base/LookinIvarTrace.m; sourceTree = ""; }; - 616DFB551B9EEC8F4D98DBDC3C2543CA /* MJExtension.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJExtension.modulemap; sourceTree = ""; }; - 61C0CC288A628CFA871D599D497E2A8E /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; - 61D65BB6AAD351E64F3FE46FACDEED4F /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; - 6331F4B8E0F66A8F7B8028B33CF71268 /* LSTTimer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LSTTimer.modulemap; sourceTree = ""; }; - 633C3F66E9BA0FD7538C55D5287ED77E /* LSTPopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LSTPopView.m; path = LSTPopView/Classes/Code/LSTPopView.m; sourceTree = ""; }; - 634119E1E65F912498A262851F72517B /* Bugly.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bugly.framework; sourceTree = ""; }; - 638488B4F5FF9C67F848A841B1A34765 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 63A3BD4651AA1DDCB216ABB7FBC3A69E /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefresh/MJRefreshConst.h; sourceTree = ""; }; + 5ED944F2FDEEB1DA10261DC24BC5A158 /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + 5F08EE508E662277DBDA80CFA408C026 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefresh/Base/MJRefreshComponent.h; sourceTree = ""; }; + 5F1265E3FE9A084FF2AA73E77669BE83 /* JXPagerMainTableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerMainTableView.h; path = Sources/JXPagerView/JXPagerMainTableView.h; sourceTree = ""; }; + 5FE7198C233A2640C008082E5B441F41 /* JXCategoryIndicatorParamsModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorParamsModel.m; path = Sources/Common/JXCategoryIndicatorParamsModel.m; sourceTree = ""; }; + 607851C86C7B338A9843A69CE0B4EE75 /* LSTPopView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LSTPopView.modulemap; sourceTree = ""; }; + 60960D0EF4A92968C18A9FF56584EA1B /* JXCategoryImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageView.m; path = Sources/Image/JXCategoryImageView.m; sourceTree = ""; }; + 60DE3C334949936CB03401378B243088 /* UIViewController+Presentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+Presentation.m"; path = "Sources/Presentable/UIViewController+Presentation.m"; sourceTree = ""; }; + 60FD104CFB0C8648AF5171590639AB74 /* JXCategoryNumberCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCell.h; path = Sources/Number/JXCategoryNumberCell.h; sourceTree = ""; }; + 61156FA5CCBB3614A39E37A50E301200 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = ""; }; + 613C30128B9E1F76CE751AEF4DF4AD1F /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = ""; }; + 615BC44E22B7900F28F104F19D013B7F /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; + 61DDA08A6FD0A3E7C4F00EE37A9425D6 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; + 61F5F6BAF17E839077E81636970DB5D0 /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; + 63134755B811B0A20FAAA4D0FDAB7FF0 /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; + 6359DFA964A60852EBC4AB8002EAED38 /* LookinAttributesGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributesGroup.m; path = Src/Main/Shared/LookinAttributesGroup.m; sourceTree = ""; }; + 639BD3922CD4C84DA3488440B02B53F4 /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = ""; }; 641251D3092FFCF2B6259BF8676A212E /* Pods-CustomKeyboard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CustomKeyboard-Info.plist"; sourceTree = ""; }; - 64D49E5BC4A3E2ECFAA63B66E38A6F8D /* FLAnimatedImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FLAnimatedImage-Info.plist"; sourceTree = ""; }; - 6516BB90D0CA47F75712B356350A9FC1 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; - 6523AFC889399B6B25C08CCBEEE2F0B6 /* DZNEmptyDataSet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-umbrella.h"; sourceTree = ""; }; - 657631264951C7514A1788B1C6316E7F /* CALayer+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+Lookin.m"; path = "Src/Main/Shared/Category/CALayer+Lookin.m"; sourceTree = ""; }; - 659E098AEC86E789470E344EB23EC1DD /* JXPagerListRefreshView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListRefreshView.m; path = Sources/JXPagerView/JXPagerListRefreshView.m; sourceTree = ""; }; - 65CCB6F10EC6B284E771B999975CE0B0 /* MJExtensionConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJExtensionConst.h; path = MJExtension/MJExtensionConst.h; sourceTree = ""; }; - 6650E50E5FAFFD61FC973E5A0D5C8398 /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = ""; }; - 66E849825D4B5783372753D6820DE97F /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; - 673C80521DE4F20FDE3E9A82E6EBEC53 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; - 674659ECD497CB56B02FD385F68621CA /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = ""; }; - 6757029D58C1BFD772BCC87D14A52E39 /* UIView+LSTPV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LSTPV.h"; path = "LSTPopView/Classes/Code/UIView+LSTPV.h"; sourceTree = ""; }; - 68AAA13D71385283DB69A35327BC2F47 /* LSTTimer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTTimer.h; path = LSTTimer/Classes/LSTTimer.h; sourceTree = ""; }; - 6A2E7581F1DA07EBD6D2568091FCCB71 /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; - 6A41E1A305241C5A627FAD06CB90A275 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = ""; }; - 6AB6F2617132C99A6B5CB953305CCA89 /* LookinDashboardBlueprint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDashboardBlueprint.h; path = Src/Main/Shared/LookinDashboardBlueprint.h; sourceTree = ""; }; - 6B94BD4B7CE09D63E43117EFC4B15D0D /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; - 6BD04BB450562622E215B33554778CC3 /* LSTPopView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTPopView.release.xcconfig; sourceTree = ""; }; - 6BD526972490CFC41EE7106FF8E272CC /* UILabel+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UILabel+LookinServer.m"; path = "Src/Main/Server/Category/UILabel+LookinServer.m"; sourceTree = ""; }; - 6C1E503B34448DC968FB5BDFADFAE70F /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = ""; }; - 6C9E32D40F89FB7470530B4F8AAB6162 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefresh/Base/MJRefreshComponent.m; sourceTree = ""; }; - 6CE98E2FC8B92A0E98F20755C88122A4 /* LSTTimer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTTimer.debug.xcconfig; sourceTree = ""; }; - 6D00FB0A2824B0B4E8A345D97C52AA3B /* LookinServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LookinServer-dummy.m"; sourceTree = ""; }; - 6D149C2EB765D348E439D96EC2A80A04 /* NSObject+MJClass.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJClass.m"; path = "MJExtension/NSObject+MJClass.m"; sourceTree = ""; }; - 6D8BE2762FA18EF88A5BAD861C739B02 /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; - 6DE6908A836615F946533A6FEE623373 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; - 6EAD8B1C822E0F2BAB884329D798190B /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; - 6EB329DC3D8A252CA69C19DAF330A784 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; - 6EE8AE5699FC4ACD4283D4626ACDF742 /* LookinDisplayItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDisplayItem.h; path = Src/Main/Shared/LookinDisplayItem.h; sourceTree = ""; }; - 6F1245D39980C8CC23C4FFA557C72FA3 /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; - 6FD544A644986722B86F15A292995457 /* JXCategoryBaseCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCell.m; path = Sources/Base/JXCategoryBaseCell.m; sourceTree = ""; }; - 70021D526E8906DE61E9D2D0F92A78C3 /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; - 7083FA062632CC52050FC4EB53D64E3A /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; - 70CD4567ACE296214EA982091E2B8F90 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; - 70D52E1253BDF6EF05A1C5C1D46734EA /* Peertalk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Peertalk.h; path = Src/Main/Shared/Peertalk/Peertalk.h; sourceTree = ""; }; - 72B1B153E1909E0A9DFA6E6097FD363D /* JXCategoryBaseCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCell.h; path = Sources/Base/JXCategoryBaseCell.h; sourceTree = ""; }; - 72CEA2C3193763834CD0E25D8DB88F2D /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; - 731A2E2A09E554B786F7BD8D9285D1CC /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; - 7376537428F41B571A3D20FF9175747F /* LookinServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LookinServer.debug.xcconfig; sourceTree = ""; }; - 73A2C1D7BD2A650246BEE1A00F6D836C /* LookinDashboardBlueprint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDashboardBlueprint.m; path = Src/Main/Shared/LookinDashboardBlueprint.m; sourceTree = ""; }; - 73EBDE260791BF4440027F8601391D8B /* LSTTimer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTTimer.release.xcconfig; sourceTree = ""; }; - 741E2A603352D4102F1DAFBB68C69122 /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; - 74751305705DEA03873DFA2AF4DDC9B7 /* HWPanModalInteractiveAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalInteractiveAnimator.m; path = Sources/Animator/HWPanModalInteractiveAnimator.m; sourceTree = ""; }; - 763CF36C11B6092D9D5485AC2363F205 /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = ""; }; - 768785318FEB9536A4DAAD47BD76396B /* CALayer+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+Lookin.h"; path = "Src/Main/Shared/Category/CALayer+Lookin.h"; sourceTree = ""; }; - 769C3408F11A51A90B589A6DBB334C55 /* LKS_ConnectionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ConnectionManager.h; path = Src/Main/Server/Connection/LKS_ConnectionManager.h; sourceTree = ""; }; - 76AEEFCD2262D6843C63EB46FD6663BB /* UIView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LookinServer.m"; path = "Src/Main/Server/Category/UIView+LookinServer.m"; sourceTree = ""; }; - 7718D3A1CB256B2263AD76B8EFDC9B86 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; - 77715D6F65035CFA25715F00E4915BA5 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = ""; }; - 77973C87CC9649629EBEE249DCC355F5 /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; - 77DEC7B6CE458C6AAB89A25A3E05BA4B /* CALayer+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+LookinServer.h"; path = "Src/Main/Server/Category/CALayer+LookinServer.h"; sourceTree = ""; }; - 77E6EFEE426EA2068D5FE2B73740D659 /* HWPanIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanIndicatorView.m; path = Sources/View/HWPanIndicatorView.m; sourceTree = ""; }; - 77F4C0466DFC43C56F1D982F88EF74A0 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; + 646C45DB37F9D0734DAAC20755029BB7 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; + 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 65A5B788E203EFDF66F6AD93970E02A0 /* LookinCustomAttrModification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinCustomAttrModification.m; path = Src/Main/Shared/LookinCustomAttrModification.m; sourceTree = ""; }; + 666B288F1B04D5B5933AC43405CB0DF7 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 67504807CDF89710526929533D4BA24D /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; + 677A9795E43833ACFE4BEFACEB9C9E50 /* JXCategoryTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCellModel.m; path = Sources/Title/JXCategoryTitleCellModel.m; sourceTree = ""; }; + 67CB215173B14FC72227F43EE74EF96E /* JXCategoryIndicatorLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h; sourceTree = ""; }; + 67F81F7725B74024479124B6022DE5EC /* HWPanModalShadow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalShadow.h; path = Sources/View/HWPanModalShadow.h; sourceTree = ""; }; + 683E99CE46610E46D88EC2EBFE2F9D12 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; + 6860400C5750CEA1DDC11A081C80778E /* LookinDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDefines.h; path = Src/Main/Shared/LookinDefines.h; sourceTree = ""; }; + 6878C06D99EA8CF7B773696E02B36205 /* JXCategoryTitleImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCellModel.h; path = Sources/TitleImage/JXCategoryTitleImageCellModel.h; sourceTree = ""; }; + 687F99CF59698A825238A228A9326EEC /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; + 68CCF1A7579D879154B163B5016261BD /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; + 6927E81FE85B83E8D8E4E87CC57F28DB /* mz_strm_pkcrypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_pkcrypt.c; path = SSZipArchive/minizip/mz_strm_pkcrypt.c; sourceTree = ""; }; + 69407A17E565B223F10BB1553FE98A42 /* SDImageAWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAWebPCoder.m; path = SDWebImage/Core/SDImageAWebPCoder.m; sourceTree = ""; }; + 697282DD8BC19C487FB9C53A11615D22 /* MJPropertyKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJPropertyKey.m; path = MJExtension/MJPropertyKey.m; sourceTree = ""; }; + 6996BD8F22035A9DB062483A3FF3BFFC /* LKS_AttrGroupsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_AttrGroupsMaker.h; path = Src/Main/Server/Others/LKS_AttrGroupsMaker.h; sourceTree = ""; }; + 69B6E9CFAF1B79FA1CD551AC592A3F13 /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = ""; }; + 69FB2B06CB82B71B02944853E87357A2 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + 6A0B4C1FE0597D5C65F6A35599569483 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; + 6ADF9561958D72382E9DB16372039071 /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; + 6AFF16386D920AF66AB8AE2559C331EF /* SSZipArchive.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SSZipArchive.debug.xcconfig; sourceTree = ""; }; + 6B9FA2A6C19CDFE33720642A875BA2EA /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = ""; }; + 6C30903C3F8001C37FDAC3BD7410223D /* MJProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJProperty.m; path = MJExtension/MJProperty.m; sourceTree = ""; }; + 6C7383492DDC35F73027778CD00DE748 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; + 6D5348DE9248FE6D70D34D73A9774C83 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; + 6DF58A5D7E3000FB7877B0DD30BA16FF /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; + 6E471E488CB3B1BBD00A20FDE73CF37A /* MJRefreshAutoFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoFooter.m; path = MJRefresh/Base/MJRefreshAutoFooter.m; sourceTree = ""; }; + 6EF85FA983DF21C56902422E554965D7 /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; + 6F131F769EF13BBF4832AFDCB866C9A2 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; + 6F24D0C405C75E4CEF7812471315EA53 /* LSTPopView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTPopView.release.xcconfig; sourceTree = ""; }; + 6F51E9EA5F3AE984817B1537C8E36E04 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = ""; }; + 6F6728D0708813AFDD17C58BF882AF21 /* DZNEmptyDataSet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DZNEmptyDataSet-dummy.m"; sourceTree = ""; }; + 6FEEF3836D9713133E7AFBE1EA8D47DC /* LookinDashboardBlueprint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDashboardBlueprint.h; path = Src/Main/Shared/LookinDashboardBlueprint.h; sourceTree = ""; }; + 701FB0B3C957B12385F4A22B36BDD16B /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; + 7055E6E8C5E3B9875C9AA1F78051BD79 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; + 705E1CDF6DBE2DA00E53E3F32DFE69FE /* UIView+Empty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Empty.h"; path = "LYEmptyView/UIView+Empty.h"; sourceTree = ""; }; + 706E018F829E56281581930EDFFA29DA /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; + 7182AB2D5FC7F8A82EFABD7188C650B0 /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefresh/Base/MJRefreshFooter.m; sourceTree = ""; }; + 71D8A0CB202E3BC0417C62AE054DFE91 /* HWPanModalContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalContainerView.m; path = Sources/View/PanModal/HWPanModalContainerView.m; sourceTree = ""; }; + 726915ABC3694AE95F5F0C13806235F0 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = ""; }; + 72AD11FA94A7409673A84E79F9A3020E /* mz_zip.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_zip.c; path = SSZipArchive/minizip/mz_zip.c; sourceTree = ""; }; + 72BDFA68030C9CDCE44C43E0092AEE32 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; + 730E2207BC82D8C9886643147B12844A /* mz_compat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_compat.h; path = SSZipArchive/minizip/mz_compat.h; sourceTree = ""; }; + 731B422E4100ABB7BB6E1F387EA92CA6 /* LKSConfigManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKSConfigManager.h; path = Src/Main/Server/Others/LKSConfigManager.h; sourceTree = ""; }; + 7336C0047ACEDE5EA0CB2AE118A7D79F /* MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD-dummy.m"; sourceTree = ""; }; + 73625BF0D8F9A3389059227F5BE246B9 /* Bugly.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.release.xcconfig; sourceTree = ""; }; + 7378147CC792F0E2D70589D723E75D8C /* JXCategoryBaseCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCell.h; path = Sources/Base/JXCategoryBaseCell.h; sourceTree = ""; }; + 737E52BDAB744FC876BD52E7BB7110AF /* UIView+LYExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LYExtension.h"; path = "LYEmptyView/UIView+LYExtension.h"; sourceTree = ""; }; + 747C20749A2BFC0F42CFCE05482B9D6B /* UIImageView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+LookinServer.m"; path = "Src/Main/Server/Category/UIImageView+LookinServer.m"; sourceTree = ""; }; + 74D70CA409CF2A1406EFEF0A638D8828 /* LookinServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LookinServer-prefix.pch"; sourceTree = ""; }; + 75BA0263D4F2D47FB081E19A0B71E320 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; + 7678B0EDC7AAC94916357B3DB83F1EA2 /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = ""; }; + 7770E197395B4C19F3817FA8F750D617 /* DZNEmptyDataSet-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DZNEmptyDataSet-Info.plist"; sourceTree = ""; }; + 777F9F6A7889203D9F5204A776E487AE /* mz_strm_mem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_mem.h; path = SSZipArchive/minizip/mz_strm_mem.h; sourceTree = ""; }; + 7815E7750C594059F6B0C8230B13D904 /* ResourceBundle-MJExtension-MJExtension-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJExtension-MJExtension-Info.plist"; sourceTree = ""; }; 7819923046C4F6B199F8D45E9F7BA6B0 /* HWPanModal */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = HWPanModal; path = HWPanModal.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7895C7C58218B5F79C76FA1B5A55E669 /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; - 798B3DCD95877B6C7D997E0652FB6E9A /* CALayer+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+LookinServer.m"; path = "Src/Main/Server/Category/CALayer+LookinServer.m"; sourceTree = ""; }; - 7A2AEB4C3E4F6147F107DF9376FA7264 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = ""; }; - 7A307E6A261D750F85B7C9C1575036E4 /* DZNEmptyDataSet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-prefix.pch"; sourceTree = ""; }; - 7A5F8A5650078BFF9587944F0042AE79 /* UIView+Empty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+Empty.h"; path = "LYEmptyView/UIView+Empty.h"; sourceTree = ""; }; - 7AC0215893BDD3C5E126FCE996097AB4 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 7B167FA26CB7B8DC98E1A68B1B44BA8A /* JXPagerSmoothView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerSmoothView.h; path = Sources/JXPagerView/JXPagerSmoothView.h; sourceTree = ""; }; - 7B51D3C0C65114DF44F6DDB3ED9C4E4E /* JXCategoryNumberCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCell.m; path = Sources/Number/JXCategoryNumberCell.m; sourceTree = ""; }; - 7B582290DB93C466A4DA695035B6DA2E /* MJExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJExtension.release.xcconfig; sourceTree = ""; }; - 7B8734ED62BE39C69073D2C32183C6FC /* JXCategoryNumberView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberView.h; path = Sources/Number/JXCategoryNumberView.h; sourceTree = ""; }; - 7BD134826FCB54429F667B8DBF296710 /* SDCallbackQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCallbackQueue.m; path = SDWebImage/Core/SDCallbackQueue.m; sourceTree = ""; }; - 7BDFAC11D184E7F4498FC12FE0AFDCFC /* UIScrollView+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+Helper.h"; path = "Sources/Category/UIScrollView+Helper.h"; sourceTree = ""; }; - 7C1F5F86210D3FB1EF59D8665E7C4A77 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; - 7CE9A594E8A127B7273A7D82E1882497 /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; - 7D6E9AC32A60E19ACB08AED4E4CD31A3 /* LSTTimer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTTimer-prefix.pch"; sourceTree = ""; }; - 7D7595F0F8BE4F40C64D68F0D491C6C6 /* LSTPopViewProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTPopViewProtocol.h; path = LSTPopView/Classes/Code/LSTPopViewProtocol.h; sourceTree = ""; }; - 7D7A76984F1E3BB7440B31DF8D5447F0 /* JXCategoryBaseCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseCellModel.h; path = Sources/Base/JXCategoryBaseCellModel.h; sourceTree = ""; }; - 7DCA3ADE9B99025CE2B42367695E1E68 /* LYEmptyView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LYEmptyView-Info.plist"; sourceTree = ""; }; - 7DD55E3EFF5073BEBD483D293C40A0D6 /* LookinDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDefines.h; path = Src/Main/Shared/LookinDefines.h; sourceTree = ""; }; - 7DEDD90DB6CF7DD05B6B753765E65AAD /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; - 7E270235979252FF388A0C6D1E54966D /* HWVisualEffectView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWVisualEffectView.h; path = Sources/View/HWVisualEffectView.h; sourceTree = ""; }; + 785B19DEFCB5992DCCD13268D7F0D558 /* Image+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Image+Lookin.m"; path = "Src/Main/Shared/Category/Image+Lookin.m"; sourceTree = ""; }; + 78EEF85B7BD959BD946F0104DE6A6111 /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; + 791D7ED57B5D75A67DE912C0525A5EA9 /* JXCategoryFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryFactory.m; path = Sources/Common/JXCategoryFactory.m; sourceTree = ""; }; + 79340F952B7DAF35D159061FC814BB3A /* JXCategoryIndicatorTriangleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorTriangleView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.m; sourceTree = ""; }; + 794EDDEC99AE62D5D00411F3511B13E1 /* mz.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz.h; path = SSZipArchive/minizip/mz.h; sourceTree = ""; }; + 795A0BA1A721EEBA6FE32FEC837069DF /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = ""; }; + 7A518E59A590CAA7BC0D3ADD4113D0AC /* HWPanModalPresentableHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentableHandler.h; path = Sources/Mediator/HWPanModalPresentableHandler.h; sourceTree = ""; }; + 7A7A4B2B6111CA779A2758C944C3324D /* JXCategoryIndicatorComponentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorComponentView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorComponentView.m; sourceTree = ""; }; + 7A9D8B22BFBE08234522560BB2AC9FCC /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; + 7AD0951BB7D145E5BD06DCD3F0945B14 /* SDImageFramePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFramePool.h; path = SDWebImage/Private/SDImageFramePool.h; sourceTree = ""; }; + 7AFD090B3E30E20C52F02159E880012A /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = ""; }; + 7B5E17147866E2EFAC8FA996447DBA62 /* Lookin_PTChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTChannel.m; path = Src/Main/Shared/Peertalk/Lookin_PTChannel.m; sourceTree = ""; }; + 7B7FB400E636A49FA352DB030999083B /* LookinDashboardBlueprint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDashboardBlueprint.m; path = Src/Main/Shared/LookinDashboardBlueprint.m; sourceTree = ""; }; + 7BC07909714244E42BDEDA8EF0E7EFA8 /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; + 7BE40ABE514BA94E77FE7FDB6CE98130 /* UIViewController+PanModalDefault.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PanModalDefault.h"; path = "Sources/Presentable/UIViewController+PanModalDefault.h"; sourceTree = ""; }; + 7C17FECDC099A898CAEC3A839A6AD128 /* LookinDisplayItemDetail.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDisplayItemDetail.m; path = Src/Main/Shared/LookinDisplayItemDetail.m; sourceTree = ""; }; + 7C1AD74CA456B29E515BEDEC9FD34222 /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + 7C3269114114DA4A29A874C429E9CA18 /* JXCategoryBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryBaseView.h; path = Sources/Base/JXCategoryBaseView.h; sourceTree = ""; }; + 7C54D0915D093EEE2BE69C3D6A495144 /* LookinAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttribute.m; path = Src/Main/Shared/LookinAttribute.m; sourceTree = ""; }; + 7CB75A5B2A3704A67AE8EBCD2E084F76 /* LKS_RequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_RequestHandler.m; path = Src/Main/Server/Connection/LKS_RequestHandler.m; sourceTree = ""; }; + 7CF889E904F1B6EE73FA17B69790805B /* JXCategoryImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCellModel.m; path = Sources/Image/JXCategoryImageCellModel.m; sourceTree = ""; }; + 7D6139E37B1857BFE42F1D5F6D57F96F /* JXCategoryImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageView.h; path = Sources/Image/JXCategoryImageView.h; sourceTree = ""; }; + 7D6F484D2DE86C22840A78D18D88200D /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = ""; }; + 7DF3812108539965DC779569F4275FC2 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + 7E1D76D20DCD763AD3D8654ABF7E1459 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = ""; }; 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJRefresh-MJRefresh.Privacy"; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 7E445C787AA09C1E3A771E4C7DBCE2CA /* LookinCustomAttrModification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinCustomAttrModification.m; path = Src/Main/Shared/LookinCustomAttrModification.m; sourceTree = ""; }; - 7E73D1DD407F0535009A207AB317F8B7 /* JXCategoryIndicatorCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCellModel.m; path = Sources/Indicator/JXCategoryIndicatorCellModel.m; sourceTree = ""; }; - 7EC4505824D228FB201DC90A544C01B3 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 7FAB126742756E8C628ED27AEC1B9567 /* FLAnimatedImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-umbrella.h"; sourceTree = ""; }; - 800ECE845D6F36BE51A284DFCAE27307 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; - 8067C53E08CA3787D9D5C3551F86EF9D /* JXCategoryImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryImageCell.m; path = Sources/Image/JXCategoryImageCell.m; sourceTree = ""; }; - 80E9CB1F62E65A837FF5E47B2FC3ECA1 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; - 81D115D4A9C927BEBA7B66F114F7B4EC /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; - 81F7F63875295940D9A950DB7D2EBDE7 /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = ""; }; - 82F6D1678A37FB68B3455162AB8BDAA2 /* UIViewController+PanModalPresenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PanModalPresenter.h"; path = "Sources/Presenter/UIViewController+PanModalPresenter.h"; sourceTree = ""; }; - 8310CCDF3085A9EE32455CB865148664 /* JXPagerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerView.h; path = Sources/JXPagerView/JXPagerView.h; sourceTree = ""; }; - 831897EBD9EF72C4D55D02DE399C410A /* HWPanModalPresentationAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationAnimator.m; path = Sources/Animator/HWPanModalPresentationAnimator.m; sourceTree = ""; }; - 83340409B38BF2A20F089A4B919FC02F /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; - 839CCD719F79C7FBC2909C72822FB470 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = ""; }; - 83E8510A179E756198B5FC915A27736E /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; - 852A42FAC0EA5F64033033841A03891A /* NSArray+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+Lookin.h"; path = "Src/Main/Shared/Category/NSArray+Lookin.h"; sourceTree = ""; }; - 855BA7199BD9AC7B4687AF3F66E21279 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; - 85C4F1C66A75633558DC8F8AE824BC70 /* LYEmptyView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LYEmptyView.modulemap; sourceTree = ""; }; - 860D7179002683A0368E532B751FC40E /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; - 862D8BDF52FBE8FCF3A562F5A62C802E /* Lookin_PTChannel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTChannel.m; path = Src/Main/Shared/Peertalk/Lookin_PTChannel.m; sourceTree = ""; }; - 8638AEC16F5A3F7D05EF0F7C39544261 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefresh/MJRefreshConst.m; sourceTree = ""; }; - 8679B55EBC5DC660D8E798D1B986FC22 /* Image+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Image+Lookin.h"; path = "Src/Main/Shared/Category/Image+Lookin.h"; sourceTree = ""; }; - 87888E540A812F012C68F804E8F5AE7B /* HWPanModalPresentationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationController.h; path = Sources/Controller/HWPanModalPresentationController.h; sourceTree = ""; }; - 87B2A7EE05A20B3EDDFE045A6B7911E5 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; - 87D7822F88C7B9608DF7E50878B7970B /* JXCategoryDotCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCell.m; path = Sources/Dot/JXCategoryDotCell.m; sourceTree = ""; }; - 883434364AD74D3F77868A0CF2FB7A09 /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = ""; }; - 88D479C435BAEE51B8F3BBF87F8D3CC9 /* AFNetworking.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.debug.xcconfig; sourceTree = ""; }; - 88F65BAED091224357C1ABFEA1C484FA /* LSTTimer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTTimer-umbrella.h"; sourceTree = ""; }; - 892976CDE28E9BEF86BFABB5F84E72F6 /* JXCategoryView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryView.h; path = Sources/JXCategoryView.h; sourceTree = ""; }; - 897530E070833B039DC2821D0B63B137 /* JXCategoryBaseCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryBaseCellModel.m; path = Sources/Base/JXCategoryBaseCellModel.m; sourceTree = ""; }; - 8A5D6AD5CB7122607D6E477D373A31E2 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = ""; }; - 8A9BFDE06B11541EA7E87336A09C3816 /* UIViewController+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LookinServer.m"; path = "Src/Main/Server/Category/UIViewController+LookinServer.m"; sourceTree = ""; }; - 8B523AAA92DB90BD5B95092AF6B85BFB /* Lookin_PTPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTPrivate.h; path = Src/Main/Shared/Peertalk/Lookin_PTPrivate.h; sourceTree = ""; }; - 8B8796E86BD11BC29D00EED72E50AE91 /* LKS_InbuiltAttrModificationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_InbuiltAttrModificationHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_InbuiltAttrModificationHandler.h; sourceTree = ""; }; - 8B890DAD1E942EF3DB7BF5C23113C1B6 /* JXCategoryDotCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCell.h; path = Sources/Dot/JXCategoryDotCell.h; sourceTree = ""; }; - 8B8AB8065F8811289957B59E9EBA6B47 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; + 7E4CD6D95D8E4ED4BE00A6D094A69D55 /* AFNetworking.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.debug.xcconfig; sourceTree = ""; }; + 7E98FFCBAE59963C642EC8E3AF550CFF /* UIView+WebCacheState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheState.m"; path = "SDWebImage/Core/UIView+WebCacheState.m"; sourceTree = ""; }; + 7F6C86558A8FA32C2A096F1E916B7FDE /* JXPagerListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerListContainerView.h; path = Sources/JXPagerView/JXPagerListContainerView.h; sourceTree = ""; }; + 7FBB6DFB067A86D0FC167B767A20D67C /* HWPanContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanContainerView.h; path = Sources/View/HWPanContainerView.h; sourceTree = ""; }; + 80531B9754F423FD57E0805CE2593D30 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; + 80B68CA19530E7C3233B50C2E224B494 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = ""; }; + 80BF1785EB85332804D7A38FC927C011 /* LookinIvarTrace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinIvarTrace.h; path = Src/Base/LookinIvarTrace.h; sourceTree = ""; }; + 81982EB3F0F0B2FC231802C3D3BA6043 /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; + 81D1208390281107018E2EF73BCE3B61 /* UITextView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextView+LookinServer.h"; path = "Src/Main/Server/Category/UITextView+LookinServer.h"; sourceTree = ""; }; + 81F97FB41DF65218A4BFF34780DC3491 /* LookinServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LookinServer.release.xcconfig; sourceTree = ""; }; + 8216CB9249FAE1BE5541140EAF873038 /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; + 829B68F73797A78FEF3F03A753C4A6A0 /* FLAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImageView.m; path = FLAnimatedImage/FLAnimatedImageView.m; sourceTree = ""; }; + 8313D5FF3F427FD8BA3251FBA57679EB /* JXCategoryListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerView.h; path = Sources/Common/JXCategoryListContainerView.h; sourceTree = ""; }; + 8327BC57519C008047652BB3EFE469D3 /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; + 83833C719CDAC2C58CF7A1DF4575CF3A /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; + 83B11A2DBF0484EE735D6C9D0C72D9C5 /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; + 84141539AD2EF68E8799DAC96873E247 /* Masonry-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-umbrella.h"; sourceTree = ""; }; + 844AEFD4FF7F7E80597BB71010218009 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = ""; }; + 84ADAACA62D3D83C92C455142BC8D490 /* LookinTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinTuple.m; path = Src/Main/Shared/LookinTuple.m; sourceTree = ""; }; + 84B34A5B378E5749EF8E92AB2D3672FF /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = ""; }; + 8512889E3BBE8E06C30815D98480A1FE /* LKS_RequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_RequestHandler.h; path = Src/Main/Server/Connection/LKS_RequestHandler.h; sourceTree = ""; }; + 859AA8139C69A8ED55CE4C03AF2A3341 /* HWPageSheetPresentingAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPageSheetPresentingAnimation.h; path = Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.h; sourceTree = ""; }; + 85E0616DFCFEB6E1346B75E425451AFD /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; + 867B35D37248D0009B38597F3C836DCE /* LYEmptyBaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LYEmptyBaseView.m; path = LYEmptyView/LYEmptyBaseView.m; sourceTree = ""; }; + 872A4BB6701891FA0FBC944E222E367F /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefresh/Base/MJRefreshHeader.m; sourceTree = ""; }; + 88C7EF44FC90DB71EB36BFC446B6489E /* SSZipArchive.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SSZipArchive.modulemap; sourceTree = ""; }; + 88E0642B5105D706429A67BF11CDE26C /* JXCategoryIndicatorBallView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBallView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.h; sourceTree = ""; }; + 8985B7A847721EC00A75B85DDA83C8F6 /* UIView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LookinServer.h"; path = "Src/Main/Server/Category/UIView+LookinServer.h"; sourceTree = ""; }; + 8A2C8E6876C747357783A21F96E8476D /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; sourceTree = ""; }; + 8AAAA1FDAA61248D5726D1F9E837C2F5 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = ""; }; + 8B139D44C6AB4E474C119817ECBACCB5 /* LookinServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LookinServer-umbrella.h"; sourceTree = ""; }; + 8B8648796F69C213249771AF45760CD0 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJExtension/PrivacyInfo.xcprivacy; sourceTree = ""; }; 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MBProgressHUD; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8BE10EB8B74E3D1DE4172EF863BC22F8 /* Color+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Color+Lookin.h"; path = "Src/Main/Shared/Category/Color+Lookin.h"; sourceTree = ""; }; - 8C065D632F2F749CBD48B178A68B1631 /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; - 8CF1445CC744306AE4ECBA85DFD6DB27 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; - 8D2F3BF5EE9E269F816330AC6BF6745F /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = ""; }; - 8E4925A54FF503F963785651A98856BD /* UIView+WebCacheState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheState.m"; path = "SDWebImage/Core/UIView+WebCacheState.m"; sourceTree = ""; }; - 8EFBD2E7A88C44123D980C42CB8702A4 /* JXCategoryDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotView.h; path = Sources/Dot/JXCategoryDotView.h; sourceTree = ""; }; - 8FEE8F6EEF601125225DCB1FEACED91C /* JXCategoryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleView.m; path = Sources/Title/JXCategoryTitleView.m; sourceTree = ""; }; - 8FF761C99D422AE106C31A4A7AE469C7 /* JXCategoryViewAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewAnimator.h; path = Sources/Common/JXCategoryViewAnimator.h; sourceTree = ""; }; - 903EBE6439B30182644FFF066DE11129 /* LookinAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttribute.h; path = Src/Main/Shared/LookinAttribute.h; sourceTree = ""; }; - 913F72595D3AEFAFE006FD96A54FD8DA /* JXCategoryIndicatorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCell.h; path = Sources/Indicator/JXCategoryIndicatorCell.h; sourceTree = ""; }; - 919C930C4E0162377E3C95D0F6F11177 /* UIView+WebCacheState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheState.h"; path = "SDWebImage/Core/UIView+WebCacheState.h"; sourceTree = ""; }; - 91BC18AA2869958B15FBD2C2367C5DFC /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AFNetworking.modulemap; sourceTree = ""; }; - 9230BE776665C8EB51C8889631B1B31B /* HWDimmedView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWDimmedView.m; path = Sources/View/HWDimmedView.m; sourceTree = ""; }; - 9234E8779322D7F9722AF6E18FF9F6F3 /* JXCategoryImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCell.h; path = Sources/Image/JXCategoryImageCell.h; sourceTree = ""; }; - 92670C1E3C13D6C6157E7AFB4347DB17 /* NSString+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Lookin.h"; path = "Src/Main/Shared/Category/NSString+Lookin.h"; sourceTree = ""; }; - 928339E7523C1267D5DF15E548454A5E /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; - 92A35222DEEC452079F1343331C6E154 /* JXCategoryIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorProtocol.h; path = Sources/Common/JXCategoryIndicatorProtocol.h; sourceTree = ""; }; - 931669FB7F8BA540208B2F23E13B2F19 /* JXCategoryDotCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotCellModel.h; path = Sources/Dot/JXCategoryDotCellModel.h; sourceTree = ""; }; - 93B896E371962B657B3B85C108092214 /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = ""; }; - 949A8C57291DF7D8139F90AD367DB80C /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; - 94CE97E5A9659D6EE58C83DCB52F73D5 /* HWPanContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanContainerView.h; path = Sources/View/HWPanContainerView.h; sourceTree = ""; }; - 954035BEFF37A926FB7C25E5508CD25D /* MJExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJExtension.debug.xcconfig; sourceTree = ""; }; - 957B3209BD81CDA1C8049B3245F6946E /* LKS_MultiplatformAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_MultiplatformAdapter.m; path = Src/Main/Server/Others/LKS_MultiplatformAdapter.m; sourceTree = ""; }; - 95BCF1B96C9A492409E9634BC63A400B /* JXCategoryViewAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryViewAnimator.m; path = Sources/Common/JXCategoryViewAnimator.m; sourceTree = ""; }; - 962D7794EB805E6D2F4F5F0B58218401 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = ""; }; + 8B9045E26513809CA2F842DA0ED38C32 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 8BDCE9952D3D5ECFE37B853918E47D89 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = ""; }; + 8C1A794B32C002930A0B7A81C1F9125D /* LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinServer.h; path = Src/Main/Server/LookinServer.h; sourceTree = ""; }; + 8CA6355C505F3FEF64B6C7C621AC94D0 /* HWPanModalShadow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalShadow.m; path = Sources/View/HWPanModalShadow.m; sourceTree = ""; }; + 8CCEC9218560404B175BE7FFAEB65948 /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; + 8DB1E93D96D72ACA42B0423E19594280 /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; + 8DB48DB92D5E3A8823F80321C8C328B1 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; + 8DD59C77CD21D361AE42FCE338B88221 /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = ""; }; + 8E0A718FBAF2229CFC65CE1D89FA5288 /* MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJRefresh-Info.plist"; sourceTree = ""; }; + 8E417B8A4CDDEA0E4F162074EAA5D370 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; + 8E796BD877EA820EF0ACBAEC4D8D5DCC /* LYEmptyView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LYEmptyView-prefix.pch"; sourceTree = ""; }; + 8EA7B059D4EA4894A724A157A1ABDA61 /* UIImage+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+LookinServer.h"; path = "Src/Main/Server/Category/UIImage+LookinServer.h"; sourceTree = ""; }; + 8EBDFDD5302359A5FEBDF6E7EF669642 /* MJExtensionConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJExtensionConst.h; path = MJExtension/MJExtensionConst.h; sourceTree = ""; }; + 8EF37EAC260BCB8227154EDD5EE811B2 /* MJExtension.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJExtension.modulemap; sourceTree = ""; }; + 8F573E017D0C85FEF4A821E84BB3635F /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; + 8FB4EE2E060394D9A52D562E13D8396D /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; + 8FC7E3E9FCD82B298D83EB141669B492 /* LookinDisplayItemDetail.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinDisplayItemDetail.h; path = Src/Main/Shared/LookinDisplayItemDetail.h; sourceTree = ""; }; + 90E72E4EDCAC0507BE25B28B9A895CD8 /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; + 9158E1A18D64B6BEBD8A536D3C5AFC15 /* UILabel+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UILabel+LookinServer.m"; path = "Src/Main/Server/Category/UILabel+LookinServer.m"; sourceTree = ""; }; + 9187109C444449118A500CD6A1F2D532 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + 91A3BEB81D3C5F9750683749F0036022 /* LookinConnectionAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinConnectionAttachment.h; path = Src/Main/Shared/LookinConnectionAttachment.h; sourceTree = ""; }; + 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SSZipArchive; path = SSZipArchive.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 923CAFFF098ECF44FC1958880D856006 /* LookinAttributeModification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributeModification.m; path = Src/Main/Shared/LookinAttributeModification.m; sourceTree = ""; }; + 9286540764F28BCBEB072442803F3D3F /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = ""; }; + 92EA7FFB1C07248E9A2C69FD0F478201 /* MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MJRefresh-dummy.m"; sourceTree = ""; }; + 932A9F898260C3AB0195DEBF202212CB /* HWPanModalPanGestureDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPanGestureDelegate.h; path = Sources/Presentable/HWPanModalPanGestureDelegate.h; sourceTree = ""; }; + 934B0D2215917C91E1CD517930AE99B6 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; + 93E91FA280E77CCF4FFD86FF3957ABCC /* mz_strm_wzaes.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_wzaes.c; path = SSZipArchive/minizip/mz_strm_wzaes.c; sourceTree = ""; }; + 942B5587A6DFF73BD842C8ADA3B71A9F /* JXPagerListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListContainerView.m; path = Sources/JXPagerView/JXPagerListContainerView.m; sourceTree = ""; }; + 945DDC24E71F66C3DCBE8E86CA706E0B /* JXCategoryView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.release.xcconfig; sourceTree = ""; }; + 94FDA6D1415520067AF32F882EA1ECA3 /* LYEmptyView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LYEmptyView-Info.plist"; sourceTree = ""; }; + 959F7D4641C53F2E24D4E0E1266BA5DB /* MBProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.debug.xcconfig; sourceTree = ""; }; + 961E45DD758EA04F4F40485164C36376 /* LookinWeakContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinWeakContainer.h; path = Src/Main/Shared/LookinWeakContainer.h; sourceTree = ""; }; + 96692A8BBFC06F26E5C9CE0895319495 /* LookinHierarchyInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinHierarchyInfo.m; path = Src/Main/Shared/LookinHierarchyInfo.m; sourceTree = ""; }; 969A9A842778EFB5D62826500DFF4E11 /* Pods-keyBoard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-keyBoard-dummy.m"; sourceTree = ""; }; - 96AEDA915084E949F39F28D248C2FB43 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = ""; }; - 96D1E2DE4F6F4EB00BD41C7ABD504109 /* JXCategoryListContainerRTLCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerRTLCell.m; path = Sources/Common/JXCategoryListContainerRTLCell.m; sourceTree = ""; }; - 97DE751E0ED3939932D72FB39C5A934A /* LookinAutoLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAutoLayoutConstraint.h; path = Src/Main/Shared/LookinAutoLayoutConstraint.h; sourceTree = ""; }; - 986324EA3CC9A3BDF0E5C7B1763862EE /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; - 98768C46376F54DFEB58CDD9F278AC71 /* MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-prefix.pch"; sourceTree = ""; }; - 98901829A364C7B4F13375AEB6AA0FBE /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = ""; }; - 98935AEC9F6608D5CCBFEF667B9F658A /* LKS_CustomDisplayItemsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomDisplayItemsMaker.h; path = Src/Main/Server/Others/LKS_CustomDisplayItemsMaker.h; sourceTree = ""; }; - 9897B379E415C6537D86A30137A8D274 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; - 98B3D67E4B164109B9B94A959496BA25 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = ""; }; - 99650956C6DC18187951AE72D50E44A2 /* MJFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJFoundation.h; path = MJExtension/MJFoundation.h; sourceTree = ""; }; - 996C55702A2E4E7B3785C0C5454598C9 /* JXCategoryTitleVerticalZoomView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomView.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomView.h; sourceTree = ""; }; - 99712B41FFAFC24C5F649A94D8DD7FFE /* LookinCodingValueType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCodingValueType.h; path = Src/Main/Shared/LookinCodingValueType.h; sourceTree = ""; }; - 9A3BA26DC995AB016051D522F5691C91 /* RTLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RTLManager.m; path = Sources/RLTManager/RTLManager.m; sourceTree = ""; }; - 9AA439B2B87976D37C23F7DCCE897F8C /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; - 9ABEB6B0A44AC8BCBC6CB1A8A8A9A0FF /* UIVisualEffectView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIVisualEffectView+LookinServer.h"; path = "Src/Main/Server/Category/UIVisualEffectView+LookinServer.h"; sourceTree = ""; }; - 9C0082C9FF6875DA300AE3D8453DCB62 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - 9C0E279B5FFB9696801CC86ACF92805A /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = ""; }; - 9C2DAB09AC8F3AD6E82FDC5DB2562CB4 /* JXPagerMainTableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerMainTableView.m; path = Sources/JXPagerView/JXPagerMainTableView.m; sourceTree = ""; }; - 9C47102257C212ED978684D39466579B /* LKS_ExportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ExportManager.h; path = Src/Main/Server/Others/LKS_ExportManager.h; sourceTree = ""; }; - 9C75F181A3E07F7E7B4B017B48488393 /* LookinConnectionAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinConnectionAttachment.m; path = Src/Main/Shared/LookinConnectionAttachment.m; sourceTree = ""; }; - 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 9D4F497397BEDE35BC05F6C2B6D33577 /* LookinAttrIdentifiers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttrIdentifiers.m; path = Src/Main/Shared/LookinAttrIdentifiers.m; sourceTree = ""; }; - 9D7E307063029FFE21DDCDC0455FA473 /* MJProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJProperty.m; path = MJExtension/MJProperty.m; sourceTree = ""; }; + 96B77880B1EE68D1F7EBC61B07E7224C /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; + 96BD67303B109FB9C0AD4CB428F9076E /* mz_compat.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_compat.c; path = SSZipArchive/minizip/mz_compat.c; sourceTree = ""; }; + 96F67C871FB0FB53D6A184EB01599752 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = ""; }; + 976B7D7159B66E6EFDBDAF7664C4956C /* FLAnimatedImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FLAnimatedImage.modulemap; sourceTree = ""; }; + 97B6E43AEA5B93A02D4D198CCDACA57D /* SSZipArchive-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SSZipArchive-prefix.pch"; sourceTree = ""; }; + 97D5ABBCA1E57EF7A4153DA8B5D31E2C /* UITableView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+LookinServer.m"; path = "Src/Main/Server/Category/UITableView+LookinServer.m"; sourceTree = ""; }; + 980B3C544025B71D6F62E1D7529A986D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 9834B5FFACD633FFCD21134C05396420 /* NSObject+MJProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJProperty.m"; path = "MJExtension/NSObject+MJProperty.m"; sourceTree = ""; }; + 9847621357113F3B9BE2AD1FDFB32BA0 /* Lookin_PTProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTProtocol.h; path = Src/Main/Shared/Peertalk/Lookin_PTProtocol.h; sourceTree = ""; }; + 994082D97E1CB7E4A8A16621ED4CA03B /* JXCategoryTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleView.m; path = Sources/Title/JXCategoryTitleView.m; sourceTree = ""; }; + 99B4F13594632F82C9EF984C08EE4078 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 9A0C92B5F9D72F862E8457D7C22F73C8 /* KeyValueObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KeyValueObserver.m; path = Sources/KVO/KeyValueObserver.m; sourceTree = ""; }; + 9ACA3F6C5DB4154DEE785FCCC90C1D3D /* HWPanModalPresentationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationController.h; path = Sources/Controller/HWPanModalPresentationController.h; sourceTree = ""; }; + 9B04332BED5C7D9C996558A46E0DF8C2 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefresh/Base/MJRefreshHeader.h; sourceTree = ""; }; + 9BEB3868FF1316BC4B334ABEDA353664 /* MJRefreshStateHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateHeader.m; path = MJRefresh/Custom/Header/MJRefreshStateHeader.m; sourceTree = ""; }; + 9C14A6A28CF36FB34BD301B51F50ECF4 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; + 9C3BC948AB7C2AC6ECD8CC177F281DF0 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; + 9C4EB5EB615CEF1E6FA0038236EAACE1 /* HWPanModalContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalContainerView.h; path = Sources/View/PanModal/HWPanModalContainerView.h; sourceTree = ""; }; + 9CC1EDD3159361A7D64AA07E99E1F6E6 /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; + 9D5FC25D68B5E457EE448DFA1AE1BCF1 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; 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; }; + 9DAA001DA4B0511B694549BF046EAD29 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; 9DDD0462C32F55EF5E9CB1056459809F /* Pods-CustomKeyboard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-CustomKeyboard-umbrella.h"; sourceTree = ""; }; - 9E31AD6314EC8102DE4FC6291C0FE66F /* HWPanModalContentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalContentView.m; path = Sources/View/PanModal/HWPanModalContentView.m; sourceTree = ""; }; - 9E91A12C513A640E68663D4ED668C0FC /* JXCategoryTitleImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageView.h; path = Sources/TitleImage/JXCategoryTitleImageView.h; sourceTree = ""; }; - 9EC4E80691EA4009AB067722DA72E4D5 /* JXCategoryTitleImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageView.m; path = Sources/TitleImage/JXCategoryTitleImageView.m; sourceTree = ""; }; - 9ECA4FF1A4B2A73F055139B44105081C /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; - 9F5507B4A6BD90BF5F74B1AAC009AD90 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; - 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 9FB49DC67A435D7D63695F113C3D398C /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; - A01B197EE310DCCE265AA065FA12EF38 /* JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXCategoryView-Info.plist"; sourceTree = ""; }; - A0329494F5B3BBF4A9C54DD83622388B /* MJPropertyType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJPropertyType.h; path = MJExtension/MJPropertyType.h; sourceTree = ""; }; - A0497973DD4190C4C37CC950C86C6F2B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = WebImage/PrivacyInfo.xcprivacy; sourceTree = ""; }; - A0925E96742E33F78D548F10A7C0475D /* LKS_CustomAttrSetterManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrSetterManager.h; path = Src/Main/Server/Others/LKS_CustomAttrSetterManager.h; sourceTree = ""; }; - A11C415AC80BAC0B06685E1F8AC7C7C8 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - A1411B1EA7A3C51DB2072BF40B4D5A60 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = ""; }; - A14754CFA2BACA27D3CA6DD44F6D8F10 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-SDWebImage-SDWebImage-Info.plist"; sourceTree = ""; }; - A16556ABD8D8BADE087CDC162140E59B /* MBProgressHUD-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MBProgressHUD-Info.plist"; sourceTree = ""; }; - A198AAC0BC41558B9FC61F89E90D900F /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; - A1C4717F035C7128013EA7E000DAC18A /* WKWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+AFNetworking.m"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.m"; sourceTree = ""; }; - A1DAAC915F745C515E0BF4D613B5CB1C /* LKS_InbuiltAttrModificationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_InbuiltAttrModificationHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_InbuiltAttrModificationHandler.m; sourceTree = ""; }; - A2350DF4D8FE6C892E64B8C644667527 /* KeyValueObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KeyValueObserver.m; path = Sources/KVO/KeyValueObserver.m; sourceTree = ""; }; - A23AD7EF4A12F64EAAFE5154D8DC5843 /* JXCategoryNumberCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryNumberCell.h; path = Sources/Number/JXCategoryNumberCell.h; sourceTree = ""; }; - A2C2A9B920BB92B872BA2AC2EA086220 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; + 9E027A157991C01A32ECD381AFC34FAD /* LKS_HierarchyDisplayItemsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_HierarchyDisplayItemsMaker.h; path = Src/Main/Server/Others/LKS_HierarchyDisplayItemsMaker.h; sourceTree = ""; }; + 9E1231782398454B0E68DE07403B7EC3 /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; + 9E2A5EB02370F6FF8A09BB7553CA3F36 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; + 9E35A20C3FEB049D0F609FBAFE38C467 /* SDImageAWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAWebPCoder.h; path = SDWebImage/Core/SDImageAWebPCoder.h; sourceTree = ""; }; + 9E4FFE75E911DE829448DE3C673671F3 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = ""; }; + 9E5185DC7E493427740F60C54F5F96B3 /* LSTPopView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LSTPopView-Info.plist"; sourceTree = ""; }; + 9EA3D8AD01DA3E015B6159A35F13BB3D /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = ""; }; + 9FF40777BE2905C8C5AF4879273482C0 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; + A0041C94BD88F8B62868FB3EF9609FB8 /* LKS_InbuiltAttrModificationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_InbuiltAttrModificationHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_InbuiltAttrModificationHandler.h; sourceTree = ""; }; + A1940CBA5061AD3C2F7D08859C0943C1 /* JXPagerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerView.m; path = Sources/JXPagerView/JXPagerView.m; sourceTree = ""; }; + A1D387A010A63456DE5E7AFF7018FE2A /* JXCategoryDotView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryDotView.h; path = Sources/Dot/JXCategoryDotView.h; sourceTree = ""; }; + A1E6FA073B9EC952B16AC395C91C9DF5 /* HWPanModal.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HWPanModal.debug.xcconfig; sourceTree = ""; }; + A1FFD349FE5D938D03025EBAB1F06028 /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; + A2031EBA2E667FA06ACE033F6EF29FEF /* MJRefreshNormalTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h; sourceTree = ""; }; + A2873D39F50AC194637181D598DA90E8 /* JXCategoryNumberCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCell.m; path = Sources/Number/JXCategoryNumberCell.m; sourceTree = ""; }; + A28A16C5E14D9C1CD821421AF316D794 /* MJRefreshConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConfig.h; path = MJRefresh/MJRefreshConfig.h; sourceTree = ""; }; + A2922793BBB0ED7A43277BC1705F6C65 /* CALayer+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+Lookin.m"; path = "Src/Main/Shared/Category/CALayer+Lookin.m"; sourceTree = ""; }; + A2C3A8528434F887418155966D871DFB /* JXCategoryViewAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryViewAnimator.m; path = Sources/Common/JXCategoryViewAnimator.m; sourceTree = ""; }; A2D8E1EB42D41EA6B94901E5B68C9011 /* Pods-keyBoard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-keyBoard-umbrella.h"; sourceTree = ""; }; - A3211D6272FC8FFC9717C01969D328F7 /* LSTTimer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LSTTimer-dummy.m"; sourceTree = ""; }; - A324C5885C8FB2DC65900A0EE79A0E45 /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; - A34A186C33DB71F8C4ACB6E0705472D0 /* UIView+Empty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Empty.m"; path = "LYEmptyView/UIView+Empty.m"; sourceTree = ""; }; - A39050EBA53940D0CE63B52BF031BE6C /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = ""; }; - A3E40CB9D351DF0E70C7A452071E82E1 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; - A464713D364DCC51BD1C744435EF31A3 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = ""; }; - A4B49E8FCEA2AFEE938A133ECC269CF2 /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = ""; }; - A4CFB2BE169777F50B29077639FCFEC4 /* LKSConfigManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKSConfigManager.h; path = Src/Main/Server/Others/LKSConfigManager.h; sourceTree = ""; }; - A4F1299F85FD74B081B5C5F85EF530B7 /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = ""; }; + A3E7B39FA8615318D0B9DBA376B5E5BB /* JXCategoryIndicatorBackgroundView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorBackgroundView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.h; sourceTree = ""; }; + A4477E6E0B5BF098745477DF6B2DFDAD /* JXCategoryViewAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewAnimator.h; path = Sources/Common/JXCategoryViewAnimator.h; sourceTree = ""; }; + A496809B712DE9F509171A8B6356A099 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; A4FA15D44DF6BAC7550EDEED10862AA3 /* AFNetworking */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A527D460219BC25D3D8E05E8A68C23C9 /* JXCategoryIndicatorLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.h; sourceTree = ""; }; - A56060BC793E00F370FD0DF3B4157376 /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; - A566FD7AC8F85BE1E72F6DF11FEA6338 /* NSObject+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LookinServer.m"; path = "Src/Main/Server/Category/NSObject+LookinServer.m"; sourceTree = ""; }; - A603B071469D044FB92322560F131681 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; - A64A22A853C13E4375B73E01D1D90CB1 /* MJRefreshBackNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackNormalFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.m; sourceTree = ""; }; + A54F2CC34811FB7CC1940295759911F9 /* MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-prefix.pch"; sourceTree = ""; }; + A556707295C493B48EB5B9D7B5035878 /* UIScrollView+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+Helper.m"; path = "Sources/Category/UIScrollView+Helper.m"; sourceTree = ""; }; + A5E251507CD3F7845A3A2D382302220A /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; + A63180F0C773029E91215EEB353265C4 /* LKS_CustomDisplayItemsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomDisplayItemsMaker.h; path = Src/Main/Server/Others/LKS_CustomDisplayItemsMaker.h; sourceTree = ""; }; + A6AD21C98EA6D7A54B77F9D7BFAD316C /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; + A6CDDB9DA3BFC3F4D86BE7978C171C4C /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; + A6D1CC45A7943BAD96C97D9225C9021D /* LookinTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinTuple.h; path = Src/Main/Shared/LookinTuple.h; sourceTree = ""; }; + A6E5B058615070C57D95C6744ED270A5 /* LKS_Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_Helper.h; path = Src/Main/Server/Others/LKS_Helper.h; sourceTree = ""; }; A6E8FF241173D596A21D4D4B7D86A810 /* Pods-keyBoard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-keyBoard.release.xcconfig"; sourceTree = ""; }; - A7A348B5BB8CB7A444F827000C95DAE5 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = ""; }; - A7DF910F689AA8FEAD1EF63DDDFCB780 /* UIVisualEffectView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIVisualEffectView+LookinServer.m"; path = "Src/Main/Server/Category/UIVisualEffectView+LookinServer.m"; sourceTree = ""; }; - A7EA79586CBF531A23E8B00CFA7B82C7 /* MJRefreshBackFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackFooter.m; path = MJRefresh/Base/MJRefreshBackFooter.m; sourceTree = ""; }; - A810CCF3953514350B557ABBEEBE5FF6 /* UIColor+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+LookinServer.h"; path = "Src/Main/Server/Category/UIColor+LookinServer.h"; sourceTree = ""; }; - A8AF8342462E3EDE8E3D40F840DFA00C /* MBProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-umbrella.h"; sourceTree = ""; }; - A92BC89EBEE6C3CE964CA994B506EA43 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = ""; }; - A9BB84448AE1154A6E3D359329D6E5D8 /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; - AA7E9357D1D22FB737AEE89305734112 /* LKS_GestureTargetActionsSearcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_GestureTargetActionsSearcher.h; path = Src/Main/Server/Others/LKS_GestureTargetActionsSearcher.h; sourceTree = ""; }; - AAA2247A63D832BDB9097AE7D635F20C /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; sourceTree = ""; }; - AB1D54171867DC3B104DAE8C6D30F644 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; - AB2B98D8DC3605842D8528F53C1896A2 /* LKS_CustomAttrGroupsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrGroupsMaker.m; path = Src/Main/Server/Others/LKS_CustomAttrGroupsMaker.m; sourceTree = ""; }; - AB379411892DE9D6AC2BA478DD047B45 /* MJProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJProperty.h; path = MJExtension/MJProperty.h; sourceTree = ""; }; - ABAC9F2093F2EF164CB968D710D261F5 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; - AC0C26DBF6F4D6A9D8C1BF55FE14DABA /* MBProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.release.xcconfig; sourceTree = ""; }; - AC368BF52013B3AE323DC35D782A044B /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; - AC3EF9D4544217A0B4E13DA6B530C974 /* JXCategoryView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-umbrella.h"; sourceTree = ""; }; - ACD18D412C592E0FB706C10554E5283E /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = ""; }; - ADF656282B85E6C974597F555BDE3F21 /* LKS_AttrModificationPatchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_AttrModificationPatchHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_AttrModificationPatchHandler.h; sourceTree = ""; }; - AE19AE8E2478EF2E39C49272A1998EFE /* LookinDisplayItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDisplayItem.m; path = Src/Main/Shared/LookinDisplayItem.m; sourceTree = ""; }; - AE4CC2528765A45B472AD5B813D01119 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; - AEEC6C323BA320F8FE0EFED607BC9994 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; - AF5F1AB306D02EC6A5F39878FAE8BEA1 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = ""; }; - AFBA747DBA20D4BACF78CA8DE98ADF94 /* LKS_RequestHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_RequestHandler.h; path = Src/Main/Server/Connection/LKS_RequestHandler.h; sourceTree = ""; }; - B041D1C998D0894DB89A31049CC1B872 /* UIBlurEffect+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBlurEffect+LookinServer.m"; path = "Src/Main/Server/Category/UIBlurEffect+LookinServer.m"; sourceTree = ""; }; - B052BF123A39C5CF4B531584A2A83BED /* WKWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WKWebView+AFNetworking.h"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.h"; sourceTree = ""; }; - B0922492568B0DD6D1F92C0E3B3A53A1 /* LookinWeakContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinWeakContainer.h; path = Src/Main/Shared/LookinWeakContainer.h; sourceTree = ""; }; - B09C6285E70223CDED72989080A8442A /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; + A7A301C66E696681FADD2B5F1A72E77F /* UIBlurEffect+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBlurEffect+LookinServer.h"; path = "Src/Main/Server/Category/UIBlurEffect+LookinServer.h"; sourceTree = ""; }; + A89B78ED863C4BD746754C68B71EE2D9 /* LSTTimer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LSTTimer-Info.plist"; sourceTree = ""; }; + A8A7E3E3C822A5CC2F51A88301622FA8 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; + A8F3C162ECFFC7C269990C3F6C60EA02 /* MJRefreshAutoGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoGifFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h; sourceTree = ""; }; + A921248D50C2AB16156A42A3D7878239 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = ""; }; + A92EBDBD9ADD77AC125DE4FAE2A050CD /* LSTPopViewProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTPopViewProtocol.h; path = LSTPopView/Classes/Code/LSTPopViewProtocol.h; sourceTree = ""; }; + A9435F94B2530DBBBA2B0F4818DB2ED3 /* HWPanContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanContainerView.m; path = Sources/View/HWPanContainerView.m; sourceTree = ""; }; + A983C9EAC053E3A902EDBD7259A44CCC /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; + AA35ACB38D9154B4D400113AFC90C3A4 /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = ""; }; + AA6BE0D284683F4B3154DA2FEAA55268 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = ""; }; + AA8B7E098C9891D8A55FBFC522096F4A /* UIViewController+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LookinServer.m"; path = "Src/Main/Server/Category/UIViewController+LookinServer.m"; sourceTree = ""; }; + AB22AD946DEFF60CD04A121B225C9206 /* JXCategoryNumberCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberCellModel.m; path = Sources/Number/JXCategoryNumberCellModel.m; sourceTree = ""; }; + ABD7E4F009A1BC4FE2652767F23F65C5 /* JXPagingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-prefix.pch"; sourceTree = ""; }; + AC22D6C07A4D561385506A0C9BAA8264 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = ""; }; + AC5DEFD150893C86D3BEB5BD54870151 /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = ""; }; + AC71E00B08C163BDC9595A666E4DD0BB /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; + AC9FAA27822DD84D783E5B0318FBC989 /* MBProgressHUD.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.release.xcconfig; sourceTree = ""; }; + ACBB0C1BA927BCF08DA6871143832DFE /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; + AD030D4FE25B39220113AA491F784D34 /* JXCategoryIndicatorRainbowLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorRainbowLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.m; sourceTree = ""; }; + AD9FC9F1DFCA104E54D6E4547D96356D /* RTLManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RTLManager.m; path = Sources/RLTManager/RTLManager.m; sourceTree = ""; }; + AE4ED5124C7D58B79382F953B4D4AF1B /* HWPanModal-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "HWPanModal-dummy.m"; sourceTree = ""; }; + AEAA7AD51C8DC304F8BC9473ABFDE6EB /* Lookin_PTUSBHub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTUSBHub.m; path = Src/Main/Shared/Peertalk/Lookin_PTUSBHub.m; sourceTree = ""; }; + AF02BE9AE63BC1D0DEC990CDDA7EB8C6 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; + AF09B126EF200D965115496EB9E79C2B /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = ""; }; + AF674229C7D31D64E69F0EDA1C666B5E /* UIColor+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+LookinServer.m"; path = "Src/Main/Server/Category/UIColor+LookinServer.m"; sourceTree = ""; }; + AF71C29AA946CD68A2DC3E7F2970DF2F /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = ""; }; + AF8F130ED4A740A7CACD266AEC22B19C /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + AFA6581234C27D63A104875F08AF8AD0 /* LYEmptyViewHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyViewHeader.h; path = LYEmptyView/LYEmptyViewHeader.h; sourceTree = ""; }; + AFD298D5839EC6B16CB35C63BA6311A9 /* JXCategoryListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerView.m; path = Sources/Common/JXCategoryListContainerView.m; sourceTree = ""; }; + AFF45D4CE90980A5F7EC393EA9E9D029 /* LKS_HierarchyDetailsHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_HierarchyDetailsHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_HierarchyDetailsHandler.m; sourceTree = ""; }; + B039DC77C7D8D33CEAB56314AAFE04CB /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + B0A46543847985D468FCB069493BA429 /* HWVisualEffectView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWVisualEffectView.m; path = Sources/View/HWVisualEffectView.m; sourceTree = ""; }; B0B214D775196BA7CA8E17E53048A493 /* SDWebImage */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B1850D4E22F95780586FA04DA695C24C /* Lookin_PTUSBHub.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTUSBHub.m; path = Src/Main/Shared/Peertalk/Lookin_PTUSBHub.m; sourceTree = ""; }; - B267D6EC269C7ADF7A4202363528E8C2 /* LookinAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttribute.m; path = Src/Main/Shared/LookinAttribute.m; sourceTree = ""; }; - B28192DA39251C0AC1C30AE245A9A547 /* JXCategoryTitleImageCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleImageCellModel.m; path = Sources/TitleImage/JXCategoryTitleImageCellModel.m; sourceTree = ""; }; - B2B7D0FDFC6ECF60B59728E60160431B /* LookinConnectionResponseAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinConnectionResponseAttachment.m; path = Src/Main/Shared/LookinConnectionResponseAttachment.m; sourceTree = ""; }; - B2C2A4CA80B5FE7CB8927FAEE4CAF5F4 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; - B2CE10A014B3B7826BFF751346CE7495 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = ""; }; - B3443BE7FBE80A857A146093C743D9BF /* JXCategoryIndicatorImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorImageView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.m; sourceTree = ""; }; - B4319C3394898C8897D6580DAC5A5124 /* JXPagingView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPagingView-umbrella.h"; sourceTree = ""; }; - B453C947A0F7F0133F2F98F9E8EF1E43 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = ""; }; - B4750EDA171CA7EB95AFE62489A712EF /* JXCategoryViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewDefines.h; path = Sources/Common/JXCategoryViewDefines.h; sourceTree = ""; }; - B49837A2AA042F710F43F143A929D49F /* JXCategoryTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCell.m; path = Sources/Title/JXCategoryTitleCell.m; sourceTree = ""; }; - B49F76B93F72D361782D7DA99B65ADC9 /* JXCategoryIndicatorLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorLineView.m; sourceTree = ""; }; - B4F7FC0CFCBE2143A4999C2F356D2B47 /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = ""; }; - B5157027D16B7E61C1D5AB091D10458E /* LookinTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinTuple.m; path = Src/Main/Shared/LookinTuple.m; sourceTree = ""; }; - B5885DEE0FCB371101A605FDA3D3F35C /* LYEmptyBaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyBaseView.h; path = LYEmptyView/LYEmptyBaseView.h; sourceTree = ""; }; - B5A6B26A93BDE64568CF7AF44D709974 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; - B5F6ED51FA52849CB3D9D44DD45396E2 /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = ""; }; - B6242B29A00A9DBC6FF1CD09266BBF54 /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; - B628043D13CE1145E17714D58AB2A687 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - B6575913AB2C7FDA723D279165349FF6 /* NSObject+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+Lookin.m"; path = "Src/Main/Shared/Category/NSObject+Lookin.m"; sourceTree = ""; }; - B6ED434773EE7ECEDAB93E7A62107F73 /* FLAnimatedImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FLAnimatedImage.modulemap; sourceTree = ""; }; - B705DD8FCD54B3AFD61B70C82828ACE4 /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = ""; }; - B70A750F053AB9B0B60CBF456ED577A9 /* JXCategoryTitleCellModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCellModel.m; path = Sources/Title/JXCategoryTitleCellModel.m; sourceTree = ""; }; - B74E719F2E64B3E186B6F4B672482329 /* LSTTimer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LSTTimer-Info.plist"; sourceTree = ""; }; - B75E67C2319B8FDBF4D6263203A06D6B /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; - B77422F87DF00923771B3EF8E6C0A9BF /* UITableView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+LookinServer.m"; path = "Src/Main/Server/Category/UITableView+LookinServer.m"; sourceTree = ""; }; - B82D0099E75E96FE5ACCF5B647388551 /* JXCategoryFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryFactory.m; path = Sources/Common/JXCategoryFactory.m; sourceTree = ""; }; - B8322800FD1F06BC2FEA3A9EEA874E20 /* DZNEmptyDataSet-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DZNEmptyDataSet-dummy.m"; sourceTree = ""; }; - B87895ABF5221A865DF2D53247763F89 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = ""; }; - B8F1319B150BB3DBD94BEB4C80F6F296 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; - B915A35174E3017D6DC61C0A3E31050E /* LookinAttributeModification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributeModification.h; path = Src/Main/Shared/LookinAttributeModification.h; sourceTree = ""; }; - B92B905C66437721BB933FEDA5B00CB4 /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = ""; }; - B95FDE5F86C6AC76E24A82E181084256 /* UIViewController+PanModalDefault.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PanModalDefault.m"; path = "Sources/Presentable/UIViewController+PanModalDefault.m"; sourceTree = ""; }; - B9CA9F01554205BFBACCA553143C8676 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; - B9E1D06297B630EA32D1369915C0CB97 /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = ""; }; + B13CD7AE091867EB74C9F24515FAA7F9 /* MJExtension-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJExtension-prefix.pch"; sourceTree = ""; }; + B15A8466AD16797422A5769DBF335FF9 /* LSTPopView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LSTPopView-dummy.m"; sourceTree = ""; }; + B1D21E1077C6E7A011517EEE18D2A29B /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = ""; }; + B274C85C40A4722970D6752B0CEB3492 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; + B2F7B372590A2F892FF1A0088E013829 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; + B313FB2E02E6138E1628A481AF03A970 /* mz_zip_rw.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip_rw.h; path = SSZipArchive/minizip/mz_zip_rw.h; sourceTree = ""; }; + B3320819532C765855244E2B917027EC /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; + B36B992BAF23D9A0A1EDACBC57D1245D /* LookinServer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LookinServer-Info.plist"; sourceTree = ""; }; + B47748E05CB9242948D04AE8D182AA02 /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = ""; }; + B4F570BBE31A067BEE366B96CD4A2232 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + B502706704C901967AE5F80555ABC8E1 /* UIView+HW_Frame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+HW_Frame.m"; path = "Sources/Category/UIView+HW_Frame.m"; sourceTree = ""; }; + B5859EFB57577F79DE0594BFE5FCE960 /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = ""; }; + B59B22A1A3E3EB3C0FD46F485A77D9A2 /* HWPanModal.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HWPanModal.release.xcconfig; sourceTree = ""; }; + B5BC8C00F1561B5D7DB93AE4BC24DCBA /* UIVisualEffectView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIVisualEffectView+LookinServer.h"; path = "Src/Main/Server/Category/UIVisualEffectView+LookinServer.h"; sourceTree = ""; }; + B60A9EA622DCF45E87F4BCA20F525D85 /* LSTTimer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LSTTimer-dummy.m"; sourceTree = ""; }; + B618AD54568085441B258C0BFB68D1FB /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = ""; }; + B6423290AB7CA5E22CEDE81C258D9D68 /* SSZipArchive-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SSZipArchive-Info.plist"; sourceTree = ""; }; + B65A0644DDC3DBF2C3A6A5539FCDBCFF /* JXCategoryTitleVerticalZoomCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCellModel.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h; sourceTree = ""; }; + B6B2FE0CBDE39531B676501864F1834F /* CALayer+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+LookinServer.h"; path = "Src/Main/Server/Category/CALayer+LookinServer.h"; sourceTree = ""; }; + B6DEC1D3D0D45845A0C362AB6D6856E2 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = ""; }; + B6FBCFD26A3B8A9AAFA4FC414E405AAA /* mz_strm_wzaes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_wzaes.h; path = SSZipArchive/minizip/mz_strm_wzaes.h; sourceTree = ""; }; + B788040001791F66B5813C1FC3C51736 /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; + B7B17C8F66F48EB638E0AF42D54F42F3 /* LookinAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttribute.h; path = Src/Main/Shared/LookinAttribute.h; sourceTree = ""; }; + B7C6325AEC2E86B0B251C3EB931247DD /* LYEmptyView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LYEmptyView.m; path = LYEmptyView/LYEmptyView.m; sourceTree = ""; }; + B818D4A1BAE22A9C619951DE8D9DB678 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = ""; }; + B887B4AF044F9F7F71EE2A0315D9C39F /* JXCategoryTitleCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleCell.m; path = Sources/Title/JXCategoryTitleCell.m; sourceTree = ""; }; + B9579B08DA6D1FF93EA1A319C7934531 /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; + B992D5E26C32247C4C94C9861F3527E7 /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = ""; }; + B9A1F606877D97F90D0302FFE4CCA3CF /* HWPanModal-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "HWPanModal-Info.plist"; sourceTree = ""; }; + B9F55F2644DAEF4709F02F974A798912 /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = ""; }; + B9FA6EA3495E0341DC2AA0799245209C /* HWPanModalAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalAnimator.m; path = Sources/Animator/HWPanModalAnimator.m; sourceTree = ""; }; + BA0FC9A098AF47CC01D182E6B2146446 /* SSZipArchive.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SSZipArchive.h; path = SSZipArchive/SSZipArchive.h; sourceTree = ""; }; + BA1686C72867CD846AF19514CDB0DB24 /* LSTTimer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTTimer-umbrella.h"; sourceTree = ""; }; + BA484D3460A1CAAE9A30E333F8FEF7D5 /* NSObject+MJProperty.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJProperty.h"; path = "MJExtension/NSObject+MJProperty.h"; sourceTree = ""; }; + BA5E009B8610690D3DDBC67E45D5FF7F /* HWBackgroundConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWBackgroundConfig.m; path = Sources/View/HWBackgroundConfig.m; sourceTree = ""; }; + BAC93B86D6778471FAE7BA6676662150 /* Peertalk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Peertalk.h; path = Src/Main/Shared/Peertalk/Peertalk.h; sourceTree = ""; }; + BAF93F1F248973B4AC6CFD18CF736F3F /* LookinIvarTrace.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinIvarTrace.m; path = Src/Base/LookinIvarTrace.m; sourceTree = ""; }; + BB422F09DB5A06469496D276E2329309 /* LYEmptyView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LYEmptyView.release.xcconfig; sourceTree = ""; }; BB4F011171FCB76B1AEBE390F843E930 /* JXCategoryView-JXCategoryView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXCategoryView-JXCategoryView"; path = JXCategoryView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - BBA58A99F7E528A8D41BD96706230160 /* MJRefreshBackGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackGifFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h; sourceTree = ""; }; - BC30CFC7778FEADF9DCBF0A4ABA1769C /* SDImageAWebPCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAWebPCoder.m; path = SDWebImage/Core/SDImageAWebPCoder.m; sourceTree = ""; }; - BC7F3F9323470C634DC0D469E7C13B10 /* MJRefreshAutoGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoGifFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.m; sourceTree = ""; }; - BCDE5AFCF524DCA9CD59B6F4A4738325 /* HWPanModalIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalIndicatorProtocol.h; path = Sources/View/HWPanModalIndicatorProtocol.h; sourceTree = ""; }; - BCF14CEE3203A4E740B9A9FD66CCABA4 /* MJFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJFoundation.m; path = MJExtension/MJFoundation.m; sourceTree = ""; }; - BD243AB5EB0FB2763BBC742A8BCF80DD /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; - BD3BC591D3DAF10375616FB7F294F926 /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; - BD430BA3E5DB115A0F8BF9D6110923AE /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = ""; }; - BDB258BF0BE17AFC3BFB4FB942403B82 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = ""; }; - BDEE6097B6411333154FEF90A280E3E4 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - BE1A1849BD6BB4B796D54DCBEF79FB7A /* UICollectionViewLayout+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UICollectionViewLayout+MJRefresh.m"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.m"; sourceTree = ""; }; - BE9E061AE26F933A7BBEFF3D94E9B32D /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; - BF0EE7E880EA65C279154531EF91F5E8 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - BF141C03BAA67847DFB6B6DFF0D1CBFC /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - BF31B533FDEE0B0DA7ED824B4F336534 /* SDImageFramePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFramePool.m; path = SDWebImage/Private/SDImageFramePool.m; sourceTree = ""; }; - BF3C6AEB909F4472F8D8E4E21B25B716 /* SDImageAWebPCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAWebPCoder.h; path = SDWebImage/Core/SDImageAWebPCoder.h; sourceTree = ""; }; - C00601FB0A8CFBE203150BAEC58E95FC /* LYEmptyView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LYEmptyView-umbrella.h"; sourceTree = ""; }; - C19EBB7B5E5A5B4CB83F93B794EA02A1 /* LKS_CustomDisplayItemsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomDisplayItemsMaker.m; path = Src/Main/Server/Others/LKS_CustomDisplayItemsMaker.m; sourceTree = ""; }; - C1D06F4343D9C630BC102E7BCD9CECCF /* NSSet+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+Lookin.h"; path = "Src/Main/Shared/Category/NSSet+Lookin.h"; sourceTree = ""; }; - C202F1C5D8455CDDCAE965BD7BAAFC3B /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = ""; }; - C31C4A7197700436AFBAB631C088A6AE /* JXCategoryIndicatorTriangleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorTriangleView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.m; sourceTree = ""; }; - C398AC4FA166ECBDBFA37681D3C108CC /* JXCategoryIndicatorDotLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorDotLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h; sourceTree = ""; }; + BD0F786321DA91AA42CBCE576325DFC3 /* JXCategoryIndicatorCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCell.h; path = Sources/Indicator/JXCategoryIndicatorCell.h; sourceTree = ""; }; + BD754332D1E3AE1D91664D4145F6D80A /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + BDF29172F6D618B2B1EFF9D3E4621B60 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = ""; }; + BE47DAA5E72BB278A1DB977182E3283B /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefresh/Base/MJRefreshFooter.h; sourceTree = ""; }; + BE611142AC4AA27D3CF48AE78CE8ABE7 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; + BEB9455CE0A06FE1E60E43D8A39479DA /* JXCategoryView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.debug.xcconfig; sourceTree = ""; }; + BEBF633302636EB455572D1BB0481C65 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = ""; }; + BF5E8A1B56E1CB24CE62F9229FFDA081 /* JXCategoryIndicatorDotLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorDotLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.h; sourceTree = ""; }; + BF890D3C8FFDC0A8645FE4AC7B3FEAC2 /* LookinAttributesGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributesGroup.h; path = Src/Main/Shared/LookinAttributesGroup.h; sourceTree = ""; }; + BF92FB29A700B0634F55358F1FC1D8BE /* HWPanModalContentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalContentView.h; path = Sources/View/PanModal/HWPanModalContentView.h; sourceTree = ""; }; + BFB320E846599F5407553A53017BE8D5 /* Masonry.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Masonry.modulemap; sourceTree = ""; }; + C00853DA866D706105E3F07641DC0307 /* LookinHierarchyFile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinHierarchyFile.m; path = Src/Main/Shared/LookinHierarchyFile.m; sourceTree = ""; }; + C03B0A1B7E7515D288BC124A1D727BFF /* KeyValueObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KeyValueObserver.h; path = Sources/KVO/KeyValueObserver.h; sourceTree = ""; }; + C0628F76E42EF6B256C47D95774F6487 /* HWPanIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanIndicatorView.m; path = Sources/View/HWPanIndicatorView.m; sourceTree = ""; }; + C09AA983D9F8A9C0C58FF8C1F1A0F2A5 /* NSObject+MJCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJCoding.m"; path = "MJExtension/NSObject+MJCoding.m"; sourceTree = ""; }; + C0E1986191F6390AE52D414954598C40 /* JXCategoryTitleImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageCell.h; path = Sources/TitleImage/JXCategoryTitleImageCell.h; sourceTree = ""; }; + C13E45D6A86AF887A2F349DE33857057 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; + C26AB205827C5EC4F0B52B2B9F01198E /* LookinDisplayItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinDisplayItem.m; path = Src/Main/Shared/LookinDisplayItem.m; sourceTree = ""; }; + C2B186A7798AB389A4AD802804B15504 /* UITextView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextView+LookinServer.m"; path = "Src/Main/Server/Category/UITextView+LookinServer.m"; sourceTree = ""; }; + C30E7CAA4E69994CC7E5C27812DF875A /* MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJExtension.h; path = MJExtension/MJExtension.h; sourceTree = ""; }; + C37E369E045D1954868FA3F8BD76BE0E /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = ""; }; + C38F79D9F2BBBC5DD6406B67406CBB17 /* LKS_HierarchyDetailsHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_HierarchyDetailsHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_HierarchyDetailsHandler.h; sourceTree = ""; }; C3A46B03C308EEEB11F2A62BA5D2E8BE /* JXCategoryView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JXCategoryView; path = JXCategoryView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C3D9450A4AAE9542E6A1A0473B7DF812 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; - C3DBF2503619D6F278D203DBF5D29B4E /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; - C41AE199679E3EEC03FA1272FE103027 /* UIBlurEffect+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBlurEffect+LookinServer.h"; path = "Src/Main/Server/Category/UIBlurEffect+LookinServer.h"; sourceTree = ""; }; - C45DF4498F0949CD4F02FA86BFE50D93 /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = ""; }; - C4D51AE584C5960F5C6B60C866377741 /* JXCategoryTitleVerticalZoomCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCellModel.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCellModel.h; sourceTree = ""; }; - C5D725B550FCED60C80870F1B120D3B4 /* HWShoppingCartPresentingAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWShoppingCartPresentingAnimation.m; path = Sources/Animator/PresentingVCAnimation/HWShoppingCartPresentingAnimation.m; sourceTree = ""; }; - C63CFE9D73B31D9EBEF51E32F9AC7286 /* JXCategoryListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerView.m; path = Sources/Common/JXCategoryListContainerView.m; sourceTree = ""; }; - C644FF26241C14C759578567892EF00D /* HWPanModalPresentableHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentableHandler.h; path = Sources/Mediator/HWPanModalPresentableHandler.h; sourceTree = ""; }; - C64A52A00F5D8A13BA6BD40D1834BF56 /* UITextField+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextField+LookinServer.m"; path = "Src/Main/Server/Category/UITextField+LookinServer.m"; sourceTree = ""; }; - C6553D3214536278C24D990CC36267F3 /* Image+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Image+Lookin.m"; path = "Src/Main/Shared/Category/Image+Lookin.m"; sourceTree = ""; }; - C74EA9D59FFCBE16D0C0E5B7B2D53516 /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = ""; }; - C75FCCDECEB6A92A56B67E27033473B6 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - C7F42FC60A06A5673FA7DE53298188E2 /* LKS_TraceManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_TraceManager.m; path = Src/Main/Server/Others/LKS_TraceManager.m; sourceTree = ""; }; - C81473AB6162F68681F317D8EC207A4C /* LKS_GestureTargetActionsSearcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_GestureTargetActionsSearcher.m; path = Src/Main/Server/Others/LKS_GestureTargetActionsSearcher.m; sourceTree = ""; }; - C86FEA7FA982FA034501F7AB37760D49 /* JXCategoryDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotView.m; path = Sources/Dot/JXCategoryDotView.m; sourceTree = ""; }; - C8ED101794ADA1876F4FFCBD1F79D622 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = ""; }; - C909F8904D301FB96965DD62CE4E2CA7 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = ""; }; - C94F3031AB6C5451E9610DBD24FE9029 /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = ""; }; - C98FF255A58DDF6F211BD72458B9C3D0 /* LSTPopView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LSTPopView-dummy.m"; sourceTree = ""; }; - C9A08CB30EFC3A6CB342354C253BE4D8 /* NSString+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Lookin.m"; path = "Src/Main/Shared/Category/NSString+Lookin.m"; sourceTree = ""; }; - C9E1D6C567F43B4A9410AC83170573DE /* LookinAttrType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttrType.h; path = Src/Main/Shared/LookinAttrType.h; sourceTree = ""; }; - CA665BB1B8AEA701C3C1A72312BFE105 /* HWPanModal.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HWPanModal.release.xcconfig; sourceTree = ""; }; + C44983FCE81235EA1DAC918E17D1BD46 /* SDCallbackQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDCallbackQueue.m; path = SDWebImage/Core/SDCallbackQueue.m; sourceTree = ""; }; + C465F2B07425AB6119127372849CF8C4 /* LKS_CustomAttrSetterManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_CustomAttrSetterManager.h; path = Src/Main/Server/Others/LKS_CustomAttrSetterManager.h; sourceTree = ""; }; + C4C0F3F15553F501197C49C0CCA3C71B /* LKS_EventHandlerMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_EventHandlerMaker.h; path = Src/Main/Server/Others/LKS_EventHandlerMaker.h; sourceTree = ""; }; + C4DDFE1F2381E9236A530A5B1D4FD64A /* LookinServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LookinServer.modulemap; sourceTree = ""; }; + C4F6AE3117069C0D3834E765017DF4FD /* MBProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MBProgressHUD.modulemap; sourceTree = ""; }; + C511B649864B27A1FFE7D145A6C6656F /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = ""; }; + C519A51D66E63515421E2A7F5D0292B5 /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = ""; }; + C56CE434AD64B4F0203646AFEABDC62C /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; + C574A06BD79BD663087E268891D35FC4 /* MJExtension-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJExtension-umbrella.h"; sourceTree = ""; }; + C59FCAF4FF4CBD0C5C0DDF43DA90219F /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = ""; }; + C5E71C07BE43DB660AD9530B77FD390D /* Bugly.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bugly.debug.xcconfig; sourceTree = ""; }; + C5F30B6A64A6BA3D79791488816A9ACF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + C61FA70CB01999A6107A42EFF9E59D0C /* MJRefreshAutoNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoNormalFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h; sourceTree = ""; }; + C659CE9E1FF90805F3DC1F8D3DDD1B24 /* LSTPopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTPopView.h; path = LSTPopView/Classes/Code/LSTPopView.h; sourceTree = ""; }; + C6936388674E3A09DD13C04993D68D7B /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = ""; }; + C728326011B8B56DD213BF567030FBFE /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = ""; }; + C746AE47069EC0FC26033C8BE9327094 /* FLAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImageView.h; path = FLAnimatedImage/include/FLAnimatedImageView.h; sourceTree = ""; }; + C7673C6A1F4331DE69644342A618B59E /* LKS_CustomAttrModificationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrModificationHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_CustomAttrModificationHandler.m; sourceTree = ""; }; + C792FA3E4D3612659DA4500FE9D4A687 /* LookinHierarchyInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinHierarchyInfo.h; path = Src/Main/Shared/LookinHierarchyInfo.h; sourceTree = ""; }; + C88B063885CBDBDC0D3C3C9C76FA86DA /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + C93081D998142D9D1077E4218203CB6F /* LSTTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LSTTimer.m; path = LSTTimer/Classes/LSTTimer.m; sourceTree = ""; }; + C99C2C51482A68E16DCB90EA75CB196C /* JXCategoryIndicatorCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorCellModel.h; path = Sources/Indicator/JXCategoryIndicatorCellModel.h; sourceTree = ""; }; + C9AD64D83E505E433188B9A60444891D /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefresh/Custom/Header/MJRefreshGifHeader.m; sourceTree = ""; }; + C9CD1D6B313C7BC3B434A5429146D43D /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = ""; }; + CA0F71330D13A74D3AEBCFB9914E77E0 /* LKS_ExportManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ExportManager.h; path = Src/Main/Server/Others/LKS_ExportManager.h; sourceTree = ""; }; + CA20B850F36C58A646EEA030EE4F0FB7 /* FLAnimatedImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-prefix.pch"; sourceTree = ""; }; + CA6877C7E2F08DD57E39B1630AB4D3CE /* Lookin_PTUSBHub.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTUSBHub.h; path = Src/Main/Shared/Peertalk/Lookin_PTUSBHub.h; sourceTree = ""; }; CAD1D653361EAFCC0E4FFD8252FC1E74 /* Pods-CustomKeyboard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-CustomKeyboard.modulemap"; sourceTree = ""; }; - CAE21A3C562355122DA705E505CCA673 /* LookinAttributesSection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributesSection.h; path = Src/Main/Shared/LookinAttributesSection.h; sourceTree = ""; }; - CB5214881D82D6C122FB4D3B471F9D93 /* LKS_ObjectRegistry.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ObjectRegistry.m; path = Src/Main/Server/Others/LKS_ObjectRegistry.m; sourceTree = ""; }; - CBB2B3782C3C4626F075A8900436D09D /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - CBD58A6BE5B4D23DDB42D3D26A87CAEA /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = ""; }; - CD6BC672271DF551FD22D8BABC528CA6 /* LKS_EventHandlerMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_EventHandlerMaker.m; path = Src/Main/Server/Others/LKS_EventHandlerMaker.m; sourceTree = ""; }; - CDE56910104E914C73DC565FDFEABE34 /* HWPanModal-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "HWPanModal-Info.plist"; sourceTree = ""; }; - CE2B5265F3721FD7EAE15556CCDB1151 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = ""; }; - CE5782C68BCDC8C49DD74B206B3FFFF1 /* LSTTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LSTTimer.m; path = LSTTimer/Classes/LSTTimer.m; sourceTree = ""; }; + CAE2293AF60119096F17C5A20EA09D4A /* UIScrollView+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+Helper.h"; path = "Sources/Category/UIScrollView+Helper.h"; sourceTree = ""; }; + CB419394F1C9468854632763B9DBA464 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = ""; }; + CB626F56EF11C62E6F49F42CB4341053 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; + CB7E424AE2A6FC9C8A4DBA6387CE406F /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = ""; }; + CB807F985CDE872D9B41A7A326A880B4 /* mz_strm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm.h; path = SSZipArchive/minizip/mz_strm.h; sourceTree = ""; }; + CBBA1D54FD2ACBA6EE9FBDA18C9CE86E /* JXCategoryIndicatorTriangleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorTriangleView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorTriangleView.h; sourceTree = ""; }; + CBC4A2C833B1F76F40DA917134EB3399 /* HWPanModalPresentationAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationAnimator.m; path = Sources/Animator/HWPanModalPresentationAnimator.m; sourceTree = ""; }; + CBE3456A049548C4217BB0DCF854D022 /* LYEmptyView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = LYEmptyView.modulemap; sourceTree = ""; }; + CC0FAA66E9F92FE598CA52ABB654861F /* UIImage+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+LookinServer.m"; path = "Src/Main/Server/Category/UIImage+LookinServer.m"; sourceTree = ""; }; + CC3DB470C154D8612194B2A8D575210C /* JXCategoryTitleCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCell.h; path = Sources/Title/JXCategoryTitleCell.h; sourceTree = ""; }; + CC5AD50A387E797ED45F5031160FCC1B /* mz_strm_os_posix.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_os_posix.c; path = SSZipArchive/minizip/mz_strm_os_posix.c; sourceTree = ""; }; + CCDB12D9B54C616575E50DF21796370B /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = ""; }; + CD30B9EF8BA7F13C73065F6A94D35ECD /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + CD95470553CE3E7B3AD30401481B40C2 /* LYEmptyView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LYEmptyView-umbrella.h"; sourceTree = ""; }; + CE5450AB8CC809FC5DCFD5B6A5E51531 /* JXCategoryTitleImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleImageView.h; path = Sources/TitleImage/JXCategoryTitleImageView.h; sourceTree = ""; }; + CEAB2A11C175DE0C1AD373DDC286B62C /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; + CEDCB917F08ED5C65EA344CD0EE4714F /* MJRefreshAutoNormalFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoNormalFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m; sourceTree = ""; }; + CEFD754D5929FD7A8119DC60B6F1E309 /* HWShoppingCartPresentingAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWShoppingCartPresentingAnimation.h; path = Sources/Animator/PresentingVCAnimation/HWShoppingCartPresentingAnimation.h; sourceTree = ""; }; CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "SDWebImage-SDWebImage"; path = SDWebImage.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - CF46C0579CB3C54966C0F025487DB215 /* JXPagerSmoothView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerSmoothView.m; path = Sources/JXPagerView/JXPagerSmoothView.m; sourceTree = ""; }; - CF6ABA6691731EEA533F56170FB03C5C /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = ""; }; - CF7B4B9CB0EF762A12884D6FE337E068 /* HWPanModalAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalAnimator.h; path = Sources/Animator/HWPanModalAnimator.h; sourceTree = ""; }; - CF91BA63B659D0E10C9E123EBEAB8FA3 /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; - CFC8ED8D34DD2679124911EB0F515607 /* LookinObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinObject.m; path = Src/Main/Shared/LookinObject.m; sourceTree = ""; }; - D00729EFDA62359B2F2AA1EF43FADFD9 /* LKS_CustomAttrModificationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrModificationHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_CustomAttrModificationHandler.m; sourceTree = ""; }; - D0B1EDD790AB62D80A6CA23D5272938B /* LookinAttributesGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAttributesGroup.m; path = Src/Main/Shared/LookinAttributesGroup.m; sourceTree = ""; }; - D1046C4A0F4D596969B881D83BCC0FA1 /* FLAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImage.m; path = FLAnimatedImage/FLAnimatedImage.m; sourceTree = ""; }; - D25C8F67455D872A48F4797213321EA4 /* JXCategoryIndicatorRainbowLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorRainbowLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h; sourceTree = ""; }; - D30B8333D334528105E28100C243348D /* MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD-dummy.m"; sourceTree = ""; }; - D3FD4542A2D174FC95524833AB672073 /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; - D411D25D78A2F9E3CF17B20443ED9F40 /* MJRefreshNormalHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshNormalHeader.h; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.h; sourceTree = ""; }; - D444527057532BACBF8EC98BE62D3E03 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = ""; }; - D44C8E719DA4251716FDA4B2519C022D /* NSObject+MJProperty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJProperty.m"; path = "MJExtension/NSObject+MJProperty.m"; sourceTree = ""; }; - D4CFF1EB3CBDD5217E39DD58BD101359 /* LookinEventHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinEventHandler.m; path = Src/Main/Shared/LookinEventHandler.m; sourceTree = ""; }; - D5119B7CF0FE429CF0E185983E72F98F /* JXCategoryNumberView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberView.m; path = Sources/Number/JXCategoryNumberView.m; sourceTree = ""; }; - D51E4D4230E01D5F3D9340BDF320C3E1 /* JXCategoryImageCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryImageCellModel.h; path = Sources/Image/JXCategoryImageCellModel.h; sourceTree = ""; }; - D564B14F434E85E8016FF192E33548A8 /* JXPagerMainTableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerMainTableView.h; path = Sources/JXPagerView/JXPagerMainTableView.h; sourceTree = ""; }; - D5909A44E1AC01893309CADDDBC4E50C /* UILabel+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UILabel+LookinServer.h"; path = "Src/Main/Server/Category/UILabel+LookinServer.h"; sourceTree = ""; }; - D5BBA19EC013D7414BE28B29DCA7518D /* FLAnimatedImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.release.xcconfig; sourceTree = ""; }; - D68722AFBA338282E0B3C89AFE0F83AC /* JXCategoryIndicatorBackgroundView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBackgroundView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.m; sourceTree = ""; }; + CF4ECEE409DD9983607A183AF34F50C6 /* UIImageView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+LookinServer.h"; path = "Src/Main/Server/Category/UIImageView+LookinServer.h"; sourceTree = ""; }; + D0C457DCA9BF3F607512B528E207123C /* JXPagingView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPagingView.modulemap; sourceTree = ""; }; + D0CD05F22DD9C777ADD1844C1AA92A6E /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; + D0EA1758087DF6422638C3E1E4752106 /* mz_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_os.h; path = SSZipArchive/minizip/mz_os.h; sourceTree = ""; }; + D1634EA2B0314D56355771EF869E1DEF /* SDCallbackQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDCallbackQueue.h; path = SDWebImage/Core/SDCallbackQueue.h; sourceTree = ""; }; + D1A8D246A17AC99C083AD6B315A4F43E /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + D1F2502AC8DD19068B26EF772154A729 /* LookinAutoLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAutoLayoutConstraint.m; path = Src/Main/Shared/LookinAutoLayoutConstraint.m; sourceTree = ""; }; + D2DD1844C1B1D3B679136279376792A0 /* HWPanModal-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HWPanModal-prefix.pch"; sourceTree = ""; }; + D2E96E3FE3174CF0DBE2B98522202B64 /* Lookin_PTPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Lookin_PTPrivate.h; path = Src/Main/Shared/Peertalk/Lookin_PTPrivate.h; sourceTree = ""; }; + D309D9F9D6EC63460F0FE974E2910D6A /* NSObject+MJClass.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJClass.m"; path = "MJExtension/NSObject+MJClass.m"; sourceTree = ""; }; + D3931B77C846928C35AD1FF0896988E4 /* UIView+Empty.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Empty.m"; path = "LYEmptyView/UIView+Empty.m"; sourceTree = ""; }; + D43CE774AFD0B7B5A9098E42A1E031D4 /* DZNEmptyDataSet-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-prefix.pch"; sourceTree = ""; }; + D44F285EDEE4AF310DBFDC692616C9A2 /* Lookin_PTProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Lookin_PTProtocol.m; path = Src/Main/Shared/Peertalk/Lookin_PTProtocol.m; sourceTree = ""; }; + D49CDA48914032B26F3A10790C6CC843 /* HWPanModal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModal.h; path = Sources/HWPanModal.h; sourceTree = ""; }; + D4C758EAB6412C592511A197D1BD7BD3 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; + D5C4A9FFCCE6B456591ACD9A1DB94EAA /* AFNetworking.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.release.xcconfig; sourceTree = ""; }; + D5DC48829B4C9491CC086CFD600A48A6 /* JXPagerMainTableView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerMainTableView.m; path = Sources/JXPagerView/JXPagerMainTableView.m; sourceTree = ""; }; + D613067417303514F3697BE599A2270E /* HWPanIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanIndicatorView.h; path = Sources/View/HWPanIndicatorView.h; sourceTree = ""; }; + D6461306EC2DB92B54F94A02C7BC779E /* MJPropertyType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJPropertyType.h; path = MJExtension/MJPropertyType.h; sourceTree = ""; }; + D66F851DF43462C5CFB4A390D98EEE4E /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + D6900481698B9F48FCA8D28EBAA092DF /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = ""; }; + D6D93409F6A6BDA4C7CE4B8E57F61151 /* HWPanModalIndicatorProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalIndicatorProtocol.h; path = Sources/View/HWPanModalIndicatorProtocol.h; sourceTree = ""; }; D742A7EF918BC67B0884AF366F7415FD /* Pods-CustomKeyboard-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-CustomKeyboard-acknowledgements.plist"; sourceTree = ""; }; - D7C0280DF79D384D6CBED6E080E02BB8 /* LSTPopView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTPopView-umbrella.h"; sourceTree = ""; }; - D7F6132E07FDE40130D6C51920456A21 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; - D8B8A062E76BF87D54F581F6428D4E28 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; - D98B4BEA4820634A8F01172731FF97B7 /* JXCategoryView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXCategoryView-dummy.m"; sourceTree = ""; }; - D9BB987ADE61FFDF3C240961F2EB4DDB /* LookinConnectionResponseAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinConnectionResponseAttachment.h; path = Src/Main/Shared/LookinConnectionResponseAttachment.h; sourceTree = ""; }; - D9CF33220A4EDFF59077DE1F83605414 /* JXCategoryListContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerView.h; path = Sources/Common/JXCategoryListContainerView.h; sourceTree = ""; }; - DA08E928976E65BC11D71562A0E4FBA2 /* LSTPopView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTPopView-prefix.pch"; sourceTree = ""; }; - DA0C012CAB8552E7EA8382B0E5D6B738 /* UIImageView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+LookinServer.m"; path = "Src/Main/Server/Category/UIImageView+LookinServer.m"; sourceTree = ""; }; - DA49453EBB9C905AD701D17F18479113 /* LKS_ConnectionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_ConnectionManager.m; path = Src/Main/Server/Connection/LKS_ConnectionManager.m; sourceTree = ""; }; - DB1B5D6DA097974C176F91F3853055EC /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; - DB3B6BBCBC04C438F099DE5DEC15C188 /* UIViewController+Presentation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+Presentation.h"; path = "Sources/Presentable/UIViewController+Presentation.h"; sourceTree = ""; }; - DB48FEC8123075E04395CF34F6F8227D /* HWPanModalPresentationAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationAnimator.h; path = Sources/Animator/HWPanModalPresentationAnimator.h; sourceTree = ""; }; - DB7D4CE7BA063A9CA415CD86C8825985 /* LSTPopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LSTPopView.h; path = LSTPopView/Classes/Code/LSTPopView.h; sourceTree = ""; }; - DBFA6FCFCE1CB3F169BDBDCE936950B5 /* LKS_ObjectRegistry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ObjectRegistry.h; path = Src/Main/Server/Others/LKS_ObjectRegistry.h; sourceTree = ""; }; - DC7496C927F9E881D19A203C207B5417 /* UIView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+LookinServer.h"; path = "Src/Main/Server/Category/UIView+LookinServer.h"; sourceTree = ""; }; - DC85B08C4C82F12C3AA7970FE44E1D9F /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = ""; }; + D7459F1B3692611E84C7237F8A8EA38D /* LYEmptyView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LYEmptyView-dummy.m"; sourceTree = ""; }; + D76288639CA695867537E017B89F9AF4 /* UIViewController+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+LookinServer.h"; path = "Src/Main/Server/Category/UIViewController+LookinServer.h"; sourceTree = ""; }; + D79F119190F2A5B16B795F629A7210D0 /* JXCategoryIndicatorParamsModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorParamsModel.h; path = Sources/Common/JXCategoryIndicatorParamsModel.h; sourceTree = ""; }; + D7F080347E7550373BD2ABDE7F06BA15 /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = ""; }; + D83421C2502DEB97A44C598BE21EA296 /* SSZipArchive-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SSZipArchive-dummy.m"; sourceTree = ""; }; + D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D85E4436F11F7C2B5E5E62E6883830C9 /* NSString+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Lookin.h"; path = "Src/Main/Shared/Category/NSString+Lookin.h"; sourceTree = ""; }; + D8AA97DE3A5096AC474171B27CE045A0 /* JXPagingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPagingView-dummy.m"; sourceTree = ""; }; + D8BBE3D6597CA5C084B0ECBB8BE04050 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; + D924634BFAF263689076CBD968A17D1B /* FLAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImage.h; path = FLAnimatedImage/include/FLAnimatedImage.h; sourceTree = ""; }; + D97F9C78C4A650C93D2FFA258F5C78AD /* mz_strm_pkcrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_pkcrypt.h; path = SSZipArchive/minizip/mz_strm_pkcrypt.h; sourceTree = ""; }; + D9EAEBBAE3A74DFDF23B1FEAE9D4E5BB /* JXCategoryListContainerRTLCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerRTLCell.h; path = Sources/Common/JXCategoryListContainerRTLCell.h; sourceTree = ""; }; + DA35F2AA6C5B4E15A7626412C670CBA5 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = ""; }; + DB0ECAE0D87D0608A8C30B2F77C3E87D /* LKS_TraceManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_TraceManager.h; path = Src/Main/Server/Others/LKS_TraceManager.h; sourceTree = ""; }; + DB1863C43548C48626DFDAA326CF57C0 /* LookinObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinObject.m; path = Src/Main/Shared/LookinObject.m; sourceTree = ""; }; DCA062FD08AC9694D8D781B3492421C5 /* Pods-keyBoard */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-keyBoard"; path = Pods_keyBoard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DCB771163568003A2EA8F4B1A606B9ED /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + DCBCA1C2F2293D0C830583795A736685 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; DCFE00F3CC8CED67258D7F7DD13F3156 /* Pods-keyBoard-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-keyBoard-frameworks.sh"; sourceTree = ""; }; - DD2F0E472487CBFBA5CA4F3C62C1BB0B /* NSObject+MJCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJCoding.h"; path = "MJExtension/NSObject+MJCoding.h"; sourceTree = ""; }; - DE0511947F57D1CF3F274B6414AE449B /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; + DD5C05C33FEB34F3D60A222DB91896DD /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; + DD67952FFCDC4D0DA05DB535DB5E6CE7 /* mz_strm_split.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_split.h; path = SSZipArchive/minizip/mz_strm_split.h; sourceTree = ""; }; + DDA6A298E6B1C01B099D029ACA189FBA /* MJRefreshAutoStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoStateFooter.h; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h; sourceTree = ""; }; + DDC47417445918B14DABED8324E64CDF /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + DDD62A03019F7CD9137BEE1E93471445 /* NSObject+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+LookinServer.h"; path = "Src/Main/Server/Category/NSObject+LookinServer.h"; sourceTree = ""; }; DE19C7D984CBC535E4768F5543458A1E /* LSTTimer */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LSTTimer; path = LSTTimer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DE378B71C4559C86FA84F1AB2F15BD03 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - DE4F66BD16AF47C58F5E08D62D7916E3 /* HWPanModalPresenterProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresenterProtocol.h; path = Sources/Presenter/HWPanModalPresenterProtocol.h; sourceTree = ""; }; - DE7E60B5B6A0850596F935D95CAFE167 /* MJRefreshAutoFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshAutoFooter.h; path = MJRefresh/Base/MJRefreshAutoFooter.h; sourceTree = ""; }; - DEDA7D852A16AEB2E4133F8138BB40A3 /* NSObject+MJClass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MJClass.h"; path = "MJExtension/NSObject+MJClass.h"; sourceTree = ""; }; - DEEA81C89F22AF300ABFA4E5550B7B06 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = ""; }; - DEFCE7D8BFD813860A380F7F5B5EB401 /* LKS_AttrModificationPatchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_AttrModificationPatchHandler.m; path = Src/Main/Server/Connection/RequestHandler/LKS_AttrModificationPatchHandler.m; sourceTree = ""; }; - DF017A36F518C19E10298190FD8A84C4 /* LKS_RequestHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_RequestHandler.m; path = Src/Main/Server/Connection/LKS_RequestHandler.m; sourceTree = ""; }; - DF80C06856CA889ADB8807594055C7DF /* JXCategoryView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.release.xcconfig; sourceTree = ""; }; - DF85367F662269F3652AFC693AA2B00F /* LookinAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAppInfo.m; path = Src/Main/Shared/LookinAppInfo.m; sourceTree = ""; }; - DFE214BE294126C1B4FFE49DDADA7AEE /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = ""; }; - E00B4B67B95B1D4B1001EF45F23EF0C4 /* LYEmptyView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LYEmptyView.release.xcconfig; sourceTree = ""; }; - E01ADBA325921AF74B0FBD58F7BB5032 /* JXCategoryTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCellModel.h; path = Sources/Title/JXCategoryTitleCellModel.h; sourceTree = ""; }; + DE631CFB2FD87B391DC31617A0F8F7E6 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = ""; }; + DE7322836C2297450D37149C5382810B /* JXCategoryNumberView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryNumberView.m; path = Sources/Number/JXCategoryNumberView.m; sourceTree = ""; }; E03F152E95B6924D2486511337D24503 /* JXPagingView-JXPagerView */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "JXPagingView-JXPagerView"; path = JXPagerView.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - E0742EB318197474CB672E4520705ACC /* JXPagerListContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXPagerListContainerView.m; path = Sources/JXPagerView/JXPagerListContainerView.m; sourceTree = ""; }; - E0DD4370E4AF2D75716AE1B5D67EABEB /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = ""; }; + E094817340E2A9561E8E803258C20F4A /* JXPagingView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.release.xcconfig; sourceTree = ""; }; + E0E514D6B12F84E6EE4FEDF1E175E984 /* LookinAppInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAppInfo.h; path = Src/Main/Shared/LookinAppInfo.h; sourceTree = ""; }; + E101C495162815FB13CF5C0C63EF9A60 /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; + E12645F1AD3E236897418492D724DBCB /* UIView+HW_Frame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+HW_Frame.h"; path = "Sources/Category/UIView+HW_Frame.h"; sourceTree = ""; }; + E1956172D6145D28B4A986C61A84B881 /* FLAnimatedImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FLAnimatedImage-dummy.m"; sourceTree = ""; }; E214C17CF404D45BDF92DD6C18D371FA /* Pods-keyBoard-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-keyBoard-acknowledgements.markdown"; sourceTree = ""; }; - E23048DA7D038B179D12173BA0F800DB /* LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinServer.h; path = Src/Main/Server/LookinServer.h; sourceTree = ""; }; - E312EC8FB74A492C6D5A647700644AC4 /* NSSet+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+Lookin.m"; path = "Src/Main/Shared/Category/NSSet+Lookin.m"; sourceTree = ""; }; - E368F7BC820788B717CC047A744E4326 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = ""; }; - E386525610DF7AB4E84ED0202969AB8E /* FLAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImage.h; path = FLAnimatedImage/include/FLAnimatedImage.h; sourceTree = ""; }; - E38A10934CB29F9B2C75A0785209FA84 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; - E45A9679E38D826E316675D8F368F69C /* MJRefreshBackNormalFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackNormalFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h; sourceTree = ""; }; - E4718E4C19C181FBAEBD080580F8C026 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = ""; }; + E26F8E152009690B0E2BDD1044C99CE6 /* JXCategoryDotCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotCell.m; path = Sources/Dot/JXCategoryDotCell.m; sourceTree = ""; }; + E2D7300C7CE7808A8442A4388EB1F39F /* LookinServerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinServerDefines.h; path = Src/Main/Server/Others/LookinServerDefines.h; sourceTree = ""; }; + E363F5B362D7EF73BAACDE270E7CE4F3 /* mz_zip.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_zip.h; path = SSZipArchive/minizip/mz_zip.h; sourceTree = ""; }; + E37FC582593F0E289D989D5E801A71E0 /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-JXPagerView-JXPagingView-Info.plist"; sourceTree = ""; }; + E3DA8682C6116031E80C1246AFE1DAAB /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; + E46E5E8438AA5B00E625B784B187B8A3 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = ""; }; + E48635E876D9CEF7C21BFE6D84DD3C63 /* MJRefreshStateTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateTrailer.h; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h; sourceTree = ""; }; E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJRefresh; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E4A5839D54BEE8A98756D5288A3E5050 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = ""; }; - E4BFFACAA945CC17167910BF3C319571 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = ""; }; - E4F1989DBFF7A3D94A0CF758DF35B3F6 /* HWPresentingVCAnimatedTransitioning.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPresentingVCAnimatedTransitioning.h; path = Sources/Animator/HWPresentingVCAnimatedTransitioning.h; sourceTree = ""; }; - E6CAC4483459A4704E779D629644670B /* HWPanModalContentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalContentView.h; path = Sources/View/PanModal/HWPanModalContentView.h; sourceTree = ""; }; - E6FEAED2BC2A577A78A12FA14FC3BB6B /* LookinAttributesGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributesGroup.h; path = Src/Main/Shared/LookinAttributesGroup.h; sourceTree = ""; }; - E7485AA213719656370219B55A0AAE3C /* MJRefreshBackStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackStateFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m; sourceTree = ""; }; - E75295D3FB5952A7B3A8B497D502A68D /* ResourceBundle-MJExtension-MJExtension-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJExtension-MJExtension-Info.plist"; sourceTree = ""; }; - E81450568229FA708143E74A7A580F89 /* JXCategoryCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryCollectionView.m; path = Sources/Common/JXCategoryCollectionView.m; sourceTree = ""; }; - E847BE3D7FA245C62A989A8A4F90542A /* UITableView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+LookinServer.h"; path = "Src/Main/Server/Category/UITableView+LookinServer.h"; sourceTree = ""; }; - E8B2553B72F322F7DC0ED38BB760DDC6 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = ""; }; - E8C71212CAB0DCBF4059538A93053A4A /* UIViewController+PanModalDefault.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PanModalDefault.h"; path = "Sources/Presentable/UIViewController+PanModalDefault.h"; sourceTree = ""; }; - E948F26A10F663204E24603E8527A7F5 /* JXCategoryListContainerRTLCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryListContainerRTLCell.h; path = Sources/Common/JXCategoryListContainerRTLCell.h; sourceTree = ""; }; - E9FA8ED817E86A0F4415B8E73B62DCF8 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = ""; }; - EA3E73CFAE53223D9EC3DE4B0794DB06 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - EA759F283932CC196A3C378E0037B993 /* UIColor+JXAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+JXAdd.m"; path = "Sources/Common/UIColor+JXAdd.m"; sourceTree = ""; }; - EB461C49F04DBE8D8B709BDAA4911ADC /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - EB54379A72A5DCC64A2C9D42F05AE928 /* LookinServerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinServerDefines.h; path = Src/Main/Server/Others/LookinServerDefines.h; sourceTree = ""; }; - EBEEA0239556FEF194877FD307A4ADD6 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; - EC37DBDA721D0EFF5AB018086BE1B195 /* HWPanModal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModal.h; path = Sources/HWPanModal.h; sourceTree = ""; }; - EC4CFDD75B85C12B1C1393BEA03A165C /* MBProgressHUD.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MBProgressHUD.debug.xcconfig; sourceTree = ""; }; - ECA7ED760D61427E9195A2805DB71798 /* UIView+HW_Frame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+HW_Frame.m"; path = "Sources/Category/UIView+HW_Frame.m"; sourceTree = ""; }; - ED2A7F3394578B0F6BEA7FBFFE1E2291 /* MJRefreshBackStateFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackStateFooter.h; path = MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h; sourceTree = ""; }; - ED332DDCE634104C42A2AF8F698EDFB2 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - ED87146FC94850F3891F867B1931F652 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - EDA0AA2D50C091E5400CDFDEC4B5B802 /* LKS_MultiplatformAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_MultiplatformAdapter.h; path = Src/Main/Server/Others/LKS_MultiplatformAdapter.h; sourceTree = ""; }; - EDA5337EF8951852F4AA839734BF6786 /* HWPanModalAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalAnimator.m; path = Sources/Animator/HWPanModalAnimator.m; sourceTree = ""; }; - EDCA67FC2B94130DF2B6CE9E65BC9944 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - EE827BC4171898B142EBDE3C763AFC7F /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = ""; }; - EE9E5D3590E1EC14CD269A8B340CE3F0 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = ""; }; + E4C8991D50301177B6E97F401F7F9EDF /* JXPagingView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPagingView.debug.xcconfig; sourceTree = ""; }; + E4D03194518CA82B12270473AEAB7B83 /* MBProgressHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD-umbrella.h"; sourceTree = ""; }; + E500FBB10C2688926FE711E6F0799D44 /* JXCategoryView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-umbrella.h"; sourceTree = ""; }; + E5178A3B62E64AF45244812595E62507 /* LSTTimer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LSTTimer-prefix.pch"; sourceTree = ""; }; + E532AF84D90C3C764514E4997CB67BFC /* HWShoppingCartPresentingAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWShoppingCartPresentingAnimation.m; path = Sources/Animator/PresentingVCAnimation/HWShoppingCartPresentingAnimation.m; sourceTree = ""; }; + E5868297D4E2CFA69A3CFFA859113631 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = ""; }; + E654B5C45A42A75AB020868F1B5828B3 /* LookinConnectionResponseAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinConnectionResponseAttachment.h; path = Src/Main/Shared/LookinConnectionResponseAttachment.h; sourceTree = ""; }; + E65A3C5316B5D16D9BA5FBB6E692FDDD /* DZNEmptyDataSet-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DZNEmptyDataSet-umbrella.h"; sourceTree = ""; }; + E6C476448137596396FEC701467DA4A0 /* HWPanModalPresenterProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresenterProtocol.h; path = Sources/Presenter/HWPanModalPresenterProtocol.h; sourceTree = ""; }; + E6D8838EF1CB5604BA59341E2D21DF16 /* LKS_ConnectionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_ConnectionManager.h; path = Src/Main/Server/Connection/LKS_ConnectionManager.h; sourceTree = ""; }; + E73A2BECC319E466CBB42196B328E76A /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + E7430A9EA4CB87590757C1508062129E /* WKWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+AFNetworking.m"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.m"; sourceTree = ""; }; + E78EE4C27B4687DC4F5C0AE7F8FFCE6D /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = ""; }; + E7A99A2859857EEF42DB510B44CD7D4F /* LookinCustomDisplayItemInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCustomDisplayItemInfo.h; path = Src/Main/Shared/LookinCustomDisplayItemInfo.h; sourceTree = ""; }; + E7D7CDC1DC8DD6D7A6DD095CADEBE100 /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; + E850A898202F08F5D8832C1A476BFC61 /* JXCategoryIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorView.m; path = Sources/Indicator/JXCategoryIndicatorView.m; sourceTree = ""; }; + E8FBA7603C63946EEF45272B16F6885D /* NSObject+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LookinServer.m"; path = "Src/Main/Server/Category/NSObject+LookinServer.m"; sourceTree = ""; }; + E96F17B7717518537E81A1BBEB4DBC11 /* NSSet+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+Lookin.h"; path = "Src/Main/Shared/Category/NSSet+Lookin.h"; sourceTree = ""; }; + E9AB4D3B4239306FF89D7B36B4C586DE /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; + E9BCF126899DF058C602D585C70A9150 /* UIView+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+LookinServer.m"; path = "Src/Main/Server/Category/UIView+LookinServer.m"; sourceTree = ""; }; + E9D3CABC7E918DC0ACB269749E4C3EBB /* LSTPopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LSTPopView.m; path = LSTPopView/Classes/Code/LSTPopView.m; sourceTree = ""; }; + E9E4243141E8A38958C1F2A40D84008E /* JXPagerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXPagerView.h; path = Sources/JXPagerView/JXPagerView.h; sourceTree = ""; }; + EAD38F0B5918EB49AC9801402FB7B43B /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefresh/Custom/Header/MJRefreshGifHeader.h; sourceTree = ""; }; + EB1DFDBA1EBE0E384ED4AA87F1246C18 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = WebImage/PrivacyInfo.xcprivacy; sourceTree = ""; }; + EB794DFD026CA33CB6632909B75BE26E /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = ""; }; + EB8E6D6116AB58EBD0BC1FBAD7D4794F /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + EBA8670C2889167BCD72EA7B571868EC /* Bugly.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Bugly.framework; sourceTree = ""; }; + EBD0F9A21DB6A84EAE5AFA4F4A502129 /* UICollectionViewLayout+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UICollectionViewLayout+MJRefresh.h"; path = "MJRefresh/UICollectionViewLayout+MJRefresh.h"; sourceTree = ""; }; + EC7B5C20256DD7D6DDEB7DC77A23FDE4 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + ECE929CFE87E3E6402751CE58A6B7439 /* JXCategoryTitleVerticalZoomCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleVerticalZoomCell.h; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.h; sourceTree = ""; }; + ED1158F9B24BF9550BB13ECF0F47E19C /* NSObject+Lookin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Lookin.h"; path = "Src/Main/Shared/Category/NSObject+Lookin.h"; sourceTree = ""; }; + ED5F3E83C25ED0811869DD8EA163FA78 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; + ED84FBB6F72BA4917706394DF82CF989 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; sourceTree = ""; }; + EDDAF7FCF8E6F2DE305B8D213CC6135C /* JXCategoryListContainerRTLCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryListContainerRTLCell.m; path = Sources/Common/JXCategoryListContainerRTLCell.m; sourceTree = ""; }; + EE02826B807E0D7464EF9DB1CA82C18A /* NSArray+Lookin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+Lookin.m"; path = "Src/Main/Shared/Category/NSArray+Lookin.m"; sourceTree = ""; }; + EE2EF3F6F5D20D166802D58E874E4726 /* JXCategoryIndicatorRainbowLineView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorRainbowLineView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorRainbowLineView.h; sourceTree = ""; }; + EE90FB14799C3DB2688F525047622CE9 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = ""; }; + EE970DD8AC37EB86349A9696105DA965 /* JXCategoryViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryViewDefines.h; path = Sources/Common/JXCategoryViewDefines.h; sourceTree = ""; }; + EEADEEAE0BFAF0DC677B571C63E1C606 /* JXCategoryTitleCellModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryTitleCellModel.h; path = Sources/Title/JXCategoryTitleCellModel.h; sourceTree = ""; }; EEB5224BF1CABA409B3D3760EDDAEA0A /* LYEmptyView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = LYEmptyView; path = LYEmptyView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EF1815C1F114106321929B2F631067E5 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = ""; }; - EF2876A2D62001FE741FE92492A10CFF /* JXCategoryIndicatorImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JXCategoryIndicatorImageView.h; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorImageView.h; sourceTree = ""; }; - EF62C88D7041DEBD26117AF61789D8AB /* HWPanModalPresentationUpdateProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPresentationUpdateProtocol.h; path = Sources/Presentable/HWPanModalPresentationUpdateProtocol.h; sourceTree = ""; }; - EF7183977EF6286C16A64DBC3D765320 /* HWPanModalHeight.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalHeight.h; path = Sources/Presentable/HWPanModalHeight.h; sourceTree = ""; }; - EFC3A24D1CE615DA957AE8C5AC47E5D7 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = ""; }; - F00B3F2B17BB2816232EB507B7AC9018 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = ""; }; - F09D5DAEE3CD3FFE1B213DFEF893E818 /* JXCategoryView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-prefix.pch"; sourceTree = ""; }; - F139F3BFF4ABD0678E7947E118F47774 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; - F157AC2A50D3773392D42322F67E0EB0 /* LSTPopView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LSTPopView-Info.plist"; sourceTree = ""; }; - F1CF9E4569F5B94286E175AF9D675C11 /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = ""; }; - F1FB9919B7B8171A6A8679BDDA407F68 /* LKS_HierarchyDisplayItemsMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_HierarchyDisplayItemsMaker.h; path = Src/Main/Server/Others/LKS_HierarchyDisplayItemsMaker.h; sourceTree = ""; }; - F287F335FB60871C584FAC1904FF4181 /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = ""; }; - F32705CBE56ACF430653A1C459F5351E /* LookinAttrIdentifiers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttrIdentifiers.h; path = Src/Main/Shared/LookinAttrIdentifiers.h; sourceTree = ""; }; - F32DF0242A37C60B9E8BEDC175125BB2 /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; - F363F53534ED7FE5A4BB0A1E1863D5E7 /* LKS_CustomAttrSetterManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrSetterManager.m; path = Src/Main/Server/Others/LKS_CustomAttrSetterManager.m; sourceTree = ""; }; - F3BAE7C9BD506017B4C0D7BBB9100900 /* JXCategoryTitleVerticalZoomCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryTitleVerticalZoomCell.m; path = Sources/VerticalZoomTitle/JXCategoryTitleVerticalZoomCell.m; sourceTree = ""; }; - F4F901625B3879AD34FA2A0373208F59 /* LookinHierarchyInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinHierarchyInfo.m; path = Src/Main/Shared/LookinHierarchyInfo.m; sourceTree = ""; }; - F5B865CFCA1FF1600CB766B9BC34B8D9 /* LookinCustomAttrModification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCustomAttrModification.h; path = Src/Main/Shared/LookinCustomAttrModification.h; sourceTree = ""; }; - F5D8EBF4698D8B331794EA6F9BF47665 /* HWVisualEffectView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWVisualEffectView.m; path = Sources/View/HWVisualEffectView.m; sourceTree = ""; }; - F5EB73BE761C595601603CE39EC8D850 /* HWPageSheetPresentingAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPageSheetPresentingAnimation.m; path = Sources/Animator/PresentingVCAnimation/HWPageSheetPresentingAnimation.m; sourceTree = ""; }; - F64D04ACE9EB0341E57129D44479C065 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefresh/MJRefresh.h; sourceTree = ""; }; - F68616E55705601CBE5D9437AD83B340 /* JXCategoryView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXCategoryView.debug.xcconfig; sourceTree = ""; }; - F6CDCEC9BF52B36734600241EB9CC345 /* UIViewController+Presentation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+Presentation.m"; path = "Sources/Presentable/UIViewController+Presentation.m"; sourceTree = ""; }; - F762DC35806D05FE8346CE64A0357D9A /* JXPagingView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPagingView-Info.plist"; sourceTree = ""; }; - F764EB4004D4A21398D072493BD19D56 /* HWPanModalPanGestureDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWPanModalPanGestureDelegate.h; path = Sources/Presentable/HWPanModalPanGestureDelegate.h; sourceTree = ""; }; - F8CCC7FB49429A8093BC8191C6474D58 /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = ""; }; - F8CEEFBE4317D04F4FD181E44C90A119 /* MJRefreshStateHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshStateHeader.h; path = MJRefresh/Custom/Header/MJRefreshStateHeader.h; sourceTree = ""; }; - F947DB2E34F4112ED83356B8AA944880 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = ""; }; - F9AA00EC509DE2C0E25E749F629EF1F6 /* UIViewController+LayoutHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+LayoutHelper.m"; path = "Sources/Presentable/UIViewController+LayoutHelper.m"; sourceTree = ""; }; - F9F30602CBEA307F110682B47DBF3B59 /* JXCategoryIndicatorCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorCell.m; path = Sources/Indicator/JXCategoryIndicatorCell.m; sourceTree = ""; }; - F9FBE6B4C01D1445DBFC466AEA64E5D8 /* JXCategoryIndicatorBallView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBallView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBallView.m; sourceTree = ""; }; - FA5C6E28985540EE03804DDC4277D459 /* LYEmptyViewHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyViewHeader.h; path = LYEmptyView/LYEmptyViewHeader.h; sourceTree = ""; }; - FAA3871C50E5746944D1C3FA3E4736CE /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = ""; }; + EEF155F921CCF995504E20C130EDCF43 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = ""; }; + EF8000FD1EA99F68D7E5291991D79B0E /* LKS_CustomDisplayItemsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomDisplayItemsMaker.m; path = Src/Main/Server/Others/LKS_CustomDisplayItemsMaker.m; sourceTree = ""; }; + EFACE3751373A384D5D01B02DD24C448 /* mz_strm.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm.c; path = SSZipArchive/minizip/mz_strm.c; sourceTree = ""; }; + EFE75BEF49F2BD35D06D9124F926221B /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = ""; }; + F07066B7EBC44F24F83DB2951BA2D805 /* MJPropertyKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJPropertyKey.h; path = MJExtension/MJPropertyKey.h; sourceTree = ""; }; + F07A3B81902A2108AA8BB142C97638F2 /* LookinAppInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinAppInfo.m; path = Src/Main/Shared/LookinAppInfo.m; sourceTree = ""; }; + F1CF780FAB50332DD27BCA8132E35917 /* WKWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WKWebView+AFNetworking.h"; path = "UIKit+AFNetworking/WKWebView+AFNetworking.h"; sourceTree = ""; }; + F1FAB9A951323777D4A48D49725B9802 /* HWPanModalPresentationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HWPanModalPresentationController.m; path = Sources/Controller/HWPanModalPresentationController.m; sourceTree = ""; }; + F267753B35B7DC58AA017AA0CE62A18B /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + F27D51BD8717D8107D6F470FC85BEE9C /* LKS_CustomAttrGroupsMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LKS_CustomAttrGroupsMaker.m; path = Src/Main/Server/Others/LKS_CustomAttrGroupsMaker.m; sourceTree = ""; }; + F2A4BB8032DDBC79455789713856A408 /* mz_crypt.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_crypt.c; path = SSZipArchive/minizip/mz_crypt.c; sourceTree = ""; }; + F33A1D4A14EEE9A9B25E9855762CBF72 /* FLAnimatedImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.release.xcconfig; sourceTree = ""; }; + F430162DE1827C9C391CBD99809BFD9A /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = ""; }; + F4362531C46D376449500E4E4ABD46B8 /* LookinAttrType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttrType.h; path = Src/Main/Shared/LookinAttrType.h; sourceTree = ""; }; + F515F757FEB677BF07AC5EA12F7FEEBF /* mz_strm_os.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mz_strm_os.h; path = SSZipArchive/minizip/mz_strm_os.h; sourceTree = ""; }; + F5F8E422C2A9D24C584E61A6CEF779E6 /* MJRefreshNormalTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.m; sourceTree = ""; }; + F6809A3B1E06063A42F8BE812CB61608 /* LookinAttributeModification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinAttributeModification.h; path = Src/Main/Shared/LookinAttributeModification.h; sourceTree = ""; }; + F68DA306242C844983240C5B668F1835 /* NSString+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+MJExtension.h"; path = "MJExtension/NSString+MJExtension.h"; sourceTree = ""; }; + F6FB08AC59AE2DE3A3B140EA1EDF73E1 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = ""; }; + F7647133633ACCB1B39825B369BDFE52 /* JXCategoryView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXCategoryView-prefix.pch"; sourceTree = ""; }; + F7A92B30F0EF258777457F8494801128 /* LookinServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LookinServer-dummy.m"; sourceTree = ""; }; + F90DCD218D9CE7B66410718F903FD42F /* HWBackgroundConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWBackgroundConfig.h; path = Sources/View/HWBackgroundConfig.h; sourceTree = ""; }; + F9217DB48F424BA008216EE318F042B0 /* mz_strm_buf.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mz_strm_buf.c; path = SSZipArchive/minizip/mz_strm_buf.c; sourceTree = ""; }; + F94B4F3D4DD90DFA2F85D7A1E5A7906E /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + F9ACCB7980F41D5919C5B1C6AE7A518B /* JXCategoryDotView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryDotView.m; path = Sources/Dot/JXCategoryDotView.m; sourceTree = ""; }; + FA5BD46C62EFFC66016A206743C9F890 /* DZNEmptyDataSet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DZNEmptyDataSet.debug.xcconfig; sourceTree = ""; }; + FA7033B5A3184560961D6D5840C3DF6E /* LYEmptyView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LYEmptyView.h; path = LYEmptyView/LYEmptyView.h; sourceTree = ""; }; FAA5F2D71B90788C908800A94534AA92 /* FLAnimatedImage */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FLAnimatedImage; path = FLAnimatedImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FB1FCAC52ADC49B2B3A81FFCCD3D56EE /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = ""; }; - FB614FC70886C761E2BA7E9C7E7F2D88 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; - FB718B97DF8D94DCF736C973F8184652 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = ""; }; - FB84DF0F5016EBAF04FE5FE9F22081C0 /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = ""; }; - FC8583F4233091326F271A4C13185F5B /* HWBackgroundConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWBackgroundConfig.h; path = Sources/View/HWBackgroundConfig.h; sourceTree = ""; }; - FCA4EBF34C88159600AC127D3548346D /* UITextView+LookinServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextView+LookinServer.h"; path = "Src/Main/Server/Category/UITextView+LookinServer.h"; sourceTree = ""; }; - FCBCC9D408AF4A848CBB9CEE3327E256 /* HWShoppingCartPresentingAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWShoppingCartPresentingAnimation.h; path = Sources/Animator/PresentingVCAnimation/HWShoppingCartPresentingAnimation.h; sourceTree = ""; }; - FCBD8DFA94436F5E62F1AA0F1AD2F2FA /* LookinStaticAsyncUpdateTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = LookinStaticAsyncUpdateTask.m; path = Src/Main/Shared/LookinStaticAsyncUpdateTask.m; sourceTree = ""; }; - FD3C0DF69EC6CFA1DD8299F62B1A84FB /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = ""; }; - FD61DA71A7253ED59D65D424C86E2C50 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; - FD7C0DEE68BC5E8256170F72FCC61847 /* JXCategoryIndicatorDotLineView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorDotLineView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorDotLineView.m; sourceTree = ""; }; - FD937703BB1091324CC7A54FB95A5217 /* MJRefreshBackGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshBackGifFooter.m; path = MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.m; sourceTree = ""; }; - FDCCFFDED68135F2816CA2167E15CF64 /* LookinHierarchyFile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinHierarchyFile.h; path = Src/Main/Shared/LookinHierarchyFile.h; sourceTree = ""; }; - FEA159570B75D1C95DC0E0B5836BACFF /* LKS_HierarchyDetailsHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LKS_HierarchyDetailsHandler.h; path = Src/Main/Server/Connection/RequestHandler/LKS_HierarchyDetailsHandler.h; sourceTree = ""; }; - FED4C87CAD14B9336A225C943B75263C /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; - FED91C88820F2942B3A007C5E5D17ACB /* UIColor+LookinServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+LookinServer.m"; path = "Src/Main/Server/Category/UIColor+LookinServer.m"; sourceTree = ""; }; - FEE19DBCD45615CC389DD7223D3C447A /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = ""; }; + FB5CA715BCC731372742E4E5BA7AB20A /* MJRefreshTrailer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshTrailer.h; path = MJRefresh/Base/MJRefreshTrailer.h; sourceTree = ""; }; + FB793CF2D68D5ADBDD8489F5CBC07600 /* HWVisualEffectView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HWVisualEffectView.h; path = Sources/View/HWVisualEffectView.h; sourceTree = ""; }; + FB7FC8DB91393E935926A1585D578E99 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; + FBCDAC22C25AFAD18A45C5ACECEB0DAB /* JXCategoryIndicatorBackgroundView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JXCategoryIndicatorBackgroundView.m; path = Sources/Indicator/IndicatorViews/JXCategoryIndicatorBackgroundView.m; sourceTree = ""; }; + FCF7BB2D7D7F4886FAE37155A0217F59 /* UIViewController+PanModalDefault.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PanModalDefault.m"; path = "Sources/Presentable/UIViewController+PanModalDefault.m"; sourceTree = ""; }; + FD692A87EFF35082DE5AA17822AF4CF0 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = ""; }; + FDB62804EC1DE74D07B723CF6E1C0164 /* LSTTimer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LSTTimer.release.xcconfig; sourceTree = ""; }; + FDE2BBBF96517A14CE58D87311284F9F /* MJExtension-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "MJExtension-Info.plist"; sourceTree = ""; }; + FE5A891567A87544F380E7B7E4EC276D /* MJRefreshBackFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshBackFooter.h; path = MJRefresh/Base/MJRefreshBackFooter.h; sourceTree = ""; }; + FE9CBD37D8F9BF7DECEA75B97A1B5072 /* LookinCustomAttrModification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = LookinCustomAttrModification.h; path = Src/Main/Shared/LookinCustomAttrModification.h; sourceTree = ""; }; + FEB4C233F83FD0B96F8490BFD7485587 /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = ""; }; + FEF0A8FDB47640450B4AD235DDCCFFE1 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 04785C72D7E967FCB78D8F7E7635973B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0DCF6770445D0657900721EC9917ECFB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 11690A588400BBB164423D5F86311C35 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1648,15 +1720,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2A4C89A05153A8C37E3B9ACF170A9EB8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5EFCAC311A0285F51E8B1B0F7416D7D8 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D2D1D550E12F4C0C9C30D5A3CD01C4E /* Frameworks */ = { + 19F2BFA39A5D52D15FD34BA65F188E7A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1688,11 +1752,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 58A39759A11D8C551E18D1323674BF34 /* Frameworks */ = { + 561C8EAD1C5098CB3E8BDC89625C785F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9D07985CF518269347F3FD5FE6D22609 /* Foundation.framework in Frameworks */, + 30AAA9DEB7BB5E2B7F578499D01B0AA4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1704,13 +1768,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6B8E82384925B650051F0C1846383E41 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 6E39FC1043D864A0759387AEED07D7AC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1720,6 +1777,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 7B7CCC4D3C186BB73A6D1F0A0DCB559D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C652DF3EC0F0F39B29287E72864FC11 /* Foundation.framework in Frameworks */, + 835C687083E3D51DE87C2F2C4C681B1C /* Security.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7CFE8F67F3A1361064414896BC73914A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1753,6 +1819,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B7346A3CC89AD552EFAF777E372B5828 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C7A56BD3AD8680BEA8D5673E6A65366E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CA6527CF424B1AA12AF1D0BB36EBAF73 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1782,6 +1862,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E64DC0C50D80A6D17C1B06E97677E308 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; E672724427269716049B769344D7C3DC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1791,7 +1878,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F4019BF639D68EFAB596EA1BD86C37CB /* Frameworks */ = { + EC62B765BB94A012D3D95B80650B276B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3A20FC446D75A777E76DAF7E416A4569 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FB5978DF3756D04CCB9AA18132AD1686 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1801,396 +1896,413 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 070A9E270BA37B1A5AAC97680E006F46 /* LSTPopView */ = { + 09FF257DF3ECCC8C9A7596A71562B1B3 /* FLAnimatedImage */ = { isa = PBXGroup; children = ( - EC737F9C95A0D5999B811C9A1D937DBC /* Code */, - 9A6094CFD16104AD70583A90D874C249 /* Support Files */, + D924634BFAF263689076CBD968A17D1B /* FLAnimatedImage.h */, + 0079155AD5A15B6346CE4DD7B4C5AF05 /* FLAnimatedImage.m */, + C746AE47069EC0FC26033C8BE9327094 /* FLAnimatedImageView.h */, + 829B68F73797A78FEF3F03A753C4A6A0 /* FLAnimatedImageView.m */, + F2DCB2CC890C708FAE05DB4A3351B43C /* Support Files */, ); - name = LSTPopView; - path = LSTPopView; + name = FLAnimatedImage; + path = FLAnimatedImage; sourceTree = ""; }; - 0B3501DF96788E261B37AA47988480FF /* Resources */ = { + 0C00A999C0B861EE8FF62873211713FF /* Pager */ = { isa = PBXGroup; children = ( - A0497973DD4190C4C37CC950C86C6F2B /* PrivacyInfo.xcprivacy */, + 7F6C86558A8FA32C2A096F1E916B7FDE /* JXPagerListContainerView.h */, + 942B5587A6DFF73BD842C8ADA3B71A9F /* JXPagerListContainerView.m */, + 4E9F1FA14918710AF561794E295889C2 /* JXPagerListRefreshView.h */, + 0A82548800D862412971DCA17627ED6F /* JXPagerListRefreshView.m */, + 5F1265E3FE9A084FF2AA73E77669BE83 /* JXPagerMainTableView.h */, + D5DC48829B4C9491CC086CFD600A48A6 /* JXPagerMainTableView.m */, + 280E72A6D896FA41C22E1332D51BFAC4 /* JXPagerSmoothView.h */, + 54B953FEBF29D86AD70331F6A6DC74C8 /* JXPagerSmoothView.m */, + E9E4243141E8A38958C1F2A40D84008E /* JXPagerView.h */, + A1940CBA5061AD3C2F7D08859C0943C1 /* JXPagerView.m */, + FEC26DDFA00CC6DEB0DE8F51E9656EB5 /* Resources */, ); - name = Resources; + name = Pager; sourceTree = ""; }; - 102054A1E3292F59C346E38466BC61C8 /* Resources */ = { + 0D3C13436D538799331035C953E765D3 /* LYEmptyView */ = { isa = PBXGroup; children = ( - 0FFF1AB10AC30C72DB3B2F106B23E5B3 /* PrivacyInfo.xcprivacy */, + 2516575DAD30E19BE433515541FACCFA /* LYEmptyBaseView.h */, + 867B35D37248D0009B38597F3C836DCE /* LYEmptyBaseView.m */, + FA7033B5A3184560961D6D5840C3DF6E /* LYEmptyView.h */, + B7C6325AEC2E86B0B251C3EB931247DD /* LYEmptyView.m */, + AFA6581234C27D63A104875F08AF8AD0 /* LYEmptyViewHeader.h */, + 705E1CDF6DBE2DA00E53E3F32DFE69FE /* UIView+Empty.h */, + D3931B77C846928C35AD1FF0896988E4 /* UIView+Empty.m */, + 737E52BDAB744FC876BD52E7BB7110AF /* UIView+LYExtension.h */, + 4933034880CCA5F38E9C996B03E67F7F /* UIView+LYExtension.m */, + D48F28E7C3254F93F3FAB5AC29739413 /* Support Files */, ); - name = Resources; + name = LYEmptyView; + path = LYEmptyView; sourceTree = ""; }; - 184D0B412C8826DE321973718A83EAD0 /* Support Files */ = { + 0D8A6ECCB928C1F3DFC103299EF5CC95 /* MBProgressHUD */ = { isa = PBXGroup; children = ( - 91BC18AA2869958B15FBD2C2367C5DFC /* AFNetworking.modulemap */, - 18106F0763EC023048DB3F77457B9596 /* AFNetworking-dummy.m */, - 541552D5AA99C6DF3406BD050E1467DB /* AFNetworking-Info.plist */, - EDCA67FC2B94130DF2B6CE9E65BC9944 /* AFNetworking-prefix.pch */, - 83E8510A179E756198B5FC915A27736E /* AFNetworking-umbrella.h */, - 88D479C435BAEE51B8F3BBF87F8D3CC9 /* AFNetworking.debug.xcconfig */, - 57B2E23309380B0E15F50C277205AC0D /* AFNetworking.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/AFNetworking"; - sourceTree = ""; - }; - 1C6C79318C220E5B8848BEC84F0BF1D4 /* Support Files */ = { - isa = PBXGroup; - children = ( - 85C4F1C66A75633558DC8F8AE824BC70 /* LYEmptyView.modulemap */, - 2F19C07EBC4D3E8EF1AD6C474E7F24FE /* LYEmptyView-dummy.m */, - 7DCA3ADE9B99025CE2B42367695E1E68 /* LYEmptyView-Info.plist */, - 517EACA3BDCA2E1CB5B954656D4B9F02 /* LYEmptyView-prefix.pch */, - C00601FB0A8CFBE203150BAEC58E95FC /* LYEmptyView-umbrella.h */, - 5048CCD1406058B50480C383463B3C39 /* LYEmptyView.debug.xcconfig */, - E00B4B67B95B1D4B1001EF45F23EF0C4 /* LYEmptyView.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/LYEmptyView"; - sourceTree = ""; - }; - 2397706FC09C7D8BAD347D387C455173 /* MBProgressHUD */ = { - isa = PBXGroup; - children = ( - 5DC759BB8D0141E0F064F3BCA7197315 /* MBProgressHUD.h */, - 347DA9A1002297848F6BF9D97BB1F302 /* MBProgressHUD.m */, - 4E1FCFC15AFF6ACA076B1D8B295CDE1D /* Support Files */, + 0C40F591873B26F65D38A11F4FB4D49E /* MBProgressHUD.h */, + D1A8D246A17AC99C083AD6B315A4F43E /* MBProgressHUD.m */, + 3820C07F4BDD09E693131803ED9AA626 /* Support Files */, ); name = MBProgressHUD; path = MBProgressHUD; sourceTree = ""; }; - 23E095E4ABDFCF286D5B6E1FB3668170 /* MJRefresh */ = { + 0EFDA07B27756D8EB3F1196F340AC12D /* Resources */ = { isa = PBXGroup; children = ( - F64D04ACE9EB0341E57129D44479C065 /* MJRefresh.h */, - DE7E60B5B6A0850596F935D95CAFE167 /* MJRefreshAutoFooter.h */, - 14CF605A6E1A867AA3131733CCE53D99 /* MJRefreshAutoFooter.m */, - 7CE9A594E8A127B7273A7D82E1882497 /* MJRefreshAutoGifFooter.h */, - BC7F3F9323470C634DC0D469E7C13B10 /* MJRefreshAutoGifFooter.m */, - 77973C87CC9649629EBEE249DCC355F5 /* MJRefreshAutoNormalFooter.h */, - 6021531912761F1BDBFE14A61784B26D /* MJRefreshAutoNormalFooter.m */, - 8C065D632F2F749CBD48B178A68B1631 /* MJRefreshAutoStateFooter.h */, - 8CF1445CC744306AE4ECBA85DFD6DB27 /* MJRefreshAutoStateFooter.m */, - F32DF0242A37C60B9E8BEDC175125BB2 /* MJRefreshBackFooter.h */, - A7EA79586CBF531A23E8B00CFA7B82C7 /* MJRefreshBackFooter.m */, - BBA58A99F7E528A8D41BD96706230160 /* MJRefreshBackGifFooter.h */, - FD937703BB1091324CC7A54FB95A5217 /* MJRefreshBackGifFooter.m */, - E45A9679E38D826E316675D8F368F69C /* MJRefreshBackNormalFooter.h */, - A64A22A853C13E4375B73E01D1D90CB1 /* MJRefreshBackNormalFooter.m */, - ED2A7F3394578B0F6BEA7FBFFE1E2291 /* MJRefreshBackStateFooter.h */, - E7485AA213719656370219B55A0AAE3C /* MJRefreshBackStateFooter.m */, - 5E9C6ED309FB0F6481FF6639AA9C417B /* MJRefreshComponent.h */, - 6C9E32D40F89FB7470530B4F8AAB6162 /* MJRefreshComponent.m */, - 2B4792E0E693278C27DB918B70E58272 /* MJRefreshConfig.h */, - 3C71B9877A51B54673C7FFC0C3276863 /* MJRefreshConfig.m */, - 63A3BD4651AA1DDCB216ABB7FBC3A69E /* MJRefreshConst.h */, - 8638AEC16F5A3F7D05EF0F7C39544261 /* MJRefreshConst.m */, - 800ECE845D6F36BE51A284DFCAE27307 /* MJRefreshFooter.h */, - 0260C833576479A14C0F759F9D161479 /* MJRefreshFooter.m */, - 7718D3A1CB256B2263AD76B8EFDC9B86 /* MJRefreshGifHeader.h */, - B6242B29A00A9DBC6FF1CD09266BBF54 /* MJRefreshGifHeader.m */, - 16308A5AF08E401B61B68CCD953A0528 /* MJRefreshHeader.h */, - 66E849825D4B5783372753D6820DE97F /* MJRefreshHeader.m */, - D411D25D78A2F9E3CF17B20443ED9F40 /* MJRefreshNormalHeader.h */, - 61D65BB6AAD351E64F3FE46FACDEED4F /* MJRefreshNormalHeader.m */, - 83340409B38BF2A20F089A4B919FC02F /* MJRefreshNormalTrailer.h */, - 6DE6908A836615F946533A6FEE623373 /* MJRefreshNormalTrailer.m */, - F8CEEFBE4317D04F4FD181E44C90A119 /* MJRefreshStateHeader.h */, - 3259CC7D8EE4331CC9B8A86DA09EA5B3 /* MJRefreshStateHeader.m */, - AB1D54171867DC3B104DAE8C6D30F644 /* MJRefreshStateTrailer.h */, - 29792A8AE7CB7444FE7BA20424B814AD /* MJRefreshStateTrailer.m */, - 572433DB55AF2085E2E4D419FCE37679 /* MJRefreshTrailer.h */, - 5C64D6AC35DE27CAD74CA154541AF1C9 /* MJRefreshTrailer.m */, - 412FD8B68949345873B82E2D0C864C85 /* NSBundle+MJRefresh.h */, - 9ECA4FF1A4B2A73F055139B44105081C /* NSBundle+MJRefresh.m */, - 70021D526E8906DE61E9D2D0F92A78C3 /* UICollectionViewLayout+MJRefresh.h */, - BE1A1849BD6BB4B796D54DCBEF79FB7A /* UICollectionViewLayout+MJRefresh.m */, - 304FA88F8B2636C2DD7FA535D2BD617D /* UIScrollView+MJExtension.h */, - B8F1319B150BB3DBD94BEB4C80F6F296 /* UIScrollView+MJExtension.m */, - DE0511947F57D1CF3F274B6414AE449B /* UIScrollView+MJRefresh.h */, - 6B94BD4B7CE09D63E43117EFC4B15D0D /* UIScrollView+MJRefresh.m */, - 38C2193309DE8B485EA6F0495C08B115 /* UIView+MJExtension.h */, - 60696FE70F42B1A0CD7B0614C2A2F16C /* UIView+MJExtension.m */, - 27463477E43B49707581CF13A6E099B2 /* Resources */, - 28E2A9A1CEAC3F154F646A51F0227786 /* Support Files */, - ); - name = MJRefresh; - path = MJRefresh; - sourceTree = ""; - }; - 27463477E43B49707581CF13A6E099B2 /* Resources */ = { - isa = PBXGroup; - children = ( - 083F5143D12F213638EF9FE439F1CEFA /* MJRefresh.bundle */, - 20674A80959A90C9F9E51DBDC8807D93 /* PrivacyInfo.xcprivacy */, + EB1DFDBA1EBE0E384ED4AA87F1246C18 /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; - 276C8F966392FC7A9273EA1CF3239640 /* HWPanModal */ = { + 10B4941ACD8EBC28564ABFF5770A9537 /* Support Files */ = { isa = PBXGroup; children = ( - FC8583F4233091326F271A4C13185F5B /* HWBackgroundConfig.h */, - 3F0DA836C065C821DDDE100A36B1C087 /* HWBackgroundConfig.m */, - 0F1705DF1CC5E82194523F85FE871354 /* HWDimmedView.h */, - 9230BE776665C8EB51C8889631B1B31B /* HWDimmedView.m */, - 1EC115C953943E0027F6AD5AFEE41A30 /* HWPageSheetPresentingAnimation.h */, - F5EB73BE761C595601603CE39EC8D850 /* HWPageSheetPresentingAnimation.m */, - 94CE97E5A9659D6EE58C83DCB52F73D5 /* HWPanContainerView.h */, - 453FB14441528B4AE2CF3592D5874C54 /* HWPanContainerView.m */, - 4A15AB0AB6FCF1589E2A6CEDC3CF0B95 /* HWPanIndicatorView.h */, - 77E6EFEE426EA2068D5FE2B73740D659 /* HWPanIndicatorView.m */, - EC37DBDA721D0EFF5AB018086BE1B195 /* HWPanModal.h */, - CF7B4B9CB0EF762A12884D6FE337E068 /* HWPanModalAnimator.h */, - EDA5337EF8951852F4AA839734BF6786 /* HWPanModalAnimator.m */, - 091DAAA7597B1233173C3BB1DC8D1D79 /* HWPanModalContainerView.h */, - 0BED1E57A7780D7944D806EF7FB48648 /* HWPanModalContainerView.m */, - E6CAC4483459A4704E779D629644670B /* HWPanModalContentView.h */, - 9E31AD6314EC8102DE4FC6291C0FE66F /* HWPanModalContentView.m */, - EF7183977EF6286C16A64DBC3D765320 /* HWPanModalHeight.h */, - BCDE5AFCF524DCA9CD59B6F4A4738325 /* HWPanModalIndicatorProtocol.h */, - 47A97040129EEE8B96AEEA0A9B73DA45 /* HWPanModalInteractiveAnimator.h */, - 74751305705DEA03873DFA2AF4DDC9B7 /* HWPanModalInteractiveAnimator.m */, - F764EB4004D4A21398D072493BD19D56 /* HWPanModalPanGestureDelegate.h */, - 3A10B1AFB4B6959F4A11AB1B1BC4A437 /* HWPanModalPresentable.h */, - C644FF26241C14C759578567892EF00D /* HWPanModalPresentableHandler.h */, - 0FC2E352D2D0DD942A9B4488E3654AB0 /* HWPanModalPresentableHandler.m */, - DB48FEC8123075E04395CF34F6F8227D /* HWPanModalPresentationAnimator.h */, - 831897EBD9EF72C4D55D02DE399C410A /* HWPanModalPresentationAnimator.m */, - 87888E540A812F012C68F804E8F5AE7B /* HWPanModalPresentationController.h */, - 1F9506DDA8FBAA7420E9B8137BFCFDFA /* HWPanModalPresentationController.m */, - 4EBFFAE4CE0471C78DB70755CFCC7609 /* HWPanModalPresentationDelegate.h */, - 1724C0944D7BC65545806EE9EDED203D /* HWPanModalPresentationDelegate.m */, - EF62C88D7041DEBD26117AF61789D8AB /* HWPanModalPresentationUpdateProtocol.h */, - DE4F66BD16AF47C58F5E08D62D7916E3 /* HWPanModalPresenterProtocol.h */, - 568F43CF567335FABEC4825ED4776B19 /* HWPanModalShadow.h */, - 513C1A2EE22268DD51EB02AE24E3B579 /* HWPanModalShadow.m */, - E4F1989DBFF7A3D94A0CF758DF35B3F6 /* HWPresentingVCAnimatedTransitioning.h */, - FCBCC9D408AF4A848CBB9CEE3327E256 /* HWShoppingCartPresentingAnimation.h */, - C5D725B550FCED60C80870F1B120D3B4 /* HWShoppingCartPresentingAnimation.m */, - 7E270235979252FF388A0C6D1E54966D /* HWVisualEffectView.h */, - F5D8EBF4698D8B331794EA6F9BF47665 /* HWVisualEffectView.m */, - 05D708E8F9065868500ABC98E789B739 /* KeyValueObserver.h */, - A2350DF4D8FE6C892E64B8C644667527 /* KeyValueObserver.m */, - 7BDFAC11D184E7F4498FC12FE0AFDCFC /* UIScrollView+Helper.h */, - 330AFA4D280CBB2EE073DCC942489EAB /* UIScrollView+Helper.m */, - 2B0B272843C604B68C602DEE1AD3605F /* UIView+HW_Frame.h */, - ECA7ED760D61427E9195A2805DB71798 /* UIView+HW_Frame.m */, - 2DC211B96CB1A7D40B3203E4778066C9 /* UIViewController+LayoutHelper.h */, - F9AA00EC509DE2C0E25E749F629EF1F6 /* UIViewController+LayoutHelper.m */, - E8C71212CAB0DCBF4059538A93053A4A /* UIViewController+PanModalDefault.h */, - B95FDE5F86C6AC76E24A82E181084256 /* UIViewController+PanModalDefault.m */, - 82F6D1678A37FB68B3455162AB8BDAA2 /* UIViewController+PanModalPresenter.h */, - 2A1E2D85798C902C2A1E1B714EF78587 /* UIViewController+PanModalPresenter.m */, - DB3B6BBCBC04C438F099DE5DEC15C188 /* UIViewController+Presentation.h */, - F6CDCEC9BF52B36734600241EB9CC345 /* UIViewController+Presentation.m */, - F9D546C8B0F4E1C342B53CD786B328AB /* Support Files */, + 8EF37EAC260BCB8227154EDD5EE811B2 /* MJExtension.modulemap */, + 34168E6315396E3BC8DB0C0D92135317 /* MJExtension-dummy.m */, + FDE2BBBF96517A14CE58D87311284F9F /* MJExtension-Info.plist */, + B13CD7AE091867EB74C9F24515FAA7F9 /* MJExtension-prefix.pch */, + C574A06BD79BD663087E268891D35FC4 /* MJExtension-umbrella.h */, + 43D1BFE612E29B08BEB356DA8798ED52 /* MJExtension.debug.xcconfig */, + 4ACB666A05CC9FCBFCB2DF08A44EDCEF /* MJExtension.release.xcconfig */, + 7815E7750C594059F6B0C8230B13D904 /* ResourceBundle-MJExtension-MJExtension-Info.plist */, ); - name = HWPanModal; - path = HWPanModal; + name = "Support Files"; + path = "../Target Support Files/MJExtension"; sourceTree = ""; }; - 288FC03C5D2C78A45B56AFFEE5C2C9F7 /* LSTTimer */ = { + 156B9C38740B42864E01BD9DD6E3ACE5 /* Masonry */ = { isa = PBXGroup; children = ( - 68AAA13D71385283DB69A35327BC2F47 /* LSTTimer.h */, - CE5782C68BCDC8C49DD74B206B3FFFF1 /* LSTTimer.m */, - EDCE25045C1BBF6ECB7211723055D0DB /* Support Files */, + 9FF40777BE2905C8C5AF4879273482C0 /* MASCompositeConstraint.h */, + ED5F3E83C25ED0811869DD8EA163FA78 /* MASCompositeConstraint.m */, + 6D5348DE9248FE6D70D34D73A9774C83 /* MASConstraint.h */, + DCBCA1C2F2293D0C830583795A736685 /* MASConstraint.m */, + B788040001791F66B5813C1FC3C51736 /* MASConstraint+Private.h */, + 701FB0B3C957B12385F4A22B36BDD16B /* MASConstraintMaker.h */, + 3A6D127A5F91E50191D10CCE0BF96AF9 /* MASConstraintMaker.m */, + 8216CB9249FAE1BE5541140EAF873038 /* MASLayoutConstraint.h */, + 78EEF85B7BD959BD946F0104DE6A6111 /* MASLayoutConstraint.m */, + 4AABA37C73D3E8D4BEFE90BE49794EC3 /* Masonry.h */, + C56CE434AD64B4F0203646AFEABDC62C /* MASUtilities.h */, + AC71E00B08C163BDC9595A666E4DD0BB /* MASViewAttribute.h */, + 55E55222C6C86AFF25E27B0D455BF241 /* MASViewAttribute.m */, + 9C14A6A28CF36FB34BD301B51F50ECF4 /* MASViewConstraint.h */, + 8FB4EE2E060394D9A52D562E13D8396D /* MASViewConstraint.m */, + 582878B2C284C868038DC1140C755280 /* NSArray+MASAdditions.h */, + 8327BC57519C008047652BB3EFE469D3 /* NSArray+MASAdditions.m */, + FB7FC8DB91393E935926A1585D578E99 /* NSArray+MASShorthandAdditions.h */, + A6CDDB9DA3BFC3F4D86BE7978C171C4C /* NSLayoutConstraint+MASDebugAdditions.h */, + B274C85C40A4722970D6752B0CEB3492 /* NSLayoutConstraint+MASDebugAdditions.m */, + D4C758EAB6412C592511A197D1BD7BD3 /* View+MASAdditions.h */, + 0373237DDE9FD31C7EA3AA4CB0955A70 /* View+MASAdditions.m */, + 687F99CF59698A825238A228A9326EEC /* View+MASShorthandAdditions.h */, + 03CF13D7504F201F21E62DE0C23B49F7 /* ViewController+MASAdditions.h */, + 96B77880B1EE68D1F7EBC61B07E7224C /* ViewController+MASAdditions.m */, + 336ADBB8ACCEC0976DAF4A37807849FF /* Support Files */, + ); + name = Masonry; + path = Masonry; + sourceTree = ""; + }; + 1B85A6BBA93EFEDE8E4D02E62D5D9E95 /* LSTTimer */ = { + isa = PBXGroup; + children = ( + 24AF21E2D394FFB4D39972DF67EA8879 /* LSTTimer.h */, + C93081D998142D9D1077E4218203CB6F /* LSTTimer.m */, + 801C7F1AEE24DC4B6CB99996A049EFD9 /* Support Files */, ); name = LSTTimer; path = LSTTimer; sourceTree = ""; }; - 28E2A9A1CEAC3F154F646A51F0227786 /* Support Files */ = { + 257C6505CFC21F026C88C309B352F23C /* UIKit */ = { isa = PBXGroup; children = ( - ABAC9F2093F2EF164CB968D710D261F5 /* MJRefresh.modulemap */, - 741E2A603352D4102F1DAFBB68C69122 /* MJRefresh-dummy.m */, - 04996832466C0B682760DEB660586A88 /* MJRefresh-Info.plist */, - 81D115D4A9C927BEBA7B66F114F7B4EC /* MJRefresh-prefix.pch */, - 6A2E7581F1DA07EBD6D2568091FCCB71 /* MJRefresh-umbrella.h */, - 7895C7C58218B5F79C76FA1B5A55E669 /* MJRefresh.debug.xcconfig */, - A324C5885C8FB2DC65900A0EE79A0E45 /* MJRefresh.release.xcconfig */, - 9897B379E415C6537D86A30137A8D274 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + 0DC3138C5F0B6B2DB074A075062C6FAC /* AFAutoPurgingImageCache.h */, + 4B24C6651F79840BF3D3D3ABE8A82658 /* AFAutoPurgingImageCache.m */, + C5F30B6A64A6BA3D79791488816A9ACF /* AFImageDownloader.h */, + 615BC44E22B7900F28F104F19D013B7F /* AFImageDownloader.m */, + 512A25DAEA073CE0762D2115C0A3524A /* AFNetworkActivityIndicatorManager.h */, + 666B288F1B04D5B5933AC43405CB0DF7 /* AFNetworkActivityIndicatorManager.m */, + E73A2BECC319E466CBB42196B328E76A /* UIActivityIndicatorView+AFNetworking.h */, + 2E93A65559DA531AD62A42386304041D /* UIActivityIndicatorView+AFNetworking.m */, + 9187109C444449118A500CD6A1F2D532 /* UIButton+AFNetworking.h */, + AF8F130ED4A740A7CACD266AEC22B19C /* UIButton+AFNetworking.m */, + EC7B5C20256DD7D6DDEB7DC77A23FDE4 /* UIImageView+AFNetworking.h */, + 9DAA001DA4B0511B694549BF046EAD29 /* UIImageView+AFNetworking.m */, + EB8E6D6116AB58EBD0BC1FBAD7D4794F /* UIKit+AFNetworking.h */, + 7C1AD74CA456B29E515BEDEC9FD34222 /* UIProgressView+AFNetworking.h */, + 00141057F0C1BE712F66EE7FBD96487D /* UIProgressView+AFNetworking.m */, + A496809B712DE9F509171A8B6356A099 /* UIRefreshControl+AFNetworking.h */, + 7DF3812108539965DC779569F4275FC2 /* UIRefreshControl+AFNetworking.m */, + F1CF780FAB50332DD27BCA8132E35917 /* WKWebView+AFNetworking.h */, + E7430A9EA4CB87590757C1508062129E /* WKWebView+AFNetworking.m */, ); - name = "Support Files"; - path = "../Target Support Files/MJRefresh"; + name = UIKit; sourceTree = ""; }; - 2F8EF5B81FDAABB39353996747C04D04 /* Core */ = { + 2795831060C1455A6E99AD5EA64303D3 /* Code */ = { isa = PBXGroup; children = ( - E4A5839D54BEE8A98756D5288A3E5050 /* NSBezierPath+SDRoundedCorners.h */, - 34F0487226F5EBEBA3C6D3E1743C5260 /* NSBezierPath+SDRoundedCorners.m */, - CE2B5265F3721FD7EAE15556CCDB1151 /* NSButton+WebCache.h */, - 53155231B4EB5B29274A0546D6F39B91 /* NSButton+WebCache.m */, - 00449113F3BDDB46E11CEE02CF1F29A1 /* NSData+ImageContentType.h */, - 928339E7523C1267D5DF15E548454A5E /* NSData+ImageContentType.m */, - B09C6285E70223CDED72989080A8442A /* NSImage+Compatibility.h */, - 23763927ED025640A4CAA94867A3D823 /* NSImage+Compatibility.m */, - A1411B1EA7A3C51DB2072BF40B4D5A60 /* SDAnimatedImage.h */, - BDB258BF0BE17AFC3BFB4FB942403B82 /* SDAnimatedImage.m */, - 6C1E503B34448DC968FB5BDFADFAE70F /* SDAnimatedImagePlayer.h */, - 8A5D6AD5CB7122607D6E477D373A31E2 /* SDAnimatedImagePlayer.m */, - 674659ECD497CB56B02FD385F68621CA /* SDAnimatedImageRep.h */, - C94F3031AB6C5451E9610DBD24FE9029 /* SDAnimatedImageRep.m */, - 37977014CE5B8A9E93F1EC56C3AC6D52 /* SDAnimatedImageView.h */, - 883434364AD74D3F77868A0CF2FB7A09 /* SDAnimatedImageView.m */, - B705DD8FCD54B3AFD61B70C82828ACE4 /* SDAnimatedImageView+WebCache.h */, - A2C2A9B920BB92B872BA2AC2EA086220 /* SDAnimatedImageView+WebCache.m */, - E4BFFACAA945CC17167910BF3C319571 /* SDAssociatedObject.h */, - 321334B98147E6E64FCE056E3717FEE0 /* SDAssociatedObject.m */, - 026BB0AEDD69539DEC39191EE0C5214B /* SDAsyncBlockOperation.h */, - 2A03E8820B42DFF0FCE849CB64302CAF /* SDAsyncBlockOperation.m */, - 402736588AC9D07AA589F2943BAE3C89 /* SDCallbackQueue.h */, - 7BD134826FCB54429F667B8DBF296710 /* SDCallbackQueue.m */, - F287F335FB60871C584FAC1904FF4181 /* SDDeviceHelper.h */, - F947DB2E34F4112ED83356B8AA944880 /* SDDeviceHelper.m */, - A464713D364DCC51BD1C744435EF31A3 /* SDDiskCache.h */, - FAA3871C50E5746944D1C3FA3E4736CE /* SDDiskCache.m */, - B5F6ED51FA52849CB3D9D44DD45396E2 /* SDDisplayLink.h */, - 1679E08A4A241FB86455E71FDFB20D9F /* SDDisplayLink.m */, - 0ED5656E5971882A3EA314E222EBC2C5 /* SDFileAttributeHelper.h */, - 72CEA2C3193763834CD0E25D8DB88F2D /* SDFileAttributeHelper.m */, - D444527057532BACBF8EC98BE62D3E03 /* SDGraphicsImageRenderer.h */, - 46F71F9F19999F6D4F186847FA3CC8F7 /* SDGraphicsImageRenderer.m */, - 3501E850F701BA678364B4AFBF1C8417 /* SDImageAPNGCoder.h */, - 07274C755D75F4A07C925D1DDE5FA529 /* SDImageAPNGCoder.m */, - 9F5507B4A6BD90BF5F74B1AAC009AD90 /* SDImageAssetManager.h */, - 87B2A7EE05A20B3EDDFE045A6B7911E5 /* SDImageAssetManager.m */, - BF3C6AEB909F4472F8D8E4E21B25B716 /* SDImageAWebPCoder.h */, - BC30CFC7778FEADF9DCBF0A4ABA1769C /* SDImageAWebPCoder.m */, - DEEA81C89F22AF300ABFA4E5550B7B06 /* SDImageCache.h */, - 77715D6F65035CFA25715F00E4915BA5 /* SDImageCache.m */, - E368F7BC820788B717CC047A744E4326 /* SDImageCacheConfig.h */, - C3D9450A4AAE9542E6A1A0473B7DF812 /* SDImageCacheConfig.m */, - B2C2A4CA80B5FE7CB8927FAEE4CAF5F4 /* SDImageCacheDefine.h */, - C74EA9D59FFCBE16D0C0E5B7B2D53516 /* SDImageCacheDefine.m */, - 839CCD719F79C7FBC2909C72822FB470 /* SDImageCachesManager.h */, - DFE214BE294126C1B4FFE49DDADA7AEE /* SDImageCachesManager.m */, - 6A41E1A305241C5A627FAD06CB90A275 /* SDImageCachesManagerOperation.h */, - EE9E5D3590E1EC14CD269A8B340CE3F0 /* SDImageCachesManagerOperation.m */, - 5EF3B546633CC3DB26A173DE519AC3D7 /* SDImageCoder.h */, - 2E79D80C613F4B57826DA627018BB1C5 /* SDImageCoder.m */, - A3E40CB9D351DF0E70C7A452071E82E1 /* SDImageCoderHelper.h */, - FEE19DBCD45615CC389DD7223D3C447A /* SDImageCoderHelper.m */, - 0BC7EB117F009B160822B3FFCCC63F2A /* SDImageCodersManager.h */, - 03700B93F7A3FF6F3675D80E5DB1C1C7 /* SDImageCodersManager.m */, - 6D8BE2762FA18EF88A5BAD861C739B02 /* SDImageFrame.h */, - 452754C8CDFE17EC42C563B4B6E1F69A /* SDImageFrame.m */, - 449CCE39A5A9EA789B9A284113D1025E /* SDImageFramePool.h */, - BF31B533FDEE0B0DA7ED824B4F336534 /* SDImageFramePool.m */, - 9C0E279B5FFB9696801CC86ACF92805A /* SDImageGIFCoder.h */, - 763CF36C11B6092D9D5485AC2363F205 /* SDImageGIFCoder.m */, - 5EA970CCF2164DC59ECEE9DE06B1BCBA /* SDImageGraphics.h */, - E9FA8ED817E86A0F4415B8E73B62DCF8 /* SDImageGraphics.m */, - 55488AFE93BF97340EF80D0D6C1E2CA0 /* SDImageHEICCoder.h */, - 1CA6A325AACF7253FFEB9D258746335D /* SDImageHEICCoder.m */, - B75E67C2319B8FDBF4D6263203A06D6B /* SDImageIOAnimatedCoder.h */, - B92B905C66437721BB933FEDA5B00CB4 /* SDImageIOAnimatedCoder.m */, - EF1815C1F114106321929B2F631067E5 /* SDImageIOAnimatedCoderInternal.h */, - E4718E4C19C181FBAEBD080580F8C026 /* SDImageIOCoder.h */, - 04094D9F916F0B3E8A409CF5EEC45FCC /* SDImageIOCoder.m */, - C8ED101794ADA1876F4FFCBD1F79D622 /* SDImageLoader.h */, - B9E1D06297B630EA32D1369915C0CB97 /* SDImageLoader.m */, - 7C1F5F86210D3FB1EF59D8665E7C4A77 /* SDImageLoadersManager.h */, - 2E585503EB164F6C036C85B124140368 /* SDImageLoadersManager.m */, - 6EAD8B1C822E0F2BAB884329D798190B /* SDImageTransformer.h */, - C45DF4498F0949CD4F02FA86BFE50D93 /* SDImageTransformer.m */, - 962D7794EB805E6D2F4F5F0B58218401 /* SDInternalMacros.h */, - F1CF9E4569F5B94286E175AF9D675C11 /* SDInternalMacros.m */, - 256D50D68BFC3FD314552D1D0BC2044D /* SDMemoryCache.h */, - C202F1C5D8455CDDCAE965BD7BAAFC3B /* SDMemoryCache.m */, - 98B3D67E4B164109B9B94A959496BA25 /* SDmetamacros.h */, - A92BC89EBEE6C3CE964CA994B506EA43 /* SDWeakProxy.h */, - 98901829A364C7B4F13375AEB6AA0FBE /* SDWeakProxy.m */, - EE827BC4171898B142EBDE3C763AFC7F /* SDWebImage.h */, - B4F7FC0CFCBE2143A4999C2F356D2B47 /* SDWebImageCacheKeyFilter.h */, - C909F8904D301FB96965DD62CE4E2CA7 /* SDWebImageCacheKeyFilter.m */, - BD430BA3E5DB115A0F8BF9D6110923AE /* SDWebImageCacheSerializer.h */, - 0D6771046C7CF97C82B7D303F2AFD49E /* SDWebImageCacheSerializer.m */, - B87895ABF5221A865DF2D53247763F89 /* SDWebImageCompat.h */, - F00B3F2B17BB2816232EB507B7AC9018 /* SDWebImageCompat.m */, - 3313EDBDBF7A4CA0DC32526D9ED0B496 /* SDWebImageDefine.h */, - AEEC6C323BA320F8FE0EFED607BC9994 /* SDWebImageDefine.m */, - 96AEDA915084E949F39F28D248C2FB43 /* SDWebImageDownloader.h */, - B453C947A0F7F0133F2F98F9E8EF1E43 /* SDWebImageDownloader.m */, - CBD58A6BE5B4D23DDB42D3D26A87CAEA /* SDWebImageDownloaderConfig.h */, - 6650E50E5FAFFD61FC973E5A0D5C8398 /* SDWebImageDownloaderConfig.m */, - 3ED4F75E10F9C3D76FF139C89BBB8154 /* SDWebImageDownloaderDecryptor.h */, - E38A10934CB29F9B2C75A0785209FA84 /* SDWebImageDownloaderDecryptor.m */, - 304D443FD07AF14BA7F1628D80971669 /* SDWebImageDownloaderOperation.h */, - 35B67A3C0E25A19B996355E03ED4A3CD /* SDWebImageDownloaderOperation.m */, - B2CE10A014B3B7826BFF751346CE7495 /* SDWebImageDownloaderRequestModifier.h */, - 607560CCA2D3766D85B5AEE557812D0E /* SDWebImageDownloaderRequestModifier.m */, - 6F1245D39980C8CC23C4FFA557C72FA3 /* SDWebImageDownloaderResponseModifier.h */, - 4BC98580A0BA844CDD661F01812A35C7 /* SDWebImageDownloaderResponseModifier.m */, - 16465B6B7358098E137335C9985BBBBC /* SDWebImageError.h */, - A4F1299F85FD74B081B5C5F85EF530B7 /* SDWebImageError.m */, - E0DD4370E4AF2D75716AE1B5D67EABEB /* SDWebImageIndicator.h */, - A56060BC793E00F370FD0DF3B4157376 /* SDWebImageIndicator.m */, - 253C2858A52DB3FD4BE13D65D2B6C2A6 /* SDWebImageManager.h */, - EFC3A24D1CE615DA957AE8C5AC47E5D7 /* SDWebImageManager.m */, - 949A8C57291DF7D8139F90AD367DB80C /* SDWebImageOperation.h */, - 0A70A9B1B9D076F21A4C704EAC69B3E9 /* SDWebImageOperation.m */, - FD3C0DF69EC6CFA1DD8299F62B1A84FB /* SDWebImageOptionsProcessor.h */, - 1B82CFD6AD23DAB70352983FFFA8DBBE /* SDWebImageOptionsProcessor.m */, - 6099FBA2A3EE3D602B49D82E19FA5875 /* SDWebImagePrefetcher.h */, - 9AA439B2B87976D37C23F7DCCE897F8C /* SDWebImagePrefetcher.m */, - 59CF9D4B8C92110B4BC1E1792E4AAEA5 /* SDWebImageTransition.h */, - A4B49E8FCEA2AFEE938A133ECC269CF2 /* SDWebImageTransition.m */, - ACD18D412C592E0FB706C10554E5283E /* SDWebImageTransitionInternal.h */, - 731A2E2A09E554B786F7BD8D9285D1CC /* UIButton+WebCache.h */, - E8B2553B72F322F7DC0ED38BB760DDC6 /* UIButton+WebCache.m */, - DC85B08C4C82F12C3AA7970FE44E1D9F /* UIColor+SDHexString.h */, - 343C42E325F84441C510AF8DEE739ADF /* UIColor+SDHexString.m */, - 8D2F3BF5EE9E269F816330AC6BF6745F /* UIImage+ExtendedCacheData.h */, - A7A348B5BB8CB7A444F827000C95DAE5 /* UIImage+ExtendedCacheData.m */, - 317AEF64C0405ADA2DB47569A6D72FC4 /* UIImage+ForceDecode.h */, - CF91BA63B659D0E10C9E123EBEAB8FA3 /* UIImage+ForceDecode.m */, - FB1FCAC52ADC49B2B3A81FFCCD3D56EE /* UIImage+GIF.h */, - 7A2AEB4C3E4F6147F107DF9376FA7264 /* UIImage+GIF.m */, - 0055AF44029FABEF5E29D1BC1B86CC15 /* UIImage+MemoryCacheCost.h */, - 0451FF8513ABCE79BA473B450192579B /* UIImage+MemoryCacheCost.m */, - 429004AF40A48DE835234068590E6A94 /* UIImage+Metadata.h */, - 5E5C516541F7C7AC40E990C05307FEEF /* UIImage+Metadata.m */, - 517D8EDC9F4BA34E4E4060247125B56D /* UIImage+MultiFormat.h */, - 373258A2F6DFCE8ADD1C1D42DE5EF5D3 /* UIImage+MultiFormat.m */, - A39050EBA53940D0CE63B52BF031BE6C /* UIImage+Transform.h */, - 0EBF81CE72AA8B4B06F1BC37CFA7B96A /* UIImage+Transform.m */, - 855BA7199BD9AC7B4687AF3F66E21279 /* UIImageView+HighlightedWebCache.h */, - F139F3BFF4ABD0678E7947E118F47774 /* UIImageView+HighlightedWebCache.m */, - 0B5075BB968E268BB5D61B393C333DB4 /* UIImageView+WebCache.h */, - FB718B97DF8D94DCF736C973F8184652 /* UIImageView+WebCache.m */, - 36BEAD7507B8644D14D46C852A6EF20B /* UIView+WebCache.h */, - F8CCC7FB49429A8093BC8191C6474D58 /* UIView+WebCache.m */, - CF6ABA6691731EEA533F56170FB03C5C /* UIView+WebCacheOperation.h */, - 43901AAA2BB40AE5F534540676833E30 /* UIView+WebCacheOperation.m */, - 919C930C4E0162377E3C95D0F6F11177 /* UIView+WebCacheState.h */, - 8E4925A54FF503F963785651A98856BD /* UIView+WebCacheState.m */, - 0B3501DF96788E261B37AA47988480FF /* Resources */, + C659CE9E1FF90805F3DC1F8D3DDD1B24 /* LSTPopView.h */, + E9D3CABC7E918DC0ACB269749E4C3EBB /* LSTPopView.m */, + A92EBDBD9ADD77AC125DE4FAE2A050CD /* LSTPopViewProtocol.h */, + 47967249E6F0D4DE5940EB3E03FDDACA /* UIView+LSTPV.h */, + 302975DFD9229749EE5D0CC495C097B3 /* UIView+LSTPV.m */, + ); + name = Code; + sourceTree = ""; + }; + 2D432F9033351E731489CB4529286E81 /* Support Files */ = { + isa = PBXGroup; + children = ( + C5E71C07BE43DB660AD9530B77FD390D /* Bugly.debug.xcconfig */, + 73625BF0D8F9A3389059227F5BE246B9 /* Bugly.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Bugly"; + sourceTree = ""; + }; + 336ADBB8ACCEC0976DAF4A37807849FF /* Support Files */ = { + isa = PBXGroup; + children = ( + BFB320E846599F5407553A53017BE8D5 /* Masonry.modulemap */, + E101C495162815FB13CF5C0C63EF9A60 /* Masonry-dummy.m */, + 44FFA285CAA6823C9FB21CF9A6BA99A2 /* Masonry-Info.plist */, + CEAB2A11C175DE0C1AD373DDC286B62C /* Masonry-prefix.pch */, + 84141539AD2EF68E8799DAC96873E247 /* Masonry-umbrella.h */, + 683E99CE46610E46D88EC2EBFE2F9D12 /* Masonry.debug.xcconfig */, + DD5C05C33FEB34F3D60A222DB91896DD /* Masonry.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Masonry"; + sourceTree = ""; + }; + 35E988BE7F117B41B5EED03446DE6C9C /* Core */ = { + isa = PBXGroup; + children = ( + 327CD1528BBA4042036E97BEBA74274F /* CALayer+Lookin.h */, + A2922793BBB0ED7A43277BC1705F6C65 /* CALayer+Lookin.m */, + B6B2FE0CBDE39531B676501864F1834F /* CALayer+LookinServer.h */, + 36F42C589BF3CE6FB1651BCBEC115229 /* CALayer+LookinServer.m */, + 265403DB3694F132F2DAC68999219865 /* Color+Lookin.h */, + 04FE9083F11D6C40672576B6F65F4DFE /* Color+Lookin.m */, + 5BBA876292C39EC75D3A3DE0E1936D10 /* Image+Lookin.h */, + 785B19DEFCB5992DCCD13268D7F0D558 /* Image+Lookin.m */, + 6996BD8F22035A9DB062483A3FF3BFFC /* LKS_AttrGroupsMaker.h */, + 52C589D40F94F3744B770C369237A59D /* LKS_AttrGroupsMaker.m */, + 0780B40D7B5BA4ABD33634434DECD679 /* LKS_AttrModificationPatchHandler.h */, + 3E900EA2C75888A78AAE83F5EA129123 /* LKS_AttrModificationPatchHandler.m */, + E6D8838EF1CB5604BA59341E2D21DF16 /* LKS_ConnectionManager.h */, + 1B5D037718A134965F540D45A0F6B588 /* LKS_ConnectionManager.m */, + 24999108D48C81C62429B11AA1ADA40D /* LKS_CustomAttrGroupsMaker.h */, + F27D51BD8717D8107D6F470FC85BEE9C /* LKS_CustomAttrGroupsMaker.m */, + 2C7A3A7B1E2977C0A4D17055B849A7B2 /* LKS_CustomAttrModificationHandler.h */, + C7673C6A1F4331DE69644342A618B59E /* LKS_CustomAttrModificationHandler.m */, + C465F2B07425AB6119127372849CF8C4 /* LKS_CustomAttrSetterManager.h */, + 06CC8DC68E679AF1CA3517F011FD585A /* LKS_CustomAttrSetterManager.m */, + A63180F0C773029E91215EEB353265C4 /* LKS_CustomDisplayItemsMaker.h */, + EF8000FD1EA99F68D7E5291991D79B0E /* LKS_CustomDisplayItemsMaker.m */, + C4C0F3F15553F501197C49C0CCA3C71B /* LKS_EventHandlerMaker.h */, + 176E7D816EC787D976C5ACA3E34D42FB /* LKS_EventHandlerMaker.m */, + CA0F71330D13A74D3AEBCFB9914E77E0 /* LKS_ExportManager.h */, + 516AE9E97902910ABC8576640FB4C80F /* LKS_ExportManager.m */, + 53067D5B14E4EEA9819FC6B7F9321221 /* LKS_GestureTargetActionsSearcher.h */, + 32B43E5461D43BFAECF375AB2DC8E85E /* LKS_GestureTargetActionsSearcher.m */, + A6E5B058615070C57D95C6744ED270A5 /* LKS_Helper.h */, + 0FF04EF888516E2DB6679EDE980F5425 /* LKS_Helper.m */, + C38F79D9F2BBBC5DD6406B67406CBB17 /* LKS_HierarchyDetailsHandler.h */, + AFF45D4CE90980A5F7EC393EA9E9D029 /* LKS_HierarchyDetailsHandler.m */, + 9E027A157991C01A32ECD381AFC34FAD /* LKS_HierarchyDisplayItemsMaker.h */, + 269FA03C0F139A78628FFE7007BC40BA /* LKS_HierarchyDisplayItemsMaker.m */, + A0041C94BD88F8B62868FB3EF9609FB8 /* LKS_InbuiltAttrModificationHandler.h */, + 373DF461217F7D5921663CC9414928C2 /* LKS_InbuiltAttrModificationHandler.m */, + 3496B4EAE2849B5A2A6E8BA7A3BDE3BD /* LKS_MultiplatformAdapter.h */, + 315FB86B28046E0FCE4DFBF33E80E881 /* LKS_MultiplatformAdapter.m */, + 2E5D6A1DE9751FB33B1F22D67AA06638 /* LKS_ObjectRegistry.h */, + 1E9C77C9C0F2FA0C3086D0F5FD1B3EF7 /* LKS_ObjectRegistry.m */, + 8512889E3BBE8E06C30815D98480A1FE /* LKS_RequestHandler.h */, + 7CB75A5B2A3704A67AE8EBCD2E084F76 /* LKS_RequestHandler.m */, + DB0ECAE0D87D0608A8C30B2F77C3E87D /* LKS_TraceManager.h */, + 5AAAD9C4443ACAC2E1EAA35A70A4A148 /* LKS_TraceManager.m */, + 731B422E4100ABB7BB6E1F387EA92CA6 /* LKSConfigManager.h */, + 3AEC2B0BCCF800B9E27EEDCAD6ECB138 /* LKSConfigManager.m */, + 59A6313DB1DDFF0278C2714355019D44 /* Lookin_PTChannel.h */, + 7B5E17147866E2EFAC8FA996447DBA62 /* Lookin_PTChannel.m */, + D2E96E3FE3174CF0DBE2B98522202B64 /* Lookin_PTPrivate.h */, + 9847621357113F3B9BE2AD1FDFB32BA0 /* Lookin_PTProtocol.h */, + D44F285EDEE4AF310DBFDC692616C9A2 /* Lookin_PTProtocol.m */, + CA6877C7E2F08DD57E39B1630AB4D3CE /* Lookin_PTUSBHub.h */, + AEAA7AD51C8DC304F8BC9473ABFDE6EB /* Lookin_PTUSBHub.m */, + E0E514D6B12F84E6EE4FEDF1E175E984 /* LookinAppInfo.h */, + F07A3B81902A2108AA8BB142C97638F2 /* LookinAppInfo.m */, + B7B17C8F66F48EB638E0AF42D54F42F3 /* LookinAttribute.h */, + 7C54D0915D093EEE2BE69C3D6A495144 /* LookinAttribute.m */, + F6809A3B1E06063A42F8BE812CB61608 /* LookinAttributeModification.h */, + 923CAFFF098ECF44FC1958880D856006 /* LookinAttributeModification.m */, + BF890D3C8FFDC0A8645FE4AC7B3FEAC2 /* LookinAttributesGroup.h */, + 6359DFA964A60852EBC4AB8002EAED38 /* LookinAttributesGroup.m */, + 16DD21F9DF416D56090211469D54E9D3 /* LookinAttributesSection.h */, + 3857A564BC94B93CC94D3EA56DDC4671 /* LookinAttributesSection.m */, + 37062203C7A1D75A3D580DF7678FCF91 /* LookinAttrIdentifiers.h */, + 135F58906DCDEDF7FFA3F89556224912 /* LookinAttrIdentifiers.m */, + F4362531C46D376449500E4E4ABD46B8 /* LookinAttrType.h */, + 3D13D5C804FC991DCB89F6DF78DD5C96 /* LookinAutoLayoutConstraint.h */, + D1F2502AC8DD19068B26EF772154A729 /* LookinAutoLayoutConstraint.m */, + 230C407239A171B37B3DED270C128E42 /* LookinCodingValueType.h */, + 91A3BEB81D3C5F9750683749F0036022 /* LookinConnectionAttachment.h */, + 2B8C93AD319F378DC20803CB9F69D59D /* LookinConnectionAttachment.m */, + E654B5C45A42A75AB020868F1B5828B3 /* LookinConnectionResponseAttachment.h */, + 36C23BF6472529CBAF23C7D4F8912144 /* LookinConnectionResponseAttachment.m */, + FE9CBD37D8F9BF7DECEA75B97A1B5072 /* LookinCustomAttrModification.h */, + 65A5B788E203EFDF66F6AD93970E02A0 /* LookinCustomAttrModification.m */, + E7A99A2859857EEF42DB510B44CD7D4F /* LookinCustomDisplayItemInfo.h */, + 0B04749D7EDFDC4F0FD3C45B5E2CC1F0 /* LookinCustomDisplayItemInfo.m */, + 6FEEF3836D9713133E7AFBE1EA8D47DC /* LookinDashboardBlueprint.h */, + 7B7FB400E636A49FA352DB030999083B /* LookinDashboardBlueprint.m */, + 6860400C5750CEA1DDC11A081C80778E /* LookinDefines.h */, + 5811FCC0F688112EBBC68172735EE311 /* LookinDisplayItem.h */, + C26AB205827C5EC4F0B52B2B9F01198E /* LookinDisplayItem.m */, + 8FC7E3E9FCD82B298D83EB141669B492 /* LookinDisplayItemDetail.h */, + 7C17FECDC099A898CAEC3A839A6AD128 /* LookinDisplayItemDetail.m */, + 050D9A9BA00647620853E7BB1D8F7894 /* LookinEventHandler.h */, + 2D1CA51113D2C810242700450E6D5F91 /* LookinEventHandler.m */, + 1AE373EEFE41CB11B4ADBF33F7FCFF1E /* LookinHierarchyFile.h */, + C00853DA866D706105E3F07641DC0307 /* LookinHierarchyFile.m */, + C792FA3E4D3612659DA4500FE9D4A687 /* LookinHierarchyInfo.h */, + 96692A8BBFC06F26E5C9CE0895319495 /* LookinHierarchyInfo.m */, + 80BF1785EB85332804D7A38FC927C011 /* LookinIvarTrace.h */, + BAF93F1F248973B4AC6CFD18CF736F3F /* LookinIvarTrace.m */, + 4C534235E73B4CE717D8C2531F72319C /* LookinObject.h */, + DB1863C43548C48626DFDAA326CF57C0 /* LookinObject.m */, + 8C1A794B32C002930A0B7A81C1F9125D /* LookinServer.h */, + E2D7300C7CE7808A8442A4388EB1F39F /* LookinServerDefines.h */, + 23721857393C1A6F3C7F8AACFBD34013 /* LookinStaticAsyncUpdateTask.h */, + 18522E1361AF4A77AC618662C5D5CBD9 /* LookinStaticAsyncUpdateTask.m */, + A6D1CC45A7943BAD96C97D9225C9021D /* LookinTuple.h */, + 84ADAACA62D3D83C92C455142BC8D490 /* LookinTuple.m */, + 961E45DD758EA04F4F40485164C36376 /* LookinWeakContainer.h */, + 00DA480EB7624092ED2636F89F005350 /* LookinWeakContainer.m */, + 587F3D57A14E0843D394318214FCF8B0 /* NSArray+Lookin.h */, + EE02826B807E0D7464EF9DB1CA82C18A /* NSArray+Lookin.m */, + ED1158F9B24BF9550BB13ECF0F47E19C /* NSObject+Lookin.h */, + 34A9597A3B19D20F2D1CC81A1ABB722C /* NSObject+Lookin.m */, + DDD62A03019F7CD9137BEE1E93471445 /* NSObject+LookinServer.h */, + E8FBA7603C63946EEF45272B16F6885D /* NSObject+LookinServer.m */, + E96F17B7717518537E81A1BBEB4DBC11 /* NSSet+Lookin.h */, + 579D465907AF561A964E6215E3417CD6 /* NSSet+Lookin.m */, + D85E4436F11F7C2B5E5E62E6883830C9 /* NSString+Lookin.h */, + 179ED378488E412DC29146DCB8F69511 /* NSString+Lookin.m */, + BAC93B86D6778471FAE7BA6676662150 /* Peertalk.h */, + A7A301C66E696681FADD2B5F1A72E77F /* UIBlurEffect+LookinServer.h */, + 1C94D5A09742CF8529D729BB964C8676 /* UIBlurEffect+LookinServer.m */, + 45CD236134E5D2F49DF88F4618260F0E /* UIColor+LookinServer.h */, + AF674229C7D31D64E69F0EDA1C666B5E /* UIColor+LookinServer.m */, + 8EA7B059D4EA4894A724A157A1ABDA61 /* UIImage+LookinServer.h */, + CC0FAA66E9F92FE598CA52ABB654861F /* UIImage+LookinServer.m */, + CF4ECEE409DD9983607A183AF34F50C6 /* UIImageView+LookinServer.h */, + 747C20749A2BFC0F42CFCE05482B9D6B /* UIImageView+LookinServer.m */, + 2582063FAB255AD2C3B395722AD71B01 /* UILabel+LookinServer.h */, + 9158E1A18D64B6BEBD8A536D3C5AFC15 /* UILabel+LookinServer.m */, + 2777F67758A4643B06DA9FC44531D569 /* UITableView+LookinServer.h */, + 97D5ABBCA1E57EF7A4153DA8B5D31E2C /* UITableView+LookinServer.m */, + 3DA8C2D4790BED356591B63B0C25204D /* UITextField+LookinServer.h */, + 560B458A525AF32A2AB5C477CFBBDE88 /* UITextField+LookinServer.m */, + 81D1208390281107018E2EF73BCE3B61 /* UITextView+LookinServer.h */, + C2B186A7798AB389A4AD802804B15504 /* UITextView+LookinServer.m */, + 8985B7A847721EC00A75B85DDA83C8F6 /* UIView+LookinServer.h */, + E9BCF126899DF058C602D585C70A9150 /* UIView+LookinServer.m */, + D76288639CA695867537E017B89F9AF4 /* UIViewController+LookinServer.h */, + AA8B7E098C9891D8A55FBFC522096F4A /* UIViewController+LookinServer.m */, + B5BC8C00F1561B5D7DB93AE4BC24DCBA /* UIVisualEffectView+LookinServer.h */, + 05AA4A29A03BFDC3AF0BB640C3F32120 /* UIVisualEffectView+LookinServer.m */, ); name = Core; sourceTree = ""; }; - 3FB59ED98513C1B8FA6DBF40283EB341 /* Serialization */ = { + 373E9870F7EBE4C7D32F4FFE51D1AA9F /* Resources */ = { isa = PBXGroup; children = ( - 4228538168305A12A3465600D6FA372A /* AFURLRequestSerialization.h */, - DE378B71C4559C86FA84F1AB2F15BD03 /* AFURLRequestSerialization.m */, - B5A6B26A93BDE64568CF7AF44D709974 /* AFURLResponseSerialization.h */, - 1DD3D7BBD826081D1399FCDA65D59838 /* AFURLResponseSerialization.m */, + 8B8648796F69C213249771AF45760CD0 /* PrivacyInfo.xcprivacy */, ); - name = Serialization; + name = Resources; + sourceTree = ""; + }; + 37D285E5A09075793AC0037B1112AE18 /* Support Files */ = { + isa = PBXGroup; + children = ( + 2E98EFA305127CF2E48DD682D9142F4D /* JXCategoryView.modulemap */, + 3F727D55D6275E422C78261D496AAC93 /* JXCategoryView-dummy.m */, + 340B5F4A82453A4079D19115773C0E7E /* JXCategoryView-Info.plist */, + F7647133633ACCB1B39825B369BDFE52 /* JXCategoryView-prefix.pch */, + E500FBB10C2688926FE711E6F0799D44 /* JXCategoryView-umbrella.h */, + BEB9455CE0A06FE1E60E43D8A39479DA /* JXCategoryView.debug.xcconfig */, + 945DDC24E71F66C3DCBE8E86CA706E0B /* JXCategoryView.release.xcconfig */, + 8A2C8E6876C747357783A21F96E8476D /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/JXCategoryView"; + sourceTree = ""; + }; + 3820C07F4BDD09E693131803ED9AA626 /* Support Files */ = { + isa = PBXGroup; + children = ( + C4F6AE3117069C0D3834E765017DF4FD /* MBProgressHUD.modulemap */, + 7336C0047ACEDE5EA0CB2AE118A7D79F /* MBProgressHUD-dummy.m */, + 01154E6CA763EC7736E4D032FCD619FD /* MBProgressHUD-Info.plist */, + 08F65DEAE908E352ADAF8F44AF49B2BD /* MBProgressHUD-prefix.pch */, + E4D03194518CA82B12270473AEAB7B83 /* MBProgressHUD-umbrella.h */, + 959F7D4641C53F2E24D4E0E1266BA5DB /* MBProgressHUD.debug.xcconfig */, + AC9FAA27822DD84D783E5B0318FBC989 /* MBProgressHUD.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/MBProgressHUD"; + sourceTree = ""; + }; + 3D4F0A2F3CAE336646DE6927E89114C3 /* JXPagingView */ = { + isa = PBXGroup; + children = ( + 0C00A999C0B861EE8FF62873211713FF /* Pager */, + E0C9D84EFCBEB5D93E4193745F73534F /* Support Files */, + ); + name = JXPagingView; + path = JXPagingView; + sourceTree = ""; + }; + 3EEC172B693AD248EF470DF0C8F3EB5F /* DZNEmptyDataSet */ = { + isa = PBXGroup; + children = ( + 03CB08E6A37B7A2EAC285B505C385ABE /* UIScrollView+EmptyDataSet.h */, + 0C3445155E57E40ED8F0D5AEEC3F9F20 /* UIScrollView+EmptyDataSet.m */, + 841D57823DBE92E167188144411AA12A /* Support Files */, + ); + name = DZNEmptyDataSet; + path = DZNEmptyDataSet; + sourceTree = ""; + }; + 3FCC2CB64E41FF947F1CBE433D24D813 /* Support Files */ = { + isa = PBXGroup; + children = ( + 607851C86C7B338A9843A69CE0B4EE75 /* LSTPopView.modulemap */, + B15A8466AD16797422A5769DBF335FF9 /* LSTPopView-dummy.m */, + 9E5185DC7E493427740F60C54F5F96B3 /* LSTPopView-Info.plist */, + 2245BDAEDC40FE0F5B44715A714C3EF9 /* LSTPopView-prefix.pch */, + 189A17FA9BFD38560693564310A19294 /* LSTPopView-umbrella.h */, + 02A1000DA3A38A20812409494D6BBB1A /* LSTPopView.debug.xcconfig */, + 6F24D0C405C75E4CEF7812471315EA53 /* LSTPopView.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/LSTPopView"; sourceTree = ""; }; 4098ED899C8DF8E013F9F260ECFAA236 /* Pods-keyBoard */ = { @@ -2210,588 +2322,7 @@ path = "Target Support Files/Pods-keyBoard"; sourceTree = ""; }; - 47B776543D6613BCB6FB72308F863018 /* Pods-CustomKeyboard */ = { - isa = PBXGroup; - children = ( - CAD1D653361EAFCC0E4FFD8252FC1E74 /* Pods-CustomKeyboard.modulemap */, - 281686F4C9CC2C718B45E1DEB7E63948 /* Pods-CustomKeyboard-acknowledgements.markdown */, - D742A7EF918BC67B0884AF366F7415FD /* Pods-CustomKeyboard-acknowledgements.plist */, - 3CB13D51E717D347023EEB57263E3072 /* Pods-CustomKeyboard-dummy.m */, - 641251D3092FFCF2B6259BF8676A212E /* Pods-CustomKeyboard-Info.plist */, - 9DDD0462C32F55EF5E9CB1056459809F /* Pods-CustomKeyboard-umbrella.h */, - 0D6215D1BCCE125B8DF73E38013CBBDC /* Pods-CustomKeyboard.debug.xcconfig */, - 1D774D8146EBC82B4A77204A273761B8 /* Pods-CustomKeyboard.release.xcconfig */, - ); - name = "Pods-CustomKeyboard"; - path = "Target Support Files/Pods-CustomKeyboard"; - sourceTree = ""; - }; - 4C9B1F2E52EB330FD3C540E9E187C896 /* JXCategoryView */ = { - isa = PBXGroup; - children = ( - 72B1B153E1909E0A9DFA6E6097FD363D /* JXCategoryBaseCell.h */, - 6FD544A644986722B86F15A292995457 /* JXCategoryBaseCell.m */, - 7D7A76984F1E3BB7440B31DF8D5447F0 /* JXCategoryBaseCellModel.h */, - 897530E070833B039DC2821D0B63B137 /* JXCategoryBaseCellModel.m */, - 45E71D8592674E85D7D5DA4831A592BE /* JXCategoryBaseView.h */, - 39D939E1825294C23871CD06F0A1E6A2 /* JXCategoryBaseView.m */, - 051A66FC7C22537DD150BA86539EC9D4 /* JXCategoryCollectionView.h */, - E81450568229FA708143E74A7A580F89 /* JXCategoryCollectionView.m */, - 8B890DAD1E942EF3DB7BF5C23113C1B6 /* JXCategoryDotCell.h */, - 87D7822F88C7B9608DF7E50878B7970B /* JXCategoryDotCell.m */, - 931669FB7F8BA540208B2F23E13B2F19 /* JXCategoryDotCellModel.h */, - 3AF0216318F4C1EBD4207012E5E70EB1 /* JXCategoryDotCellModel.m */, - 8EFBD2E7A88C44123D980C42CB8702A4 /* JXCategoryDotView.h */, - C86FEA7FA982FA034501F7AB37760D49 /* JXCategoryDotView.m */, - 1C9E2AC9C9AE14EBBFDCDBBA925613E4 /* JXCategoryFactory.h */, - B82D0099E75E96FE5ACCF5B647388551 /* JXCategoryFactory.m */, - 9234E8779322D7F9722AF6E18FF9F6F3 /* JXCategoryImageCell.h */, - 8067C53E08CA3787D9D5C3551F86EF9D /* JXCategoryImageCell.m */, - D51E4D4230E01D5F3D9340BDF320C3E1 /* JXCategoryImageCellModel.h */, - 570A4EA50A989D93BDAC90837E4F3637 /* JXCategoryImageCellModel.m */, - 31C9A23E37AE09BB9DC1BC766BD3A6AA /* JXCategoryImageView.h */, - 5CB6F43E2EFE165260D66B0BFF9A8831 /* JXCategoryImageView.m */, - 5EE479D553AE99C7C893E8B21299B3AC /* JXCategoryIndicatorBackgroundView.h */, - D68722AFBA338282E0B3C89AFE0F83AC /* JXCategoryIndicatorBackgroundView.m */, - 2A4AC508097EE18B75D5D75FDA7CF5C1 /* JXCategoryIndicatorBallView.h */, - F9FBE6B4C01D1445DBFC466AEA64E5D8 /* JXCategoryIndicatorBallView.m */, - 913F72595D3AEFAFE006FD96A54FD8DA /* JXCategoryIndicatorCell.h */, - F9F30602CBEA307F110682B47DBF3B59 /* JXCategoryIndicatorCell.m */, - 5EFCD05B81004D2C239BFBEBEE4DC3D5 /* JXCategoryIndicatorCellModel.h */, - 7E73D1DD407F0535009A207AB317F8B7 /* JXCategoryIndicatorCellModel.m */, - 37C2A3B1C753D4547646108720BF5321 /* JXCategoryIndicatorComponentView.h */, - 1D490F15AED6B55BCD64F4D5193A9375 /* JXCategoryIndicatorComponentView.m */, - C398AC4FA166ECBDBFA37681D3C108CC /* JXCategoryIndicatorDotLineView.h */, - FD7C0DEE68BC5E8256170F72FCC61847 /* JXCategoryIndicatorDotLineView.m */, - EF2876A2D62001FE741FE92492A10CFF /* JXCategoryIndicatorImageView.h */, - B3443BE7FBE80A857A146093C743D9BF /* JXCategoryIndicatorImageView.m */, - A527D460219BC25D3D8E05E8A68C23C9 /* JXCategoryIndicatorLineView.h */, - B49F76B93F72D361782D7DA99B65ADC9 /* JXCategoryIndicatorLineView.m */, - 30E03A823CD994C7C3DEA8D91B90C5DE /* JXCategoryIndicatorParamsModel.h */, - 1936EF3FEE34E513D746BA5037CDEE80 /* JXCategoryIndicatorParamsModel.m */, - 92A35222DEEC452079F1343331C6E154 /* JXCategoryIndicatorProtocol.h */, - D25C8F67455D872A48F4797213321EA4 /* JXCategoryIndicatorRainbowLineView.h */, - 021930E01F482BDF2DEAAA2AF9FDCF18 /* JXCategoryIndicatorRainbowLineView.m */, - 5B766998FBEAD558A15F06134D5A9335 /* JXCategoryIndicatorTriangleView.h */, - C31C4A7197700436AFBAB631C088A6AE /* JXCategoryIndicatorTriangleView.m */, - 2DFC8007FA865661CA9E295ADD1014BA /* JXCategoryIndicatorView.h */, - 1817B2506E6D89DAFA8176C4A51738C0 /* JXCategoryIndicatorView.m */, - E948F26A10F663204E24603E8527A7F5 /* JXCategoryListContainerRTLCell.h */, - 96D1E2DE4F6F4EB00BD41C7ABD504109 /* JXCategoryListContainerRTLCell.m */, - D9CF33220A4EDFF59077DE1F83605414 /* JXCategoryListContainerView.h */, - C63CFE9D73B31D9EBEF51E32F9AC7286 /* JXCategoryListContainerView.m */, - A23AD7EF4A12F64EAAFE5154D8DC5843 /* JXCategoryNumberCell.h */, - 7B51D3C0C65114DF44F6DDB3ED9C4E4E /* JXCategoryNumberCell.m */, - 292BBC0398F56F3818017A7314541B45 /* JXCategoryNumberCellModel.h */, - 5633AC0E53EEE3085AFE9CB101E6C0CF /* JXCategoryNumberCellModel.m */, - 7B8734ED62BE39C69073D2C32183C6FC /* JXCategoryNumberView.h */, - D5119B7CF0FE429CF0E185983E72F98F /* JXCategoryNumberView.m */, - 0CF1A36FA548FCE3A4F7DA66625E9583 /* JXCategoryTitleCell.h */, - B49837A2AA042F710F43F143A929D49F /* JXCategoryTitleCell.m */, - E01ADBA325921AF74B0FBD58F7BB5032 /* JXCategoryTitleCellModel.h */, - B70A750F053AB9B0B60CBF456ED577A9 /* JXCategoryTitleCellModel.m */, - 524557CADCF9674C470A7B1764594AEC /* JXCategoryTitleImageCell.h */, - 5EADC8693C7692FBBE4CE165F51B28E9 /* JXCategoryTitleImageCell.m */, - 3B812F8DDDC6CC3E3ACDB1D17716E70C /* JXCategoryTitleImageCellModel.h */, - B28192DA39251C0AC1C30AE245A9A547 /* JXCategoryTitleImageCellModel.m */, - 9E91A12C513A640E68663D4ED668C0FC /* JXCategoryTitleImageView.h */, - 9EC4E80691EA4009AB067722DA72E4D5 /* JXCategoryTitleImageView.m */, - 25475D081A3343232AD119F5F5A5F24A /* JXCategoryTitleVerticalZoomCell.h */, - F3BAE7C9BD506017B4C0D7BBB9100900 /* JXCategoryTitleVerticalZoomCell.m */, - C4D51AE584C5960F5C6B60C866377741 /* JXCategoryTitleVerticalZoomCellModel.h */, - 230B07768E56A05E48373DAA2EAC05DE /* JXCategoryTitleVerticalZoomCellModel.m */, - 996C55702A2E4E7B3785C0C5454598C9 /* JXCategoryTitleVerticalZoomView.h */, - 43BA7B9A75BE654B8242649314595C2D /* JXCategoryTitleVerticalZoomView.m */, - 5105F32D29B4C0D80B780EE2DF6D2898 /* JXCategoryTitleView.h */, - 8FEE8F6EEF601125225DCB1FEACED91C /* JXCategoryTitleView.m */, - 892976CDE28E9BEF86BFABB5F84E72F6 /* JXCategoryView.h */, - 8FF761C99D422AE106C31A4A7AE469C7 /* JXCategoryViewAnimator.h */, - 95BCF1B96C9A492409E9634BC63A400B /* JXCategoryViewAnimator.m */, - B4750EDA171CA7EB95AFE62489A712EF /* JXCategoryViewDefines.h */, - 22A80188C121A76950A88A3321260BFD /* RTLManager.h */, - 9A3BA26DC995AB016051D522F5691C91 /* RTLManager.m */, - 3D72A1C48CB238B4D5F50BA925DEDEAE /* UIColor+JXAdd.h */, - EA759F283932CC196A3C378E0037B993 /* UIColor+JXAdd.m */, - 5FEA93EEEC74A71E4D426F48D7F850F2 /* Resources */, - F4552932065591EFBCEA1E5854647226 /* Support Files */, - ); - name = JXCategoryView; - path = JXCategoryView; - sourceTree = ""; - }; - 4D01249FF2A98F37C991C38E6B67067C /* JXPagingView */ = { - isa = PBXGroup; - children = ( - B4640B79F6E1B39F4E2822274BC61D23 /* Pager */, - DB5A3B2FEE3BD7A679B91E83BA32906B /* Support Files */, - ); - name = JXPagingView; - path = JXPagingView; - sourceTree = ""; - }; - 4E1FCFC15AFF6ACA076B1D8B295CDE1D /* Support Files */ = { - isa = PBXGroup; - children = ( - 3C530EFDCDFFC732A409BADBE3F0D068 /* MBProgressHUD.modulemap */, - D30B8333D334528105E28100C243348D /* MBProgressHUD-dummy.m */, - A16556ABD8D8BADE087CDC162140E59B /* MBProgressHUD-Info.plist */, - 98768C46376F54DFEB58CDD9F278AC71 /* MBProgressHUD-prefix.pch */, - A8AF8342462E3EDE8E3D40F840DFA00C /* MBProgressHUD-umbrella.h */, - EC4CFDD75B85C12B1C1393BEA03A165C /* MBProgressHUD.debug.xcconfig */, - AC0C26DBF6F4D6A9D8C1BF55FE14DABA /* MBProgressHUD.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/MBProgressHUD"; - sourceTree = ""; - }; - 579E4939EC6AC009496870BECBDEC208 /* Reachability */ = { - isa = PBXGroup; - children = ( - 9C0082C9FF6875DA300AE3D8453DCB62 /* AFNetworkReachabilityManager.h */, - C75FCCDECEB6A92A56B67E27033473B6 /* AFNetworkReachabilityManager.m */, - ); - name = Reachability; - sourceTree = ""; - }; - 5FEA21AFA94BB3973C15EEFD1CA50FFA /* LookinServer */ = { - isa = PBXGroup; - children = ( - 8083A32807E86242A863314EF6818E55 /* Core */, - 831477AC631FF14EDA7861CA75B58087 /* Support Files */, - ); - name = LookinServer; - path = LookinServer; - sourceTree = ""; - }; - 5FEA93EEEC74A71E4D426F48D7F850F2 /* Resources */ = { - isa = PBXGroup; - children = ( - 7AC0215893BDD3C5E126FCE996097AB4 /* PrivacyInfo.xcprivacy */, - ); - name = Resources; - sourceTree = ""; - }; - 619A9868F13BC15F5FC65525C1D9E2CF /* DZNEmptyDataSet */ = { - isa = PBXGroup; - children = ( - 2945888F89AB6D3ECBBEDD6E09D1B949 /* UIScrollView+EmptyDataSet.h */, - 45FCB10C5ADD911EC17F1E6BAAFE9892 /* UIScrollView+EmptyDataSet.m */, - 6243689E5C76660F684D23A4B8790B3A /* Support Files */, - ); - name = DZNEmptyDataSet; - path = DZNEmptyDataSet; - sourceTree = ""; - }; - 6243689E5C76660F684D23A4B8790B3A /* Support Files */ = { - isa = PBXGroup; - children = ( - 406C8D3FB686F0A24482B5EC0964787A /* DZNEmptyDataSet.modulemap */, - B8322800FD1F06BC2FEA3A9EEA874E20 /* DZNEmptyDataSet-dummy.m */, - 2B53DEB14A9698F954D95E54715C1911 /* DZNEmptyDataSet-Info.plist */, - 7A307E6A261D750F85B7C9C1575036E4 /* DZNEmptyDataSet-prefix.pch */, - 6523AFC889399B6B25C08CCBEEE2F0B6 /* DZNEmptyDataSet-umbrella.h */, - 48E1ED2BAC3C5C1B077AAB67F3325D4E /* DZNEmptyDataSet.debug.xcconfig */, - 5CB726B6B5C83EAABA9AC89E76D45643 /* DZNEmptyDataSet.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/DZNEmptyDataSet"; - sourceTree = ""; - }; - 6D1FBB10825D24E335F04D97066D9C66 /* NSURLSession */ = { - isa = PBXGroup; - children = ( - 060133813AFA51D11B917CB91A3D4950 /* AFCompatibilityMacros.h */, - FB614FC70886C761E2BA7E9C7E7F2D88 /* AFHTTPSessionManager.h */, - A11C415AC80BAC0B06685E1F8AC7C7C8 /* AFHTTPSessionManager.m */, - 1612A7E2EB4D912BD038AFA9FAE11CFD /* AFURLSessionManager.h */, - EA3E73CFAE53223D9EC3DE4B0794DB06 /* AFURLSessionManager.m */, - ); - name = NSURLSession; - sourceTree = ""; - }; - 7DD842DFF9E829253FACA707DA5ADAAB /* FLAnimatedImage */ = { - isa = PBXGroup; - children = ( - E386525610DF7AB4E84ED0202969AB8E /* FLAnimatedImage.h */, - D1046C4A0F4D596969B881D83BCC0FA1 /* FLAnimatedImage.m */, - 18EAC20398B46C2C580B542618314D9E /* FLAnimatedImageView.h */, - 148EEB030F62D4D33B4C03AE45AD6C08 /* FLAnimatedImageView.m */, - CABD2BCBA14C84A63E7608CED87846A3 /* Support Files */, - ); - name = FLAnimatedImage; - path = FLAnimatedImage; - sourceTree = ""; - }; - 8082051853063B4647901F5178837B33 /* Support Files */ = { - isa = PBXGroup; - children = ( - A14754CFA2BACA27D3CA6DD44F6D8F10 /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */, - 5978BDDC6A977C5D014B3D0CC0294043 /* SDWebImage.modulemap */, - 61C0CC288A628CFA871D599D497E2A8E /* SDWebImage-dummy.m */, - 9FB49DC67A435D7D63695F113C3D398C /* SDWebImage-Info.plist */, - AF5F1AB306D02EC6A5F39878FAE8BEA1 /* SDWebImage-prefix.pch */, - FB84DF0F5016EBAF04FE5FE9F22081C0 /* SDWebImage-umbrella.h */, - 93B896E371962B657B3B85C108092214 /* SDWebImage.debug.xcconfig */, - 81F7F63875295940D9A950DB7D2EBDE7 /* SDWebImage.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SDWebImage"; - sourceTree = ""; - }; - 8083A32807E86242A863314EF6818E55 /* Core */ = { - isa = PBXGroup; - children = ( - 768785318FEB9536A4DAAD47BD76396B /* CALayer+Lookin.h */, - 657631264951C7514A1788B1C6316E7F /* CALayer+Lookin.m */, - 77DEC7B6CE458C6AAB89A25A3E05BA4B /* CALayer+LookinServer.h */, - 798B3DCD95877B6C7D997E0652FB6E9A /* CALayer+LookinServer.m */, - 8BE10EB8B74E3D1DE4172EF863BC22F8 /* Color+Lookin.h */, - 4B2681504ECC11F7B0563ECF0A1FDDFA /* Color+Lookin.m */, - 8679B55EBC5DC660D8E798D1B986FC22 /* Image+Lookin.h */, - C6553D3214536278C24D990CC36267F3 /* Image+Lookin.m */, - 313050E8524ED89E2B2CF8F5C1CC7633 /* LKS_AttrGroupsMaker.h */, - 00AE10F23D2B898E9F45884FD9904B2F /* LKS_AttrGroupsMaker.m */, - ADF656282B85E6C974597F555BDE3F21 /* LKS_AttrModificationPatchHandler.h */, - DEFCE7D8BFD813860A380F7F5B5EB401 /* LKS_AttrModificationPatchHandler.m */, - 769C3408F11A51A90B589A6DBB334C55 /* LKS_ConnectionManager.h */, - DA49453EBB9C905AD701D17F18479113 /* LKS_ConnectionManager.m */, - 52FF07E10C8C0B816653B6836CCFFD04 /* LKS_CustomAttrGroupsMaker.h */, - AB2B98D8DC3605842D8528F53C1896A2 /* LKS_CustomAttrGroupsMaker.m */, - 1EFF4D34DD5391DCE7D206B11306BCE5 /* LKS_CustomAttrModificationHandler.h */, - D00729EFDA62359B2F2AA1EF43FADFD9 /* LKS_CustomAttrModificationHandler.m */, - A0925E96742E33F78D548F10A7C0475D /* LKS_CustomAttrSetterManager.h */, - F363F53534ED7FE5A4BB0A1E1863D5E7 /* LKS_CustomAttrSetterManager.m */, - 98935AEC9F6608D5CCBFEF667B9F658A /* LKS_CustomDisplayItemsMaker.h */, - C19EBB7B5E5A5B4CB83F93B794EA02A1 /* LKS_CustomDisplayItemsMaker.m */, - 51AB8F5FA4517AC80D7763B2894462EB /* LKS_EventHandlerMaker.h */, - CD6BC672271DF551FD22D8BABC528CA6 /* LKS_EventHandlerMaker.m */, - 9C47102257C212ED978684D39466579B /* LKS_ExportManager.h */, - 207535A186296DE018201ED1B7DDD076 /* LKS_ExportManager.m */, - AA7E9357D1D22FB737AEE89305734112 /* LKS_GestureTargetActionsSearcher.h */, - C81473AB6162F68681F317D8EC207A4C /* LKS_GestureTargetActionsSearcher.m */, - 3CA454A209E71894BC9366B10B95D086 /* LKS_Helper.h */, - 4D2B4D757199E020DE43661B60EB2819 /* LKS_Helper.m */, - FEA159570B75D1C95DC0E0B5836BACFF /* LKS_HierarchyDetailsHandler.h */, - 0719BBC5095E9B709A7485C347010514 /* LKS_HierarchyDetailsHandler.m */, - F1FB9919B7B8171A6A8679BDDA407F68 /* LKS_HierarchyDisplayItemsMaker.h */, - 00B27A1456536538B2E7220C71AA3F4F /* LKS_HierarchyDisplayItemsMaker.m */, - 8B8796E86BD11BC29D00EED72E50AE91 /* LKS_InbuiltAttrModificationHandler.h */, - A1DAAC915F745C515E0BF4D613B5CB1C /* LKS_InbuiltAttrModificationHandler.m */, - EDA0AA2D50C091E5400CDFDEC4B5B802 /* LKS_MultiplatformAdapter.h */, - 957B3209BD81CDA1C8049B3245F6946E /* LKS_MultiplatformAdapter.m */, - DBFA6FCFCE1CB3F169BDBDCE936950B5 /* LKS_ObjectRegistry.h */, - CB5214881D82D6C122FB4D3B471F9D93 /* LKS_ObjectRegistry.m */, - AFBA747DBA20D4BACF78CA8DE98ADF94 /* LKS_RequestHandler.h */, - DF017A36F518C19E10298190FD8A84C4 /* LKS_RequestHandler.m */, - 52AF8374431A1EA8420BA1E29139131E /* LKS_TraceManager.h */, - C7F42FC60A06A5673FA7DE53298188E2 /* LKS_TraceManager.m */, - A4CFB2BE169777F50B29077639FCFEC4 /* LKSConfigManager.h */, - 32E665F5EEABCF137D52CE4A3889C9F0 /* LKSConfigManager.m */, - 07C3DB4C7661755654D296A929BE2CE7 /* Lookin_PTChannel.h */, - 862D8BDF52FBE8FCF3A562F5A62C802E /* Lookin_PTChannel.m */, - 8B523AAA92DB90BD5B95092AF6B85BFB /* Lookin_PTPrivate.h */, - 3E05D85B85A84A7D628539AD042EC841 /* Lookin_PTProtocol.h */, - 4B6F5F5F32C55F6B9F4E87EC57A0A074 /* Lookin_PTProtocol.m */, - 210B700E8324769F741C26126E6B1F4A /* Lookin_PTUSBHub.h */, - B1850D4E22F95780586FA04DA695C24C /* Lookin_PTUSBHub.m */, - 3D8A828331C79742A41F54C2050C90A8 /* LookinAppInfo.h */, - DF85367F662269F3652AFC693AA2B00F /* LookinAppInfo.m */, - 903EBE6439B30182644FFF066DE11129 /* LookinAttribute.h */, - B267D6EC269C7ADF7A4202363528E8C2 /* LookinAttribute.m */, - B915A35174E3017D6DC61C0A3E31050E /* LookinAttributeModification.h */, - 39592D3DD29808CC34F5BDE8FFAD64E6 /* LookinAttributeModification.m */, - E6FEAED2BC2A577A78A12FA14FC3BB6B /* LookinAttributesGroup.h */, - D0B1EDD790AB62D80A6CA23D5272938B /* LookinAttributesGroup.m */, - CAE21A3C562355122DA705E505CCA673 /* LookinAttributesSection.h */, - 4F8D39C76EB84B28054B453882C78E41 /* LookinAttributesSection.m */, - F32705CBE56ACF430653A1C459F5351E /* LookinAttrIdentifiers.h */, - 9D4F497397BEDE35BC05F6C2B6D33577 /* LookinAttrIdentifiers.m */, - C9E1D6C567F43B4A9410AC83170573DE /* LookinAttrType.h */, - 97DE751E0ED3939932D72FB39C5A934A /* LookinAutoLayoutConstraint.h */, - 38F21B02ED02115E613C152CE563BD5A /* LookinAutoLayoutConstraint.m */, - 99712B41FFAFC24C5F649A94D8DD7FFE /* LookinCodingValueType.h */, - 10DBEAC7DAAC95D5A947ACA061058C0B /* LookinConnectionAttachment.h */, - 9C75F181A3E07F7E7B4B017B48488393 /* LookinConnectionAttachment.m */, - D9BB987ADE61FFDF3C240961F2EB4DDB /* LookinConnectionResponseAttachment.h */, - B2B7D0FDFC6ECF60B59728E60160431B /* LookinConnectionResponseAttachment.m */, - F5B865CFCA1FF1600CB766B9BC34B8D9 /* LookinCustomAttrModification.h */, - 7E445C787AA09C1E3A771E4C7DBCE2CA /* LookinCustomAttrModification.m */, - 3DDFB85C3FF1851267A20FACB64B4497 /* LookinCustomDisplayItemInfo.h */, - 44B0B0F109E74E6F92B6497967BCE536 /* LookinCustomDisplayItemInfo.m */, - 6AB6F2617132C99A6B5CB953305CCA89 /* LookinDashboardBlueprint.h */, - 73A2C1D7BD2A650246BEE1A00F6D836C /* LookinDashboardBlueprint.m */, - 7DD55E3EFF5073BEBD483D293C40A0D6 /* LookinDefines.h */, - 6EE8AE5699FC4ACD4283D4626ACDF742 /* LookinDisplayItem.h */, - AE19AE8E2478EF2E39C49272A1998EFE /* LookinDisplayItem.m */, - 407D327724ADF96791DFD9B922AA254A /* LookinDisplayItemDetail.h */, - 15D6A20A536D39FB4F4DE78CEC3512CE /* LookinDisplayItemDetail.m */, - 05EE9449F14265ADB3100E60632AB642 /* LookinEventHandler.h */, - D4CFF1EB3CBDD5217E39DD58BD101359 /* LookinEventHandler.m */, - FDCCFFDED68135F2816CA2167E15CF64 /* LookinHierarchyFile.h */, - 3A1C13D0C9F5E8ED93D0398C379507C1 /* LookinHierarchyFile.m */, - 26469EA2BF7F49FCDA80695277950B2B /* LookinHierarchyInfo.h */, - F4F901625B3879AD34FA2A0373208F59 /* LookinHierarchyInfo.m */, - 00C9A4038FA1CE3381055E02DAAEC90E /* LookinIvarTrace.h */, - 6148399DD529311A930CEF2A2AC2FBD4 /* LookinIvarTrace.m */, - 371A20C759D3E78183B0BC7EA626FA2D /* LookinObject.h */, - CFC8ED8D34DD2679124911EB0F515607 /* LookinObject.m */, - E23048DA7D038B179D12173BA0F800DB /* LookinServer.h */, - EB54379A72A5DCC64A2C9D42F05AE928 /* LookinServerDefines.h */, - 09799A44FC43F3184E20B590CC73FFC7 /* LookinStaticAsyncUpdateTask.h */, - FCBD8DFA94436F5E62F1AA0F1AD2F2FA /* LookinStaticAsyncUpdateTask.m */, - 17A16F153D08C8BBF15070C730EC0C3A /* LookinTuple.h */, - B5157027D16B7E61C1D5AB091D10458E /* LookinTuple.m */, - B0922492568B0DD6D1F92C0E3B3A53A1 /* LookinWeakContainer.h */, - 60F9066C601EE11D24D22C170F05AF13 /* LookinWeakContainer.m */, - 852A42FAC0EA5F64033033841A03891A /* NSArray+Lookin.h */, - 4AAF4EE016C54A7F264F9B8FBB0853C8 /* NSArray+Lookin.m */, - 4A2BDE1ACE119E645C72F92B4CCAECF4 /* NSObject+Lookin.h */, - B6575913AB2C7FDA723D279165349FF6 /* NSObject+Lookin.m */, - 3A9477BE731926B610D9B847EF5B7347 /* NSObject+LookinServer.h */, - A566FD7AC8F85BE1E72F6DF11FEA6338 /* NSObject+LookinServer.m */, - C1D06F4343D9C630BC102E7BCD9CECCF /* NSSet+Lookin.h */, - E312EC8FB74A492C6D5A647700644AC4 /* NSSet+Lookin.m */, - 92670C1E3C13D6C6157E7AFB4347DB17 /* NSString+Lookin.h */, - C9A08CB30EFC3A6CB342354C253BE4D8 /* NSString+Lookin.m */, - 70D52E1253BDF6EF05A1C5C1D46734EA /* Peertalk.h */, - C41AE199679E3EEC03FA1272FE103027 /* UIBlurEffect+LookinServer.h */, - B041D1C998D0894DB89A31049CC1B872 /* UIBlurEffect+LookinServer.m */, - A810CCF3953514350B557ABBEEBE5FF6 /* UIColor+LookinServer.h */, - FED91C88820F2942B3A007C5E5D17ACB /* UIColor+LookinServer.m */, - 60195DBDE404C5ECBC4E710D0F5E50E7 /* UIImage+LookinServer.h */, - 20C453B83E1025092DAD587080018B43 /* UIImage+LookinServer.m */, - 310DC522C0637DDB20D8D38412CB4153 /* UIImageView+LookinServer.h */, - DA0C012CAB8552E7EA8382B0E5D6B738 /* UIImageView+LookinServer.m */, - D5909A44E1AC01893309CADDDBC4E50C /* UILabel+LookinServer.h */, - 6BD526972490CFC41EE7106FF8E272CC /* UILabel+LookinServer.m */, - E847BE3D7FA245C62A989A8A4F90542A /* UITableView+LookinServer.h */, - B77422F87DF00923771B3EF8E6C0A9BF /* UITableView+LookinServer.m */, - 5D2F2FDA20E8BC9884D1E9ED05D83DDF /* UITextField+LookinServer.h */, - C64A52A00F5D8A13BA6BD40D1834BF56 /* UITextField+LookinServer.m */, - FCA4EBF34C88159600AC127D3548346D /* UITextView+LookinServer.h */, - 1D8DC297A0249D2FB0109542F14B89AB /* UITextView+LookinServer.m */, - DC7496C927F9E881D19A203C207B5417 /* UIView+LookinServer.h */, - 76AEEFCD2262D6843C63EB46FD6663BB /* UIView+LookinServer.m */, - 4C7F47A09BE728487DF546FE00CA555E /* UIViewController+LookinServer.h */, - 8A9BFDE06B11541EA7E87336A09C3816 /* UIViewController+LookinServer.m */, - 9ABEB6B0A44AC8BCBC6CB1A8A8A9A0FF /* UIVisualEffectView+LookinServer.h */, - A7DF910F689AA8FEAD1EF63DDDFCB780 /* UIVisualEffectView+LookinServer.m */, - ); - name = Core; - sourceTree = ""; - }; - 831477AC631FF14EDA7861CA75B58087 /* Support Files */ = { - isa = PBXGroup; - children = ( - 0DEA9604C374890EC86557DA00C054E0 /* LookinServer.modulemap */, - 6D00FB0A2824B0B4E8A345D97C52AA3B /* LookinServer-dummy.m */, - 06878A6718B46A5E825D03CB581CD8B2 /* LookinServer-Info.plist */, - 5C847B3748FF7761203F8DDBD028D651 /* LookinServer-prefix.pch */, - 469576EF612EDF18C057B4FB1E423192 /* LookinServer-umbrella.h */, - 7376537428F41B571A3D20FF9175747F /* LookinServer.debug.xcconfig */, - 438B056E0DAE53D40DB4894FF36879AF /* LookinServer.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/LookinServer"; - sourceTree = ""; - }; - 83B95F67C4195EA01B02C929A0C06C54 /* Support Files */ = { - isa = PBXGroup; - children = ( - 616DFB551B9EEC8F4D98DBDC3C2543CA /* MJExtension.modulemap */, - 43E163147E40F868F458CD979D77C4E4 /* MJExtension-dummy.m */, - 23B693321C3E2CA46CF401E48AE2795D /* MJExtension-Info.plist */, - 4531FCCC5DE7D00D6F827809F7CD4289 /* MJExtension-prefix.pch */, - 2713EAAF042877733E01E359F3224ABF /* MJExtension-umbrella.h */, - 954035BEFF37A926FB7C25E5508CD25D /* MJExtension.debug.xcconfig */, - 7B582290DB93C466A4DA695035B6DA2E /* MJExtension.release.xcconfig */, - E75295D3FB5952A7B3A8B497D502A68D /* ResourceBundle-MJExtension-MJExtension-Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/MJExtension"; - sourceTree = ""; - }; - 8B3672DA9A8B9E29E7BA1D933AD6F3B2 /* Bugly */ = { - isa = PBXGroup; - children = ( - BD3E878C18624C95338F2E281FA906B8 /* Frameworks */, - C910B48399196A5E00BB083DA443CDA1 /* Support Files */, - ); - name = Bugly; - path = Bugly; - sourceTree = ""; - }; - 9A6094CFD16104AD70583A90D874C249 /* Support Files */ = { - isa = PBXGroup; - children = ( - 2795C0F083BB71E948BE56DAFC73957B /* LSTPopView.modulemap */, - C98FF255A58DDF6F211BD72458B9C3D0 /* LSTPopView-dummy.m */, - F157AC2A50D3773392D42322F67E0EB0 /* LSTPopView-Info.plist */, - DA08E928976E65BC11D71562A0E4FBA2 /* LSTPopView-prefix.pch */, - D7C0280DF79D384D6CBED6E080E02BB8 /* LSTPopView-umbrella.h */, - 163DD1C8E32A767AC162D451FB47DECB /* LSTPopView.debug.xcconfig */, - 6BD04BB450562622E215B33554778CC3 /* LSTPopView.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/LSTPopView"; - sourceTree = ""; - }; - 9F5BA1D45C5B890529791B582CDD92E6 /* MJExtension */ = { - isa = PBXGroup; - children = ( - 13AC6B7EC0E45B7BC751451206C8C575 /* MJExtension.h */, - 65CCB6F10EC6B284E771B999975CE0B0 /* MJExtensionConst.h */, - 2D0DE149DDBAC4B5DCFA0C2217970015 /* MJExtensionConst.m */, - 99650956C6DC18187951AE72D50E44A2 /* MJFoundation.h */, - BCF14CEE3203A4E740B9A9FD66CCABA4 /* MJFoundation.m */, - AB379411892DE9D6AC2BA478DD047B45 /* MJProperty.h */, - 9D7E307063029FFE21DDCDC0455FA473 /* MJProperty.m */, - 05A7B005509B15E31ECEED7DFEEB1EDB /* MJPropertyKey.h */, - 57A3558C23C0EFA92D7C80FBF8A6332A /* MJPropertyKey.m */, - A0329494F5B3BBF4A9C54DD83622388B /* MJPropertyType.h */, - 073DE0C455B2CE33A0FBA3C6ECF4F8CF /* MJPropertyType.m */, - DEDA7D852A16AEB2E4133F8138BB40A3 /* NSObject+MJClass.h */, - 6D149C2EB765D348E439D96EC2A80A04 /* NSObject+MJClass.m */, - DD2F0E472487CBFBA5CA4F3C62C1BB0B /* NSObject+MJCoding.h */, - 0249A8711339B6CD1E26258C064677E9 /* NSObject+MJCoding.m */, - 1B41D364B66F85CF33EB15116929CF48 /* NSObject+MJKeyValue.h */, - 0C7575113B17F46DF34D3C118CB31308 /* NSObject+MJKeyValue.m */, - 0C6F8F3E8953AADD74838D4A882F45A1 /* NSObject+MJProperty.h */, - D44C8E719DA4251716FDA4B2519C022D /* NSObject+MJProperty.m */, - 12702606A08588ACD81E031A777BAB70 /* NSString+MJExtension.h */, - 15C39377834B42681C3BF6A5471C5F78 /* NSString+MJExtension.m */, - 102054A1E3292F59C346E38466BC61C8 /* Resources */, - 83B95F67C4195EA01B02C929A0C06C54 /* Support Files */, - ); - name = MJExtension; - path = MJExtension; - sourceTree = ""; - }; - A06A903601EA30E66A3EFB3445AE0486 /* Support Files */ = { - isa = PBXGroup; - children = ( - 0A7D8AD4481BE4F0D7389A1662CCA111 /* Masonry.modulemap */, - 07001E763AE097A75E1AFBEB80197373 /* Masonry-dummy.m */, - BD3BC591D3DAF10375616FB7F294F926 /* Masonry-Info.plist */, - BD243AB5EB0FB2763BBC742A8BCF80DD /* Masonry-prefix.pch */, - 128CF11122A7C2009F733361122E39A1 /* Masonry-umbrella.h */, - A603B071469D044FB92322560F131681 /* Masonry.debug.xcconfig */, - 4A4AE7A504C340AE8EE98F70C318D63C /* Masonry.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/Masonry"; - sourceTree = ""; - }; - A55E2B2247987FBEC60B3A5F75016BFF /* iOS */ = { - isa = PBXGroup; - children = ( - 638488B4F5FF9C67F848A841B1A34765 /* CoreGraphics.framework */, - 9D41AAC213895165C450F5576DE42CB2 /* Foundation.framework */, - 77F4C0466DFC43C56F1D982F88EF74A0 /* ImageIO.framework */, - BDEE6097B6411333154FEF90A280E3E4 /* QuartzCore.framework */, - 9F5B3C0CF01454E7AC9226E88FDFBAE6 /* UIKit.framework */, - ); - name = iOS; - sourceTree = ""; - }; - A5CE40587B1D0DEFF98742773A62CA50 /* Security */ = { - isa = PBXGroup; - children = ( - 4C354F545C0CC91C4033DC0D648B3819 /* AFSecurityPolicy.h */, - 4883D2BC668CDDE38C319AC414885077 /* AFSecurityPolicy.m */, - ); - name = Security; - sourceTree = ""; - }; - A989CAE17245D9B811F7FFC909DD86CA /* LYEmptyView */ = { - isa = PBXGroup; - children = ( - B5885DEE0FCB371101A605FDA3D3F35C /* LYEmptyBaseView.h */, - 1D0C4CB17BF463D490AE3400293A0D47 /* LYEmptyBaseView.m */, - 374CEB5E4CAC5B1889E4B3A57B47546E /* LYEmptyView.h */, - 39267406AD82F75ABB872A20BE14F010 /* LYEmptyView.m */, - FA5C6E28985540EE03804DDC4277D459 /* LYEmptyViewHeader.h */, - 7A5F8A5650078BFF9587944F0042AE79 /* UIView+Empty.h */, - A34A186C33DB71F8C4ACB6E0705472D0 /* UIView+Empty.m */, - 0CA8B3EFCD9E73829676C70CE3E88BE0 /* UIView+LYExtension.h */, - 0B4EEA7B77703F45AB157AC651CEF4EA /* UIView+LYExtension.m */, - 1C6C79318C220E5B8848BEC84F0BF1D4 /* Support Files */, - ); - name = LYEmptyView; - path = LYEmptyView; - sourceTree = ""; - }; - B4640B79F6E1B39F4E2822274BC61D23 /* Pager */ = { - isa = PBXGroup; - children = ( - 57460121EED43E41D624C46A92FE9E08 /* JXPagerListContainerView.h */, - E0742EB318197474CB672E4520705ACC /* JXPagerListContainerView.m */, - 3B250EFB659FBBBBA5D680859085344D /* JXPagerListRefreshView.h */, - 659E098AEC86E789470E344EB23EC1DD /* JXPagerListRefreshView.m */, - D564B14F434E85E8016FF192E33548A8 /* JXPagerMainTableView.h */, - 9C2DAB09AC8F3AD6E82FDC5DB2562CB4 /* JXPagerMainTableView.m */, - 7B167FA26CB7B8DC98E1A68B1B44BA8A /* JXPagerSmoothView.h */, - CF46C0579CB3C54966C0F025487DB215 /* JXPagerSmoothView.m */, - 8310CCDF3085A9EE32455CB865148664 /* JXPagerView.h */, - 044A47D1E36901CA79D51CC72EA995C9 /* JXPagerView.m */, - F671FF7CE184FC6A84ADEF036DEA2F7D /* Resources */, - ); - name = Pager; - sourceTree = ""; - }; - B94D7768568A9992200DB461E8CF687F /* Frameworks */ = { - isa = PBXGroup; - children = ( - A55E2B2247987FBEC60B3A5F75016BFF /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - BD3E878C18624C95338F2E281FA906B8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 634119E1E65F912498A262851F72517B /* Bugly.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - C910B48399196A5E00BB083DA443CDA1 /* Support Files */ = { - isa = PBXGroup; - children = ( - 3DF983F1377AD739C3DF33AE51632FCF /* Bugly.debug.xcconfig */, - 0AD4477B34BC6EAF1A362183974F34DC /* Bugly.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/Bugly"; - sourceTree = ""; - }; - CABD2BCBA14C84A63E7608CED87846A3 /* Support Files */ = { - isa = PBXGroup; - children = ( - B6ED434773EE7ECEDAB93E7A62107F73 /* FLAnimatedImage.modulemap */, - 2CCD2F6CD21BCE8D4DC6CE0FB91B91CB /* FLAnimatedImage-dummy.m */, - 64D49E5BC4A3E2ECFAA63B66E38A6F8D /* FLAnimatedImage-Info.plist */, - 353BBBDE951248D62CFDF267ACFAD0A7 /* FLAnimatedImage-prefix.pch */, - 7FAB126742756E8C628ED27AEC1B9567 /* FLAnimatedImage-umbrella.h */, - 2CB55990BE7673BB5930FB77BB2A2C33 /* FLAnimatedImage.debug.xcconfig */, - D5BBA19EC013D7414BE28B29DCA7518D /* FLAnimatedImage.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/FLAnimatedImage"; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - B94D7768568A9992200DB461E8CF687F /* Frameworks */, - E3282B046A353048174B1E513DFF9A4E /* Pods */, - D3828787C1DCC6E76B71C947B6C876AE /* Products */, - F7ED90CD818DD0484BF7DB0E1E3B9AB2 /* Targets Support Files */, - ); - sourceTree = ""; - }; - D3828787C1DCC6E76B71C947B6C876AE /* Products */ = { + 46FFC073ED3675717676FD9A6D01B4D9 /* Products */ = { isa = PBXGroup; children = ( A4FA15D44DF6BAC7550EDEED10862AA3 /* AFNetworking */, @@ -2816,185 +2347,816 @@ DCA062FD08AC9694D8D781B3492421C5 /* Pods-keyBoard */, B0B214D775196BA7CA8E17E53048A493 /* SDWebImage */, CF1281E58AA1045D4B7F33FC56691C42 /* SDWebImage-SDWebImage */, + 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */, ); name = Products; sourceTree = ""; }; - D453386A36746D9803EFAF894ED288F7 /* SDWebImage */ = { + 475888F1ED95631B3C5BD2D8B698EC99 /* HWPanModal */ = { isa = PBXGroup; children = ( - 2F8EF5B81FDAABB39353996747C04D04 /* Core */, - 8082051853063B4647901F5178837B33 /* Support Files */, + F90DCD218D9CE7B66410718F903FD42F /* HWBackgroundConfig.h */, + BA5E009B8610690D3DDBC67E45D5FF7F /* HWBackgroundConfig.m */, + 340965B893AD5E7E845960971D20228E /* HWDimmedView.h */, + 1626A7F50D6347841FFE43D04BAB9EF2 /* HWDimmedView.m */, + 859AA8139C69A8ED55CE4C03AF2A3341 /* HWPageSheetPresentingAnimation.h */, + 2BA0B6E1C928CC5B614C19887B987C09 /* HWPageSheetPresentingAnimation.m */, + 7FBB6DFB067A86D0FC167B767A20D67C /* HWPanContainerView.h */, + A9435F94B2530DBBBA2B0F4818DB2ED3 /* HWPanContainerView.m */, + D613067417303514F3697BE599A2270E /* HWPanIndicatorView.h */, + C0628F76E42EF6B256C47D95774F6487 /* HWPanIndicatorView.m */, + D49CDA48914032B26F3A10790C6CC843 /* HWPanModal.h */, + 56077C48389F9B1095044672B0887D63 /* HWPanModalAnimator.h */, + B9FA6EA3495E0341DC2AA0799245209C /* HWPanModalAnimator.m */, + 9C4EB5EB615CEF1E6FA0038236EAACE1 /* HWPanModalContainerView.h */, + 71D8A0CB202E3BC0417C62AE054DFE91 /* HWPanModalContainerView.m */, + BF92FB29A700B0634F55358F1FC1D8BE /* HWPanModalContentView.h */, + 541912CF842509E54C2F9817338B90E5 /* HWPanModalContentView.m */, + 07D1C2473BCFEB86B0504DB18A9D04D8 /* HWPanModalHeight.h */, + D6D93409F6A6BDA4C7CE4B8E57F61151 /* HWPanModalIndicatorProtocol.h */, + 2CF646920821F69A3AE386E730ABBCDE /* HWPanModalInteractiveAnimator.h */, + 2F8CBF6DA35A241F4B3AC77D1A248B98 /* HWPanModalInteractiveAnimator.m */, + 932A9F898260C3AB0195DEBF202212CB /* HWPanModalPanGestureDelegate.h */, + 5918D263D7433ADA39A5E4A89EBFB550 /* HWPanModalPresentable.h */, + 7A518E59A590CAA7BC0D3ADD4113D0AC /* HWPanModalPresentableHandler.h */, + 043AF57662BB2CDF7FF630CD3C3A4250 /* HWPanModalPresentableHandler.m */, + 00BBED242BDE8C243ED57F21C604EABA /* HWPanModalPresentationAnimator.h */, + CBC4A2C833B1F76F40DA917134EB3399 /* HWPanModalPresentationAnimator.m */, + 9ACA3F6C5DB4154DEE785FCCC90C1D3D /* HWPanModalPresentationController.h */, + F1FAB9A951323777D4A48D49725B9802 /* HWPanModalPresentationController.m */, + 43F68B04BCC53A477CA8E0DDD0110B01 /* HWPanModalPresentationDelegate.h */, + 1A0E2A2C243239D60767D58C2FC52F3E /* HWPanModalPresentationDelegate.m */, + 05FF78D8DD78F6698BD01FCBB18E5020 /* HWPanModalPresentationUpdateProtocol.h */, + E6C476448137596396FEC701467DA4A0 /* HWPanModalPresenterProtocol.h */, + 67F81F7725B74024479124B6022DE5EC /* HWPanModalShadow.h */, + 8CA6355C505F3FEF64B6C7C621AC94D0 /* HWPanModalShadow.m */, + 5A9531FA2B1B637BBDA9F1F75A2AB7E4 /* HWPresentingVCAnimatedTransitioning.h */, + CEFD754D5929FD7A8119DC60B6F1E309 /* HWShoppingCartPresentingAnimation.h */, + E532AF84D90C3C764514E4997CB67BFC /* HWShoppingCartPresentingAnimation.m */, + FB793CF2D68D5ADBDD8489F5CBC07600 /* HWVisualEffectView.h */, + B0A46543847985D468FCB069493BA429 /* HWVisualEffectView.m */, + C03B0A1B7E7515D288BC124A1D727BFF /* KeyValueObserver.h */, + 9A0C92B5F9D72F862E8457D7C22F73C8 /* KeyValueObserver.m */, + CAE2293AF60119096F17C5A20EA09D4A /* UIScrollView+Helper.h */, + A556707295C493B48EB5B9D7B5035878 /* UIScrollView+Helper.m */, + E12645F1AD3E236897418492D724DBCB /* UIView+HW_Frame.h */, + B502706704C901967AE5F80555ABC8E1 /* UIView+HW_Frame.m */, + 396248A5638A63D99C663B0185BD35D7 /* UIViewController+LayoutHelper.h */, + 44FDE6E0FD25622CBD1C32FE4FDD3698 /* UIViewController+LayoutHelper.m */, + 7BE40ABE514BA94E77FE7FDB6CE98130 /* UIViewController+PanModalDefault.h */, + FCF7BB2D7D7F4886FAE37155A0217F59 /* UIViewController+PanModalDefault.m */, + 1FDD439886220AA95FF6B36A5C000873 /* UIViewController+PanModalPresenter.h */, + 4CF65D21498E52597FA5C3E47AACB489 /* UIViewController+PanModalPresenter.m */, + 17770789DDC8684E979B0B4B2C068647 /* UIViewController+Presentation.h */, + 60DE3C334949936CB03401378B243088 /* UIViewController+Presentation.m */, + 7420B956EE1D2AF800264F419510AF7A /* Support Files */, + ); + name = HWPanModal; + path = HWPanModal; + sourceTree = ""; + }; + 47B776543D6613BCB6FB72308F863018 /* Pods-CustomKeyboard */ = { + isa = PBXGroup; + children = ( + CAD1D653361EAFCC0E4FFD8252FC1E74 /* Pods-CustomKeyboard.modulemap */, + 281686F4C9CC2C718B45E1DEB7E63948 /* Pods-CustomKeyboard-acknowledgements.markdown */, + D742A7EF918BC67B0884AF366F7415FD /* Pods-CustomKeyboard-acknowledgements.plist */, + 3CB13D51E717D347023EEB57263E3072 /* Pods-CustomKeyboard-dummy.m */, + 641251D3092FFCF2B6259BF8676A212E /* Pods-CustomKeyboard-Info.plist */, + 9DDD0462C32F55EF5E9CB1056459809F /* Pods-CustomKeyboard-umbrella.h */, + 0D6215D1BCCE125B8DF73E38013CBBDC /* Pods-CustomKeyboard.debug.xcconfig */, + 1D774D8146EBC82B4A77204A273761B8 /* Pods-CustomKeyboard.release.xcconfig */, + ); + name = "Pods-CustomKeyboard"; + path = "Target Support Files/Pods-CustomKeyboard"; + sourceTree = ""; + }; + 4C09443CEEB2850ED2B98CF9EB89F04D /* Bugly */ = { + isa = PBXGroup; + children = ( + 85561DD054361ABB9BC7C6E168A82452 /* Frameworks */, + 2D432F9033351E731489CB4529286E81 /* Support Files */, + ); + name = Bugly; + path = Bugly; + sourceTree = ""; + }; + 5805E654FFC0BC2E2B8A7202E6E18BA9 /* Support Files */ = { + isa = PBXGroup; + children = ( + 88C7EF44FC90DB71EB36BFC446B6489E /* SSZipArchive.modulemap */, + D83421C2502DEB97A44C598BE21EA296 /* SSZipArchive-dummy.m */, + B6423290AB7CA5E22CEDE81C258D9D68 /* SSZipArchive-Info.plist */, + 97B6E43AEA5B93A02D4D198CCDACA57D /* SSZipArchive-prefix.pch */, + 1DDAE60D91D737330BC579F3D1D73D35 /* SSZipArchive-umbrella.h */, + 6AFF16386D920AF66AB8AE2559C331EF /* SSZipArchive.debug.xcconfig */, + 42B611D79D74010B677BFD4B27039E49 /* SSZipArchive.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SSZipArchive"; + sourceTree = ""; + }; + 6E9364A665AA519A20CCE33FAA7F582E /* Reachability */ = { + isa = PBXGroup; + children = ( + DDC47417445918B14DABED8324E64CDF /* AFNetworkReachabilityManager.h */, + F94B4F3D4DD90DFA2F85D7A1E5A7906E /* AFNetworkReachabilityManager.m */, + ); + name = Reachability; + sourceTree = ""; + }; + 7420B956EE1D2AF800264F419510AF7A /* Support Files */ = { + isa = PBXGroup; + children = ( + 08E33FC86CA3CA084EE1AB11459F8F4E /* HWPanModal.modulemap */, + AE4ED5124C7D58B79382F953B4D4AF1B /* HWPanModal-dummy.m */, + B9A1F606877D97F90D0302FFE4CCA3CF /* HWPanModal-Info.plist */, + D2DD1844C1B1D3B679136279376792A0 /* HWPanModal-prefix.pch */, + 30707FCDD9AD91DBE93F5F78AF85037D /* HWPanModal-umbrella.h */, + A1E6FA073B9EC952B16AC395C91C9DF5 /* HWPanModal.debug.xcconfig */, + B59B22A1A3E3EB3C0FD46F485A77D9A2 /* HWPanModal.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/HWPanModal"; + sourceTree = ""; + }; + 7B403B832A6D19418D84FFCB678CE64C /* SDWebImage */ = { + isa = PBXGroup; + children = ( + 8E52935AFAAF48FBBF34B9011AEDA9DB /* Core */, + B01A62AFBCA01B3F40342902BFA8427B /* Support Files */, ); name = SDWebImage; path = SDWebImage; sourceTree = ""; }; - DB5A3B2FEE3BD7A679B91E83BA32906B /* Support Files */ = { + 7C02292A79B74C60B2FCE54BD5E81723 /* NSURLSession */ = { isa = PBXGroup; children = ( - 56F54F2E70EF1B4C4CD6CC49471EBF8F /* JXPagingView.modulemap */, - 10AACE3BDEFABB8B9E709942B03E5595 /* JXPagingView-dummy.m */, - F762DC35806D05FE8346CE64A0357D9A /* JXPagingView-Info.plist */, - A9BB84448AE1154A6E3D359329D6E5D8 /* JXPagingView-prefix.pch */, - B4319C3394898C8897D6580DAC5A5124 /* JXPagingView-umbrella.h */, - 39D7BCC784A30383722D127896FE591E /* JXPagingView.debug.xcconfig */, - D3FD4542A2D174FC95524833AB672073 /* JXPagingView.release.xcconfig */, - 2F04E40EC66FE8A57ECA4BC540959E1D /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */, + 1F23893048C14274F083E80FDA82DF98 /* AFCompatibilityMacros.h */, + 69FB2B06CB82B71B02944853E87357A2 /* AFHTTPSessionManager.h */, + B4F570BBE31A067BEE366B96CD4A2232 /* AFHTTPSessionManager.m */, + 1F2A8BF7AE40248D692ACE5AE8354602 /* AFURLSessionManager.h */, + C88B063885CBDBDC0D3C3C9C76FA86DA /* AFURLSessionManager.m */, ); - name = "Support Files"; - path = "../Target Support Files/JXPagingView"; + name = NSURLSession; sourceTree = ""; }; - E3282B046A353048174B1E513DFF9A4E /* Pods */ = { + 801C7F1AEE24DC4B6CB99996A049EFD9 /* Support Files */ = { isa = PBXGroup; children = ( - F50E68E76DBF5D25ABBDA080A797818B /* AFNetworking */, - 8B3672DA9A8B9E29E7BA1D933AD6F3B2 /* Bugly */, - 619A9868F13BC15F5FC65525C1D9E2CF /* DZNEmptyDataSet */, - 7DD842DFF9E829253FACA707DA5ADAAB /* FLAnimatedImage */, - 276C8F966392FC7A9273EA1CF3239640 /* HWPanModal */, - 4C9B1F2E52EB330FD3C540E9E187C896 /* JXCategoryView */, - 4D01249FF2A98F37C991C38E6B67067C /* JXPagingView */, - 5FEA21AFA94BB3973C15EEFD1CA50FFA /* LookinServer */, - 070A9E270BA37B1A5AAC97680E006F46 /* LSTPopView */, - 288FC03C5D2C78A45B56AFFEE5C2C9F7 /* LSTTimer */, - A989CAE17245D9B811F7FFC909DD86CA /* LYEmptyView */, - EE105AE032C43766E8A0D667D3647744 /* Masonry */, - 2397706FC09C7D8BAD347D387C455173 /* MBProgressHUD */, - 9F5BA1D45C5B890529791B582CDD92E6 /* MJExtension */, - 23E095E4ABDFCF286D5B6E1FB3668170 /* MJRefresh */, - D453386A36746D9803EFAF894ED288F7 /* SDWebImage */, - ); - name = Pods; - sourceTree = ""; - }; - E56FC4F1AC3134805F24F088D231587A /* UIKit */ = { - isa = PBXGroup; - children = ( - C3DBF2503619D6F278D203DBF5D29B4E /* AFAutoPurgingImageCache.h */, - ED87146FC94850F3891F867B1931F652 /* AFAutoPurgingImageCache.m */, - 36CBA5AB35EE7DE7B4A5CDBAC4BE20A8 /* AFImageDownloader.h */, - 41B61F60FDADCD1988F2A5F1B93F6FB0 /* AFImageDownloader.m */, - A198AAC0BC41558B9FC61F89E90D900F /* AFNetworkActivityIndicatorManager.h */, - 6516BB90D0CA47F75712B356350A9FC1 /* AFNetworkActivityIndicatorManager.m */, - DCB771163568003A2EA8F4B1A606B9ED /* UIActivityIndicatorView+AFNetworking.h */, - BF141C03BAA67847DFB6B6DFF0D1CBFC /* UIActivityIndicatorView+AFNetworking.m */, - D7F6132E07FDE40130D6C51920456A21 /* UIButton+AFNetworking.h */, - BF0EE7E880EA65C279154531EF91F5E8 /* UIButton+AFNetworking.m */, - ED332DDCE634104C42A2AF8F698EDFB2 /* UIImageView+AFNetworking.h */, - B628043D13CE1145E17714D58AB2A687 /* UIImageView+AFNetworking.m */, - CBB2B3782C3C4626F075A8900436D09D /* UIKit+AFNetworking.h */, - EB461C49F04DBE8D8B709BDAA4911ADC /* UIProgressView+AFNetworking.h */, - 5B758502F7753329D591359BA2747831 /* UIProgressView+AFNetworking.m */, - 48A816CF0BA23EA39A514E31ED98C5D3 /* UIRefreshControl+AFNetworking.h */, - 80E9CB1F62E65A837FF5E47B2FC3ECA1 /* UIRefreshControl+AFNetworking.m */, - B052BF123A39C5CF4B531584A2A83BED /* WKWebView+AFNetworking.h */, - A1C4717F035C7128013EA7E000DAC18A /* WKWebView+AFNetworking.m */, - ); - name = UIKit; - sourceTree = ""; - }; - EC737F9C95A0D5999B811C9A1D937DBC /* Code */ = { - isa = PBXGroup; - children = ( - DB7D4CE7BA063A9CA415CD86C8825985 /* LSTPopView.h */, - 633C3F66E9BA0FD7538C55D5287ED77E /* LSTPopView.m */, - 7D7595F0F8BE4F40C64D68F0D491C6C6 /* LSTPopViewProtocol.h */, - 6757029D58C1BFD772BCC87D14A52E39 /* UIView+LSTPV.h */, - 1B1E80842E43848FFB0F162AFF96E774 /* UIView+LSTPV.m */, - ); - name = Code; - sourceTree = ""; - }; - EDCE25045C1BBF6ECB7211723055D0DB /* Support Files */ = { - isa = PBXGroup; - children = ( - 6331F4B8E0F66A8F7B8028B33CF71268 /* LSTTimer.modulemap */, - A3211D6272FC8FFC9717C01969D328F7 /* LSTTimer-dummy.m */, - B74E719F2E64B3E186B6F4B672482329 /* LSTTimer-Info.plist */, - 7D6E9AC32A60E19ACB08AED4E4CD31A3 /* LSTTimer-prefix.pch */, - 88F65BAED091224357C1ABFEA1C484FA /* LSTTimer-umbrella.h */, - 6CE98E2FC8B92A0E98F20755C88122A4 /* LSTTimer.debug.xcconfig */, - 73EBDE260791BF4440027F8601391D8B /* LSTTimer.release.xcconfig */, + 4D7647553D09AC39B5FF8CAAB21B2F1D /* LSTTimer.modulemap */, + B60A9EA622DCF45E87F4BCA20F525D85 /* LSTTimer-dummy.m */, + A89B78ED863C4BD746754C68B71EE2D9 /* LSTTimer-Info.plist */, + E5178A3B62E64AF45244812595E62507 /* LSTTimer-prefix.pch */, + BA1686C72867CD846AF19514CDB0DB24 /* LSTTimer-umbrella.h */, + 01771F71A5835C346537272402AFB9A6 /* LSTTimer.debug.xcconfig */, + FDB62804EC1DE74D07B723CF6E1C0164 /* LSTTimer.release.xcconfig */, ); name = "Support Files"; path = "../Target Support Files/LSTTimer"; sourceTree = ""; }; - EE105AE032C43766E8A0D667D3647744 /* Masonry */ = { + 831FD992D3E6F860B735BD29A6055993 /* SSZipArchive */ = { isa = PBXGroup; children = ( - AE4CC2528765A45B472AD5B813D01119 /* MASCompositeConstraint.h */, - 70CD4567ACE296214EA982091E2B8F90 /* MASCompositeConstraint.m */, - FD61DA71A7253ED59D65D424C86E2C50 /* MASConstraint.h */, - 23B6D3BC0C4291E4CB154E7F35862BCB /* MASConstraint.m */, - AC368BF52013B3AE323DC35D782A044B /* MASConstraint+Private.h */, - 404BBFC3B5A2ADAEF4E188881B357111 /* MASConstraintMaker.h */, - 673C80521DE4F20FDE3E9A82E6EBEC53 /* MASConstraintMaker.m */, - 2A98EB9CE425ECC87D9747E4EAC3DB0C /* MASLayoutConstraint.h */, - 7DEDD90DB6CF7DD05B6B753765E65AAD /* MASLayoutConstraint.m */, - 1E2CD23DF8D29ECCE7278412B1BFFFA2 /* Masonry.h */, - 1BFABBA210FF6BEF09CABCCBE8AE590F /* MASUtilities.h */, - 7083FA062632CC52050FC4EB53D64E3A /* MASViewAttribute.h */, - B9CA9F01554205BFBACCA553143C8676 /* MASViewAttribute.m */, - 6EB329DC3D8A252CA69C19DAF330A784 /* MASViewConstraint.h */, - 0CE35A6903D3E473ACA2703E7286A28E /* MASViewConstraint.m */, - 05FF40C91ADEB302CBF4314535A1A6E7 /* NSArray+MASAdditions.h */, - 3E34DAE4904CE87FBB70688EA36DF9D3 /* NSArray+MASAdditions.m */, - 986324EA3CC9A3BDF0E5C7B1763862EE /* NSArray+MASShorthandAdditions.h */, - BE9E061AE26F933A7BBEFF3D94E9B32D /* NSLayoutConstraint+MASDebugAdditions.h */, - D8B8A062E76BF87D54F581F6428D4E28 /* NSLayoutConstraint+MASDebugAdditions.m */, - 8B8AB8065F8811289957B59E9EBA6B47 /* View+MASAdditions.h */, - 1069EA3A85D1A1A87FE087B0FE402436 /* View+MASAdditions.m */, - EBEEA0239556FEF194877FD307A4ADD6 /* View+MASShorthandAdditions.h */, - FED4C87CAD14B9336A225C943B75263C /* ViewController+MASAdditions.h */, - DB1B5D6DA097974C176F91F3853055EC /* ViewController+MASAdditions.m */, - A06A903601EA30E66A3EFB3445AE0486 /* Support Files */, + 794EDDEC99AE62D5D00411F3511B13E1 /* mz.h */, + 96BD67303B109FB9C0AD4CB428F9076E /* mz_compat.c */, + 730E2207BC82D8C9886643147B12844A /* mz_compat.h */, + F2A4BB8032DDBC79455789713856A408 /* mz_crypt.c */, + 43F7DFAD54A39AC067B93B7F37CEACC4 /* mz_crypt.h */, + 59AF9F3690B04B3F352C8CAC3F871AB8 /* mz_crypt_apple.c */, + 114931D01287BFA93E9D29B53CA38A76 /* mz_os.c */, + D0EA1758087DF6422638C3E1E4752106 /* mz_os.h */, + 304121A0D3C435F033B160ED27159497 /* mz_os_posix.c */, + EFACE3751373A384D5D01B02DD24C448 /* mz_strm.c */, + CB807F985CDE872D9B41A7A326A880B4 /* mz_strm.h */, + F9217DB48F424BA008216EE318F042B0 /* mz_strm_buf.c */, + 263454233B5B0DBB14C5D80582B2B2AD /* mz_strm_buf.h */, + 22EF64375E10367E8F309F38BC8EC17B /* mz_strm_mem.c */, + 777F9F6A7889203D9F5204A776E487AE /* mz_strm_mem.h */, + F515F757FEB677BF07AC5EA12F7FEEBF /* mz_strm_os.h */, + CC5AD50A387E797ED45F5031160FCC1B /* mz_strm_os_posix.c */, + 6927E81FE85B83E8D8E4E87CC57F28DB /* mz_strm_pkcrypt.c */, + D97F9C78C4A650C93D2FFA258F5C78AD /* mz_strm_pkcrypt.h */, + 47DFF43E6BE4EF7BEEFEAB5D142B408B /* mz_strm_split.c */, + DD67952FFCDC4D0DA05DB535DB5E6CE7 /* mz_strm_split.h */, + 93E91FA280E77CCF4FFD86FF3957ABCC /* mz_strm_wzaes.c */, + B6FBCFD26A3B8A9AAFA4FC414E405AAA /* mz_strm_wzaes.h */, + 06E0AA3C0029EF26819C4B61B00C6151 /* mz_strm_zlib.c */, + 145359962B1F7316ADD800516212E8AB /* mz_strm_zlib.h */, + 72AD11FA94A7409673A84E79F9A3020E /* mz_zip.c */, + E363F5B362D7EF73BAACDE270E7CE4F3 /* mz_zip.h */, + 151C8F6D88020F922D61D037136E3DFB /* mz_zip_rw.c */, + B313FB2E02E6138E1628A481AF03A970 /* mz_zip_rw.h */, + BA0FC9A098AF47CC01D182E6B2146446 /* SSZipArchive.h */, + 19477F689A241293943E6DAEC7809F4F /* SSZipArchive.m */, + 14CC48A476DB5DA5978DCA39F22BAEBE /* SSZipCommon.h */, + 2C3CE4647FE4CED3DEFE776630B7284F /* ZipArchive.h */, + 5805E654FFC0BC2E2B8A7202E6E18BA9 /* Support Files */, ); - name = Masonry; - path = Masonry; + name = SSZipArchive; + path = SSZipArchive; sourceTree = ""; }; - F4552932065591EFBCEA1E5854647226 /* Support Files */ = { + 841D57823DBE92E167188144411AA12A /* Support Files */ = { isa = PBXGroup; children = ( - 526BF014AFB62CD2E2E5312B573388BC /* JXCategoryView.modulemap */, - D98B4BEA4820634A8F01172731FF97B7 /* JXCategoryView-dummy.m */, - A01B197EE310DCCE265AA065FA12EF38 /* JXCategoryView-Info.plist */, - F09D5DAEE3CD3FFE1B213DFEF893E818 /* JXCategoryView-prefix.pch */, - AC3EF9D4544217A0B4E13DA6B530C974 /* JXCategoryView-umbrella.h */, - F68616E55705601CBE5D9437AD83B340 /* JXCategoryView.debug.xcconfig */, - DF80C06856CA889ADB8807594055C7DF /* JXCategoryView.release.xcconfig */, - AAA2247A63D832BDB9097AE7D635F20C /* ResourceBundle-JXCategoryView-JXCategoryView-Info.plist */, + 54EF4964495A1314279618353DD88CFF /* DZNEmptyDataSet.modulemap */, + 6F6728D0708813AFDD17C58BF882AF21 /* DZNEmptyDataSet-dummy.m */, + 7770E197395B4C19F3817FA8F750D617 /* DZNEmptyDataSet-Info.plist */, + D43CE774AFD0B7B5A9098E42A1E031D4 /* DZNEmptyDataSet-prefix.pch */, + E65A3C5316B5D16D9BA5FBB6E692FDDD /* DZNEmptyDataSet-umbrella.h */, + FA5BD46C62EFFC66016A206743C9F890 /* DZNEmptyDataSet.debug.xcconfig */, + 413861DB2AFD99CC8B6165C8D0DA278D /* DZNEmptyDataSet.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/JXCategoryView"; + path = "../Target Support Files/DZNEmptyDataSet"; sourceTree = ""; }; - F50E68E76DBF5D25ABBDA080A797818B /* AFNetworking */ = { + 85561DD054361ABB9BC7C6E168A82452 /* Frameworks */ = { isa = PBXGroup; children = ( - 860D7179002683A0368E532B751FC40E /* AFNetworking.h */, - 6D1FBB10825D24E335F04D97066D9C66 /* NSURLSession */, - 579E4939EC6AC009496870BECBDEC208 /* Reachability */, - A5CE40587B1D0DEFF98742773A62CA50 /* Security */, - 3FB59ED98513C1B8FA6DBF40283EB341 /* Serialization */, - 184D0B412C8826DE321973718A83EAD0 /* Support Files */, - E56FC4F1AC3134805F24F088D231587A /* UIKit */, + EBA8670C2889167BCD72EA7B571868EC /* Bugly.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 85A55F97DC168CD1122870E0B14A4F8A /* JXCategoryView */ = { + isa = PBXGroup; + children = ( + 7378147CC792F0E2D70589D723E75D8C /* JXCategoryBaseCell.h */, + 553C3B3D779AB6CB5190C219D6C92261 /* JXCategoryBaseCell.m */, + 5CC39D433389340C17FA7CE4395B505F /* JXCategoryBaseCellModel.h */, + 175E902683747415D180D3F558DE6E14 /* JXCategoryBaseCellModel.m */, + 7C3269114114DA4A29A874C429E9CA18 /* JXCategoryBaseView.h */, + 51A29F3EE0247FA13905035912EFB7CA /* JXCategoryBaseView.m */, + 3BFB8178934237D2097197FFA692EDCE /* JXCategoryCollectionView.h */, + 2C4EB6BF2D4CE9365194BD60FD83F78F /* JXCategoryCollectionView.m */, + 41507ECEBFBFE8748A3A5C6FD2DE2BDF /* JXCategoryDotCell.h */, + E26F8E152009690B0E2BDD1044C99CE6 /* JXCategoryDotCell.m */, + 44F2EA17CF495B3C7801177736C26647 /* JXCategoryDotCellModel.h */, + 589689F46EC520D58650D81C0BCDCD52 /* JXCategoryDotCellModel.m */, + A1D387A010A63456DE5E7AFF7018FE2A /* JXCategoryDotView.h */, + F9ACCB7980F41D5919C5B1C6AE7A518B /* JXCategoryDotView.m */, + 013838CC5F2B4FC390D28A911B5EF797 /* JXCategoryFactory.h */, + 791D7ED57B5D75A67DE912C0525A5EA9 /* JXCategoryFactory.m */, + 0FFD6E10A8BDC66C4D68B27A8F14E068 /* JXCategoryImageCell.h */, + 38FA429E7EB072E02DCC6868AFB0631B /* JXCategoryImageCell.m */, + 4AC24F43085D93918FC2FF8EA9D4A9BA /* JXCategoryImageCellModel.h */, + 7CF889E904F1B6EE73FA17B69790805B /* JXCategoryImageCellModel.m */, + 7D6139E37B1857BFE42F1D5F6D57F96F /* JXCategoryImageView.h */, + 60960D0EF4A92968C18A9FF56584EA1B /* JXCategoryImageView.m */, + A3E7B39FA8615318D0B9DBA376B5E5BB /* JXCategoryIndicatorBackgroundView.h */, + FBCDAC22C25AFAD18A45C5ACECEB0DAB /* JXCategoryIndicatorBackgroundView.m */, + 88E0642B5105D706429A67BF11CDE26C /* JXCategoryIndicatorBallView.h */, + 5BCA5DA5834A1F32620A3B6F778113AD /* JXCategoryIndicatorBallView.m */, + BD0F786321DA91AA42CBCE576325DFC3 /* JXCategoryIndicatorCell.h */, + 2ADD806A65FD213516E38006E7412A29 /* JXCategoryIndicatorCell.m */, + C99C2C51482A68E16DCB90EA75CB196C /* JXCategoryIndicatorCellModel.h */, + 5131824FAE2ADD647AE8C54EC334E280 /* JXCategoryIndicatorCellModel.m */, + 1F94F37349FFB161919EFE71C2CD9E77 /* JXCategoryIndicatorComponentView.h */, + 7A7A4B2B6111CA779A2758C944C3324D /* JXCategoryIndicatorComponentView.m */, + BF5E8A1B56E1CB24CE62F9229FFDA081 /* JXCategoryIndicatorDotLineView.h */, + 2ECDF66E7F05D1F20CE08D11819DBA52 /* JXCategoryIndicatorDotLineView.m */, + 015CD0DA056184B91C43881714257993 /* JXCategoryIndicatorImageView.h */, + 29B3632C1493FC9C66498F1FB8E1572C /* JXCategoryIndicatorImageView.m */, + 67CB215173B14FC72227F43EE74EF96E /* JXCategoryIndicatorLineView.h */, + 1B996B2DECA5BF4F051BF1653B667CC9 /* JXCategoryIndicatorLineView.m */, + D79F119190F2A5B16B795F629A7210D0 /* JXCategoryIndicatorParamsModel.h */, + 5FE7198C233A2640C008082E5B441F41 /* JXCategoryIndicatorParamsModel.m */, + 0144DBC6460DBCF85C0357C2BD9270EF /* JXCategoryIndicatorProtocol.h */, + EE2EF3F6F5D20D166802D58E874E4726 /* JXCategoryIndicatorRainbowLineView.h */, + AD030D4FE25B39220113AA491F784D34 /* JXCategoryIndicatorRainbowLineView.m */, + CBBA1D54FD2ACBA6EE9FBDA18C9CE86E /* JXCategoryIndicatorTriangleView.h */, + 79340F952B7DAF35D159061FC814BB3A /* JXCategoryIndicatorTriangleView.m */, + 276C21472282FA055E81DC5389C473C6 /* JXCategoryIndicatorView.h */, + E850A898202F08F5D8832C1A476BFC61 /* JXCategoryIndicatorView.m */, + D9EAEBBAE3A74DFDF23B1FEAE9D4E5BB /* JXCategoryListContainerRTLCell.h */, + EDDAF7FCF8E6F2DE305B8D213CC6135C /* JXCategoryListContainerRTLCell.m */, + 8313D5FF3F427FD8BA3251FBA57679EB /* JXCategoryListContainerView.h */, + AFD298D5839EC6B16CB35C63BA6311A9 /* JXCategoryListContainerView.m */, + 60FD104CFB0C8648AF5171590639AB74 /* JXCategoryNumberCell.h */, + A2873D39F50AC194637181D598DA90E8 /* JXCategoryNumberCell.m */, + 4367271CF6B9B86B9F6378B464235E15 /* JXCategoryNumberCellModel.h */, + AB22AD946DEFF60CD04A121B225C9206 /* JXCategoryNumberCellModel.m */, + 3896EF3FC153DCD9550AA0C34B1DD94B /* JXCategoryNumberView.h */, + DE7322836C2297450D37149C5382810B /* JXCategoryNumberView.m */, + CC3DB470C154D8612194B2A8D575210C /* JXCategoryTitleCell.h */, + B887B4AF044F9F7F71EE2A0315D9C39F /* JXCategoryTitleCell.m */, + EEADEEAE0BFAF0DC677B571C63E1C606 /* JXCategoryTitleCellModel.h */, + 677A9795E43833ACFE4BEFACEB9C9E50 /* JXCategoryTitleCellModel.m */, + C0E1986191F6390AE52D414954598C40 /* JXCategoryTitleImageCell.h */, + 44D08F7CF9BB9D6E3D4646C7B30B91D9 /* JXCategoryTitleImageCell.m */, + 6878C06D99EA8CF7B773696E02B36205 /* JXCategoryTitleImageCellModel.h */, + 30F9C31CE20A9FC3A93220859F3B365A /* JXCategoryTitleImageCellModel.m */, + CE5450AB8CC809FC5DCFD5B6A5E51531 /* JXCategoryTitleImageView.h */, + 55F8377D2B875785FEEA759FCF32A69C /* JXCategoryTitleImageView.m */, + ECE929CFE87E3E6402751CE58A6B7439 /* JXCategoryTitleVerticalZoomCell.h */, + 3E1E851A7A7CA784A018B5E55D9A6FAB /* JXCategoryTitleVerticalZoomCell.m */, + B65A0644DDC3DBF2C3A6A5539FCDBCFF /* JXCategoryTitleVerticalZoomCellModel.h */, + 4E9252395065AF703DEC1F4DB7906407 /* JXCategoryTitleVerticalZoomCellModel.m */, + 37B20E15FD376B168BFA0BEE0E4E8A49 /* JXCategoryTitleVerticalZoomView.h */, + 1CCB7B54387FCBB12572FC56CAC6DE97 /* JXCategoryTitleVerticalZoomView.m */, + 0F35095D3053E2A3DBDF2DEE0430F6A9 /* JXCategoryTitleView.h */, + 994082D97E1CB7E4A8A16621ED4CA03B /* JXCategoryTitleView.m */, + 332200A6FC684D5728F6AA658E5AE9A5 /* JXCategoryView.h */, + A4477E6E0B5BF098745477DF6B2DFDAD /* JXCategoryViewAnimator.h */, + A2C3A8528434F887418155966D871DFB /* JXCategoryViewAnimator.m */, + EE970DD8AC37EB86349A9696105DA965 /* JXCategoryViewDefines.h */, + 2C106D57FCD41BF611795643D714421F /* RTLManager.h */, + AD9FC9F1DFCA104E54D6E4547D96356D /* RTLManager.m */, + 502567ED20EC16FD9EAAB5C4A9CA4886 /* UIColor+JXAdd.h */, + 1538C76EA76285E450D5CEF966BD77EC /* UIColor+JXAdd.m */, + C4EA8E5DA68A419DEA75203607239401 /* Resources */, + 37D285E5A09075793AC0037B1112AE18 /* Support Files */, + ); + name = JXCategoryView; + path = JXCategoryView; + sourceTree = ""; + }; + 8653D2390762C8B94DEF8AFEA827953F /* LookinServer */ = { + isa = PBXGroup; + children = ( + 35E988BE7F117B41B5EED03446DE6C9C /* Core */, + F453F90CD66666D92C095DA10BCDFD83 /* Support Files */, + ); + name = LookinServer; + path = LookinServer; + sourceTree = ""; + }; + 872ADA69D6298D1E60B421863469902C /* Security */ = { + isa = PBXGroup; + children = ( + 493BE38A720CE0AA9D19CC2814C3EFEC /* AFSecurityPolicy.h */, + A5E251507CD3F7845A3A2D382302220A /* AFSecurityPolicy.m */, + ); + name = Security; + sourceTree = ""; + }; + 8E52935AFAAF48FBBF34B9011AEDA9DB /* Core */ = { + isa = PBXGroup; + children = ( + 8BDCE9952D3D5ECFE37B853918E47D89 /* NSBezierPath+SDRoundedCorners.h */, + CB7E424AE2A6FC9C8A4DBA6387CE406F /* NSBezierPath+SDRoundedCorners.m */, + 5B98A886462BC99072A046EEF76F5E1C /* NSButton+WebCache.h */, + 6F51E9EA5F3AE984817B1537C8E36E04 /* NSButton+WebCache.m */, + AC5DEFD150893C86D3BEB5BD54870151 /* NSData+ImageContentType.h */, + B1D21E1077C6E7A011517EEE18D2A29B /* NSData+ImageContentType.m */, + B818D4A1BAE22A9C619951DE8D9DB678 /* NSImage+Compatibility.h */, + 9EA3D8AD01DA3E015B6159A35F13BB3D /* NSImage+Compatibility.m */, + 80531B9754F423FD57E0805CE2593D30 /* SDAnimatedImage.h */, + 58EEB7C2A63BEB01A88AE5CF3E60AAB6 /* SDAnimatedImage.m */, + 09674DC0D83C3B2D5C0CB5DF74A36828 /* SDAnimatedImagePlayer.h */, + 3380C668B7FA17B9F0A13799CB2C15F9 /* SDAnimatedImagePlayer.m */, + 493E45585E98235EFCE933B028A0D309 /* SDAnimatedImageRep.h */, + 83833C719CDAC2C58CF7A1DF4575CF3A /* SDAnimatedImageRep.m */, + 96F67C871FB0FB53D6A184EB01599752 /* SDAnimatedImageView.h */, + 3C6AD52499B385E19C48897006A1010A /* SDAnimatedImageView.m */, + 0791017FACBA886A47B03806F7FB79FE /* SDAnimatedImageView+WebCache.h */, + AC22D6C07A4D561385506A0C9BAA8264 /* SDAnimatedImageView+WebCache.m */, + E3DA8682C6116031E80C1246AFE1DAAB /* SDAssociatedObject.h */, + 0F409A3F2498780698A2FB50819D6F55 /* SDAssociatedObject.m */, + 3DE417BE9A31E93EC536EAA37DBDC145 /* SDAsyncBlockOperation.h */, + 462826D970853E9C8FE383182C96312F /* SDAsyncBlockOperation.m */, + D1634EA2B0314D56355771EF869E1DEF /* SDCallbackQueue.h */, + C44983FCE81235EA1DAC918E17D1BD46 /* SDCallbackQueue.m */, + B9579B08DA6D1FF93EA1A319C7934531 /* SDDeviceHelper.h */, + 50BADD121EA372277C8833D3686FA23C /* SDDeviceHelper.m */, + 4ABD0EF98F92FC86D229EEF559B0B6A3 /* SDDiskCache.h */, + D8BBE3D6597CA5C084B0ECBB8BE04050 /* SDDiskCache.m */, + 0CF6A4B55762F585DB01667B496A7519 /* SDDisplayLink.h */, + AA35ACB38D9154B4D400113AFC90C3A4 /* SDDisplayLink.m */, + FEB4C233F83FD0B96F8490BFD7485587 /* SDFileAttributeHelper.h */, + 8DD59C77CD21D361AE42FCE338B88221 /* SDFileAttributeHelper.m */, + 8E417B8A4CDDEA0E4F162074EAA5D370 /* SDGraphicsImageRenderer.h */, + E78EE4C27B4687DC4F5C0AE7F8FFCE6D /* SDGraphicsImageRenderer.m */, + 726915ABC3694AE95F5F0C13806235F0 /* SDImageAPNGCoder.h */, + 14516EC656025694EFAAE12BB348EFB7 /* SDImageAPNGCoder.m */, + E5868297D4E2CFA69A3CFFA859113631 /* SDImageAssetManager.h */, + FD692A87EFF35082DE5AA17822AF4CF0 /* SDImageAssetManager.m */, + 9E35A20C3FEB049D0F609FBAFE38C467 /* SDImageAWebPCoder.h */, + 69407A17E565B223F10BB1553FE98A42 /* SDImageAWebPCoder.m */, + 4025663085C3F76169BB9584AE2F06C6 /* SDImageCache.h */, + 2EDA9F35E6812154628B5DBA71DF892F /* SDImageCache.m */, + 6A0B4C1FE0597D5C65F6A35599569483 /* SDImageCacheConfig.h */, + C511B649864B27A1FFE7D145A6C6656F /* SDImageCacheConfig.m */, + BEBF633302636EB455572D1BB0481C65 /* SDImageCacheDefine.h */, + 90E72E4EDCAC0507BE25B28B9A895CD8 /* SDImageCacheDefine.m */, + 33A699CA2A6AB899286C0D62BB40C7E6 /* SDImageCachesManager.h */, + 5947624C463587896B461DBD447D7C15 /* SDImageCachesManager.m */, + 4C85A06A2C6EDE51803F645EBFC3C666 /* SDImageCachesManagerOperation.h */, + 341C14E47443E43EC0ED92B2C9C21AD2 /* SDImageCachesManagerOperation.m */, + 4CA92ABE6AB98DEFE6896E40AC428193 /* SDImageCoder.h */, + 7E1D76D20DCD763AD3D8654ABF7E1459 /* SDImageCoder.m */, + C6936388674E3A09DD13C04993D68D7B /* SDImageCoderHelper.h */, + 275F268E2D4AE549550400B573C1667D /* SDImageCoderHelper.m */, + 297CD54CDF904CABF1F66E0A0DCA46A9 /* SDImageCodersManager.h */, + E46E5E8438AA5B00E625B784B187B8A3 /* SDImageCodersManager.m */, + 7D6F484D2DE86C22840A78D18D88200D /* SDImageFrame.h */, + 3AC1BE167B4F437B66364BE2F9827F10 /* SDImageFrame.m */, + 7AD0951BB7D145E5BD06DCD3F0945B14 /* SDImageFramePool.h */, + 4C2EFB6E13CC9AA252123FA37B490F29 /* SDImageFramePool.m */, + 8DB1E93D96D72ACA42B0423E19594280 /* SDImageGIFCoder.h */, + 0C3F5B499190A8045661B658575C588C /* SDImageGIFCoder.m */, + 6B9FA2A6C19CDFE33720642A875BA2EA /* SDImageGraphics.h */, + 49FCA4D456B0E93FB4BA0769CBE5AC2E /* SDImageGraphics.m */, + 795A0BA1A721EEBA6FE32FEC837069DF /* SDImageHEICCoder.h */, + EEF155F921CCF995504E20C130EDCF43 /* SDImageHEICCoder.m */, + D7F080347E7550373BD2ABDE7F06BA15 /* SDImageIOAnimatedCoder.h */, + 67504807CDF89710526929533D4BA24D /* SDImageIOAnimatedCoder.m */, + 37BA545EC5296B88830E16293AEE0DF6 /* SDImageIOAnimatedCoderInternal.h */, + CB626F56EF11C62E6F49F42CB4341053 /* SDImageIOCoder.h */, + 3041393DEDB2B4121A720B516580C6F4 /* SDImageIOCoder.m */, + 9C3BC948AB7C2AC6ECD8CC177F281DF0 /* SDImageLoader.h */, + 294C64BA0B5C5308574A8A3AE2A85D1A /* SDImageLoader.m */, + 9E4FFE75E911DE829448DE3C673671F3 /* SDImageLoadersManager.h */, + 151DDB03C19559867EEF743375F719C4 /* SDImageLoadersManager.m */, + 80B68CA19530E7C3233B50C2E224B494 /* SDImageTransformer.h */, + 6ADF9561958D72382E9DB16372039071 /* SDImageTransformer.m */, + 3016074F4F1A2D4E18C044550651536D /* SDInternalMacros.h */, + 583A0C19F8D1ACE1709410EB4733F2B0 /* SDInternalMacros.m */, + 0C23EC7E95138738B17D177EB5FA686B /* SDMemoryCache.h */, + A1FFD349FE5D938D03025EBAB1F06028 /* SDMemoryCache.m */, + 08CC5A94403B3651B53F005A9D1B8C25 /* SDmetamacros.h */, + 15C4D6472D5FBEDA9358021C134FFF24 /* SDWeakProxy.h */, + 706E018F829E56281581930EDFFA29DA /* SDWeakProxy.m */, + 83B11A2DBF0484EE735D6C9D0C72D9C5 /* SDWebImage.h */, + 38BB10A60ABDA6EA5E356A40C65605AD /* SDWebImageCacheKeyFilter.h */, + 72BDFA68030C9CDCE44C43E0092AEE32 /* SDWebImageCacheKeyFilter.m */, + 3698FC1368DA6E124367FE8947EF4A57 /* SDWebImageCacheSerializer.h */, + 639BD3922CD4C84DA3488440B02B53F4 /* SDWebImageCacheSerializer.m */, + 19A25EB7993E1C0F7234107E1FB3F495 /* SDWebImageCompat.h */, + 7055E6E8C5E3B9875C9AA1F78051BD79 /* SDWebImageCompat.m */, + F430162DE1827C9C391CBD99809BFD9A /* SDWebImageDefine.h */, + C59FCAF4FF4CBD0C5C0DDF43DA90219F /* SDWebImageDefine.m */, + 3BEABBD34E483D264740E6B0459E003D /* SDWebImageDownloader.h */, + A8A7E3E3C822A5CC2F51A88301622FA8 /* SDWebImageDownloader.m */, + A6AD21C98EA6D7A54B77F9D7BFAD316C /* SDWebImageDownloaderConfig.h */, + 20F7508CEE013484034B16046290F3AB /* SDWebImageDownloaderConfig.m */, + CB419394F1C9468854632763B9DBA464 /* SDWebImageDownloaderDecryptor.h */, + EE90FB14799C3DB2688F525047622CE9 /* SDWebImageDownloaderDecryptor.m */, + B6DEC1D3D0D45845A0C362AB6D6856E2 /* SDWebImageDownloaderOperation.h */, + B618AD54568085441B258C0BFB68D1FB /* SDWebImageDownloaderOperation.m */, + 17EB79001C8413E3DA65E7EB9BF22349 /* SDWebImageDownloaderRequestModifier.h */, + C37E369E045D1954868FA3F8BD76BE0E /* SDWebImageDownloaderRequestModifier.m */, + B5859EFB57577F79DE0594BFE5FCE960 /* SDWebImageDownloaderResponseModifier.h */, + B992D5E26C32247C4C94C9861F3527E7 /* SDWebImageDownloaderResponseModifier.m */, + AA6BE0D284683F4B3154DA2FEAA55268 /* SDWebImageError.h */, + 9CC1EDD3159361A7D64AA07E99E1F6E6 /* SDWebImageError.m */, + D0CD05F22DD9C777ADD1844C1AA92A6E /* SDWebImageIndicator.h */, + AF09B126EF200D965115496EB9E79C2B /* SDWebImageIndicator.m */, + 844AEFD4FF7F7E80597BB71010218009 /* SDWebImageManager.h */, + 6F131F769EF13BBF4832AFDCB866C9A2 /* SDWebImageManager.m */, + DE631CFB2FD87B391DC31617A0F8F7E6 /* SDWebImageOperation.h */, + C9CD1D6B313C7BC3B434A5429146D43D /* SDWebImageOperation.m */, + 9E2A5EB02370F6FF8A09BB7553CA3F36 /* SDWebImageOptionsProcessor.h */, + EB794DFD026CA33CB6632909B75BE26E /* SDWebImageOptionsProcessor.m */, + 613C30128B9E1F76CE751AEF4DF4AD1F /* SDWebImagePrefetcher.h */, + A921248D50C2AB16156A42A3D7878239 /* SDWebImagePrefetcher.m */, + EFE75BEF49F2BD35D06D9124F926221B /* SDWebImageTransition.h */, + 26919AE8BCA76133F2F1C43FD19CC76C /* SDWebImageTransition.m */, + 3F9A2F4EF053344FC9A0ADD19237B587 /* SDWebImageTransitionInternal.h */, + 7AFD090B3E30E20C52F02159E880012A /* UIButton+WebCache.h */, + 6DF58A5D7E3000FB7877B0DD30BA16FF /* UIButton+WebCache.m */, + 7678B0EDC7AAC94916357B3DB83F1EA2 /* UIColor+SDHexString.h */, + C519A51D66E63515421E2A7F5D0292B5 /* UIColor+SDHexString.m */, + 81982EB3F0F0B2FC231802C3D3BA6043 /* UIImage+ExtendedCacheData.h */, + 61DDA08A6FD0A3E7C4F00EE37A9425D6 /* UIImage+ExtendedCacheData.m */, + 9286540764F28BCBEB072442803F3D3F /* UIImage+ForceDecode.h */, + D6900481698B9F48FCA8D28EBAA092DF /* UIImage+ForceDecode.m */, + 6C7383492DDC35F73027778CD00DE748 /* UIImage+GIF.h */, + 09693E19C583A7DD12C09F2304F3A3E2 /* UIImage+GIF.m */, + FEF0A8FDB47640450B4AD235DDCCFFE1 /* UIImage+MemoryCacheCost.h */, + B9F55F2644DAEF4709F02F974A798912 /* UIImage+MemoryCacheCost.m */, + 2A07E53A5646D6D6AF061C079709FE6D /* UIImage+Metadata.h */, + BDF29172F6D618B2B1EFF9D3E4621B60 /* UIImage+Metadata.m */, + 61156FA5CCBB3614A39E37A50E301200 /* UIImage+MultiFormat.h */, + 8AAAA1FDAA61248D5726D1F9E837C2F5 /* UIImage+MultiFormat.m */, + 1FD20E21FF7A2BAB6FAAB004A82D3143 /* UIImage+Transform.h */, + B47748E05CB9242948D04AE8D182AA02 /* UIImage+Transform.m */, + 3332F7D1A3C0C615D03E2AD11086C3A3 /* UIImageView+HighlightedWebCache.h */, + 646C45DB37F9D0734DAAC20755029BB7 /* UIImageView+HighlightedWebCache.m */, + C728326011B8B56DD213BF567030FBFE /* UIImageView+WebCache.h */, + C13E45D6A86AF887A2F349DE33857057 /* UIImageView+WebCache.m */, + F6FB08AC59AE2DE3A3B140EA1EDF73E1 /* UIView+WebCache.h */, + 9E1231782398454B0E68DE07403B7EC3 /* UIView+WebCache.m */, + 63134755B811B0A20FAAA4D0FDAB7FF0 /* UIView+WebCacheOperation.h */, + 149C71381AA7AA30529E98DB6A1F4B31 /* UIView+WebCacheOperation.m */, + 27EF519F1411546B2B144AD5845FDBB0 /* UIView+WebCacheState.h */, + 7E98FFCBAE59963C642EC8E3AF550CFF /* UIView+WebCacheState.m */, + 0EFDA07B27756D8EB3F1196F340AC12D /* Resources */, + ); + name = Core; + sourceTree = ""; + }; + 9D3F1588B3525D55D15F5591E23E5496 /* LSTPopView */ = { + isa = PBXGroup; + children = ( + 2795831060C1455A6E99AD5EA64303D3 /* Code */, + 3FCC2CB64E41FF947F1CBE433D24D813 /* Support Files */, + ); + name = LSTPopView; + path = LSTPopView; + sourceTree = ""; + }; + 9F2A2474D0F326A901DC1116281A4D17 /* Pods */ = { + isa = PBXGroup; + children = ( + AAD207A25969D0734B74BCB21B56CB4D /* AFNetworking */, + 4C09443CEEB2850ED2B98CF9EB89F04D /* Bugly */, + 3EEC172B693AD248EF470DF0C8F3EB5F /* DZNEmptyDataSet */, + 09FF257DF3ECCC8C9A7596A71562B1B3 /* FLAnimatedImage */, + 475888F1ED95631B3C5BD2D8B698EC99 /* HWPanModal */, + 85A55F97DC168CD1122870E0B14A4F8A /* JXCategoryView */, + 3D4F0A2F3CAE336646DE6927E89114C3 /* JXPagingView */, + 8653D2390762C8B94DEF8AFEA827953F /* LookinServer */, + 9D3F1588B3525D55D15F5591E23E5496 /* LSTPopView */, + 1B85A6BBA93EFEDE8E4D02E62D5D9E95 /* LSTTimer */, + 0D3C13436D538799331035C953E765D3 /* LYEmptyView */, + 156B9C38740B42864E01BD9DD6E3ACE5 /* Masonry */, + 0D8A6ECCB928C1F3DFC103299EF5CC95 /* MBProgressHUD */, + C3C8C4F5A578F0080AABFB8A658D169D /* MJExtension */, + B4C243F36A0F115040A27541310FB988 /* MJRefresh */, + 7B403B832A6D19418D84FFCB678CE64C /* SDWebImage */, + 831FD992D3E6F860B735BD29A6055993 /* SSZipArchive */, + ); + name = Pods; + sourceTree = ""; + }; + A51160128836B216F13A1A71648E8F28 /* Resources */ = { + isa = PBXGroup; + children = ( + B2F7B372590A2F892FF1A0088E013829 /* MJRefresh.bundle */, + 5C8E404DAF454FD55DABB3DC94C284B8 /* PrivacyInfo.xcprivacy */, + ); + name = Resources; + sourceTree = ""; + }; + AAD207A25969D0734B74BCB21B56CB4D /* AFNetworking */ = { + isa = PBXGroup; + children = ( + 06A64D211ADC6AF2DF1D9E7D4F7F2788 /* AFNetworking.h */, + 7C02292A79B74C60B2FCE54BD5E81723 /* NSURLSession */, + 6E9364A665AA519A20CCE33FAA7F582E /* Reachability */, + 872ADA69D6298D1E60B421863469902C /* Security */, + B43F9B120B4753ADF0BA3A619F3BCE54 /* Serialization */, + ED029E440BFBFC47CD8ABA38D074A7DB /* Support Files */, + 257C6505CFC21F026C88C309B352F23C /* UIKit */, ); name = AFNetworking; path = AFNetworking; sourceTree = ""; }; - F671FF7CE184FC6A84ADEF036DEA2F7D /* Resources */ = { + B01A62AFBCA01B3F40342902BFA8427B /* Support Files */ = { isa = PBXGroup; children = ( - 7EC4505824D228FB201DC90A544C01B3 /* PrivacyInfo.xcprivacy */, + 1737B86781ADA72E4D682BE09A42C54E /* ResourceBundle-SDWebImage-SDWebImage-Info.plist */, + AF71C29AA946CD68A2DC3E7F2970DF2F /* SDWebImage.modulemap */, + 69B6E9CFAF1B79FA1CD551AC592A3F13 /* SDWebImage-dummy.m */, + DA35F2AA6C5B4E15A7626412C670CBA5 /* SDWebImage-Info.plist */, + 56F94A64871B863922233556EBCC8B3C /* SDWebImage-prefix.pch */, + B3320819532C765855244E2B917027EC /* SDWebImage-umbrella.h */, + 84B34A5B378E5749EF8E92AB2D3672FF /* SDWebImage.debug.xcconfig */, + CCDB12D9B54C616575E50DF21796370B /* SDWebImage.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SDWebImage"; + sourceTree = ""; + }; + B43F9B120B4753ADF0BA3A619F3BCE54 /* Serialization */ = { + isa = PBXGroup; + children = ( + D66F851DF43462C5CFB4A390D98EEE4E /* AFURLRequestSerialization.h */, + 5681D07EBA45EA9D44658A1C3CB089C1 /* AFURLRequestSerialization.m */, + BD754332D1E3AE1D91664D4145F6D80A /* AFURLResponseSerialization.h */, + F267753B35B7DC58AA017AA0CE62A18B /* AFURLResponseSerialization.m */, + ); + name = Serialization; + sourceTree = ""; + }; + B4C243F36A0F115040A27541310FB988 /* MJRefresh */ = { + isa = PBXGroup; + children = ( + BE611142AC4AA27D3CF48AE78CE8ABE7 /* MJRefresh.h */, + 934B0D2215917C91E1CD517930AE99B6 /* MJRefreshAutoFooter.h */, + 6E471E488CB3B1BBD00A20FDE73CF37A /* MJRefreshAutoFooter.m */, + A8F3C162ECFFC7C269990C3F6C60EA02 /* MJRefreshAutoGifFooter.h */, + 37E6A60337DC1DB10FAFE7C0D9A43E92 /* MJRefreshAutoGifFooter.m */, + C61FA70CB01999A6107A42EFF9E59D0C /* MJRefreshAutoNormalFooter.h */, + CEDCB917F08ED5C65EA344CD0EE4714F /* MJRefreshAutoNormalFooter.m */, + DDA6A298E6B1C01B099D029ACA189FBA /* MJRefreshAutoStateFooter.h */, + 3369E1F4F864EABA5F02292CEDA67422 /* MJRefreshAutoStateFooter.m */, + FE5A891567A87544F380E7B7E4EC276D /* MJRefreshBackFooter.h */, + 68CCF1A7579D879154B163B5016261BD /* MJRefreshBackFooter.m */, + 54EF4753ED63F047DF0353076DCB7C08 /* MJRefreshBackGifFooter.h */, + 099ABFBE80EFA2F4DEC75B206DDA6F67 /* MJRefreshBackGifFooter.m */, + 3004D0D0AA35348BA3E4E41C002EADF2 /* MJRefreshBackNormalFooter.h */, + 61F5F6BAF17E839077E81636970DB5D0 /* MJRefreshBackNormalFooter.m */, + A983C9EAC053E3A902EDBD7259A44CCC /* MJRefreshBackStateFooter.h */, + 07721EF30DD781C3E73164D54471C5B3 /* MJRefreshBackStateFooter.m */, + 5F08EE508E662277DBDA80CFA408C026 /* MJRefreshComponent.h */, + 120FF27BBFBEDF549CB2CB32E39B4C48 /* MJRefreshComponent.m */, + A28A16C5E14D9C1CD821421AF316D794 /* MJRefreshConfig.h */, + 1F462FDD4C59AB4FFC71791984996458 /* MJRefreshConfig.m */, + 496191DAB3633628753F592D2757EC69 /* MJRefreshConst.h */, + 5977C1FD1130EB89CA34ABC7D62CE1AC /* MJRefreshConst.m */, + BE47DAA5E72BB278A1DB977182E3283B /* MJRefreshFooter.h */, + 7182AB2D5FC7F8A82EFABD7188C650B0 /* MJRefreshFooter.m */, + EAD38F0B5918EB49AC9801402FB7B43B /* MJRefreshGifHeader.h */, + C9AD64D83E505E433188B9A60444891D /* MJRefreshGifHeader.m */, + 9B04332BED5C7D9C996558A46E0DF8C2 /* MJRefreshHeader.h */, + 872A4BB6701891FA0FBC944E222E367F /* MJRefreshHeader.m */, + 75BA0263D4F2D47FB081E19A0B71E320 /* MJRefreshNormalHeader.h */, + 8F573E017D0C85FEF4A821E84BB3635F /* MJRefreshNormalHeader.m */, + A2031EBA2E667FA06ACE033F6EF29FEF /* MJRefreshNormalTrailer.h */, + F5F8E422C2A9D24C584E61A6CEF779E6 /* MJRefreshNormalTrailer.m */, + 312405E920D8F27B2ABAD5C7C5047F50 /* MJRefreshStateHeader.h */, + 9BEB3868FF1316BC4B334ABEDA353664 /* MJRefreshStateHeader.m */, + E48635E876D9CEF7C21BFE6D84DD3C63 /* MJRefreshStateTrailer.h */, + AF02BE9AE63BC1D0DEC990CDDA7EB8C6 /* MJRefreshStateTrailer.m */, + FB5CA715BCC731372742E4E5BA7AB20A /* MJRefreshTrailer.h */, + 09A5D0F3A919514BFE451BC69BE009E6 /* MJRefreshTrailer.m */, + 03F3FB18F3FE5DF91F10C40D42188F96 /* NSBundle+MJRefresh.h */, + ACBB0C1BA927BCF08DA6871143832DFE /* NSBundle+MJRefresh.m */, + EBD0F9A21DB6A84EAE5AFA4F4A502129 /* UICollectionViewLayout+MJRefresh.h */, + 7BC07909714244E42BDEDA8EF0E7EFA8 /* UICollectionViewLayout+MJRefresh.m */, + 5ED944F2FDEEB1DA10261DC24BC5A158 /* UIScrollView+MJExtension.h */, + 85E0616DFCFEB6E1346B75E425451AFD /* UIScrollView+MJExtension.m */, + 8CCEC9218560404B175BE7FFAEB65948 /* UIScrollView+MJRefresh.h */, + 064A69D8B552879D7796F22E265077D9 /* UIScrollView+MJRefresh.m */, + E9AB4D3B4239306FF89D7B36B4C586DE /* UIView+MJExtension.h */, + 6EF85FA983DF21C56902422E554965D7 /* UIView+MJExtension.m */, + A51160128836B216F13A1A71648E8F28 /* Resources */, + D48F432E10850F0DB1210574FDABD66E /* Support Files */, + ); + name = MJRefresh; + path = MJRefresh; + sourceTree = ""; + }; + C3C8C4F5A578F0080AABFB8A658D169D /* MJExtension */ = { + isa = PBXGroup; + children = ( + C30E7CAA4E69994CC7E5C27812DF875A /* MJExtension.h */, + 8EBDFDD5302359A5FEBDF6E7EF669642 /* MJExtensionConst.h */, + 1EF5FA3365163C5EE095A8BA87558958 /* MJExtensionConst.m */, + 0F224C8A22DB0EAEE38D71221511DDFE /* MJFoundation.h */, + 4FD3AD2667575D5EC04C51DDC2C85158 /* MJFoundation.m */, + 395934EE4CE43C1DE9788DC03A7C6D89 /* MJProperty.h */, + 6C30903C3F8001C37FDAC3BD7410223D /* MJProperty.m */, + F07066B7EBC44F24F83DB2951BA2D805 /* MJPropertyKey.h */, + 697282DD8BC19C487FB9C53A11615D22 /* MJPropertyKey.m */, + D6461306EC2DB92B54F94A02C7BC779E /* MJPropertyType.h */, + 3280BDBC75CF4A431E722CC2EDCC3C1E /* MJPropertyType.m */, + 568011BEDC1B875E593855247AF2ED81 /* NSObject+MJClass.h */, + D309D9F9D6EC63460F0FE974E2910D6A /* NSObject+MJClass.m */, + 0157E81AF7D3A5016170216831D8914B /* NSObject+MJCoding.h */, + C09AA983D9F8A9C0C58FF8C1F1A0F2A5 /* NSObject+MJCoding.m */, + 24A6396CB164B773A6219AED50C6B148 /* NSObject+MJKeyValue.h */, + 36F771A08989CA5134B23D5F5E970ACA /* NSObject+MJKeyValue.m */, + BA484D3460A1CAAE9A30E333F8FEF7D5 /* NSObject+MJProperty.h */, + 9834B5FFACD633FFCD21134C05396420 /* NSObject+MJProperty.m */, + F68DA306242C844983240C5B668F1835 /* NSString+MJExtension.h */, + 275A97C0F153DC6504268701E357DFA9 /* NSString+MJExtension.m */, + 373E9870F7EBE4C7D32F4FFE51D1AA9F /* Resources */, + 10B4941ACD8EBC28564ABFF5770A9537 /* Support Files */, + ); + name = MJExtension; + path = MJExtension; + sourceTree = ""; + }; + C4EA8E5DA68A419DEA75203607239401 /* Resources */ = { + isa = PBXGroup; + children = ( + 8B9045E26513809CA2F842DA0ED38C32 /* PrivacyInfo.xcprivacy */, ); name = Resources; sourceTree = ""; }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */, + 9F2A2474D0F326A901DC1116281A4D17 /* Pods */, + 46FFC073ED3675717676FD9A6D01B4D9 /* Products */, + F7ED90CD818DD0484BF7DB0E1E3B9AB2 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D48F28E7C3254F93F3FAB5AC29739413 /* Support Files */ = { + isa = PBXGroup; + children = ( + CBE3456A049548C4217BB0DCF854D022 /* LYEmptyView.modulemap */, + D7459F1B3692611E84C7237F8A8EA38D /* LYEmptyView-dummy.m */, + 94FDA6D1415520067AF32F882EA1ECA3 /* LYEmptyView-Info.plist */, + 8E796BD877EA820EF0ACBAEC4D8D5DCC /* LYEmptyView-prefix.pch */, + CD95470553CE3E7B3AD30401481B40C2 /* LYEmptyView-umbrella.h */, + 337BA8B645E62D8CD88D56EE0E054C95 /* LYEmptyView.debug.xcconfig */, + BB422F09DB5A06469496D276E2329309 /* LYEmptyView.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/LYEmptyView"; + sourceTree = ""; + }; + D48F432E10850F0DB1210574FDABD66E /* Support Files */ = { + isa = PBXGroup; + children = ( + 454462FEDDD4679F4268C1E79DDF2CB7 /* MJRefresh.modulemap */, + 92EA7FFB1C07248E9A2C69FD0F478201 /* MJRefresh-dummy.m */, + 8E0A718FBAF2229CFC65CE1D89FA5288 /* MJRefresh-Info.plist */, + A54F2CC34811FB7CC1940295759911F9 /* MJRefresh-prefix.pch */, + E7D7CDC1DC8DD6D7A6DD095CADEBE100 /* MJRefresh-umbrella.h */, + 7A9D8B22BFBE08234522560BB2AC9FCC /* MJRefresh.debug.xcconfig */, + 1ABBAE357D36B12599112EFE912EDC1B /* MJRefresh.release.xcconfig */, + ED84FBB6F72BA4917706394DF82CF989 /* ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/MJRefresh"; + sourceTree = ""; + }; + D68CA58901FBF589D75F5E40F1EAF5BA /* Frameworks */ = { + isa = PBXGroup; + children = ( + F571BB9EC0680D6BB3A2B9AED3074C84 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + E0C9D84EFCBEB5D93E4193745F73534F /* Support Files */ = { + isa = PBXGroup; + children = ( + D0C457DCA9BF3F607512B528E207123C /* JXPagingView.modulemap */, + D8AA97DE3A5096AC474171B27CE045A0 /* JXPagingView-dummy.m */, + 4104FEFBDB5BFADF059A2BD4DCFAF5D3 /* JXPagingView-Info.plist */, + ABD7E4F009A1BC4FE2652767F23F65C5 /* JXPagingView-prefix.pch */, + 1FC6D402CF57CF9F6287E67BF1F1DA7E /* JXPagingView-umbrella.h */, + E4C8991D50301177B6E97F401F7F9EDF /* JXPagingView.debug.xcconfig */, + E094817340E2A9561E8E803258C20F4A /* JXPagingView.release.xcconfig */, + E37FC582593F0E289D989D5E801A71E0 /* ResourceBundle-JXPagerView-JXPagingView-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/JXPagingView"; + sourceTree = ""; + }; + ED029E440BFBFC47CD8ABA38D074A7DB /* Support Files */ = { + isa = PBXGroup; + children = ( + 1EC614A80F92F6EA6FC32AC61AC296A0 /* AFNetworking.modulemap */, + 405C7E78856FC9D135BA999764F6C694 /* AFNetworking-dummy.m */, + 1D7B5B23E34C29DE509C243F93BA3E4C /* AFNetworking-Info.plist */, + 9D5FC25D68B5E457EE448DFA1AE1BCF1 /* AFNetworking-prefix.pch */, + 0F87A76C86DFD48AB232333E21FDDC25 /* AFNetworking-umbrella.h */, + 7E4CD6D95D8E4ED4BE00A6D094A69D55 /* AFNetworking.debug.xcconfig */, + D5C4A9FFCCE6B456591ACD9A1DB94EAA /* AFNetworking.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; + sourceTree = ""; + }; + F2DCB2CC890C708FAE05DB4A3351B43C /* Support Files */ = { + isa = PBXGroup; + children = ( + 976B7D7159B66E6EFDBDAF7664C4956C /* FLAnimatedImage.modulemap */, + E1956172D6145D28B4A986C61A84B881 /* FLAnimatedImage-dummy.m */, + 08C74ED147C3E3398381FC64F9C291E6 /* FLAnimatedImage-Info.plist */, + CA20B850F36C58A646EEA030EE4F0FB7 /* FLAnimatedImage-prefix.pch */, + 47758962FF5EA178A385878D70B7D23A /* FLAnimatedImage-umbrella.h */, + 54541842A6CB924467D09BA9259EEC66 /* FLAnimatedImage.debug.xcconfig */, + F33A1D4A14EEE9A9B25E9855762CBF72 /* FLAnimatedImage.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/FLAnimatedImage"; + sourceTree = ""; + }; + F453F90CD66666D92C095DA10BCDFD83 /* Support Files */ = { + isa = PBXGroup; + children = ( + C4DDFE1F2381E9236A530A5B1D4FD64A /* LookinServer.modulemap */, + F7A92B30F0EF258777457F8494801128 /* LookinServer-dummy.m */, + B36B992BAF23D9A0A1EDACBC57D1245D /* LookinServer-Info.plist */, + 74D70CA409CF2A1406EFEF0A638D8828 /* LookinServer-prefix.pch */, + 8B139D44C6AB4E474C119817ECBACCB5 /* LookinServer-umbrella.h */, + 58A1DEAE0622F43AE3AD873A977F5D9A /* LookinServer.debug.xcconfig */, + 81F97FB41DF65218A4BFF34780DC3491 /* LookinServer.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/LookinServer"; + sourceTree = ""; + }; + F571BB9EC0680D6BB3A2B9AED3074C84 /* iOS */ = { + isa = PBXGroup; + children = ( + B039DC77C7D8D33CEAB56314AAFE04CB /* CoreGraphics.framework */, + D8490F2CF00DB93F5FEEDE1C788BBE73 /* Foundation.framework */, + 8DB48DB92D5E3A8823F80321C8C328B1 /* ImageIO.framework */, + CD30B9EF8BA7F13C73065F6A94D35ECD /* QuartzCore.framework */, + 99B4F13594632F82C9EF984C08EE4078 /* Security.framework */, + 6516968D87AFC17D959025E67F296ADF /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; F7ED90CD818DD0484BF7DB0E1E3B9AB2 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -3004,19 +3166,12 @@ name = "Targets Support Files"; sourceTree = ""; }; - F9D546C8B0F4E1C342B53CD786B328AB /* Support Files */ = { + FEC26DDFA00CC6DEB0DE8F51E9656EB5 /* Resources */ = { isa = PBXGroup; children = ( - 59720B9654BC9C6EC9F2FF79FB3FEB5A /* HWPanModal.modulemap */, - 0AE235E52EF7BBF7348F9B4CAB71F7D8 /* HWPanModal-dummy.m */, - CDE56910104E914C73DC565FDFEABE34 /* HWPanModal-Info.plist */, - 4F973225F70967D6C01DF18ABCACA3C4 /* HWPanModal-prefix.pch */, - 1EFF4EEBD779C7DB39B6B044205385FA /* HWPanModal-umbrella.h */, - 4201C2CD51C00E5AC0EC45DC41B32695 /* HWPanModal.debug.xcconfig */, - CA665BB1B8AEA701C3C1A72312BFE105 /* HWPanModal.release.xcconfig */, + 980B3C544025B71D6F62E1D7529A986D /* PrivacyInfo.xcprivacy */, ); - name = "Support Files"; - path = "../Target Support Files/HWPanModal"; + name = Resources; sourceTree = ""; }; /* End PBXGroup section */ @@ -3086,14 +3241,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 1BBE9495F3D97388AE8F965FB5CA16AD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2C2405D23D1A7428F65C7D740476ABA2 /* Pods-keyBoard-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 22C4F6C2D1258108CF5B6E74F03D0EB2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3298,6 +3445,31 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 65CDCD725E404567B6CEDE98BCE6EB88 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7819DD27A1B62DFC933835DFAFBDBF42 /* mz.h in Headers */, + 374FECA22750A2F7F17CA125C25DB352 /* mz_compat.h in Headers */, + 7ED6C3C05EA6EE83780A3600C7088B46 /* mz_crypt.h in Headers */, + C53D326186927C0C85580CC5FEB133E3 /* mz_os.h in Headers */, + AE0F1284A9C414203C1D5C66EDE95E8E /* mz_strm.h in Headers */, + 8F43694404EAFF6D73EE58928154C0F2 /* mz_strm_buf.h in Headers */, + 817909CFA2E8032670693BF57A2D5519 /* mz_strm_mem.h in Headers */, + C64C28E8B15C171323473E543C608E68 /* mz_strm_os.h in Headers */, + E5FA0235CD286C13C0F568946EB0AEA8 /* mz_strm_pkcrypt.h in Headers */, + D9C15A8B92E62396D95DB88415A38A8F /* mz_strm_split.h in Headers */, + 03588B938BECEEF89042E2C73159BEA2 /* mz_strm_wzaes.h in Headers */, + A190A9DFC23558006BE5D8D5B6DAE51C /* mz_strm_zlib.h in Headers */, + 49900106BEFC9C1BEB3E96558C0C4AE8 /* mz_zip.h in Headers */, + 4E56BA148170B3A6E7FA6D312B06C784 /* mz_zip_rw.h in Headers */, + 4569AD436BB87FA37A01C5C982F025A2 /* SSZipArchive.h in Headers */, + D2E6ED217227452C59C9B29C62858F7C /* SSZipArchive-umbrella.h in Headers */, + FF500FD55C6C8DD8418FA2290B95811A /* SSZipCommon.h in Headers */, + AAF2B7BD4C56295DBA1BB6039AC0EDD4 /* ZipArchive.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7A48625CF583F169B2CE65398246355A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3383,6 +3555,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9AD51F59D2F73C167710F5A0609DC491 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F3C6C068FCF85C2816DCBA0D67A4FF8C /* Pods-keyBoard-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A903C05DE36F05DE8EA13A2F4A3D52E8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3457,12 +3637,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FFA880310EDC0CF0A2515E0ED18689B0 /* Headers */ = { + E6526F5FED0A5F03E786F2ECAA5C0917 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - EC6671997676ABEBC34F2BE6C01266B1 /* LSTTimer.h in Headers */, - CA543D086B4C8E314FB43F0B78147FE9 /* LSTTimer-umbrella.h in Headers */, + CAFE6AE80CBC8F15D2E2BD73E5B39CDA /* LSTTimer.h in Headers */, + 01448B814492AEE3B887978D098F7FD2 /* LSTTimer-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3489,11 +3669,11 @@ }; 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */ = { isa = PBXNativeTarget; - buildConfigurationList = 404863FC7F43060AAE7C6FA66F917915 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */; + buildConfigurationList = E39B48EBA2D9CC72FA077274CDF77D06 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */; buildPhases = ( - 5E3F655370D8F2DAABC53D59D069B3A1 /* Sources */, - 2D2D1D550E12F4C0C9C30D5A3CD01C4E /* Frameworks */, - 860DF70163CE0C8308216A41597A40DF /* Resources */, + 22630796DF18B624037C3C2F9817D2D1 /* Sources */, + FB5978DF3756D04CCB9AA18132AD1686 /* Frameworks */, + 3B236666BEDAA23C644B5B1055557D29 /* Resources */, ); buildRules = ( ); @@ -3506,32 +3686,33 @@ }; 18BD026D2210082A239FC15D072FD5BF /* Pods-keyBoard */ = { isa = PBXNativeTarget; - buildConfigurationList = 48C48CA74E925091D509EAE661A5D87D /* Build configuration list for PBXNativeTarget "Pods-keyBoard" */; + buildConfigurationList = 873ED1BA7B10EBD1D3CF8071EC05EF13 /* Build configuration list for PBXNativeTarget "Pods-keyBoard" */; buildPhases = ( - 1BBE9495F3D97388AE8F965FB5CA16AD /* Headers */, - E3AA8B53287F6ACBF2F2800146C6ECD0 /* Sources */, - 2A4C89A05153A8C37E3B9ACF170A9EB8 /* Frameworks */, - 2B9BFC6488F4ABCC9916C35510BB7D7C /* Resources */, + 9AD51F59D2F73C167710F5A0609DC491 /* Headers */, + 6027CC4F7393762F72827585E71DFAB2 /* Sources */, + 561C8EAD1C5098CB3E8BDC89625C785F /* Frameworks */, + ACD5DC8B6441EB6AB0AD1CF807B41379 /* Resources */, ); buildRules = ( ); dependencies = ( - D431884F2F2835EF4FDB44219ADAA88B /* PBXTargetDependency */, - 3067995C8EDFEF1A63CA85F6D091AD0B /* PBXTargetDependency */, - E7B53C78EB3FA9751B3C978B6CB97980 /* PBXTargetDependency */, - D6DB70831F359F7235B8C97A50300DDF /* PBXTargetDependency */, - C0EEAAE6B64FC5B6DFCE16644E06B2CA /* PBXTargetDependency */, - CE8F85B0B6965EE090F12CB8B384E2A3 /* PBXTargetDependency */, - BB84628766B4F66DF4DC34732901F40E /* PBXTargetDependency */, - 90059A9ED4F8080EA23A70C0EB5FE47E /* PBXTargetDependency */, - 7D1F8A3DE88EF01CF89EF4750D0835BC /* PBXTargetDependency */, - F750881392263D81A5BB4E131005A44E /* PBXTargetDependency */, - 28BE8BB7BD4C9C6AB673350A1570FA84 /* PBXTargetDependency */, - FE3D9C468529CF310D88B6383BEFBFDD /* PBXTargetDependency */, - 9403290AE1B7249ADE1ED8950739EE94 /* PBXTargetDependency */, - 22268E07F0FDFC08F0EE9D82FF083DD6 /* PBXTargetDependency */, - ABAA3F7B666DBB2B8C2E114433F7A89D /* PBXTargetDependency */, - D2B74321DDAF41730531D5172D454257 /* PBXTargetDependency */, + 2A8FD4D63439C4E1939EBDE48A029628 /* PBXTargetDependency */, + 639EDB1EF0277187CB2CFA270FDAF6FB /* PBXTargetDependency */, + E4C8B75060752222288EE781ED53D28B /* PBXTargetDependency */, + 9296FCBEC33D72EE46C4E53B4A11D24D /* PBXTargetDependency */, + 0040BDC0B2D5C034F42268C7EAB858E9 /* PBXTargetDependency */, + 64424C7E9080D97C7FDEF3B2AEF87249 /* PBXTargetDependency */, + F41943F83FA652CFE310DD442CEABA56 /* PBXTargetDependency */, + 248F793A182F289B47E8B7AC0E143C15 /* PBXTargetDependency */, + 6439550248368A7C6C464B74DEFD7EAB /* PBXTargetDependency */, + BDAE500408DCC4FE45DED4761241917F /* PBXTargetDependency */, + 1BA1867FF840A6651BC096ADFEE48CC3 /* PBXTargetDependency */, + C1729F6CBF0B365A6565BC98BB4187CD /* PBXTargetDependency */, + 9E31237C8A36AF7A7A0B110E3EB735D6 /* PBXTargetDependency */, + B44D94075E090726E517F9003F07D314 /* PBXTargetDependency */, + 530D0C4674FBE524F1B985801A13A8CE /* PBXTargetDependency */, + 3C59938CEAB0C654F6E6F4BDA7461510 /* PBXTargetDependency */, + 739A6AB12973C5D497CC25D1550E0274 /* PBXTargetDependency */, ); name = "Pods-keyBoard"; productName = Pods_keyBoard; @@ -3568,7 +3749,7 @@ buildRules = ( ); dependencies = ( - D37914A752321FFCFF48251614F3D1B6 /* PBXTargetDependency */, + FEF3AE822E48A84148FDD5B19A1C7E15 /* PBXTargetDependency */, ); name = SDWebImage; productName = SDWebImage; @@ -3623,7 +3804,7 @@ buildRules = ( ); dependencies = ( - 1D289FBB39D9730B46C50BB58E35DEDD /* PBXTargetDependency */, + F67519DF1C385799F91C64E2B8324C31 /* PBXTargetDependency */, ); name = MJExtension; productName = MJExtension; @@ -3650,12 +3831,12 @@ }; 5A2609DB0612F95A3450D2E02CA850A0 /* LSTTimer */ = { isa = PBXNativeTarget; - buildConfigurationList = C43E72A521778768A4BFF773BB3A3E73 /* Build configuration list for PBXNativeTarget "LSTTimer" */; + buildConfigurationList = A0F23D46D133F936F0565C0D3363B200 /* Build configuration list for PBXNativeTarget "LSTTimer" */; buildPhases = ( - FFA880310EDC0CF0A2515E0ED18689B0 /* Headers */, - 960664E0DAFB6A287268BB843AE03C4D /* Sources */, - 58A39759A11D8C551E18D1323674BF34 /* Frameworks */, - 3E9DF1CA7088EFD9A83405BFA3BA49AB /* Resources */, + E6526F5FED0A5F03E786F2ECAA5C0917 /* Headers */, + FE8BA83E8E8D2D9D4BDCE47EBA8E9282 /* Sources */, + EC62B765BB94A012D3D95B80650B276B /* Frameworks */, + 72521D943F79D48C4CE3F105F873C52A /* Resources */, ); buildRules = ( ); @@ -3696,7 +3877,7 @@ buildRules = ( ); dependencies = ( - 4B67FE65673F595E9C8A068417DA514D /* PBXTargetDependency */, + 8FDFA4D41ED37BC3CC62156D15AAAD81 /* PBXTargetDependency */, ); name = MJRefresh; productName = MJRefresh; @@ -3733,7 +3914,7 @@ buildRules = ( ); dependencies = ( - 88EAB6CB023EDFC5B53D2E9C22425E3A /* PBXTargetDependency */, + 318E148AD8C551E2DEAB4E4705F3E9A3 /* PBXTargetDependency */, ); name = LSTPopView; productName = LSTPopView; @@ -3752,7 +3933,7 @@ buildRules = ( ); dependencies = ( - 840E5121538D55EE93FDAA52D266DA70 /* PBXTargetDependency */, + 934C3B9DE75D80D2E7E6096D33367007 /* PBXTargetDependency */, ); name = JXCategoryView; productName = JXCategoryView; @@ -3761,11 +3942,11 @@ }; 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */ = { isa = PBXNativeTarget; - buildConfigurationList = FB913463BEC55EE719AD5BC32990DB46 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */; + buildConfigurationList = 3E85843C67295DD920673DB26A1C6AC9 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */; buildPhases = ( - A3408CB3584697A2B6167BD69AA21B2F /* Sources */, - 0DCF6770445D0657900721EC9917ECFB /* Frameworks */, - 0F4454263AF02A68EA280CFD2F6F0009 /* Resources */, + 78ECD76871A0BAA156C849A0F60752F9 /* Sources */, + 19F2BFA39A5D52D15FD34BA65F188E7A /* Frameworks */, + F16773FA2FD5F088158638124DEE79B1 /* Resources */, ); buildRules = ( ); @@ -3778,11 +3959,11 @@ }; B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = BA6D8ED14C9A066F526869BBA7BFA2F0 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; + buildConfigurationList = 32D0A5936754555C1DE26CFE61A676B9 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */; buildPhases = ( - 25D101E1E3D7EB40B6BF4B0D063D4CFB /* Sources */, - 04785C72D7E967FCB78D8F7E7635973B /* Frameworks */, - BD0C56EEEF7BFD5736E628E5DAEDE627 /* Resources */, + 0AC1F6C482A08FB561D805CB3B764825 /* Sources */, + B7346A3CC89AD552EFAF777E372B5828 /* Frameworks */, + 77D71E98F384C0F45702EE9226C31BBD /* Resources */, ); buildRules = ( ); @@ -3795,11 +3976,11 @@ }; B32AF3F43989CBA171BB1FB3957A4509 /* MJExtension-MJExtension */ = { isa = PBXNativeTarget; - buildConfigurationList = 97AAB185F08FD001A3F3B9102E506695 /* Build configuration list for PBXNativeTarget "MJExtension-MJExtension" */; + buildConfigurationList = 36CF018EC4C12A6CF5F4C04031B017C6 /* Build configuration list for PBXNativeTarget "MJExtension-MJExtension" */; buildPhases = ( - 4B87B289E4FC9DF2FE22A240DAB0E3AD /* Sources */, - 6B8E82384925B650051F0C1846383E41 /* Frameworks */, - 3D2CFD627094E91914BED90AC6A972BE /* Resources */, + 23500454F7E00898DB8E97D94AC80EB0 /* Sources */, + E64DC0C50D80A6D17C1B06E97677E308 /* Frameworks */, + 291B6128C16FD205FBC61215BFA3D46C /* Resources */, ); buildRules = ( ); @@ -3822,7 +4003,7 @@ buildRules = ( ); dependencies = ( - CFAD2B6D6431A495BD1CA533779A67B0 /* PBXTargetDependency */, + D2BF8DADB4511ACDB35E80ECEA8A727C /* PBXTargetDependency */, ); name = JXPagingView; productName = JXPagingView; @@ -3841,11 +4022,11 @@ buildRules = ( ); dependencies = ( - 516A94BC5E451EEB51F643D23D85E82C /* PBXTargetDependency */, - B5024FC019BD8A112152FB369A67EAFA /* PBXTargetDependency */, - 285B72F62A1DE2E9A5E2E4D45F15828C /* PBXTargetDependency */, - 3B6CA3026290428D105D8C0E16BC28C0 /* PBXTargetDependency */, - 418F39BD767B7F3EBD3B862DC77F178A /* PBXTargetDependency */, + 12A741A3A2D20B845F9B62FAB4AEF3E6 /* PBXTargetDependency */, + EDE3A237DA8BFFEDDC2A91BE9C28491C /* PBXTargetDependency */, + E8D3535A3CA467DAC59C0EA738BDA5A0 /* PBXTargetDependency */, + 52DF992CE5DD17192CD3816069756461 /* PBXTargetDependency */, + 1ADD8BEA47AE58C100E51D4AAE3086D1 /* PBXTargetDependency */, ); name = "Pods-CustomKeyboard"; productName = Pods_CustomKeyboard; @@ -3854,11 +4035,11 @@ }; E79E29F55A2453370D27112480FCF6A2 /* JXCategoryView-JXCategoryView */ = { isa = PBXNativeTarget; - buildConfigurationList = 931B4A41B3614242C4D8813983B29AE7 /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */; + buildConfigurationList = 596C9DD6B009BD3A15FD1119ECF7A38D /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */; buildPhases = ( - E7FC7BB552A8FE956E421E3474419D5D /* Sources */, - F4019BF639D68EFAB596EA1BD86C37CB /* Frameworks */, - 1461F55480D564BB754551A6E8B059D2 /* Resources */, + B794724D0A2ADC18BCAF8507B8B04B3D /* Sources */, + C7A56BD3AD8680BEA8D5673E6A65366E /* Frameworks */, + BEF17C242EDE9616F46CB1455332D7EF /* Resources */, ); buildRules = ( ); @@ -3887,6 +4068,24 @@ productReference = 5DA4577FE3BC4A03751108FFED07B385 /* DZNEmptyDataSet */; productType = "com.apple.product-type.framework"; }; + F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4E86C95B2CC48E329293EC1606BA231C /* Build configuration list for PBXNativeTarget "SSZipArchive" */; + buildPhases = ( + 65CDCD725E404567B6CEDE98BCE6EB88 /* Headers */, + 049BE71707DDB25A944AB502CE7E174A /* Sources */, + 7B7CCC4D3C186BB73A6D1F0A0DCB559D /* Frameworks */, + 68B18CAE9D89E3559204AEEBF86D5F3B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SSZipArchive; + productName = SSZipArchive; + productReference = 91B23470DEB9A986332BEB5034234BC7 /* SSZipArchive */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -3907,7 +4106,7 @@ mainGroup = CF1408CF629C7361332E53B88F7BD30C; minimizedProjectReferenceProxies = 0; preferredProjectObjectVersion = 77; - productRefGroup = D3828787C1DCC6E76B71C947B6C876AE /* Products */; + productRefGroup = 46FFC073ED3675717676FD9A6D01B4D9 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -3934,27 +4133,12 @@ 18BD026D2210082A239FC15D072FD5BF /* Pods-keyBoard */, 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */, 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */, + F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 0F4454263AF02A68EA280CFD2F6F0009 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7DFACBAC8324FE3F177FA465E0006A9C /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1461F55480D564BB754551A6E8B059D2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7D4B5D7A593F4436B57347FD2A5072B4 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 1B0BF833FF02F4B145B7A6461734A0F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -3977,10 +4161,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2B9BFC6488F4ABCC9916C35510BB7D7C /* Resources */ = { + 291B6128C16FD205FBC61215BFA3D46C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + B6415624A82D88E4C7B00A49B741DCD1 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3991,18 +4176,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3D2CFD627094E91914BED90AC6A972BE /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B2E706AF15CBC9BBDA6B180AA008345E /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3E9DF1CA7088EFD9A83405BFA3BA49AB /* Resources */ = { + 3B236666BEDAA23C644B5B1055557D29 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + FA9F74458362FEF57BAA47D48ADEB547 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4031,11 +4209,25 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 860DF70163CE0C8308216A41597A40DF /* Resources */ = { + 68B18CAE9D89E3559204AEEBF86D5F3B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 27CE2AFFB3219A5D3717045970929C80 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 72521D943F79D48C4CE3F105F873C52A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77D71E98F384C0F45702EE9226C31BBD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FD25538558AC72EB1BD7FE646A962283 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4060,11 +4252,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BD0C56EEEF7BFD5736E628E5DAEDE627 /* Resources */ = { + ACD5DC8B6441EB6AB0AD1CF807B41379 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1F2863645F3DEAC57B592AFFB45D5E77 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BEF17C242EDE9616F46CB1455332D7EF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FD90CE8EC54430B50A242731DE62BA3C /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4097,6 +4296,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F16773FA2FD5F088158638124DEE79B1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A012A526264460C196D354A165DAB0CB /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; FD378D1F5CAFCC3C5D44074788563A1C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -4107,6 +4314,30 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 049BE71707DDB25A944AB502CE7E174A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 352E63E404CED072E7F714C52FF93E49 /* mz_compat.c in Sources */, + 60E384ABEF99F5104C99DCB596E2BE95 /* mz_crypt.c in Sources */, + E283D8FF283E09D9CF863A27B55886EF /* mz_crypt_apple.c in Sources */, + 6577A9EB1AED47B915B7F77C3F8BF335 /* mz_os.c in Sources */, + 3683A04365A59519AAB2F47C5FA6FA3C /* mz_os_posix.c in Sources */, + 823033F3DF2D5C7C4B123A277DB55073 /* mz_strm.c in Sources */, + 8415E191A2886EC3426A01BC86299E1F /* mz_strm_buf.c in Sources */, + 27293E7084BFE6AF873BB233419CFA2D /* mz_strm_mem.c in Sources */, + B4DF1CDCE2413AF579E102954A4033F6 /* mz_strm_os_posix.c in Sources */, + 4C8A5ADD06D2DFC9E7FA2A1CA9DD565A /* mz_strm_pkcrypt.c in Sources */, + 68D4A83EA695C463981E04DAD037064F /* mz_strm_split.c in Sources */, + C9AFC6682FD2C8231E779A4349DBDFD6 /* mz_strm_wzaes.c in Sources */, + 84B5FB65B38C19F534F49DE6471C0E5B /* mz_strm_zlib.c in Sources */, + FBF481A2EC25D99DC41914AE7B9754D2 /* mz_zip.c in Sources */, + 090CC8DB2713055B65F3693A67A9F0AF /* mz_zip_rw.c in Sources */, + A71E222C76A20B18600A6DE4091CFB0E /* SSZipArchive.m in Sources */, + A90260F860E51EC89130250EA3E61F22 /* SSZipArchive-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 06020C44A2C925372A030239192BBF6C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4214,7 +4445,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 25D101E1E3D7EB40B6BF4B0D063D4CFB /* Sources */ = { + 0AC1F6C482A08FB561D805CB3B764825 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 22630796DF18B624037C3C2F9817D2D1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 23500454F7E00898DB8E97D94AC80EB0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4252,14 +4497,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B87B289E4FC9DF2FE22A240DAB0E3AD /* Sources */ = { + 6027CC4F7393762F72827585E71DFAB2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 53DB80F23F4881D7F7CB1816A74746D2 /* Pods-keyBoard-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5E3F655370D8F2DAABC53D59D069B3A1 /* Sources */ = { + 78ECD76871A0BAA156C849A0F60752F9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4386,15 +4632,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 960664E0DAFB6A287268BB843AE03C4D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 21232E67D630EBF8EA4CB3322B359F0D /* LSTTimer.m in Sources */, - 9C623DECA454522DB641AA29C86F6387 /* LSTTimer-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 9F03A6C166C310270FB3F4AFE9D7573D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4417,7 +4654,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A3408CB3584697A2B6167BD69AA21B2F /* Sources */ = { + B794724D0A2ADC18BCAF8507B8B04B3D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4497,21 +4734,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E3AA8B53287F6ACBF2F2800146C6ECD0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 58852265A6A355CDF8D25BCD71F54F3D /* Pods-keyBoard-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E7FC7BB552A8FE956E421E3474419D5D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; E8A558A3C629ABA805E9D912FCCBCD2F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4552,194 +4774,320 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + FE8BA83E8E8D2D9D4BDCE47EBA8E9282 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D6B7883D57752BC596907C45E9740FD1 /* LSTTimer.m in Sources */, + 7EB365BD2FC75CE205A638DD725B0555 /* LSTTimer-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 1D289FBB39D9730B46C50BB58E35DEDD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "MJExtension-MJExtension"; - target = B32AF3F43989CBA171BB1FB3957A4509 /* MJExtension-MJExtension */; - targetProxy = C30FB24BD734A3779E20934DB3D4D9C8 /* PBXContainerItemProxy */; - }; - 22268E07F0FDFC08F0EE9D82FF083DD6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJRefresh; - target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; - targetProxy = B0121AEB150BEE5708989CCC69A51E6E /* PBXContainerItemProxy */; - }; - 285B72F62A1DE2E9A5E2E4D45F15828C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MBProgressHUD; - target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; - targetProxy = 70663BD3E4659CFF0C7EF0B56DBC9C78 /* PBXContainerItemProxy */; - }; - 28BE8BB7BD4C9C6AB673350A1570FA84 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LookinServer; - target = 638FEAAFC575BB76BC6AC055CDDA3506 /* LookinServer */; - targetProxy = 71C3BF8323A3B89C42C815297FB1B486 /* PBXContainerItemProxy */; - }; - 3067995C8EDFEF1A63CA85F6D091AD0B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Bugly; - target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; - targetProxy = 02FAAF39D5DC83544D9E66B036B176EA /* PBXContainerItemProxy */; - }; - 3B6CA3026290428D105D8C0E16BC28C0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJExtension; - target = 4D3BA58D0583DF37575CACAB3DDADC85 /* MJExtension */; - targetProxy = 492374464B2EEB82B866DBC203FB6CF9 /* PBXContainerItemProxy */; - }; - 418F39BD767B7F3EBD3B862DC77F178A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = F24DDDDEE9FC26F48E2EA84062015B72 /* PBXContainerItemProxy */; - }; - 4B67FE65673F595E9C8A068417DA514D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "MJRefresh-MJRefresh.Privacy"; - target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; - targetProxy = A2D6E99D61C37E2D571D73F75FCFE0B4 /* PBXContainerItemProxy */; - }; - 516A94BC5E451EEB51F643D23D85E82C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; - targetProxy = C548A30C8E9A6CD52D6655421F9E80B2 /* PBXContainerItemProxy */; - }; - 7D1F8A3DE88EF01CF89EF4750D0835BC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LSTTimer; - target = 5A2609DB0612F95A3450D2E02CA850A0 /* LSTTimer */; - targetProxy = A3A1467D883FED3ABCAC49113A737098 /* PBXContainerItemProxy */; - }; - 840E5121538D55EE93FDAA52D266DA70 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "JXCategoryView-JXCategoryView"; - target = E79E29F55A2453370D27112480FCF6A2 /* JXCategoryView-JXCategoryView */; - targetProxy = BAEC79AAEBBDF2BA3087612B7E05FD8E /* PBXContainerItemProxy */; - }; - 88EAB6CB023EDFC5B53D2E9C22425E3A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LSTTimer; - target = 5A2609DB0612F95A3450D2E02CA850A0 /* LSTTimer */; - targetProxy = 9D62F9D7E8B03E6D53909480991C8AEA /* PBXContainerItemProxy */; - }; - 90059A9ED4F8080EA23A70C0EB5FE47E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LSTPopView; - target = 8B7D23DD98E41BAE91418E9E85F191D6 /* LSTPopView */; - targetProxy = D9630B9E5DE60DCADFA9106CF013D735 /* PBXContainerItemProxy */; - }; - 9403290AE1B7249ADE1ED8950739EE94 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = MJExtension; - target = 4D3BA58D0583DF37575CACAB3DDADC85 /* MJExtension */; - targetProxy = 4F853CA6F77CC1808AF5BAF0CCAB86C0 /* PBXContainerItemProxy */; - }; - ABAA3F7B666DBB2B8C2E114433F7A89D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = F518DC696627DF925BE789501947DBC7 /* PBXContainerItemProxy */; - }; - B5024FC019BD8A112152FB369A67EAFA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DZNEmptyDataSet; - target = F1BCD9702276377FB5B3BDB6EAF709D7 /* DZNEmptyDataSet */; - targetProxy = F02666E823668E7F6E705B610204BBE2 /* PBXContainerItemProxy */; - }; - BB84628766B4F66DF4DC34732901F40E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXPagingView; - target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; - targetProxy = CEFF12BAC2DF7A2FB2A16265805F8779 /* PBXContainerItemProxy */; - }; - C0EEAAE6B64FC5B6DFCE16644E06B2CA /* PBXTargetDependency */ = { + 0040BDC0B2D5C034F42268C7EAB858E9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = HWPanModal; target = 31DCABABCA873FBA7A92FEB47D71ED8E /* HWPanModal */; - targetProxy = DB09B1B3C4EF493AB0763F0795077728 /* PBXContainerItemProxy */; + targetProxy = BC543733677861A9B2B4C809EE4F5026 /* PBXContainerItemProxy */; }; - CE8F85B0B6965EE090F12CB8B384E2A3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXCategoryView; - target = 8BEAFAA726C1965864B79B4B441AA513 /* JXCategoryView */; - targetProxy = 0AC2AD8EAFB742F27A3D34C64E40AFC6 /* PBXContainerItemProxy */; - }; - CFAD2B6D6431A495BD1CA533779A67B0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "JXPagingView-JXPagerView"; - target = 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */; - targetProxy = 4B52CF33FA25735578A3E44A4CD0C61E /* PBXContainerItemProxy */; - }; - D2B74321DDAF41730531D5172D454257 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SDWebImage; - target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; - targetProxy = 6C532ADBCD9DB30208C8082362062867 /* PBXContainerItemProxy */; - }; - D37914A752321FFCFF48251614F3D1B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "SDWebImage-SDWebImage"; - target = 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */; - targetProxy = 6B502CE29B8265D64E66B68DA64E8BAF /* PBXContainerItemProxy */; - }; - D431884F2F2835EF4FDB44219ADAA88B /* PBXTargetDependency */ = { + 12A741A3A2D20B845F9B62FAB4AEF3E6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = AFNetworking; target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; - targetProxy = 586A5F02457EAA9AECE8CFCC7EDC4A36 /* PBXContainerItemProxy */; + targetProxy = D539378EEA6136633B02554E94E0D0C6 /* PBXContainerItemProxy */; }; - D6DB70831F359F7235B8C97A50300DDF /* PBXTargetDependency */ = { + 1ADD8BEA47AE58C100E51D4AAE3086D1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = 6F36E6997992D372CE822686985EB3F3 /* PBXContainerItemProxy */; + }; + 1BA1867FF840A6651BC096ADFEE48CC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LookinServer; + target = 638FEAAFC575BB76BC6AC055CDDA3506 /* LookinServer */; + targetProxy = 8B4AF11BA988C8F1F93788F8C486B793 /* PBXContainerItemProxy */; + }; + 248F793A182F289B47E8B7AC0E143C15 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LSTPopView; + target = 8B7D23DD98E41BAE91418E9E85F191D6 /* LSTPopView */; + targetProxy = D264D8BA205995C828877A13415E636F /* PBXContainerItemProxy */; + }; + 2A8FD4D63439C4E1939EBDE48A029628 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AFNetworking; + target = 0130B3724283586C0E9D2A112D4F2AA1 /* AFNetworking */; + targetProxy = 5E2F9C1908DE8387A6F9BF93EF451351 /* PBXContainerItemProxy */; + }; + 318E148AD8C551E2DEAB4E4705F3E9A3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LSTTimer; + target = 5A2609DB0612F95A3450D2E02CA850A0 /* LSTTimer */; + targetProxy = B4B05B8E8A2B8CDA0C66D6BAD76B2853 /* PBXContainerItemProxy */; + }; + 3C59938CEAB0C654F6E6F4BDA7461510 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SDWebImage; + target = 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */; + targetProxy = 460C711DE0B071D1CF739D8584B4EB4A /* PBXContainerItemProxy */; + }; + 52DF992CE5DD17192CD3816069756461 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJExtension; + target = 4D3BA58D0583DF37575CACAB3DDADC85 /* MJExtension */; + targetProxy = 802DEA5B6289431AABE0F15DA324916B /* PBXContainerItemProxy */; + }; + 530D0C4674FBE524F1B985801A13A8CE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = C4958E3B26588834E71F94361C112780 /* PBXContainerItemProxy */; + }; + 639EDB1EF0277187CB2CFA270FDAF6FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Bugly; + target = 4A68CFD979D413A619DF631BB121D98F /* Bugly */; + targetProxy = 6B620F7E6CAE75D31C5837B4790559A8 /* PBXContainerItemProxy */; + }; + 6439550248368A7C6C464B74DEFD7EAB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LSTTimer; + target = 5A2609DB0612F95A3450D2E02CA850A0 /* LSTTimer */; + targetProxy = 31F9906BAEED016573D69F00DE9BA133 /* PBXContainerItemProxy */; + }; + 64424C7E9080D97C7FDEF3B2AEF87249 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = JXCategoryView; + target = 8BEAFAA726C1965864B79B4B441AA513 /* JXCategoryView */; + targetProxy = 1A2511022FE632E00361DE19C60A62DE /* PBXContainerItemProxy */; + }; + 739A6AB12973C5D497CC25D1550E0274 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SSZipArchive; + target = F60E38364AFF5E1349FF07415B944396 /* SSZipArchive */; + targetProxy = 0F9E615457E5337681A14D3D3D4458A5 /* PBXContainerItemProxy */; + }; + 8FDFA4D41ED37BC3CC62156D15AAAD81 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "MJRefresh-MJRefresh.Privacy"; + target = B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */; + targetProxy = 73A9CA6BDE2B4D18F9677452E6992CBE /* PBXContainerItemProxy */; + }; + 9296FCBEC33D72EE46C4E53B4A11D24D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FLAnimatedImage; target = 4A8E8992707D01510894596DB9BCCA00 /* FLAnimatedImage */; - targetProxy = FD339A2CF804D4CD1FADE6633BE4DB45 /* PBXContainerItemProxy */; + targetProxy = 2FE163B88A520FE9B2F4EF7346158A53 /* PBXContainerItemProxy */; }; - E7B53C78EB3FA9751B3C978B6CB97980 /* PBXTargetDependency */ = { + 934C3B9DE75D80D2E7E6096D33367007 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = DZNEmptyDataSet; - target = F1BCD9702276377FB5B3BDB6EAF709D7 /* DZNEmptyDataSet */; - targetProxy = D031B103E98AAB5CEC13491B24F6A82E /* PBXContainerItemProxy */; + name = "JXCategoryView-JXCategoryView"; + target = E79E29F55A2453370D27112480FCF6A2 /* JXCategoryView-JXCategoryView */; + targetProxy = AB4EC7D2E9FDF608986EDAF1E480CFD7 /* PBXContainerItemProxy */; }; - F750881392263D81A5BB4E131005A44E /* PBXTargetDependency */ = { + 9E31237C8A36AF7A7A0B110E3EB735D6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJExtension; + target = 4D3BA58D0583DF37575CACAB3DDADC85 /* MJExtension */; + targetProxy = A671E8D796937C62D30391BE1F16A0AD /* PBXContainerItemProxy */; + }; + B44D94075E090726E517F9003F07D314 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MJRefresh; + target = 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */; + targetProxy = 43E0BC7F6C06EB0590226928F1AA1BA3 /* PBXContainerItemProxy */; + }; + BDAE500408DCC4FE45DED4761241917F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = LYEmptyView; target = 4AA4C7BB776C55F3421BA137B643DD64 /* LYEmptyView */; - targetProxy = 080FDB8CF401316D3CCD779F38297489 /* PBXContainerItemProxy */; + targetProxy = 4CFAE8F71CB246F1A7196659761BA82B /* PBXContainerItemProxy */; }; - FE3D9C468529CF310D88B6383BEFBFDD /* PBXTargetDependency */ = { + C1729F6CBF0B365A6565BC98BB4187CD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = MBProgressHUD; target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; - targetProxy = 6C0462143C24DADCF6D346CFCCF1F2DF /* PBXContainerItemProxy */; + targetProxy = 5209BC7C8FADA86A492F08918BEABCD8 /* PBXContainerItemProxy */; + }; + D2BF8DADB4511ACDB35E80ECEA8A727C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "JXPagingView-JXPagerView"; + target = 16704C6B67439DA959DB043702C75A7A /* JXPagingView-JXPagerView */; + targetProxy = 682B4482FB905997BF77F5EE588BD3E4 /* PBXContainerItemProxy */; + }; + E4C8B75060752222288EE781ED53D28B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DZNEmptyDataSet; + target = F1BCD9702276377FB5B3BDB6EAF709D7 /* DZNEmptyDataSet */; + targetProxy = 625D29D18C6D7C39FC39AD7E1F9FE915 /* PBXContainerItemProxy */; + }; + E8D3535A3CA467DAC59C0EA738BDA5A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MBProgressHUD; + target = 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */; + targetProxy = EAD1EAB2089264FC2D357DCD1B0D09EC /* PBXContainerItemProxy */; + }; + EDE3A237DA8BFFEDDC2A91BE9C28491C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DZNEmptyDataSet; + target = F1BCD9702276377FB5B3BDB6EAF709D7 /* DZNEmptyDataSet */; + targetProxy = 4BE0B614B56B0136EC31B18693DBA8DE /* PBXContainerItemProxy */; + }; + F41943F83FA652CFE310DD442CEABA56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = JXPagingView; + target = C4E1020AF425614337737213AA26DBD5 /* JXPagingView */; + targetProxy = C522DD02643623D83F7B527AC574C98D /* PBXContainerItemProxy */; + }; + F67519DF1C385799F91C64E2B8324C31 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "MJExtension-MJExtension"; + target = B32AF3F43989CBA171BB1FB3957A4509 /* MJExtension-MJExtension */; + targetProxy = 07BCA7294227EB1662F67CC00FA31484 /* PBXContainerItemProxy */; + }; + FEF3AE822E48A84148FDD5B19A1C7E15 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SDWebImage-SDWebImage"; + target = 94CFBA7D633ECA58DF85C327B035E6A3 /* SDWebImage-SDWebImage */; + targetProxy = 9E12D5E078E322AEAC001666EEE5AA65 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 024C9A3B861ABA20A2346A6A466EB015 /* Debug */ = { + 00DBBD639799D4F01B73D8D9C55ED38E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F68616E55705601CBE5D9437AD83B340 /* JXCategoryView.debug.xcconfig */; + baseConfigurationReference = 6AFF16386D920AF66AB8AE2559C331EF /* SSZipArchive.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/SSZipArchive/SSZipArchive-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/SSZipArchive/SSZipArchive-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SSZipArchive/SSZipArchive.modulemap"; + PRODUCT_MODULE_NAME = SSZipArchive; + PRODUCT_NAME = SSZipArchive; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1478607FB5E2A88C7B9A3DEFA88A3F3D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1ABBAE357D36B12599112EFE912EDC1B /* MJRefresh.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; - IBSC_MODULE = JXCategoryView; - INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = JXCategoryView; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJRefresh.Privacy; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; + name = Release; }; - 083F4B327F32BA42082C93DA3678A905 /* Debug */ = { + 1A69165A21A7A1CC42A38CF8ADE98215 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 35BFA337F4E1FDE67C773A82CCDFD6DA /* Pods-keyBoard.debug.xcconfig */; + baseConfigurationReference = 81F97FB41DF65218A4BFF34780DC3491 /* LookinServer.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/LookinServer/LookinServer-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/LookinServer/LookinServer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/LookinServer/LookinServer.modulemap"; + PRODUCT_MODULE_NAME = LookinServer; + PRODUCT_NAME = LookinServer; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 1BFE82CDDBC75ACC9A90DD219D216BCD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FDB62804EC1DE74D07B723CF6E1C0164 /* LSTTimer.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/LSTTimer/LSTTimer-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/LSTTimer/LSTTimer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/LSTTimer/LSTTimer.modulemap"; + PRODUCT_MODULE_NAME = LSTTimer; + PRODUCT_NAME = LSTTimer; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 21C406BB88997816D9F161D36A115026 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A6E8FF241173D596A21D4D4B7D86A810 /* Pods-keyBoard.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -4771,113 +5119,6 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 0BAEB6F6833BF585A150B8AD74FDBC03 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6CE98E2FC8B92A0E98F20755C88122A4 /* LSTTimer.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/LSTTimer/LSTTimer-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/LSTTimer/LSTTimer-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/LSTTimer/LSTTimer.modulemap"; - PRODUCT_MODULE_NAME = LSTTimer; - PRODUCT_NAME = LSTTimer; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 0FF9630F4FA55B5D0AE7A67F275961B4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A324C5885C8FB2DC65900A0EE79A0E45 /* MJRefresh.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 124345EDBC5F34B7AF5C60B83C477235 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 81F7F63875295940D9A950DB7D2EBDE7 /* SDWebImage.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; - IBSC_MODULE = SDWebImage; - INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = SDWebImage; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 1A69165A21A7A1CC42A38CF8ADE98215 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 438B056E0DAE53D40DB4894FF36879AF /* LookinServer.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/LookinServer/LookinServer-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/LookinServer/LookinServer-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/LookinServer/LookinServer.modulemap"; - PRODUCT_MODULE_NAME = LookinServer; - PRODUCT_NAME = LookinServer; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_INSTALL_OBJC_HEADER = YES; - TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -4924,43 +5165,9 @@ }; name = Release; }; - 26A0DE2A2C5EEB5AB1D9315AE03103A7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 954035BEFF37A926FB7C25E5508CD25D /* MJExtension.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJExtension"; - IBSC_MODULE = MJExtension; - INFOPLIST_FILE = "Target Support Files/MJExtension/ResourceBundle-MJExtension-MJExtension-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJExtension; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 2B066301F5B1D4BFFD95FEB2D9535180 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D3FD4542A2D174FC95524833AB672073 /* JXPagingView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagerView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 2D1085CA7BD144CABF012FC10C6C9120 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A603B071469D044FB92322560F131681 /* Masonry.debug.xcconfig */; + baseConfigurationReference = 683E99CE46610E46D88EC2EBFE2F9D12 /* Masonry.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4997,7 +5204,7 @@ }; 35044A57510DB3F4E442A9C16E980E4A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 48E1ED2BAC3C5C1B077AAB67F3325D4E /* DZNEmptyDataSet.debug.xcconfig */; + baseConfigurationReference = FA5BD46C62EFFC66016A206743C9F890 /* DZNEmptyDataSet.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5034,7 +5241,7 @@ }; 3565929B4632DC589BC25FDD7CE29119 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5048CCD1406058B50480C383463B3C39 /* LYEmptyView.debug.xcconfig */; + baseConfigurationReference = 337BA8B645E62D8CD88D56EE0E054C95 /* LYEmptyView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5069,26 +5276,9 @@ }; name = Debug; }; - 40403C5D9FB335BD8C765DF3FE61B9E5 /* Release */ = { + 3F4A3BF11040EAF9EF8F661C74AE4B87 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7B582290DB93C466A4DA695035B6DA2E /* MJExtension.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJExtension"; - IBSC_MODULE = MJExtension; - INFOPLIST_FILE = "Target Support Files/MJExtension/ResourceBundle-MJExtension-MJExtension-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJExtension; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 44E4190BC3FB54D917C88AC4FC84B935 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DF80C06856CA889ADB8807594055C7DF /* JXCategoryView.release.xcconfig */; + baseConfigurationReference = BEB9455CE0A06FE1E60E43D8A39479DA /* JXCategoryView.debug.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; @@ -5101,11 +5291,50 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Release; + name = Debug; + }; + 49BCEC8C255FD70CF03720FDECEA662C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35BFA337F4E1FDE67C773A82CCDFD6DA /* Pods-keyBoard.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-keyBoard/Pods-keyBoard-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-keyBoard/Pods-keyBoard.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; }; 49CEA33268972C89BF290FCBF8F9DFC0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5CB726B6B5C83EAABA9AC89E76D45643 /* DZNEmptyDataSet.release.xcconfig */; + baseConfigurationReference = 413861DB2AFD99CC8B6165C8D0DA278D /* DZNEmptyDataSet.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5141,9 +5370,26 @@ }; name = Release; }; + 4E4837ADDBD167B9ABA21F21875B6A89 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 84B34A5B378E5749EF8E92AB2D3672FF /* SDWebImage.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; + IBSC_MODULE = SDWebImage; + INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = SDWebImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 51753BD6FE635BB9421BCA4C05F63C6A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A324C5885C8FB2DC65900A0EE79A0E45 /* MJRefresh.release.xcconfig */; + baseConfigurationReference = 1ABBAE357D36B12599112EFE912EDC1B /* MJRefresh.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5182,7 +5428,7 @@ }; 571314BC8A84B1CED724D0AFB1CED826 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DF80C06856CA889ADB8807594055C7DF /* JXCategoryView.release.xcconfig */; + baseConfigurationReference = 945DDC24E71F66C3DCBE8E86CA706E0B /* JXCategoryView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5218,9 +5464,46 @@ }; name = Release; }; + 5A662E7D9D60D0CFAA189DE12E87C1DC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 01771F71A5835C346537272402AFB9A6 /* LSTTimer.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/LSTTimer/LSTTimer-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/LSTTimer/LSTTimer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/LSTTimer/LSTTimer.modulemap"; + PRODUCT_MODULE_NAME = LSTTimer; + PRODUCT_NAME = LSTTimer; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 5FA85455B8129B5351F63A65BE01DE60 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E00B4B67B95B1D4B1001EF45F23EF0C4 /* LYEmptyView.release.xcconfig */; + baseConfigurationReference = BB422F09DB5A06469496D276E2329309 /* LYEmptyView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5258,7 +5541,7 @@ }; 614F7847ADAD2F1EEC9E48FAEC955108 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7895C7C58218B5F79C76FA1B5A55E669 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 7A9D8B22BFBE08234522560BB2AC9FCC /* MJRefresh.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5296,7 +5579,7 @@ }; 618AB008538F74AAF983C04297207BB6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7376537428F41B571A3D20FF9175747F /* LookinServer.debug.xcconfig */; + baseConfigurationReference = 58A1DEAE0622F43AE3AD873A977F5D9A /* LookinServer.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5332,7 +5615,7 @@ }; 63708B35D08B13BC40AB51386020974A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CA665BB1B8AEA701C3C1A72312BFE105 /* HWPanModal.release.xcconfig */; + baseConfigurationReference = B59B22A1A3E3EB3C0FD46F485A77D9A2 /* HWPanModal.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5368,26 +5651,9 @@ }; name = Release; }; - 64F655C37D34116A6844DB785A318D16 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 39D7BCC784A30383722D127896FE591E /* JXPagingView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; - IBSC_MODULE = JXPagingView; - INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = JXPagerView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 67BAB382C3420CD62CB414CAA4D8A5B1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D5BBA19EC013D7414BE28B29DCA7518D /* FLAnimatedImage.release.xcconfig */; + baseConfigurationReference = F33A1D4A14EEE9A9B25E9855762CBF72 /* FLAnimatedImage.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5423,6 +5689,77 @@ }; name = Release; }; + 6A356CB460FA2861C0E1B152FF062E68 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4C8991D50301177B6E97F401F7F9EDF /* JXPagingView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagerView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 6F497FFBB9DB8A13D91CC3DC5F372ADB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 42B611D79D74010B677BFD4B27039E49 /* SSZipArchive.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/SSZipArchive/SSZipArchive-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/SSZipArchive/SSZipArchive-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SSZipArchive/SSZipArchive.modulemap"; + PRODUCT_MODULE_NAME = SSZipArchive; + PRODUCT_NAME = SSZipArchive; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7B003C799F044D04A8EFBB3932F95D7B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CCDB12D9B54C616575E50DF21796370B /* SDWebImage.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; + IBSC_MODULE = SDWebImage; + INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = SDWebImage; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 7BB5AE2225500DE9658B6277FED45BCD /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0D6215D1BCCE125B8DF73E38013CBBDC /* Pods-CustomKeyboard.debug.xcconfig */; @@ -5464,7 +5801,7 @@ }; 869A260EDB31DBC8F1FD513756A77A93 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 39D7BCC784A30383722D127896FE591E /* JXPagingView.debug.xcconfig */; + baseConfigurationReference = E4C8991D50301177B6E97F401F7F9EDF /* JXPagingView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5568,7 +5905,7 @@ }; 8EAC2F834160F0D756B3363236E0940A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D3FD4542A2D174FC95524833AB672073 /* JXPagingView.release.xcconfig */; + baseConfigurationReference = E094817340E2A9561E8E803258C20F4A /* JXPagingView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5607,7 +5944,7 @@ }; 8F481C1C1CF7C89F42A9EFE335DEA2BC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6BD04BB450562622E215B33554778CC3 /* LSTPopView.release.xcconfig */; + baseConfigurationReference = 6F24D0C405C75E4CEF7812471315EA53 /* LSTPopView.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5643,46 +5980,6 @@ }; name = Release; }; - 9B8AB2F5A292514588D0A1ECFA2D15C4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A6E8FF241173D596A21D4D4B7D86A810 /* Pods-keyBoard.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - INFOPLIST_FILE = "Target Support Files/Pods-keyBoard/Pods-keyBoard-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-keyBoard/Pods-keyBoard.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; 9E406C6AAF85E580207CD97B0044DEAB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5747,7 +6044,7 @@ }; 9E9FB1E032B56896F9380263D45A0F9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7B582290DB93C466A4DA695035B6DA2E /* MJExtension.release.xcconfig */; + baseConfigurationReference = 4ACB666A05CC9FCBFCB2DF08A44EDCEF /* MJExtension.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5786,7 +6083,7 @@ }; 9F519E5162C0E51D10B7E999E2FD0125 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 81F7F63875295940D9A950DB7D2EBDE7 /* SDWebImage.release.xcconfig */; + baseConfigurationReference = CCDB12D9B54C616575E50DF21796370B /* SDWebImage.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5824,7 +6121,7 @@ }; A04019026E1B09655264B132BF5345A4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F68616E55705601CBE5D9437AD83B340 /* JXCategoryView.debug.xcconfig */; + baseConfigurationReference = BEB9455CE0A06FE1E60E43D8A39479DA /* JXCategoryView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5861,7 +6158,7 @@ }; B04295D726C1883ADA40A304483D7E33 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 93B896E371962B657B3B85C108092214 /* SDWebImage.debug.xcconfig */; + baseConfigurationReference = 84B34A5B378E5749EF8E92AB2D3672FF /* SDWebImage.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5898,7 +6195,7 @@ }; B26FBB655ABB114E4C0D589843814D6C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0AD4477B34BC6EAF1A362183974F34DC /* Bugly.release.xcconfig */; + baseConfigurationReference = 73625BF0D8F9A3389059227F5BE246B9 /* Bugly.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -5916,7 +6213,7 @@ }; B429B9740B8EB5894C5BF953D9590A46 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2CB55990BE7673BB5930FB77BB2A2C33 /* FLAnimatedImage.debug.xcconfig */; + baseConfigurationReference = 54541842A6CB924467D09BA9259EEC66 /* FLAnimatedImage.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5953,7 +6250,7 @@ }; BCD70A0BB22D0C72BAF7207A7D4F44BD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EC4CFDD75B85C12B1C1393BEA03A165C /* MBProgressHUD.debug.xcconfig */; + baseConfigurationReference = 959F7D4641C53F2E24D4E0E1266BA5DB /* MBProgressHUD.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5988,47 +6285,9 @@ }; name = Debug; }; - BD1821022C3B758BEA9CB5616F987BC7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 73EBDE260791BF4440027F8601391D8B /* LSTTimer.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/LSTTimer/LSTTimer-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/LSTTimer/LSTTimer-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/LSTTimer/LSTTimer.modulemap"; - PRODUCT_MODULE_NAME = LSTTimer; - PRODUCT_NAME = LSTTimer; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; BDD02D9903A09C2C9D362C7536416CFB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4201C2CD51C00E5AC0EC45DC41B32695 /* HWPanModal.debug.xcconfig */; + baseConfigurationReference = A1E6FA073B9EC952B16AC395C91C9DF5 /* HWPanModal.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6065,7 +6324,7 @@ }; BE0CDEB7BE0A402663AFCC2111742430 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AC0C26DBF6F4D6A9D8C1BF55FE14DABA /* MBProgressHUD.release.xcconfig */; + baseConfigurationReference = AC9FAA27822DD84D783E5B0318FBC989 /* MBProgressHUD.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6101,9 +6360,26 @@ }; name = Release; }; + C4990366FFD58DB64C9EC32836ACB68C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 43D1BFE612E29B08BEB356DA8798ED52 /* MJExtension.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJExtension"; + IBSC_MODULE = MJExtension; + INFOPLIST_FILE = "Target Support Files/MJExtension/ResourceBundle-MJExtension-MJExtension-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJExtension; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; CBAFED52B4B51F600FAF2141BA449F2E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3DF983F1377AD739C3DF33AE51632FCF /* Bugly.debug.xcconfig */; + baseConfigurationReference = C5E71C07BE43DB660AD9530B77FD390D /* Bugly.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -6118,9 +6394,26 @@ }; name = Debug; }; + CDE5A4155129EFDD320EFF53E0B3678E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 945DDC24E71F66C3DCBE8E86CA706E0B /* JXCategoryView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXCategoryView"; + IBSC_MODULE = JXCategoryView; + INFOPLIST_FILE = "Target Support Files/JXCategoryView/ResourceBundle-JXCategoryView-JXCategoryView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = JXCategoryView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; CEE7FEC0A1B23DE7053203A448EEB294 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 88D479C435BAEE51B8F3BBF87F8D3CC9 /* AFNetworking.debug.xcconfig */; + baseConfigurationReference = 7E4CD6D95D8E4ED4BE00A6D094A69D55 /* AFNetworking.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6157,7 +6450,7 @@ }; D0AB0AEF4014B926FCD853D3AE0A370A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4A4AE7A504C340AE8EE98F70C318D63C /* Masonry.release.xcconfig */; + baseConfigurationReference = DD5C05C33FEB34F3D60A222DB91896DD /* Masonry.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6193,43 +6486,26 @@ }; name = Release; }; - D82E0E1859E0296A83015DC35BE95E81 /* Debug */ = { + D3E550B5DC3C3AFD98C40E6DA75D9544 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7895C7C58218B5F79C76FA1B5A55E669 /* MJRefresh.debug.xcconfig */; + baseConfigurationReference = 4ACB666A05CC9FCBFCB2DF08A44EDCEF /* MJExtension.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; - IBSC_MODULE = MJRefresh; - INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJExtension"; + IBSC_MODULE = MJExtension; + INFOPLIST_FILE = "Target Support Files/MJExtension/ResourceBundle-MJExtension-MJExtension-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; - PRODUCT_NAME = MJRefresh.Privacy; + PRODUCT_NAME = MJExtension; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; - }; - D9D1855EA0BF7C903F0263AEDAADE1E7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93B896E371962B657B3B85C108092214 /* SDWebImage.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/SDWebImage"; - IBSC_MODULE = SDWebImage; - INFOPLIST_FILE = "Target Support Files/SDWebImage/ResourceBundle-SDWebImage-SDWebImage-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = SDWebImage; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; + name = Release; }; DA533AA9B577872DAFB44EF2CF26C49A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 57B2E23309380B0E15F50C277205AC0D /* AFNetworking.release.xcconfig */; + baseConfigurationReference = D5C4A9FFCCE6B456591ACD9A1DB94EAA /* AFNetworking.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6265,9 +6541,43 @@ }; name = Release; }; + E369780F94E464A5DEEA505DCCE081FF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E094817340E2A9561E8E803258C20F4A /* JXPagingView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/JXPagingView"; + IBSC_MODULE = JXPagingView; + INFOPLIST_FILE = "Target Support Files/JXPagingView/ResourceBundle-JXPagerView-JXPagingView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = JXPagerView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + E64807FB037B9B635808313726C43ADB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A9D8B22BFBE08234522560BB2AC9FCC /* MJRefresh.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MJRefresh"; + IBSC_MODULE = MJRefresh; + INFOPLIST_FILE = "Target Support Files/MJRefresh/ResourceBundle-MJRefresh.Privacy-MJRefresh-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = MJRefresh.Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; EC66105EE15F9DC9B6F20F58FB67957D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 954035BEFF37A926FB7C25E5508CD25D /* MJExtension.debug.xcconfig */; + baseConfigurationReference = 43D1BFE612E29B08BEB356DA8798ED52 /* MJExtension.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -6305,7 +6615,7 @@ }; F48613BDFA945AC2A18363244F54E67C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 163DD1C8E32A767AC162D451FB47DECB /* LSTPopView.debug.xcconfig */; + baseConfigurationReference = 02A1000DA3A38A20812409494D6BBB1A /* LSTPopView.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6370,11 +6680,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 404863FC7F43060AAE7C6FA66F917915 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */ = { + 32D0A5936754555C1DE26CFE61A676B9 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 64F655C37D34116A6844DB785A318D16 /* Debug */, - 2B066301F5B1D4BFFD95FEB2D9535180 /* Release */, + E64807FB037B9B635808313726C43ADB /* Debug */, + 1478607FB5E2A88C7B9A3DEFA88A3F3D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 36CF018EC4C12A6CF5F4C04031B017C6 /* Build configuration list for PBXNativeTarget "MJExtension-MJExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C4990366FFD58DB64C9EC32836ACB68C /* Debug */, + D3E550B5DC3C3AFD98C40E6DA75D9544 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3E85843C67295DD920673DB26A1C6AC9 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4E4837ADDBD167B9ABA21F21875B6A89 /* Debug */, + 7B003C799F044D04A8EFBB3932F95D7B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -6388,11 +6716,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 48C48CA74E925091D509EAE661A5D87D /* Build configuration list for PBXNativeTarget "Pods-keyBoard" */ = { + 4E86C95B2CC48E329293EC1606BA231C /* Build configuration list for PBXNativeTarget "SSZipArchive" */ = { isa = XCConfigurationList; buildConfigurations = ( - 083F4B327F32BA42082C93DA3678A905 /* Debug */, - 9B8AB2F5A292514588D0A1ECFA2D15C4 /* Release */, + 00DBBD639799D4F01B73D8D9C55ED38E /* Debug */, + 6F497FFBB9DB8A13D91CC3DC5F372ADB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -6415,6 +6743,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 596C9DD6B009BD3A15FD1119ECF7A38D /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3F4A3BF11040EAF9EF8F661C74AE4B87 /* Debug */, + CDE5A4155129EFDD320EFF53E0B3678E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 773A22765B846DE10CADF4D2E77FE841 /* Build configuration list for PBXNativeTarget "JXPagingView" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6433,6 +6770,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 873ED1BA7B10EBD1D3CF8071EC05EF13 /* Build configuration list for PBXNativeTarget "Pods-keyBoard" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 49BCEC8C255FD70CF03720FDECEA662C /* Debug */, + 21C406BB88997816D9F161D36A115026 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 91696E961FC8FD5A148C3EBCD7606569 /* Build configuration list for PBXNativeTarget "LSTPopView" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6442,15 +6788,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 931B4A41B3614242C4D8813983B29AE7 /* Build configuration list for PBXNativeTarget "JXCategoryView-JXCategoryView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 024C9A3B861ABA20A2346A6A466EB015 /* Debug */, - 44E4190BC3FB54D917C88AC4FC84B935 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 945C0F2B41CBADE68A142120AE9A4AF3 /* Build configuration list for PBXNativeTarget "MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6460,15 +6797,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 97AAB185F08FD001A3F3B9102E506695 /* Build configuration list for PBXNativeTarget "MJExtension-MJExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 26A0DE2A2C5EEB5AB1D9315AE03103A7 /* Debug */, - 40403C5D9FB335BD8C765DF3FE61B9E5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 9CC7AA793D9397C15E010F8242EE1046 /* Build configuration list for PBXAggregateTarget "Bugly" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6478,6 +6806,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + A0F23D46D133F936F0565C0D3363B200 /* Build configuration list for PBXNativeTarget "LSTTimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5A662E7D9D60D0CFAA189DE12E87C1DC /* Debug */, + 1BFE82CDDBC75ACC9A90DD219D216BCD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; AAA1F8799DB68036C3BE983C05FAA2C7 /* Build configuration list for PBXNativeTarget "Masonry" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6496,24 +6833,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BA6D8ED14C9A066F526869BBA7BFA2F0 /* Build configuration list for PBXNativeTarget "MJRefresh-MJRefresh.Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D82E0E1859E0296A83015DC35BE95E81 /* Debug */, - 0FF9630F4FA55B5D0AE7A67F275961B4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C43E72A521778768A4BFF773BB3A3E73 /* Build configuration list for PBXNativeTarget "LSTTimer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0BAEB6F6833BF585A150B8AD74FDBC03 /* Debug */, - BD1821022C3B758BEA9CB5616F987BC7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; D47A0ADD8E3841C9330561C3E1664BB3 /* Build configuration list for PBXNativeTarget "HWPanModal" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6532,6 +6851,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + E39B48EBA2D9CC72FA077274CDF77D06 /* Build configuration list for PBXNativeTarget "JXPagingView-JXPagerView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A356CB460FA2861C0E1B152FF062E68 /* Debug */, + E369780F94E464A5DEEA505DCCE081FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; E7624967EDC883D80ED3DA81C495736B /* Build configuration list for PBXNativeTarget "LookinServer" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6550,15 +6878,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FB913463BEC55EE719AD5BC32990DB46 /* Build configuration list for PBXNativeTarget "SDWebImage-SDWebImage" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D9D1855EA0BF7C903F0263AEDAADE1E7 /* Debug */, - 124345EDBC5F34B7AF5C60B83C477235 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; diff --git a/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/SSZipArchive.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/SSZipArchive.xcscheme new file mode 100644 index 0000000..75fbfac --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/SSZipArchive.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/SSZipArchive/LICENSE.txt b/Pods/SSZipArchive/LICENSE.txt new file mode 100644 index 0000000..1cc4a4a --- /dev/null +++ b/Pods/SSZipArchive/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2013-2021, ZipArchive, https://github.com/ZipArchive + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/SSZipArchive/README.md b/Pods/SSZipArchive/README.md new file mode 100644 index 0000000..7e038c3 --- /dev/null +++ b/Pods/SSZipArchive/README.md @@ -0,0 +1,88 @@ +[![CI](https://github.com/ZipArchive/ZipArchive/workflows/CI/badge.svg)](https://github.com/ZipArchive/ZipArchive/actions?query=workflow%3ACI) + +# SSZipArchive + +ZipArchive is a simple utility class for zipping and unzipping files on iOS, macOS and tvOS. + +- Unzip zip files; +- Unzip password protected zip files; +- Unzip AES encrypted zip files; +- Create zip files; +- Create large (> 4.3Gb) files; +- Create password protected zip files; +- Create AES encrypted zip files; +- Choose compression level; +- Zip-up NSData instances. (with a filename) + +## Installation and Setup + +*The main release branch is configured to support Objective-C and Swift 3+.* + +SSZipArchive works on Xcode 7 and above, iOS 9 and above, tvOS 9 and above, macOS 10.9 and above, watchOS 2 and above. + +### CocoaPods +In your Podfile: +`pod 'SSZipArchive'` + +You should define your minimum deployment target explicitly, like: +`platform :ios, '9.0'` + +Recommended CocoaPods version should be at least CocoaPods 1.7.5. + +### SPM +Add a Swift Package reference to https://github.com/ZipArchive/ZipArchive.git (SSZipArchive 2.4.2 and higher or master) + +### Carthage +In your Cartfile: +`github "ZipArchive/ZipArchive"` + +Note: We are no longer releasing a Carthage pre-built package as of 2.2.3. Developers are encouraged to build one themselves. + +### Manual + +1. Add the `SSZipArchive` and `minizip` folders to your project. +2. Add the `libz` and `libiconv` libraries to your target. +3. Add the `Security` framework to your target. +4. Add the following GCC_PREPROCESSOR_DEFINITIONS: `HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB $(inherited)`. + +SSZipArchive requires ARC. + +## Usage + +### Objective-C + +```objective-c + +//Import "#import " for SPM/Carthage, and "#import " for CocoaPods. + +// Create +[SSZipArchive createZipFileAtPath:zipPath withContentsOfDirectory:sampleDataPath]; + +// Unzip +[SSZipArchive unzipFileAtPath:zipPath toDestination:unzipPath]; +``` + +### Swift + +```swift +//Import "import ZipArchive" for SPM/Carthage, and "import SSZipArchive" for CocoaPods. + +// Create +SSZipArchive.createZipFileAtPath(zipPath, withContentsOfDirectory: sampleDataPath) + +// Unzip +SSZipArchive.unzipFileAtPath(zipPath, toDestination: unzipPath) +``` + +## License + +SSZipArchive is protected under the [MIT license](https://github.com/samsoffes/ssziparchive/raw/master/LICENSE) and our slightly modified version of [minizip-ng (formally minizip)](https://github.com/zlib-ng/minizip-ng) 3.0.2 is licensed under the [Zlib license](https://www.zlib.net/zlib_license.html). + +## Acknowledgments + +* Big thanks to *aish* for creating [ZipArchive](https://code.google.com/archive/p/ziparchive/). The project that inspired SSZipArchive. +* Thank you [@soffes](https://github.com/soffes) for the actual name of SSZipArchive. +* Thank you [@randomsequence](https://github.com/randomsequence) for implementing the creation support tech. +* Thank you [@johnezang](https://github.com/johnezang) for all his amazing help along the way. +* Thank you [@nmoinvaz](https://github.com/nmoinvaz) for minizip-ng (formally minizip), the core of ZipArchive. +* Thank you to [all the contributors](https://github.com/ZipArchive/ZipArchive/graphs/contributors). diff --git a/Pods/SSZipArchive/SSZipArchive/SSZipArchive.h b/Pods/SSZipArchive/SSZipArchive/SSZipArchive.h new file mode 100644 index 0000000..242b9a7 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/SSZipArchive.h @@ -0,0 +1,165 @@ +// +// SSZipArchive.h +// SSZipArchive +// +// Created by Sam Soffes on 7/21/10. +// + +#ifndef _SSZIPARCHIVE_H +#define _SSZIPARCHIVE_H + +#import + +#import "SSZipCommon.h" + +NS_ASSUME_NONNULL_BEGIN + +extern NSString *const SSZipArchiveErrorDomain; +typedef NS_ENUM(NSInteger, SSZipArchiveErrorCode) { + SSZipArchiveErrorCodeFailedOpenZipFile = -1, + SSZipArchiveErrorCodeFailedOpenFileInZip = -2, + SSZipArchiveErrorCodeFileInfoNotLoadable = -3, + SSZipArchiveErrorCodeFileContentNotReadable = -4, + SSZipArchiveErrorCodeFailedToWriteFile = -5, + SSZipArchiveErrorCodeInvalidArguments = -6, +}; + +@protocol SSZipArchiveDelegate; + +@interface SSZipArchive : NSObject + +// Password check ++ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path; ++ (BOOL)isPasswordValidForArchiveAtPath:(NSString *)path password:(NSString *)pw error:(NSError * _Nullable * _Nullable)error NS_SWIFT_NOTHROW; + +// Total payload size ++ (NSNumber *)payloadSizeForArchiveAtPath:(NSString *)path error:(NSError **)error; + +// Unzip ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination; ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(nullable id)delegate; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError * *)error; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate NS_REFINED_FOR_SWIFT; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + nestedZipLevel:(NSInteger)nestedZipLevel + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler; + +// Zip +// default compression level is Z_DEFAULT_COMPRESSION (from "zlib.h") +// keepParentDirectory: if YES, then unzipping will give `directoryName/fileName`. If NO, then unzipping will just give `fileName`. Default is NO. + +// without password ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths; ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath; + ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory; + +// with optional password, default encryption is AES +// don't use AES if you need compatibility with native macOS unzip and Archive Utility ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password; ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password; ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password; ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + withPassword:(nullable NSString *)password + andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + compressionLevel:(int)compressionLevel + password:(nullable NSString *)password + AES:(BOOL)aes + progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler; +//suport symlink compress --file ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password keepSymlinks:(BOOL)keeplinks; +//suport symlink compress --directory ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + compressionLevel:(int)compressionLevel + password:(nullable NSString *)password + AES:(BOOL)aes + progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler + keepSymlinks:(BOOL)keeplinks; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)initWithPath:(NSString *)path NS_DESIGNATED_INITIALIZER; +- (BOOL)open; +- (BOOL)openForAppending; + +/// write empty folder +- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(nullable NSString *)password; +/// write file +- (BOOL)writeFile:(NSString *)path withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName withPassword:(nullable NSString *)password; +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; +///write symlink files +- (BOOL)writeSymlinkFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; +/// write data +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename withPassword:(nullable NSString *)password; +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes; + +- (BOOL)close; + +@end + +@protocol SSZipArchiveDelegate + +@optional + +- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo; +- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath; + +- (BOOL)zipArchiveShouldUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo; +- (void)zipArchiveWillUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo; +- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath unzippedFilePath:(NSString *)unzippedFilePath; + +- (void)zipArchiveProgressEvent:(unsigned long long)loaded total:(unsigned long long)total; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* _SSZIPARCHIVE_H */ diff --git a/Pods/SSZipArchive/SSZipArchive/SSZipArchive.m b/Pods/SSZipArchive/SSZipArchive/SSZipArchive.m new file mode 100644 index 0000000..7184d10 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/SSZipArchive.m @@ -0,0 +1,1433 @@ +// +// SSZipArchive.m +// SSZipArchive +// +// Created by Sam Soffes on 7/21/10. +// + +#import "SSZipArchive.h" +#include "minizip/mz_compat.h" +#include "minizip/mz_zip.h" +#include "minizip/mz_os.h" +#include +#include + +NSString *const SSZipArchiveErrorDomain = @"SSZipArchiveErrorDomain"; + +#define CHUNK 16384 + +int _zipOpenEntry(zipFile entry, NSString *name, const zip_fileinfo *zipfi, int level, NSString *password, BOOL aes); +BOOL _fileIsSymbolicLink(const unz_file_info *fileInfo); + +#ifndef API_AVAILABLE +// Xcode 7- compatibility +#define API_AVAILABLE(...) +#endif + +@interface NSData(SSZipArchive) +- (NSString *)_base64RFC4648 API_AVAILABLE(macos(10.9), ios(7.0), watchos(2.0), tvos(9.0)); +- (NSString *)_hexString; +@end + +@interface NSString (SSZipArchive) +- (NSString *)_sanitizedPath; +@end + +@interface SSZipArchive () +- (instancetype)init NS_DESIGNATED_INITIALIZER; +@end + +@implementation SSZipArchive +{ + /// path for zip file + NSString *_path; + zipFile _zip; +} + +#pragma mark - Password check + ++ (BOOL)isFilePasswordProtectedAtPath:(NSString *)path { + // Begin opening + zipFile zip = unzOpen(path.fileSystemRepresentation); + if (zip == NULL) { + return NO; + } + + BOOL passwordProtected = NO; + int ret = unzGoToFirstFile(zip); + if (ret == UNZ_OK) { + do { + ret = unzOpenCurrentFile(zip); + if (ret != UNZ_OK) { + // attempting with an arbitrary password to workaround `unzOpenCurrentFile` limitation on AES encrypted files + ret = unzOpenCurrentFilePassword(zip, ""); + unzCloseCurrentFile(zip); + if (ret == UNZ_OK || ret == MZ_PASSWORD_ERROR) { + passwordProtected = YES; + } + break; + } + unz_file_info fileInfo = {}; + ret = unzGetCurrentFileInfo(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0); + unzCloseCurrentFile(zip); + if (ret != UNZ_OK) { + break; + } else if ((fileInfo.flag & MZ_ZIP_FLAG_ENCRYPTED) == 1) { + passwordProtected = YES; + break; + } + + ret = unzGoToNextFile(zip); + } while (ret == UNZ_OK); + } + + unzClose(zip); + return passwordProtected; +} + ++ (BOOL)isPasswordValidForArchiveAtPath:(NSString *)path password:(NSString *)pw error:(NSError **)error { + if (error) { + *error = nil; + } + + zipFile zip = unzOpen(path.fileSystemRepresentation); + if (zip == NULL) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFailedOpenZipFile + userInfo:@{NSLocalizedDescriptionKey: @"failed to open zip file"}]; + } + return NO; + } + + // Initialize passwordValid to YES (No password required) + BOOL passwordValid = YES; + int ret = unzGoToFirstFile(zip); + if (ret == UNZ_OK) { + do { + if (pw.length == 0) { + ret = unzOpenCurrentFile(zip); + } else { + ret = unzOpenCurrentFilePassword(zip, [pw cStringUsingEncoding:NSUTF8StringEncoding]); + } + if (ret != UNZ_OK) { + if (ret != MZ_PASSWORD_ERROR) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFailedOpenFileInZip + userInfo:@{NSLocalizedDescriptionKey: @"failed to open file in zip archive"}]; + } + } + passwordValid = NO; + break; + } + unz_file_info fileInfo = {}; + ret = unzGetCurrentFileInfo(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0); + if (ret != UNZ_OK) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFileInfoNotLoadable + userInfo:@{NSLocalizedDescriptionKey: @"failed to retrieve info for file"}]; + } + passwordValid = NO; + break; + } else if ((fileInfo.flag & 1) == 1) { + unsigned char buffer[10] = {0}; + int readBytes = unzReadCurrentFile(zip, buffer, (unsigned)MIN(10UL,fileInfo.uncompressed_size)); + if (readBytes < 0) { + // Let's assume error Z_DATA_ERROR is caused by an invalid password + // Let's assume other errors are caused by Content Not Readable + if (readBytes != Z_DATA_ERROR) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFileContentNotReadable + userInfo:@{NSLocalizedDescriptionKey: @"failed to read contents of file entry"}]; + } + } + passwordValid = NO; + break; + } + passwordValid = YES; + break; + } + + unzCloseCurrentFile(zip); + ret = unzGoToNextFile(zip); + } while (ret == UNZ_OK); + } + + unzClose(zip); + return passwordValid; +} + ++ (NSNumber *)payloadSizeForArchiveAtPath:(NSString *)path error:(NSError **)error { + if (error) { + *error = nil; + } + + zipFile zip = unzOpen(path.fileSystemRepresentation); + if (zip == NULL) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFailedOpenZipFile + userInfo:@{NSLocalizedDescriptionKey: @"failed to open zip file"}]; + } + return @0; + } + + unsigned long long totalSize = 0; + int ret = unzGoToFirstFile(zip); + if (ret == UNZ_OK) { + do { + ret = unzOpenCurrentFile(zip); + if (ret != UNZ_OK) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFailedOpenFileInZip + userInfo:@{NSLocalizedDescriptionKey: @"failed to open file in zip archive"}]; + } + break; + } + unz_file_info fileInfo = {}; + ret = unzGetCurrentFileInfo(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0); + if (ret != UNZ_OK) { + if (error) { + *error = [NSError errorWithDomain:SSZipArchiveErrorDomain + code:SSZipArchiveErrorCodeFileInfoNotLoadable + userInfo:@{NSLocalizedDescriptionKey: @"failed to retrieve info for file"}]; + } + break; + } + + totalSize += fileInfo.uncompressed_size; + + unzCloseCurrentFile(zip); + ret = unzGoToNextFile(zip); + } while (ret == UNZ_OK); + } + + unzClose(zip); + + return [NSNumber numberWithUnsignedLongLong:totalSize]; +} + +#pragma mark - Unzipping + ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination +{ + return [self unzipFileAtPath:path toDestination:destination delegate:nil]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination overwrite:(BOOL)overwrite password:(nullable NSString *)password error:(NSError **)error +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:overwrite password:password error:error delegate:nil progressHandler:nil completionHandler:nil]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(nullable id)delegate +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:YES password:nil error:nil delegate:delegate progressHandler:nil completionHandler:nil]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:overwrite password:password error:error delegate:delegate progressHandler:nil completionHandler:nil]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + overwrite:(BOOL)overwrite + password:(NSString *)password + progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:overwrite password:password error:nil delegate:nil progressHandler:progressHandler completionHandler:completionHandler]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:YES overwrite:YES password:nil error:nil delegate:nil progressHandler:progressHandler completionHandler:completionHandler]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError * *)error + delegate:(nullable id)delegate +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:preserveAttributes overwrite:overwrite password:password error:error delegate:delegate progressHandler:nil completionHandler:nil]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler +{ + return [self unzipFileAtPath:path toDestination:destination preserveAttributes:preserveAttributes overwrite:overwrite nestedZipLevel:0 password:password error:error delegate:delegate progressHandler:progressHandler completionHandler:completionHandler]; +} + ++ (BOOL)unzipFileAtPath:(NSString *)path + toDestination:(NSString *)destination + preserveAttributes:(BOOL)preserveAttributes + overwrite:(BOOL)overwrite + nestedZipLevel:(NSInteger)nestedZipLevel + password:(nullable NSString *)password + error:(NSError **)error + delegate:(nullable id)delegate + progressHandler:(void (^_Nullable)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler + completionHandler:(void (^_Nullable)(NSString *path, BOOL succeeded, NSError * _Nullable error))completionHandler +{ + // Guard against empty strings + if (path.length == 0 || destination.length == 0) + { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"received invalid argument(s)"}; + NSError *err = [NSError errorWithDomain:SSZipArchiveErrorDomain code:SSZipArchiveErrorCodeInvalidArguments userInfo:userInfo]; + if (error) + { + *error = err; + } + if (completionHandler) + { + completionHandler(nil, NO, err); + } + return NO; + } + + // Begin opening + zipFile zip = unzOpen(path.fileSystemRepresentation); + if (zip == NULL) + { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"failed to open zip file"}; + NSError *err = [NSError errorWithDomain:SSZipArchiveErrorDomain code:SSZipArchiveErrorCodeFailedOpenZipFile userInfo:userInfo]; + if (error) + { + *error = err; + } + if (completionHandler) + { + completionHandler(nil, NO, err); + } + return NO; + } + + NSDictionary * fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil]; + unsigned long long fileSize = [[fileAttributes objectForKey:NSFileSize] unsignedLongLongValue]; + unsigned long long currentPosition = 0; + + unz_global_info globalInfo = {}; + unzGetGlobalInfo(zip, &globalInfo); + + // Begin unzipping + int ret = 0; + ret = unzGoToFirstFile(zip); + if (ret != UNZ_OK && ret != MZ_END_OF_LIST) + { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"failed to open first file in zip file"}; + NSError *err = [NSError errorWithDomain:SSZipArchiveErrorDomain code:SSZipArchiveErrorCodeFailedOpenFileInZip userInfo:userInfo]; + if (error) + { + *error = err; + } + if (completionHandler) + { + completionHandler(nil, NO, err); + } + unzClose(zip); + return NO; + } + + BOOL success = YES; + BOOL canceled = NO; + int crc_ret = 0; + unsigned char buffer[4096] = {0}; + NSFileManager *fileManager = [NSFileManager defaultManager]; + NSMutableArray *directoriesModificationDates = [[NSMutableArray alloc] init]; + + // Message delegate + if ([delegate respondsToSelector:@selector(zipArchiveWillUnzipArchiveAtPath:zipInfo:)]) { + [delegate zipArchiveWillUnzipArchiveAtPath:path zipInfo:globalInfo]; + } + if ([delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) { + [delegate zipArchiveProgressEvent:currentPosition total:fileSize]; + } + + NSInteger currentFileNumber = -1; + NSError *unzippingError; + do { + currentFileNumber++; + if (ret == MZ_END_OF_LIST) { + break; + } + @autoreleasepool { + if (password.length == 0) { + ret = unzOpenCurrentFile(zip); + } else { + ret = unzOpenCurrentFilePassword(zip, [password cStringUsingEncoding:NSUTF8StringEncoding]); + } + + if (ret != UNZ_OK) { + unzippingError = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:SSZipArchiveErrorCodeFailedOpenFileInZip userInfo:@{NSLocalizedDescriptionKey: @"failed to open file in zip file"}]; + success = NO; + break; + } + + // Reading data and write to file + unz_file_info fileInfo; + memset(&fileInfo, 0, sizeof(unz_file_info)); + + ret = unzGetCurrentFileInfo(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0); + if (ret != UNZ_OK) { + unzippingError = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:SSZipArchiveErrorCodeFileInfoNotLoadable userInfo:@{NSLocalizedDescriptionKey: @"failed to retrieve info for file"}]; + success = NO; + unzCloseCurrentFile(zip); + break; + } + + currentPosition += fileInfo.compressed_size; + + // Message delegate + if ([delegate respondsToSelector:@selector(zipArchiveShouldUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) { + if (![delegate zipArchiveShouldUnzipFileAtIndex:currentFileNumber + totalFiles:(NSInteger)globalInfo.number_entry + archivePath:path + fileInfo:fileInfo]) { + success = NO; + canceled = YES; + break; + } + } + if ([delegate respondsToSelector:@selector(zipArchiveWillUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) { + [delegate zipArchiveWillUnzipFileAtIndex:currentFileNumber totalFiles:(NSInteger)globalInfo.number_entry + archivePath:path fileInfo:fileInfo]; + } + if ([delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) { + [delegate zipArchiveProgressEvent:(NSInteger)currentPosition total:(NSInteger)fileSize]; + } + + char *filename = (char *)malloc(fileInfo.size_filename + 1); + if (filename == NULL) + { + success = NO; + break; + } + + unzGetCurrentFileInfo(zip, &fileInfo, filename, fileInfo.size_filename + 1, NULL, 0, NULL, 0); + filename[fileInfo.size_filename] = '\0'; + + BOOL fileIsSymbolicLink = _fileIsSymbolicLink(&fileInfo); + + NSString * strPath = [SSZipArchive _filenameStringWithCString:filename + version_made_by:fileInfo.version + general_purpose_flag:fileInfo.flag + size:fileInfo.size_filename]; + if ([strPath hasPrefix:@"__MACOSX/"]) { + // ignoring resource forks: https://superuser.com/questions/104500/what-is-macosx-folder + unzCloseCurrentFile(zip); + ret = unzGoToNextFile(zip); + free(filename); + continue; + } + + // Check if it contains directory + BOOL isDirectory = NO; + if (filename[fileInfo.size_filename-1] == '/' || filename[fileInfo.size_filename-1] == '\\') { + isDirectory = YES; + } + free(filename); + + // Sanitize paths in the file name. + strPath = [strPath _sanitizedPath]; + if (!strPath.length) { + // if filename data is unsalvageable, we default to currentFileNumber + strPath = @(currentFileNumber).stringValue; + } + + NSString *fullPath = [destination stringByAppendingPathComponent:strPath]; + NSError *err = nil; + NSDictionary *directoryAttr; + if (preserveAttributes) { + NSDate *modDate = [[self class] _dateWithMSDOSFormat:(UInt32)fileInfo.mz_dos_date]; + directoryAttr = @{NSFileCreationDate: modDate, NSFileModificationDate: modDate}; + [directoriesModificationDates addObject: @{@"path": fullPath, @"modDate": modDate}]; + } + if (isDirectory) { + [fileManager createDirectoryAtPath:fullPath withIntermediateDirectories:YES attributes:directoryAttr error:&err]; + } else { + [fileManager createDirectoryAtPath:fullPath.stringByDeletingLastPathComponent withIntermediateDirectories:YES attributes:directoryAttr error:&err]; + } + if (err != nil) { + if ([err.domain isEqualToString:NSCocoaErrorDomain] && + err.code == 640) { + unzippingError = err; + unzCloseCurrentFile(zip); + success = NO; + break; + } + NSLog(@"[SSZipArchive] Error: %@", err.localizedDescription); + } + + if ([fileManager fileExistsAtPath:fullPath] && !isDirectory && !overwrite) { + //FIXME: couldBe CRC Check? + unzCloseCurrentFile(zip); + ret = unzGoToNextFile(zip); + continue; + } + + if (isDirectory && !fileIsSymbolicLink) { + // nothing to read/write for a directory + } else if (!fileIsSymbolicLink) { + // ensure we are not creating stale file entries + int readBytes = unzReadCurrentFile(zip, buffer, 4096); + if (readBytes >= 0) { + FILE *fp = fopen(fullPath.fileSystemRepresentation, "wb"); + while (fp) { + if (readBytes > 0) { + if (0 == fwrite(buffer, readBytes, 1, fp)) { + if (ferror(fp)) { + NSString *message = [NSString stringWithFormat:@"Failed to write file (check your free space)"]; + NSLog(@"[SSZipArchive] %@", message); + success = NO; + unzippingError = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:SSZipArchiveErrorCodeFailedToWriteFile userInfo:@{NSLocalizedDescriptionKey: message}]; + break; + } + } + } else { + break; + } + readBytes = unzReadCurrentFile(zip, buffer, 4096); + if (readBytes < 0) { + // Let's assume error Z_DATA_ERROR is caused by an invalid password + // Let's assume other errors are caused by Content Not Readable + success = NO; + } + } + + if (fp) { + fclose(fp); + + if (nestedZipLevel + && [fullPath.pathExtension.lowercaseString isEqualToString:@"zip"] + && [self unzipFileAtPath:fullPath + toDestination:fullPath.stringByDeletingLastPathComponent + preserveAttributes:preserveAttributes + overwrite:overwrite + nestedZipLevel:nestedZipLevel - 1 + password:password + error:nil + delegate:nil + progressHandler:nil + completionHandler:nil]) { + [directoriesModificationDates removeLastObject]; + [[NSFileManager defaultManager] removeItemAtPath:fullPath error:nil]; + } else if (preserveAttributes) { + + // Set the original datetime property + if (fileInfo.mz_dos_date != 0) { + NSDate *orgDate = [[self class] _dateWithMSDOSFormat:(UInt32)fileInfo.mz_dos_date]; + NSDictionary *attr = @{NSFileModificationDate: orgDate}; + + if (attr) { + if (![fileManager setAttributes:attr ofItemAtPath:fullPath error:nil]) { + // Can't set attributes + NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting modification date"); + } + } + } + + // Set the original permissions on the file (+read/write to solve #293) + uLong permissions = fileInfo.external_fa >> 16 | 0b110000000; + if (permissions != 0) { + // Store it into a NSNumber + NSNumber *permissionsValue = @(permissions); + + // Retrieve any existing attributes + NSMutableDictionary *attrs = [[NSMutableDictionary alloc] initWithDictionary:[fileManager attributesOfItemAtPath:fullPath error:nil]]; + + // Set the value in the attributes dict + [attrs setObject:permissionsValue forKey:NSFilePosixPermissions]; + + // Update attributes + if (![fileManager setAttributes:attrs ofItemAtPath:fullPath error:nil]) { + // Unable to set the permissions attribute + NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting permissions"); + } + } + } + } + else + { + // if we couldn't open file descriptor we can validate global errno to see the reason + int errnoSave = errno; + BOOL isSeriousError = NO; + switch (errnoSave) { + case EISDIR: + // Is a directory + // assumed case + break; + + case ENOSPC: + case EMFILE: + // No space left on device + // or + // Too many open files + isSeriousError = YES; + break; + + default: + // ignore case + // Just log the error + { + NSError *errorObject = [NSError errorWithDomain:NSPOSIXErrorDomain + code:errnoSave + userInfo:nil]; + NSLog(@"[SSZipArchive] Failed to open file on unzipping.(%@)", errorObject); + } + break; + } + + if (isSeriousError) { + // serious case + unzippingError = [NSError errorWithDomain:NSPOSIXErrorDomain + code:errnoSave + userInfo:nil]; + unzCloseCurrentFile(zip); + // Log the error + NSLog(@"[SSZipArchive] Failed to open file on unzipping.(%@)", unzippingError); + + // Break unzipping + success = NO; + break; + } + } + } else { + // Let's assume error Z_DATA_ERROR is caused by an invalid password + // Let's assume other errors are caused by Content Not Readable + success = NO; + break; + } + } + else + { + // Assemble the path for the symbolic link + NSMutableString *destinationPath = [NSMutableString string]; + int bytesRead = 0; + while ((bytesRead = unzReadCurrentFile(zip, buffer, 4096)) > 0) + { + buffer[bytesRead] = 0; + [destinationPath appendString:@((const char *)buffer)]; + } + if (bytesRead < 0) { + // Let's assume error Z_DATA_ERROR is caused by an invalid password + // Let's assume other errors are caused by Content Not Readable + success = NO; + break; + } + + // Check if the symlink exists and delete it if we're overwriting + if (overwrite) + { + if ([fileManager fileExistsAtPath:fullPath]) + { + NSError *localError = nil; + BOOL removeSuccess = [fileManager removeItemAtPath:fullPath error:&localError]; + if (!removeSuccess) + { + NSString *message = [NSString stringWithFormat:@"Failed to delete existing symbolic link at \"%@\"", localError.localizedDescription]; + NSLog(@"[SSZipArchive] %@", message); + success = NO; + unzippingError = [NSError errorWithDomain:SSZipArchiveErrorDomain code:localError.code userInfo:@{NSLocalizedDescriptionKey: message}]; + } + } + } + + // Create the symbolic link (making sure it stays relative if it was relative before) + int symlinkError = symlink([destinationPath cStringUsingEncoding:NSUTF8StringEncoding], + [fullPath cStringUsingEncoding:NSUTF8StringEncoding]); + + if (symlinkError != 0) + { + // Bubble the error up to the completion handler + NSString *message = [NSString stringWithFormat:@"Failed to create symbolic link at \"%@\" to \"%@\" - symlink() error code: %d", fullPath, destinationPath, errno]; + NSLog(@"[SSZipArchive] %@", message); + success = NO; + unzippingError = [NSError errorWithDomain:NSPOSIXErrorDomain code:symlinkError userInfo:@{NSLocalizedDescriptionKey: message}]; + } + } + + crc_ret = unzCloseCurrentFile(zip); + if (crc_ret == MZ_CRC_ERROR) { + // CRC ERROR + success = NO; + break; + } + ret = unzGoToNextFile(zip); + + // Message delegate + if ([delegate respondsToSelector:@selector(zipArchiveDidUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) { + [delegate zipArchiveDidUnzipFileAtIndex:currentFileNumber totalFiles:(NSInteger)globalInfo.number_entry + archivePath:path fileInfo:fileInfo]; + } else if ([delegate respondsToSelector: @selector(zipArchiveDidUnzipFileAtIndex:totalFiles:archivePath:unzippedFilePath:)]) { + [delegate zipArchiveDidUnzipFileAtIndex: currentFileNumber totalFiles: (NSInteger)globalInfo.number_entry + archivePath:path unzippedFilePath: fullPath]; + } + + if (progressHandler) + { + progressHandler(strPath, fileInfo, currentFileNumber, globalInfo.number_entry); + } + } + } while (ret == UNZ_OK && success); + + // Close + unzClose(zip); + + // The process of decompressing the .zip archive causes the modification times on the folders + // to be set to the present time. So, when we are done, they need to be explicitly set. + // set the modification date on all of the directories. + if (success && preserveAttributes) { + NSError * err = nil; + for (NSDictionary * d in directoriesModificationDates) { + if (![[NSFileManager defaultManager] setAttributes:@{NSFileModificationDate: [d objectForKey:@"modDate"]} ofItemAtPath:[d objectForKey:@"path"] error:&err]) { + NSLog(@"[SSZipArchive] Set attributes failed for directory: %@.", [d objectForKey:@"path"]); + } + if (err) { + NSLog(@"[SSZipArchive] Error setting directory file modification date attribute: %@", err.localizedDescription); + } + } + } + + // Message delegate + if (success && [delegate respondsToSelector:@selector(zipArchiveDidUnzipArchiveAtPath:zipInfo:unzippedPath:)]) { + [delegate zipArchiveDidUnzipArchiveAtPath:path zipInfo:globalInfo unzippedPath:destination]; + } + // final progress event = 100% + if (!canceled && [delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) { + [delegate zipArchiveProgressEvent:fileSize total:fileSize]; + } + + NSError *retErr = nil; + if (crc_ret == MZ_CRC_ERROR) + { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"crc check failed for file"}; + retErr = [NSError errorWithDomain:SSZipArchiveErrorDomain code:SSZipArchiveErrorCodeFileInfoNotLoadable userInfo:userInfo]; + } + + if (error) { + if (unzippingError) { + *error = unzippingError; + } + else { + *error = retErr; + } + } + if (completionHandler) + { + if (unzippingError) { + completionHandler(path, success, unzippingError); + } + else + { + completionHandler(path, success, retErr); + } + } + return success; +} + +#pragma mark - Zipping ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths +{ + return [SSZipArchive createZipFileAtPath:path withFilesAtPaths:paths withPassword:nil]; +} ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath { + return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath withPassword:nil]; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory { + return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:keepParentDirectory withPassword:nil]; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(NSString *)password { + return [self createZipFileAtPath:path withFilesAtPaths:paths withPassword:password progressHandler:nil]; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(NSString *)password progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler +{ + SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path]; + BOOL success = [zipArchive open]; + if (success) { + NSUInteger total = paths.count, complete = 0; + for (NSString *filePath in paths) { + success &= [zipArchive writeFile:filePath withPassword:password]; + if (progressHandler) { + complete++; + progressHandler(complete, total); + } + } + success &= [zipArchive close]; + } + return success; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(nullable NSString *)password { + return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:NO withPassword:password]; +} + + ++ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(nullable NSString *)password { + return [SSZipArchive createZipFileAtPath:path + withContentsOfDirectory:directoryPath + keepParentDirectory:keepParentDirectory + withPassword:password + andProgressHandler:nil + ]; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + withPassword:(nullable NSString *)password + andProgressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler { + return [self createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:keepParentDirectory compressionLevel:Z_DEFAULT_COMPRESSION password:password AES:YES progressHandler:progressHandler]; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + compressionLevel:(int)compressionLevel + password:(nullable NSString *)password + AES:(BOOL)aes + progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler { + + SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path]; + BOOL success = [zipArchive open]; + if (success) { + // use a local fileManager (queue/thread compatibility) + NSFileManager *fileManager = [[NSFileManager alloc] init]; + NSDirectoryEnumerator *dirEnumerator = [fileManager enumeratorAtPath:directoryPath]; + NSArray *allObjects = dirEnumerator.allObjects; + NSUInteger total = allObjects.count, complete = 0; + if (keepParentDirectory && !total) { + allObjects = @[@""]; + total = 1; + } + for (__strong NSString *fileName in allObjects) { + NSString *fullFilePath = [directoryPath stringByAppendingPathComponent:fileName]; + if ([fullFilePath isEqualToString:path]) { + NSLog(@"[SSZipArchive] the archive path and the file path: %@ are the same, which is forbidden.", fullFilePath); + continue; + } + + if (keepParentDirectory) { + fileName = [directoryPath.lastPathComponent stringByAppendingPathComponent:fileName]; + } + + BOOL isDir; + [fileManager fileExistsAtPath:fullFilePath isDirectory:&isDir]; + if (!isDir) { + // file + success &= [zipArchive writeFileAtPath:fullFilePath withFileName:fileName compressionLevel:compressionLevel password:password AES:aes]; + } else { + // directory + if (![fileManager enumeratorAtPath:fullFilePath].nextObject) { + // empty directory + success &= [zipArchive writeFolderAtPath:fullFilePath withFolderName:fileName withPassword:password]; + } + } + if (progressHandler) { + complete++; + progressHandler(complete, total); + } + } + success &= [zipArchive close]; + } + return success; +} + ++ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(nullable NSString *)password keepSymlinks:(BOOL)keeplinks { + if (!keeplinks) { + return [SSZipArchive createZipFileAtPath:path withFilesAtPaths:paths withPassword:password]; + } else { + SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path]; + BOOL success = [zipArchive open]; + if (success) { + for (NSString *filePath in paths) { + //is symlink + if (mz_os_is_symlink(filePath.fileSystemRepresentation) == MZ_OK) { + success &= [zipArchive writeSymlinkFileAtPath:filePath withFileName:nil compressionLevel:Z_DEFAULT_COMPRESSION password:password AES:YES]; + } else { + success &= [zipArchive writeFile:filePath withPassword:password]; + } + } + success &= [zipArchive close]; + } + return success; + } +} + ++ (BOOL)createZipFileAtPath:(NSString *)path + withContentsOfDirectory:(NSString *)directoryPath + keepParentDirectory:(BOOL)keepParentDirectory + compressionLevel:(int)compressionLevel + password:(nullable NSString *)password + AES:(BOOL)aes + progressHandler:(void(^ _Nullable)(NSUInteger entryNumber, NSUInteger total))progressHandler + keepSymlinks:(BOOL)keeplinks { + if (!keeplinks) { + return [SSZipArchive createZipFileAtPath:path + withContentsOfDirectory:directoryPath + keepParentDirectory:keepParentDirectory + compressionLevel:compressionLevel + password:password + AES:aes + progressHandler:progressHandler]; + } else { + SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path]; + BOOL success = [zipArchive open]; + if (success) { + // use a local fileManager (queue/thread compatibility) + NSFileManager *fileManager = [[NSFileManager alloc] init]; + NSDirectoryEnumerator *dirEnumerator = [fileManager enumeratorAtPath:directoryPath]; + NSArray *allObjects = dirEnumerator.allObjects; + NSUInteger total = allObjects.count, complete = 0; + if (keepParentDirectory && !total) { + allObjects = @[@""]; + total = 1; + } + for (__strong NSString *fileName in allObjects) { + NSString *fullFilePath = [directoryPath stringByAppendingPathComponent:fileName]; + + if (keepParentDirectory) { + fileName = [directoryPath.lastPathComponent stringByAppendingPathComponent:fileName]; + } + //is symlink + BOOL isSymlink = NO; + if (mz_os_is_symlink(fullFilePath.fileSystemRepresentation) == MZ_OK) + isSymlink = YES; + BOOL isDir; + [fileManager fileExistsAtPath:fullFilePath isDirectory:&isDir]; + if (!isDir || isSymlink) { + // file or symlink + if (!isSymlink) { + success &= [zipArchive writeFileAtPath:fullFilePath withFileName:fileName compressionLevel:compressionLevel password:password AES:aes]; + } else { + success &= [zipArchive writeSymlinkFileAtPath:fullFilePath withFileName:fileName compressionLevel:compressionLevel password:password AES:aes]; + } + } else { + // directory + if (![fileManager enumeratorAtPath:fullFilePath].nextObject) { + // empty directory + success &= [zipArchive writeFolderAtPath:fullFilePath withFolderName:fileName withPassword:password]; + } + } + if (progressHandler) { + complete++; + progressHandler(complete, total); + } + } + success &= [zipArchive close]; + } + return success; + } +} + +- (BOOL)writeSymlinkFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes +{ + NSAssert((_zip != NULL), @"Attempting to write to an archive which was never opened"); + //read symlink + char link_path[1024]; + int32_t err = MZ_OK; + err = mz_os_read_symlink(path.fileSystemRepresentation, link_path, sizeof(link_path)); + if (err != MZ_OK) { + NSLog(@"[SSZipArchive] Failed to read sylink"); + return NO; + } + + if (!fileName) { + fileName = path.lastPathComponent; + } + + zip_fileinfo zipInfo = {}; + [SSZipArchive zipInfo:&zipInfo setAttributesOfItemAtPath:path]; + + //unpdate zipInfo.external_fa + uint32_t target_attrib = 0; + uint32_t src_attrib = 0; + uint32_t src_sys = 0; + mz_os_get_file_attribs(path.fileSystemRepresentation, &src_attrib); + src_sys = MZ_HOST_SYSTEM(MZ_VERSION_MADEBY); + + if ((src_sys != MZ_HOST_SYSTEM_MSDOS) && (src_sys != MZ_HOST_SYSTEM_WINDOWS_NTFS)) { + /* High bytes are OS specific attributes, low byte is always DOS attributes */ + if (mz_zip_attrib_convert(src_sys, src_attrib, MZ_HOST_SYSTEM_MSDOS, &target_attrib) == MZ_OK) + zipInfo.external_fa = target_attrib; + zipInfo.external_fa |= (src_attrib << 16); + } else { + zipInfo.external_fa = src_attrib; + } + + uint16_t version_madeby = 3 << 8;//UNIX + int error = zipOpenNewFileInZip5(_zip, fileName.fileSystemRepresentation, &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, compressionLevel, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, password.UTF8String, aes, version_madeby, 0, 0); + zipWriteInFileInZip(_zip, link_path, (uint32_t)strlen(link_path)); + zipCloseFileInZip(_zip); + return error == ZIP_OK; +} + +// disabling `init` because designated initializer is `initWithPath:` +- (instancetype)init { @throw nil; } + +// designated initializer +- (instancetype)initWithPath:(NSString *)path +{ + if ((self = [super init])) { + _path = [path copy]; + } + return self; +} + + +- (BOOL)open +{ + NSAssert((_zip == NULL), @"Attempting to open an archive which is already open"); + _zip = zipOpen(_path.fileSystemRepresentation, APPEND_STATUS_CREATE); + return (NULL != _zip); +} + +- (BOOL)openForAppending +{ + NSAssert((_zip == NULL), @"Attempting to open an archive which is already open"); + _zip = zipOpen(_path.fileSystemRepresentation, APPEND_STATUS_ADDINZIP); + return (NULL != _zip); +} + +- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(nullable NSString *)password +{ + NSAssert((_zip != NULL), @"Attempting to write to an archive which was never opened"); + + zip_fileinfo zipInfo = {}; + + [SSZipArchive zipInfo:&zipInfo setAttributesOfItemAtPath:path]; + + int error = _zipOpenEntry(_zip, [folderName stringByAppendingString:@"/"], &zipInfo, Z_NO_COMPRESSION, password, NO); + const void *buffer = NULL; + zipWriteInFileInZip(_zip, buffer, 0); + zipCloseFileInZip(_zip); + return error == ZIP_OK; +} + +- (BOOL)writeFile:(NSString *)path withPassword:(nullable NSString *)password +{ + return [self writeFileAtPath:path withFileName:nil withPassword:password]; +} + +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName withPassword:(nullable NSString *)password +{ + return [self writeFileAtPath:path withFileName:fileName compressionLevel:Z_DEFAULT_COMPRESSION password:password AES:YES]; +} + +// supports writing files with logical folder/directory structure +// *path* is the absolute path of the file that will be compressed +// *fileName* is the relative name of the file how it is stored within the zip e.g. /folder/subfolder/text1.txt +- (BOOL)writeFileAtPath:(NSString *)path withFileName:(nullable NSString *)fileName compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes +{ + NSAssert((_zip != NULL), @"Attempting to write to an archive which was never opened"); + + FILE *input = fopen(path.fileSystemRepresentation, "r"); + if (NULL == input) { + return NO; + } + + if (!fileName) { + fileName = path.lastPathComponent; + } + + zip_fileinfo zipInfo = {}; + + [SSZipArchive zipInfo:&zipInfo setAttributesOfItemAtPath:path]; + + void *buffer = malloc(CHUNK); + if (buffer == NULL) + { + fclose(input); + return NO; + } + + int error = _zipOpenEntry(_zip, fileName, &zipInfo, compressionLevel, password, aes); + + while (!feof(input) && !ferror(input)) + { + unsigned int len = (unsigned int) fread(buffer, 1, CHUNK, input); + zipWriteInFileInZip(_zip, buffer, len); + } + + zipCloseFileInZip(_zip); + free(buffer); + fclose(input); + return error == ZIP_OK; +} + +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename withPassword:(nullable NSString *)password +{ + return [self writeData:data filename:filename compressionLevel:Z_DEFAULT_COMPRESSION password:password AES:YES]; +} + +- (BOOL)writeData:(NSData *)data filename:(nullable NSString *)filename compressionLevel:(int)compressionLevel password:(nullable NSString *)password AES:(BOOL)aes +{ + if (!_zip) { + return NO; + } + if (!data) { + return NO; + } + zip_fileinfo zipInfo = {}; + [SSZipArchive zipInfo:&zipInfo setDate:[NSDate date]]; + + int error = _zipOpenEntry(_zip, filename, &zipInfo, compressionLevel, password, aes); + + zipWriteInFileInZip(_zip, data.bytes, (unsigned int)data.length); + + zipCloseFileInZip(_zip); + return error == ZIP_OK; +} + +- (BOOL)close +{ + NSAssert((_zip != NULL), @"[SSZipArchive] Attempting to close an archive which was never opened"); + int error = zipClose(_zip, NULL); + _zip = nil; + return error == ZIP_OK; +} + +#pragma mark - Private + ++ (NSString *)_filenameStringWithCString:(const char *)filename + version_made_by:(uint16_t)version_made_by + general_purpose_flag:(uint16_t)flag + size:(uint16_t)size_filename { + + // Respect Language encoding flag only reading filename as UTF-8 when this is set + // when file entry created on dos system. + // + // https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT + // Bit 11: Language encoding flag (EFS). If this bit is set, + // the filename and comment fields for this file + // MUST be encoded using UTF-8. (see APPENDIX D) + uint16_t made_by = version_made_by >> 8; + BOOL made_on_dos = made_by == 0; + BOOL languageEncoding = (flag & (1 << 11)) != 0; + if (!languageEncoding && made_on_dos) { + // APPNOTE.TXT D.1: + // D.2 If general purpose bit 11 is unset, the file name and comment should conform + // to the original ZIP character encoding. If general purpose bit 11 is set, the + // filename and comment must support The Unicode Standard, Version 4.1.0 or + // greater using the character encoding form defined by the UTF-8 storage + // specification. The Unicode Standard is published by the The Unicode + // Consortium (www.unicode.org). UTF-8 encoded data stored within ZIP files + // is expected to not include a byte order mark (BOM). + + // Code Page 437 corresponds to kCFStringEncodingDOSLatinUS + NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSLatinUS); + NSString* strPath = [NSString stringWithCString:filename encoding:encoding]; + if (strPath) { + return strPath; + } + } + + // attempting unicode encoding + NSString * strPath = @(filename); + if (strPath) { + return strPath; + } + + // if filename is non-unicode, detect and transform Encoding + NSData *data = [NSData dataWithBytes:(const void *)filename length:sizeof(unsigned char) * size_filename]; +// Testing availability of @available (https://stackoverflow.com/a/46927445/1033581) +#if __clang_major__ < 9 + // Xcode 8- + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_9_2) { +#else + // Xcode 9+ + if (@available(macOS 10.10, iOS 8.0, watchOS 2.0, tvOS 9.0, *)) { +#endif + // supported encodings are in [NSString availableStringEncodings] + [NSString stringEncodingForData:data encodingOptions:nil convertedString:&strPath usedLossyConversion:nil]; + } else { + // fallback to a simple manual detect for macOS 10.9 or older + NSArray *encodings = @[@(kCFStringEncodingGB_18030_2000), @(kCFStringEncodingShiftJIS)]; + for (NSNumber *encoding in encodings) { + strPath = [NSString stringWithCString:filename encoding:(NSStringEncoding)CFStringConvertEncodingToNSStringEncoding(encoding.unsignedIntValue)]; + if (strPath) { + break; + } + } + } + if (strPath) { + return strPath; + } + + // if filename encoding is non-detected, we default to something based on data + // _hexString is more readable than _base64RFC4648 for debugging unknown encodings + strPath = [data _hexString]; + return strPath; +} + ++ (void)zipInfo:(zip_fileinfo *)zipInfo setAttributesOfItemAtPath:(NSString *)path +{ + NSDictionary *attr = [[NSFileManager defaultManager] attributesOfItemAtPath:path error: nil]; + if (attr) + { + NSDate *fileDate = (NSDate *)[attr objectForKey:NSFileModificationDate]; + if (fileDate) + { + [self zipInfo:zipInfo setDate:fileDate]; + } + + // Write permissions into the external attributes, for details on this see here: https://unix.stackexchange.com/a/14727 + // Get the permissions value from the files attributes + NSNumber *permissionsValue = (NSNumber *)[attr objectForKey:NSFilePosixPermissions]; + if (permissionsValue != nil) { + // Get the short value for the permissions + short permissionsShort = permissionsValue.shortValue; + + // Convert this into an octal by adding 010000, 010000 being the flag for a regular file + NSInteger permissionsOctal = 0100000 + permissionsShort; + + // Convert this into a long value + uLong permissionsLong = @(permissionsOctal).unsignedLongValue; + + // Store this into the external file attributes once it has been shifted 16 places left to form part of the second from last byte + + // Casted back to an unsigned int to match type of external_fa in minizip + zipInfo->external_fa = (unsigned int)(permissionsLong << 16L); + } + } +} + ++ (void)zipInfo:(zip_fileinfo *)zipInfo setDate:(NSDate *)date +{ + NSCalendar *currentCalendar = SSZipArchive._gregorian; + NSCalendarUnit flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; + NSDateComponents *components = [currentCalendar components:flags fromDate:date]; + struct tm tmz_date; + tmz_date.tm_sec = (unsigned int)components.second; + tmz_date.tm_min = (unsigned int)components.minute; + tmz_date.tm_hour = (unsigned int)components.hour; + tmz_date.tm_mday = (unsigned int)components.day; + // ISO/IEC 9899 struct tm is 0-indexed for January but NSDateComponents for gregorianCalendar is 1-indexed for January + tmz_date.tm_mon = (unsigned int)components.month - 1; + // ISO/IEC 9899 struct tm is 0-indexed for AD 1900 but NSDateComponents for gregorianCalendar is 1-indexed for AD 1 + tmz_date.tm_year = (unsigned int)components.year - 1900; + zipInfo->mz_dos_date = mz_zip_tm_to_dosdate(&tmz_date); +} + ++ (NSCalendar *)_gregorian +{ + static NSCalendar *gregorian; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + }); + + return gregorian; +} + +// Format from http://newsgroups.derkeiler.com/Archive/Comp/comp.os.msdos.programmer/2009-04/msg00060.html +// Two consecutive words, or a longword, YYYYYYYMMMMDDDDD hhhhhmmmmmmsssss +// YYYYYYY is years from 1980 = 0 +// sssss is (seconds/2). +// +// 3658 = 0011 0110 0101 1000 = 0011011 0010 11000 = 27 2 24 = 2007-02-24 +// 7423 = 0111 0100 0010 0011 - 01110 100001 00011 = 14 33 3 = 14:33:06 ++ (NSDate *)_dateWithMSDOSFormat:(UInt32)msdosDateTime +{ + // the whole `_dateWithMSDOSFormat:` method is equivalent but faster than this one line, + // essentially because `mktime` is slow: + //NSDate *date = [NSDate dateWithTimeIntervalSince1970:dosdate_to_time_t(msdosDateTime)]; + static const UInt32 kYearMask = 0xFE000000; + static const UInt32 kMonthMask = 0x1E00000; + static const UInt32 kDayMask = 0x1F0000; + static const UInt32 kHourMask = 0xF800; + static const UInt32 kMinuteMask = 0x7E0; + static const UInt32 kSecondMask = 0x1F; + + NSAssert(0xFFFFFFFF == (kYearMask | kMonthMask | kDayMask | kHourMask | kMinuteMask | kSecondMask), @"[SSZipArchive] MSDOS date masks don't add up"); + + NSDateComponents *components = [[NSDateComponents alloc] init]; + components.year = 1980 + ((msdosDateTime & kYearMask) >> 25); + components.month = (msdosDateTime & kMonthMask) >> 21; + components.day = (msdosDateTime & kDayMask) >> 16; + components.hour = (msdosDateTime & kHourMask) >> 11; + components.minute = (msdosDateTime & kMinuteMask) >> 5; + components.second = (msdosDateTime & kSecondMask) * 2; + + NSDate *date = [self._gregorian dateFromComponents:components]; + return date; +} + +@end + +int _zipOpenEntry(zipFile entry, NSString *name, const zip_fileinfo *zipfi, int level, NSString *password, BOOL aes) +{ + // https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT + uint16_t made_on_darwin = 19 << 8; + //MZ_ZIP_FLAG_UTF8 + uint16_t flag_base = 1 << 11; + return zipOpenNewFileInZip5(entry, name.fileSystemRepresentation, zipfi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, level, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, password.UTF8String, aes, made_on_darwin, flag_base, 1); +} + +#pragma mark - Private tools for file info + +BOOL _fileIsSymbolicLink(const unz_file_info *fileInfo) +{ + // + // Determine whether this is a symbolic link: + // - File is stored with 'version made by' value of UNIX (3), + // as per https://www.pkware.com/documents/casestudies/APPNOTE.TXT + // in the upper byte of the version field. + // - BSD4.4 st_mode constants are stored in the high 16 bits of the + // external file attributes (defacto standard, verified against libarchive) + // + // The original constants can be found here: + // https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/include/sys/stat.h + // + const uLong ZipUNIXVersion = 3; + const uLong BSD_SFMT = 0170000; + const uLong BSD_IFLNK = 0120000; + + BOOL fileIsSymbolicLink = ((fileInfo->version >> 8) == ZipUNIXVersion) && BSD_IFLNK == (BSD_SFMT & (fileInfo->external_fa >> 16)); + return fileIsSymbolicLink; +} + +#pragma mark - Private tools for unreadable encodings + +@implementation NSData (SSZipArchive) + +// `base64EncodedStringWithOptions` uses a base64 alphabet with '+' and '/'. +// we got those alternatives to make it compatible with filenames: https://en.wikipedia.org/wiki/Base64 +// * modified Base64 encoding for IMAP mailbox names (RFC 3501): uses '+' and ',' +// * modified Base64 for URL and filenames (RFC 4648): uses '-' and '_' +- (NSString *)_base64RFC4648 +{ + NSString *strName = [self base64EncodedStringWithOptions:0]; + strName = [strName stringByReplacingOccurrencesOfString:@"+" withString:@"-"]; + strName = [strName stringByReplacingOccurrencesOfString:@"/" withString:@"_"]; + return strName; +} + +// initWithBytesNoCopy from NSProgrammer, Jan 25 '12: https://stackoverflow.com/a/9009321/1033581 +// hexChars from Peter, Aug 19 '14: https://stackoverflow.com/a/25378464/1033581 +// not implemented as too lengthy: a potential mapping improvement from Moose, Nov 3 '15: https://stackoverflow.com/a/33501154/1033581 +- (NSString *)_hexString +{ + const char *hexChars = "0123456789ABCDEF"; + NSUInteger length = self.length; + const unsigned char *bytes = self.bytes; + char *chars = malloc(length * 2); + if (chars == NULL) { + // we directly raise an exception instead of using NSAssert to make sure assertion is not disabled as this is irrecoverable + [NSException raise:@"NSInternalInconsistencyException" format:@"failed malloc" arguments:nil]; + return nil; + } + char *s = chars; + NSUInteger i = length; + while (i--) { + *s++ = hexChars[*bytes >> 4]; + *s++ = hexChars[*bytes & 0xF]; + bytes++; + } + NSString *str = [[NSString alloc] initWithBytesNoCopy:chars + length:length * 2 + encoding:NSASCIIStringEncoding + freeWhenDone:YES]; + return str; +} + +@end + +#pragma mark Private tools for security + +@implementation NSString (SSZipArchive) + +// One implementation alternative would be to use the algorithm found at mz_path_resolve from https://github.com/nmoinvaz/minizip/blob/dev/mz_os.c, +// but making sure to work with unichar values and not ascii values to avoid breaking Unicode characters containing 2E ('.') or 2F ('/') in their decomposition +/// Sanitize path traversal characters to prevent directory backtracking. Ignoring these characters mimicks the default behavior of the Unarchiving tool on macOS. +- (NSString *)_sanitizedPath +{ + // Change Windows paths to Unix paths: https://en.wikipedia.org/wiki/Path_(computing) + // Possible improvement: only do this if the archive was created on a non-Unix system + NSString *strPath = [self stringByReplacingOccurrencesOfString:@"\\" withString:@"/"]; + + // Percent-encode file path (where path is defined by https://tools.ietf.org/html/rfc8089) + // The key part is to allow characters "." and "/" and disallow "%". + // CharacterSet.urlPathAllowed seems to do the job +#if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __WATCH_OS_VERSION_MIN_REQUIRED >= 20000 || __TV_OS_VERSION_MIN_REQUIRED >= 90000) + strPath = [strPath stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]; +#else + // Testing availability of @available (https://stackoverflow.com/a/46927445/1033581) +#if __clang_major__ < 9 + // Xcode 8- + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_8_4) { +#else + // Xcode 9+ + if (@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, *)) { +#endif + strPath = [strPath stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]; + } else { + strPath = [strPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + } +#endif + + // `NSString.stringByAddingPercentEncodingWithAllowedCharacters:` may theorically fail: https://stackoverflow.com/questions/33558933/ + // But because we auto-detect encoding using `NSString.stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:`, + // we likely already prevent UTF-16, UTF-32 and invalid Unicode in the form of unpaired surrogate chars: https://stackoverflow.com/questions/53043876/ + // To be on the safe side, we will still perform a guard check. + if (strPath == nil) { + return nil; + } + + // Add scheme "file:///" to support sanitation on names with a colon like "file:a/../../../usr/bin" + strPath = [@"file:///" stringByAppendingString:strPath]; + + // Sanitize path traversal characters to prevent directory backtracking. Ignoring these characters mimicks the default behavior of the Unarchiving tool on macOS. + // "../../../../../../../../../../../tmp/test.txt" -> "tmp/test.txt" + // "a/b/../c.txt" -> "a/c.txt" + strPath = [NSURL URLWithString:strPath].standardizedURL.absoluteString; + + // Remove the "file:///" scheme + strPath = [strPath substringFromIndex:8]; + + // Remove the percent-encoding +#if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __WATCH_OS_VERSION_MIN_REQUIRED >= 20000 || __TV_OS_VERSION_MIN_REQUIRED >= 90000) + strPath = strPath.stringByRemovingPercentEncoding; +#else + // Testing availability of @available (https://stackoverflow.com/a/46927445/1033581) +#if __clang_major__ < 9 + // Xcode 8- + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber10_8_4) { +#else + // Xcode 9+ + if (@available(macOS 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0, *)) { +#endif + strPath = strPath.stringByRemovingPercentEncoding; + } else { + strPath = [strPath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + } +#endif + + return strPath; +} + +@end diff --git a/Pods/SSZipArchive/SSZipArchive/SSZipCommon.h b/Pods/SSZipArchive/SSZipArchive/SSZipCommon.h new file mode 100644 index 0000000..78fa282 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/SSZipCommon.h @@ -0,0 +1,68 @@ +#ifndef SSZipCommon +#define SSZipCommon + +// typedefs moved from mz_compat.h to here for public access + +/* unz_global_info structure contain global data about the ZIPfile + These data comes from the end of central dir */ +typedef struct unz_global_info64_s +{ + uint64_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} unz_global_info64; + +typedef struct unz_global_info_s +{ + uint32_t number_entry; /* total number of entries in the central dir on this disk */ + uint32_t number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */ + uint16_t size_comment; /* size of the global comment of the zipfile */ +} unz_global_info; + +/* unz_file_info contain information about a file in the zipfile */ +/* https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT */ +typedef struct unz_file_info64_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint64_t compressed_size; /* compressed size 8 bytes */ + uint64_t uncompressed_size; /* uncompressed size 8 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint32_t disk_num_start; /* disk number start 4 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; + + uint16_t size_file_extra_internal; +} unz_file_info64; + +typedef struct unz_file_info_s +{ + uint16_t version; /* version made by 2 bytes */ + uint16_t version_needed; /* version needed to extract 2 bytes */ + uint16_t flag; /* general purpose bit flag 2 bytes */ + uint16_t compression_method; /* compression method 2 bytes */ + uint32_t dos_date; /* last mod file date in Dos fmt 4 bytes */ + uint32_t crc; /* crc-32 4 bytes */ + uint32_t compressed_size; /* compressed size 4 bytes */ + uint32_t uncompressed_size; /* uncompressed size 4 bytes */ + uint16_t size_filename; /* filename length 2 bytes */ + uint16_t size_file_extra; /* extra field length 2 bytes */ + uint16_t size_file_comment; /* file comment length 2 bytes */ + + uint16_t disk_num_start; /* disk number start 2 bytes */ + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ + + uint64_t disk_offset; +} unz_file_info; + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/include/ZipArchive.h b/Pods/SSZipArchive/SSZipArchive/include/ZipArchive.h new file mode 100644 index 0000000..e81fc9b --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/include/ZipArchive.h @@ -0,0 +1,25 @@ +// +// ZipArchive.h +// ZipArchive +// +// Created by Serhii Mumriak on 12/1/15. +// + +#import + +//! Project version number for ZipArchive. +FOUNDATION_EXPORT double ZipArchiveVersionNumber; + +//! Project version string for ZipArchive. +FOUNDATION_EXPORT const unsigned char ZipArchiveVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +// This is to account for the many different ways this library gets imported. +#if __has_include() +#import +#elif __has_include("../SSZipArchive.h") +#import "../SSZipArchive.h" +#else +#import "SSZipArchive.h" +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz.h new file mode 100644 index 0000000..82a14a2 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz.h @@ -0,0 +1,274 @@ +/* mz.h -- Errors codes, zip flags and magic + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_H +#define MZ_H + +/***************************************************************************/ + +/* MZ_VERSION */ +#define MZ_VERSION ("3.0.4") +#define MZ_VERSION_BUILD (030004) + +/* MZ_ERROR */ +#define MZ_OK (0) /* zlib */ +#define MZ_STREAM_ERROR (-1) /* zlib */ +#define MZ_DATA_ERROR (-3) /* zlib */ +#define MZ_MEM_ERROR (-4) /* zlib */ +#define MZ_BUF_ERROR (-5) /* zlib */ +#define MZ_VERSION_ERROR (-6) /* zlib */ + +#define MZ_END_OF_LIST (-100) +#define MZ_END_OF_STREAM (-101) + +#define MZ_PARAM_ERROR (-102) +#define MZ_FORMAT_ERROR (-103) +#define MZ_INTERNAL_ERROR (-104) +#define MZ_CRC_ERROR (-105) +#define MZ_CRYPT_ERROR (-106) +#define MZ_EXIST_ERROR (-107) +#define MZ_PASSWORD_ERROR (-108) +#define MZ_SUPPORT_ERROR (-109) +#define MZ_HASH_ERROR (-110) +#define MZ_OPEN_ERROR (-111) +#define MZ_CLOSE_ERROR (-112) +#define MZ_SEEK_ERROR (-113) +#define MZ_TELL_ERROR (-114) +#define MZ_READ_ERROR (-115) +#define MZ_WRITE_ERROR (-116) +#define MZ_SIGN_ERROR (-117) +#define MZ_SYMLINK_ERROR (-118) + +/* MZ_OPEN */ +#define MZ_OPEN_MODE_READ (0x01) +#define MZ_OPEN_MODE_WRITE (0x02) +#define MZ_OPEN_MODE_READWRITE (MZ_OPEN_MODE_READ | MZ_OPEN_MODE_WRITE) +#define MZ_OPEN_MODE_APPEND (0x04) +#define MZ_OPEN_MODE_CREATE (0x08) +#define MZ_OPEN_MODE_EXISTING (0x10) + +/* MZ_SEEK */ +#define MZ_SEEK_SET (0) +#define MZ_SEEK_CUR (1) +#define MZ_SEEK_END (2) + +/* MZ_COMPRESS */ +#define MZ_COMPRESS_METHOD_STORE (0) +#define MZ_COMPRESS_METHOD_DEFLATE (8) +#define MZ_COMPRESS_METHOD_BZIP2 (12) +#define MZ_COMPRESS_METHOD_LZMA (14) +#define MZ_COMPRESS_METHOD_ZSTD (93) +#define MZ_COMPRESS_METHOD_XZ (95) +#define MZ_COMPRESS_METHOD_AES (99) + +#define MZ_COMPRESS_LEVEL_DEFAULT (-1) +#define MZ_COMPRESS_LEVEL_FAST (2) +#define MZ_COMPRESS_LEVEL_NORMAL (6) +#define MZ_COMPRESS_LEVEL_BEST (9) + +/* MZ_ZIP_FLAG */ +#define MZ_ZIP_FLAG_ENCRYPTED (1 << 0) +#define MZ_ZIP_FLAG_LZMA_EOS_MARKER (1 << 1) +#define MZ_ZIP_FLAG_DEFLATE_MAX (1 << 1) +#define MZ_ZIP_FLAG_DEFLATE_NORMAL (0) +#define MZ_ZIP_FLAG_DEFLATE_FAST (1 << 2) +#define MZ_ZIP_FLAG_DEFLATE_SUPER_FAST (MZ_ZIP_FLAG_DEFLATE_FAST | \ + MZ_ZIP_FLAG_DEFLATE_MAX) +#define MZ_ZIP_FLAG_DATA_DESCRIPTOR (1 << 3) +#define MZ_ZIP_FLAG_UTF8 (1 << 11) +#define MZ_ZIP_FLAG_MASK_LOCAL_INFO (1 << 13) + +/* MZ_ZIP_EXTENSION */ +#define MZ_ZIP_EXTENSION_ZIP64 (0x0001) +#define MZ_ZIP_EXTENSION_NTFS (0x000a) +#define MZ_ZIP_EXTENSION_AES (0x9901) +#define MZ_ZIP_EXTENSION_UNIX1 (0x000d) +#define MZ_ZIP_EXTENSION_SIGN (0x10c5) +#define MZ_ZIP_EXTENSION_HASH (0x1a51) +#define MZ_ZIP_EXTENSION_CDCD (0xcdcd) + +/* MZ_ZIP64 */ +#define MZ_ZIP64_AUTO (0) +#define MZ_ZIP64_FORCE (1) +#define MZ_ZIP64_DISABLE (2) + +/* MZ_HOST_SYSTEM */ +#define MZ_HOST_SYSTEM(VERSION_MADEBY) ((uint8_t)(VERSION_MADEBY >> 8)) +#define MZ_HOST_SYSTEM_MSDOS (0) +#define MZ_HOST_SYSTEM_UNIX (3) +#define MZ_HOST_SYSTEM_WINDOWS_NTFS (10) +#define MZ_HOST_SYSTEM_RISCOS (13) +#define MZ_HOST_SYSTEM_OSX_DARWIN (19) + +/* MZ_PKCRYPT */ +#define MZ_PKCRYPT_HEADER_SIZE (12) + +/* MZ_AES */ +#define MZ_AES_VERSION (1) +#define MZ_AES_ENCRYPTION_MODE_128 (0x01) +#define MZ_AES_ENCRYPTION_MODE_192 (0x02) +#define MZ_AES_ENCRYPTION_MODE_256 (0x03) +#define MZ_AES_KEY_LENGTH(MODE) (8 * (MODE & 3) + 8) +#define MZ_AES_KEY_LENGTH_MAX (32) +#define MZ_AES_BLOCK_SIZE (16) +#define MZ_AES_HEADER_SIZE(MODE) ((4 * (MODE & 3) + 4) + 2) +#define MZ_AES_FOOTER_SIZE (10) + +/* MZ_HASH */ +#define MZ_HASH_MD5 (10) +#define MZ_HASH_MD5_SIZE (16) +#define MZ_HASH_SHA1 (20) +#define MZ_HASH_SHA1_SIZE (20) +#define MZ_HASH_SHA256 (23) +#define MZ_HASH_SHA256_SIZE (32) +#define MZ_HASH_MAX_SIZE (256) + +/* MZ_ENCODING */ +#define MZ_ENCODING_CODEPAGE_437 (437) +#define MZ_ENCODING_CODEPAGE_932 (932) +#define MZ_ENCODING_CODEPAGE_936 (936) +#define MZ_ENCODING_CODEPAGE_950 (950) +#define MZ_ENCODING_UTF8 (65001) + +/* MZ_UTILITY */ +#define MZ_UNUSED(SYMBOL) ((void)SYMBOL) + +#ifndef MZ_CUSTOM_ALLOC +#define MZ_ALLOC(SIZE) (malloc((SIZE))) +#endif +#ifndef MZ_CUSTOM_FREE +#define MZ_FREE(PTR) (free(PTR)) +#endif + +#if defined(_WIN32) && defined(MZ_EXPORTS) +#define MZ_EXPORT __declspec(dllexport) +#else +#define MZ_EXPORT +#endif + +/***************************************************************************/ + +#include /* size_t, NULL, malloc */ +#include /* time_t, time() */ +#include /* memset, strncpy, strlen */ +#include + +#if defined(HAVE_STDINT_H) +# include +#elif defined(__has_include) +# if __has_include() +# include +# endif +#endif + +#ifndef INT8_MAX +typedef signed char int8_t; +#endif +#ifndef INT16_MAX +typedef short int16_t; +#endif +#ifndef INT32_MAX +typedef int int32_t; +#endif +#ifndef INT64_MAX +typedef long long int64_t; +#endif +#ifndef UINT8_MAX +typedef unsigned char uint8_t; +#endif +#ifndef UINT16_MAX +typedef unsigned short uint16_t; +#endif +#ifndef UINT32_MAX +typedef unsigned int uint32_t; +#endif +#ifndef UINT64_MAX +typedef unsigned long long uint64_t; +#endif + +#if defined(HAVE_INTTYPES_H) +# include +#elif defined(__has_include) +# if __has_include() +# include +# endif +#endif + +#ifndef PRId8 +# define PRId8 "hhd" +#endif +#ifndef PRIu8 +# define PRIu8 "hhu" +#endif +#ifndef PRIx8 +# define PRIx8 "hhx" +#endif +#ifndef PRId16 +# define PRId16 "hd" +#endif +#ifndef PRIu16 +# define PRIu16 "hu" +#endif +#ifndef PRIx16 +# define PRIx16 "hx" +#endif +#ifndef PRId32 +# define PRId32 "d" +#endif +#ifndef PRIu32 +# define PRIu32 "u" +#endif +#ifndef PRIx32 +# define PRIx32 "x" +#endif +#if ULONG_MAX == 0xfffffffful +# ifndef PRId64 +# define PRId64 "ld" +# endif +# ifndef PRIu64 +# define PRIu64 "lu" +# endif +# ifndef PRIx64 +# define PRIx64 "lx" +# endif +#else +# ifndef PRId64 +# define PRId64 "lld" +# endif +# ifndef PRIu64 +# define PRIu64 "llu" +# endif +# ifndef PRIx64 +# define PRIx64 "llx" +# endif +#endif + +#ifndef INT16_MAX +# define INT16_MAX 32767 +#endif +#ifndef INT32_MAX +# define INT32_MAX 2147483647L +#endif +#ifndef INT64_MAX +# define INT64_MAX 9223372036854775807LL +#endif +#ifndef UINT16_MAX +# define UINT16_MAX 65535U +#endif +#ifndef UINT32_MAX +# define UINT32_MAX 4294967295UL +#endif +#ifndef UINT64_MAX +# define UINT64_MAX 18446744073709551615ULL +#endif + +/***************************************************************************/ + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.c new file mode 100644 index 0000000..759e30b --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.c @@ -0,0 +1,991 @@ +/* mz_compat.c -- Backwards compatible interface for older versions + Version 2.8.9, July 4, 2019 + part of the MiniZip project + + Copyright (C) 2010-2019 Nathan Moinvaziri + https://github.com/nmoinvaz/minizip + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_os.h" +#include "mz_strm.h" +#include "mz_strm_mem.h" +#include "mz_strm_os.h" +#include "mz_strm_zlib.h" +#include "mz_zip.h" + +#include /* SEEK */ + +#include "mz_compat.h" + +/***************************************************************************/ + +typedef struct mz_compat_s { + void *stream; + void *handle; + uint64_t entry_index; + int64_t entry_pos; + int64_t total_out; +} mz_compat; + +/***************************************************************************/ + +static int32_t zipConvertAppendToStreamMode(int append) +{ + int32_t mode = MZ_OPEN_MODE_WRITE; + switch (append) + { + case APPEND_STATUS_CREATE: + mode |= MZ_OPEN_MODE_CREATE; + break; + case APPEND_STATUS_CREATEAFTER: + mode |= MZ_OPEN_MODE_CREATE | MZ_OPEN_MODE_APPEND; + break; + case APPEND_STATUS_ADDINZIP: + mode |= MZ_OPEN_MODE_READ | MZ_OPEN_MODE_APPEND; + break; + } + return mode; +} + +zipFile zipOpen(const char *path, int append) +{ + zlib_filefunc64_def pzlib = mz_stream_os_get_interface(); + return zipOpen2(path, append, NULL, &pzlib); +} + +zipFile zipOpen64(const void *path, int append) +{ + zlib_filefunc64_def pzlib = mz_stream_os_get_interface(); + return zipOpen2(path, append, NULL, &pzlib); +} + +zipFile zipOpen2(const char *path, int append, const char **globalcomment, + zlib_filefunc_def *pzlib_filefunc_def) +{ + return zipOpen2_64(path, append, globalcomment, pzlib_filefunc_def); +} + +zipFile zipOpen2_64(const void *path, int append, const char **globalcomment, + zlib_filefunc64_def *pzlib_filefunc_def) +{ + zipFile zip = NULL; + int32_t mode = zipConvertAppendToStreamMode(append); + void *stream = NULL; + + if (pzlib_filefunc_def) + { + if (mz_stream_create(&stream, (mz_stream_vtbl *)*pzlib_filefunc_def) == NULL) + return NULL; + } + else + { + if (mz_stream_os_create(&stream) == NULL) + return NULL; + } + + if (mz_stream_open(stream, path, mode) != MZ_OK) + { + mz_stream_delete(&stream); + return NULL; + } + + zip = zipOpen_MZ(stream, append, globalcomment); + + if (zip == NULL) + { + mz_stream_delete(&stream); + return NULL; + } + + return zip; +} + +zipFile zipOpen_MZ(void *stream, int append, const char **globalcomment) +{ + mz_compat *compat = NULL; + int32_t err = MZ_OK; + int32_t mode = zipConvertAppendToStreamMode(append); + void *handle = NULL; + + mz_zip_create(&handle); + err = mz_zip_open(handle, stream, mode); + + if (err != MZ_OK) + { + mz_zip_delete(&handle); + return NULL; + } + + if (globalcomment != NULL) + mz_zip_get_comment(handle, globalcomment); + + compat = (mz_compat *)MZ_ALLOC(sizeof(mz_compat)); + if (compat != NULL) + { + compat->handle = handle; + compat->stream = stream; + } + else + { + mz_zip_delete(&handle); + } + + return (zipFile)compat; +} + +int zipOpenNewFileInZip5(zipFile file, const char *filename, const zip_fileinfo *zipfi, + const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global, + uint16_t size_extrafield_global, const char *comment, uint16_t compression_method, int level, + int raw, int windowBits, int memLevel, int strategy, const char *password, + signed char aes, uint16_t version_madeby, uint16_t flag_base, int zip64) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file file_info; + uint64_t dos_date = 0; + + MZ_UNUSED(strategy); + MZ_UNUSED(memLevel); + MZ_UNUSED(windowBits); + MZ_UNUSED(size_extrafield_local); + MZ_UNUSED(extrafield_local); + + if (compat == NULL) + return ZIP_PARAMERROR; + + memset(&file_info, 0, sizeof(file_info)); + + if (zipfi != NULL) + { + if (zipfi->mz_dos_date != 0) + dos_date = zipfi->mz_dos_date; + else + dos_date = mz_zip_tm_to_dosdate(&zipfi->tmz_date); + + file_info.modified_date = mz_zip_dosdate_to_time_t(dos_date); + file_info.external_fa = zipfi->external_fa; + file_info.internal_fa = zipfi->internal_fa; + } + + if (filename == NULL) + filename = "-"; + + file_info.compression_method = compression_method; + file_info.filename = filename; + /* file_info.extrafield_local = extrafield_local; */ + /* file_info.extrafield_local_size = size_extrafield_local; */ + file_info.extrafield = extrafield_global; + file_info.extrafield_size = size_extrafield_global; + file_info.version_madeby = version_madeby; + file_info.comment = comment; + file_info.flag = flag_base; + if (zip64) + file_info.zip64 = MZ_ZIP64_FORCE; + else + file_info.zip64 = MZ_ZIP64_DISABLE; +#ifdef HAVE_WZAES + if ((aes && password != NULL) || (raw && (file_info.flag & MZ_ZIP_FLAG_ENCRYPTED))) + file_info.aes_version = MZ_AES_VERSION; +#endif + + return mz_zip_entry_write_open(compat->handle, &file_info, (int16_t)level, (uint8_t)raw, password); +} + +int zipWriteInFileInZip(zipFile file, const void *buf, uint32_t len) +{ + mz_compat *compat = (mz_compat *)file; + int32_t written = 0; + if (compat == NULL || len >= INT32_MAX) + return ZIP_PARAMERROR; + written = mz_zip_entry_write(compat->handle, buf, (int32_t)len); + if ((written < 0) || ((uint32_t)written != len)) + return ZIP_ERRNO; + return ZIP_OK; +} + +int zipCloseFileInZipRaw(zipFile file, uint32_t uncompressed_size, uint32_t crc32) +{ + return zipCloseFileInZipRaw64(file, uncompressed_size, crc32); +} + +int zipCloseFileInZipRaw64(zipFile file, int64_t uncompressed_size, uint32_t crc32) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return ZIP_PARAMERROR; + return mz_zip_entry_close_raw(compat->handle, uncompressed_size, crc32); +} + +int zipCloseFileInZip(zipFile file) +{ + return zipCloseFileInZip64(file); +} + +int zipCloseFileInZip64(zipFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return ZIP_PARAMERROR; + return mz_zip_entry_close(compat->handle); +} + +int zipClose(zipFile file, const char *global_comment) +{ + return zipClose_64(file, global_comment); +} + +int zipClose_64(zipFile file, const char *global_comment) +{ + return zipClose2_64(file, global_comment, MZ_VERSION_MADEBY); +} + +int zipClose2_64(zipFile file, const char *global_comment, uint16_t version_madeby) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + + if (compat->handle != NULL) + err = zipClose2_MZ(file, global_comment, version_madeby); + + if (compat->stream != NULL) + { + mz_stream_close(compat->stream); + mz_stream_delete(&compat->stream); + } + + MZ_FREE(compat); + + return err; +} + +/* Only closes the zip handle, does not close the stream */ +int zipClose_MZ(zipFile file, const char *global_comment) +{ + return zipClose2_MZ(file, global_comment, MZ_VERSION_MADEBY); +} + +/* Only closes the zip handle, does not close the stream */ +int zipClose2_MZ(zipFile file, const char *global_comment, uint16_t version_madeby) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + + if (compat == NULL) + return ZIP_PARAMERROR; + if (compat->handle == NULL) + return err; + + if (global_comment != NULL) + mz_zip_set_comment(compat->handle, global_comment); + + mz_zip_set_version_madeby(compat->handle, version_madeby); + err = mz_zip_close(compat->handle); + mz_zip_delete(&compat->handle); + + return err; +} + +void* zipGetStream(zipFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return NULL; + return (void *)compat->stream; +} + +/***************************************************************************/ + +unzFile unzOpen(const char *path) +{ + return unzOpen64(path); +} + +unzFile unzOpen64(const void *path) +{ + zlib_filefunc64_def pzlib = mz_stream_os_get_interface(); + return unzOpen2(path, &pzlib); +} + +unzFile unzOpen2(const char *path, zlib_filefunc_def *pzlib_filefunc_def) +{ + return unzOpen2_64(path, pzlib_filefunc_def); +} + +unzFile unzOpen2_64(const void *path, zlib_filefunc64_def *pzlib_filefunc_def) +{ + unzFile unz = NULL; + void *stream = NULL; + + if (pzlib_filefunc_def) + { + if (mz_stream_create(&stream, (mz_stream_vtbl *)*pzlib_filefunc_def) == NULL) + return NULL; + } + else + { + if (mz_stream_os_create(&stream) == NULL) + return NULL; + } + + if (mz_stream_open(stream, path, MZ_OPEN_MODE_READ) != MZ_OK) + { + mz_stream_delete(&stream); + return NULL; + } + + unz = unzOpen_MZ(stream); + if (unz == NULL) + { + mz_stream_delete(&stream); + return NULL; + } + return unz; +} + +unzFile unzOpen_MZ(void *stream) +{ + mz_compat *compat = NULL; + int32_t err = MZ_OK; + void *handle = NULL; + + mz_zip_create(&handle); + err = mz_zip_open(handle, stream, MZ_OPEN_MODE_READ); + + if (err != MZ_OK) + { + mz_zip_delete(&handle); + return NULL; + } + + compat = (mz_compat *)MZ_ALLOC(sizeof(mz_compat)); + if (compat != NULL) + { + compat->handle = handle; + compat->stream = stream; + + mz_zip_goto_first_entry(compat->handle); + } + else + { + mz_zip_delete(&handle); + } + + return (unzFile)compat; +} + +int unzClose(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + + if (compat == NULL) + return UNZ_PARAMERROR; + + if (compat->handle != NULL) + err = unzClose_MZ(file); + + if (compat->stream != NULL) + { + mz_stream_close(compat->stream); + mz_stream_delete(&compat->stream); + } + + MZ_FREE(compat); + + return err; +} + +/* Only closes the zip handle, does not close the stream */ +int unzClose_MZ(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + + if (compat == NULL) + return UNZ_PARAMERROR; + + err = mz_zip_close(compat->handle); + mz_zip_delete(&compat->handle); + + return err; +} + +int unzGetGlobalInfo(unzFile file, unz_global_info* pglobal_info32) +{ + mz_compat *compat = (mz_compat *)file; + unz_global_info64 global_info64; + int32_t err = MZ_OK; + + memset(pglobal_info32, 0, sizeof(unz_global_info)); + if (compat == NULL) + return UNZ_PARAMERROR; + + err = unzGetGlobalInfo64(file, &global_info64); + if (err == MZ_OK) + { + pglobal_info32->number_entry = (uint32_t)global_info64.number_entry; + pglobal_info32->size_comment = global_info64.size_comment; + pglobal_info32->number_disk_with_CD = global_info64.number_disk_with_CD; + } + return err; +} + +int unzGetGlobalInfo64(unzFile file, unz_global_info64 *pglobal_info) +{ + mz_compat *compat = (mz_compat *)file; + const char *comment_ptr = NULL; + int32_t err = MZ_OK; + + memset(pglobal_info, 0, sizeof(unz_global_info64)); + if (compat == NULL) + return UNZ_PARAMERROR; + err = mz_zip_get_comment(compat->handle, &comment_ptr); + if (err == MZ_OK) + pglobal_info->size_comment = (uint16_t)strlen(comment_ptr); + if ((err == MZ_OK) || (err == MZ_EXIST_ERROR)) + err = mz_zip_get_number_entry(compat->handle, &pglobal_info->number_entry); + if (err == MZ_OK) + err = mz_zip_get_disk_number_with_cd(compat->handle, &pglobal_info->number_disk_with_CD); + return err; +} + +int unzGetGlobalComment(unzFile file, char *comment, uint16_t comment_size) +{ + mz_compat *compat = (mz_compat *)file; + const char *comment_ptr = NULL; + int32_t err = MZ_OK; + + if (comment == NULL || comment_size == 0) + return UNZ_PARAMERROR; + err = mz_zip_get_comment(compat->handle, &comment_ptr); + if (err == MZ_OK) + { + strncpy(comment, comment_ptr, comment_size - 1); + comment[comment_size - 1] = 0; + } + return err; +} + +int unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + int32_t err = MZ_OK; + void *stream = NULL; + + if (compat == NULL) + return UNZ_PARAMERROR; + if (method != NULL) + *method = 0; + if (level != NULL) + *level = 0; + + compat->total_out = 0; + err = mz_zip_entry_read_open(compat->handle, (uint8_t)raw, password); + if (err == MZ_OK) + err = mz_zip_entry_get_info(compat->handle, &file_info); + if (err == MZ_OK) + { + if (method != NULL) + { + *method = file_info->compression_method; + } + + if (level != NULL) + { + *level = 6; + switch (file_info->flag & 0x06) + { + case MZ_ZIP_FLAG_DEFLATE_SUPER_FAST: + *level = 1; + break; + case MZ_ZIP_FLAG_DEFLATE_FAST: + *level = 2; + break; + case MZ_ZIP_FLAG_DEFLATE_MAX: + *level = 9; + break; + } + } + } + if (err == MZ_OK) + err = mz_zip_get_stream(compat->handle, &stream); + if (err == MZ_OK) + compat->entry_pos = mz_stream_tell(stream); + return err; +} + +int unzOpenCurrentFile(unzFile file) +{ + return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL); +} + +int unzOpenCurrentFilePassword(unzFile file, const char *password) +{ + return unzOpenCurrentFile3(file, NULL, NULL, 0, password); +} + +int unzOpenCurrentFile2(unzFile file, int *method, int *level, int raw) +{ + return unzOpenCurrentFile3(file, method, level, raw, NULL); +} + +int unzReadCurrentFile(unzFile file, void *buf, uint32_t len) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + if (compat == NULL || len >= INT32_MAX) + return UNZ_PARAMERROR; + err = mz_zip_entry_read(compat->handle, buf, (int32_t)len); + if (err > 0) + compat->total_out += (uint32_t)err; + return err; +} + +int unzCloseCurrentFile(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + if (compat == NULL) + return UNZ_PARAMERROR; + err = mz_zip_entry_close(compat->handle); + return err; +} + +int unzGetCurrentFileInfo(unzFile file, unz_file_info *pfile_info, char *filename, + uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment, uint16_t comment_size) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + uint16_t bytes_to_copy = 0; + int32_t err = MZ_OK; + + if (compat == NULL) + return UNZ_PARAMERROR; + + err = mz_zip_entry_get_info(compat->handle, &file_info); + + if ((err == MZ_OK) && (pfile_info != NULL)) + { + pfile_info->version = file_info->version_madeby; + pfile_info->version_needed = file_info->version_needed; + pfile_info->flag = file_info->flag; + pfile_info->compression_method = file_info->compression_method; + pfile_info->mz_dos_date = mz_zip_time_t_to_dos_date(file_info->modified_date); + //mz_zip_time_t_to_tm(file_info->modified_date, &pfile_info->tmu_date); + //pfile_info->tmu_date.tm_year += 1900; + pfile_info->crc = file_info->crc; + + pfile_info->size_filename = file_info->filename_size; + pfile_info->size_file_extra = file_info->extrafield_size; + pfile_info->size_file_comment = file_info->comment_size; + + pfile_info->disk_num_start = (uint16_t)file_info->disk_number; + pfile_info->internal_fa = file_info->internal_fa; + pfile_info->external_fa = file_info->external_fa; + + pfile_info->compressed_size = (uint32_t)file_info->compressed_size; + pfile_info->uncompressed_size = (uint32_t)file_info->uncompressed_size; + + if (filename_size > 0 && filename != NULL && file_info->filename != NULL) + { + bytes_to_copy = filename_size; + if (bytes_to_copy > file_info->filename_size) + bytes_to_copy = file_info->filename_size; + memcpy(filename, file_info->filename, bytes_to_copy); + if (bytes_to_copy < filename_size) + filename[bytes_to_copy] = 0; + } + if (extrafield_size > 0 && extrafield != NULL) + { + bytes_to_copy = extrafield_size; + if (bytes_to_copy > file_info->extrafield_size) + bytes_to_copy = file_info->extrafield_size; + memcpy(extrafield, file_info->extrafield, bytes_to_copy); + } + if (comment_size > 0 && comment != NULL && file_info->comment != NULL) + { + bytes_to_copy = comment_size; + if (bytes_to_copy > file_info->comment_size) + bytes_to_copy = file_info->comment_size; + memcpy(comment, file_info->comment, bytes_to_copy); + if (bytes_to_copy < comment_size) + comment[bytes_to_copy] = 0; + } + } + return err; +} + +int unzGetCurrentFileInfo64(unzFile file, unz_file_info64 * pfile_info, char *filename, + uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment, uint16_t comment_size) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + uint16_t bytes_to_copy = 0; + int32_t err = MZ_OK; + + if (compat == NULL) + return UNZ_PARAMERROR; + + err = mz_zip_entry_get_info(compat->handle, &file_info); + + if ((err == MZ_OK) && (pfile_info != NULL)) + { + pfile_info->version = file_info->version_madeby; + pfile_info->version_needed = file_info->version_needed; + pfile_info->flag = file_info->flag; + pfile_info->compression_method = file_info->compression_method; + pfile_info->mz_dos_date = mz_zip_time_t_to_dos_date(file_info->modified_date); + //mz_zip_time_t_to_tm(file_info->modified_date, &pfile_info->tmu_date); + //pfile_info->tmu_date.tm_year += 1900; + pfile_info->crc = file_info->crc; + + pfile_info->size_filename = file_info->filename_size; + pfile_info->size_file_extra = file_info->extrafield_size; + pfile_info->size_file_comment = file_info->comment_size; + + pfile_info->disk_num_start = file_info->disk_number; + pfile_info->internal_fa = file_info->internal_fa; + pfile_info->external_fa = file_info->external_fa; + + pfile_info->compressed_size = (uint64_t)file_info->compressed_size; + pfile_info->uncompressed_size = (uint64_t)file_info->uncompressed_size; + + if (filename_size > 0 && filename != NULL && file_info->filename != NULL) + { + bytes_to_copy = filename_size; + if (bytes_to_copy > file_info->filename_size) + bytes_to_copy = file_info->filename_size; + memcpy(filename, file_info->filename, bytes_to_copy); + if (bytes_to_copy < filename_size) + filename[bytes_to_copy] = 0; + } + + if (extrafield_size > 0 && extrafield != NULL) + { + bytes_to_copy = extrafield_size; + if (bytes_to_copy > file_info->extrafield_size) + bytes_to_copy = file_info->extrafield_size; + memcpy(extrafield, file_info->extrafield, bytes_to_copy); + } + + if (comment_size > 0 && comment != NULL && file_info->comment != NULL) + { + bytes_to_copy = comment_size; + if (bytes_to_copy > file_info->comment_size) + bytes_to_copy = file_info->comment_size; + memcpy(comment, file_info->comment, bytes_to_copy); + if (bytes_to_copy < comment_size) + comment[bytes_to_copy] = 0; + } + } + return err; +} + +int unzGoToFirstFile(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + compat->entry_index = 0; + return mz_zip_goto_first_entry(compat->handle); +} + +int unzGoToNextFile(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + if (compat == NULL) + return UNZ_PARAMERROR; + err = mz_zip_goto_next_entry(compat->handle); + if (err != MZ_END_OF_LIST) + compat->entry_index += 1; + return err; +} + +int unzLocateFile(unzFile file, const char *filename, unzFileNameComparer filename_compare_func) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + uint64_t preserve_index = 0; + int32_t err = MZ_OK; + int32_t result = 0; + + if (compat == NULL) + return UNZ_PARAMERROR; + + preserve_index = compat->entry_index; + + err = mz_zip_goto_first_entry(compat->handle); + while (err == MZ_OK) + { + err = mz_zip_entry_get_info(compat->handle, &file_info); + if (err != MZ_OK) + break; + + if (filename_compare_func != NULL) + result = filename_compare_func(file, filename, file_info->filename); + else + result = strcmp(filename, file_info->filename); + + if (result == 0) + return MZ_OK; + + err = mz_zip_goto_next_entry(compat->handle); + } + + compat->entry_index = preserve_index; + return err; +} + +/***************************************************************************/ + +int unzGetFilePos(unzFile file, unz_file_pos *file_pos) +{ + mz_compat *compat = (mz_compat *)file; + int32_t offset = 0; + + if (compat == NULL || file_pos == NULL) + return UNZ_PARAMERROR; + + offset = unzGetOffset(file); + if (offset < 0) + return offset; + + file_pos->pos_in_zip_directory = (uint32_t)offset; + file_pos->num_of_file = (uint32_t)compat->entry_index; + return MZ_OK; +} + +int unzGoToFilePos(unzFile file, unz_file_pos *file_pos) +{ + mz_compat *compat = (mz_compat *)file; + unz64_file_pos file_pos64; + + if (compat == NULL || file_pos == NULL) + return UNZ_PARAMERROR; + + file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory; + file_pos64.num_of_file = file_pos->num_of_file; + + return unzGoToFilePos64(file, &file_pos64); +} + +int unzGetFilePos64(unzFile file, unz64_file_pos *file_pos) +{ + mz_compat *compat = (mz_compat *)file; + int64_t offset = 0; + + if (compat == NULL || file_pos == NULL) + return UNZ_PARAMERROR; + + offset = unzGetOffset64(file); + if (offset < 0) + return (int)offset; + + file_pos->pos_in_zip_directory = offset; + file_pos->num_of_file = compat->entry_index; + return UNZ_OK; +} + +int unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos) +{ + mz_compat *compat = (mz_compat *)file; + int32_t err = MZ_OK; + + if (compat == NULL || file_pos == NULL) + return UNZ_PARAMERROR; + + err = mz_zip_goto_entry(compat->handle, file_pos->pos_in_zip_directory); + if (err == MZ_OK) + compat->entry_index = file_pos->num_of_file; + return err; +} + +int32_t unzGetOffset(unzFile file) +{ + return (int32_t)unzGetOffset64(file); +} + +int64_t unzGetOffset64(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + return mz_zip_get_entry(compat->handle); +} + +int unzSetOffset(unzFile file, uint32_t pos) +{ + return unzSetOffset64(file, pos); +} + +int unzSetOffset64(unzFile file, int64_t pos) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + return (int)mz_zip_goto_entry(compat->handle, pos); +} + +int unzGetLocalExtrafield(unzFile file, void *buf, unsigned int len) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + int32_t err = MZ_OK; + int32_t bytes_to_copy = 0; + + if (compat == NULL || buf == NULL || len >= INT32_MAX) + return UNZ_PARAMERROR; + + err = mz_zip_entry_get_local_info(compat->handle, &file_info); + if (err != MZ_OK) + return err; + + bytes_to_copy = (int32_t)len; + if (bytes_to_copy > file_info->extrafield_size) + bytes_to_copy = file_info->extrafield_size; + + memcpy(buf, file_info->extrafield, bytes_to_copy); + return MZ_OK; +} + +int64_t unztell(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + return (int64_t)compat->total_out; +} + +int32_t unzTell(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + return (int32_t)compat->total_out; +} + +int64_t unzTell64(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return UNZ_PARAMERROR; + return (int64_t)compat->total_out; +} + +int unzSeek(unzFile file, int32_t offset, int origin) +{ + return unzSeek64(file, offset, origin); +} + +int unzSeek64(unzFile file, int64_t offset, int origin) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + int64_t position = 0; + int32_t err = MZ_OK; + void *stream = NULL; + + if (compat == NULL) + return UNZ_PARAMERROR; + err = mz_zip_entry_get_info(compat->handle, &file_info); + if (err != MZ_OK) + return err; + if (file_info->compression_method != MZ_COMPRESS_METHOD_STORE) + return UNZ_ERRNO; + + if (origin == SEEK_SET) + position = offset; + else if (origin == SEEK_CUR) + position = compat->total_out + offset; + else if (origin == SEEK_END) + position = (int64_t)file_info->compressed_size + offset; + else + return UNZ_PARAMERROR; + + if (position > (int64_t)file_info->compressed_size) + return UNZ_PARAMERROR; + + err = mz_zip_get_stream(compat->handle, &stream); + if (err == MZ_OK) + err = mz_stream_seek(stream, compat->entry_pos + position, MZ_SEEK_SET); + if (err == MZ_OK) + compat->total_out = position; + return err; +} + +int unzEndOfFile(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + mz_zip_file *file_info = NULL; + int32_t err = MZ_OK; + + if (compat == NULL) + return UNZ_PARAMERROR; + err = mz_zip_entry_get_info(compat->handle, &file_info); + if (err != MZ_OK) + return err; + if (compat->total_out == (int64_t)file_info->uncompressed_size) + return 1; + return 0; +} + +void* unzGetStream(unzFile file) +{ + mz_compat *compat = (mz_compat *)file; + if (compat == NULL) + return NULL; + return (void *)compat->stream; +} + +/***************************************************************************/ + +void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_win32_filefunc(zlib_filefunc_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_win32_filefunc64(zlib_filefunc64_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_win32_filefunc64A(zlib_filefunc64_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_win32_filefunc64W(zlib_filefunc64_def *pzlib_filefunc_def) +{ + /* NOTE: You should no longer pass in widechar string to open function */ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_os_get_interface(); +} + +void fill_memory_filefunc(zlib_filefunc_def *pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + *pzlib_filefunc_def = mz_stream_mem_get_interface(); +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.h new file mode 100644 index 0000000..3253eb9 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_compat.h @@ -0,0 +1,250 @@ +/* mz_compat.h -- Backwards compatible interface for older versions + Version 2.8.6, April 8, 2019 + part of the MiniZip project + + Copyright (C) 2010-2019 Nathan Moinvaziri + https://github.com/nmoinvaz/minizip + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_COMPAT_H +#define MZ_COMPAT_H + +#include "mz.h" +#include "../SSZipCommon.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +#if defined(HAVE_ZLIB) && defined(MAX_MEM_LEVEL) +#ifndef DEF_MEM_LEVEL +# if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +# else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +# endif +#endif +#endif +#ifndef MAX_WBITS +#define MAX_WBITS 15 +#endif +#ifndef DEF_MEM_LEVEL +#define DEF_MEM_LEVEL 8 +#endif + +#ifndef ZEXPORT +# define ZEXPORT MZ_EXPORT +#endif + +/***************************************************************************/ + +#if defined(STRICTZIP) || defined(STRICTZIPUNZIP) +/* like the STRICT of WIN32, we define a pointer that cannot be converted + from (void*) without cast */ +typedef struct TagzipFile__ { int unused; } zip_file__; +typedef zip_file__ *zipFile; +#else +typedef void *zipFile; +#endif + +/***************************************************************************/ + +typedef void *zlib_filefunc_def; +typedef void *zlib_filefunc64_def; +typedef const char *zipcharpc; + +typedef struct tm tm_unz; +typedef struct tm tm_zip; + +typedef uint64_t ZPOS64_T; + +/***************************************************************************/ + +// ZipArchive 2.x uses dos_date +#define MZ_COMPAT_VERSION 120 + +#if MZ_COMPAT_VERSION <= 110 +#define mz_dos_date dosDate +#else +#define mz_dos_date dos_date +#endif + +typedef struct +{ + uint32_t mz_dos_date; + struct tm tmz_date; + uint16_t internal_fa; /* internal file attributes 2 bytes */ + uint32_t external_fa; /* external file attributes 4 bytes */ +} zip_fileinfo; + +/***************************************************************************/ + +#define ZIP_OK (0) +#define ZIP_EOF (0) +#define ZIP_ERRNO (-1) +#define ZIP_PARAMERROR (-102) +#define ZIP_BADZIPFILE (-103) +#define ZIP_INTERNALERROR (-104) + +#define Z_BZIP2ED (12) + +#define APPEND_STATUS_CREATE (0) +#define APPEND_STATUS_CREATEAFTER (1) +#define APPEND_STATUS_ADDINZIP (2) + +/***************************************************************************/ +/* Writing a zip file */ + +ZEXPORT zipFile zipOpen(const char *path, int append); +ZEXPORT zipFile zipOpen64(const void *path, int append); +ZEXPORT zipFile zipOpen2(const char *path, int append, const char **globalcomment, + zlib_filefunc_def *pzlib_filefunc_def); +ZEXPORT zipFile zipOpen2_64(const void *path, int append, const char **globalcomment, + zlib_filefunc64_def *pzlib_filefunc_def); + zipFile zipOpen_MZ(void *stream, int append, const char **globalcomment); + +ZEXPORT int zipOpenNewFileInZip5(zipFile file, const char *filename, const zip_fileinfo *zipfi, + const void *extrafield_local, uint16_t size_extrafield_local, const void *extrafield_global, + uint16_t size_extrafield_global, const char *comment, uint16_t compression_method, int level, + int raw, int windowBits, int memLevel, int strategy, const char *password, + signed char aes, uint16_t version_madeby, uint16_t flag_base, int zip64); + +ZEXPORT int zipWriteInFileInZip(zipFile file, const void *buf, uint32_t len); + +ZEXPORT int zipCloseFileInZipRaw(zipFile file, uint32_t uncompressed_size, uint32_t crc32); +ZEXPORT int zipCloseFileInZipRaw64(zipFile file, int64_t uncompressed_size, uint32_t crc32); +ZEXPORT int zipCloseFileInZip(zipFile file); +ZEXPORT int zipCloseFileInZip64(zipFile file); + +ZEXPORT int zipClose(zipFile file, const char *global_comment); +ZEXPORT int zipClose_64(zipFile file, const char *global_comment); +ZEXPORT int zipClose2_64(zipFile file, const char *global_comment, uint16_t version_madeby); + int zipClose_MZ(zipFile file, const char *global_comment); + int zipClose2_MZ(zipFile file, const char *global_comment, uint16_t version_madeby); +ZEXPORT void* zipGetStream(zipFile file); + +/***************************************************************************/ + +#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) +/* like the STRICT of WIN32, we define a pointer that cannot be converted + from (void*) without cast */ +typedef struct TagunzFile__ { int unused; } unz_file__; +typedef unz_file__ *unzFile; +#else +typedef void *unzFile; +#endif + +/***************************************************************************/ + +#define UNZ_OK (0) +#define UNZ_END_OF_LIST_OF_FILE (-100) +#define UNZ_ERRNO (-1) +#define UNZ_EOF (0) +#define UNZ_PARAMERROR (-102) +#define UNZ_BADZIPFILE (-103) +#define UNZ_INTERNALERROR (-104) +#define UNZ_CRCERROR (-105) +#define UNZ_BADPASSWORD (-106) + +/***************************************************************************/ + +typedef int (*unzFileNameComparer)(unzFile file, const char *filename1, const char *filename2); +typedef int (*unzIteratorFunction)(unzFile file); +typedef int (*unzIteratorFunction2)(unzFile file, unz_file_info64 *pfile_info, char *filename, + uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment, + uint16_t comment_size); + +/***************************************************************************/ +/* Reading a zip file */ + +ZEXPORT unzFile unzOpen(const char *path); +ZEXPORT unzFile unzOpen64(const void *path); +ZEXPORT unzFile unzOpen2(const char *path, zlib_filefunc_def *pzlib_filefunc_def); +ZEXPORT unzFile unzOpen2_64(const void *path, zlib_filefunc64_def *pzlib_filefunc_def); + unzFile unzOpen_MZ(void *stream); + +ZEXPORT int unzClose(unzFile file); + int unzClose_MZ(unzFile file); + +ZEXPORT int unzGetGlobalInfo(unzFile file, unz_global_info* pglobal_info32); +ZEXPORT int unzGetGlobalInfo64(unzFile file, unz_global_info64 *pglobal_info); +ZEXPORT int unzGetGlobalComment(unzFile file, char *comment, uint16_t comment_size); + +ZEXPORT int unzOpenCurrentFile(unzFile file); +ZEXPORT int unzOpenCurrentFilePassword(unzFile file, const char *password); +ZEXPORT int unzOpenCurrentFile2(unzFile file, int *method, int *level, int raw); +ZEXPORT int unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password); +ZEXPORT int unzReadCurrentFile(unzFile file, void *buf, uint32_t len); +ZEXPORT int unzCloseCurrentFile(unzFile file); + + +ZEXPORT int unzGetCurrentFileInfo(unzFile file, unz_file_info *pfile_info, char *filename, + uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment, + uint16_t comment_size); +ZEXPORT int unzGetCurrentFileInfo64(unzFile file, unz_file_info64 * pfile_info, char *filename, + uint16_t filename_size, void *extrafield, uint16_t extrafield_size, char *comment, + uint16_t comment_size); + +ZEXPORT int unzGoToFirstFile(unzFile file); +ZEXPORT int unzGoToNextFile(unzFile file); +ZEXPORT int unzLocateFile(unzFile file, const char *filename, unzFileNameComparer filename_compare_func); + +ZEXPORT int unzGetLocalExtrafield(unzFile file, void *buf, unsigned int len); + +/***************************************************************************/ +/* Raw access to zip file */ + +typedef struct unz_file_pos_s +{ + uint32_t pos_in_zip_directory; /* offset in zip file directory */ + uint32_t num_of_file; /* # of file */ +} unz_file_pos; + +ZEXPORT int unzGetFilePos(unzFile file, unz_file_pos *file_pos); +ZEXPORT int unzGoToFilePos(unzFile file, unz_file_pos *file_pos); + +typedef struct unz64_file_pos_s +{ + int64_t pos_in_zip_directory; /* offset in zip file directory */ + uint64_t num_of_file; /* # of file */ +} unz64_file_pos; + +ZEXPORT int unzGetFilePos64(unzFile file, unz64_file_pos *file_pos); +ZEXPORT int unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos); + +ZEXPORT int64_t unzGetOffset64(unzFile file); +ZEXPORT int32_t unzGetOffset(unzFile file); +ZEXPORT int unzSetOffset64(unzFile file, int64_t pos); +ZEXPORT int unzSetOffset(unzFile file, uint32_t pos); +ZEXPORT int64_t unztell(unzFile file); +ZEXPORT int32_t unzTell(unzFile file); +ZEXPORT int64_t unzTell64(unzFile file); +ZEXPORT int unzSeek(unzFile file, int32_t offset, int origin); +ZEXPORT int unzSeek64(unzFile file, int64_t offset, int origin); +ZEXPORT int unzEndOfFile(unzFile file); +ZEXPORT void* unzGetStream(unzFile file); + +/***************************************************************************/ + +ZEXPORT void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def); +ZEXPORT void fill_fopen64_filefunc(zlib_filefunc64_def *pzlib_filefunc_def); +ZEXPORT void fill_win32_filefunc(zlib_filefunc_def *pzlib_filefunc_def); +ZEXPORT void fill_win32_filefunc64(zlib_filefunc64_def *pzlib_filefunc_def); +ZEXPORT void fill_win32_filefunc64A(zlib_filefunc64_def *pzlib_filefunc_def); +ZEXPORT void fill_win32_filefunc64W(zlib_filefunc64_def *pzlib_filefunc_def); +ZEXPORT void fill_memory_filefunc(zlib_filefunc_def *pzlib_filefunc_def); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.c new file mode 100644 index 0000000..dd2cd42 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.c @@ -0,0 +1,196 @@ +/* mz_crypt.c -- Crypto/hash functions + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_os.h" +#include "mz_crypt.h" + +#if defined(HAVE_ZLIB) +# include "zlib.h" +# if defined(ZLIBNG_VERNUM) && !defined(ZLIB_COMPAT) +# include "zlib-ng.h" +# endif +#elif defined(HAVE_LZMA) +# include "lzma.h" +#endif + +/***************************************************************************/ +/* Define z_crc_t in zlib 1.2.5 and less or if using zlib-ng */ + +#if defined(HAVE_ZLIB) && defined(ZLIBNG_VERNUM) +# if defined(ZLIB_COMPAT) +# define ZLIB_PREFIX(x) x +# else +# define ZLIB_PREFIX(x) zng_ ## x +# endif + typedef uint32_t z_crc_t; +#elif defined(HAVE_ZLIB) +# define ZLIB_PREFIX(x) x +# if (ZLIB_VERNUM < 0x1270) + typedef unsigned long z_crc_t; +# endif +#endif + +/***************************************************************************/ + +#if defined(MZ_ZIP_NO_CRYPTO) +int32_t mz_crypt_rand(uint8_t *buf, int32_t size) { + return mz_os_rand(buf, size); +} +#endif + +uint32_t mz_crypt_crc32_update(uint32_t value, const uint8_t *buf, int32_t size) { +#if defined(HAVE_ZLIB) + return (uint32_t)ZLIB_PREFIX(crc32)((z_crc_t)value, buf, (uInt)size); +#elif defined(HAVE_LZMA) + return (uint32_t)lzma_crc32(buf, (size_t)size, (uint32_t)value); +#else + static uint32_t crc32_table[256] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d + }; + value = ~value; + + while (size > 0) { + value = (value >> 8) ^ crc32_table[(value ^ *buf) & 0xFF]; + + buf += 1; + size -= 1; + } + + return ~value; +#endif +} + +#if defined(HAVE_WZAES) +int32_t mz_crypt_pbkdf2(uint8_t *password, int32_t password_length, uint8_t *salt, + int32_t salt_length, int32_t iteration_count, uint8_t *key, int32_t key_length) { + void *hmac1 = NULL; + void *hmac2 = NULL; + void *hmac3 = NULL; + int32_t err = MZ_OK; + uint16_t i = 0; + uint16_t j = 0; + uint16_t k = 0; + uint16_t block_count = 0; + uint8_t uu[MZ_HASH_SHA1_SIZE]; + uint8_t ux[MZ_HASH_SHA1_SIZE]; + + if (password == NULL || salt == NULL || key == NULL) + return MZ_PARAM_ERROR; + + memset(key, 0, key_length); + + mz_crypt_hmac_create(&hmac1); + mz_crypt_hmac_create(&hmac2); + mz_crypt_hmac_create(&hmac3); + + mz_crypt_hmac_set_algorithm(hmac1, MZ_HASH_SHA1); + mz_crypt_hmac_set_algorithm(hmac2, MZ_HASH_SHA1); + mz_crypt_hmac_set_algorithm(hmac3, MZ_HASH_SHA1); + + err = mz_crypt_hmac_init(hmac1, password, password_length); + if (err == MZ_OK) + err = mz_crypt_hmac_init(hmac2, password, password_length); + if (err == MZ_OK) + err = mz_crypt_hmac_update(hmac2, salt, salt_length); + + block_count = 1 + ((uint16_t)key_length - 1) / MZ_HASH_SHA1_SIZE; + + for (i = 0; (err == MZ_OK) && (i < block_count); i += 1) { + memset(ux, 0, sizeof(ux)); + + err = mz_crypt_hmac_copy(hmac2, hmac3); + if (err != MZ_OK) + break; + + uu[0] = (uint8_t)((i + 1) >> 24); + uu[1] = (uint8_t)((i + 1) >> 16); + uu[2] = (uint8_t)((i + 1) >> 8); + uu[3] = (uint8_t)(i + 1); + + for (j = 0, k = 4; j < iteration_count; j += 1) { + err = mz_crypt_hmac_update(hmac3, uu, k); + if (err == MZ_OK) + err = mz_crypt_hmac_end(hmac3, uu, sizeof(uu)); + if (err != MZ_OK) + break; + + for(k = 0; k < MZ_HASH_SHA1_SIZE; k += 1) + ux[k] ^= uu[k]; + + err = mz_crypt_hmac_copy(hmac1, hmac3); + if (err != MZ_OK) + break; + } + + if (err != MZ_OK) + break; + + j = 0; + k = i * MZ_HASH_SHA1_SIZE; + + while (j < MZ_HASH_SHA1_SIZE && k < key_length) + key[k++] = ux[j++]; + } + + /* hmac3 uses the same provider as hmac2, so it must be deleted + before the context is destroyed. */ + mz_crypt_hmac_delete(&hmac3); + mz_crypt_hmac_delete(&hmac1); + mz_crypt_hmac_delete(&hmac2); + + return err; +} +#endif + +/***************************************************************************/ diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.h new file mode 100644 index 0000000..59a193c --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt.h @@ -0,0 +1,65 @@ +/* mz_crypt.h -- Crypto/hash functions + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_CRYPT_H +#define MZ_CRYPT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +uint32_t mz_crypt_crc32_update(uint32_t value, const uint8_t *buf, int32_t size); + +int32_t mz_crypt_pbkdf2(uint8_t *password, int32_t password_length, uint8_t *salt, + int32_t salt_length, int32_t iteration_count, uint8_t *key, int32_t key_length); + +/***************************************************************************/ + +int32_t mz_crypt_rand(uint8_t *buf, int32_t size); + +void mz_crypt_sha_reset(void *handle); +int32_t mz_crypt_sha_begin(void *handle); +int32_t mz_crypt_sha_update(void *handle, const void *buf, int32_t size); +int32_t mz_crypt_sha_end(void *handle, uint8_t *digest, int32_t digest_size); +void mz_crypt_sha_set_algorithm(void *handle, uint16_t algorithm); +void* mz_crypt_sha_create(void **handle); +void mz_crypt_sha_delete(void **handle); + +void mz_crypt_aes_reset(void *handle); +int32_t mz_crypt_aes_encrypt(void *handle, uint8_t *buf, int32_t size); +int32_t mz_crypt_aes_decrypt(void *handle, uint8_t *buf, int32_t size); +int32_t mz_crypt_aes_set_encrypt_key(void *handle, const void *key, int32_t key_length); +int32_t mz_crypt_aes_set_decrypt_key(void *handle, const void *key, int32_t key_length); +void mz_crypt_aes_set_mode(void *handle, int32_t mode); +void* mz_crypt_aes_create(void **handle); +void mz_crypt_aes_delete(void **handle); + +void mz_crypt_hmac_reset(void *handle); +int32_t mz_crypt_hmac_init(void *handle, const void *key, int32_t key_length); +int32_t mz_crypt_hmac_update(void *handle, const void *buf, int32_t size); +int32_t mz_crypt_hmac_end(void *handle, uint8_t *digest, int32_t digest_size); +int32_t mz_crypt_hmac_copy(void *src_handle, void *target_handle); +void mz_crypt_hmac_set_algorithm(void *handle, uint16_t algorithm); +void* mz_crypt_hmac_create(void **handle); +void mz_crypt_hmac_delete(void **handle); + +int32_t mz_crypt_sign(uint8_t *message, int32_t message_size, uint8_t *cert_data, int32_t cert_data_size, + const char *cert_pwd, uint8_t **signature, int32_t *signature_size); +int32_t mz_crypt_sign_verify(uint8_t *message, int32_t message_size, uint8_t *signature, int32_t signature_size); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt_apple.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt_apple.c new file mode 100644 index 0000000..4519753 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_crypt_apple.c @@ -0,0 +1,487 @@ +/* mz_crypt_apple.c -- Crypto/hash functions for Apple + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" + +#include +#include +#include +#include +#include +#include + +/***************************************************************************/ + +int32_t mz_crypt_rand(uint8_t *buf, int32_t size) { + if (SecRandomCopyBytes(kSecRandomDefault, size, buf) != errSecSuccess) + return 0; + return size; +} + +/***************************************************************************/ + +typedef struct mz_crypt_sha_s { + CC_SHA1_CTX ctx1; + CC_SHA256_CTX ctx256; + int32_t error; + int32_t initialized; + uint16_t algorithm; +} mz_crypt_sha; + +/***************************************************************************/ + +void mz_crypt_sha_reset(void *handle) { + mz_crypt_sha *sha = (mz_crypt_sha *)handle; + + sha->error = 0; + sha->initialized = 0; +} + +int32_t mz_crypt_sha_begin(void *handle) { + mz_crypt_sha *sha = (mz_crypt_sha *)handle; + + if (sha == NULL) + return MZ_PARAM_ERROR; + + mz_crypt_sha_reset(handle); + + if (sha->algorithm == MZ_HASH_SHA1) + sha->error = CC_SHA1_Init(&sha->ctx1); + else if (sha->algorithm == MZ_HASH_SHA256) + sha->error = CC_SHA256_Init(&sha->ctx256); + else + return MZ_PARAM_ERROR; + + if (!sha->error) + return MZ_HASH_ERROR; + + sha->initialized = 1; + return MZ_OK; +} + +int32_t mz_crypt_sha_update(void *handle, const void *buf, int32_t size) { + mz_crypt_sha *sha = (mz_crypt_sha *)handle; + + if (sha == NULL || buf == NULL || !sha->initialized) + return MZ_PARAM_ERROR; + + if (sha->algorithm == MZ_HASH_SHA1) + sha->error = CC_SHA1_Update(&sha->ctx1, buf, size); + else + sha->error = CC_SHA256_Update(&sha->ctx256, buf, size); + + if (!sha->error) + return MZ_HASH_ERROR; + + return size; +} + +int32_t mz_crypt_sha_end(void *handle, uint8_t *digest, int32_t digest_size) { + mz_crypt_sha *sha = (mz_crypt_sha *)handle; + + if (sha == NULL || digest == NULL || !sha->initialized) + return MZ_PARAM_ERROR; + + if (sha->algorithm == MZ_HASH_SHA1) { + if (digest_size < MZ_HASH_SHA1_SIZE) + return MZ_BUF_ERROR; + sha->error = CC_SHA1_Final(digest, &sha->ctx1); + } else { + if (digest_size < MZ_HASH_SHA256_SIZE) + return MZ_BUF_ERROR; + sha->error = CC_SHA256_Final(digest, &sha->ctx256); + } + + if (!sha->error) + return MZ_HASH_ERROR; + + return MZ_OK; +} + +void mz_crypt_sha_set_algorithm(void *handle, uint16_t algorithm) { + mz_crypt_sha *sha = (mz_crypt_sha *)handle; + sha->algorithm = algorithm; +} + +void *mz_crypt_sha_create(void **handle) { + mz_crypt_sha *sha = NULL; + + sha = (mz_crypt_sha *)MZ_ALLOC(sizeof(mz_crypt_sha)); + if (sha != NULL) { + memset(sha, 0, sizeof(mz_crypt_sha)); + sha->algorithm = MZ_HASH_SHA256; + } + if (handle != NULL) + *handle = sha; + + return sha; +} + +void mz_crypt_sha_delete(void **handle) { + mz_crypt_sha *sha = NULL; + if (handle == NULL) + return; + sha = (mz_crypt_sha *)*handle; + if (sha != NULL) { + mz_crypt_sha_reset(*handle); + MZ_FREE(sha); + } + *handle = NULL; +} + +/***************************************************************************/ + +typedef struct mz_crypt_aes_s { + CCCryptorRef crypt; + int32_t mode; + int32_t error; +} mz_crypt_aes; + +/***************************************************************************/ + +void mz_crypt_aes_reset(void *handle) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + + if (aes->crypt != NULL) + CCCryptorRelease(aes->crypt); + aes->crypt = NULL; +} + +int32_t mz_crypt_aes_encrypt(void *handle, uint8_t *buf, int32_t size) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + size_t data_moved = 0; + + if (aes == NULL || buf == NULL) + return MZ_PARAM_ERROR; + if (size != MZ_AES_BLOCK_SIZE) + return MZ_PARAM_ERROR; + + aes->error = CCCryptorUpdate(aes->crypt, buf, size, buf, size, &data_moved); + + if (aes->error != kCCSuccess) + return MZ_HASH_ERROR; + + return size; +} + +int32_t mz_crypt_aes_decrypt(void *handle, uint8_t *buf, int32_t size) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + size_t data_moved = 0; + + if (aes == NULL || buf == NULL) + return MZ_PARAM_ERROR; + if (size != MZ_AES_BLOCK_SIZE) + return MZ_PARAM_ERROR; + + aes->error = CCCryptorUpdate(aes->crypt, buf, size, buf, size, &data_moved); + + if (aes->error != kCCSuccess) + return MZ_HASH_ERROR; + + return size; +} + +int32_t mz_crypt_aes_set_encrypt_key(void *handle, const void *key, int32_t key_length) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + + + if (aes == NULL || key == NULL || key_length == 0) + return MZ_PARAM_ERROR; + + mz_crypt_aes_reset(handle); + + aes->error = CCCryptorCreate(kCCEncrypt, kCCAlgorithmAES, kCCOptionECBMode, + key, key_length, NULL, &aes->crypt); + + if (aes->error != kCCSuccess) + return MZ_HASH_ERROR; + + return MZ_OK; +} + +int32_t mz_crypt_aes_set_decrypt_key(void *handle, const void *key, int32_t key_length) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + + + if (aes == NULL || key == NULL || key_length == 0) + return MZ_PARAM_ERROR; + + mz_crypt_aes_reset(handle); + + aes->error = CCCryptorCreate(kCCDecrypt, kCCAlgorithmAES, kCCOptionECBMode, + key, key_length, NULL, &aes->crypt); + + if (aes->error != kCCSuccess) + return MZ_HASH_ERROR; + + return MZ_OK; +} + +void mz_crypt_aes_set_mode(void *handle, int32_t mode) { + mz_crypt_aes *aes = (mz_crypt_aes *)handle; + aes->mode = mode; +} + +void *mz_crypt_aes_create(void **handle) { + mz_crypt_aes *aes = NULL; + + aes = (mz_crypt_aes *)MZ_ALLOC(sizeof(mz_crypt_aes)); + if (aes != NULL) + memset(aes, 0, sizeof(mz_crypt_aes)); + if (handle != NULL) + *handle = aes; + + return aes; +} + +void mz_crypt_aes_delete(void **handle) { + mz_crypt_aes *aes = NULL; + if (handle == NULL) + return; + aes = (mz_crypt_aes *)*handle; + if (aes != NULL) { + mz_crypt_aes_reset(*handle); + MZ_FREE(aes); + } + *handle = NULL; +} + +/***************************************************************************/ + +typedef struct mz_crypt_hmac_s { + CCHmacContext ctx; + int32_t initialized; + int32_t error; + uint16_t algorithm; +} mz_crypt_hmac; + +/***************************************************************************/ + +static void mz_crypt_hmac_free(void *handle) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + memset(&hmac->ctx, 0, sizeof(hmac->ctx)); +} + +void mz_crypt_hmac_reset(void *handle) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + mz_crypt_hmac_free(handle); + hmac->error = 0; +} + +int32_t mz_crypt_hmac_init(void *handle, const void *key, int32_t key_length) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + CCHmacAlgorithm algorithm = 0; + + if (hmac == NULL || key == NULL) + return MZ_PARAM_ERROR; + + mz_crypt_hmac_reset(handle); + + if (hmac->algorithm == MZ_HASH_SHA1) + algorithm = kCCHmacAlgSHA1; + else if (hmac->algorithm == MZ_HASH_SHA256) + algorithm = kCCHmacAlgSHA256; + else + return MZ_PARAM_ERROR; + + CCHmacInit(&hmac->ctx, algorithm, key, key_length); + return MZ_OK; +} + +int32_t mz_crypt_hmac_update(void *handle, const void *buf, int32_t size) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + + if (hmac == NULL || buf == NULL) + return MZ_PARAM_ERROR; + + CCHmacUpdate(&hmac->ctx, buf, size); + return MZ_OK; +} + +int32_t mz_crypt_hmac_end(void *handle, uint8_t *digest, int32_t digest_size) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + + if (hmac == NULL || digest == NULL) + return MZ_PARAM_ERROR; + + if (hmac->algorithm == MZ_HASH_SHA1) { + if (digest_size < MZ_HASH_SHA1_SIZE) + return MZ_BUF_ERROR; + CCHmacFinal(&hmac->ctx, digest); + } else { + if (digest_size < MZ_HASH_SHA256_SIZE) + return MZ_BUF_ERROR; + CCHmacFinal(&hmac->ctx, digest); + } + + return MZ_OK; +} + +void mz_crypt_hmac_set_algorithm(void *handle, uint16_t algorithm) { + mz_crypt_hmac *hmac = (mz_crypt_hmac *)handle; + hmac->algorithm = algorithm; +} + +int32_t mz_crypt_hmac_copy(void *src_handle, void *target_handle) { + mz_crypt_hmac *source = (mz_crypt_hmac *)src_handle; + mz_crypt_hmac *target = (mz_crypt_hmac *)target_handle; + + if (source == NULL || target == NULL) + return MZ_PARAM_ERROR; + + memcpy(&target->ctx, &source->ctx, sizeof(CCHmacContext)); + return MZ_OK; +} + +void *mz_crypt_hmac_create(void **handle) { + mz_crypt_hmac *hmac = NULL; + + hmac = (mz_crypt_hmac *)MZ_ALLOC(sizeof(mz_crypt_hmac)); + if (hmac != NULL) { + memset(hmac, 0, sizeof(mz_crypt_hmac)); + hmac->algorithm = MZ_HASH_SHA256; + } + if (handle != NULL) + *handle = hmac; + + return hmac; +} + +void mz_crypt_hmac_delete(void **handle) { + mz_crypt_hmac *hmac = NULL; + if (handle == NULL) + return; + hmac = (mz_crypt_hmac *)*handle; + if (hmac != NULL) { + mz_crypt_hmac_free(*handle); + MZ_FREE(hmac); + } + *handle = NULL; +} + +/***************************************************************************/ + +#if defined(MZ_ZIP_SIGNING) +int32_t mz_crypt_sign(uint8_t *message, int32_t message_size, uint8_t *cert_data, int32_t cert_data_size, + const char *cert_pwd, uint8_t **signature, int32_t *signature_size) { + CFStringRef password_ref = NULL; + CFDictionaryRef options_dict = NULL; + CFDictionaryRef identity_trust = NULL; + CFDataRef signature_out = NULL; + CFDataRef pkcs12_data = NULL; + CFArrayRef items = 0; + SecIdentityRef identity = NULL; + SecTrustRef trust = NULL; + OSStatus status = noErr; + const void *options_key[2] = { kSecImportExportPassphrase, kSecReturnRef }; + const void *options_values[2] = { 0, kCFBooleanTrue }; + int32_t err = MZ_SIGN_ERROR; + + + if (message == NULL || cert_data == NULL || signature == NULL || signature_size == NULL) + return MZ_PARAM_ERROR; + + *signature = NULL; + *signature_size = 0; + + password_ref = CFStringCreateWithCString(0, cert_pwd, kCFStringEncodingUTF8); + options_values[0] = password_ref; + + options_dict = CFDictionaryCreate(0, options_key, options_values, 2, 0, 0); + if (options_dict) + pkcs12_data = CFDataCreate(0, cert_data, cert_data_size); + if (pkcs12_data) + status = SecPKCS12Import(pkcs12_data, options_dict, &items); + if (status == noErr) + identity_trust = CFArrayGetValueAtIndex(items, 0); + if (identity_trust) + identity = (SecIdentityRef)CFDictionaryGetValue(identity_trust, kSecImportItemIdentity); + if (identity) + trust = (SecTrustRef)CFDictionaryGetValue(identity_trust, kSecImportItemTrust); + if (trust) { + status = CMSEncodeContent(identity, NULL, NULL, FALSE, 0, message, message_size, &signature_out); + + if (status == errSecSuccess) { + *signature_size = CFDataGetLength(signature_out); + *signature = (uint8_t *)MZ_ALLOC(*signature_size); + + memcpy(*signature, CFDataGetBytePtr(signature_out), *signature_size); + + err = MZ_OK; + } + } + + if (signature_out) + CFRelease(signature_out); + if (items) + CFRelease(items); + if (pkcs12_data) + CFRelease(pkcs12_data); + if (options_dict) + CFRelease(options_dict); + if (password_ref) + CFRelease(password_ref); + + return err; +} + +int32_t mz_crypt_sign_verify(uint8_t *message, int32_t message_size, uint8_t *signature, int32_t signature_size) { + CMSDecoderRef decoder = NULL; + CMSSignerStatus signer_status = 0; + CFDataRef message_out = NULL; + SecPolicyRef trust_policy = NULL; + OSStatus status = noErr; + OSStatus verify_status = noErr; + size_t signer_count = 0; + size_t i = 0; + int32_t err = MZ_SIGN_ERROR; + + if (message == NULL || signature == NULL) + return MZ_PARAM_ERROR; + + status = CMSDecoderCreate(&decoder); + if (status == errSecSuccess) + status = CMSDecoderUpdateMessage(decoder, signature, signature_size); + if (status == errSecSuccess) + status = CMSDecoderFinalizeMessage(decoder); + if (status == errSecSuccess) + trust_policy = SecPolicyCreateBasicX509(); + + if (status == errSecSuccess && trust_policy) { + CMSDecoderGetNumSigners(decoder, &signer_count); + if (signer_count > 0) + err = MZ_OK; + for (i = 0; i < signer_count; i += 1) { + status = CMSDecoderCopySignerStatus(decoder, i, trust_policy, TRUE, &signer_status, NULL, &verify_status); + if (status != errSecSuccess || verify_status != 0 || signer_status != kCMSSignerValid) { + err = MZ_SIGN_ERROR; + break; + } + } + } + + if (err == MZ_OK) { + status = CMSDecoderCopyContent(decoder, &message_out); + if ((status != errSecSuccess) || + (CFDataGetLength(message_out) != message_size) || + (memcmp(message, CFDataGetBytePtr(message_out), message_size) != 0)) + err = MZ_SIGN_ERROR; + } + + if (trust_policy) + CFRelease(trust_policy); + if (decoder) + CFRelease(decoder); + + return err; +} + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.c new file mode 100644 index 0000000..f96befe --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.c @@ -0,0 +1,354 @@ +/* mz_os.c -- System functions + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#include "mz.h" +#include "mz_crypt.h" +#include "mz_os.h" +#include "mz_strm.h" +#include "mz_strm_os.h" + +#include /* tolower */ + +/***************************************************************************/ + +int32_t mz_path_combine(char *path, const char *join, int32_t max_path) { + int32_t path_len = 0; + + if (path == NULL || join == NULL || max_path == 0) + return MZ_PARAM_ERROR; + + path_len = (int32_t)strlen(path); + + if (path_len == 0) { + strncpy(path, join, max_path - 1); + path[max_path - 1] = 0; + } else { + mz_path_append_slash(path, max_path, MZ_PATH_SLASH_PLATFORM); + strncat(path, join, max_path - path_len); + } + + return MZ_OK; +} + +int32_t mz_path_append_slash(char *path, int32_t max_path, char slash) { + int32_t path_len = (int32_t)strlen(path); + if ((path_len + 2) >= max_path) + return MZ_BUF_ERROR; + if (path[path_len - 1] != '\\' && path[path_len - 1] != '/') { + path[path_len] = slash; + path[path_len + 1] = 0; + } + return MZ_OK; +} + +int32_t mz_path_remove_slash(char *path) { + int32_t path_len = (int32_t)strlen(path); + while (path_len > 0) { + if (path[path_len - 1] == '\\' || path[path_len - 1] == '/') + path[path_len - 1] = 0; + else + break; + + path_len -= 1; + } + return MZ_OK; +} + +int32_t mz_path_has_slash(const char *path) { + int32_t path_len = (int32_t)strlen(path); + if (path[path_len - 1] != '\\' && path[path_len - 1] != '/') + return MZ_EXIST_ERROR; + return MZ_OK; +} + +int32_t mz_path_convert_slashes(char *path, char slash) { + int32_t i = 0; + + for (i = 0; i < (int32_t)strlen(path); i += 1) { + if (path[i] == '\\' || path[i] == '/') + path[i] = slash; + } + return MZ_OK; +} + +int32_t mz_path_compare_wc(const char *path, const char *wildcard, uint8_t ignore_case) { + while (*path != 0) { + switch (*wildcard) { + case '*': + + if (*(wildcard + 1) == 0) + return MZ_OK; + + while (*path != 0) { + if (mz_path_compare_wc(path, (wildcard + 1), ignore_case) == MZ_OK) + return MZ_OK; + + path += 1; + } + + return MZ_EXIST_ERROR; + + default: + /* Ignore differences in path slashes on platforms */ + if ((*path == '\\' && *wildcard == '/') || (*path == '/' && *wildcard == '\\')) + break; + + if (ignore_case) { + if (tolower(*path) != tolower(*wildcard)) + return MZ_EXIST_ERROR; + } else { + if (*path != *wildcard) + return MZ_EXIST_ERROR; + } + + break; + } + + path += 1; + wildcard += 1; + } + + if ((*wildcard != 0) && (*wildcard != '*')) + return MZ_EXIST_ERROR; + + return MZ_OK; +} + +int32_t mz_path_resolve(const char *path, char *output, int32_t max_output) { + const char *source = path; + const char *check = output; + char *target = output; + + + if (max_output <= 0) + return MZ_PARAM_ERROR; + + while (*source != 0 && max_output > 1) { + check = source; + if ((*check == '\\') || (*check == '/')) + check += 1; + + if ((source == path) || (target == output) || (check != source)) { + /* Skip double paths */ + if ((*check == '\\') || (*check == '/')) { + source += 1; + continue; + } + if (*check == '.') { + check += 1; + + /* Remove . if at end of string and not at the beginning */ + if ((*check == 0) && (source != path && target != output)) { + /* Copy last slash */ + *target = *source; + target += 1; + max_output -= 1; + source += (check - source); + continue; + } + /* Remove . if not at end of string */ + else if ((*check == '\\') || (*check == '/')) { + source += (check - source); + /* Skip slash if at beginning of string */ + if (target == output && *source != 0) + source += 1; + continue; + } + /* Go to parent directory .. */ + else if (*check == '.') { + check += 1; + if ((*check == 0) || (*check == '\\' || *check == '/')) { + source += (check - source); + + /* Search backwards for previous slash */ + if (target != output) { + target -= 1; + do { + if ((*target == '\\') || (*target == '/')) + break; + + target -= 1; + max_output += 1; + } while (target > output); + } + + if ((target == output) && (*source != 0)) + source += 1; + if ((*target == '\\' || *target == '/') && (*source == 0)) + target += 1; + + *target = 0; + continue; + } + } + } + } + + *target = *source; + + source += 1; + target += 1; + max_output -= 1; + } + + *target = 0; + + if (*path == 0) + return MZ_INTERNAL_ERROR; + + return MZ_OK; +} + +int32_t mz_path_remove_filename(char *path) { + char *path_ptr = NULL; + + if (path == NULL) + return MZ_PARAM_ERROR; + + path_ptr = path + strlen(path) - 1; + + while (path_ptr > path) { + if ((*path_ptr == '/') || (*path_ptr == '\\')) { + *path_ptr = 0; + break; + } + + path_ptr -= 1; + } + + if (path_ptr == path) + *path_ptr = 0; + + return MZ_OK; +} + +int32_t mz_path_remove_extension(char *path) { + char *path_ptr = NULL; + + if (path == NULL) + return MZ_PARAM_ERROR; + + path_ptr = path + strlen(path) - 1; + + while (path_ptr > path) { + if ((*path_ptr == '/') || (*path_ptr == '\\')) + break; + if (*path_ptr == '.') { + *path_ptr = 0; + break; + } + + path_ptr -= 1; + } + + if (path_ptr == path) + *path_ptr = 0; + + return MZ_OK; +} + +int32_t mz_path_get_filename(const char *path, const char **filename) { + const char *match = NULL; + + if (path == NULL || filename == NULL) + return MZ_PARAM_ERROR; + + *filename = NULL; + + for (match = path; *match != 0; match += 1) { + if ((*match == '\\') || (*match == '/')) + *filename = match + 1; + } + + if (*filename == NULL) + return MZ_EXIST_ERROR; + + return MZ_OK; +} + +int32_t mz_dir_make(const char *path) { + int32_t err = MZ_OK; + int16_t len = 0; + char *current_dir = NULL; + char *match = NULL; + char hold = 0; + + + len = (int16_t)strlen(path); + if (len <= 0) + return 0; + + current_dir = (char *)MZ_ALLOC((uint16_t)len + 1); + if (current_dir == NULL) + return MZ_MEM_ERROR; + + strcpy(current_dir, path); + mz_path_remove_slash(current_dir); + + err = mz_os_make_dir(current_dir); + if (err != MZ_OK) { + match = current_dir + 1; + while (1) { + while (*match != 0 && *match != '\\' && *match != '/') + match += 1; + hold = *match; + *match = 0; + + err = mz_os_make_dir(current_dir); + if (err != MZ_OK) + break; + if (hold == 0) + break; + + *match = hold; + match += 1; + } + } + + MZ_FREE(current_dir); + return err; +} + +int32_t mz_file_get_crc(const char *path, uint32_t *result_crc) { + void *stream = NULL; + uint32_t crc32 = 0; + int32_t read = 0; + int32_t err = MZ_OK; + uint8_t buf[16384]; + + mz_stream_os_create(&stream); + + err = mz_stream_os_open(stream, path, MZ_OPEN_MODE_READ); + + if (err == MZ_OK) { + do { + read = mz_stream_os_read(stream, buf, sizeof(buf)); + + if (read < 0) { + err = read; + break; + } + + crc32 = mz_crypt_crc32_update(crc32, buf, read); + } while ((err == MZ_OK) && (read > 0)); + + mz_stream_os_close(stream); + } + + *result_crc = crc32; + + mz_stream_os_delete(&stream); + + return err; +} + +/***************************************************************************/ diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.h new file mode 100644 index 0000000..b3e2a58 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os.h @@ -0,0 +1,175 @@ +/* mz_os.h -- System functions + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_OS_H +#define MZ_OS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +#if defined(__APPLE__) +# define MZ_VERSION_MADEBY_HOST_SYSTEM (MZ_HOST_SYSTEM_OSX_DARWIN) +#elif defined(__riscos__) +# define MZ_VERSION_MADEBY_HOST_SYSTEM (MZ_HOST_SYSTEM_RISCOS) +#elif defined(_WIN32) +# define MZ_VERSION_MADEBY_HOST_SYSTEM (MZ_HOST_SYSTEM_WINDOWS_NTFS) +#else +# define MZ_VERSION_MADEBY_HOST_SYSTEM (MZ_HOST_SYSTEM_UNIX) +#endif + +#if defined(HAVE_LZMA) || defined(HAVE_LIBCOMP) +# define MZ_VERSION_MADEBY_ZIP_VERSION (63) +#elif defined(HAVE_WZAES) +# define MZ_VERSION_MADEBY_ZIP_VERSION (51) +#elif defined(HAVE_BZIP2) +# define MZ_VERSION_MADEBY_ZIP_VERSION (46) +#else +# define MZ_VERSION_MADEBY_ZIP_VERSION (45) +#endif + +#define MZ_VERSION_MADEBY ((MZ_VERSION_MADEBY_HOST_SYSTEM << 8) | \ + (MZ_VERSION_MADEBY_ZIP_VERSION)) + +#define MZ_PATH_SLASH_UNIX ('/') +#if defined(_WIN32) +# define MZ_PATH_SLASH_PLATFORM ('\\') +#else +# define MZ_PATH_SLASH_PLATFORM (MZ_PATH_SLASH_UNIX) +#endif + +/***************************************************************************/ + +#if defined(_WIN32) +struct dirent { + char d_name[256]; +}; +typedef void* DIR; +#else +#include +#endif + +/***************************************************************************/ +/* Shared functions */ + +int32_t mz_path_combine(char *path, const char *join, int32_t max_path); +/* Combines two paths */ + +int32_t mz_path_append_slash(char *path, int32_t max_path, char slash); +/* Appends a path slash on to the end of the path */ + +int32_t mz_path_remove_slash(char *path); +/* Removes a path slash from the end of the path */ + +int32_t mz_path_has_slash(const char *path); +/* Returns whether or not the path ends with slash */ + +int32_t mz_path_convert_slashes(char *path, char slash); +/* Converts the slashes in a path */ + +int32_t mz_path_compare_wc(const char *path, const char *wildcard, uint8_t ignore_case); +/* Compare two paths with wildcard */ + +int32_t mz_path_resolve(const char *path, char *target, int32_t max_target); +/* Resolves path */ + +int32_t mz_path_remove_filename(char *path); +/* Remove the filename from a path */ + +int32_t mz_path_remove_extension(char *path); +/* Remove the extension from a path */ + +int32_t mz_path_get_filename(const char *path, const char **filename); +/* Get the filename from a path */ + +int32_t mz_dir_make(const char *path); +/* Creates a directory recursively */ + +int32_t mz_file_get_crc(const char *path, uint32_t *result_crc); +/* Gets the crc32 hash of a file */ + +/***************************************************************************/ +/* Platform specific functions */ + +wchar_t *mz_os_unicode_string_create(const char *string, int32_t encoding); +/* Create unicode string from a utf8 string */ + +void mz_os_unicode_string_delete(wchar_t **string); +/* Delete a unicode string that was created */ + +uint8_t *mz_os_utf8_string_create(const char *string, int32_t encoding); +/* Create a utf8 string from a string with another encoding */ + +void mz_os_utf8_string_delete(uint8_t **string); +/* Delete a utf8 string that was created */ + +int32_t mz_os_rand(uint8_t *buf, int32_t size); +/* Random number generator (not cryptographically secure) */ + +int32_t mz_os_rename(const char *source_path, const char *target_path); +/* Rename a file */ + +int32_t mz_os_unlink(const char *path); +/* Delete an existing file */ + +int32_t mz_os_file_exists(const char *path); +/* Check to see if a file exists */ + +int64_t mz_os_get_file_size(const char *path); +/* Gets the length of a file */ + +int32_t mz_os_get_file_date(const char *path, time_t *modified_date, time_t *accessed_date, time_t *creation_date); +/* Gets a file's modified, access, and creation dates if supported */ + +int32_t mz_os_set_file_date(const char *path, time_t modified_date, time_t accessed_date, time_t creation_date); +/* Sets a file's modified, access, and creation dates if supported */ + +int32_t mz_os_get_file_attribs(const char *path, uint32_t *attributes); +/* Gets a file's attributes */ + +int32_t mz_os_set_file_attribs(const char *path, uint32_t attributes); +/* Sets a file's attributes */ + +int32_t mz_os_make_dir(const char *path); +/* Recursively creates a directory */ + +DIR* mz_os_open_dir(const char *path); +/* Opens a directory for listing */ +struct +dirent* mz_os_read_dir(DIR *dir); +/* Reads a directory listing entry */ + +int32_t mz_os_close_dir(DIR *dir); +/* Closes a directory that has been opened for listing */ + +int32_t mz_os_is_dir(const char *path); +/* Checks to see if path is a directory */ + +int32_t mz_os_is_symlink(const char *path); +/* Checks to see if path is a symbolic link */ + +int32_t mz_os_make_symlink(const char *path, const char *target_path); +/* Creates a symbolic link pointing to a target */ + +int32_t mz_os_read_symlink(const char *path, char *target_path, int32_t max_target_path); +/* Gets the target path for a symbolic link */ + +uint64_t mz_os_ms_time(void); +/* Gets the time in milliseconds */ + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_os_posix.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os_posix.c new file mode 100644 index 0000000..576943d --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_os_posix.c @@ -0,0 +1,367 @@ +/* mz_os_posix.c -- System functions for posix + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#include "mz.h" +#include "mz_strm.h" +#include "mz_os.h" + +#include /* rename */ +#include +#if defined(HAVE_ICONV) +#include +#endif + +#include +#include + +#ifndef _WIN32 +# include +# include +#endif +#if defined(__APPLE__) +# include +# include +#endif + +#if defined(HAVE_GETRANDOM) +# include +#endif +#if defined(HAVE_LIBBSD) +# include +# ifndef __u_char_defined + typedef unsigned char u_char; +# endif +# include /* arc4random_buf */ +#endif + +/***************************************************************************/ + +#if defined(HAVE_ICONV) +uint8_t *mz_os_utf8_string_create(const char *string, int32_t encoding) { + iconv_t cd; + const char *from_encoding = NULL; + size_t result = 0; + size_t string_length = 0; + size_t string_utf8_size = 0; + uint8_t *string_utf8 = NULL; + uint8_t *string_utf8_ptr = NULL; + + if (string == NULL) + return NULL; + + if (encoding == MZ_ENCODING_CODEPAGE_437) + from_encoding = "CP437"; + else if (encoding == MZ_ENCODING_CODEPAGE_932) + from_encoding = "CP932"; + else if (encoding == MZ_ENCODING_CODEPAGE_936) + from_encoding = "CP936"; + else if (encoding == MZ_ENCODING_CODEPAGE_950) + from_encoding = "CP950"; + else if (encoding == MZ_ENCODING_UTF8) + from_encoding = "UTF-8"; + else + return NULL; + + cd = iconv_open("UTF-8", from_encoding); + if (cd == (iconv_t)-1) + return NULL; + + string_length = strlen(string); + string_utf8_size = string_length * 2; + string_utf8 = (uint8_t *)MZ_ALLOC((int32_t)(string_utf8_size + 1)); + string_utf8_ptr = string_utf8; + + if (string_utf8) { + memset(string_utf8, 0, string_utf8_size + 1); + + result = iconv(cd, (char **)&string, &string_length, + (char **)&string_utf8_ptr, &string_utf8_size); + } + + iconv_close(cd); + + if (result == (size_t)-1) { + MZ_FREE(string_utf8); + string_utf8 = NULL; + } + + return string_utf8; +} +#else +uint8_t *mz_os_utf8_string_create(const char *string, int32_t encoding) { + size_t string_length = 0; + uint8_t *string_copy = NULL; + + string_length = strlen(string); + string_copy = (uint8_t *)MZ_ALLOC((int32_t)(string_length + 1)); + strncpy((char *)string_copy, string, string_length); + string_copy[string_length] = 0; + + return string_copy; +} +#endif + +void mz_os_utf8_string_delete(uint8_t **string) { + if (string != NULL) { + MZ_FREE(*string); + *string = NULL; + } +} + +/***************************************************************************/ + +#if defined(HAVE_ARC4RANDOM_BUF) +int32_t mz_os_rand(uint8_t *buf, int32_t size) { + if (size < 0) + return 0; + arc4random_buf(buf, (uint32_t)size); + return size; +} +#elif defined(HAVE_ARC4RANDOM) +int32_t mz_os_rand(uint8_t *buf, int32_t size) { + int32_t left = size; + for (; left > 2; left -= 3, buf += 3) { + uint32_t val = arc4random(); + + buf[0] = (val) & 0xFF; + buf[1] = (val >> 8) & 0xFF; + buf[2] = (val >> 16) & 0xFF; + } + for (; left > 0; left--, buf++) { + *buf = arc4random() & 0xFF; + } + return size - left; +} +#elif defined(HAVE_GETRANDOM) +int32_t mz_os_rand(uint8_t *buf, int32_t size) { + int32_t left = size; + int32_t written = 0; + + while (left > 0) { + written = getrandom(buf, left, 0); + if (written < 0) + return MZ_INTERNAL_ERROR; + + buf += written; + left -= written; + } + return size - left; +} +#else +int32_t mz_os_rand(uint8_t *buf, int32_t size) { + static unsigned calls = 0; + int32_t i = 0; + + /* Ensure different random header each time */ + if (++calls == 1) { + #define PI_SEED 3141592654UL + srand((unsigned)(time(NULL) ^ PI_SEED)); + } + + while (i < size) + buf[i++] = (rand() >> 7) & 0xff; + + return size; +} +#endif + +int32_t mz_os_rename(const char *source_path, const char *target_path) { + if (rename(source_path, target_path) == -1) + return MZ_EXIST_ERROR; + + return MZ_OK; +} + +int32_t mz_os_unlink(const char *path) { + if (unlink(path) == -1) + return MZ_EXIST_ERROR; + + return MZ_OK; +} + +int32_t mz_os_file_exists(const char *path) { + struct stat path_stat; + + memset(&path_stat, 0, sizeof(path_stat)); + if (stat(path, &path_stat) == 0) + return MZ_OK; + return MZ_EXIST_ERROR; +} + +int64_t mz_os_get_file_size(const char *path) { + struct stat path_stat; + + memset(&path_stat, 0, sizeof(path_stat)); + if (stat(path, &path_stat) == 0) { + /* Stat returns size taken up by directory entry, so return 0 */ + if (S_ISDIR(path_stat.st_mode)) + return 0; + + return path_stat.st_size; + } + + return 0; +} + +int32_t mz_os_get_file_date(const char *path, time_t *modified_date, time_t *accessed_date, time_t *creation_date) { + struct stat path_stat; + char *name = NULL; + size_t len = 0; + int32_t err = MZ_INTERNAL_ERROR; + + memset(&path_stat, 0, sizeof(path_stat)); + + if (strcmp(path, "-") != 0) { + /* Not all systems allow stat'ing a file with / appended */ + len = strlen(path); + name = (char *)malloc(len + 1); + strncpy(name, path, len + 1); + mz_path_remove_slash(name); + + if (stat(name, &path_stat) == 0) { + if (modified_date != NULL) + *modified_date = path_stat.st_mtime; + if (accessed_date != NULL) + *accessed_date = path_stat.st_atime; + /* Creation date not supported */ + if (creation_date != NULL) + *creation_date = 0; + + err = MZ_OK; + } + + free(name); + } + + return err; +} + +int32_t mz_os_set_file_date(const char *path, time_t modified_date, time_t accessed_date, time_t creation_date) { + struct utimbuf ut; + + ut.actime = accessed_date; + ut.modtime = modified_date; + + /* Creation date not supported */ + MZ_UNUSED(creation_date); + + if (utime(path, &ut) != 0) + return MZ_INTERNAL_ERROR; + + return MZ_OK; +} + +int32_t mz_os_get_file_attribs(const char *path, uint32_t *attributes) { + struct stat path_stat; + int32_t err = MZ_OK; + + memset(&path_stat, 0, sizeof(path_stat)); + if (lstat(path, &path_stat) == -1) + err = MZ_INTERNAL_ERROR; + *attributes = path_stat.st_mode; + return err; +} + +int32_t mz_os_set_file_attribs(const char *path, uint32_t attributes) { + int32_t err = MZ_OK; + + if (chmod(path, (mode_t)attributes) == -1) + err = MZ_INTERNAL_ERROR; + + return err; +} + +int32_t mz_os_make_dir(const char *path) { + int32_t err = 0; + + err = mkdir(path, 0755); + + if (err != 0 && errno != EEXIST) + return MZ_INTERNAL_ERROR; + + return MZ_OK; +} + +DIR* mz_os_open_dir(const char *path) { + return opendir(path); +} + +struct dirent* mz_os_read_dir(DIR *dir) { + if (dir == NULL) + return NULL; + return readdir(dir); +} + +int32_t mz_os_close_dir(DIR *dir) { + if (dir == NULL) + return MZ_PARAM_ERROR; + if (closedir(dir) == -1) + return MZ_INTERNAL_ERROR; + return MZ_OK; +} + +int32_t mz_os_is_dir(const char *path) { + struct stat path_stat; + + memset(&path_stat, 0, sizeof(path_stat)); + stat(path, &path_stat); + if (S_ISDIR(path_stat.st_mode)) + return MZ_OK; + + return MZ_EXIST_ERROR; +} + +int32_t mz_os_is_symlink(const char *path) { + struct stat path_stat; + + memset(&path_stat, 0, sizeof(path_stat)); + lstat(path, &path_stat); + if (S_ISLNK(path_stat.st_mode)) + return MZ_OK; + + return MZ_EXIST_ERROR; +} + +int32_t mz_os_make_symlink(const char *path, const char *target_path) { + if (symlink(target_path, path) != 0) + return MZ_INTERNAL_ERROR; + return MZ_OK; +} + +int32_t mz_os_read_symlink(const char *path, char *target_path, int32_t max_target_path) { + size_t length = 0; + + length = (size_t)readlink(path, target_path, max_target_path - 1); + if (length == (size_t)-1) + return MZ_EXIST_ERROR; + + target_path[length] = 0; + return MZ_OK; +} + +uint64_t mz_os_ms_time(void) { + struct timespec ts; + +#if defined(__APPLE__) + clock_serv_t cclock; + mach_timespec_t mts; + + host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); + clock_get_time(cclock, &mts); + mach_port_deallocate(mach_task_self(), cclock); + + ts.tv_sec = mts.tv_sec; + ts.tv_nsec = mts.tv_nsec; +#else + clock_gettime(CLOCK_MONOTONIC, &ts); +#endif + + return ((uint64_t)ts.tv_sec * 1000) + ((uint64_t)ts.tv_nsec / 1000000); +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.c new file mode 100644 index 0000000..da7d587 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.c @@ -0,0 +1,560 @@ +/* mz_strm.c -- Stream interface + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#include "mz.h" +#include "mz_strm.h" + +/***************************************************************************/ + +#define MZ_STREAM_FIND_SIZE (1024) + +/***************************************************************************/ + +int32_t mz_stream_open(void *stream, const char *path, int32_t mode) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->open == NULL) + return MZ_STREAM_ERROR; + return strm->vtbl->open(strm, path, mode); +} + +int32_t mz_stream_is_open(void *stream) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->is_open == NULL) + return MZ_STREAM_ERROR; + return strm->vtbl->is_open(strm); +} + +int32_t mz_stream_read(void *stream, void *buf, int32_t size) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->read == NULL) + return MZ_PARAM_ERROR; + if (mz_stream_is_open(stream) != MZ_OK) + return MZ_STREAM_ERROR; + return strm->vtbl->read(strm, buf, size); +} + +static int32_t mz_stream_read_value(void *stream, uint64_t *value, int32_t len) { + uint8_t buf[8]; + int32_t n = 0; + int32_t i = 0; + + *value = 0; + if (mz_stream_read(stream, buf, len) == len) { + for (n = 0; n < len; n += 1, i += 8) + *value += ((uint64_t)buf[n]) << i; + } else if (mz_stream_error(stream)) + return MZ_STREAM_ERROR; + else + return MZ_END_OF_STREAM; + + return MZ_OK; +} + +int32_t mz_stream_read_uint8(void *stream, uint8_t *value) { + int32_t err = MZ_OK; + uint64_t value64 = 0; + + *value = 0; + err = mz_stream_read_value(stream, &value64, sizeof(uint8_t)); + if (err == MZ_OK) + *value = (uint8_t)value64; + return err; +} + +int32_t mz_stream_read_uint16(void *stream, uint16_t *value) { + int32_t err = MZ_OK; + uint64_t value64 = 0; + + *value = 0; + err = mz_stream_read_value(stream, &value64, sizeof(uint16_t)); + if (err == MZ_OK) + *value = (uint16_t)value64; + return err; +} + +int32_t mz_stream_read_uint32(void *stream, uint32_t *value) { + int32_t err = MZ_OK; + uint64_t value64 = 0; + + *value = 0; + err = mz_stream_read_value(stream, &value64, sizeof(uint32_t)); + if (err == MZ_OK) + *value = (uint32_t)value64; + return err; +} + +int32_t mz_stream_read_int64(void *stream, int64_t *value) { + return mz_stream_read_value(stream, (uint64_t *)value, sizeof(uint64_t)); +} + +int32_t mz_stream_read_uint64(void *stream, uint64_t *value) { + return mz_stream_read_value(stream, value, sizeof(uint64_t)); +} + +int32_t mz_stream_write(void *stream, const void *buf, int32_t size) { + mz_stream *strm = (mz_stream *)stream; + if (size == 0) + return size; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->write == NULL) + return MZ_PARAM_ERROR; + if (mz_stream_is_open(stream) != MZ_OK) + return MZ_STREAM_ERROR; + return strm->vtbl->write(strm, buf, size); +} + +static int32_t mz_stream_write_value(void *stream, uint64_t value, int32_t len) { + uint8_t buf[8]; + int32_t n = 0; + + for (n = 0; n < len; n += 1) { + buf[n] = (uint8_t)(value & 0xff); + value >>= 8; + } + + if (value != 0) { + /* Data overflow - hack for ZIP64 (X Roche) */ + for (n = 0; n < len; n += 1) + buf[n] = 0xff; + } + + if (mz_stream_write(stream, buf, len) != len) + return MZ_STREAM_ERROR; + + return MZ_OK; +} + +int32_t mz_stream_write_uint8(void *stream, uint8_t value) { + return mz_stream_write_value(stream, value, sizeof(uint8_t)); +} + +int32_t mz_stream_write_uint16(void *stream, uint16_t value) { + return mz_stream_write_value(stream, value, sizeof(uint16_t)); +} + +int32_t mz_stream_write_uint32(void *stream, uint32_t value) { + return mz_stream_write_value(stream, value, sizeof(uint32_t)); +} + +int32_t mz_stream_write_int64(void *stream, int64_t value) { + return mz_stream_write_value(stream, (uint64_t)value, sizeof(uint64_t)); +} + +int32_t mz_stream_write_uint64(void *stream, uint64_t value) { + return mz_stream_write_value(stream, value, sizeof(uint64_t)); +} + +int32_t mz_stream_copy(void *target, void *source, int32_t len) { + return mz_stream_copy_stream(target, NULL, source, NULL, len); +} + +int32_t mz_stream_copy_to_end(void *target, void *source) { + return mz_stream_copy_stream_to_end(target, NULL, source, NULL); +} + +int32_t mz_stream_copy_stream(void *target, mz_stream_write_cb write_cb, void *source, + mz_stream_read_cb read_cb, int32_t len) { + uint8_t buf[16384]; + int32_t bytes_to_copy = 0; + int32_t read = 0; + int32_t written = 0; + + if (write_cb == NULL) + write_cb = mz_stream_write; + if (read_cb == NULL) + read_cb = mz_stream_read; + + while (len > 0) { + bytes_to_copy = len; + if (bytes_to_copy > (int32_t)sizeof(buf)) + bytes_to_copy = sizeof(buf); + read = read_cb(source, buf, bytes_to_copy); + if (read <= 0) + return MZ_STREAM_ERROR; + written = write_cb(target, buf, read); + if (written != read) + return MZ_STREAM_ERROR; + len -= read; + } + + return MZ_OK; +} + +int32_t mz_stream_copy_stream_to_end(void *target, mz_stream_write_cb write_cb, void *source, + mz_stream_read_cb read_cb) { + uint8_t buf[16384]; + int32_t read = 0; + int32_t written = 0; + + if (write_cb == NULL) + write_cb = mz_stream_write; + if (read_cb == NULL) + read_cb = mz_stream_read; + + read = read_cb(source, buf, sizeof(buf)); + while (read > 0) { + written = write_cb(target, buf, read); + if (written != read) + return MZ_STREAM_ERROR; + read = read_cb(source, buf, sizeof(buf)); + } + + if (read < 0) + return MZ_STREAM_ERROR; + + return MZ_OK; +} + +int64_t mz_stream_tell(void *stream) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->tell == NULL) + return MZ_PARAM_ERROR; + if (mz_stream_is_open(stream) != MZ_OK) + return MZ_STREAM_ERROR; + return strm->vtbl->tell(strm); +} + +int32_t mz_stream_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->seek == NULL) + return MZ_PARAM_ERROR; + if (mz_stream_is_open(stream) != MZ_OK) + return MZ_STREAM_ERROR; + if (origin == MZ_SEEK_SET && offset < 0) + return MZ_SEEK_ERROR; + return strm->vtbl->seek(strm, offset, origin); +} + +int32_t mz_stream_find(void *stream, const void *find, int32_t find_size, int64_t max_seek, int64_t *position) { + uint8_t buf[MZ_STREAM_FIND_SIZE]; + int32_t buf_pos = 0; + int32_t read_size = sizeof(buf); + int32_t read = 0; + int64_t read_pos = 0; + int64_t start_pos = 0; + int64_t disk_pos = 0; + int32_t i = 0; + uint8_t first = 1; + int32_t err = MZ_OK; + + if (stream == NULL || find == NULL || position == NULL) + return MZ_PARAM_ERROR; + if (find_size < 0 || find_size >= (int32_t)sizeof(buf)) + return MZ_PARAM_ERROR; + + *position = -1; + + start_pos = mz_stream_tell(stream); + + while (read_pos < max_seek) { + if (read_size > (int32_t)(max_seek - read_pos - buf_pos) && (max_seek - read_pos - buf_pos) < (int64_t)sizeof(buf)) + read_size = (int32_t)(max_seek - read_pos - buf_pos); + + read = mz_stream_read(stream, buf + buf_pos, read_size); + if ((read <= 0) || (read + buf_pos < find_size)) + break; + + for (i = 0; i <= read + buf_pos - find_size; i += 1) { + if (memcmp(&buf[i], find, find_size) != 0) + continue; + + disk_pos = mz_stream_tell(stream); + + /* Seek to position on disk where the data was found */ + err = mz_stream_seek(stream, disk_pos - ((int64_t)read + buf_pos - i), MZ_SEEK_SET); + if (err != MZ_OK) + return MZ_EXIST_ERROR; + + *position = start_pos + read_pos + i; + return MZ_OK; + } + + if (first) { + read -= find_size; + read_size -= find_size; + buf_pos = find_size; + first = 0; + } + + memmove(buf, buf + read, find_size); + read_pos += read; + } + + return MZ_EXIST_ERROR; +} + +int32_t mz_stream_find_reverse(void *stream, const void *find, int32_t find_size, int64_t max_seek, int64_t *position) { + uint8_t buf[MZ_STREAM_FIND_SIZE]; + int32_t buf_pos = 0; + int32_t read_size = MZ_STREAM_FIND_SIZE; + int64_t read_pos = 0; + int32_t read = 0; + int64_t start_pos = 0; + int64_t disk_pos = 0; + uint8_t first = 1; + int32_t i = 0; + int32_t err = MZ_OK; + + if (stream == NULL || find == NULL || position == NULL) + return MZ_PARAM_ERROR; + if (find_size < 0 || find_size >= (int32_t)sizeof(buf)) + return MZ_PARAM_ERROR; + + *position = -1; + + start_pos = mz_stream_tell(stream); + + while (read_pos < max_seek) { + if (read_size > (int32_t)(max_seek - read_pos) && (max_seek - read_pos) < (int64_t)sizeof(buf)) + read_size = (int32_t)(max_seek - read_pos); + + if (mz_stream_seek(stream, start_pos - (read_pos + read_size), MZ_SEEK_SET) != MZ_OK) + break; + read = mz_stream_read(stream, buf, read_size); + if ((read <= 0) || (read + buf_pos < find_size)) + break; + if (read + buf_pos < MZ_STREAM_FIND_SIZE) + memmove(buf + MZ_STREAM_FIND_SIZE - (read + buf_pos), buf, read); + + for (i = find_size; i <= (read + buf_pos); i += 1) { + if (memcmp(&buf[MZ_STREAM_FIND_SIZE - i], find, find_size) != 0) + continue; + + disk_pos = mz_stream_tell(stream); + + /* Seek to position on disk where the data was found */ + err = mz_stream_seek(stream, disk_pos + buf_pos - i, MZ_SEEK_SET); + if (err != MZ_OK) + return MZ_EXIST_ERROR; + + *position = start_pos - (read_pos - buf_pos + i); + return MZ_OK; + } + + if (first) { + read -= find_size; + read_size -= find_size; + buf_pos = find_size; + first = 0; + } + + if (read == 0) + break; + + memmove(buf + read_size, buf, find_size); + read_pos += read; + } + + return MZ_EXIST_ERROR; +} + +int32_t mz_stream_close(void *stream) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->close == NULL) + return MZ_PARAM_ERROR; + if (mz_stream_is_open(stream) != MZ_OK) + return MZ_STREAM_ERROR; + return strm->vtbl->close(strm); +} + +int32_t mz_stream_error(void *stream) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->error == NULL) + return MZ_PARAM_ERROR; + return strm->vtbl->error(strm); +} + +int32_t mz_stream_set_base(void *stream, void *base) { + mz_stream *strm = (mz_stream *)stream; + strm->base = (mz_stream *)base; + return MZ_OK; +} + +void* mz_stream_get_interface(void *stream) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL) + return NULL; + return (void *)strm->vtbl; +} + +int32_t mz_stream_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->get_prop_int64 == NULL) + return MZ_PARAM_ERROR; + return strm->vtbl->get_prop_int64(stream, prop, value); +} + +int32_t mz_stream_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream *strm = (mz_stream *)stream; + if (strm == NULL || strm->vtbl == NULL || strm->vtbl->set_prop_int64 == NULL) + return MZ_PARAM_ERROR; + return strm->vtbl->set_prop_int64(stream, prop, value); +} + +void *mz_stream_create(void **stream, mz_stream_vtbl *vtbl) { + if (stream == NULL) + return NULL; + if (vtbl == NULL || vtbl->create == NULL) + return NULL; + return vtbl->create(stream); +} + +void mz_stream_delete(void **stream) { + mz_stream *strm = NULL; + if (stream == NULL) + return; + strm = (mz_stream *)*stream; + if (strm != NULL && strm->vtbl != NULL && strm->vtbl->destroy != NULL) + strm->vtbl->destroy(stream); + *stream = NULL; +} + +/***************************************************************************/ + +typedef struct mz_stream_raw_s { + mz_stream stream; + int64_t total_in; + int64_t total_out; + int64_t max_total_in; +} mz_stream_raw; + +/***************************************************************************/ + +int32_t mz_stream_raw_open(void *stream, const char *path, int32_t mode) { + MZ_UNUSED(stream); + MZ_UNUSED(path); + MZ_UNUSED(mode); + + return MZ_OK; +} + +int32_t mz_stream_raw_is_open(void *stream) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + return mz_stream_is_open(raw->stream.base); +} + +int32_t mz_stream_raw_read(void *stream, void *buf, int32_t size) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + int32_t bytes_to_read = size; + int32_t read = 0; + + if (raw->max_total_in > 0) { + if ((int64_t)bytes_to_read > (raw->max_total_in - raw->total_in)) + bytes_to_read = (int32_t)(raw->max_total_in - raw->total_in); + } + + read = mz_stream_read(raw->stream.base, buf, bytes_to_read); + + if (read > 0) { + raw->total_in += read; + raw->total_out += read; + } + + return read; +} + +int32_t mz_stream_raw_write(void *stream, const void *buf, int32_t size) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + int32_t written = 0; + + written = mz_stream_write(raw->stream.base, buf, size); + + if (written > 0) { + raw->total_out += written; + raw->total_in += written; + } + + return written; +} + +int64_t mz_stream_raw_tell(void *stream) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + return mz_stream_tell(raw->stream.base); +} + +int32_t mz_stream_raw_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + return mz_stream_seek(raw->stream.base, offset, origin); +} + +int32_t mz_stream_raw_close(void *stream) { + MZ_UNUSED(stream); + return MZ_OK; +} + +int32_t mz_stream_raw_error(void *stream) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + return mz_stream_error(raw->stream.base); +} + +int32_t mz_stream_raw_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN: + *value = raw->total_in; + return MZ_OK; + case MZ_STREAM_PROP_TOTAL_OUT: + *value = raw->total_out; + return MZ_OK; + } + return MZ_EXIST_ERROR; +} + +int32_t mz_stream_raw_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream_raw *raw = (mz_stream_raw *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN_MAX: + raw->max_total_in = value; + return MZ_OK; + } + return MZ_EXIST_ERROR; +} + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_raw_vtbl = { + mz_stream_raw_open, + mz_stream_raw_is_open, + mz_stream_raw_read, + mz_stream_raw_write, + mz_stream_raw_tell, + mz_stream_raw_seek, + mz_stream_raw_close, + mz_stream_raw_error, + mz_stream_raw_create, + mz_stream_raw_delete, + mz_stream_raw_get_prop_int64, + mz_stream_raw_set_prop_int64 +}; + +/***************************************************************************/ + +void *mz_stream_raw_create(void **stream) { + mz_stream_raw *raw = NULL; + + raw = (mz_stream_raw *)MZ_ALLOC(sizeof(mz_stream_raw)); + if (raw != NULL) { + memset(raw, 0, sizeof(mz_stream_raw)); + raw->stream.vtbl = &mz_stream_raw_vtbl; + } + if (stream != NULL) + *stream = raw; + + return raw; +} + +void mz_stream_raw_delete(void **stream) { + mz_stream_raw *raw = NULL; + if (stream == NULL) + return; + raw = (mz_stream_raw *)*stream; + if (raw != NULL) + MZ_FREE(raw); + *stream = NULL; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.h new file mode 100644 index 0000000..8b0027c --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm.h @@ -0,0 +1,132 @@ +/* mz_strm.h -- Stream interface + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_H +#define MZ_STREAM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +#define MZ_STREAM_PROP_TOTAL_IN (1) +#define MZ_STREAM_PROP_TOTAL_IN_MAX (2) +#define MZ_STREAM_PROP_TOTAL_OUT (3) +#define MZ_STREAM_PROP_TOTAL_OUT_MAX (4) +#define MZ_STREAM_PROP_HEADER_SIZE (5) +#define MZ_STREAM_PROP_FOOTER_SIZE (6) +#define MZ_STREAM_PROP_DISK_SIZE (7) +#define MZ_STREAM_PROP_DISK_NUMBER (8) +#define MZ_STREAM_PROP_COMPRESS_LEVEL (9) +#define MZ_STREAM_PROP_COMPRESS_METHOD (10) +#define MZ_STREAM_PROP_COMPRESS_WINDOW (11) + +/***************************************************************************/ + +typedef int32_t (*mz_stream_open_cb) (void *stream, const char *path, int32_t mode); +typedef int32_t (*mz_stream_is_open_cb) (void *stream); +typedef int32_t (*mz_stream_read_cb) (void *stream, void *buf, int32_t size); +typedef int32_t (*mz_stream_write_cb) (void *stream, const void *buf, int32_t size); +typedef int64_t (*mz_stream_tell_cb) (void *stream); +typedef int32_t (*mz_stream_seek_cb) (void *stream, int64_t offset, int32_t origin); +typedef int32_t (*mz_stream_close_cb) (void *stream); +typedef int32_t (*mz_stream_error_cb) (void *stream); +typedef void* (*mz_stream_create_cb) (void **stream); +typedef void (*mz_stream_destroy_cb) (void **stream); + +typedef int32_t (*mz_stream_get_prop_int64_cb) (void *stream, int32_t prop, int64_t *value); +typedef int32_t (*mz_stream_set_prop_int64_cb) (void *stream, int32_t prop, int64_t value); + +typedef int32_t (*mz_stream_find_cb) (void *stream, const void *find, int32_t find_size, + int64_t max_seek, int64_t *position); + +/***************************************************************************/ + +typedef struct mz_stream_vtbl_s { + mz_stream_open_cb open; + mz_stream_is_open_cb is_open; + mz_stream_read_cb read; + mz_stream_write_cb write; + mz_stream_tell_cb tell; + mz_stream_seek_cb seek; + mz_stream_close_cb close; + mz_stream_error_cb error; + mz_stream_create_cb create; + mz_stream_destroy_cb destroy; + + mz_stream_get_prop_int64_cb get_prop_int64; + mz_stream_set_prop_int64_cb set_prop_int64; +} mz_stream_vtbl; + +typedef struct mz_stream_s { + mz_stream_vtbl *vtbl; + struct mz_stream_s *base; +} mz_stream; + +/***************************************************************************/ + +int32_t mz_stream_open(void *stream, const char *path, int32_t mode); +int32_t mz_stream_is_open(void *stream); +int32_t mz_stream_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_read_uint8(void *stream, uint8_t *value); +int32_t mz_stream_read_uint16(void *stream, uint16_t *value); +int32_t mz_stream_read_uint32(void *stream, uint32_t *value); +int32_t mz_stream_read_int64(void *stream, int64_t *value); +int32_t mz_stream_read_uint64(void *stream, uint64_t *value); +int32_t mz_stream_write(void *stream, const void *buf, int32_t size); +int32_t mz_stream_write_uint8(void *stream, uint8_t value); +int32_t mz_stream_write_uint16(void *stream, uint16_t value); +int32_t mz_stream_write_uint32(void *stream, uint32_t value); +int32_t mz_stream_write_int64(void *stream, int64_t value); +int32_t mz_stream_write_uint64(void *stream, uint64_t value); +int32_t mz_stream_copy(void *target, void *source, int32_t len); +int32_t mz_stream_copy_to_end(void *target, void *source); +int32_t mz_stream_copy_stream(void *target, mz_stream_write_cb write_cb, void *source, mz_stream_read_cb read_cb, int32_t len); +int32_t mz_stream_copy_stream_to_end(void *target, mz_stream_write_cb write_cb, void *source, mz_stream_read_cb read_cb); +int64_t mz_stream_tell(void *stream); +int32_t mz_stream_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_find(void *stream, const void *find, int32_t find_size, int64_t max_seek, int64_t *position); +int32_t mz_stream_find_reverse(void *stream, const void *find, int32_t find_size, int64_t max_seek, int64_t *position); +int32_t mz_stream_close(void *stream); +int32_t mz_stream_error(void *stream); + +int32_t mz_stream_set_base(void *stream, void *base); +void* mz_stream_get_interface(void *stream); +int32_t mz_stream_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_create(void **stream, mz_stream_vtbl *vtbl); +void mz_stream_delete(void **stream); + +/***************************************************************************/ + +int32_t mz_stream_raw_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_raw_is_open(void *stream); +int32_t mz_stream_raw_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_raw_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_raw_tell(void *stream); +int32_t mz_stream_raw_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_raw_close(void *stream); +int32_t mz_stream_raw_error(void *stream); + +int32_t mz_stream_raw_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_raw_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_raw_create(void **stream); +void mz_stream_raw_delete(void **stream); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.c new file mode 100644 index 0000000..1dfdfdf --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.c @@ -0,0 +1,385 @@ +/* mz_strm_buf.c -- Stream for buffering reads/writes + part of the minizip-ng project + + This version of ioapi is designed to buffer IO. + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#include "mz.h" +#include "mz_strm.h" +#include "mz_strm_buf.h" + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_buffered_vtbl = { + mz_stream_buffered_open, + mz_stream_buffered_is_open, + mz_stream_buffered_read, + mz_stream_buffered_write, + mz_stream_buffered_tell, + mz_stream_buffered_seek, + mz_stream_buffered_close, + mz_stream_buffered_error, + mz_stream_buffered_create, + mz_stream_buffered_delete, + NULL, + NULL +}; + +/***************************************************************************/ + +typedef struct mz_stream_buffered_s { + mz_stream stream; + int32_t error; + char readbuf[INT16_MAX]; + int32_t readbuf_len; + int32_t readbuf_pos; + int32_t readbuf_hits; + int32_t readbuf_misses; + char writebuf[INT16_MAX]; + int32_t writebuf_len; + int32_t writebuf_pos; + int32_t writebuf_hits; + int32_t writebuf_misses; + int64_t position; +} mz_stream_buffered; + +/***************************************************************************/ + +#if 0 +# define mz_stream_buffered_print printf +#else +# define mz_stream_buffered_print(fmt,...) +#endif + +/***************************************************************************/ + +static int32_t mz_stream_buffered_reset(void *stream) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + + buffered->readbuf_len = 0; + buffered->readbuf_pos = 0; + buffered->writebuf_len = 0; + buffered->writebuf_pos = 0; + buffered->position = 0; + + return MZ_OK; +} + +int32_t mz_stream_buffered_open(void *stream, const char *path, int32_t mode) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + mz_stream_buffered_print("Buffered - Open (mode %" PRId32 ")\n", mode); + mz_stream_buffered_reset(buffered); + return mz_stream_open(buffered->stream.base, path, mode); +} + +int32_t mz_stream_buffered_is_open(void *stream) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + return mz_stream_is_open(buffered->stream.base); +} + +static int32_t mz_stream_buffered_flush(void *stream, int32_t *written) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int32_t total_bytes_written = 0; + int32_t bytes_to_write = buffered->writebuf_len; + int32_t bytes_left_to_write = buffered->writebuf_len; + int32_t bytes_written = 0; + + *written = 0; + + while (bytes_left_to_write > 0) { + bytes_written = mz_stream_write(buffered->stream.base, + buffered->writebuf + (bytes_to_write - bytes_left_to_write), bytes_left_to_write); + + if (bytes_written != bytes_left_to_write) + return MZ_WRITE_ERROR; + + buffered->writebuf_misses += 1; + + mz_stream_buffered_print("Buffered - Write flush (%" PRId32 ":%" PRId32 " len %" PRId32 ")\n", + bytes_to_write, bytes_left_to_write, buffered->writebuf_len); + + total_bytes_written += bytes_written; + bytes_left_to_write -= bytes_written; + buffered->position += bytes_written; + } + + buffered->writebuf_len = 0; + buffered->writebuf_pos = 0; + + *written = total_bytes_written; + return MZ_OK; +} + +int32_t mz_stream_buffered_read(void *stream, void *buf, int32_t size) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int32_t buf_len = 0; + int32_t bytes_to_read = 0; + int32_t bytes_to_copy = 0; + int32_t bytes_left_to_read = size; + int32_t bytes_read = 0; + int32_t bytes_flushed = 0; + + mz_stream_buffered_print("Buffered - Read (size %" PRId32 " pos %" PRId64 ")\n", size, buffered->position); + + if (buffered->writebuf_len > 0) { + int64_t position = buffered->position + buffered->writebuf_pos + + mz_stream_buffered_print("Buffered - Switch from write to read, flushing (pos %" PRId64 ")\n", position); + + mz_stream_buffered_flush(stream, &bytes_flushed); + mz_stream_buffered_seek(stream, position, MZ_SEEK_SET); + } + + while (bytes_left_to_read > 0) { + if ((buffered->readbuf_len == 0) || (buffered->readbuf_pos == buffered->readbuf_len)) { + if (buffered->readbuf_len == sizeof(buffered->readbuf)) { + buffered->readbuf_pos = 0; + buffered->readbuf_len = 0; + } + + bytes_to_read = (int32_t)sizeof(buffered->readbuf) - (buffered->readbuf_len - buffered->readbuf_pos); + bytes_read = mz_stream_read(buffered->stream.base, buffered->readbuf + buffered->readbuf_pos, bytes_to_read); + if (bytes_read < 0) + return bytes_read; + + buffered->readbuf_misses += 1; + buffered->readbuf_len += bytes_read; + buffered->position += bytes_read; + + mz_stream_buffered_print("Buffered - Filled (read %" PRId32 "/%" PRId32 " buf %" PRId32 ":%" PRId32 " pos %" PRId64 ")\n", + bytes_read, bytes_to_read, buffered->readbuf_pos, buffered->readbuf_len, buffered->position); + + if (bytes_read == 0) + break; + } + + if ((buffered->readbuf_len - buffered->readbuf_pos) > 0) { + bytes_to_copy = buffered->readbuf_len - buffered->readbuf_pos; + if (bytes_to_copy > bytes_left_to_read) + bytes_to_copy = bytes_left_to_read; + + memcpy((char *)buf + buf_len, buffered->readbuf + buffered->readbuf_pos, bytes_to_copy); + + buf_len += bytes_to_copy; + bytes_left_to_read -= bytes_to_copy; + + buffered->readbuf_hits += 1; + buffered->readbuf_pos += bytes_to_copy; + + mz_stream_buffered_print("Buffered - Emptied (copied %" PRId32 " remaining %" PRId32 " buf %" PRId32 ":%" PRId32 " pos %" PRId64 ")\n", + bytes_to_copy, bytes_left_to_read, buffered->readbuf_pos, buffered->readbuf_len, buffered->position); + } + } + + return size - bytes_left_to_read; +} + +int32_t mz_stream_buffered_write(void *stream, const void *buf, int32_t size) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int32_t bytes_to_write = size; + int32_t bytes_left_to_write = size; + int32_t bytes_to_copy = 0; + int32_t bytes_used = 0; + int32_t bytes_flushed = 0; + int32_t err = MZ_OK; + + + mz_stream_buffered_print("Buffered - Write (size %" PRId32 " len %" PRId32 " pos %" PRId64 ")\n", + size, buffered->writebuf_len, buffered->position); + + if (buffered->readbuf_len > 0) { + buffered->position -= buffered->readbuf_len; + buffered->position += buffered->readbuf_pos; + + buffered->readbuf_len = 0; + buffered->readbuf_pos = 0; + + mz_stream_buffered_print("Buffered - Switch from read to write (pos %" PRId64 ")\n", buffered->position); + + err = mz_stream_seek(buffered->stream.base, buffered->position, MZ_SEEK_SET); + if (err != MZ_OK) + return err; + } + + while (bytes_left_to_write > 0) { + bytes_used = buffered->writebuf_len; + if (bytes_used > buffered->writebuf_pos) + bytes_used = buffered->writebuf_pos; + bytes_to_copy = (int32_t)sizeof(buffered->writebuf) - bytes_used; + if (bytes_to_copy > bytes_left_to_write) + bytes_to_copy = bytes_left_to_write; + + if (bytes_to_copy == 0) { + err = mz_stream_buffered_flush(stream, &bytes_flushed); + if (err != MZ_OK) + return err; + if (bytes_flushed == 0) + return 0; + + continue; + } + + memcpy(buffered->writebuf + buffered->writebuf_pos, + (const char *)buf + (bytes_to_write - bytes_left_to_write), bytes_to_copy); + + mz_stream_buffered_print("Buffered - Write copy (remaining %" PRId32 " write %" PRId32 ":%" PRId32 " len %" PRId32 ")\n", + bytes_to_copy, bytes_to_write, bytes_left_to_write, buffered->writebuf_len); + + bytes_left_to_write -= bytes_to_copy; + + buffered->writebuf_pos += bytes_to_copy; + buffered->writebuf_hits += 1; + if (buffered->writebuf_pos > buffered->writebuf_len) + buffered->writebuf_len += buffered->writebuf_pos - buffered->writebuf_len; + } + + return size - bytes_left_to_write; +} + +int64_t mz_stream_buffered_tell(void *stream) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int64_t position = mz_stream_tell(buffered->stream.base); + + buffered->position = position; + + mz_stream_buffered_print("Buffered - Tell (pos %" PRId64 " readpos %" PRId32 " writepos %" PRId32 ")\n", + buffered->position, buffered->readbuf_pos, buffered->writebuf_pos); + + if (buffered->readbuf_len > 0) + position -= ((int64_t)buffered->readbuf_len - buffered->readbuf_pos); + if (buffered->writebuf_len > 0) + position += buffered->writebuf_pos; + return position; +} + +int32_t mz_stream_buffered_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int32_t bytes_flushed = 0; + int32_t err = MZ_OK; + + mz_stream_buffered_print("Buffered - Seek (origin %" PRId32 " offset %" PRId64 " pos %" PRId64 ")\n", + origin, offset, buffered->position); + + switch (origin) { + case MZ_SEEK_SET: + + if ((buffered->readbuf_len > 0) && (offset < buffered->position) && + (offset >= buffered->position - buffered->readbuf_len)) { + buffered->readbuf_pos = (int32_t)(offset - (buffered->position - buffered->readbuf_len)); + return MZ_OK; + } + if (buffered->writebuf_len > 0) { + if ((offset >= buffered->position) && (offset <= buffered->position + buffered->writebuf_len)) { + buffered->writebuf_pos = (int32_t)(offset - buffered->position); + return MZ_OK; + } + } + + err = mz_stream_buffered_flush(stream, &bytes_flushed); + if (err != MZ_OK) + return err; + + buffered->position = offset; + break; + + case MZ_SEEK_CUR: + + if (buffered->readbuf_len > 0) { + if (offset <= ((int64_t)buffered->readbuf_len - buffered->readbuf_pos)) { + buffered->readbuf_pos += (uint32_t)offset; + return MZ_OK; + } + offset -= ((int64_t)buffered->readbuf_len - buffered->readbuf_pos); + buffered->position += offset; + } + if (buffered->writebuf_len > 0) { + if (offset <= ((int64_t)buffered->writebuf_len - buffered->writebuf_pos)) { + buffered->writebuf_pos += (uint32_t)offset; + return MZ_OK; + } + /* offset -= (buffered->writebuf_len - buffered->writebuf_pos); */ + } + + err = mz_stream_buffered_flush(stream, &bytes_flushed); + if (err != MZ_OK) + return err; + + break; + + case MZ_SEEK_END: + + if (buffered->writebuf_len > 0) { + buffered->writebuf_pos = buffered->writebuf_len; + return MZ_OK; + } + break; + } + + buffered->readbuf_len = 0; + buffered->readbuf_pos = 0; + buffered->writebuf_len = 0; + buffered->writebuf_pos = 0; + + return mz_stream_seek(buffered->stream.base, offset, origin); +} + +int32_t mz_stream_buffered_close(void *stream) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + int32_t bytes_flushed = 0; + + mz_stream_buffered_flush(stream, &bytes_flushed); + mz_stream_buffered_print("Buffered - Close (flushed %" PRId32 ")\n", bytes_flushed); + + if (buffered->readbuf_hits + buffered->readbuf_misses > 0) { + mz_stream_buffered_print("Buffered - Read efficiency %.02f%%\n", + (buffered->readbuf_hits / ((float)buffered->readbuf_hits + buffered->readbuf_misses)) * 100); + } + + if (buffered->writebuf_hits + buffered->writebuf_misses > 0) { + mz_stream_buffered_print("Buffered - Write efficiency %.02f%%\n", + (buffered->writebuf_hits / ((float)buffered->writebuf_hits + buffered->writebuf_misses)) * 100); + } + + mz_stream_buffered_reset(buffered); + + return mz_stream_close(buffered->stream.base); +} + +int32_t mz_stream_buffered_error(void *stream) { + mz_stream_buffered *buffered = (mz_stream_buffered *)stream; + return mz_stream_error(buffered->stream.base); +} + +void *mz_stream_buffered_create(void **stream) { + mz_stream_buffered *buffered = NULL; + + buffered = (mz_stream_buffered *)MZ_ALLOC(sizeof(mz_stream_buffered)); + if (buffered != NULL) { + memset(buffered, 0, sizeof(mz_stream_buffered)); + buffered->stream.vtbl = &mz_stream_buffered_vtbl; + } + if (stream != NULL) + *stream = buffered; + + return buffered; +} + +void mz_stream_buffered_delete(void **stream) { + mz_stream_buffered *buffered = NULL; + if (stream == NULL) + return; + buffered = (mz_stream_buffered *)*stream; + if (buffered != NULL) + MZ_FREE(buffered); + *stream = NULL; +} + +void *mz_stream_buffered_get_interface(void) { + return (void *)&mz_stream_buffered_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.h new file mode 100644 index 0000000..b71e6e4 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_buf.h @@ -0,0 +1,42 @@ +/* mz_strm_buf.h -- Stream for buffering reads/writes + part of the minizip-ng project + + This version of ioapi is designed to buffer IO. + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_BUFFERED_H +#define MZ_STREAM_BUFFERED_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_buffered_open(void *stream, const char *path, int32_t mode); +int32_t mz_stream_buffered_is_open(void *stream); +int32_t mz_stream_buffered_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_buffered_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_buffered_tell(void *stream); +int32_t mz_stream_buffered_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_buffered_close(void *stream); +int32_t mz_stream_buffered_error(void *stream); + +void* mz_stream_buffered_create(void **stream); +void mz_stream_buffered_delete(void **stream); + +void* mz_stream_buffered_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.c new file mode 100644 index 0000000..f4a882d --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.c @@ -0,0 +1,272 @@ +/* mz_strm_mem.c -- Stream for memory access + part of the minizip-ng project + + This interface is designed to access memory rather than files. + We do use a region of memory to put data in to and take it out of. + + Based on Unzip ioapi.c version 0.22, May 19th, 2003 + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 2003 Justin Fletcher + Copyright (C) 1998-2003 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_strm.h" +#include "mz_strm_mem.h" + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_mem_vtbl = { + mz_stream_mem_open, + mz_stream_mem_is_open, + mz_stream_mem_read, + mz_stream_mem_write, + mz_stream_mem_tell, + mz_stream_mem_seek, + mz_stream_mem_close, + mz_stream_mem_error, + mz_stream_mem_create, + mz_stream_mem_delete, + NULL, + NULL +}; + +/***************************************************************************/ + +typedef struct mz_stream_mem_s { + mz_stream stream; + int32_t mode; + uint8_t *buffer; /* Memory buffer pointer */ + int32_t size; /* Size of the memory buffer */ + int32_t limit; /* Furthest we've written */ + int32_t position; /* Current position in the memory */ + int32_t grow_size; /* Size to grow when full */ +} mz_stream_mem; + +/***************************************************************************/ + +static int32_t mz_stream_mem_set_size(void *stream, int32_t size) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + int32_t new_size = size; + uint8_t *new_buf = NULL; + + + new_buf = (uint8_t *)MZ_ALLOC((uint32_t)new_size); + if (new_buf == NULL) + return MZ_BUF_ERROR; + + if (mem->buffer) { + memcpy(new_buf, mem->buffer, mem->size); + MZ_FREE(mem->buffer); + } + + mem->buffer = new_buf; + mem->size = new_size; + return MZ_OK; +} + +int32_t mz_stream_mem_open(void *stream, const char *path, int32_t mode) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + int32_t err = MZ_OK; + + MZ_UNUSED(path); + + mem->mode = mode; + mem->limit = 0; + mem->position = 0; + + if (mem->mode & MZ_OPEN_MODE_CREATE) + err = mz_stream_mem_set_size(stream, mem->grow_size); + else + mem->limit = mem->size; + + return err; +} + +int32_t mz_stream_mem_is_open(void *stream) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + if (mem->buffer == NULL) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +int32_t mz_stream_mem_read(void *stream, void *buf, int32_t size) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + + if (size > mem->size - mem->position) + size = mem->size - mem->position; + if (mem->position + size > mem->limit) + size = mem->limit - mem->position; + + if (size <= 0) + return 0; + + memcpy(buf, mem->buffer + mem->position, size); + mem->position += size; + + return size; +} + +int32_t mz_stream_mem_write(void *stream, const void *buf, int32_t size) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + int32_t new_size = 0; + int32_t err = MZ_OK; + + if (size == 0) + return size; + + if (size > mem->size - mem->position) { + if (mem->mode & MZ_OPEN_MODE_CREATE) { + new_size = mem->size; + if (size < mem->grow_size) + new_size += mem->grow_size; + else + new_size += size; + + err = mz_stream_mem_set_size(stream, new_size); + if (err != MZ_OK) + return err; + } else { + size = mem->size - mem->position; + } + } + + memcpy(mem->buffer + mem->position, buf, size); + + mem->position += size; + if (mem->position > mem->limit) + mem->limit = mem->position; + + return size; +} + +int64_t mz_stream_mem_tell(void *stream) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + return mem->position; +} + +int32_t mz_stream_mem_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + int64_t new_pos = 0; + int32_t err = MZ_OK; + + switch (origin) { + case MZ_SEEK_CUR: + new_pos = mem->position + offset; + break; + case MZ_SEEK_END: + new_pos = mem->limit + offset; + break; + case MZ_SEEK_SET: + new_pos = offset; + break; + default: + return MZ_SEEK_ERROR; + } + + if (new_pos > mem->size) { + if ((mem->mode & MZ_OPEN_MODE_CREATE) == 0) + return MZ_SEEK_ERROR; + + err = mz_stream_mem_set_size(stream, (int32_t)new_pos); + if (err != MZ_OK) + return err; + } else if (new_pos < 0) { + return MZ_SEEK_ERROR; + } + + mem->position = (int32_t)new_pos; + return MZ_OK; +} + +int32_t mz_stream_mem_close(void *stream) { + MZ_UNUSED(stream); + + /* We never return errors */ + return MZ_OK; +} + +int32_t mz_stream_mem_error(void *stream) { + MZ_UNUSED(stream); + + /* We never return errors */ + return MZ_OK; +} + +void mz_stream_mem_set_buffer(void *stream, void *buf, int32_t size) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + mem->buffer = (uint8_t *)buf; + mem->size = size; + mem->limit = size; +} + +int32_t mz_stream_mem_get_buffer(void *stream, const void **buf) { + return mz_stream_mem_get_buffer_at(stream, 0, buf); +} + +int32_t mz_stream_mem_get_buffer_at(void *stream, int64_t position, const void **buf) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + if (buf == NULL || position < 0 || mem->size < position || mem->buffer == NULL) + return MZ_SEEK_ERROR; + *buf = mem->buffer + position; + return MZ_OK; +} + +int32_t mz_stream_mem_get_buffer_at_current(void *stream, const void **buf) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + return mz_stream_mem_get_buffer_at(stream, mem->position, buf); +} + +void mz_stream_mem_get_buffer_length(void *stream, int32_t *length) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + *length = mem->limit; +} + +void mz_stream_mem_set_buffer_limit(void *stream, int32_t limit) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + mem->limit = limit; +} + +void mz_stream_mem_set_grow_size(void *stream, int32_t grow_size) { + mz_stream_mem *mem = (mz_stream_mem *)stream; + mem->grow_size = grow_size; +} + +void *mz_stream_mem_create(void **stream) { + mz_stream_mem *mem = NULL; + + mem = (mz_stream_mem *)MZ_ALLOC(sizeof(mz_stream_mem)); + if (mem != NULL) { + memset(mem, 0, sizeof(mz_stream_mem)); + mem->stream.vtbl = &mz_stream_mem_vtbl; + mem->grow_size = 4096; + } + if (stream != NULL) + *stream = mem; + + return mem; +} + +void mz_stream_mem_delete(void **stream) { + mz_stream_mem *mem = NULL; + if (stream == NULL) + return; + mem = (mz_stream_mem *)*stream; + if (mem != NULL) { + if ((mem->mode & MZ_OPEN_MODE_CREATE) && (mem->buffer != NULL)) + MZ_FREE(mem->buffer); + MZ_FREE(mem); + } + *stream = NULL; +} + +void *mz_stream_mem_get_interface(void) { + return (void *)&mz_stream_mem_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.h new file mode 100644 index 0000000..5bfa13d --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_mem.h @@ -0,0 +1,48 @@ +/* mz_strm_mem.h -- Stream for memory access + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_MEM_H +#define MZ_STREAM_MEM_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_mem_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_mem_is_open(void *stream); +int32_t mz_stream_mem_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_mem_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_mem_tell(void *stream); +int32_t mz_stream_mem_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_mem_close(void *stream); +int32_t mz_stream_mem_error(void *stream); + +void mz_stream_mem_set_buffer(void *stream, void *buf, int32_t size); +int32_t mz_stream_mem_get_buffer(void *stream, const void **buf); +int32_t mz_stream_mem_get_buffer_at(void *stream, int64_t position, const void **buf); +int32_t mz_stream_mem_get_buffer_at_current(void *stream, const void **buf); +void mz_stream_mem_get_buffer_length(void *stream, int32_t *length); +void mz_stream_mem_set_buffer_limit(void *stream, int32_t limit); +void mz_stream_mem_set_grow_size(void *stream, int32_t grow_size); + +void* mz_stream_mem_create(void **stream); +void mz_stream_mem_delete(void **stream); + +void* mz_stream_mem_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os.h new file mode 100644 index 0000000..614e255 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os.h @@ -0,0 +1,40 @@ +/* mz_sstrm_os.h -- Stream for filesystem access + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_OS_H +#define MZ_STREAM_OS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_os_open(void *stream, const char *path, int32_t mode); +int32_t mz_stream_os_is_open(void *stream); +int32_t mz_stream_os_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_os_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_os_tell(void *stream); +int32_t mz_stream_os_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_os_close(void *stream); +int32_t mz_stream_os_error(void *stream); + +void* mz_stream_os_create(void **stream); +void mz_stream_os_delete(void **stream); + +void* mz_stream_os_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os_posix.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os_posix.c new file mode 100644 index 0000000..f0b5bd3 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_os_posix.c @@ -0,0 +1,206 @@ +/* mz_strm_posix.c -- Stream for filesystem access for posix/linux + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Modifications for Zip64 support + Copyright (C) 2009-2010 Mathias Svensson + http://result42.com + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_strm.h" +#include "mz_strm_os.h" + +#include /* fopen, fread.. */ +#include + +/***************************************************************************/ + +#define fopen64 fopen +#ifndef MZ_FILE32_API +# ifndef NO_FSEEKO +# define ftello64 ftello +# define fseeko64 fseeko +# elif defined(_MSC_VER) && (_MSC_VER >= 1400) +# define ftello64 _ftelli64 +# define fseeko64 _fseeki64 +# endif +#endif +#ifndef ftello64 +# define ftello64 ftell +#endif +#ifndef fseeko64 +# define fseeko64 fseek +#endif + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_os_vtbl = { + mz_stream_os_open, + mz_stream_os_is_open, + mz_stream_os_read, + mz_stream_os_write, + mz_stream_os_tell, + mz_stream_os_seek, + mz_stream_os_close, + mz_stream_os_error, + mz_stream_os_create, + mz_stream_os_delete, + NULL, + NULL +}; + +/***************************************************************************/ + +typedef struct mz_stream_posix_s { + mz_stream stream; + int32_t error; + FILE *handle; +} mz_stream_posix; + +/***************************************************************************/ + +int32_t mz_stream_os_open(void *stream, const char *path, int32_t mode) { + mz_stream_posix *posix = (mz_stream_posix *)stream; + const char *mode_fopen = NULL; + + if (path == NULL) + return MZ_PARAM_ERROR; + + if ((mode & MZ_OPEN_MODE_READWRITE) == MZ_OPEN_MODE_READ) + mode_fopen = "rb"; + else if (mode & MZ_OPEN_MODE_APPEND) + mode_fopen = "r+b"; + else if (mode & MZ_OPEN_MODE_CREATE) + mode_fopen = "wb"; + else + return MZ_OPEN_ERROR; + + posix->handle = fopen64(path, mode_fopen); + if (posix->handle == NULL) { + posix->error = errno; + return MZ_OPEN_ERROR; + } + + if (mode & MZ_OPEN_MODE_APPEND) + return mz_stream_os_seek(stream, 0, MZ_SEEK_END); + + return MZ_OK; +} + +int32_t mz_stream_os_is_open(void *stream) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + if (posix->handle == NULL) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +int32_t mz_stream_os_read(void *stream, void *buf, int32_t size) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + int32_t read = (int32_t)fread(buf, 1, (size_t)size, posix->handle); + if (read < size && ferror(posix->handle)) { + posix->error = errno; + return MZ_READ_ERROR; + } + return read; +} + +int32_t mz_stream_os_write(void *stream, const void *buf, int32_t size) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + int32_t written = (int32_t)fwrite(buf, 1, (size_t)size, posix->handle); + if (written < size && ferror(posix->handle)) { + posix->error = errno; + return MZ_WRITE_ERROR; + } + return written; +} + +int64_t mz_stream_os_tell(void *stream) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + int64_t position = ftello64(posix->handle); + if (position == -1) { + posix->error = errno; + return MZ_TELL_ERROR; + } + return position; +} + +int32_t mz_stream_os_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + int32_t fseek_origin = 0; + + switch (origin) { + case MZ_SEEK_CUR: + fseek_origin = SEEK_CUR; + break; + case MZ_SEEK_END: + fseek_origin = SEEK_END; + break; + case MZ_SEEK_SET: + fseek_origin = SEEK_SET; + break; + default: + return MZ_SEEK_ERROR; + } + + if (fseeko64(posix->handle, offset, fseek_origin) != 0) { + posix->error = errno; + return MZ_SEEK_ERROR; + } + + return MZ_OK; +} + +int32_t mz_stream_os_close(void *stream) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + int32_t closed = 0; + if (posix->handle != NULL) { + closed = fclose(posix->handle); + posix->handle = NULL; + } + if (closed != 0) { + posix->error = errno; + return MZ_CLOSE_ERROR; + } + return MZ_OK; +} + +int32_t mz_stream_os_error(void *stream) { + mz_stream_posix *posix = (mz_stream_posix*)stream; + return posix->error; +} + +void *mz_stream_os_create(void **stream) { + mz_stream_posix *posix = NULL; + + posix = (mz_stream_posix *)MZ_ALLOC(sizeof(mz_stream_posix)); + if (posix != NULL) { + memset(posix, 0, sizeof(mz_stream_posix)); + posix->stream.vtbl = &mz_stream_os_vtbl; + } + if (stream != NULL) + *stream = posix; + + return posix; +} + +void mz_stream_os_delete(void **stream) { + mz_stream_posix *posix = NULL; + if (stream == NULL) + return; + posix = (mz_stream_posix *)*stream; + if (posix != NULL) + MZ_FREE(posix); + *stream = NULL; +} + +void *mz_stream_os_get_interface(void) { + return (void *)&mz_stream_os_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.c new file mode 100644 index 0000000..41c762f --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.c @@ -0,0 +1,338 @@ +/* mz_strm_pkcrypt.c -- Code for traditional PKWARE encryption + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 1998-2005 Gilles Vollant + Modifications for Info-ZIP crypting + https://www.winimage.com/zLibDll/minizip.html + Copyright (C) 2003 Terry Thorsen + + This code is a modified version of crypting code in Info-ZIP distribution + + Copyright (C) 1990-2000 Info-ZIP. All rights reserved. + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. + + This encryption code is a direct transcription of the algorithm from + Roger Schlafly, described by Phil Katz in the file appnote.txt. This + file (appnote.txt) is distributed with the PKZIP program (even in the + version without encryption capabilities). +*/ + + +#include "mz.h" +#include "mz_crypt.h" +#include "mz_strm.h" +#include "mz_strm_pkcrypt.h" + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_pkcrypt_vtbl = { + mz_stream_pkcrypt_open, + mz_stream_pkcrypt_is_open, + mz_stream_pkcrypt_read, + mz_stream_pkcrypt_write, + mz_stream_pkcrypt_tell, + mz_stream_pkcrypt_seek, + mz_stream_pkcrypt_close, + mz_stream_pkcrypt_error, + mz_stream_pkcrypt_create, + mz_stream_pkcrypt_delete, + mz_stream_pkcrypt_get_prop_int64, + mz_stream_pkcrypt_set_prop_int64 +}; + +/***************************************************************************/ + +typedef struct mz_stream_pkcrypt_s { + mz_stream stream; + int32_t error; + int16_t initialized; + uint8_t buffer[UINT16_MAX]; + int64_t total_in; + int64_t max_total_in; + int64_t total_out; + uint32_t keys[3]; /* keys defining the pseudo-random sequence */ + uint8_t verify1; + uint8_t verify2; + const char *password; +} mz_stream_pkcrypt; + +/***************************************************************************/ + +#define mz_stream_pkcrypt_decode(strm, c) \ + (mz_stream_pkcrypt_update_keys(strm, \ + c ^= mz_stream_pkcrypt_decrypt_byte(strm))) + +#define mz_stream_pkcrypt_encode(strm, c, t) \ + (t = mz_stream_pkcrypt_decrypt_byte(strm), \ + mz_stream_pkcrypt_update_keys(strm, (uint8_t)c), (uint8_t)(t^(c))) + +/***************************************************************************/ + +static uint8_t mz_stream_pkcrypt_decrypt_byte(void *stream) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + + unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an */ + /* unpredictable manner on 16-bit systems; not a problem */ + /* with any known compiler so far, though. */ + + temp = pkcrypt->keys[2] | 2; + return (uint8_t)(((temp * (temp ^ 1)) >> 8) & 0xff); +} + +static uint8_t mz_stream_pkcrypt_update_keys(void *stream, uint8_t c) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + uint8_t buf = c; + + pkcrypt->keys[0] = (uint32_t)~mz_crypt_crc32_update(~pkcrypt->keys[0], &buf, 1); + + pkcrypt->keys[1] += pkcrypt->keys[0] & 0xff; + pkcrypt->keys[1] *= 134775813L; + pkcrypt->keys[1] += 1; + + buf = (uint8_t)(pkcrypt->keys[1] >> 24); + pkcrypt->keys[2] = (uint32_t)~mz_crypt_crc32_update(~pkcrypt->keys[2], &buf, 1); + + return (uint8_t)c; +} + +static void mz_stream_pkcrypt_init_keys(void *stream, const char *password) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + + pkcrypt->keys[0] = 305419896L; + pkcrypt->keys[1] = 591751049L; + pkcrypt->keys[2] = 878082192L; + + while (*password != 0) { + mz_stream_pkcrypt_update_keys(stream, (uint8_t)*password); + password += 1; + } +} + +/***************************************************************************/ + +int32_t mz_stream_pkcrypt_open(void *stream, const char *path, int32_t mode) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + uint16_t t = 0; + int16_t i = 0; + uint8_t verify1 = 0; + uint8_t verify2 = 0; + uint8_t header[MZ_PKCRYPT_HEADER_SIZE]; + const char *password = path; + + pkcrypt->total_in = 0; + pkcrypt->total_out = 0; + pkcrypt->initialized = 0; + + if (mz_stream_is_open(pkcrypt->stream.base) != MZ_OK) + return MZ_OPEN_ERROR; + + if (password == NULL) + password = pkcrypt->password; + if (password == NULL) + return MZ_PARAM_ERROR; + + mz_stream_pkcrypt_init_keys(stream, password); + + if (mode & MZ_OPEN_MODE_WRITE) { + /* First generate RAND_HEAD_LEN - 2 random bytes. */ + mz_crypt_rand(header, MZ_PKCRYPT_HEADER_SIZE - 2); + + /* Encrypt random header (last two bytes is high word of crc) */ + for (i = 0; i < MZ_PKCRYPT_HEADER_SIZE - 2; i++) + header[i] = mz_stream_pkcrypt_encode(stream, header[i], t); + + header[i++] = mz_stream_pkcrypt_encode(stream, pkcrypt->verify1, t); + header[i++] = mz_stream_pkcrypt_encode(stream, pkcrypt->verify2, t); + + if (mz_stream_write(pkcrypt->stream.base, header, sizeof(header)) != sizeof(header)) + return MZ_WRITE_ERROR; + + pkcrypt->total_out += MZ_PKCRYPT_HEADER_SIZE; + } else if (mode & MZ_OPEN_MODE_READ) { + if (mz_stream_read(pkcrypt->stream.base, header, sizeof(header)) != sizeof(header)) + return MZ_READ_ERROR; + + for (i = 0; i < MZ_PKCRYPT_HEADER_SIZE - 2; i++) + header[i] = mz_stream_pkcrypt_decode(stream, header[i]); + + verify1 = mz_stream_pkcrypt_decode(stream, header[i++]); + verify2 = mz_stream_pkcrypt_decode(stream, header[i++]); + + /* Older versions used 2 byte check, newer versions use 1 byte check. */ + MZ_UNUSED(verify1); + if ((verify2 != 0) && (verify2 != pkcrypt->verify2)) + return MZ_PASSWORD_ERROR; + + pkcrypt->total_in += MZ_PKCRYPT_HEADER_SIZE; + } + + pkcrypt->initialized = 1; + return MZ_OK; +} + +int32_t mz_stream_pkcrypt_is_open(void *stream) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + if (pkcrypt->initialized == 0) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +int32_t mz_stream_pkcrypt_read(void *stream, void *buf, int32_t size) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + uint8_t *buf_ptr = (uint8_t *)buf; + int32_t bytes_to_read = size; + int32_t read = 0; + int32_t i = 0; + + + if ((int64_t)bytes_to_read > (pkcrypt->max_total_in - pkcrypt->total_in)) + bytes_to_read = (int32_t)(pkcrypt->max_total_in - pkcrypt->total_in); + + read = mz_stream_read(pkcrypt->stream.base, buf, bytes_to_read); + + for (i = 0; i < read; i++) + buf_ptr[i] = mz_stream_pkcrypt_decode(stream, buf_ptr[i]); + + if (read > 0) + pkcrypt->total_in += read; + + return read; +} + +int32_t mz_stream_pkcrypt_write(void *stream, const void *buf, int32_t size) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + const uint8_t *buf_ptr = (const uint8_t *)buf; + int32_t bytes_to_write = sizeof(pkcrypt->buffer); + int32_t total_written = 0; + int32_t written = 0; + int32_t i = 0; + uint16_t t = 0; + + if (size < 0) + return MZ_PARAM_ERROR; + + do { + if (bytes_to_write > (size - total_written)) + bytes_to_write = (size - total_written); + + for (i = 0; i < bytes_to_write; i += 1) { + pkcrypt->buffer[i] = mz_stream_pkcrypt_encode(stream, *buf_ptr, t); + buf_ptr += 1; + } + + written = mz_stream_write(pkcrypt->stream.base, pkcrypt->buffer, bytes_to_write); + if (written < 0) + return written; + + total_written += written; + } while (total_written < size && written > 0); + + pkcrypt->total_out += total_written; + return total_written; +} + +int64_t mz_stream_pkcrypt_tell(void *stream) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + return mz_stream_tell(pkcrypt->stream.base); +} + +int32_t mz_stream_pkcrypt_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + return mz_stream_seek(pkcrypt->stream.base, offset, origin); +} + +int32_t mz_stream_pkcrypt_close(void *stream) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + pkcrypt->initialized = 0; + return MZ_OK; +} + +int32_t mz_stream_pkcrypt_error(void *stream) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + return pkcrypt->error; +} + +void mz_stream_pkcrypt_set_password(void *stream, const char *password) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + pkcrypt->password = password; +} + +void mz_stream_pkcrypt_set_verify(void *stream, uint8_t verify1, uint8_t verify2) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + pkcrypt->verify1 = verify1; + pkcrypt->verify2 = verify2; +} + +void mz_stream_pkcrypt_get_verify(void *stream, uint8_t *verify1, uint8_t *verify2) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + *verify1 = pkcrypt->verify1; + *verify2 = pkcrypt->verify2; +} + +int32_t mz_stream_pkcrypt_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN: + *value = pkcrypt->total_in; + break; + case MZ_STREAM_PROP_TOTAL_OUT: + *value = pkcrypt->total_out; + break; + case MZ_STREAM_PROP_TOTAL_IN_MAX: + *value = pkcrypt->max_total_in; + break; + case MZ_STREAM_PROP_HEADER_SIZE: + *value = MZ_PKCRYPT_HEADER_SIZE; + break; + case MZ_STREAM_PROP_FOOTER_SIZE: + *value = 0; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +int32_t mz_stream_pkcrypt_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream_pkcrypt *pkcrypt = (mz_stream_pkcrypt *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN_MAX: + pkcrypt->max_total_in = value; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +void *mz_stream_pkcrypt_create(void **stream) { + mz_stream_pkcrypt *pkcrypt = NULL; + + pkcrypt = (mz_stream_pkcrypt *)MZ_ALLOC(sizeof(mz_stream_pkcrypt)); + if (pkcrypt != NULL) { + memset(pkcrypt, 0, sizeof(mz_stream_pkcrypt)); + pkcrypt->stream.vtbl = &mz_stream_pkcrypt_vtbl; + } + + if (stream != NULL) + *stream = pkcrypt; + return pkcrypt; +} + +void mz_stream_pkcrypt_delete(void **stream) { + mz_stream_pkcrypt *pkcrypt = NULL; + if (stream == NULL) + return; + pkcrypt = (mz_stream_pkcrypt *)*stream; + if (pkcrypt != NULL) + MZ_FREE(pkcrypt); + *stream = NULL; +} + +void *mz_stream_pkcrypt_get_interface(void) { + return (void *)&mz_stream_pkcrypt_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.h new file mode 100644 index 0000000..453f1f9 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_pkcrypt.h @@ -0,0 +1,46 @@ +/* mz_strm_pkcrypt.h -- Code for traditional PKWARE encryption + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_PKCRYPT_H +#define MZ_STREAM_PKCRYPT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_pkcrypt_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_pkcrypt_is_open(void *stream); +int32_t mz_stream_pkcrypt_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_pkcrypt_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_pkcrypt_tell(void *stream); +int32_t mz_stream_pkcrypt_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_pkcrypt_close(void *stream); +int32_t mz_stream_pkcrypt_error(void *stream); + +void mz_stream_pkcrypt_set_password(void *stream, const char *password); +void mz_stream_pkcrypt_set_verify(void *stream, uint8_t verify1, uint8_t verify2); +void mz_stream_pkcrypt_get_verify(void *stream, uint8_t *verify1, uint8_t *verify2); +int32_t mz_stream_pkcrypt_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_pkcrypt_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_pkcrypt_create(void **stream); +void mz_stream_pkcrypt_delete(void **stream); + +void* mz_stream_pkcrypt_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.c new file mode 100644 index 0000000..12c8bda --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.c @@ -0,0 +1,438 @@ +/* mz_strm_split.c -- Stream for split files + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_os.h" +#include "mz_strm.h" +#include "mz_strm_split.h" + +#include /* snprintf */ + +#if defined(_MSC_VER) && (_MSC_VER < 1900) +# define snprintf _snprintf +#endif + +/***************************************************************************/ + +#define MZ_ZIP_MAGIC_DISKHEADER (0x08074b50) + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_split_vtbl = { + mz_stream_split_open, + mz_stream_split_is_open, + mz_stream_split_read, + mz_stream_split_write, + mz_stream_split_tell, + mz_stream_split_seek, + mz_stream_split_close, + mz_stream_split_error, + mz_stream_split_create, + mz_stream_split_delete, + mz_stream_split_get_prop_int64, + mz_stream_split_set_prop_int64 +}; + +/***************************************************************************/ + +typedef struct mz_stream_split_s { + mz_stream stream; + int32_t is_open; + int64_t disk_size; + int64_t total_in; + int64_t total_in_disk; + int64_t total_out; + int64_t total_out_disk; + int32_t mode; + char *path_cd; + uint32_t path_cd_size; + char *path_disk; + uint32_t path_disk_size; + int32_t number_disk; + int32_t current_disk; + int64_t current_disk_size; + int32_t reached_end; +} mz_stream_split; + +/***************************************************************************/ + +#if 0 +# define mz_stream_split_print printf +#else +# define mz_stream_split_print(fmt,...) +#endif + +/***************************************************************************/ + +static int32_t mz_stream_split_open_disk(void *stream, int32_t number_disk) { + mz_stream_split *split = (mz_stream_split *)stream; + uint32_t magic = 0; + int64_t position = 0; + int32_t i = 0; + int32_t err = MZ_OK; + int16_t disk_part = 0; + + + /* Check if we are reading or writing a disk part or the cd disk */ + if (number_disk >= 0) { + if ((split->mode & MZ_OPEN_MODE_WRITE) == 0) + disk_part = MZ_OPEN_MODE_READ; + else if (split->disk_size > 0) + disk_part = MZ_OPEN_MODE_WRITE; + } + + /* Construct disk path */ + if (disk_part > 0) { + for (i = (int32_t)strlen(split->path_disk) - 1; i >= 0; i -= 1) { + if (split->path_disk[i] != '.') + continue; + snprintf(&split->path_disk[i], split->path_disk_size - (uint32_t)i, + ".z%02" PRId32, number_disk + 1); + break; + } + } else { + strncpy(split->path_disk, split->path_cd, split->path_disk_size - 1); + split->path_disk[split->path_disk_size - 1] = 0; + } + + mz_stream_split_print("Split - Goto disk - %s (disk %" PRId32 ")\n", split->path_disk, number_disk); + + /* If disk part doesn't exist during reading then return MZ_EXIST_ERROR */ + if (disk_part == MZ_OPEN_MODE_READ) + err = mz_os_file_exists(split->path_disk); + + if (err == MZ_OK) + err = mz_stream_open(split->stream.base, split->path_disk, split->mode); + + if (err == MZ_OK) { + split->total_in_disk = 0; + split->total_out_disk = 0; + split->current_disk = number_disk; + + if (split->mode & MZ_OPEN_MODE_WRITE) { + if ((split->current_disk == 0) && (split->disk_size > 0)) { + err = mz_stream_write_uint32(split->stream.base, MZ_ZIP_MAGIC_DISKHEADER); + + split->total_out_disk += 4; + split->total_out += split->total_out_disk; + } + } else if (split->mode & MZ_OPEN_MODE_READ) { + if (split->current_disk == 0) { + err = mz_stream_read_uint32(split->stream.base, &magic); + if (magic != MZ_ZIP_MAGIC_DISKHEADER) + err = MZ_FORMAT_ERROR; + } + } + } + + if (err == MZ_OK) { + /* Get the size of the current disk we are on */ + position = mz_stream_tell(split->stream.base); + mz_stream_seek(split->stream.base, 0, MZ_SEEK_END); + split->current_disk_size = mz_stream_tell(split->stream.base); + mz_stream_seek(split->stream.base, position, MZ_SEEK_SET); + + split->is_open = 1; + } + + return err; +} + +static int32_t mz_stream_split_close_disk(void *stream) { + mz_stream_split *split = (mz_stream_split *)stream; + + if (mz_stream_is_open(split->stream.base) != MZ_OK) + return MZ_OK; + + mz_stream_split_print("Split - Close disk\n"); + return mz_stream_close(split->stream.base); +} + +static int32_t mz_stream_split_goto_disk(void *stream, int32_t number_disk) { + mz_stream_split *split = (mz_stream_split *)stream; + int32_t err = MZ_OK; + int32_t err_is_open = MZ_OK; + + err_is_open = mz_stream_is_open(split->stream.base); + + if ((split->disk_size == 0) && (split->mode & MZ_OPEN_MODE_WRITE)) { + if (err_is_open != MZ_OK) + err = mz_stream_split_open_disk(stream, number_disk); + } else if ((number_disk != split->current_disk) || (err_is_open != MZ_OK)) { + err = mz_stream_split_close_disk(stream); + if (err == MZ_OK) { + err = mz_stream_split_open_disk(stream, number_disk); + if (err == MZ_OK) + split->number_disk = number_disk; + } + } + + return err; +} + +int32_t mz_stream_split_open(void *stream, const char *path, int32_t mode) { + mz_stream_split *split = (mz_stream_split *)stream; + int32_t number_disk = 0; + + split->mode = mode; + + split->path_cd_size = (uint32_t)strlen(path) + 1; + split->path_cd = (char *)MZ_ALLOC(split->path_cd_size); + + if (split->path_cd == NULL) + return MZ_MEM_ERROR; + + strncpy(split->path_cd, path, split->path_cd_size - 1); + split->path_cd[split->path_cd_size - 1] = 0; + + mz_stream_split_print("Split - Open - %s (disk %" PRId32 ")\n", split->path_cd, number_disk); + + split->path_disk_size = (uint32_t)strlen(path) + 10; + split->path_disk = (char *)MZ_ALLOC(split->path_disk_size); + + if (split->path_disk == NULL) { + MZ_FREE(split->path_cd); + return MZ_MEM_ERROR; + } + + strncpy(split->path_disk, path, split->path_disk_size - 1); + split->path_disk[split->path_disk_size - 1] = 0; + + if ((mode & MZ_OPEN_MODE_WRITE) && ((mode & MZ_OPEN_MODE_APPEND) == 0)) { + number_disk = 0; + split->current_disk = -1; + } else { + number_disk = -1; + split->current_disk = 0; + } + + return mz_stream_split_goto_disk(stream, number_disk); +} + +int32_t mz_stream_split_is_open(void *stream) { + mz_stream_split *split = (mz_stream_split *)stream; + if (split->is_open != 1) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +int32_t mz_stream_split_read(void *stream, void *buf, int32_t size) { + mz_stream_split *split = (mz_stream_split *)stream; + int32_t bytes_left = size; + int32_t read = 0; + int32_t err = MZ_OK; + uint8_t *buf_ptr = (uint8_t *)buf; + + err = mz_stream_split_goto_disk(stream, split->number_disk); + if (err != MZ_OK) + return err; + + while (bytes_left > 0) { + read = mz_stream_read(split->stream.base, buf_ptr, bytes_left); + + mz_stream_split_print("Split - Read disk - %" PRId32 "\n", read); + + if (read < 0) + return read; + if (read == 0) { + if (split->current_disk < 0) /* No more disks to goto */ + break; + err = mz_stream_split_goto_disk(stream, split->current_disk + 1); + if (err == MZ_EXIST_ERROR) { + split->current_disk = -1; + break; + } + if (err != MZ_OK) + return err; + } + + bytes_left -= read; + buf_ptr += read; + split->total_in += read; + split->total_in_disk += read; + } + return size - bytes_left; +} + +int32_t mz_stream_split_write(void *stream, const void *buf, int32_t size) { + mz_stream_split *split = (mz_stream_split *)stream; + int64_t position = 0; + int32_t written = 0; + int32_t bytes_left = size; + int32_t bytes_to_write = 0; + int32_t bytes_avail = 0; + int32_t number_disk = -1; + int32_t err = MZ_OK; + const uint8_t *buf_ptr = (const uint8_t *)buf; + + position = mz_stream_tell(split->stream.base); + + while (bytes_left > 0) { + bytes_to_write = bytes_left; + + if (split->disk_size > 0) { + if ((split->total_out_disk == split->disk_size && split->total_out > 0) || + (split->number_disk == -1 && split->number_disk != split->current_disk)) { + if (split->number_disk != -1) + number_disk = split->current_disk + 1; + + err = mz_stream_split_goto_disk(stream, number_disk); + if (err != MZ_OK) + return err; + } + + if (split->number_disk != -1) { + bytes_avail = (int32_t)(split->disk_size - split->total_out_disk); + if (bytes_to_write > bytes_avail) + bytes_to_write = bytes_avail; + } + } + + written = mz_stream_write(split->stream.base, buf_ptr, bytes_to_write); + if (written != bytes_to_write) + return MZ_WRITE_ERROR; + + mz_stream_split_print("Split - Write disk - %" PRId32 "\n", written); + + bytes_left -= written; + buf_ptr += written; + + split->total_out += written; + split->total_out_disk += written; + + if (position == split->current_disk_size) { + split->current_disk_size += written; + position = split->current_disk_size; + } + } + + return size - bytes_left; +} + +int64_t mz_stream_split_tell(void *stream) { + mz_stream_split *split = (mz_stream_split *)stream; + int32_t err = MZ_OK; + err = mz_stream_split_goto_disk(stream, split->number_disk); + if (err != MZ_OK) + return err; + return mz_stream_tell(split->stream.base); +} + +int32_t mz_stream_split_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_split *split = (mz_stream_split *)stream; + int64_t disk_left = 0; + int64_t position = 0; + int32_t err = MZ_OK; + + err = mz_stream_split_goto_disk(stream, split->number_disk); + + if (err != MZ_OK) + return err; + + mz_stream_split_print("Split - Seek disk - %" PRId64 " (origin %" PRId32 ")\n", offset, origin); + + if ((origin == MZ_SEEK_CUR) && (split->number_disk != -1)) { + position = mz_stream_tell(split->stream.base); + disk_left = split->current_disk_size - position; + + while (offset > disk_left) { + err = mz_stream_split_goto_disk(stream, split->current_disk + 1); + if (err != MZ_OK) + return err; + + offset -= disk_left; + disk_left = split->current_disk_size; + } + } + + return mz_stream_seek(split->stream.base, offset, origin); +} + +int32_t mz_stream_split_close(void *stream) { + mz_stream_split *split = (mz_stream_split *)stream; + int32_t err = MZ_OK; + + err = mz_stream_split_close_disk(stream); + split->is_open = 0; + return err; +} + +int32_t mz_stream_split_error(void *stream) { + mz_stream_split *split = (mz_stream_split *)stream; + return mz_stream_error(split->stream.base); +} + +int32_t mz_stream_split_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream_split *split = (mz_stream_split *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_OUT: + *value = split->total_out; + break; + case MZ_STREAM_PROP_DISK_NUMBER: + *value = split->number_disk; + break; + case MZ_STREAM_PROP_DISK_SIZE: + *value = split->disk_size; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +int32_t mz_stream_split_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream_split *split = (mz_stream_split *)stream; + switch (prop) { + case MZ_STREAM_PROP_DISK_NUMBER: + split->number_disk = (int32_t)value; + break; + case MZ_STREAM_PROP_DISK_SIZE: + split->disk_size = value; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +void *mz_stream_split_create(void **stream) { + mz_stream_split *split = NULL; + + split = (mz_stream_split *)MZ_ALLOC(sizeof(mz_stream_split)); + if (split != NULL) { + memset(split, 0, sizeof(mz_stream_split)); + split->stream.vtbl = &mz_stream_split_vtbl; + } + if (stream != NULL) + *stream = split; + + return split; +} + +void mz_stream_split_delete(void **stream) { + mz_stream_split *split = NULL; + if (stream == NULL) + return; + split = (mz_stream_split *)*stream; + if (split != NULL) { + if (split->path_cd) + MZ_FREE(split->path_cd); + if (split->path_disk) + MZ_FREE(split->path_disk); + + MZ_FREE(split); + } + *stream = NULL; +} + +void *mz_stream_split_get_interface(void) { + return (void *)&mz_stream_split_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.h new file mode 100644 index 0000000..da404da --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_split.h @@ -0,0 +1,43 @@ +/* mz_strm_split.h -- Stream for split files + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_SPLIT_H +#define MZ_STREAM_SPLIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_split_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_split_is_open(void *stream); +int32_t mz_stream_split_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_split_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_split_tell(void *stream); +int32_t mz_stream_split_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_split_close(void *stream); +int32_t mz_stream_split_error(void *stream); + +int32_t mz_stream_split_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_split_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_split_create(void **stream); +void mz_stream_split_delete(void **stream); + +void* mz_stream_split_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.c new file mode 100644 index 0000000..fd01199 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.c @@ -0,0 +1,362 @@ +/* mz_strm_wzaes.c -- Stream for WinZip AES encryption + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 1998-2010 Brian Gladman, Worcester, UK + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_crypt.h" +#include "mz_strm.h" +#include "mz_strm_wzaes.h" + +/***************************************************************************/ + +#define MZ_AES_KEYING_ITERATIONS (1000) +#define MZ_AES_SALT_LENGTH(MODE) (4 * (MODE & 3) + 4) +#define MZ_AES_SALT_LENGTH_MAX (16) +#define MZ_AES_PW_LENGTH_MAX (128) +#define MZ_AES_PW_VERIFY_SIZE (2) +#define MZ_AES_AUTHCODE_SIZE (10) + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_wzaes_vtbl = { + mz_stream_wzaes_open, + mz_stream_wzaes_is_open, + mz_stream_wzaes_read, + mz_stream_wzaes_write, + mz_stream_wzaes_tell, + mz_stream_wzaes_seek, + mz_stream_wzaes_close, + mz_stream_wzaes_error, + mz_stream_wzaes_create, + mz_stream_wzaes_delete, + mz_stream_wzaes_get_prop_int64, + mz_stream_wzaes_set_prop_int64 +}; + +/***************************************************************************/ + +typedef struct mz_stream_wzaes_s { + mz_stream stream; + int32_t mode; + int32_t error; + int16_t initialized; + uint8_t buffer[UINT16_MAX]; + int64_t total_in; + int64_t max_total_in; + int64_t total_out; + int16_t encryption_mode; + const char *password; + void *aes; + uint32_t crypt_pos; + uint8_t crypt_block[MZ_AES_BLOCK_SIZE]; + void *hmac; + uint8_t nonce[MZ_AES_BLOCK_SIZE]; +} mz_stream_wzaes; + +/***************************************************************************/ + +int32_t mz_stream_wzaes_open(void *stream, const char *path, int32_t mode) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + uint16_t salt_length = 0; + uint16_t password_length = 0; + uint16_t key_length = 0; + uint8_t kbuf[2 * MZ_AES_KEY_LENGTH_MAX + MZ_AES_PW_VERIFY_SIZE]; + uint8_t verify[MZ_AES_PW_VERIFY_SIZE]; + uint8_t verify_expected[MZ_AES_PW_VERIFY_SIZE]; + uint8_t salt_value[MZ_AES_SALT_LENGTH_MAX]; + const char *password = path; + + wzaes->total_in = 0; + wzaes->total_out = 0; + wzaes->initialized = 0; + + if (mz_stream_is_open(wzaes->stream.base) != MZ_OK) + return MZ_OPEN_ERROR; + + if (password == NULL) + password = wzaes->password; + if (password == NULL) + return MZ_PARAM_ERROR; + password_length = (uint16_t)strlen(password); + if (password_length > MZ_AES_PW_LENGTH_MAX) + return MZ_PARAM_ERROR; + + if (wzaes->encryption_mode < 1 || wzaes->encryption_mode > 3) + return MZ_PARAM_ERROR; + + salt_length = MZ_AES_SALT_LENGTH(wzaes->encryption_mode); + + if (mode & MZ_OPEN_MODE_WRITE) { + mz_crypt_rand(salt_value, salt_length); + } else if (mode & MZ_OPEN_MODE_READ) { + if (mz_stream_read(wzaes->stream.base, salt_value, salt_length) != salt_length) + return MZ_READ_ERROR; + } + + key_length = MZ_AES_KEY_LENGTH(wzaes->encryption_mode); + + /* Derive the encryption and authentication keys and the password verifier */ + mz_crypt_pbkdf2((uint8_t *)password, password_length, salt_value, salt_length, + MZ_AES_KEYING_ITERATIONS, kbuf, 2 * key_length + MZ_AES_PW_VERIFY_SIZE); + + /* Initialize the encryption nonce and buffer pos */ + wzaes->crypt_pos = MZ_AES_BLOCK_SIZE; + memset(wzaes->nonce, 0, sizeof(wzaes->nonce)); + + /* Initialize for encryption using key 1 */ + mz_crypt_aes_reset(wzaes->aes); + mz_crypt_aes_set_mode(wzaes->aes, wzaes->encryption_mode); + mz_crypt_aes_set_encrypt_key(wzaes->aes, kbuf, key_length); + + /* Initialize for authentication using key 2 */ + mz_crypt_hmac_reset(wzaes->hmac); + mz_crypt_hmac_set_algorithm(wzaes->hmac, MZ_HASH_SHA1); + mz_crypt_hmac_init(wzaes->hmac, kbuf + key_length, key_length); + + memcpy(verify, kbuf + (2 * key_length), MZ_AES_PW_VERIFY_SIZE); + + if (mode & MZ_OPEN_MODE_WRITE) { + if (mz_stream_write(wzaes->stream.base, salt_value, salt_length) != salt_length) + return MZ_WRITE_ERROR; + + wzaes->total_out += salt_length; + + if (mz_stream_write(wzaes->stream.base, verify, MZ_AES_PW_VERIFY_SIZE) != MZ_AES_PW_VERIFY_SIZE) + return MZ_WRITE_ERROR; + + wzaes->total_out += MZ_AES_PW_VERIFY_SIZE; + } else if (mode & MZ_OPEN_MODE_READ) { + wzaes->total_in += salt_length; + + if (mz_stream_read(wzaes->stream.base, verify_expected, MZ_AES_PW_VERIFY_SIZE) != MZ_AES_PW_VERIFY_SIZE) + return MZ_READ_ERROR; + + wzaes->total_in += MZ_AES_PW_VERIFY_SIZE; + + if (memcmp(verify_expected, verify, MZ_AES_PW_VERIFY_SIZE) != 0) + return MZ_PASSWORD_ERROR; + } + + wzaes->mode = mode; + wzaes->initialized = 1; + + return MZ_OK; +} + +int32_t mz_stream_wzaes_is_open(void *stream) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + if (wzaes->initialized == 0) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +static int32_t mz_stream_wzaes_ctr_encrypt(void *stream, uint8_t *buf, int32_t size) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + uint32_t pos = wzaes->crypt_pos; + uint32_t i = 0; + int32_t err = MZ_OK; + + while (i < (uint32_t)size) { + if (pos == MZ_AES_BLOCK_SIZE) { + uint32_t j = 0; + + /* Increment encryption nonce */ + while (j < 8 && !++wzaes->nonce[j]) + j += 1; + + /* Encrypt the nonce to form next xor buffer */ + memcpy(wzaes->crypt_block, wzaes->nonce, MZ_AES_BLOCK_SIZE); + mz_crypt_aes_encrypt(wzaes->aes, wzaes->crypt_block, sizeof(wzaes->crypt_block)); + pos = 0; + } + + buf[i++] ^= wzaes->crypt_block[pos++]; + } + + wzaes->crypt_pos = pos; + return err; +} + +int32_t mz_stream_wzaes_read(void *stream, void *buf, int32_t size) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + int64_t max_total_in = 0; + int32_t bytes_to_read = size; + int32_t read = 0; + + max_total_in = wzaes->max_total_in - MZ_AES_FOOTER_SIZE; + if ((int64_t)bytes_to_read > (max_total_in - wzaes->total_in)) + bytes_to_read = (int32_t)(max_total_in - wzaes->total_in); + + read = mz_stream_read(wzaes->stream.base, buf, bytes_to_read); + + if (read > 0) { + mz_crypt_hmac_update(wzaes->hmac, (uint8_t *)buf, read); + mz_stream_wzaes_ctr_encrypt(stream, (uint8_t *)buf, read); + + wzaes->total_in += read; + } + + return read; +} + +int32_t mz_stream_wzaes_write(void *stream, const void *buf, int32_t size) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + const uint8_t *buf_ptr = (const uint8_t *)buf; + int32_t bytes_to_write = sizeof(wzaes->buffer); + int32_t total_written = 0; + int32_t written = 0; + + if (size < 0) + return MZ_PARAM_ERROR; + + do { + if (bytes_to_write > (size - total_written)) + bytes_to_write = (size - total_written); + + memcpy(wzaes->buffer, buf_ptr, bytes_to_write); + buf_ptr += bytes_to_write; + + mz_stream_wzaes_ctr_encrypt(stream, (uint8_t *)wzaes->buffer, bytes_to_write); + mz_crypt_hmac_update(wzaes->hmac, wzaes->buffer, bytes_to_write); + + written = mz_stream_write(wzaes->stream.base, wzaes->buffer, bytes_to_write); + if (written < 0) + return written; + + total_written += written; + } while (total_written < size && written > 0); + + wzaes->total_out += total_written; + return total_written; +} + +int64_t mz_stream_wzaes_tell(void *stream) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + return mz_stream_tell(wzaes->stream.base); +} + +int32_t mz_stream_wzaes_seek(void *stream, int64_t offset, int32_t origin) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + return mz_stream_seek(wzaes->stream.base, offset, origin); +} + +int32_t mz_stream_wzaes_close(void *stream) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + uint8_t expected_hash[MZ_AES_AUTHCODE_SIZE]; + uint8_t computed_hash[MZ_HASH_SHA1_SIZE]; + + mz_crypt_hmac_end(wzaes->hmac, computed_hash, sizeof(computed_hash)); + + if (wzaes->mode & MZ_OPEN_MODE_WRITE) { + if (mz_stream_write(wzaes->stream.base, computed_hash, MZ_AES_AUTHCODE_SIZE) != MZ_AES_AUTHCODE_SIZE) + return MZ_WRITE_ERROR; + + wzaes->total_out += MZ_AES_AUTHCODE_SIZE; + } else if (wzaes->mode & MZ_OPEN_MODE_READ) { + if (mz_stream_read(wzaes->stream.base, expected_hash, MZ_AES_AUTHCODE_SIZE) != MZ_AES_AUTHCODE_SIZE) + return MZ_READ_ERROR; + + wzaes->total_in += MZ_AES_AUTHCODE_SIZE; + + /* If entire entry was not read this will fail */ + if (memcmp(computed_hash, expected_hash, MZ_AES_AUTHCODE_SIZE) != 0) + return MZ_CRC_ERROR; + } + + wzaes->initialized = 0; + return MZ_OK; +} + +int32_t mz_stream_wzaes_error(void *stream) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + return wzaes->error; +} + +void mz_stream_wzaes_set_password(void *stream, const char *password) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + wzaes->password = password; +} + +void mz_stream_wzaes_set_encryption_mode(void *stream, int16_t encryption_mode) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + wzaes->encryption_mode = encryption_mode; +} + +int32_t mz_stream_wzaes_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN: + *value = wzaes->total_in; + break; + case MZ_STREAM_PROP_TOTAL_OUT: + *value = wzaes->total_out; + break; + case MZ_STREAM_PROP_TOTAL_IN_MAX: + *value = wzaes->max_total_in; + break; + case MZ_STREAM_PROP_HEADER_SIZE: + *value = MZ_AES_SALT_LENGTH((int64_t)wzaes->encryption_mode) + MZ_AES_PW_VERIFY_SIZE; + break; + case MZ_STREAM_PROP_FOOTER_SIZE: + *value = MZ_AES_AUTHCODE_SIZE; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +int32_t mz_stream_wzaes_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream_wzaes *wzaes = (mz_stream_wzaes *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN_MAX: + wzaes->max_total_in = value; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +void *mz_stream_wzaes_create(void **stream) { + mz_stream_wzaes *wzaes = NULL; + + wzaes = (mz_stream_wzaes *)MZ_ALLOC(sizeof(mz_stream_wzaes)); + if (wzaes != NULL) { + memset(wzaes, 0, sizeof(mz_stream_wzaes)); + wzaes->stream.vtbl = &mz_stream_wzaes_vtbl; + wzaes->encryption_mode = MZ_AES_ENCRYPTION_MODE_256; + + mz_crypt_hmac_create(&wzaes->hmac); + mz_crypt_aes_create(&wzaes->aes); + } + if (stream != NULL) + *stream = wzaes; + + return wzaes; +} + +void mz_stream_wzaes_delete(void **stream) { + mz_stream_wzaes *wzaes = NULL; + if (stream == NULL) + return; + wzaes = (mz_stream_wzaes *)*stream; + if (wzaes != NULL) { + mz_crypt_aes_delete(&wzaes->aes); + mz_crypt_hmac_delete(&wzaes->hmac); + MZ_FREE(wzaes); + } + *stream = NULL; +} + +void *mz_stream_wzaes_get_interface(void) { + return (void *)&mz_stream_wzaes_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.h new file mode 100644 index 0000000..e27f112 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_wzaes.h @@ -0,0 +1,46 @@ +/* mz_strm_wzaes.h -- Stream for WinZIP AES encryption + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_WZAES_SHA1_H +#define MZ_STREAM_WZAES_SHA1_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_wzaes_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_wzaes_is_open(void *stream); +int32_t mz_stream_wzaes_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_wzaes_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_wzaes_tell(void *stream); +int32_t mz_stream_wzaes_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_wzaes_close(void *stream); +int32_t mz_stream_wzaes_error(void *stream); + +void mz_stream_wzaes_set_password(void *stream, const char *password); +void mz_stream_wzaes_set_encryption_mode(void *stream, int16_t encryption_mode); + +int32_t mz_stream_wzaes_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_wzaes_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_wzaes_create(void **stream); +void mz_stream_wzaes_delete(void **stream); + +void* mz_stream_wzaes_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.c new file mode 100644 index 0000000..e83bbac --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.c @@ -0,0 +1,393 @@ +/* mz_strm_zlib.c -- Stream for zlib inflate/deflate + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_strm.h" +#include "mz_strm_zlib.h" + +#include "zlib.h" +#if defined(ZLIBNG_VERNUM) && !defined(ZLIB_COMPAT) +# include "zlib-ng.h" +#endif + +/***************************************************************************/ + +#if defined(ZLIBNG_VERNUM) && !defined(ZLIB_COMPAT) +# define ZLIB_PREFIX(x) zng_ ## x + typedef zng_stream zlib_stream; +#else +# define ZLIB_PREFIX(x) x + typedef z_stream zlib_stream; +#endif + +#if !defined(DEF_MEM_LEVEL) +# if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +# else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +# endif +#endif + +/***************************************************************************/ + +static mz_stream_vtbl mz_stream_zlib_vtbl = { + mz_stream_zlib_open, + mz_stream_zlib_is_open, + mz_stream_zlib_read, + mz_stream_zlib_write, + mz_stream_zlib_tell, + mz_stream_zlib_seek, + mz_stream_zlib_close, + mz_stream_zlib_error, + mz_stream_zlib_create, + mz_stream_zlib_delete, + mz_stream_zlib_get_prop_int64, + mz_stream_zlib_set_prop_int64 +}; + +/***************************************************************************/ + +typedef struct mz_stream_zlib_s { + mz_stream stream; + zlib_stream zstream; + uint8_t buffer[INT16_MAX]; + int32_t buffer_len; + int64_t total_in; + int64_t total_out; + int64_t max_total_in; + int8_t initialized; + int16_t level; + int32_t window_bits; + int32_t mode; + int32_t error; +} mz_stream_zlib; + +/***************************************************************************/ + +int32_t mz_stream_zlib_open(void *stream, const char *path, int32_t mode) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + + MZ_UNUSED(path); + + zlib->zstream.data_type = Z_BINARY; + zlib->zstream.zalloc = Z_NULL; + zlib->zstream.zfree = Z_NULL; + zlib->zstream.opaque = Z_NULL; + zlib->zstream.total_in = 0; + zlib->zstream.total_out = 0; + + zlib->total_in = 0; + zlib->total_out = 0; + + if (mode & MZ_OPEN_MODE_WRITE) { +#ifdef MZ_ZIP_NO_COMPRESSION + return MZ_SUPPORT_ERROR; +#else + zlib->zstream.next_out = zlib->buffer; + zlib->zstream.avail_out = sizeof(zlib->buffer); + + zlib->error = ZLIB_PREFIX(deflateInit2)(&zlib->zstream, (int8_t)zlib->level, Z_DEFLATED, + zlib->window_bits, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); +#endif + } else if (mode & MZ_OPEN_MODE_READ) { +#ifdef MZ_ZIP_NO_DECOMPRESSION + return MZ_SUPPORT_ERROR; +#else + zlib->zstream.next_in = zlib->buffer; + zlib->zstream.avail_in = 0; + + zlib->error = ZLIB_PREFIX(inflateInit2)(&zlib->zstream, zlib->window_bits); +#endif + } + + if (zlib->error != Z_OK) + return MZ_OPEN_ERROR; + + zlib->initialized = 1; + zlib->mode = mode; + return MZ_OK; +} + +int32_t mz_stream_zlib_is_open(void *stream) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + if (zlib->initialized != 1) + return MZ_OPEN_ERROR; + return MZ_OK; +} + +int32_t mz_stream_zlib_read(void *stream, void *buf, int32_t size) { +#ifdef MZ_ZIP_NO_DECOMPRESSION + MZ_UNUSED(stream); + MZ_UNUSED(buf); + MZ_UNUSED(size); + return MZ_SUPPORT_ERROR; +#else + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + uint64_t total_in_before = 0; + uint64_t total_in_after = 0; + uint64_t total_out_before = 0; + uint64_t total_out_after = 0; + uint32_t total_in = 0; + uint32_t total_out = 0; + uint32_t in_bytes = 0; + uint32_t out_bytes = 0; + int32_t bytes_to_read = sizeof(zlib->buffer); + int32_t read = 0; + int32_t err = Z_OK; + + + zlib->zstream.next_out = (Bytef*)buf; + zlib->zstream.avail_out = (uInt)size; + + do { + if (zlib->zstream.avail_in == 0) { + if (zlib->max_total_in > 0) { + if ((int64_t)bytes_to_read > (zlib->max_total_in - zlib->total_in)) + bytes_to_read = (int32_t)(zlib->max_total_in - zlib->total_in); + } + + read = mz_stream_read(zlib->stream.base, zlib->buffer, bytes_to_read); + + if (read < 0) + return read; + + zlib->zstream.next_in = zlib->buffer; + zlib->zstream.avail_in = read; + } + + total_in_before = zlib->zstream.avail_in; + total_out_before = zlib->zstream.total_out; + + err = ZLIB_PREFIX(inflate)(&zlib->zstream, Z_SYNC_FLUSH); + if ((err >= Z_OK) && (zlib->zstream.msg != NULL)) { + zlib->error = Z_DATA_ERROR; + break; + } + + total_in_after = zlib->zstream.avail_in; + total_out_after = zlib->zstream.total_out; + + in_bytes = (uint32_t)(total_in_before - total_in_after); + out_bytes = (uint32_t)(total_out_after - total_out_before); + + total_in += in_bytes; + total_out += out_bytes; + + zlib->total_in += in_bytes; + zlib->total_out += out_bytes; + + if (err == Z_STREAM_END) + break; + if (err != Z_OK) { + zlib->error = err; + break; + } + } while (zlib->zstream.avail_out > 0); + + if (zlib->error != 0) { + /* Zlib errors are compatible with MZ */ + return zlib->error; + } + + return total_out; +#endif +} + +#ifndef MZ_ZIP_NO_COMPRESSION +static int32_t mz_stream_zlib_flush(void *stream) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + if (mz_stream_write(zlib->stream.base, zlib->buffer, zlib->buffer_len) != zlib->buffer_len) + return MZ_WRITE_ERROR; + return MZ_OK; +} + +static int32_t mz_stream_zlib_deflate(void *stream, int flush) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + uint64_t total_out_before = 0; + uint64_t total_out_after = 0; + int32_t out_bytes = 0; + int32_t err = Z_OK; + + + do { + if (zlib->zstream.avail_out == 0) { + err = mz_stream_zlib_flush(zlib); + if (err != MZ_OK) + return err; + + zlib->zstream.avail_out = sizeof(zlib->buffer); + zlib->zstream.next_out = zlib->buffer; + + zlib->buffer_len = 0; + } + + total_out_before = zlib->zstream.total_out; + err = ZLIB_PREFIX(deflate)(&zlib->zstream, flush); + total_out_after = zlib->zstream.total_out; + + out_bytes = (uint32_t)(total_out_after - total_out_before); + + zlib->buffer_len += out_bytes; + zlib->total_out += out_bytes; + + if (err == Z_STREAM_END) + break; + if (err != Z_OK) { + zlib->error = err; + return MZ_DATA_ERROR; + } + } while ((zlib->zstream.avail_in > 0) || (flush == Z_FINISH && err == Z_OK)); + + return MZ_OK; +} +#endif + +int32_t mz_stream_zlib_write(void *stream, const void *buf, int32_t size) { +#ifdef MZ_ZIP_NO_COMPRESSION + MZ_UNUSED(stream); + MZ_UNUSED(buf); + MZ_UNUSED(size); + return MZ_SUPPORT_ERROR; +#else + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + int32_t err = MZ_OK; + + zlib->zstream.next_in = (Bytef*)(intptr_t)buf; + zlib->zstream.avail_in = (uInt)size; + + err = mz_stream_zlib_deflate(stream, Z_NO_FLUSH); + if (err != MZ_OK) { + return err; + } + + zlib->total_in += size; + return size; +#endif +} + +int64_t mz_stream_zlib_tell(void *stream) { + MZ_UNUSED(stream); + + return MZ_TELL_ERROR; +} + +int32_t mz_stream_zlib_seek(void *stream, int64_t offset, int32_t origin) { + MZ_UNUSED(stream); + MZ_UNUSED(offset); + MZ_UNUSED(origin); + + return MZ_SEEK_ERROR; +} + +int32_t mz_stream_zlib_close(void *stream) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + + + if (zlib->mode & MZ_OPEN_MODE_WRITE) { +#ifdef MZ_ZIP_NO_COMPRESSION + return MZ_SUPPORT_ERROR; +#else + mz_stream_zlib_deflate(stream, Z_FINISH); + mz_stream_zlib_flush(stream); + + ZLIB_PREFIX(deflateEnd)(&zlib->zstream); +#endif + } else if (zlib->mode & MZ_OPEN_MODE_READ) { +#ifdef MZ_ZIP_NO_DECOMPRESSION + return MZ_SUPPORT_ERROR; +#else + ZLIB_PREFIX(inflateEnd)(&zlib->zstream); +#endif + } + + zlib->initialized = 0; + + if (zlib->error != Z_OK) + return MZ_CLOSE_ERROR; + return MZ_OK; +} + +int32_t mz_stream_zlib_error(void *stream) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + return zlib->error; +} + +int32_t mz_stream_zlib_get_prop_int64(void *stream, int32_t prop, int64_t *value) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + switch (prop) { + case MZ_STREAM_PROP_TOTAL_IN: + *value = zlib->total_in; + break; + case MZ_STREAM_PROP_TOTAL_IN_MAX: + *value = zlib->max_total_in; + break; + case MZ_STREAM_PROP_TOTAL_OUT: + *value = zlib->total_out; + break; + case MZ_STREAM_PROP_HEADER_SIZE: + *value = 0; + break; + case MZ_STREAM_PROP_COMPRESS_WINDOW: + *value = zlib->window_bits; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +int32_t mz_stream_zlib_set_prop_int64(void *stream, int32_t prop, int64_t value) { + mz_stream_zlib *zlib = (mz_stream_zlib *)stream; + switch (prop) { + case MZ_STREAM_PROP_COMPRESS_LEVEL: + zlib->level = (int16_t)value; + break; + case MZ_STREAM_PROP_TOTAL_IN_MAX: + zlib->max_total_in = value; + break; + case MZ_STREAM_PROP_COMPRESS_WINDOW: + zlib->window_bits = (int32_t)value; + break; + default: + return MZ_EXIST_ERROR; + } + return MZ_OK; +} + +void *mz_stream_zlib_create(void **stream) { + mz_stream_zlib *zlib = NULL; + + zlib = (mz_stream_zlib *)MZ_ALLOC(sizeof(mz_stream_zlib)); + if (zlib != NULL) { + memset(zlib, 0, sizeof(mz_stream_zlib)); + zlib->stream.vtbl = &mz_stream_zlib_vtbl; + zlib->level = Z_DEFAULT_COMPRESSION; + zlib->window_bits = -MAX_WBITS; + } + if (stream != NULL) + *stream = zlib; + + return zlib; +} + +void mz_stream_zlib_delete(void **stream) { + mz_stream_zlib *zlib = NULL; + if (stream == NULL) + return; + zlib = (mz_stream_zlib *)*stream; + if (zlib != NULL) + MZ_FREE(zlib); + *stream = NULL; +} + +void *mz_stream_zlib_get_interface(void) { + return (void *)&mz_stream_zlib_vtbl; +} diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.h new file mode 100644 index 0000000..47f7480 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_strm_zlib.h @@ -0,0 +1,43 @@ +/* mz_strm_zlib.h -- Stream for zlib inflate/deflate + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_STREAM_ZLIB_H +#define MZ_STREAM_ZLIB_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +int32_t mz_stream_zlib_open(void *stream, const char *filename, int32_t mode); +int32_t mz_stream_zlib_is_open(void *stream); +int32_t mz_stream_zlib_read(void *stream, void *buf, int32_t size); +int32_t mz_stream_zlib_write(void *stream, const void *buf, int32_t size); +int64_t mz_stream_zlib_tell(void *stream); +int32_t mz_stream_zlib_seek(void *stream, int64_t offset, int32_t origin); +int32_t mz_stream_zlib_close(void *stream); +int32_t mz_stream_zlib_error(void *stream); + +int32_t mz_stream_zlib_get_prop_int64(void *stream, int32_t prop, int64_t *value); +int32_t mz_stream_zlib_set_prop_int64(void *stream, int32_t prop, int64_t value); + +void* mz_stream_zlib_create(void **stream); +void mz_stream_zlib_delete(void **stream); + +void* mz_stream_zlib_get_interface(void); + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.c new file mode 100644 index 0000000..cc4f57d --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.c @@ -0,0 +1,2771 @@ +/* zip.c -- Zip manipulation + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 2009-2010 Mathias Svensson + Modifications for Zip64 support + http://result42.com + Copyright (C) 2007-2008 Even Rouault + Modifications of Unzip for Zip64 + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + + +#include "mz.h" +#include "mz_crypt.h" +#include "mz_strm.h" +#ifdef HAVE_BZIP2 +# include "mz_strm_bzip.h" +#endif +#ifdef HAVE_LIBCOMP +# include "mz_strm_libcomp.h" +#endif +#ifdef HAVE_LZMA +# include "mz_strm_lzma.h" +#endif +#include "mz_strm_mem.h" +#ifdef HAVE_PKCRYPT +# include "mz_strm_pkcrypt.h" +#endif +#ifdef HAVE_WZAES +# include "mz_strm_wzaes.h" +#endif +#ifdef HAVE_ZLIB +# include "mz_strm_zlib.h" +#endif +#ifdef HAVE_ZSTD +# include "mz_strm_zstd.h" +#endif + +#include "mz_zip.h" + +#include /* tolower */ +#include /* snprintf */ + +#if defined(_MSC_VER) || defined(__MINGW32__) +# define localtime_r(t1,t2) (localtime_s(t2,t1) == 0 ? t1 : NULL) +#endif +#if defined(_MSC_VER) && (_MSC_VER < 1900) +# define snprintf _snprintf +#endif + +/***************************************************************************/ + +#define MZ_ZIP_MAGIC_LOCALHEADER (0x04034b50) +#define MZ_ZIP_MAGIC_LOCALHEADERU8 { 0x50, 0x4b, 0x03, 0x04 } +#define MZ_ZIP_MAGIC_CENTRALHEADER (0x02014b50) +#define MZ_ZIP_MAGIC_CENTRALHEADERU8 { 0x50, 0x4b, 0x01, 0x02 } +#define MZ_ZIP_MAGIC_ENDHEADER (0x06054b50) +#define MZ_ZIP_MAGIC_ENDHEADERU8 { 0x50, 0x4b, 0x05, 0x06 } +#define MZ_ZIP_MAGIC_ENDHEADER64 (0x06064b50) +#define MZ_ZIP_MAGIC_ENDLOCHEADER64 (0x07064b50) +#define MZ_ZIP_MAGIC_DATADESCRIPTOR (0x08074b50) +#define MZ_ZIP_MAGIC_DATADESCRIPTORU8 { 0x50, 0x4b, 0x07, 0x08 } + +#define MZ_ZIP_SIZE_LD_ITEM (30) +#define MZ_ZIP_SIZE_CD_ITEM (46) +#define MZ_ZIP_SIZE_CD_LOCATOR64 (20) +#define MZ_ZIP_SIZE_MAX_DATA_DESCRIPTOR (24) + +#define MZ_ZIP_OFFSET_CRC_SIZES (14) +#define MZ_ZIP_UNCOMPR_SIZE64_CUSHION (2 * 1024 * 1024) + +#ifndef MZ_ZIP_EOCD_MAX_BACK +#define MZ_ZIP_EOCD_MAX_BACK (1 << 20) +#endif + +/***************************************************************************/ + +typedef struct mz_zip_s { + mz_zip_file file_info; + mz_zip_file local_file_info; + + void *stream; /* main stream */ + void *cd_stream; /* pointer to the stream with the cd */ + void *cd_mem_stream; /* memory stream for central directory */ + void *compress_stream; /* compression stream */ + void *crypt_stream; /* encryption stream */ + void *file_info_stream; /* memory stream for storing file info */ + void *local_file_info_stream; /* memory stream for storing local file info */ + + int32_t open_mode; + uint8_t recover; + uint8_t data_descriptor; + + uint32_t disk_number_with_cd; /* number of the disk with the central dir */ + int64_t disk_offset_shift; /* correction for zips that have wrong offset start of cd */ + + int64_t cd_start_pos; /* pos of the first file in the central dir stream */ + int64_t cd_current_pos; /* pos of the current file in the central dir */ + int64_t cd_offset; /* offset of start of central directory */ + int64_t cd_size; /* size of the central directory */ + uint32_t cd_signature; /* signature of central directory */ + + uint8_t entry_scanned; /* entry header information read ok */ + uint8_t entry_opened; /* entry is open for read/write */ + uint8_t entry_raw; /* entry opened with raw mode */ + uint32_t entry_crc32; /* entry crc32 */ + + uint64_t number_entry; + + uint16_t version_madeby; + char *comment; +} mz_zip; + +/***************************************************************************/ + +#if 0 +# define mz_zip_print printf +#else +# define mz_zip_print(fmt,...) +#endif + +/***************************************************************************/ + +/* Locate the end of central directory */ +static int32_t mz_zip_search_eocd(void *stream, int64_t *central_pos) { + int64_t file_size = 0; + int64_t max_back = MZ_ZIP_EOCD_MAX_BACK; + uint8_t find[4] = MZ_ZIP_MAGIC_ENDHEADERU8; + int32_t err = MZ_OK; + + err = mz_stream_seek(stream, 0, MZ_SEEK_END); + if (err != MZ_OK) + return err; + + file_size = mz_stream_tell(stream); + + if (max_back <= 0 || max_back > file_size) + max_back = file_size; + + return mz_stream_find_reverse(stream, (const void *)find, sizeof(find), max_back, central_pos); +} + +/* Locate the end of central directory 64 of a zip file */ +static int32_t mz_zip_search_zip64_eocd(void *stream, const int64_t end_central_offset, int64_t *central_pos) { + int64_t offset = 0; + uint32_t value32 = 0; + int32_t err = MZ_OK; + + + *central_pos = 0; + + /* Zip64 end of central directory locator */ + err = mz_stream_seek(stream, end_central_offset - MZ_ZIP_SIZE_CD_LOCATOR64, MZ_SEEK_SET); + /* Read locator signature */ + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &value32); + if (value32 != MZ_ZIP_MAGIC_ENDLOCHEADER64) + err = MZ_FORMAT_ERROR; + } + /* Number of the disk with the start of the zip64 end of central directory */ + if (err == MZ_OK) + err = mz_stream_read_uint32(stream, &value32); + /* Relative offset of the zip64 end of central directory record8 */ + if (err == MZ_OK) + err = mz_stream_read_uint64(stream, (uint64_t *)&offset); + /* Total number of disks */ + if (err == MZ_OK) + err = mz_stream_read_uint32(stream, &value32); + /* Goto end of central directory record */ + if (err == MZ_OK) + err = mz_stream_seek(stream, (int64_t)offset, MZ_SEEK_SET); + /* The signature */ + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &value32); + if (value32 != MZ_ZIP_MAGIC_ENDHEADER64) + err = MZ_FORMAT_ERROR; + } + + if (err == MZ_OK) + *central_pos = offset; + + return err; +} + +/* Get PKWARE traditional encryption verifier */ +static uint16_t mz_zip_get_pk_verify(uint32_t dos_date, uint64_t crc, uint16_t flag) +{ + /* Info-ZIP modification to ZipCrypto format: if bit 3 of the general + * purpose bit flag is set, it uses high byte of 16-bit File Time. */ + if (flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR) + return ((dos_date >> 16) & 0xff) << 8 | ((dos_date >> 8) & 0xff); + return ((crc >> 16) & 0xff) << 8 | ((crc >> 24) & 0xff); +} + +/* Get info about the current file in the zip file */ +static int32_t mz_zip_entry_read_header(void *stream, uint8_t local, mz_zip_file *file_info, void *file_extra_stream) { + uint64_t ntfs_time = 0; + uint32_t reserved = 0; + uint32_t magic = 0; + uint32_t dos_date = 0; + uint32_t field_pos = 0; + uint16_t field_type = 0; + uint16_t field_length = 0; + uint32_t field_length_read = 0; + uint16_t ntfs_attrib_id = 0; + uint16_t ntfs_attrib_size = 0; + uint16_t linkname_size; + uint16_t value16 = 0; + uint32_t value32 = 0; + int64_t extrafield_pos = 0; + int64_t comment_pos = 0; + int64_t linkname_pos = 0; + int64_t saved_pos = 0; + int32_t err = MZ_OK; + char *linkname = NULL; + + + memset(file_info, 0, sizeof(mz_zip_file)); + + /* Check the magic */ + err = mz_stream_read_uint32(stream, &magic); + if (err == MZ_END_OF_STREAM) + err = MZ_END_OF_LIST; + else if (magic == MZ_ZIP_MAGIC_ENDHEADER || magic == MZ_ZIP_MAGIC_ENDHEADER64) + err = MZ_END_OF_LIST; + else if ((local) && (magic != MZ_ZIP_MAGIC_LOCALHEADER)) + err = MZ_FORMAT_ERROR; + else if ((!local) && (magic != MZ_ZIP_MAGIC_CENTRALHEADER)) + err = MZ_FORMAT_ERROR; + + /* Read header fields */ + if (err == MZ_OK) { + if (!local) + err = mz_stream_read_uint16(stream, &file_info->version_madeby); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->version_needed); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->flag); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->compression_method); + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &dos_date); + file_info->modified_date = mz_zip_dosdate_to_time_t(dos_date); + } + if (err == MZ_OK) + err = mz_stream_read_uint32(stream, &file_info->crc); +#ifdef HAVE_PKCRYPT + if (err == MZ_OK && file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) { + /* Use dos_date from header instead of derived from time in zip extensions */ + file_info->pk_verify = mz_zip_get_pk_verify(dos_date, file_info->crc, file_info->flag); + } +#endif + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &value32); + file_info->compressed_size = value32; + } + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &value32); + file_info->uncompressed_size = value32; + } + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->filename_size); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->extrafield_size); + if (!local) { + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->comment_size); + if (err == MZ_OK) { + err = mz_stream_read_uint16(stream, &value16); + file_info->disk_number = value16; + } + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &file_info->internal_fa); + if (err == MZ_OK) + err = mz_stream_read_uint32(stream, &file_info->external_fa); + if (err == MZ_OK) { + err = mz_stream_read_uint32(stream, &value32); + file_info->disk_offset = value32; + } + } + } + + if (err == MZ_OK) + err = mz_stream_seek(file_extra_stream, 0, MZ_SEEK_SET); + + /* Copy variable length data to memory stream for later retrieval */ + if ((err == MZ_OK) && (file_info->filename_size > 0)) + err = mz_stream_copy(file_extra_stream, stream, file_info->filename_size); + mz_stream_write_uint8(file_extra_stream, 0); + extrafield_pos = mz_stream_tell(file_extra_stream); + + if ((err == MZ_OK) && (file_info->extrafield_size > 0)) + err = mz_stream_copy(file_extra_stream, stream, file_info->extrafield_size); + mz_stream_write_uint8(file_extra_stream, 0); + + comment_pos = mz_stream_tell(file_extra_stream); + if ((err == MZ_OK) && (file_info->comment_size > 0)) + err = mz_stream_copy(file_extra_stream, stream, file_info->comment_size); + mz_stream_write_uint8(file_extra_stream, 0); + + linkname_pos = mz_stream_tell(file_extra_stream); + /* Overwrite if we encounter UNIX1 extra block */ + mz_stream_write_uint8(file_extra_stream, 0); + + if ((err == MZ_OK) && (file_info->extrafield_size > 0)) { + /* Seek to and parse the extra field */ + err = mz_stream_seek(file_extra_stream, extrafield_pos, MZ_SEEK_SET); + + while ((err == MZ_OK) && (field_pos + 4 <= file_info->extrafield_size)) { + err = mz_zip_extrafield_read(file_extra_stream, &field_type, &field_length); + if (err != MZ_OK) + break; + field_pos += 4; + + /* Don't allow field length to exceed size of remaining extrafield */ + if (field_length > (file_info->extrafield_size - field_pos)) + field_length = (uint16_t)(file_info->extrafield_size - field_pos); + + /* Read ZIP64 extra field */ + if ((field_type == MZ_ZIP_EXTENSION_ZIP64) && (field_length >= 8)) { + if ((err == MZ_OK) && (file_info->uncompressed_size == UINT32_MAX)) { + err = mz_stream_read_int64(file_extra_stream, &file_info->uncompressed_size); + if (file_info->uncompressed_size < 0) + err = MZ_FORMAT_ERROR; + } + if ((err == MZ_OK) && (file_info->compressed_size == UINT32_MAX)) { + err = mz_stream_read_int64(file_extra_stream, &file_info->compressed_size); + if (file_info->compressed_size < 0) + err = MZ_FORMAT_ERROR; + } + if ((err == MZ_OK) && (file_info->disk_offset == UINT32_MAX)) { + err = mz_stream_read_int64(file_extra_stream, &file_info->disk_offset); + if (file_info->disk_offset < 0) + err = MZ_FORMAT_ERROR; + } + if ((err == MZ_OK) && (file_info->disk_number == UINT16_MAX)) + err = mz_stream_read_uint32(file_extra_stream, &file_info->disk_number); + } + /* Read NTFS extra field */ + else if ((field_type == MZ_ZIP_EXTENSION_NTFS) && (field_length > 4)) { + if (err == MZ_OK) + err = mz_stream_read_uint32(file_extra_stream, &reserved); + field_length_read = 4; + + while ((err == MZ_OK) && (field_length_read + 4 <= field_length)) { + err = mz_stream_read_uint16(file_extra_stream, &ntfs_attrib_id); + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &ntfs_attrib_size); + field_length_read += 4; + + if ((err == MZ_OK) && (ntfs_attrib_id == 0x01) && (ntfs_attrib_size == 24)) { + err = mz_stream_read_uint64(file_extra_stream, &ntfs_time); + mz_zip_ntfs_to_unix_time(ntfs_time, &file_info->modified_date); + + if (err == MZ_OK) { + err = mz_stream_read_uint64(file_extra_stream, &ntfs_time); + mz_zip_ntfs_to_unix_time(ntfs_time, &file_info->accessed_date); + } + if (err == MZ_OK) { + err = mz_stream_read_uint64(file_extra_stream, &ntfs_time); + mz_zip_ntfs_to_unix_time(ntfs_time, &file_info->creation_date); + } + } else if ((err == MZ_OK) && (field_length_read + ntfs_attrib_size <= field_length)) { + err = mz_stream_seek(file_extra_stream, ntfs_attrib_size, MZ_SEEK_CUR); + } + + field_length_read += ntfs_attrib_size; + } + } + /* Read UNIX1 extra field */ + else if ((field_type == MZ_ZIP_EXTENSION_UNIX1) && (field_length >= 12)) { + if (err == MZ_OK) { + err = mz_stream_read_uint32(file_extra_stream, &value32); + if (err == MZ_OK && file_info->accessed_date == 0) + file_info->accessed_date = value32; + } + if (err == MZ_OK) { + err = mz_stream_read_uint32(file_extra_stream, &value32); + if (err == MZ_OK && file_info->modified_date == 0) + file_info->modified_date = value32; + } + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &value16); /* User id */ + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &value16); /* Group id */ + + /* Copy linkname to end of file extra stream so we can return null + terminated string */ + linkname_size = field_length - 12; + if ((err == MZ_OK) && (linkname_size > 0)) { + linkname = (char *)MZ_ALLOC(linkname_size); + if (linkname != NULL) { + if (mz_stream_read(file_extra_stream, linkname, linkname_size) != linkname_size) + err = MZ_READ_ERROR; + if (err == MZ_OK) { + saved_pos = mz_stream_tell(file_extra_stream); + + mz_stream_seek(file_extra_stream, linkname_pos, MZ_SEEK_SET); + mz_stream_write(file_extra_stream, linkname, linkname_size); + mz_stream_write_uint8(file_extra_stream, 0); + + mz_stream_seek(file_extra_stream, saved_pos, MZ_SEEK_SET); + } + MZ_FREE(linkname); + } + } + } +#ifdef HAVE_WZAES + /* Read AES extra field */ + else if ((field_type == MZ_ZIP_EXTENSION_AES) && (field_length == 7)) { + uint8_t value8 = 0; + /* Verify version info */ + err = mz_stream_read_uint16(file_extra_stream, &value16); + /* Support AE-1 and AE-2 */ + if (value16 != 1 && value16 != 2) + err = MZ_FORMAT_ERROR; + file_info->aes_version = value16; + if (err == MZ_OK) + err = mz_stream_read_uint8(file_extra_stream, &value8); + if ((char)value8 != 'A') + err = MZ_FORMAT_ERROR; + if (err == MZ_OK) + err = mz_stream_read_uint8(file_extra_stream, &value8); + if ((char)value8 != 'E') + err = MZ_FORMAT_ERROR; + /* Get AES encryption strength and actual compression method */ + if (err == MZ_OK) { + err = mz_stream_read_uint8(file_extra_stream, &value8); + file_info->aes_encryption_mode = value8; + } + if (err == MZ_OK) { + err = mz_stream_read_uint16(file_extra_stream, &value16); + file_info->compression_method = value16; + } + } +#endif + else if (field_length > 0) { + err = mz_stream_seek(file_extra_stream, field_length, MZ_SEEK_CUR); + } + + field_pos += field_length; + } + } + + /* Get pointers to variable length data */ + mz_stream_mem_get_buffer(file_extra_stream, (const void **)&file_info->filename); + mz_stream_mem_get_buffer_at(file_extra_stream, extrafield_pos, (const void **)&file_info->extrafield); + mz_stream_mem_get_buffer_at(file_extra_stream, comment_pos, (const void **)&file_info->comment); + mz_stream_mem_get_buffer_at(file_extra_stream, linkname_pos, (const void **)&file_info->linkname); + + /* Set to empty string just in-case */ + if (file_info->filename == NULL) + file_info->filename = ""; + if (file_info->extrafield == NULL) + file_info->extrafield_size = 0; + if (file_info->comment == NULL) + file_info->comment = ""; + if (file_info->linkname == NULL) + file_info->linkname = ""; + + if (err == MZ_OK) { + mz_zip_print("Zip - Entry - Read header - %s (local %" PRId8 ")\n", + file_info->filename, local); + mz_zip_print("Zip - Entry - Read header compress (ucs %" PRId64 " cs %" PRId64 " crc 0x%08" PRIx32 ")\n", + file_info->uncompressed_size, file_info->compressed_size, file_info->crc); + if (!local) { + mz_zip_print("Zip - Entry - Read header disk (disk %" PRIu32 " offset %" PRId64 ")\n", + file_info->disk_number, file_info->disk_offset); + } + mz_zip_print("Zip - Entry - Read header variable (fnl %" PRId32 " efs %" PRId32 " cms %" PRId32 ")\n", + file_info->filename_size, file_info->extrafield_size, file_info->comment_size); + } + + return err; +} + +static int32_t mz_zip_entry_read_descriptor(void *stream, uint8_t zip64, uint32_t *crc32, int64_t *compressed_size, int64_t *uncompressed_size) { + uint32_t value32 = 0; + int64_t value64 = 0; + int32_t err = MZ_OK; + + + err = mz_stream_read_uint32(stream, &value32); + if (value32 != MZ_ZIP_MAGIC_DATADESCRIPTOR) + err = MZ_FORMAT_ERROR; + if (err == MZ_OK) + err = mz_stream_read_uint32(stream, &value32); + if ((err == MZ_OK) && (crc32 != NULL)) + *crc32 = value32; + if (err == MZ_OK) { + /* If zip 64 extension is enabled then read as 8 byte */ + if (!zip64) { + err = mz_stream_read_uint32(stream, &value32); + value64 = value32; + } else { + err = mz_stream_read_int64(stream, &value64); + if (value64 < 0) + err = MZ_FORMAT_ERROR; + } + if ((err == MZ_OK) && (compressed_size != NULL)) + *compressed_size = value64; + } + if (err == MZ_OK) { + if (!zip64) { + err = mz_stream_read_uint32(stream, &value32); + value64 = value32; + } else { + err = mz_stream_read_int64(stream, &value64); + if (value64 < 0) + err = MZ_FORMAT_ERROR; + } + if ((err == MZ_OK) && (uncompressed_size != NULL)) + *uncompressed_size = value64; + } + + return err; +} + +static int32_t mz_zip_entry_write_crc_sizes(void *stream, uint8_t zip64, uint8_t mask, mz_zip_file *file_info) { + int32_t err = MZ_OK; + + if (mask) + err = mz_stream_write_uint32(stream, 0); + else + err = mz_stream_write_uint32(stream, file_info->crc); /* crc */ + + /* For backwards-compatibility with older zip applications we set all sizes to UINT32_MAX + * when zip64 is needed, instead of only setting sizes larger than UINT32_MAX. */ + + if (err == MZ_OK) { + if (zip64) /* compr size */ + err = mz_stream_write_uint32(stream, UINT32_MAX); + else + err = mz_stream_write_uint32(stream, (uint32_t)file_info->compressed_size); + } + if (err == MZ_OK) { + if (mask) /* uncompr size */ + err = mz_stream_write_uint32(stream, 0); + else if (zip64) + err = mz_stream_write_uint32(stream, UINT32_MAX); + else + err = mz_stream_write_uint32(stream, (uint32_t)file_info->uncompressed_size); + } + return err; +} + +static int32_t mz_zip_entry_needs_zip64(mz_zip_file *file_info, uint8_t local, uint8_t *zip64) { + uint32_t max_uncompressed_size = UINT32_MAX; + uint8_t needs_zip64 = 0; + + if (zip64 == NULL) + return MZ_PARAM_ERROR; + + *zip64 = 0; + + if (local) { + /* At local header we might not know yet whether compressed size will overflow unsigned + 32-bit integer which might happen for high entropy data so we give it some cushion */ + + max_uncompressed_size -= MZ_ZIP_UNCOMPR_SIZE64_CUSHION; + } + + needs_zip64 = (file_info->uncompressed_size >= max_uncompressed_size) || + (file_info->compressed_size >= UINT32_MAX); + + if (!local) { + /* Disk offset and number only used in central directory header */ + needs_zip64 |= (file_info->disk_offset >= UINT32_MAX) || + (file_info->disk_number >= UINT16_MAX); + } + + if (file_info->zip64 == MZ_ZIP64_AUTO) { + /* If uncompressed size is unknown, assume zip64 for 64-bit data descriptors */ + if (local && file_info->uncompressed_size == 0) { + /* Don't use zip64 for local header directory entries */ + if (mz_zip_attrib_is_dir(file_info->external_fa, file_info->version_madeby) != MZ_OK) { + *zip64 = 1; + } + } + *zip64 |= needs_zip64; + } else if (file_info->zip64 == MZ_ZIP64_FORCE) { + *zip64 = 1; + } else if (file_info->zip64 == MZ_ZIP64_DISABLE) { + /* Zip64 extension is required to zip file */ + if (needs_zip64) + return MZ_PARAM_ERROR; + } + + return MZ_OK; +} + +static int32_t mz_zip_entry_write_header(void *stream, uint8_t local, mz_zip_file *file_info) { + uint64_t ntfs_time = 0; + uint32_t reserved = 0; + uint32_t dos_date = 0; + uint16_t extrafield_size = 0; + uint16_t field_type = 0; + uint16_t field_length = 0; + uint16_t field_length_zip64 = 0; + uint16_t field_length_ntfs = 0; + uint16_t field_length_aes = 0; + uint16_t field_length_unix1 = 0; + uint16_t filename_size = 0; + uint16_t filename_length = 0; + uint16_t linkname_size = 0; + uint16_t version_needed = 0; + int32_t comment_size = 0; + int32_t err = MZ_OK; + int32_t err_mem = MZ_OK; + uint8_t zip64 = 0; + uint8_t skip_aes = 0; + uint8_t mask = 0; + uint8_t write_end_slash = 0; + const char *filename = NULL; + char masked_name[64]; + void *file_extra_stream = NULL; + + if (file_info == NULL) + return MZ_PARAM_ERROR; + + if ((local) && (file_info->flag & MZ_ZIP_FLAG_MASK_LOCAL_INFO)) + mask = 1; + + /* Determine if zip64 extra field is necessary */ + err = mz_zip_entry_needs_zip64(file_info, local, &zip64); + if (err != MZ_OK) + return err; + + /* Start calculating extra field sizes */ + if (zip64) { + /* Both compressed and uncompressed sizes must be included (at least in local header) */ + field_length_zip64 = 8 + 8; + if ((!local) && (file_info->disk_offset >= UINT32_MAX)) + field_length_zip64 += 8; + + extrafield_size += 4; + extrafield_size += field_length_zip64; + } + + /* Calculate extra field size and check for duplicates */ + if (file_info->extrafield_size > 0) { + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)file_info->extrafield, + file_info->extrafield_size); + + do { + err_mem = mz_stream_read_uint16(file_extra_stream, &field_type); + if (err_mem == MZ_OK) + err_mem = mz_stream_read_uint16(file_extra_stream, &field_length); + if (err_mem != MZ_OK) + break; + + /* Prefer incoming aes extensions over ours */ + if (field_type == MZ_ZIP_EXTENSION_AES) + skip_aes = 1; + + /* Prefer our zip64, ntfs, unix1 extension over incoming */ + if (field_type != MZ_ZIP_EXTENSION_ZIP64 && field_type != MZ_ZIP_EXTENSION_NTFS && + field_type != MZ_ZIP_EXTENSION_UNIX1) + extrafield_size += 4 + field_length; + + if (err_mem == MZ_OK) + err_mem = mz_stream_seek(file_extra_stream, field_length, MZ_SEEK_CUR); + } while (err_mem == MZ_OK); + } + +#ifdef HAVE_WZAES + if (!skip_aes) { + if ((file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) && (file_info->aes_version)) { + field_length_aes = 1 + 1 + 1 + 2 + 2; + extrafield_size += 4 + field_length_aes; + } + } +#else + MZ_UNUSED(field_length_aes); + MZ_UNUSED(skip_aes); +#endif + /* NTFS timestamps */ + if ((file_info->modified_date != 0) && + (file_info->accessed_date != 0) && + (file_info->creation_date != 0) && (!mask)) { + field_length_ntfs = 8 + 8 + 8 + 4 + 2 + 2; + extrafield_size += 4 + field_length_ntfs; + } + + /* Unix1 symbolic links */ + if (file_info->linkname != NULL && *file_info->linkname != 0) { + linkname_size = (uint16_t)strlen(file_info->linkname); + field_length_unix1 = 12 + linkname_size; + extrafield_size += 4 + field_length_unix1; + } + + if (local) + err = mz_stream_write_uint32(stream, MZ_ZIP_MAGIC_LOCALHEADER); + else { + err = mz_stream_write_uint32(stream, MZ_ZIP_MAGIC_CENTRALHEADER); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, file_info->version_madeby); + } + + /* Calculate version needed to extract */ + if (err == MZ_OK) { + version_needed = file_info->version_needed; + if (version_needed == 0) { + version_needed = 20; + if (zip64) + version_needed = 45; +#ifdef HAVE_WZAES + if ((file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) && (file_info->aes_version)) + version_needed = 51; +#endif +#if defined(HAVE_LZMA) || defined(HAVE_LIBCOMP) + if ((file_info->compression_method == MZ_COMPRESS_METHOD_LZMA) || + (file_info->compression_method == MZ_COMPRESS_METHOD_XZ)) + version_needed = 63; +#endif + } + err = mz_stream_write_uint16(stream, version_needed); + } + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, file_info->flag); + if (err == MZ_OK) { +#ifdef HAVE_WZAES + if ((file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) && (file_info->aes_version)) + err = mz_stream_write_uint16(stream, MZ_COMPRESS_METHOD_AES); + else +#endif + err = mz_stream_write_uint16(stream, file_info->compression_method); + } + if (err == MZ_OK) { + if (file_info->modified_date != 0 && !mask) + dos_date = mz_zip_time_t_to_dos_date(file_info->modified_date); + err = mz_stream_write_uint32(stream, dos_date); + } + + if (err == MZ_OK) + err = mz_zip_entry_write_crc_sizes(stream, zip64, mask, file_info); + + if (mask) { + snprintf(masked_name, sizeof(masked_name), "%" PRIx32 "_%" PRIx64, + file_info->disk_number, file_info->disk_offset); + filename = masked_name; + } else { + filename = file_info->filename; + } + + filename_length = (uint16_t)strlen(filename); + filename_size += filename_length; + + if ((mz_zip_attrib_is_dir(file_info->external_fa, file_info->version_madeby) == MZ_OK) && + ((filename[filename_length - 1] != '/') && (filename[filename_length - 1] != '\\'))) { + filename_size += 1; + write_end_slash = 1; + } + + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, filename_size); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, extrafield_size); + + if (!local) { + if (file_info->comment != NULL) { + comment_size = (int32_t)strlen(file_info->comment); + if (comment_size > UINT16_MAX) + comment_size = UINT16_MAX; + } + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, (uint16_t)comment_size); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, (uint16_t)file_info->disk_number); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, file_info->internal_fa); + if (err == MZ_OK) + err = mz_stream_write_uint32(stream, file_info->external_fa); + if (err == MZ_OK) { + if (file_info->disk_offset >= UINT32_MAX) + err = mz_stream_write_uint32(stream, UINT32_MAX); + else + err = mz_stream_write_uint32(stream, (uint32_t)file_info->disk_offset); + } + } + + if (err == MZ_OK) { + if (mz_stream_write(stream, filename, filename_length) != filename_length) + err = MZ_WRITE_ERROR; + + /* Ensure that directories have a slash appended to them for compatibility */ + if (err == MZ_OK && write_end_slash) + err = mz_stream_write_uint8(stream, '/'); + } + + /* Write ZIP64 extra field first so we can update sizes later if data descriptor not used */ + if ((err == MZ_OK) && (zip64)) { + err = mz_zip_extrafield_write(stream, MZ_ZIP_EXTENSION_ZIP64, field_length_zip64); + if (err == MZ_OK) { + if (mask) + err = mz_stream_write_int64(stream, 0); + else + err = mz_stream_write_int64(stream, file_info->uncompressed_size); + } + if (err == MZ_OK) + err = mz_stream_write_int64(stream, file_info->compressed_size); + if ((err == MZ_OK) && (!local) && (file_info->disk_offset >= UINT32_MAX)) + err = mz_stream_write_int64(stream, file_info->disk_offset); + if ((err == MZ_OK) && (!local) && (file_info->disk_number >= UINT16_MAX)) + err = mz_stream_write_uint32(stream, file_info->disk_number); + } + /* Write NTFS extra field */ + if ((err == MZ_OK) && (field_length_ntfs > 0)) { + err = mz_zip_extrafield_write(stream, MZ_ZIP_EXTENSION_NTFS, field_length_ntfs); + if (err == MZ_OK) + err = mz_stream_write_uint32(stream, reserved); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, 0x01); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, field_length_ntfs - 8); + if (err == MZ_OK) { + mz_zip_unix_to_ntfs_time(file_info->modified_date, &ntfs_time); + err = mz_stream_write_uint64(stream, ntfs_time); + } + if (err == MZ_OK) { + mz_zip_unix_to_ntfs_time(file_info->accessed_date, &ntfs_time); + err = mz_stream_write_uint64(stream, ntfs_time); + } + if (err == MZ_OK) { + mz_zip_unix_to_ntfs_time(file_info->creation_date, &ntfs_time); + err = mz_stream_write_uint64(stream, ntfs_time); + } + } + /* Write UNIX extra block extra field */ + if ((err == MZ_OK) && (field_length_unix1 > 0)) { + err = mz_zip_extrafield_write(stream, MZ_ZIP_EXTENSION_UNIX1, field_length_unix1); + if (err == MZ_OK) + err = mz_stream_write_uint32(stream, (uint32_t)file_info->accessed_date); + if (err == MZ_OK) + err = mz_stream_write_uint32(stream, (uint32_t)file_info->modified_date); + if (err == MZ_OK) /* User id */ + err = mz_stream_write_uint16(stream, 0); + if (err == MZ_OK) /* Group id */ + err = mz_stream_write_uint16(stream, 0); + if (err == MZ_OK && linkname_size > 0) { + if (mz_stream_write(stream, file_info->linkname, linkname_size) != linkname_size) + err = MZ_WRITE_ERROR; + } + } +#ifdef HAVE_WZAES + /* Write AES extra field */ + if ((err == MZ_OK) && (!skip_aes) && (file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) && (file_info->aes_version)) { + err = mz_zip_extrafield_write(stream, MZ_ZIP_EXTENSION_AES, field_length_aes); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, file_info->aes_version); + if (err == MZ_OK) + err = mz_stream_write_uint8(stream, 'A'); + if (err == MZ_OK) + err = mz_stream_write_uint8(stream, 'E'); + if (err == MZ_OK) + err = mz_stream_write_uint8(stream, file_info->aes_encryption_mode); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, file_info->compression_method); + } +#endif + + if (file_info->extrafield_size > 0) { + err_mem = mz_stream_mem_seek(file_extra_stream, 0, MZ_SEEK_SET); + while (err == MZ_OK && err_mem == MZ_OK) { + err_mem = mz_stream_read_uint16(file_extra_stream, &field_type); + if (err_mem == MZ_OK) + err_mem = mz_stream_read_uint16(file_extra_stream, &field_length); + if (err_mem != MZ_OK) + break; + + /* Prefer our zip 64, ntfs, unix1 extensions over incoming */ + if (field_type == MZ_ZIP_EXTENSION_ZIP64 || field_type == MZ_ZIP_EXTENSION_NTFS || + field_type == MZ_ZIP_EXTENSION_UNIX1) { + err_mem = mz_stream_seek(file_extra_stream, field_length, MZ_SEEK_CUR); + continue; + } + + err = mz_stream_write_uint16(stream, field_type); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, field_length); + if (err == MZ_OK) + err = mz_stream_copy(stream, file_extra_stream, field_length); + } + + mz_stream_mem_delete(&file_extra_stream); + } + + if ((err == MZ_OK) && (!local) && (file_info->comment != NULL)) { + if (mz_stream_write(stream, file_info->comment, file_info->comment_size) != file_info->comment_size) + err = MZ_WRITE_ERROR; + } + + return err; +} + +static int32_t mz_zip_entry_write_descriptor(void *stream, uint8_t zip64, uint32_t crc32, int64_t compressed_size, int64_t uncompressed_size) { + int32_t err = MZ_OK; + + err = mz_stream_write_uint32(stream, MZ_ZIP_MAGIC_DATADESCRIPTOR); + if (err == MZ_OK) + err = mz_stream_write_uint32(stream, crc32); + + /* Store data descriptor as 8 bytes if zip 64 extension enabled */ + if (err == MZ_OK) { + /* Zip 64 extension is enabled when uncompressed size is > UINT32_MAX */ + if (!zip64) + err = mz_stream_write_uint32(stream, (uint32_t)compressed_size); + else + err = mz_stream_write_int64(stream, compressed_size); + } + if (err == MZ_OK) { + if (!zip64) + err = mz_stream_write_uint32(stream, (uint32_t)uncompressed_size); + else + err = mz_stream_write_int64(stream, uncompressed_size); + } + + return err; +} + +static int32_t mz_zip_read_cd(void *handle) { + mz_zip *zip = (mz_zip *)handle; + uint64_t number_entry_cd64 = 0; + uint64_t number_entry_cd = 0; + int64_t eocd_pos = 0; + int64_t eocd_pos64 = 0; + int64_t value64i = 0; + uint16_t value16 = 0; + uint32_t value32 = 0; + uint64_t value64 = 0; + uint16_t comment_size = 0; + int32_t comment_read = 0; + int32_t err = MZ_OK; + + + if (zip == NULL) + return MZ_PARAM_ERROR; + + /* Read and cache central directory records */ + err = mz_zip_search_eocd(zip->stream, &eocd_pos); + if (err == MZ_OK) { + /* The signature, already checked */ + err = mz_stream_read_uint32(zip->stream, &value32); + /* Number of this disk */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &value16); + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &value16); + zip->disk_number_with_cd = value16; + /* Total number of entries in the central dir on this disk */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &value16); + zip->number_entry = value16; + /* Total number of entries in the central dir */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &value16); + number_entry_cd = value16; + if (number_entry_cd != zip->number_entry) + err = MZ_FORMAT_ERROR; + /* Size of the central directory */ + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &value32); + if (err == MZ_OK) + zip->cd_size = value32; + /* Offset of start of central directory with respect to the starting disk number */ + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &value32); + if (err == MZ_OK) + zip->cd_offset = value32; + /* Zip file global comment length */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &comment_size); + if ((err == MZ_OK) && (comment_size > 0)) { + zip->comment = (char *)MZ_ALLOC(comment_size + 1); + if (zip->comment != NULL) { + comment_read = mz_stream_read(zip->stream, zip->comment, comment_size); + /* Don't fail if incorrect comment length read, not critical */ + if (comment_read < 0) + comment_read = 0; + zip->comment[comment_read] = 0; + } + } + + if ((err == MZ_OK) && ((number_entry_cd == UINT16_MAX) || (zip->cd_offset == UINT32_MAX))) { + /* Format should be Zip64, as the central directory or file size is too large */ + if (mz_zip_search_zip64_eocd(zip->stream, eocd_pos, &eocd_pos64) == MZ_OK) { + eocd_pos = eocd_pos64; + + err = mz_stream_seek(zip->stream, eocd_pos, MZ_SEEK_SET); + /* The signature, already checked */ + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &value32); + /* Size of zip64 end of central directory record */ + if (err == MZ_OK) + err = mz_stream_read_uint64(zip->stream, &value64); + /* Version made by */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &zip->version_madeby); + /* Version needed to extract */ + if (err == MZ_OK) + err = mz_stream_read_uint16(zip->stream, &value16); + /* Number of this disk */ + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &value32); + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &zip->disk_number_with_cd); + /* Total number of entries in the central directory on this disk */ + if (err == MZ_OK) + err = mz_stream_read_uint64(zip->stream, &zip->number_entry); + /* Total number of entries in the central directory */ + if (err == MZ_OK) + err = mz_stream_read_uint64(zip->stream, &number_entry_cd64); + if (zip->number_entry != number_entry_cd64) + err = MZ_FORMAT_ERROR; + /* Size of the central directory */ + if (err == MZ_OK) { + err = mz_stream_read_int64(zip->stream, &zip->cd_size); + if (zip->cd_size < 0) + err = MZ_FORMAT_ERROR; + } + /* Offset of start of central directory with respect to the starting disk number */ + if (err == MZ_OK) { + err = mz_stream_read_int64(zip->stream, &zip->cd_offset); + if (zip->cd_offset < 0) + err = MZ_FORMAT_ERROR; + } + } else if ((zip->number_entry == UINT16_MAX) || (number_entry_cd != zip->number_entry) || + (zip->cd_size == UINT16_MAX) || (zip->cd_offset == UINT32_MAX)) { + err = MZ_FORMAT_ERROR; + } + } + } + + if (err == MZ_OK) { + mz_zip_print("Zip - Read cd (disk %" PRId32 " entries %" PRId64 " offset %" PRId64 " size %" PRId64 ")\n", + zip->disk_number_with_cd, zip->number_entry, zip->cd_offset, zip->cd_size); + + /* Verify central directory signature exists at offset */ + err = mz_stream_seek(zip->stream, zip->cd_offset, MZ_SEEK_SET); + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &zip->cd_signature); + if ((err == MZ_OK) && (zip->cd_signature != MZ_ZIP_MAGIC_CENTRALHEADER)) { + /* If cd exists in large file and no zip-64 support, error for recover */ + if (eocd_pos > UINT32_MAX && eocd_pos64 == 0) + err = MZ_FORMAT_ERROR; + /* If cd not found attempt to seek backward to find it */ + if (err == MZ_OK) + err = mz_stream_seek(zip->stream, eocd_pos - zip->cd_size, MZ_SEEK_SET); + if (err == MZ_OK) + err = mz_stream_read_uint32(zip->stream, &zip->cd_signature); + if ((err == MZ_OK) && (zip->cd_signature == MZ_ZIP_MAGIC_CENTRALHEADER)) { + + /* If found compensate for incorrect locations */ + value64i = zip->cd_offset; + zip->cd_offset = eocd_pos - zip->cd_size; + /* Assume disk has prepended data */ + zip->disk_offset_shift = zip->cd_offset - value64i; + } + } + } + + if (err == MZ_OK) { + if (eocd_pos < zip->cd_offset) { + /* End of central dir should always come after central dir */ + err = MZ_FORMAT_ERROR; + } else if ((uint64_t)eocd_pos < (uint64_t)zip->cd_offset + zip->cd_size) { + /* Truncate size of cd if incorrect size or offset provided */ + zip->cd_size = eocd_pos - zip->cd_offset; + } + } + + return err; +} + +static int32_t mz_zip_write_cd(void *handle) { + mz_zip *zip = (mz_zip *)handle; + int64_t zip64_eocd_pos_inzip = 0; + int64_t disk_number = 0; + int64_t disk_size = 0; + int32_t comment_size = 0; + int32_t err = MZ_OK; + + + if (zip == NULL) + return MZ_PARAM_ERROR; + + if (mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, &disk_number) == MZ_OK) + zip->disk_number_with_cd = (uint32_t)disk_number; + if (mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_SIZE, &disk_size) == MZ_OK && disk_size > 0) + zip->disk_number_with_cd += 1; + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, -1); + if ((zip->disk_number_with_cd > 0) && (zip->open_mode & MZ_OPEN_MODE_APPEND)) { + // Overwrite existing central directory if using split disks + mz_stream_seek(zip->stream, 0, MZ_SEEK_SET); + } + + zip->cd_offset = mz_stream_tell(zip->stream); + mz_stream_seek(zip->cd_mem_stream, 0, MZ_SEEK_END); + zip->cd_size = (uint32_t)mz_stream_tell(zip->cd_mem_stream); + mz_stream_seek(zip->cd_mem_stream, 0, MZ_SEEK_SET); + + err = mz_stream_copy(zip->stream, zip->cd_mem_stream, (int32_t)zip->cd_size); + + mz_zip_print("Zip - Write cd (disk %" PRId32 " entries %" PRId64 " offset %" PRId64 " size %" PRId64 ")\n", + zip->disk_number_with_cd, zip->number_entry, zip->cd_offset, zip->cd_size); + + if (zip->cd_size == 0 && zip->number_entry > 0) { + // Zip does not contain central directory, open with recovery option + return MZ_FORMAT_ERROR; + } + + /* Write the ZIP64 central directory header */ + if (zip->cd_offset >= UINT32_MAX || zip->number_entry >= UINT16_MAX) { + zip64_eocd_pos_inzip = mz_stream_tell(zip->stream); + + err = mz_stream_write_uint32(zip->stream, MZ_ZIP_MAGIC_ENDHEADER64); + + /* Size of this 'zip64 end of central directory' */ + if (err == MZ_OK) + err = mz_stream_write_uint64(zip->stream, (uint64_t)44); + /* Version made by */ + if (err == MZ_OK) + err = mz_stream_write_uint16(zip->stream, zip->version_madeby); + /* Version needed */ + if (err == MZ_OK) + err = mz_stream_write_uint16(zip->stream, (uint16_t)45); + /* Number of this disk */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, zip->disk_number_with_cd); + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, zip->disk_number_with_cd); + /* Total number of entries in the central dir on this disk */ + if (err == MZ_OK) + err = mz_stream_write_uint64(zip->stream, zip->number_entry); + /* Total number of entries in the central dir */ + if (err == MZ_OK) + err = mz_stream_write_uint64(zip->stream, zip->number_entry); + /* Size of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_int64(zip->stream, zip->cd_size); + /* Offset of start of central directory with respect to the starting disk number */ + if (err == MZ_OK) + err = mz_stream_write_int64(zip->stream, zip->cd_offset); + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, MZ_ZIP_MAGIC_ENDLOCHEADER64); + + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, zip->disk_number_with_cd); + /* Relative offset to the end of zip64 central directory */ + if (err == MZ_OK) + err = mz_stream_write_int64(zip->stream, zip64_eocd_pos_inzip); + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, zip->disk_number_with_cd + 1); + } + + /* Write the central directory header */ + + /* Signature */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, MZ_ZIP_MAGIC_ENDHEADER); + /* Number of this disk */ + if (err == MZ_OK) + err = mz_stream_write_uint16(zip->stream, (uint16_t)zip->disk_number_with_cd); + /* Number of the disk with the start of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_uint16(zip->stream, (uint16_t)zip->disk_number_with_cd); + /* Total number of entries in the central dir on this disk */ + if (err == MZ_OK) { + if (zip->number_entry >= UINT16_MAX) + err = mz_stream_write_uint16(zip->stream, UINT16_MAX); + else + err = mz_stream_write_uint16(zip->stream, (uint16_t)zip->number_entry); + } + /* Total number of entries in the central dir */ + if (err == MZ_OK) { + if (zip->number_entry >= UINT16_MAX) + err = mz_stream_write_uint16(zip->stream, UINT16_MAX); + else + err = mz_stream_write_uint16(zip->stream, (uint16_t)zip->number_entry); + } + /* Size of the central directory */ + if (err == MZ_OK) + err = mz_stream_write_uint32(zip->stream, (uint32_t)zip->cd_size); + /* Offset of start of central directory with respect to the starting disk number */ + if (err == MZ_OK) { + if (zip->cd_offset >= UINT32_MAX) + err = mz_stream_write_uint32(zip->stream, UINT32_MAX); + else + err = mz_stream_write_uint32(zip->stream, (uint32_t)zip->cd_offset); + } + + /* Write global comment */ + if (zip->comment != NULL) { + comment_size = (int32_t)strlen(zip->comment); + if (comment_size > UINT16_MAX) + comment_size = UINT16_MAX; + } + if (err == MZ_OK) + err = mz_stream_write_uint16(zip->stream, (uint16_t)comment_size); + if (err == MZ_OK) { + if (mz_stream_write(zip->stream, zip->comment, comment_size) != comment_size) + err = MZ_READ_ERROR; + } + return err; +} + +static int32_t mz_zip_recover_cd(void *handle) { + mz_zip *zip = (mz_zip *)handle; + mz_zip_file local_file_info; + void *local_file_info_stream = NULL; + void *cd_mem_stream = NULL; + uint64_t number_entry = 0; + int64_t descriptor_pos = 0; + int64_t next_header_pos = 0; + int64_t disk_offset = 0; + int64_t disk_number = 0; + int64_t compressed_pos = 0; + int64_t compressed_end_pos = 0; + int64_t compressed_size = 0; + int64_t uncompressed_size = 0; + uint8_t descriptor_magic[4] = MZ_ZIP_MAGIC_DATADESCRIPTORU8; + uint8_t local_header_magic[4] = MZ_ZIP_MAGIC_LOCALHEADERU8; + uint8_t central_header_magic[4] = MZ_ZIP_MAGIC_CENTRALHEADERU8; + uint32_t crc32 = 0; + int32_t disk_number_with_cd = 0; + int32_t err = MZ_OK; + uint8_t zip64 = 0; + uint8_t eof = 0; + + + mz_zip_print("Zip - Recover - Start\n"); + + mz_zip_get_cd_mem_stream(handle, &cd_mem_stream); + + /* Determine if we are on a split disk or not */ + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, 0); + if (mz_stream_tell(zip->stream) < 0) { + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, -1); + mz_stream_seek(zip->stream, 0, MZ_SEEK_SET); + } else + disk_number_with_cd = 1; + + if (mz_stream_is_open(cd_mem_stream) != MZ_OK) + err = mz_stream_mem_open(cd_mem_stream, NULL, MZ_OPEN_MODE_CREATE); + + mz_stream_mem_create(&local_file_info_stream); + mz_stream_mem_open(local_file_info_stream, NULL, MZ_OPEN_MODE_CREATE); + + if (err == MZ_OK) { + err = mz_stream_find(zip->stream, (const void *)local_header_magic, sizeof(local_header_magic), + INT64_MAX, &next_header_pos); + } + + while (err == MZ_OK && !eof) { + /* Get current offset and disk number for central dir record */ + disk_offset = mz_stream_tell(zip->stream); + mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, &disk_number); + + /* Read local headers */ + memset(&local_file_info, 0, sizeof(local_file_info)); + err = mz_zip_entry_read_header(zip->stream, 1, &local_file_info, local_file_info_stream); + if (err != MZ_OK) + break; + + local_file_info.disk_offset = disk_offset; + if (disk_number < 0) + disk_number = 0; + local_file_info.disk_number = (uint32_t)disk_number; + + compressed_pos = mz_stream_tell(zip->stream); + + if ((err == MZ_OK) && (local_file_info.compressed_size > 0)) { + mz_stream_seek(zip->stream, local_file_info.compressed_size, MZ_SEEK_CUR); + } + + for (;;) { + /* Search for the next local header */ + err = mz_stream_find(zip->stream, (const void *)local_header_magic, sizeof(local_header_magic), + INT64_MAX, &next_header_pos); + + if (err == MZ_EXIST_ERROR) { + mz_stream_seek(zip->stream, compressed_pos, MZ_SEEK_SET); + + /* Search for central dir if no local header found */ + err = mz_stream_find(zip->stream, (const void *)central_header_magic, sizeof(central_header_magic), + INT64_MAX, &next_header_pos); + + if (err == MZ_EXIST_ERROR) { + /* Get end of stream if no central header found */ + mz_stream_seek(zip->stream, 0, MZ_SEEK_END); + next_header_pos = mz_stream_tell(zip->stream); + } + + eof = 1; + } + + if (local_file_info.flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR || local_file_info.compressed_size == 0) { + /* Search backwards for the descriptor, seeking too far back will be incorrect if compressed size is small */ + err = mz_stream_find_reverse(zip->stream, (const void *)descriptor_magic, sizeof(descriptor_magic), + MZ_ZIP_SIZE_MAX_DATA_DESCRIPTOR, &descriptor_pos); + if (err == MZ_OK) { + if (mz_zip_extrafield_contains(local_file_info.extrafield, + local_file_info.extrafield_size, MZ_ZIP_EXTENSION_ZIP64, NULL) == MZ_OK) + zip64 = 1; + + err = mz_zip_entry_read_descriptor(zip->stream, zip64, &crc32, + &compressed_size, &uncompressed_size); + + if (err == MZ_OK) { + if (local_file_info.crc == 0) + local_file_info.crc = crc32; + if (local_file_info.compressed_size == 0) + local_file_info.compressed_size = compressed_size; + if (local_file_info.uncompressed_size == 0) + local_file_info.uncompressed_size = uncompressed_size; + } + + compressed_end_pos = descriptor_pos; + } else if (eof) { + compressed_end_pos = next_header_pos; + } else if (local_file_info.flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR) { + /* Wrong local file entry found, keep searching */ + next_header_pos += 1; + mz_stream_seek(zip->stream, next_header_pos, MZ_SEEK_SET); + continue; + } + } else { + compressed_end_pos = next_header_pos; + } + + break; + } + + compressed_size = compressed_end_pos - compressed_pos; + + if (compressed_size > UINT32_MAX) { + /* Update sizes if 4GB file is written with no ZIP64 support */ + if (local_file_info.uncompressed_size < UINT32_MAX) { + local_file_info.compressed_size = compressed_size; + local_file_info.uncompressed_size = 0; + } + } + + mz_zip_print("Zip - Recover - Entry %s (csize %" PRId64 " usize %" PRId64 " flags 0x%" PRIx16 ")\n", + local_file_info.filename, local_file_info.compressed_size, local_file_info.uncompressed_size, + local_file_info.flag); + + /* Rewrite central dir with local headers and offsets */ + err = mz_zip_entry_write_header(cd_mem_stream, 0, &local_file_info); + if (err == MZ_OK) + number_entry += 1; + + err = mz_stream_seek(zip->stream, next_header_pos, MZ_SEEK_SET); + } + + mz_stream_mem_delete(&local_file_info_stream); + + mz_zip_print("Zip - Recover - Complete (cddisk %" PRId32 " entries %" PRId64 ")\n", + disk_number_with_cd, number_entry); + + if (number_entry == 0) + return err; + + /* Set new upper seek boundary for central dir mem stream */ + disk_offset = mz_stream_tell(cd_mem_stream); + mz_stream_mem_set_buffer_limit(cd_mem_stream, (int32_t)disk_offset); + + /* Set new central directory info */ + mz_zip_set_cd_stream(handle, 0, cd_mem_stream); + mz_zip_set_number_entry(handle, number_entry); + mz_zip_set_disk_number_with_cd(handle, disk_number_with_cd); + + return MZ_OK; +} + +void *mz_zip_create(void **handle) { + mz_zip *zip = NULL; + + zip = (mz_zip *)MZ_ALLOC(sizeof(mz_zip)); + if (zip != NULL) { + memset(zip, 0, sizeof(mz_zip)); + zip->data_descriptor = 1; + } + if (handle != NULL) + *handle = zip; + + return zip; +} + +void mz_zip_delete(void **handle) { + mz_zip *zip = NULL; + if (handle == NULL) + return; + zip = (mz_zip *)*handle; + if (zip != NULL) { + MZ_FREE(zip); + } + *handle = NULL; +} + +int32_t mz_zip_open(void *handle, void *stream, int32_t mode) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + + + if (zip == NULL) + return MZ_PARAM_ERROR; + + mz_zip_print("Zip - Open\n"); + + zip->stream = stream; + + mz_stream_mem_create(&zip->cd_mem_stream); + + if (mode & MZ_OPEN_MODE_WRITE) { + mz_stream_mem_open(zip->cd_mem_stream, NULL, MZ_OPEN_MODE_CREATE); + zip->cd_stream = zip->cd_mem_stream; + } else { + zip->cd_stream = stream; + } + + if ((mode & MZ_OPEN_MODE_READ) || (mode & MZ_OPEN_MODE_APPEND)) { + if ((mode & MZ_OPEN_MODE_CREATE) == 0) { + err = mz_zip_read_cd(zip); + if (err != MZ_OK) { + mz_zip_print("Zip - Error detected reading cd (%" PRId32 ")\n", err); + if (zip->recover && mz_zip_recover_cd(zip) == MZ_OK) + err = MZ_OK; + } + } + + if ((err == MZ_OK) && (mode & MZ_OPEN_MODE_APPEND)) { + if (zip->cd_size > 0) { + /* Store central directory in memory */ + err = mz_stream_seek(zip->stream, zip->cd_offset, MZ_SEEK_SET); + if (err == MZ_OK) + err = mz_stream_copy(zip->cd_mem_stream, zip->stream, (int32_t)zip->cd_size); + if (err == MZ_OK) + err = mz_stream_seek(zip->stream, zip->cd_offset, MZ_SEEK_SET); + } else { + if (zip->cd_signature == MZ_ZIP_MAGIC_ENDHEADER) { + /* If tiny zip then overwrite end header */ + err = mz_stream_seek(zip->stream, zip->cd_offset, MZ_SEEK_SET); + } else { + /* If no central directory, append new zip to end of file */ + err = mz_stream_seek(zip->stream, 0, MZ_SEEK_END); + } + } + + if (zip->disk_number_with_cd > 0) { + /* Move to last disk to begin appending */ + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, zip->disk_number_with_cd - 1); + } + } else { + zip->cd_start_pos = zip->cd_offset; + } + } + + if (err != MZ_OK) { + mz_zip_close(zip); + return err; + } + + /* Memory streams used to store variable length file info data */ + mz_stream_mem_create(&zip->file_info_stream); + mz_stream_mem_open(zip->file_info_stream, NULL, MZ_OPEN_MODE_CREATE); + + mz_stream_mem_create(&zip->local_file_info_stream); + mz_stream_mem_open(zip->local_file_info_stream, NULL, MZ_OPEN_MODE_CREATE); + + zip->open_mode = mode; + + return err; +} + +int32_t mz_zip_close(void *handle) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + mz_zip_print("Zip - Close\n"); + + if (mz_zip_entry_is_open(handle) == MZ_OK) + err = mz_zip_entry_close(handle); + + if ((err == MZ_OK) && (zip->open_mode & MZ_OPEN_MODE_WRITE)) + err = mz_zip_write_cd(handle); + + if (zip->cd_mem_stream != NULL) { + mz_stream_close(zip->cd_mem_stream); + mz_stream_delete(&zip->cd_mem_stream); + } + + if (zip->file_info_stream != NULL) { + mz_stream_mem_close(zip->file_info_stream); + mz_stream_mem_delete(&zip->file_info_stream); + } + if (zip->local_file_info_stream != NULL) { + mz_stream_mem_close(zip->local_file_info_stream); + mz_stream_mem_delete(&zip->local_file_info_stream); + } + + if (zip->comment) { + MZ_FREE(zip->comment); + zip->comment = NULL; + } + + zip->stream = NULL; + zip->cd_stream = NULL; + + return err; +} + +int32_t mz_zip_get_comment(void *handle, const char **comment) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || comment == NULL) + return MZ_PARAM_ERROR; + if (zip->comment == NULL) + return MZ_EXIST_ERROR; + *comment = zip->comment; + return MZ_OK; +} + +int32_t mz_zip_set_comment(void *handle, const char *comment) { + mz_zip *zip = (mz_zip *)handle; + int32_t comment_size = 0; + if (zip == NULL || comment == NULL) + return MZ_PARAM_ERROR; + if (zip->comment != NULL) + MZ_FREE(zip->comment); + comment_size = (int32_t)strlen(comment); + if (comment_size > UINT16_MAX) + return MZ_PARAM_ERROR; + zip->comment = (char *)MZ_ALLOC(comment_size+1); + if (zip->comment == NULL) + return MZ_MEM_ERROR; + memset(zip->comment, 0, comment_size+1); + strncpy(zip->comment, comment, comment_size); + return MZ_OK; +} + +int32_t mz_zip_get_version_madeby(void *handle, uint16_t *version_madeby) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || version_madeby == NULL) + return MZ_PARAM_ERROR; + *version_madeby = zip->version_madeby; + return MZ_OK; +} + +int32_t mz_zip_set_version_madeby(void *handle, uint16_t version_madeby) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + zip->version_madeby = version_madeby; + return MZ_OK; +} + +int32_t mz_zip_set_recover(void *handle, uint8_t recover) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + zip->recover = recover; + return MZ_OK; +} + +int32_t mz_zip_set_data_descriptor(void *handle, uint8_t data_descriptor) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + zip->data_descriptor = data_descriptor; + return MZ_OK; +} + +int32_t mz_zip_get_stream(void *handle, void **stream) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || stream == NULL) + return MZ_PARAM_ERROR; + *stream = zip->stream; + if (*stream == NULL) + return MZ_EXIST_ERROR; + return MZ_OK; +} + +int32_t mz_zip_set_cd_stream(void *handle, int64_t cd_start_pos, void *cd_stream) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || cd_stream == NULL) + return MZ_PARAM_ERROR; + zip->cd_offset = 0; + zip->cd_stream = cd_stream; + zip->cd_start_pos = cd_start_pos; + return MZ_OK; +} + +int32_t mz_zip_get_cd_mem_stream(void *handle, void **cd_mem_stream) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || cd_mem_stream == NULL) + return MZ_PARAM_ERROR; + *cd_mem_stream = zip->cd_mem_stream; + if (*cd_mem_stream == NULL) + return MZ_EXIST_ERROR; + return MZ_OK; +} + +int32_t mz_zip_set_number_entry(void *handle, uint64_t number_entry) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + zip->number_entry = number_entry; + return MZ_OK; +} + +int32_t mz_zip_get_number_entry(void *handle, uint64_t *number_entry) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || number_entry == NULL) + return MZ_PARAM_ERROR; + *number_entry = zip->number_entry; + return MZ_OK; +} + +int32_t mz_zip_set_disk_number_with_cd(void *handle, uint32_t disk_number_with_cd) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + zip->disk_number_with_cd = disk_number_with_cd; + return MZ_OK; +} + +int32_t mz_zip_get_disk_number_with_cd(void *handle, uint32_t *disk_number_with_cd) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || disk_number_with_cd == NULL) + return MZ_PARAM_ERROR; + *disk_number_with_cd = zip->disk_number_with_cd; + return MZ_OK; +} + +static int32_t mz_zip_entry_close_int(void *handle) { + mz_zip *zip = (mz_zip *)handle; + + if (zip->crypt_stream != NULL) + mz_stream_delete(&zip->crypt_stream); + zip->crypt_stream = NULL; + if (zip->compress_stream != NULL) + mz_stream_delete(&zip->compress_stream); + zip->compress_stream = NULL; + + zip->entry_opened = 0; + + return MZ_OK; +} + +static int32_t mz_zip_entry_open_int(void *handle, uint8_t raw, int16_t compress_level, const char *password) { + mz_zip *zip = (mz_zip *)handle; + int64_t max_total_in = 0; + int64_t header_size = 0; + int64_t footer_size = 0; + int32_t err = MZ_OK; + uint8_t use_crypt = 0; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + switch (zip->file_info.compression_method) { + case MZ_COMPRESS_METHOD_STORE: + case MZ_COMPRESS_METHOD_DEFLATE: +#ifdef HAVE_BZIP2 + case MZ_COMPRESS_METHOD_BZIP2: +#endif +#ifdef HAVE_LZMA + case MZ_COMPRESS_METHOD_LZMA: +#endif +#if defined(HAVE_LZMA) || defined(HAVE_LIBCOMP) + case MZ_COMPRESS_METHOD_XZ: +#endif +#ifdef HAVE_ZSTD + case MZ_COMPRESS_METHOD_ZSTD: +#endif + err = MZ_OK; + break; + default: + return MZ_SUPPORT_ERROR; + } + +#ifndef HAVE_WZAES + if (zip->file_info.aes_version) + return MZ_SUPPORT_ERROR; +#endif + + zip->entry_raw = raw; + + if ((zip->file_info.flag & MZ_ZIP_FLAG_ENCRYPTED) && (password != NULL)) { + if (zip->open_mode & MZ_OPEN_MODE_WRITE) { + /* Encrypt only when we are not trying to write raw and password is supplied. */ + if (!zip->entry_raw) + use_crypt = 1; + } else if (zip->open_mode & MZ_OPEN_MODE_READ) { + /* Decrypt only when password is supplied. Don't error when password */ + /* is not supplied as we may want to read the raw encrypted data. */ + use_crypt = 1; + } + } + + if ((err == MZ_OK) && (use_crypt)) { +#ifdef HAVE_WZAES + if (zip->file_info.aes_version) { + mz_stream_wzaes_create(&zip->crypt_stream); + mz_stream_wzaes_set_password(zip->crypt_stream, password); + mz_stream_wzaes_set_encryption_mode(zip->crypt_stream, zip->file_info.aes_encryption_mode); + } else +#endif + { +#ifdef HAVE_PKCRYPT + uint8_t verify1 = (uint8_t)((zip->file_info.pk_verify >> 8) & 0xff); + uint8_t verify2 = (uint8_t)((zip->file_info.pk_verify) & 0xff); + + mz_stream_pkcrypt_create(&zip->crypt_stream); + mz_stream_pkcrypt_set_password(zip->crypt_stream, password); + mz_stream_pkcrypt_set_verify(zip->crypt_stream, verify1, verify2); +#endif + } + } + + if (err == MZ_OK) { + if (zip->crypt_stream == NULL) + mz_stream_raw_create(&zip->crypt_stream); + + mz_stream_set_base(zip->crypt_stream, zip->stream); + + err = mz_stream_open(zip->crypt_stream, NULL, zip->open_mode); + } + + if (err == MZ_OK) { + if (zip->entry_raw || zip->file_info.compression_method == MZ_COMPRESS_METHOD_STORE) + mz_stream_raw_create(&zip->compress_stream); +#ifdef HAVE_ZLIB + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_DEFLATE) + mz_stream_zlib_create(&zip->compress_stream); +#endif +#ifdef HAVE_BZIP2 + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_BZIP2) + mz_stream_bzip_create(&zip->compress_stream); +#endif +#ifdef HAVE_LIBCOMP + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_DEFLATE || + zip->file_info.compression_method == MZ_COMPRESS_METHOD_XZ) { + mz_stream_libcomp_create(&zip->compress_stream); + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_COMPRESS_METHOD, + zip->file_info.compression_method); + } +#endif +#ifdef HAVE_LZMA + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_LZMA || + zip->file_info.compression_method == MZ_COMPRESS_METHOD_XZ) { + mz_stream_lzma_create(&zip->compress_stream); + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_COMPRESS_METHOD, + zip->file_info.compression_method); + } +#endif +#ifdef HAVE_ZSTD + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_ZSTD) + mz_stream_zstd_create(&zip->compress_stream); +#endif + else + err = MZ_PARAM_ERROR; + } + + if (err == MZ_OK) { + if (zip->open_mode & MZ_OPEN_MODE_WRITE) { + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_COMPRESS_LEVEL, compress_level); + } else { + int32_t set_end_of_stream = 0; + +#ifndef HAVE_LIBCOMP + if (zip->entry_raw || + zip->file_info.compression_method == MZ_COMPRESS_METHOD_STORE || + zip->file_info.flag & MZ_ZIP_FLAG_ENCRYPTED) +#endif + { + max_total_in = zip->file_info.compressed_size; + mz_stream_set_prop_int64(zip->crypt_stream, MZ_STREAM_PROP_TOTAL_IN_MAX, max_total_in); + + if (mz_stream_get_prop_int64(zip->crypt_stream, MZ_STREAM_PROP_HEADER_SIZE, &header_size) == MZ_OK) + max_total_in -= header_size; + if (mz_stream_get_prop_int64(zip->crypt_stream, MZ_STREAM_PROP_FOOTER_SIZE, &footer_size) == MZ_OK) + max_total_in -= footer_size; + + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_IN_MAX, max_total_in); + } + + switch (zip->file_info.compression_method) { + case MZ_COMPRESS_METHOD_LZMA: + case MZ_COMPRESS_METHOD_XZ: + set_end_of_stream = (zip->file_info.flag & MZ_ZIP_FLAG_LZMA_EOS_MARKER); + break; + case MZ_COMPRESS_METHOD_ZSTD: + set_end_of_stream = 1; + break; + } + + if (set_end_of_stream) { + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_IN_MAX, zip->file_info.compressed_size); + mz_stream_set_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_OUT_MAX, zip->file_info.uncompressed_size); + } + } + + mz_stream_set_base(zip->compress_stream, zip->crypt_stream); + + err = mz_stream_open(zip->compress_stream, NULL, zip->open_mode); + } + + if (err == MZ_OK) { + zip->entry_opened = 1; + zip->entry_crc32 = 0; + } else { + mz_zip_entry_close_int(handle); + } + + return err; +} + +int32_t mz_zip_entry_is_open(void *handle) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL) + return MZ_PARAM_ERROR; + if (zip->entry_opened == 0) + return MZ_EXIST_ERROR; + return MZ_OK; +} + +int32_t mz_zip_entry_read_open(void *handle, uint8_t raw, const char *password) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + int32_t err_shift = MZ_OK; + +#if defined(MZ_ZIP_NO_ENCRYPTION) + if (password != NULL) + return MZ_SUPPORT_ERROR; +#endif + if (zip == NULL) + return MZ_PARAM_ERROR; + if ((zip->open_mode & MZ_OPEN_MODE_READ) == 0) + return MZ_PARAM_ERROR; + if (zip->entry_scanned == 0) + return MZ_PARAM_ERROR; + + mz_zip_print("Zip - Entry - Read open (raw %" PRId32 ")\n", raw); + + err = mz_zip_entry_seek_local_header(handle); + if (err == MZ_OK) + err = mz_zip_entry_read_header(zip->stream, 1, &zip->local_file_info, zip->local_file_info_stream); + + if (err == MZ_FORMAT_ERROR && zip->disk_offset_shift > 0) { + /* Perhaps we didn't compensated correctly for incorrect cd offset */ + err_shift = mz_stream_seek(zip->stream, zip->file_info.disk_offset, MZ_SEEK_SET); + if (err_shift == MZ_OK) + err_shift = mz_zip_entry_read_header(zip->stream, 1, &zip->local_file_info, zip->local_file_info_stream); + if (err_shift == MZ_OK) { + zip->disk_offset_shift = 0; + err = err_shift; + } + } + +#ifdef MZ_ZIP_NO_DECOMPRESSION + if (!raw && zip->file_info.compression_method != MZ_COMPRESS_METHOD_STORE) + err = MZ_SUPPORT_ERROR; +#endif + if (err == MZ_OK) + err = mz_zip_entry_open_int(handle, raw, 0, password); + + return err; +} + +int32_t mz_zip_entry_write_open(void *handle, const mz_zip_file *file_info, int16_t compress_level, uint8_t raw, const char *password) { + mz_zip *zip = (mz_zip *)handle; + int64_t filename_pos = -1; + int64_t extrafield_pos = 0; + int64_t comment_pos = 0; + int64_t linkname_pos = 0; + int64_t disk_number = 0; + uint8_t is_dir = 0; + int32_t err = MZ_OK; + +#if defined(MZ_ZIP_NO_ENCRYPTION) + if (password != NULL) + return MZ_SUPPORT_ERROR; +#endif + if (zip == NULL || file_info == NULL || file_info->filename == NULL) + return MZ_PARAM_ERROR; + + if (mz_zip_entry_is_open(handle) == MZ_OK) { + err = mz_zip_entry_close(handle); + if (err != MZ_OK) + return err; + } + + memcpy(&zip->file_info, file_info, sizeof(mz_zip_file)); + + mz_zip_print("Zip - Entry - Write open - %s (level %" PRId16 " raw %" PRId8 ")\n", + zip->file_info.filename, compress_level, raw); + + mz_stream_seek(zip->file_info_stream, 0, MZ_SEEK_SET); + mz_stream_write(zip->file_info_stream, file_info, sizeof(mz_zip_file)); + + /* Copy filename, extrafield, and comment internally */ + filename_pos = mz_stream_tell(zip->file_info_stream); + if (file_info->filename != NULL) + mz_stream_write(zip->file_info_stream, file_info->filename, (int32_t)strlen(file_info->filename)); + mz_stream_write_uint8(zip->file_info_stream, 0); + + extrafield_pos = mz_stream_tell(zip->file_info_stream); + if (file_info->extrafield != NULL) + mz_stream_write(zip->file_info_stream, file_info->extrafield, file_info->extrafield_size); + mz_stream_write_uint8(zip->file_info_stream, 0); + + comment_pos = mz_stream_tell(zip->file_info_stream); + if (file_info->comment != NULL) + mz_stream_write(zip->file_info_stream, file_info->comment, file_info->comment_size); + mz_stream_write_uint8(zip->file_info_stream, 0); + + linkname_pos = mz_stream_tell(zip->file_info_stream); + if (file_info->linkname != NULL) + mz_stream_write(zip->file_info_stream, file_info->linkname, (int32_t)strlen(file_info->linkname)); + mz_stream_write_uint8(zip->file_info_stream, 0); + + mz_stream_mem_get_buffer_at(zip->file_info_stream, filename_pos, (const void **)&zip->file_info.filename); + mz_stream_mem_get_buffer_at(zip->file_info_stream, extrafield_pos, (const void **)&zip->file_info.extrafield); + mz_stream_mem_get_buffer_at(zip->file_info_stream, comment_pos, (const void **)&zip->file_info.comment); + mz_stream_mem_get_buffer_at(zip->file_info_stream, linkname_pos, (const void **)&zip->file_info.linkname); + + if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_DEFLATE) { + if ((compress_level == 8) || (compress_level == 9)) + zip->file_info.flag |= MZ_ZIP_FLAG_DEFLATE_MAX; + if (compress_level == 2) + zip->file_info.flag |= MZ_ZIP_FLAG_DEFLATE_FAST; + if (compress_level == 1) + zip->file_info.flag |= MZ_ZIP_FLAG_DEFLATE_SUPER_FAST; + } +#if defined(HAVE_LZMA) || defined(HAVE_LIBCOMP) + else if (zip->file_info.compression_method == MZ_COMPRESS_METHOD_LZMA || + zip->file_info.compression_method == MZ_COMPRESS_METHOD_XZ) + zip->file_info.flag |= MZ_ZIP_FLAG_LZMA_EOS_MARKER; +#endif + + if (mz_zip_attrib_is_dir(zip->file_info.external_fa, zip->file_info.version_madeby) == MZ_OK) + is_dir = 1; + + if (!is_dir) { + if (zip->data_descriptor) + zip->file_info.flag |= MZ_ZIP_FLAG_DATA_DESCRIPTOR; + if (password != NULL) + zip->file_info.flag |= MZ_ZIP_FLAG_ENCRYPTED; + } + + mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, &disk_number); + zip->file_info.disk_number = (uint32_t)disk_number; + zip->file_info.disk_offset = mz_stream_tell(zip->stream); + + if (zip->file_info.flag & MZ_ZIP_FLAG_ENCRYPTED) { +#ifdef HAVE_PKCRYPT + /* Pre-calculated CRC value is required for PKWARE traditional encryption */ + uint32_t dos_date = mz_zip_time_t_to_dos_date(zip->file_info.modified_date); + zip->file_info.pk_verify = mz_zip_get_pk_verify(dos_date, zip->file_info.crc, zip->file_info.flag); +#endif +#ifdef HAVE_WZAES + if (zip->file_info.aes_version && zip->file_info.aes_encryption_mode == 0) + zip->file_info.aes_encryption_mode = MZ_AES_ENCRYPTION_MODE_256; +#endif + } + + zip->file_info.crc = 0; + zip->file_info.compressed_size = 0; + + if ((compress_level == 0) || (is_dir)) + zip->file_info.compression_method = MZ_COMPRESS_METHOD_STORE; + +#ifdef MZ_ZIP_NO_COMPRESSION + if (zip->file_info.compression_method != MZ_COMPRESS_METHOD_STORE) + err = MZ_SUPPORT_ERROR; +#endif + if (err == MZ_OK) + err = mz_zip_entry_write_header(zip->stream, 1, &zip->file_info); + if (err == MZ_OK) + err = mz_zip_entry_open_int(handle, raw, compress_level, password); + + return err; +} + +int32_t mz_zip_entry_read(void *handle, void *buf, int32_t len) { + mz_zip *zip = (mz_zip *)handle; + int32_t read = 0; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + if (UINT_MAX == UINT16_MAX && len > UINT16_MAX) /* zlib limitation */ + return MZ_PARAM_ERROR; + if (len == 0) + return MZ_PARAM_ERROR; + + if (zip->file_info.compressed_size == 0) + return 0; + + /* Read entire entry even if uncompressed_size = 0, otherwise */ + /* aes encryption validation will fail if compressed_size > 0 */ + read = mz_stream_read(zip->compress_stream, buf, len); + if (read > 0) + zip->entry_crc32 = mz_crypt_crc32_update(zip->entry_crc32, buf, read); + + mz_zip_print("Zip - Entry - Read - %" PRId32 " (max %" PRId32 ")\n", read, len); + + return read; +} + +int32_t mz_zip_entry_write(void *handle, const void *buf, int32_t len) { + mz_zip *zip = (mz_zip *)handle; + int32_t written = 0; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + written = mz_stream_write(zip->compress_stream, buf, len); + if (written > 0) + zip->entry_crc32 = mz_crypt_crc32_update(zip->entry_crc32, buf, written); + + mz_zip_print("Zip - Entry - Write - %" PRId32 " (max %" PRId32 ")\n", written, len); + + return written; +} + +int32_t mz_zip_entry_read_close(void *handle, uint32_t *crc32, int64_t *compressed_size, + int64_t *uncompressed_size) { + mz_zip *zip = (mz_zip *)handle; + int64_t total_in = 0; + int32_t err = MZ_OK; + uint8_t zip64 = 0; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + mz_stream_close(zip->compress_stream); + + mz_zip_print("Zip - Entry - Read Close\n"); + + if (crc32 != NULL) + *crc32 = zip->file_info.crc; + if (compressed_size != NULL) + *compressed_size = zip->file_info.compressed_size; + if (uncompressed_size != NULL) + *uncompressed_size = zip->file_info.uncompressed_size; + + mz_stream_get_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_IN, &total_in); + + if ((zip->file_info.flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR) && + ((zip->file_info.flag & MZ_ZIP_FLAG_MASK_LOCAL_INFO) == 0) && + (crc32 != NULL || compressed_size != NULL || uncompressed_size != NULL)) { + /* Check to see if data descriptor is zip64 bit format or not */ + if (mz_zip_extrafield_contains(zip->local_file_info.extrafield, + zip->local_file_info.extrafield_size, MZ_ZIP_EXTENSION_ZIP64, NULL) == MZ_OK) + zip64 = 1; + + err = mz_zip_entry_seek_local_header(handle); + + /* Seek to end of compressed stream since we might have over-read during compression */ + if (err == MZ_OK) + err = mz_stream_seek(zip->stream, MZ_ZIP_SIZE_LD_ITEM + + (int64_t)zip->local_file_info.filename_size + + (int64_t)zip->local_file_info.extrafield_size + + total_in, MZ_SEEK_CUR); + + /* Read data descriptor */ + if (err == MZ_OK) + err = mz_zip_entry_read_descriptor(zip->stream, zip64, + crc32, compressed_size, uncompressed_size); + } + + /* If entire entry was not read verification will fail */ + if ((err == MZ_OK) && (total_in > 0) && (!zip->entry_raw)) { +#ifdef HAVE_WZAES + /* AES zip version AE-1 will expect a valid crc as well */ + if (zip->file_info.aes_version <= 0x0001) +#endif + { + if (zip->entry_crc32 != zip->file_info.crc) { + mz_zip_print("Zip - Entry - Crc failed (actual 0x%08" PRIx32 " expected 0x%08" PRIx32 ")\n", + zip->entry_crc32, zip->file_info.crc); + + err = MZ_CRC_ERROR; + } + } + } + + mz_zip_entry_close_int(handle); + + return err; +} + +int32_t mz_zip_entry_write_close(void *handle, uint32_t crc32, int64_t compressed_size, + int64_t uncompressed_size) { + mz_zip *zip = (mz_zip *)handle; + int64_t end_disk_number = 0; + int32_t err = MZ_OK; + uint8_t zip64 = 0; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + mz_stream_close(zip->compress_stream); + + if (!zip->entry_raw) + crc32 = zip->entry_crc32; + + mz_zip_print("Zip - Entry - Write Close (crc 0x%08" PRIx32 " cs %" PRId64 " ucs %" PRId64 ")\n", + crc32, compressed_size, uncompressed_size); + + /* If sizes are not set, then read them from the compression stream */ + if (compressed_size < 0) + mz_stream_get_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_OUT, &compressed_size); + if (uncompressed_size < 0) + mz_stream_get_prop_int64(zip->compress_stream, MZ_STREAM_PROP_TOTAL_IN, &uncompressed_size); + + if (zip->file_info.flag & MZ_ZIP_FLAG_ENCRYPTED) { + mz_stream_set_base(zip->crypt_stream, zip->stream); + err = mz_stream_close(zip->crypt_stream); + + mz_stream_get_prop_int64(zip->crypt_stream, MZ_STREAM_PROP_TOTAL_OUT, &compressed_size); + } + + mz_zip_entry_needs_zip64(&zip->file_info, 1, &zip64); + + if ((err == MZ_OK) && (zip->file_info.flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR)) { + /* Determine if we need to write data descriptor in zip64 format, + if local extrafield was saved with zip64 extrafield */ + + if (zip->file_info.flag & MZ_ZIP_FLAG_MASK_LOCAL_INFO) + err = mz_zip_entry_write_descriptor(zip->stream, + zip64, 0, compressed_size, 0); + else + err = mz_zip_entry_write_descriptor(zip->stream, + zip64, crc32, compressed_size, uncompressed_size); + } + + /* Write file info to central directory */ + + mz_zip_print("Zip - Entry - Write cd (ucs %" PRId64 " cs %" PRId64 " crc 0x%08" PRIx32 ")\n", + uncompressed_size, compressed_size, crc32); + + zip->file_info.crc = crc32; + zip->file_info.compressed_size = compressed_size; + zip->file_info.uncompressed_size = uncompressed_size; + + if (err == MZ_OK) + err = mz_zip_entry_write_header(zip->cd_mem_stream, 0, &zip->file_info); + + /* Update local header with crc32 and sizes */ + if ((err == MZ_OK) && ((zip->file_info.flag & MZ_ZIP_FLAG_DATA_DESCRIPTOR) == 0) && + ((zip->file_info.flag & MZ_ZIP_FLAG_MASK_LOCAL_INFO) == 0)) { + /* Save the disk number and position we are to seek back after updating local header */ + int64_t end_pos = mz_stream_tell(zip->stream); + mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, &end_disk_number); + + err = mz_zip_entry_seek_local_header(handle); + + if (err == MZ_OK) { + /* Seek to crc32 and sizes offset in local header */ + err = mz_stream_seek(zip->stream, MZ_ZIP_OFFSET_CRC_SIZES, MZ_SEEK_CUR); + } + + if (err == MZ_OK) + err = mz_zip_entry_write_crc_sizes(zip->stream, zip64, 0, &zip->file_info); + + /* Seek to and update zip64 extension sizes */ + if ((err == MZ_OK) && (zip64)) { + int64_t filename_size = zip->file_info.filename_size; + + if (filename_size == 0) + filename_size = strlen(zip->file_info.filename); + + /* Since we write zip64 extension first we know its offset */ + err = mz_stream_seek(zip->stream, 2 + 2 + filename_size + 4, MZ_SEEK_CUR); + + if (err == MZ_OK) + err = mz_stream_write_uint64(zip->stream, zip->file_info.uncompressed_size); + if (err == MZ_OK) + err = mz_stream_write_uint64(zip->stream, zip->file_info.compressed_size); + } + + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, end_disk_number); + mz_stream_seek(zip->stream, end_pos, MZ_SEEK_SET); + } + + zip->number_entry += 1; + + mz_zip_entry_close_int(handle); + + return err; +} + +int32_t mz_zip_entry_seek_local_header(void *handle) { + mz_zip *zip = (mz_zip *)handle; + int64_t disk_size = 0; + uint32_t disk_number = zip->file_info.disk_number; + + if (disk_number == zip->disk_number_with_cd) { + mz_stream_get_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_SIZE, &disk_size); + if ((disk_size == 0) || ((zip->open_mode & MZ_OPEN_MODE_WRITE) == 0)) + disk_number = (uint32_t)-1; + } + + mz_stream_set_prop_int64(zip->stream, MZ_STREAM_PROP_DISK_NUMBER, disk_number); + + mz_zip_print("Zip - Entry - Seek local (disk %" PRId32 " offset %" PRId64 ")\n", + disk_number, zip->file_info.disk_offset); + + /* Guard against seek overflows */ + if ((zip->disk_offset_shift > 0) && + (zip->file_info.disk_offset > (INT64_MAX - zip->disk_offset_shift))) + return MZ_FORMAT_ERROR; + + return mz_stream_seek(zip->stream, zip->file_info.disk_offset + zip->disk_offset_shift, MZ_SEEK_SET); +} + +int32_t mz_zip_entry_close(void *handle) { + return mz_zip_entry_close_raw(handle, UINT64_MAX, 0); +} + +int32_t mz_zip_entry_close_raw(void *handle, int64_t uncompressed_size, uint32_t crc32) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + if (zip->open_mode & MZ_OPEN_MODE_WRITE) + err = mz_zip_entry_write_close(handle, crc32, UINT64_MAX, uncompressed_size); + else + err = mz_zip_entry_read_close(handle, NULL, NULL, NULL); + + return err; +} + +int32_t mz_zip_entry_is_dir(void *handle) { + mz_zip *zip = (mz_zip *)handle; + int32_t filename_length = 0; + + if (zip == NULL) + return MZ_PARAM_ERROR; + if (zip->entry_scanned == 0) + return MZ_PARAM_ERROR; + if (mz_zip_attrib_is_dir(zip->file_info.external_fa, zip->file_info.version_madeby) == MZ_OK) + return MZ_OK; + + filename_length = (int32_t)strlen(zip->file_info.filename); + if (filename_length > 0) { + if ((zip->file_info.filename[filename_length - 1] == '/') || + (zip->file_info.filename[filename_length - 1] == '\\')) + return MZ_OK; + } + return MZ_EXIST_ERROR; +} + +int32_t mz_zip_entry_is_symlink(void *handle) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + if (zip->entry_scanned == 0) + return MZ_PARAM_ERROR; + if (mz_zip_attrib_is_symlink(zip->file_info.external_fa, zip->file_info.version_madeby) != MZ_OK) + return MZ_EXIST_ERROR; + if (zip->file_info.linkname == NULL || *zip->file_info.linkname == 0) + return MZ_EXIST_ERROR; + + return MZ_OK; +} + +int32_t mz_zip_entry_get_info(void *handle, mz_zip_file **file_info) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + if ((zip->open_mode & MZ_OPEN_MODE_WRITE) == 0) { + if (!zip->entry_scanned) + return MZ_PARAM_ERROR; + } + + *file_info = &zip->file_info; + return MZ_OK; +} + +int32_t mz_zip_entry_get_local_info(void *handle, mz_zip_file **local_file_info) { + mz_zip *zip = (mz_zip *)handle; + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + *local_file_info = &zip->local_file_info; + return MZ_OK; +} + +int32_t mz_zip_entry_set_extrafield(void *handle, const uint8_t *extrafield, uint16_t extrafield_size) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL || mz_zip_entry_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + zip->file_info.extrafield = extrafield; + zip->file_info.extrafield_size = extrafield_size; + return MZ_OK; +} + +static int32_t mz_zip_goto_next_entry_int(void *handle) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + zip->entry_scanned = 0; + + mz_stream_set_prop_int64(zip->cd_stream, MZ_STREAM_PROP_DISK_NUMBER, -1); + + err = mz_stream_seek(zip->cd_stream, zip->cd_current_pos, MZ_SEEK_SET); + if (err == MZ_OK) + err = mz_zip_entry_read_header(zip->cd_stream, 0, &zip->file_info, zip->file_info_stream); + if (err == MZ_OK) + zip->entry_scanned = 1; + return err; +} + +int64_t mz_zip_get_entry(void *handle) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + return zip->cd_current_pos; +} + +int32_t mz_zip_goto_entry(void *handle, int64_t cd_pos) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + if (cd_pos < zip->cd_start_pos || cd_pos > zip->cd_start_pos + zip->cd_size) + return MZ_PARAM_ERROR; + + zip->cd_current_pos = cd_pos; + + return mz_zip_goto_next_entry_int(handle); +} + +int32_t mz_zip_goto_first_entry(void *handle) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + zip->cd_current_pos = zip->cd_start_pos; + + return mz_zip_goto_next_entry_int(handle); +} + +int32_t mz_zip_goto_next_entry(void *handle) { + mz_zip *zip = (mz_zip *)handle; + + if (zip == NULL) + return MZ_PARAM_ERROR; + + zip->cd_current_pos += (int64_t)MZ_ZIP_SIZE_CD_ITEM + zip->file_info.filename_size + + zip->file_info.extrafield_size + zip->file_info.comment_size; + + return mz_zip_goto_next_entry_int(handle); +} + +int32_t mz_zip_locate_entry(void *handle, const char *filename, uint8_t ignore_case) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + int32_t result = 0; + + if (zip == NULL || filename == NULL) + return MZ_PARAM_ERROR; + + /* If we are already on the current entry, no need to search */ + if ((zip->entry_scanned) && (zip->file_info.filename != NULL)) { + result = mz_zip_path_compare(zip->file_info.filename, filename, ignore_case); + if (result == 0) + return MZ_OK; + } + + /* Search all entries starting at the first */ + err = mz_zip_goto_first_entry(handle); + while (err == MZ_OK) { + result = mz_zip_path_compare(zip->file_info.filename, filename, ignore_case); + if (result == 0) + return MZ_OK; + + err = mz_zip_goto_next_entry(handle); + } + + return err; +} + +int32_t mz_zip_locate_first_entry(void *handle, void *userdata, mz_zip_locate_entry_cb cb) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + int32_t result = 0; + + /* Search first entry looking for match */ + err = mz_zip_goto_first_entry(handle); + if (err != MZ_OK) + return err; + + result = cb(handle, userdata, &zip->file_info); + if (result == 0) + return MZ_OK; + + return mz_zip_locate_next_entry(handle, userdata, cb); +} + +int32_t mz_zip_locate_next_entry(void *handle, void *userdata, mz_zip_locate_entry_cb cb) { + mz_zip *zip = (mz_zip *)handle; + int32_t err = MZ_OK; + int32_t result = 0; + + /* Search next entries looking for match */ + err = mz_zip_goto_next_entry(handle); + while (err == MZ_OK) { + result = cb(handle, userdata, &zip->file_info); + if (result == 0) + return MZ_OK; + + err = mz_zip_goto_next_entry(handle); + } + + return err; +} + +/***************************************************************************/ + +int32_t mz_zip_attrib_is_dir(uint32_t attrib, int32_t version_madeby) { + uint32_t posix_attrib = 0; + uint8_t system = MZ_HOST_SYSTEM(version_madeby); + int32_t err = MZ_OK; + + err = mz_zip_attrib_convert(system, attrib, MZ_HOST_SYSTEM_UNIX, &posix_attrib); + if (err == MZ_OK) { + if ((posix_attrib & 0170000) == 0040000) /* S_ISDIR */ + return MZ_OK; + } + + return MZ_EXIST_ERROR; +} + +int32_t mz_zip_attrib_is_symlink(uint32_t attrib, int32_t version_madeby) { + uint32_t posix_attrib = 0; + uint8_t system = MZ_HOST_SYSTEM(version_madeby); + int32_t err = MZ_OK; + + err = mz_zip_attrib_convert(system, attrib, MZ_HOST_SYSTEM_UNIX, &posix_attrib); + if (err == MZ_OK) { + if ((posix_attrib & 0170000) == 0120000) /* S_ISLNK */ + return MZ_OK; + } + + return MZ_EXIST_ERROR; +} + +int32_t mz_zip_attrib_convert(uint8_t src_sys, uint32_t src_attrib, uint8_t target_sys, uint32_t *target_attrib) { + if (target_attrib == NULL) + return MZ_PARAM_ERROR; + + *target_attrib = 0; + + if ((src_sys == MZ_HOST_SYSTEM_MSDOS) || (src_sys == MZ_HOST_SYSTEM_WINDOWS_NTFS)) { + if ((target_sys == MZ_HOST_SYSTEM_MSDOS) || (target_sys == MZ_HOST_SYSTEM_WINDOWS_NTFS)) { + *target_attrib = src_attrib; + return MZ_OK; + } + if ((target_sys == MZ_HOST_SYSTEM_UNIX) || (target_sys == MZ_HOST_SYSTEM_OSX_DARWIN) || (target_sys == MZ_HOST_SYSTEM_RISCOS)) + return mz_zip_attrib_win32_to_posix(src_attrib, target_attrib); + } else if ((src_sys == MZ_HOST_SYSTEM_UNIX) || (src_sys == MZ_HOST_SYSTEM_OSX_DARWIN) || (src_sys == MZ_HOST_SYSTEM_RISCOS)) { + if ((target_sys == MZ_HOST_SYSTEM_UNIX) || (target_sys == MZ_HOST_SYSTEM_OSX_DARWIN) || (target_sys == MZ_HOST_SYSTEM_RISCOS)) { + /* If high bytes are set, it contains unix specific attributes */ + if ((src_attrib >> 16) != 0) + src_attrib >>= 16; + + *target_attrib = src_attrib; + return MZ_OK; + } + if ((target_sys == MZ_HOST_SYSTEM_MSDOS) || (target_sys == MZ_HOST_SYSTEM_WINDOWS_NTFS)) + return mz_zip_attrib_posix_to_win32(src_attrib, target_attrib); + } + + return MZ_SUPPORT_ERROR; +} + +int32_t mz_zip_attrib_posix_to_win32(uint32_t posix_attrib, uint32_t *win32_attrib) { + if (win32_attrib == NULL) + return MZ_PARAM_ERROR; + + *win32_attrib = 0; + + /* S_IWUSR | S_IWGRP | S_IWOTH | S_IXUSR | S_IXGRP | S_IXOTH */ + if ((posix_attrib & 0000333) == 0 && (posix_attrib & 0000444) != 0) + *win32_attrib |= 0x01; /* FILE_ATTRIBUTE_READONLY */ + /* S_IFLNK */ + if ((posix_attrib & 0170000) == 0120000) + *win32_attrib |= 0x400; /* FILE_ATTRIBUTE_REPARSE_POINT */ + /* S_IFDIR */ + else if ((posix_attrib & 0170000) == 0040000) + *win32_attrib |= 0x10; /* FILE_ATTRIBUTE_DIRECTORY */ + /* S_IFREG */ + else + *win32_attrib |= 0x80; /* FILE_ATTRIBUTE_NORMAL */ + + return MZ_OK; +} + +int32_t mz_zip_attrib_win32_to_posix(uint32_t win32_attrib, uint32_t *posix_attrib) { + if (posix_attrib == NULL) + return MZ_PARAM_ERROR; + + *posix_attrib = 0000444; /* S_IRUSR | S_IRGRP | S_IROTH */ + /* FILE_ATTRIBUTE_READONLY */ + if ((win32_attrib & 0x01) == 0) + *posix_attrib |= 0000222; /* S_IWUSR | S_IWGRP | S_IWOTH */ + /* FILE_ATTRIBUTE_REPARSE_POINT */ + if ((win32_attrib & 0x400) == 0x400) + *posix_attrib |= 0120000; /* S_IFLNK */ + /* FILE_ATTRIBUTE_DIRECTORY */ + else if ((win32_attrib & 0x10) == 0x10) + *posix_attrib |= 0040111; /* S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH */ + else + *posix_attrib |= 0100000; /* S_IFREG */ + + return MZ_OK; +} + +/***************************************************************************/ + +int32_t mz_zip_extrafield_find(void *stream, uint16_t type, int32_t max_seek, uint16_t *length) { + int32_t err = MZ_OK; + uint16_t field_type = 0; + uint16_t field_length = 0; + + + if (max_seek < 4) + return MZ_EXIST_ERROR; + + do { + err = mz_stream_read_uint16(stream, &field_type); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, &field_length); + if (err != MZ_OK) + break; + + if (type == field_type) { + if (length != NULL) + *length = field_length; + return MZ_OK; + } + + max_seek -= field_length - 4; + if (max_seek < 0) + return MZ_EXIST_ERROR; + + err = mz_stream_seek(stream, field_length, MZ_SEEK_CUR); + } while (err == MZ_OK); + + return MZ_EXIST_ERROR; +} + +int32_t mz_zip_extrafield_contains(const uint8_t *extrafield, int32_t extrafield_size, + uint16_t type, uint16_t *length) { + void *file_extra_stream = NULL; + int32_t err = MZ_OK; + + if (extrafield == NULL || extrafield_size == 0) + return MZ_PARAM_ERROR; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)extrafield, extrafield_size); + + err = mz_zip_extrafield_find(file_extra_stream, type, extrafield_size, length); + + mz_stream_mem_delete(&file_extra_stream); + + return err; +} + +int32_t mz_zip_extrafield_read(void *stream, uint16_t *type, uint16_t *length) { + int32_t err = MZ_OK; + if (type == NULL || length == NULL) + return MZ_PARAM_ERROR; + err = mz_stream_read_uint16(stream, type); + if (err == MZ_OK) + err = mz_stream_read_uint16(stream, length); + return err; +} + +int32_t mz_zip_extrafield_write(void *stream, uint16_t type, uint16_t length) { + int32_t err = MZ_OK; + err = mz_stream_write_uint16(stream, type); + if (err == MZ_OK) + err = mz_stream_write_uint16(stream, length); + return err; +} + +/***************************************************************************/ + +static int32_t mz_zip_invalid_date(const struct tm *ptm) { +#define datevalue_in_range(min, max, value) ((min) <= (value) && (value) <= (max)) + return (!datevalue_in_range(0, 127 + 80, ptm->tm_year) || /* 1980-based year, allow 80 extra */ + !datevalue_in_range(0, 11, ptm->tm_mon) || + !datevalue_in_range(1, 31, ptm->tm_mday) || + !datevalue_in_range(0, 23, ptm->tm_hour) || + !datevalue_in_range(0, 59, ptm->tm_min) || + !datevalue_in_range(0, 59, ptm->tm_sec)); +#undef datevalue_in_range +} + +static void mz_zip_dosdate_to_raw_tm(uint64_t dos_date, struct tm *ptm) { + uint64_t date = (uint64_t)(dos_date >> 16); + + ptm->tm_mday = (uint16_t)(date & 0x1f); + ptm->tm_mon = (uint16_t)(((date & 0x1E0) / 0x20) - 1); + ptm->tm_year = (uint16_t)(((date & 0x0FE00) / 0x0200) + 80); + ptm->tm_hour = (uint16_t)((dos_date & 0xF800) / 0x800); + ptm->tm_min = (uint16_t)((dos_date & 0x7E0) / 0x20); + ptm->tm_sec = (uint16_t)(2 * (dos_date & 0x1f)); + ptm->tm_isdst = -1; +} + +int32_t mz_zip_dosdate_to_tm(uint64_t dos_date, struct tm *ptm) { + if (ptm == NULL) + return MZ_PARAM_ERROR; + + mz_zip_dosdate_to_raw_tm(dos_date, ptm); + + if (mz_zip_invalid_date(ptm)) { + /* Invalid date stored, so don't return it */ + memset(ptm, 0, sizeof(struct tm)); + return MZ_FORMAT_ERROR; + } + return MZ_OK; +} + +time_t mz_zip_dosdate_to_time_t(uint64_t dos_date) { + struct tm ptm; + mz_zip_dosdate_to_raw_tm(dos_date, &ptm); + return mktime(&ptm); +} + +int32_t mz_zip_time_t_to_tm(time_t unix_time, struct tm *ptm) { + struct tm ltm; + if (ptm == NULL) + return MZ_PARAM_ERROR; + if (localtime_r(&unix_time, <m) == NULL) { /* Returns a 1900-based year */ + /* Invalid date stored, so don't return it */ + memset(ptm, 0, sizeof(struct tm)); + return MZ_INTERNAL_ERROR; + } + memcpy(ptm, <m, sizeof(struct tm)); + return MZ_OK; +} + +uint32_t mz_zip_time_t_to_dos_date(time_t unix_time) { + struct tm ptm; + mz_zip_time_t_to_tm(unix_time, &ptm); + return mz_zip_tm_to_dosdate((const struct tm *)&ptm); +} + +uint32_t mz_zip_tm_to_dosdate(const struct tm *ptm) { + struct tm fixed_tm; + + /* Years supported: */ + + /* [00, 79] (assumed to be between 2000 and 2079) */ + /* [80, 207] (assumed to be between 1980 and 2107, typical output of old */ + /* software that does 'year-1900' to get a double digit year) */ + /* [1980, 2107] (due to format limitations, only years 1980-2107 can be stored.) */ + + memcpy(&fixed_tm, ptm, sizeof(struct tm)); + if (fixed_tm.tm_year >= 1980) /* range [1980, 2107] */ + fixed_tm.tm_year -= 1980; + else if (fixed_tm.tm_year >= 80) /* range [80, 207] */ + fixed_tm.tm_year -= 80; + else /* range [00, 79] */ + fixed_tm.tm_year += 20; + + if (mz_zip_invalid_date(&fixed_tm)) + return 0; + + return (((uint32_t)fixed_tm.tm_mday + (32 * ((uint32_t)fixed_tm.tm_mon + 1)) + (512 * (uint32_t)fixed_tm.tm_year)) << 16) | + (((uint32_t)fixed_tm.tm_sec / 2) + (32 * (uint32_t)fixed_tm.tm_min) + (2048 * (uint32_t)fixed_tm.tm_hour)); +} + +int32_t mz_zip_ntfs_to_unix_time(uint64_t ntfs_time, time_t *unix_time) { + *unix_time = (time_t)((ntfs_time - 116444736000000000LL) / 10000000); + return MZ_OK; +} + +int32_t mz_zip_unix_to_ntfs_time(time_t unix_time, uint64_t *ntfs_time) { + *ntfs_time = ((uint64_t)unix_time * 10000000) + 116444736000000000LL; + return MZ_OK; +} + +/***************************************************************************/ + +int32_t mz_zip_path_compare(const char *path1, const char *path2, uint8_t ignore_case) { + do { + if ((*path1 == '\\' && *path2 == '/') || + (*path2 == '\\' && *path1 == '/')) { + /* Ignore comparison of path slashes */ + } else if (ignore_case) { + if (tolower(*path1) != tolower(*path2)) + break; + } else if (*path1 != *path2) { + break; + } + + path1 += 1; + path2 += 1; + } while (*path1 != 0 && *path2 != 0); + + if (ignore_case) + return (int32_t)(tolower(*path1) - tolower(*path2)); + + return (int32_t)(*path1 - *path2); +} + +/***************************************************************************/ + +const char* mz_zip_get_compression_method_string(int32_t compression_method) +{ + const char *method = "?"; + switch (compression_method) { + case MZ_COMPRESS_METHOD_STORE: + method = "stored"; + break; + case MZ_COMPRESS_METHOD_DEFLATE: + method = "deflate"; + break; + case MZ_COMPRESS_METHOD_BZIP2: + method = "bzip2"; + break; + case MZ_COMPRESS_METHOD_LZMA: + method = "lzma"; + break; + case MZ_COMPRESS_METHOD_XZ: + method = "xz"; + break; + case MZ_COMPRESS_METHOD_ZSTD: + method = "zstd"; + break; + } + return method; +} + +/***************************************************************************/ diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.h new file mode 100644 index 0000000..e3d1fbd --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip.h @@ -0,0 +1,259 @@ +/* mz_zip.h -- Zip manipulation + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + Copyright (C) 2009-2010 Mathias Svensson + Modifications for Zip64 support + http://result42.com + Copyright (C) 1998-2010 Gilles Vollant + https://www.winimage.com/zLibDll/minizip.html + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_ZIP_H +#define MZ_ZIP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +typedef struct mz_zip_file_s { + uint16_t version_madeby; /* version made by */ + uint16_t version_needed; /* version needed to extract */ + uint16_t flag; /* general purpose bit flag */ + uint16_t compression_method; /* compression method */ + time_t modified_date; /* last modified date in unix time */ + time_t accessed_date; /* last accessed date in unix time */ + time_t creation_date; /* creation date in unix time */ + uint32_t crc; /* crc-32 */ + int64_t compressed_size; /* compressed size */ + int64_t uncompressed_size; /* uncompressed size */ + uint16_t filename_size; /* filename length */ + uint16_t extrafield_size; /* extra field length */ + uint16_t comment_size; /* file comment length */ + uint32_t disk_number; /* disk number start */ + int64_t disk_offset; /* relative offset of local header */ + uint16_t internal_fa; /* internal file attributes */ + uint32_t external_fa; /* external file attributes */ + + const char *filename; /* filename utf8 null-terminated string */ + const uint8_t *extrafield; /* extrafield data */ + const char *comment; /* comment utf8 null-terminated string */ + const char *linkname; /* sym-link filename utf8 null-terminated string */ + + uint16_t zip64; /* zip64 extension mode */ + uint16_t aes_version; /* winzip aes extension if not 0 */ + uint8_t aes_encryption_mode; /* winzip aes encryption mode */ + uint16_t pk_verify; /* pkware encryption verifier */ + +} mz_zip_file, mz_zip_entry; + +/***************************************************************************/ + +typedef int32_t (*mz_zip_locate_entry_cb)(void *handle, void *userdata, mz_zip_file *file_info); + +/***************************************************************************/ + +void * mz_zip_create(void **handle); +/* Create zip instance for opening */ + +void mz_zip_delete(void **handle); +/* Delete zip object */ + +int32_t mz_zip_open(void *handle, void *stream, int32_t mode); +/* Create a zip file, no delete file in zip functionality */ + +int32_t mz_zip_close(void *handle); +/* Close the zip file */ + +int32_t mz_zip_get_comment(void *handle, const char **comment); +/* Get a pointer to the global comment */ + +int32_t mz_zip_set_comment(void *handle, const char *comment); +/* Sets the global comment used for writing zip file */ + +int32_t mz_zip_get_version_madeby(void *handle, uint16_t *version_madeby); +/* Get the version made by */ + +int32_t mz_zip_set_version_madeby(void *handle, uint16_t version_madeby); +/* Sets the version made by used for writing zip file */ + +int32_t mz_zip_set_recover(void *handle, uint8_t recover); +/* Sets the ability to recover the central dir by reading local file headers */ + +int32_t mz_zip_set_data_descriptor(void *handle, uint8_t data_descriptor); +/* Sets the use of data descriptor flag when writing zip entries */ + +int32_t mz_zip_get_stream(void *handle, void **stream); +/* Get a pointer to the stream used to open */ + +int32_t mz_zip_set_cd_stream(void *handle, int64_t cd_start_pos, void *cd_stream); +/* Sets the stream to use for reading the central dir */ + +int32_t mz_zip_get_cd_mem_stream(void *handle, void **cd_mem_stream); +/* Get a pointer to the stream used to store the central dir in memory */ + +int32_t mz_zip_set_number_entry(void *handle, uint64_t number_entry); +/* Sets the total number of entries */ + +int32_t mz_zip_get_number_entry(void *handle, uint64_t *number_entry); +/* Get the total number of entries */ + +int32_t mz_zip_set_disk_number_with_cd(void *handle, uint32_t disk_number_with_cd); +/* Sets the disk number containing the central directory record */ + +int32_t mz_zip_get_disk_number_with_cd(void *handle, uint32_t *disk_number_with_cd); +/* Get the disk number containing the central directory record */ + +/***************************************************************************/ + +int32_t mz_zip_entry_is_open(void *handle); +/* Check to see if entry is open for read/write */ + +int32_t mz_zip_entry_read_open(void *handle, uint8_t raw, const char *password); +/* Open for reading the current file in the zip file */ + +int32_t mz_zip_entry_read(void *handle, void *buf, int32_t len); +/* Read bytes from the current file in the zip file */ + +int32_t mz_zip_entry_read_close(void *handle, uint32_t *crc32, int64_t *compressed_size, + int64_t *uncompressed_size); +/* Close the current file for reading and get data descriptor values */ + +int32_t mz_zip_entry_write_open(void *handle, const mz_zip_file *file_info, + int16_t compress_level, uint8_t raw, const char *password); +/* Open for writing the current file in the zip file */ + +int32_t mz_zip_entry_write(void *handle, const void *buf, int32_t len); +/* Write bytes from the current file in the zip file */ + +int32_t mz_zip_entry_write_close(void *handle, uint32_t crc32, int64_t compressed_size, + int64_t uncompressed_size); +/* Close the current file for writing and set data descriptor values */ + +int32_t mz_zip_entry_seek_local_header(void *handle); +/* Seeks to the local header for the entry */ + +int32_t mz_zip_entry_close_raw(void *handle, int64_t uncompressed_size, uint32_t crc32); +/* Close the current file in the zip file where raw is compressed data */ + +int32_t mz_zip_entry_close(void *handle); +/* Close the current file in the zip file */ + +/***************************************************************************/ + +int32_t mz_zip_entry_is_dir(void *handle); +/* Checks to see if the entry is a directory */ + +int32_t mz_zip_entry_is_symlink(void *handle); +/* Checks to see if the entry is a symbolic link */ + +int32_t mz_zip_entry_get_info(void *handle, mz_zip_file **file_info); +/* Get info about the current file, only valid while current entry is open */ + +int32_t mz_zip_entry_get_local_info(void *handle, mz_zip_file **local_file_info); +/* Get local info about the current file, only valid while current entry is being read */ + +int32_t mz_zip_entry_set_extrafield(void *handle, const uint8_t *extrafield, uint16_t extrafield_size); +/* Sets or updates the extra field for the entry to be used before writing cd */ + +int64_t mz_zip_get_entry(void *handle); +/* Return offset of the current entry in the zip file */ + +int32_t mz_zip_goto_entry(void *handle, int64_t cd_pos); +/* Go to specified entry in the zip file */ + +int32_t mz_zip_goto_first_entry(void *handle); +/* Go to the first entry in the zip file */ + +int32_t mz_zip_goto_next_entry(void *handle); +/* Go to the next entry in the zip file or MZ_END_OF_LIST if reaching the end */ + +int32_t mz_zip_locate_entry(void *handle, const char *filename, uint8_t ignore_case); +/* Locate the file with the specified name in the zip file or MZ_END_LIST if not found */ + +int32_t mz_zip_locate_first_entry(void *handle, void *userdata, mz_zip_locate_entry_cb cb); +/* Locate the first matching entry based on a match callback */ + +int32_t mz_zip_locate_next_entry(void *handle, void *userdata, mz_zip_locate_entry_cb cb); +/* Locate the next matching entry based on a match callback */ + +/***************************************************************************/ + +int32_t mz_zip_attrib_is_dir(uint32_t attrib, int32_t version_madeby); +/* Checks to see if the attribute is a directory based on platform */ + +int32_t mz_zip_attrib_is_symlink(uint32_t attrib, int32_t version_madeby); +/* Checks to see if the attribute is a symbolic link based on platform */ + +int32_t mz_zip_attrib_convert(uint8_t src_sys, uint32_t src_attrib, uint8_t target_sys, + uint32_t *target_attrib); +/* Converts file attributes from one host system to another */ + +int32_t mz_zip_attrib_posix_to_win32(uint32_t posix_attrib, uint32_t *win32_attrib); +/* Converts posix file attributes to win32 file attributes */ + +int32_t mz_zip_attrib_win32_to_posix(uint32_t win32_attrib, uint32_t *posix_attrib); +/* Converts win32 file attributes to posix file attributes */ + +/***************************************************************************/ + +int32_t mz_zip_extrafield_find(void *stream, uint16_t type, int32_t max_seek, uint16_t *length); +/* Seeks to extra field by its type and returns its length */ + +int32_t mz_zip_extrafield_contains(const uint8_t *extrafield, int32_t extrafield_size, + uint16_t type, uint16_t *length); +/* Gets whether an extrafield exists and its size */ + +int32_t mz_zip_extrafield_read(void *stream, uint16_t *type, uint16_t *length); +/* Reads an extrafield header from a stream */ + +int32_t mz_zip_extrafield_write(void *stream, uint16_t type, uint16_t length); +/* Writes an extrafield header to a stream */ + +/***************************************************************************/ + +int32_t mz_zip_dosdate_to_tm(uint64_t dos_date, struct tm *ptm); +/* Convert dos date/time format to struct tm */ + +time_t mz_zip_dosdate_to_time_t(uint64_t dos_date); +/* Convert dos date/time format to time_t */ + +int32_t mz_zip_time_t_to_tm(time_t unix_time, struct tm *ptm); +/* Convert time_t to time struct */ + +uint32_t mz_zip_time_t_to_dos_date(time_t unix_time); +/* Convert time_t to dos date/time format */ + +uint32_t mz_zip_tm_to_dosdate(const struct tm *ptm); +/* Convert struct tm to dos date/time format */ + +int32_t mz_zip_ntfs_to_unix_time(uint64_t ntfs_time, time_t *unix_time); +/* Convert ntfs time to unix time */ + +int32_t mz_zip_unix_to_ntfs_time(time_t unix_time, uint64_t *ntfs_time); +/* Convert unix time to ntfs time */ + +/***************************************************************************/ + +int32_t mz_zip_path_compare(const char *path1, const char *path2, uint8_t ignore_case); +/* Compare two paths without regard to slashes */ + +/***************************************************************************/ + +const +char* mz_zip_get_compression_method_string(int32_t compression_method); +/* Gets a string representing the compression method */ + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* _ZIP_H */ diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.c b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.c new file mode 100644 index 0000000..464e559 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.c @@ -0,0 +1,1943 @@ +/* mz_zip_rw.c -- Zip reader/writer + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#include "mz.h" +#include "mz_crypt.h" +#include "mz_os.h" +#include "mz_strm.h" +#include "mz_strm_buf.h" +#include "mz_strm_mem.h" +#include "mz_strm_os.h" +#include "mz_strm_split.h" +#include "mz_strm_wzaes.h" +#include "mz_zip.h" + +#include "mz_zip_rw.h" + +/***************************************************************************/ + +#define MZ_DEFAULT_PROGRESS_INTERVAL (1000u) + +#define MZ_ZIP_CD_FILENAME ("__cdcd__") + +/***************************************************************************/ + +typedef struct mz_zip_reader_s { + void *zip_handle; + void *file_stream; + void *buffered_stream; + void *split_stream; + void *mem_stream; + void *hash; + uint16_t hash_algorithm; + uint16_t hash_digest_size; + mz_zip_file *file_info; + const char *pattern; + uint8_t pattern_ignore_case; + const char *password; + void *overwrite_userdata; + mz_zip_reader_overwrite_cb + overwrite_cb; + void *password_userdata; + mz_zip_reader_password_cb + password_cb; + void *progress_userdata; + mz_zip_reader_progress_cb + progress_cb; + uint32_t progress_cb_interval_ms; + void *entry_userdata; + mz_zip_reader_entry_cb + entry_cb; + uint8_t raw; + uint8_t buffer[UINT16_MAX]; + int32_t encoding; + uint8_t sign_required; + uint8_t cd_verified; + uint8_t cd_zipped; + uint8_t entry_verified; + uint8_t recover; +} mz_zip_reader; + +/***************************************************************************/ + +int32_t mz_zip_reader_is_open(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (reader == NULL) + return MZ_PARAM_ERROR; + if (reader->zip_handle == NULL) + return MZ_PARAM_ERROR; + return MZ_OK; +} + +int32_t mz_zip_reader_open(void *handle, void *stream) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + reader->cd_verified = 0; + reader->cd_zipped = 0; + + mz_zip_create(&reader->zip_handle); + mz_zip_set_recover(reader->zip_handle, reader->recover); + + err = mz_zip_open(reader->zip_handle, stream, MZ_OPEN_MODE_READ); + + if (err != MZ_OK) { + mz_zip_reader_close(handle); + return err; + } + + mz_zip_reader_unzip_cd(reader); + return MZ_OK; +} + +int32_t mz_zip_reader_open_file(void *handle, const char *path) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + + mz_zip_reader_close(handle); + + mz_stream_os_create(&reader->file_stream); + mz_stream_buffered_create(&reader->buffered_stream); + mz_stream_split_create(&reader->split_stream); + + mz_stream_set_base(reader->buffered_stream, reader->file_stream); + mz_stream_set_base(reader->split_stream, reader->buffered_stream); + + err = mz_stream_open(reader->split_stream, path, MZ_OPEN_MODE_READ); + if (err == MZ_OK) + err = mz_zip_reader_open(handle, reader->split_stream); + return err; +} + +int32_t mz_zip_reader_open_file_in_memory(void *handle, const char *path) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *file_stream = NULL; + int64_t file_size = 0; + int32_t err = 0; + + + mz_zip_reader_close(handle); + + mz_stream_os_create(&file_stream); + + err = mz_stream_os_open(file_stream, path, MZ_OPEN_MODE_READ); + + if (err != MZ_OK) { + mz_stream_os_delete(&file_stream); + mz_zip_reader_close(handle); + return err; + } + + mz_stream_os_seek(file_stream, 0, MZ_SEEK_END); + file_size = mz_stream_os_tell(file_stream); + mz_stream_os_seek(file_stream, 0, MZ_SEEK_SET); + + if ((file_size <= 0) || (file_size > UINT32_MAX)) { + /* Memory size is too large or too small */ + + mz_stream_os_close(file_stream); + mz_stream_os_delete(&file_stream); + mz_zip_reader_close(handle); + return MZ_MEM_ERROR; + } + + mz_stream_mem_create(&reader->mem_stream); + mz_stream_mem_set_grow_size(reader->mem_stream, (int32_t)file_size); + mz_stream_mem_open(reader->mem_stream, NULL, MZ_OPEN_MODE_CREATE); + + err = mz_stream_copy(reader->mem_stream, file_stream, (int32_t)file_size); + + mz_stream_os_close(file_stream); + mz_stream_os_delete(&file_stream); + + if (err == MZ_OK) + err = mz_zip_reader_open(handle, reader->mem_stream); + if (err != MZ_OK) + mz_zip_reader_close(handle); + + return err; +} + +int32_t mz_zip_reader_open_buffer(void *handle, uint8_t *buf, int32_t len, uint8_t copy) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + mz_zip_reader_close(handle); + + mz_stream_mem_create(&reader->mem_stream); + + if (copy) { + mz_stream_mem_set_grow_size(reader->mem_stream, len); + mz_stream_mem_open(reader->mem_stream, NULL, MZ_OPEN_MODE_CREATE); + mz_stream_mem_write(reader->mem_stream, buf, len); + mz_stream_mem_seek(reader->mem_stream, 0, MZ_SEEK_SET); + } else { + mz_stream_mem_open(reader->mem_stream, NULL, MZ_OPEN_MODE_READ); + mz_stream_mem_set_buffer(reader->mem_stream, buf, len); + } + + if (err == MZ_OK) + err = mz_zip_reader_open(handle, reader->mem_stream); + + return err; +} + +int32_t mz_zip_reader_close(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + if (reader->zip_handle != NULL) { + err = mz_zip_close(reader->zip_handle); + mz_zip_delete(&reader->zip_handle); + } + + if (reader->split_stream != NULL) { + mz_stream_split_close(reader->split_stream); + mz_stream_split_delete(&reader->split_stream); + } + + if (reader->buffered_stream != NULL) + mz_stream_buffered_delete(&reader->buffered_stream); + + if (reader->file_stream != NULL) + mz_stream_os_delete(&reader->file_stream); + + if (reader->mem_stream != NULL) { + mz_stream_mem_close(reader->mem_stream); + mz_stream_mem_delete(&reader->mem_stream); + } + + return err; +} + +/***************************************************************************/ + +int32_t mz_zip_reader_unzip_cd(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + mz_zip_file *cd_info = NULL; + void *cd_mem_stream = NULL; + void *new_cd_stream = NULL; + void *file_extra_stream = NULL; + uint64_t number_entry = 0; + int32_t err = MZ_OK; + + + err = mz_zip_reader_goto_first_entry(handle); + if (err != MZ_OK) + return err; + err = mz_zip_reader_entry_get_info(handle, &cd_info); + if (err != MZ_OK) + return err; + + if (strcmp(cd_info->filename, MZ_ZIP_CD_FILENAME) != 0) + return mz_zip_reader_goto_first_entry(handle); + + err = mz_zip_reader_entry_open(handle); + if (err != MZ_OK) + return err; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)cd_info->extrafield, cd_info->extrafield_size); + + err = mz_zip_extrafield_find(file_extra_stream, MZ_ZIP_EXTENSION_CDCD, INT32_MAX, NULL); + if (err == MZ_OK) + err = mz_stream_read_uint64(file_extra_stream, &number_entry); + + mz_stream_mem_delete(&file_extra_stream); + + if (err != MZ_OK) + return err; + + mz_zip_get_cd_mem_stream(reader->zip_handle, &cd_mem_stream); + if (mz_stream_mem_is_open(cd_mem_stream) != MZ_OK) + mz_stream_mem_open(cd_mem_stream, NULL, MZ_OPEN_MODE_CREATE); + + err = mz_stream_seek(cd_mem_stream, 0, MZ_SEEK_SET); + if (err == MZ_OK) + err = mz_stream_copy_stream(cd_mem_stream, NULL, handle, mz_zip_reader_entry_read, + (int32_t)cd_info->uncompressed_size); + + if (err == MZ_OK) { + reader->cd_zipped = 1; + + mz_zip_set_cd_stream(reader->zip_handle, 0, cd_mem_stream); + mz_zip_set_number_entry(reader->zip_handle, number_entry); + + err = mz_zip_reader_goto_first_entry(handle); + } + + reader->cd_verified = reader->entry_verified; + + mz_stream_mem_delete(&new_cd_stream); + return err; +} + +/***************************************************************************/ + +static int32_t mz_zip_reader_locate_entry_cb(void *handle, void *userdata, mz_zip_file *file_info) { + mz_zip_reader *reader = (mz_zip_reader *)userdata; + int32_t result = 0; + MZ_UNUSED(handle); + result = mz_path_compare_wc(file_info->filename, reader->pattern, reader->pattern_ignore_case); + return result; +} + +int32_t mz_zip_reader_goto_first_entry(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + if (mz_zip_reader_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + if (mz_zip_entry_is_open(reader->zip_handle) == MZ_OK) + mz_zip_reader_entry_close(handle); + + if (reader->pattern == NULL) + err = mz_zip_goto_first_entry(reader->zip_handle); + else + err = mz_zip_locate_first_entry(reader->zip_handle, reader, mz_zip_reader_locate_entry_cb); + + reader->file_info = NULL; + if (err == MZ_OK) + err = mz_zip_entry_get_info(reader->zip_handle, &reader->file_info); + + return err; +} + +int32_t mz_zip_reader_goto_next_entry(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + if (mz_zip_reader_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + + if (mz_zip_entry_is_open(reader->zip_handle) == MZ_OK) + mz_zip_reader_entry_close(handle); + + if (reader->pattern == NULL) + err = mz_zip_goto_next_entry(reader->zip_handle); + else + err = mz_zip_locate_next_entry(reader->zip_handle, reader, mz_zip_reader_locate_entry_cb); + + reader->file_info = NULL; + if (err == MZ_OK) + err = mz_zip_entry_get_info(reader->zip_handle, &reader->file_info); + + return err; +} + +int32_t mz_zip_reader_locate_entry(void *handle, const char *filename, uint8_t ignore_case) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + + if (mz_zip_entry_is_open(reader->zip_handle) == MZ_OK) + mz_zip_reader_entry_close(handle); + + err = mz_zip_locate_entry(reader->zip_handle, filename, ignore_case); + + reader->file_info = NULL; + if (err == MZ_OK) + err = mz_zip_entry_get_info(reader->zip_handle, &reader->file_info); + + return err; +} + +/***************************************************************************/ + +int32_t mz_zip_reader_entry_open(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + const char *password = NULL; + char password_buf[120]; + + + reader->entry_verified = 0; + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL) + return MZ_PARAM_ERROR; + + /* If the entry isn't open for reading, open it */ + if (mz_zip_entry_is_open(reader->zip_handle) == MZ_OK) + return MZ_OK; + + password = reader->password; + + /* Check if we need a password and ask for it if we need to */ + if ((reader->file_info->flag & MZ_ZIP_FLAG_ENCRYPTED) && (password == NULL) && + (reader->password_cb != NULL)) { + reader->password_cb(handle, reader->password_userdata, reader->file_info, + password_buf, sizeof(password_buf)); + + password = password_buf; + } + + err = mz_zip_entry_read_open(reader->zip_handle, reader->raw, password); +#ifndef MZ_ZIP_NO_CRYPTO + if (err != MZ_OK) + return err; + + if (mz_zip_reader_entry_get_first_hash(handle, &reader->hash_algorithm, &reader->hash_digest_size) == MZ_OK) { + mz_crypt_sha_create(&reader->hash); + if (reader->hash_algorithm == MZ_HASH_SHA1) + mz_crypt_sha_set_algorithm(reader->hash, MZ_HASH_SHA1); + else if (reader->hash_algorithm == MZ_HASH_SHA256) + mz_crypt_sha_set_algorithm(reader->hash, MZ_HASH_SHA256); + else + err = MZ_SUPPORT_ERROR; + + if (err == MZ_OK) + mz_crypt_sha_begin(reader->hash); +#ifdef MZ_ZIP_SIGNING + if (err == MZ_OK) { + if (mz_zip_reader_entry_has_sign(handle) == MZ_OK) { + err = mz_zip_reader_entry_sign_verify(handle); + if (err == MZ_OK) + reader->entry_verified = 1; + } else if (reader->sign_required && !reader->cd_verified) + err = MZ_SIGN_ERROR; + } +#endif + } else if (reader->sign_required && !reader->cd_verified) + err = MZ_SIGN_ERROR; +#endif + + return err; +} + +int32_t mz_zip_reader_entry_close(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + int32_t err_close = MZ_OK; +#ifndef MZ_ZIP_NO_CRYPTO + int32_t err_hash = MZ_OK; + uint8_t computed_hash[MZ_HASH_MAX_SIZE]; + uint8_t expected_hash[MZ_HASH_MAX_SIZE]; + + if (reader->hash != NULL) { + mz_crypt_sha_end(reader->hash, computed_hash, sizeof(computed_hash)); + mz_crypt_sha_delete(&reader->hash); + + err_hash = mz_zip_reader_entry_get_hash(handle, reader->hash_algorithm, expected_hash, + reader->hash_digest_size); + + if (err_hash == MZ_OK) { + /* Verify expected hash against computed hash */ + if (memcmp(computed_hash, expected_hash, reader->hash_digest_size) != 0) + err = MZ_CRC_ERROR; + } + } +#endif + + err_close = mz_zip_entry_close(reader->zip_handle); + if (err == MZ_OK) + err = err_close; + return err; +} + +int32_t mz_zip_reader_entry_read(void *handle, void *buf, int32_t len) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t read = 0; + read = mz_zip_entry_read(reader->zip_handle, buf, len); +#ifndef MZ_ZIP_NO_CRYPTO + if ((read > 0) && (reader->hash != NULL)) + mz_crypt_sha_update(reader->hash, buf, read); +#endif + return read; +} + +int32_t mz_zip_reader_entry_has_sign(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + + if (reader == NULL || mz_zip_entry_is_open(reader->zip_handle) != MZ_OK) + return MZ_PARAM_ERROR; + + return mz_zip_extrafield_contains(reader->file_info->extrafield, + reader->file_info->extrafield_size, MZ_ZIP_EXTENSION_SIGN, NULL); +} + +#if !defined(MZ_ZIP_NO_CRYPTO) && defined(MZ_ZIP_SIGNING) +int32_t mz_zip_reader_entry_sign_verify(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *file_extra_stream = NULL; + int32_t err = MZ_OK; + uint8_t *signature = NULL; + uint16_t signature_size = 0; + uint8_t hash[MZ_HASH_MAX_SIZE]; + + if (reader == NULL || mz_zip_entry_is_open(reader->zip_handle) != MZ_OK) + return MZ_PARAM_ERROR; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)reader->file_info->extrafield, + reader->file_info->extrafield_size); + + err = mz_zip_extrafield_find(file_extra_stream, MZ_ZIP_EXTENSION_SIGN, INT32_MAX, &signature_size); + if ((err == MZ_OK) && (signature_size > 0)) { + signature = (uint8_t *)MZ_ALLOC(signature_size); + if (mz_stream_read(file_extra_stream, signature, signature_size) != signature_size) + err = MZ_READ_ERROR; + } + + mz_stream_mem_delete(&file_extra_stream); + + if (err == MZ_OK) { + /* Get most secure hash to verify signature against */ + err = mz_zip_reader_entry_get_hash(handle, reader->hash_algorithm, hash, reader->hash_digest_size); + } + + if (err == MZ_OK) { + /* Verify the pkcs signature */ + err = mz_crypt_sign_verify(hash, reader->hash_digest_size, signature, signature_size); + } + + if (signature != NULL) + MZ_FREE(signature); + + return err; +} +#endif + +int32_t mz_zip_reader_entry_get_hash(void *handle, uint16_t algorithm, uint8_t *digest, int32_t digest_size) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *file_extra_stream = NULL; + int32_t err = MZ_OK; + int32_t return_err = MZ_EXIST_ERROR; + uint16_t cur_algorithm = 0; + uint16_t cur_digest_size = 0; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)reader->file_info->extrafield, + reader->file_info->extrafield_size); + + do { + err = mz_zip_extrafield_find(file_extra_stream, MZ_ZIP_EXTENSION_HASH, INT32_MAX, NULL); + if (err != MZ_OK) + break; + + err = mz_stream_read_uint16(file_extra_stream, &cur_algorithm); + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &cur_digest_size); + if ((err == MZ_OK) && (cur_algorithm == algorithm) && (cur_digest_size <= digest_size) && + (cur_digest_size <= MZ_HASH_MAX_SIZE)) { + /* Read hash digest */ + if (mz_stream_read(file_extra_stream, digest, digest_size) == cur_digest_size) + return_err = MZ_OK; + break; + } else { + err = mz_stream_seek(file_extra_stream, cur_digest_size, MZ_SEEK_CUR); + } + } while (err == MZ_OK); + + mz_stream_mem_delete(&file_extra_stream); + + return return_err; +} + +int32_t mz_zip_reader_entry_get_first_hash(void *handle, uint16_t *algorithm, uint16_t *digest_size) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *file_extra_stream = NULL; + int32_t err = MZ_OK; + uint16_t cur_algorithm = 0; + uint16_t cur_digest_size = 0; + + if (reader == NULL || algorithm == NULL) + return MZ_PARAM_ERROR; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_set_buffer(file_extra_stream, (void *)reader->file_info->extrafield, + reader->file_info->extrafield_size); + + err = mz_zip_extrafield_find(file_extra_stream, MZ_ZIP_EXTENSION_HASH, INT32_MAX, NULL); + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &cur_algorithm); + if (err == MZ_OK) + err = mz_stream_read_uint16(file_extra_stream, &cur_digest_size); + + if (algorithm != NULL) + *algorithm = cur_algorithm; + if (digest_size != NULL) + *digest_size = cur_digest_size; + + mz_stream_mem_delete(&file_extra_stream); + + return err; +} + +int32_t mz_zip_reader_entry_get_info(void *handle, mz_zip_file **file_info) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + if (file_info == NULL || mz_zip_reader_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + *file_info = reader->file_info; + if (*file_info == NULL) + return MZ_EXIST_ERROR; + return err; +} + +int32_t mz_zip_reader_entry_is_dir(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (mz_zip_reader_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + return mz_zip_entry_is_dir(reader->zip_handle); +} + +int32_t mz_zip_reader_entry_save_process(void *handle, void *stream, mz_stream_write_cb write_cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + int32_t read = 0; + int32_t written = 0; + + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL) + return MZ_PARAM_ERROR; + if (write_cb == NULL) + return MZ_PARAM_ERROR; + + /* If the entry isn't open for reading, open it */ + if (mz_zip_entry_is_open(reader->zip_handle) != MZ_OK) + err = mz_zip_reader_entry_open(handle); + + if (err != MZ_OK) + return err; + + /* Unzip entry in zip file */ + read = mz_zip_reader_entry_read(handle, reader->buffer, sizeof(reader->buffer)); + + if (read == 0) { + /* If we are done close the entry */ + err = mz_zip_reader_entry_close(handle); + if (err != MZ_OK) + return err; + + return MZ_END_OF_STREAM; + } + + if (read > 0) { + /* Write the data to the specified stream */ + written = write_cb(stream, reader->buffer, read); + if (written != read) + return MZ_WRITE_ERROR; + } + + return read; +} + +int32_t mz_zip_reader_entry_save(void *handle, void *stream, mz_stream_write_cb write_cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + uint64_t current_time = 0; + uint64_t update_time = 0; + int64_t current_pos = 0; + int64_t update_pos = 0; + int32_t err = MZ_OK; + int32_t written = 0; + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL) + return MZ_PARAM_ERROR; + + /* Update the progress at the beginning */ + if (reader->progress_cb != NULL) + reader->progress_cb(handle, reader->progress_userdata, reader->file_info, current_pos); + + /* Write data to stream until done */ + while (err == MZ_OK) { + written = mz_zip_reader_entry_save_process(handle, stream, write_cb); + if (written == MZ_END_OF_STREAM) + break; + if (written > 0) + current_pos += written; + if (written < 0) + err = written; + + /* Update progress if enough time have passed */ + current_time = mz_os_ms_time(); + if ((current_time - update_time) > reader->progress_cb_interval_ms) { + if (reader->progress_cb != NULL) + reader->progress_cb(handle, reader->progress_userdata, reader->file_info, current_pos); + + update_pos = current_pos; + update_time = current_time; + } + } + + /* Update the progress at the end */ + if (reader->progress_cb != NULL && update_pos != current_pos) + reader->progress_cb(handle, reader->progress_userdata, reader->file_info, current_pos); + + return err; +} + +int32_t mz_zip_reader_entry_save_file(void *handle, const char *path) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *stream = NULL; + uint32_t target_attrib = 0; + int32_t err_attrib = 0; + int32_t err = MZ_OK; + int32_t err_cb = MZ_OK; + char pathwfs[512]; + char directory[512]; + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL || path == NULL) + return MZ_PARAM_ERROR; + + /* Convert to forward slashes for unix which doesn't like backslashes */ + strncpy(pathwfs, path, sizeof(pathwfs) - 1); + pathwfs[sizeof(pathwfs) - 1] = 0; + mz_path_convert_slashes(pathwfs, MZ_PATH_SLASH_UNIX); + + if (reader->entry_cb != NULL) + reader->entry_cb(handle, reader->entry_userdata, reader->file_info, pathwfs); + + strncpy(directory, pathwfs, sizeof(directory) - 1); + directory[sizeof(directory) - 1] = 0; + mz_path_remove_filename(directory); + + /* If it is a directory entry then create a directory instead of writing file */ + if ((mz_zip_entry_is_dir(reader->zip_handle) == MZ_OK) && + (mz_zip_entry_is_symlink(reader->zip_handle) != MZ_OK)) { + err = mz_dir_make(directory); + return err; + } + + /* Check if file exists and ask if we want to overwrite */ + if ((mz_os_file_exists(pathwfs) == MZ_OK) && (reader->overwrite_cb != NULL)) { + err_cb = reader->overwrite_cb(handle, reader->overwrite_userdata, reader->file_info, pathwfs); + if (err_cb != MZ_OK) + return err; + /* We want to overwrite the file so we delete the existing one */ + mz_os_unlink(pathwfs); + } + + /* If symbolic link then properly construct destination path and link path */ + if (mz_zip_entry_is_symlink(reader->zip_handle) == MZ_OK) { + mz_path_remove_slash(pathwfs); + mz_path_remove_filename(directory); + } + + /* Create the output directory if it doesn't already exist */ + if (mz_os_is_dir(directory) != MZ_OK) { + err = mz_dir_make(directory); + if (err != MZ_OK) + return err; + } + + /* If it is a symbolic link then create symbolic link instead of writing file */ + if (mz_zip_entry_is_symlink(reader->zip_handle) == MZ_OK) { + mz_os_make_symlink(pathwfs, reader->file_info->linkname); + /* Don't check return value because we aren't validating symbolic link target */ + return err; + } + + /* Create the file on disk so we can save to it */ + mz_stream_os_create(&stream); + err = mz_stream_os_open(stream, pathwfs, MZ_OPEN_MODE_CREATE); + + if (err == MZ_OK) + err = mz_zip_reader_entry_save(handle, stream, mz_stream_write); + + mz_stream_close(stream); + mz_stream_delete(&stream); + + if (err == MZ_OK) { + /* Set the time of the file that has been created */ + mz_os_set_file_date(pathwfs, reader->file_info->modified_date, + reader->file_info->accessed_date, reader->file_info->creation_date); + } + + if (err == MZ_OK) { + /* Set file attributes for the correct system */ + err_attrib = mz_zip_attrib_convert(MZ_HOST_SYSTEM(reader->file_info->version_madeby), + reader->file_info->external_fa, MZ_VERSION_MADEBY_HOST_SYSTEM, &target_attrib); + + if (err_attrib == MZ_OK) + mz_os_set_file_attribs(pathwfs, target_attrib); + } + + return err; +} + +int32_t mz_zip_reader_entry_save_buffer(void *handle, void *buf, int32_t len) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + void *mem_stream = NULL; + int32_t err = MZ_OK; + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL) + return MZ_PARAM_ERROR; + if (reader->file_info->uncompressed_size > INT32_MAX) + return MZ_PARAM_ERROR; + if (len != (int32_t)reader->file_info->uncompressed_size) + return MZ_BUF_ERROR; + + /* Create a memory stream backed by our buffer and save to it */ + mz_stream_mem_create(&mem_stream); + mz_stream_mem_set_buffer(mem_stream, buf, len); + + err = mz_stream_mem_open(mem_stream, NULL, MZ_OPEN_MODE_READ); + if (err == MZ_OK) + err = mz_zip_reader_entry_save(handle, mem_stream, mz_stream_mem_write); + + mz_stream_mem_delete(&mem_stream); + return err; +} + +int32_t mz_zip_reader_entry_save_buffer_length(void *handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (reader->file_info == NULL) + return MZ_PARAM_ERROR; + if (reader->file_info->uncompressed_size > INT32_MAX) + return MZ_PARAM_ERROR; + + /* Get the maximum size required for the save buffer */ + return (int32_t)reader->file_info->uncompressed_size; +} + +/***************************************************************************/ + +int32_t mz_zip_reader_save_all(void *handle, const char *destination_dir) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + int32_t err = MZ_OK; + uint8_t *utf8_string = NULL; + char path[512]; + char utf8_name[256]; + char resolved_name[256]; + + err = mz_zip_reader_goto_first_entry(handle); + + if (err == MZ_END_OF_LIST) + return err; + + while (err == MZ_OK) { + /* Construct output path */ + path[0] = 0; + + strncpy(utf8_name, reader->file_info->filename, sizeof(utf8_name) - 1); + utf8_name[sizeof(utf8_name) - 1] = 0; + + if ((reader->encoding > 0) && (reader->file_info->flag & MZ_ZIP_FLAG_UTF8) == 0) { + utf8_string = mz_os_utf8_string_create(reader->file_info->filename, reader->encoding); + if (utf8_string) { + strncpy(utf8_name, (char *)utf8_string, sizeof(utf8_name) - 1); + utf8_name[sizeof(utf8_name) - 1] = 0; + mz_os_utf8_string_delete(&utf8_string); + } + } + + err = mz_path_resolve(utf8_name, resolved_name, sizeof(resolved_name)); + if (err != MZ_OK) + break; + + if (destination_dir != NULL) + mz_path_combine(path, destination_dir, sizeof(path)); + + mz_path_combine(path, resolved_name, sizeof(path)); + + /* Save file to disk */ + err = mz_zip_reader_entry_save_file(handle, path); + + if (err == MZ_OK) + err = mz_zip_reader_goto_next_entry(handle); + } + + if (err == MZ_END_OF_LIST) + return MZ_OK; + + return err; +} + +/***************************************************************************/ + +void mz_zip_reader_set_pattern(void *handle, const char *pattern, uint8_t ignore_case) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->pattern = pattern; + reader->pattern_ignore_case = ignore_case; +} + +void mz_zip_reader_set_password(void *handle, const char *password) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->password = password; +} + +void mz_zip_reader_set_raw(void *handle, uint8_t raw) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->raw = raw; +} + +int32_t mz_zip_reader_get_raw(void *handle, uint8_t *raw) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (raw == NULL) + return MZ_PARAM_ERROR; + *raw = reader->raw; + return MZ_OK; +} + +int32_t mz_zip_reader_get_zip_cd(void *handle, uint8_t *zip_cd) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (zip_cd == NULL) + return MZ_PARAM_ERROR; + *zip_cd = reader->cd_zipped; + return MZ_OK; +} + +int32_t mz_zip_reader_get_comment(void *handle, const char **comment) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (comment == NULL) + return MZ_PARAM_ERROR; + return mz_zip_get_comment(reader->zip_handle, comment); +} + +int32_t mz_zip_reader_set_recover(void *handle, uint8_t recover) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (reader == NULL) + return MZ_PARAM_ERROR; + reader->recover = recover; + return MZ_OK; +} + +void mz_zip_reader_set_encoding(void *handle, int32_t encoding) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->encoding = encoding; +} + +void mz_zip_reader_set_sign_required(void *handle, uint8_t sign_required) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->sign_required = sign_required; +} + +void mz_zip_reader_set_overwrite_cb(void *handle, void *userdata, mz_zip_reader_overwrite_cb cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->overwrite_cb = cb; + reader->overwrite_userdata = userdata; +} + +void mz_zip_reader_set_password_cb(void *handle, void *userdata, mz_zip_reader_password_cb cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->password_cb = cb; + reader->password_userdata = userdata; +} + +void mz_zip_reader_set_progress_cb(void *handle, void *userdata, mz_zip_reader_progress_cb cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->progress_cb = cb; + reader->progress_userdata = userdata; +} + +void mz_zip_reader_set_progress_interval(void *handle, uint32_t milliseconds) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->progress_cb_interval_ms = milliseconds; +} + +void mz_zip_reader_set_entry_cb(void *handle, void *userdata, mz_zip_reader_entry_cb cb) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + reader->entry_cb = cb; + reader->entry_userdata = userdata; +} + +int32_t mz_zip_reader_get_zip_handle(void *handle, void **zip_handle) { + mz_zip_reader *reader = (mz_zip_reader *)handle; + if (zip_handle == NULL) + return MZ_PARAM_ERROR; + *zip_handle = reader->zip_handle; + if (*zip_handle == NULL) + return MZ_EXIST_ERROR; + return MZ_OK; +} + +/***************************************************************************/ + +void *mz_zip_reader_create(void **handle) { + mz_zip_reader *reader = NULL; + + reader = (mz_zip_reader *)MZ_ALLOC(sizeof(mz_zip_reader)); + if (reader != NULL) { + memset(reader, 0, sizeof(mz_zip_reader)); + reader->recover = 1; + reader->progress_cb_interval_ms = MZ_DEFAULT_PROGRESS_INTERVAL; + } + if (handle != NULL) + *handle = reader; + + return reader; +} + +void mz_zip_reader_delete(void **handle) { + mz_zip_reader *reader = NULL; + if (handle == NULL) + return; + reader = (mz_zip_reader *)*handle; + if (reader != NULL) { + mz_zip_reader_close(reader); + MZ_FREE(reader); + } + *handle = NULL; +} + +/***************************************************************************/ + +typedef struct mz_zip_writer_s { + void *zip_handle; + void *file_stream; + void *buffered_stream; + void *split_stream; + void *sha256; + void *mem_stream; + void *file_extra_stream; + mz_zip_file file_info; + void *overwrite_userdata; + mz_zip_writer_overwrite_cb + overwrite_cb; + void *password_userdata; + mz_zip_writer_password_cb + password_cb; + void *progress_userdata; + mz_zip_writer_progress_cb + progress_cb; + uint32_t progress_cb_interval_ms; + void *entry_userdata; + mz_zip_writer_entry_cb + entry_cb; + const char *password; + const char *comment; + uint8_t *cert_data; + int32_t cert_data_size; + const char *cert_pwd; + uint16_t compress_method; + int16_t compress_level; + uint8_t follow_links; + uint8_t store_links; + uint8_t zip_cd; + uint8_t aes; + uint8_t raw; + uint8_t buffer[UINT16_MAX]; +} mz_zip_writer; + +/***************************************************************************/ + +int32_t mz_zip_writer_zip_cd(void *handle) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + mz_zip_file cd_file; + uint64_t number_entry = 0; + int64_t cd_mem_length = 0; + int32_t err = MZ_OK; + int32_t extrafield_size = 0; + void *file_extra_stream = NULL; + void *cd_mem_stream = NULL; + + + memset(&cd_file, 0, sizeof(cd_file)); + + mz_zip_get_number_entry(writer->zip_handle, &number_entry); + mz_zip_get_cd_mem_stream(writer->zip_handle, &cd_mem_stream); + mz_stream_seek(cd_mem_stream, 0, MZ_SEEK_END); + cd_mem_length = (uint32_t)mz_stream_tell(cd_mem_stream); + mz_stream_seek(cd_mem_stream, 0, MZ_SEEK_SET); + + cd_file.filename = MZ_ZIP_CD_FILENAME; + cd_file.modified_date = time(NULL); + cd_file.version_madeby = MZ_VERSION_MADEBY; + cd_file.compression_method = writer->compress_method; + cd_file.uncompressed_size = (int32_t)cd_mem_length; + cd_file.flag = MZ_ZIP_FLAG_UTF8; + + if (writer->password != NULL) + cd_file.flag |= MZ_ZIP_FLAG_ENCRYPTED; + + mz_stream_mem_create(&file_extra_stream); + mz_stream_mem_open(file_extra_stream, NULL, MZ_OPEN_MODE_CREATE); + + mz_zip_extrafield_write(file_extra_stream, MZ_ZIP_EXTENSION_CDCD, 8); + + mz_stream_write_uint64(file_extra_stream, number_entry); + + mz_stream_mem_get_buffer(file_extra_stream, (const void **)&cd_file.extrafield); + mz_stream_mem_get_buffer_length(file_extra_stream, &extrafield_size); + cd_file.extrafield_size = (uint16_t)extrafield_size; + + err = mz_zip_writer_entry_open(handle, &cd_file); + if (err == MZ_OK) { + mz_stream_copy_stream(handle, mz_zip_writer_entry_write, cd_mem_stream, + NULL, (int32_t)cd_mem_length); + + mz_stream_seek(cd_mem_stream, 0, MZ_SEEK_SET); + mz_stream_mem_set_buffer_limit(cd_mem_stream, 0); + + err = mz_zip_writer_entry_close(writer); + } + + mz_stream_mem_delete(&file_extra_stream); + + return err; +} + +/***************************************************************************/ + +int32_t mz_zip_writer_is_open(void *handle) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + if (writer == NULL) + return MZ_PARAM_ERROR; + if (writer->zip_handle == NULL) + return MZ_PARAM_ERROR; + return MZ_OK; +} + +static int32_t mz_zip_writer_open_int(void *handle, void *stream, int32_t mode) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; + + mz_zip_create(&writer->zip_handle); + err = mz_zip_open(writer->zip_handle, stream, mode); + + if (err != MZ_OK) { + mz_zip_writer_close(handle); + return err; + } + + return MZ_OK; +} + +int32_t mz_zip_writer_open(void *handle, void *stream, uint8_t append) { + int32_t mode = MZ_OPEN_MODE_WRITE; + + if (append) { + mode |= MZ_OPEN_MODE_APPEND; + } else { + mode |= MZ_OPEN_MODE_CREATE; + } + + return mz_zip_writer_open_int(handle, stream, mode); +} + +int32_t mz_zip_writer_open_file(void *handle, const char *path, int64_t disk_size, uint8_t append) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t mode = MZ_OPEN_MODE_READWRITE; + int32_t err = MZ_OK; + int32_t err_cb = 0; + char directory[320]; + + mz_zip_writer_close(handle); + + if (mz_os_file_exists(path) != MZ_OK) { + /* If the file doesn't exist, we don't append file */ + mode |= MZ_OPEN_MODE_CREATE; + + /* Create destination directory if it doesn't already exist */ + if (strchr(path, '/') != NULL || strrchr(path, '\\') != NULL) { + strncpy(directory, path, sizeof(directory)); + mz_path_remove_filename(directory); + if (mz_os_file_exists(directory) != MZ_OK) + mz_dir_make(directory); + } + } else if (append) { + mode |= MZ_OPEN_MODE_APPEND; + } else { + if (writer->overwrite_cb != NULL) + err_cb = writer->overwrite_cb(handle, writer->overwrite_userdata, path); + + if (err_cb == MZ_INTERNAL_ERROR) + return err; + + if (err_cb == MZ_OK) + mode |= MZ_OPEN_MODE_CREATE; + else + mode |= MZ_OPEN_MODE_APPEND; + } + + mz_stream_os_create(&writer->file_stream); + mz_stream_buffered_create(&writer->buffered_stream); + mz_stream_split_create(&writer->split_stream); + + mz_stream_set_base(writer->buffered_stream, writer->file_stream); + mz_stream_set_base(writer->split_stream, writer->buffered_stream); + + mz_stream_split_set_prop_int64(writer->split_stream, MZ_STREAM_PROP_DISK_SIZE, disk_size); + + err = mz_stream_open(writer->split_stream, path, mode); + if (err == MZ_OK) + err = mz_zip_writer_open_int(handle, writer->split_stream, mode); + + return err; +} + +int32_t mz_zip_writer_open_file_in_memory(void *handle, const char *path) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + void *file_stream = NULL; + int64_t file_size = 0; + int32_t err = 0; + + + mz_zip_writer_close(handle); + + mz_stream_os_create(&file_stream); + + err = mz_stream_os_open(file_stream, path, MZ_OPEN_MODE_READ); + + if (err != MZ_OK) { + mz_stream_os_delete(&file_stream); + mz_zip_writer_close(handle); + return err; + } + + mz_stream_os_seek(file_stream, 0, MZ_SEEK_END); + file_size = mz_stream_os_tell(file_stream); + mz_stream_os_seek(file_stream, 0, MZ_SEEK_SET); + + if ((file_size <= 0) || (file_size > UINT32_MAX)) { + /* Memory size is too large or too small */ + + mz_stream_os_close(file_stream); + mz_stream_os_delete(&file_stream); + mz_zip_writer_close(handle); + return MZ_MEM_ERROR; + } + + mz_stream_mem_create(&writer->mem_stream); + mz_stream_mem_set_grow_size(writer->mem_stream, (int32_t)file_size); + mz_stream_mem_open(writer->mem_stream, NULL, MZ_OPEN_MODE_CREATE); + + err = mz_stream_copy(writer->mem_stream, file_stream, (int32_t)file_size); + + mz_stream_os_close(file_stream); + mz_stream_os_delete(&file_stream); + + if (err == MZ_OK) + err = mz_zip_writer_open(handle, writer->mem_stream, 1); + if (err != MZ_OK) + mz_zip_writer_close(handle); + + return err; +} + +int32_t mz_zip_writer_close(void *handle) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; + + + if (writer->zip_handle != NULL) { + mz_zip_set_version_madeby(writer->zip_handle, MZ_VERSION_MADEBY); + if (writer->comment) + mz_zip_set_comment(writer->zip_handle, writer->comment); + if (writer->zip_cd) + mz_zip_writer_zip_cd(writer); + + err = mz_zip_close(writer->zip_handle); + mz_zip_delete(&writer->zip_handle); + } + + if (writer->split_stream != NULL) { + mz_stream_split_close(writer->split_stream); + mz_stream_split_delete(&writer->split_stream); + } + + if (writer->buffered_stream != NULL) + mz_stream_buffered_delete(&writer->buffered_stream); + + if (writer->file_stream != NULL) + mz_stream_os_delete(&writer->file_stream); + + if (writer->mem_stream != NULL) { + mz_stream_mem_close(writer->mem_stream); + mz_stream_mem_delete(&writer->mem_stream); + } + + return err; +} + +/***************************************************************************/ + +int32_t mz_zip_writer_entry_open(void *handle, mz_zip_file *file_info) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; + const char *password = NULL; + char password_buf[120]; + + /* Copy file info to access data upon close */ + memcpy(&writer->file_info, file_info, sizeof(mz_zip_file)); + + if (writer->entry_cb != NULL) + writer->entry_cb(handle, writer->entry_userdata, &writer->file_info); + + password = writer->password; + + /* Check if we need a password and ask for it if we need to */ + if ((writer->file_info.flag & MZ_ZIP_FLAG_ENCRYPTED) && (password == NULL) && + (writer->password_cb != NULL)) { + writer->password_cb(handle, writer->password_userdata, &writer->file_info, + password_buf, sizeof(password_buf)); + password = password_buf; + } + +#ifndef MZ_ZIP_NO_CRYPTO + if (mz_zip_attrib_is_dir(writer->file_info.external_fa, writer->file_info.version_madeby) != MZ_OK) { + /* Start calculating sha256 */ + mz_crypt_sha_create(&writer->sha256); + mz_crypt_sha_set_algorithm(writer->sha256, MZ_HASH_SHA256); + mz_crypt_sha_begin(writer->sha256); + } +#endif + + /* Open entry in zip */ + err = mz_zip_entry_write_open(writer->zip_handle, &writer->file_info, writer->compress_level, + writer->raw, password); + + return err; +} + +#if !defined(MZ_ZIP_NO_CRYPTO) && defined(MZ_ZIP_SIGNING) +int32_t mz_zip_writer_entry_sign(void *handle, uint8_t *message, int32_t message_size, + uint8_t *cert_data, int32_t cert_data_size, const char *cert_pwd) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; + int32_t signature_size = 0; + uint8_t *signature = NULL; + + + if (writer == NULL || cert_data == NULL || cert_data_size <= 0) + return MZ_PARAM_ERROR; + if (mz_zip_entry_is_open(writer->zip_handle) != MZ_OK) + return MZ_PARAM_ERROR; + + /* Sign message with certificate */ + err = mz_crypt_sign(message, message_size, cert_data, cert_data_size, cert_pwd, + &signature, &signature_size); + + if ((err == MZ_OK) && (signature != NULL)) { + /* Write signature zip extra field */ + err = mz_zip_extrafield_write(writer->file_extra_stream, MZ_ZIP_EXTENSION_SIGN, + (uint16_t)signature_size); + + if (err == MZ_OK) { + if (mz_stream_write(writer->file_extra_stream, signature, signature_size) != signature_size) + err = MZ_WRITE_ERROR; + } + + MZ_FREE(signature); + } + + return err; +} +#endif + +int32_t mz_zip_writer_entry_close(void *handle) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; +#ifndef MZ_ZIP_NO_CRYPTO + const uint8_t *extrafield = NULL; + int32_t extrafield_size = 0; + int16_t field_length_hash = 0; + uint8_t sha256[MZ_HASH_SHA256_SIZE]; + + + if (writer->sha256 != NULL) { + mz_crypt_sha_end(writer->sha256, sha256, sizeof(sha256)); + mz_crypt_sha_delete(&writer->sha256); + + /* Copy extrafield so we can append our own fields before close */ + mz_stream_mem_create(&writer->file_extra_stream); + mz_stream_mem_open(writer->file_extra_stream, NULL, MZ_OPEN_MODE_CREATE); + + /* Write sha256 hash to extrafield */ + field_length_hash = 4 + MZ_HASH_SHA256_SIZE; + err = mz_zip_extrafield_write(writer->file_extra_stream, MZ_ZIP_EXTENSION_HASH, field_length_hash); + if (err == MZ_OK) + err = mz_stream_write_uint16(writer->file_extra_stream, MZ_HASH_SHA256); + if (err == MZ_OK) + err = mz_stream_write_uint16(writer->file_extra_stream, MZ_HASH_SHA256_SIZE); + if (err == MZ_OK) { + if (mz_stream_write(writer->file_extra_stream, sha256, sizeof(sha256)) != MZ_HASH_SHA256_SIZE) + err = MZ_WRITE_ERROR; + } + +#ifdef MZ_ZIP_SIGNING + if ((err == MZ_OK) && (writer->cert_data != NULL) && (writer->cert_data_size > 0)) { + /* Sign entry if not zipping cd or if it is cd being zipped */ + if (!writer->zip_cd || strcmp(writer->file_info.filename, MZ_ZIP_CD_FILENAME) == 0) { + err = mz_zip_writer_entry_sign(handle, sha256, sizeof(sha256), + writer->cert_data, writer->cert_data_size, writer->cert_pwd); + } + } +#endif + + if ((writer->file_info.extrafield != NULL) && (writer->file_info.extrafield_size > 0)) + mz_stream_mem_write(writer->file_extra_stream, writer->file_info.extrafield, + writer->file_info.extrafield_size); + + /* Update extra field for central directory after adding extra fields */ + mz_stream_mem_get_buffer(writer->file_extra_stream, (const void **)&extrafield); + mz_stream_mem_get_buffer_length(writer->file_extra_stream, &extrafield_size); + + mz_zip_entry_set_extrafield(writer->zip_handle, extrafield, (uint16_t)extrafield_size); + } +#endif + + if (err == MZ_OK) { + if (writer->raw) + err = mz_zip_entry_close_raw(writer->zip_handle, writer->file_info.uncompressed_size, + writer->file_info.crc); + else + err = mz_zip_entry_close(writer->zip_handle); + } + + if (writer->file_extra_stream != NULL) + mz_stream_mem_delete(&writer->file_extra_stream); + + return err; +} + +int32_t mz_zip_writer_entry_write(void *handle, const void *buf, int32_t len) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t written = 0; + written = mz_zip_entry_write(writer->zip_handle, buf, len); +#ifndef MZ_ZIP_NO_CRYPTO + if ((written > 0) && (writer->sha256 != NULL)) + mz_crypt_sha_update(writer->sha256, buf, written); +#endif + return written; +} +/***************************************************************************/ + +int32_t mz_zip_writer_add_process(void *handle, void *stream, mz_stream_read_cb read_cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t read = 0; + int32_t written = 0; + int32_t err = MZ_OK; + + if (mz_zip_writer_is_open(writer) != MZ_OK) + return MZ_PARAM_ERROR; + /* If the entry isn't open for writing, open it */ + if (mz_zip_entry_is_open(writer->zip_handle) != MZ_OK) + return MZ_PARAM_ERROR; + if (read_cb == NULL) + return MZ_PARAM_ERROR; + + read = read_cb(stream, writer->buffer, sizeof(writer->buffer)); + if (read == 0) + return MZ_END_OF_STREAM; + if (read < 0) { + err = read; + return err; + } + + written = mz_zip_writer_entry_write(handle, writer->buffer, read); + if (written != read) + return MZ_WRITE_ERROR; + + return written; +} + +int32_t mz_zip_writer_add(void *handle, void *stream, mz_stream_read_cb read_cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + uint64_t current_time = 0; + uint64_t update_time = 0; + int64_t current_pos = 0; + int64_t update_pos = 0; + int32_t err = MZ_OK; + int32_t written = 0; + + /* Update the progress at the beginning */ + if (writer->progress_cb != NULL) + writer->progress_cb(handle, writer->progress_userdata, &writer->file_info, current_pos); + + /* Write data to stream until done */ + while (err == MZ_OK) { + written = mz_zip_writer_add_process(handle, stream, read_cb); + if (written == MZ_END_OF_STREAM) + break; + if (written > 0) + current_pos += written; + if (written < 0) + err = written; + + /* Update progress if enough time have passed */ + current_time = mz_os_ms_time(); + if ((current_time - update_time) > writer->progress_cb_interval_ms) { + if (writer->progress_cb != NULL) + writer->progress_cb(handle, writer->progress_userdata, &writer->file_info, current_pos); + + update_pos = current_pos; + update_time = current_time; + } + } + + /* Update the progress at the end */ + if (writer->progress_cb != NULL && update_pos != current_pos) + writer->progress_cb(handle, writer->progress_userdata, &writer->file_info, current_pos); + + return err; +} + +int32_t mz_zip_writer_add_info(void *handle, void *stream, mz_stream_read_cb read_cb, mz_zip_file *file_info) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + int32_t err = MZ_OK; + + + if (mz_zip_writer_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + if (file_info == NULL) + return MZ_PARAM_ERROR; + + /* Add to zip */ + err = mz_zip_writer_entry_open(handle, file_info); + if (err != MZ_OK) + return err; + + if (stream != NULL) { + if (mz_zip_attrib_is_dir(writer->file_info.external_fa, writer->file_info.version_madeby) != MZ_OK) { + err = mz_zip_writer_add(handle, stream, read_cb); + if (err != MZ_OK) + return err; + } + } + + err = mz_zip_writer_entry_close(handle); + + return err; +} + +int32_t mz_zip_writer_add_buffer(void *handle, void *buf, int32_t len, mz_zip_file *file_info) { + void *mem_stream = NULL; + int32_t err = MZ_OK; + + if (mz_zip_writer_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + if (buf == NULL) + return MZ_PARAM_ERROR; + + /* Create a memory stream backed by our buffer and add from it */ + mz_stream_mem_create(&mem_stream); + mz_stream_mem_set_buffer(mem_stream, buf, len); + + err = mz_stream_mem_open(mem_stream, NULL, MZ_OPEN_MODE_READ); + if (err == MZ_OK) + err = mz_zip_writer_add_info(handle, mem_stream, mz_stream_mem_read, file_info); + + mz_stream_mem_delete(&mem_stream); + return err; +} + +int32_t mz_zip_writer_add_file(void *handle, const char *path, const char *filename_in_zip) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + mz_zip_file file_info; + uint32_t target_attrib = 0; + uint32_t src_attrib = 0; + int32_t err = MZ_OK; + uint8_t src_sys = 0; + void *stream = NULL; + char link_path[1024]; + const char *filename = filename_in_zip; + + + if (mz_zip_writer_is_open(handle) != MZ_OK) + return MZ_PARAM_ERROR; + if (path == NULL) + return MZ_PARAM_ERROR; + + if (filename == NULL) { + err = mz_path_get_filename(path, &filename); + if (err != MZ_OK) + return err; + } + + memset(&file_info, 0, sizeof(file_info)); + + /* The path name saved, should not include a leading slash. */ + /* If it did, windows/xp and dynazip couldn't read the zip file. */ + + while (filename[0] == '\\' || filename[0] == '/') + filename += 1; + + /* Get information about the file on disk so we can store it in zip */ + + file_info.version_madeby = MZ_VERSION_MADEBY; + file_info.compression_method = writer->compress_method; + file_info.filename = filename; + file_info.uncompressed_size = mz_os_get_file_size(path); + file_info.flag = MZ_ZIP_FLAG_UTF8; + + if (writer->zip_cd) + file_info.flag |= MZ_ZIP_FLAG_MASK_LOCAL_INFO; + if (writer->aes) + file_info.aes_version = MZ_AES_VERSION; + + mz_os_get_file_date(path, &file_info.modified_date, &file_info.accessed_date, + &file_info.creation_date); + mz_os_get_file_attribs(path, &src_attrib); + + src_sys = MZ_HOST_SYSTEM(file_info.version_madeby); + + if ((src_sys != MZ_HOST_SYSTEM_MSDOS) && (src_sys != MZ_HOST_SYSTEM_WINDOWS_NTFS)) { + /* High bytes are OS specific attributes, low byte is always DOS attributes */ + if (mz_zip_attrib_convert(src_sys, src_attrib, MZ_HOST_SYSTEM_MSDOS, &target_attrib) == MZ_OK) + file_info.external_fa = target_attrib; + file_info.external_fa |= (src_attrib << 16); + } else { + file_info.external_fa = src_attrib; + } + + if (writer->store_links && mz_os_is_symlink(path) == MZ_OK) { + err = mz_os_read_symlink(path, link_path, sizeof(link_path)); + if (err == MZ_OK) + file_info.linkname = link_path; + } else if (mz_os_is_dir(path) != MZ_OK) { + mz_stream_os_create(&stream); + err = mz_stream_os_open(stream, path, MZ_OPEN_MODE_READ); + } + + if (err == MZ_OK) + err = mz_zip_writer_add_info(handle, stream, mz_stream_read, &file_info); + + if (stream != NULL) { + mz_stream_close(stream); + mz_stream_delete(&stream); + } + + return err; +} + +int32_t mz_zip_writer_add_path(void *handle, const char *path, const char *root_path, + uint8_t include_path, uint8_t recursive) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + DIR *dir = NULL; + struct dirent *entry = NULL; + int32_t err = MZ_OK; + int16_t is_dir = 0; + const char *filename = NULL; + const char *filenameinzip = path; + char *wildcard_ptr = NULL; + char full_path[1024]; + char path_dir[1024]; + + + if (strrchr(path, '*') != NULL) { + strncpy(path_dir, path, sizeof(path_dir) - 1); + path_dir[sizeof(path_dir) - 1] = 0; + mz_path_remove_filename(path_dir); + wildcard_ptr = path_dir + strlen(path_dir) + 1; + root_path = path = path_dir; + } else { + if (mz_os_is_dir(path) == MZ_OK) + is_dir = 1; + + /* Construct the filename that our file will be stored in the zip as */ + if (root_path == NULL) + root_path = path; + + /* Should the file be stored with any path info at all? */ + if (!include_path) { + if (!is_dir && root_path == path) { + if (mz_path_get_filename(filenameinzip, &filename) == MZ_OK) + filenameinzip = filename; + } else { + filenameinzip += strlen(root_path); + } + } + + if (!writer->store_links && !writer->follow_links) { + if (mz_os_is_symlink(path) == MZ_OK) + return err; + } + + if (*filenameinzip != 0) + err = mz_zip_writer_add_file(handle, path, filenameinzip); + + if (!is_dir) + return err; + + if (writer->store_links) { + if (mz_os_is_symlink(path) == MZ_OK) + return err; + } + } + + dir = mz_os_open_dir(path); + + if (dir == NULL) + return MZ_EXIST_ERROR; + + while ((entry = mz_os_read_dir(dir)) != NULL) { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) + continue; + + full_path[0] = 0; + mz_path_combine(full_path, path, sizeof(full_path)); + mz_path_combine(full_path, entry->d_name, sizeof(full_path)); + + if (!recursive && mz_os_is_dir(full_path) == MZ_OK) + continue; + + if ((wildcard_ptr != NULL) && (mz_path_compare_wc(entry->d_name, wildcard_ptr, 1) != MZ_OK)) + continue; + + err = mz_zip_writer_add_path(handle, full_path, root_path, include_path, recursive); + if (err != MZ_OK) + break; + } + + mz_os_close_dir(dir); + return err; +} + +int32_t mz_zip_writer_copy_from_reader(void *handle, void *reader) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + mz_zip_file *file_info = NULL; + int64_t compressed_size = 0; + int64_t uncompressed_size = 0; + uint32_t crc32 = 0; + int32_t err = MZ_OK; + uint8_t original_raw = 0; + void *reader_zip_handle = NULL; + void *writer_zip_handle = NULL; + + + if (mz_zip_reader_is_open(reader) != MZ_OK) + return MZ_PARAM_ERROR; + if (mz_zip_writer_is_open(writer) != MZ_OK) + return MZ_PARAM_ERROR; + + err = mz_zip_reader_entry_get_info(reader, &file_info); + + if (err != MZ_OK) + return err; + + mz_zip_reader_get_zip_handle(reader, &reader_zip_handle); + mz_zip_writer_get_zip_handle(writer, &writer_zip_handle); + + /* Open entry for raw reading */ + err = mz_zip_entry_read_open(reader_zip_handle, 1, NULL); + + if (err == MZ_OK) { + /* Write entry raw, save original raw value */ + original_raw = writer->raw; + writer->raw = 1; + + err = mz_zip_writer_entry_open(writer, file_info); + + if ((err == MZ_OK) && + (mz_zip_attrib_is_dir(writer->file_info.external_fa, writer->file_info.version_madeby) != MZ_OK)) { + err = mz_zip_writer_add(writer, reader_zip_handle, mz_zip_entry_read); + } + + if (err == MZ_OK) { + err = mz_zip_entry_read_close(reader_zip_handle, &crc32, &compressed_size, &uncompressed_size); + if (err == MZ_OK) + err = mz_zip_entry_write_close(writer_zip_handle, crc32, compressed_size, uncompressed_size); + } + + if (mz_zip_entry_is_open(reader_zip_handle) == MZ_OK) + mz_zip_entry_close(reader_zip_handle); + + if (mz_zip_entry_is_open(writer_zip_handle) == MZ_OK) + mz_zip_entry_close(writer_zip_handle); + + writer->raw = original_raw; + } + + return err; +} + +/***************************************************************************/ + +void mz_zip_writer_set_password(void *handle, const char *password) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->password = password; +} + +void mz_zip_writer_set_comment(void *handle, const char *comment) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->comment = comment; +} + +void mz_zip_writer_set_raw(void *handle, uint8_t raw) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->raw = raw; +} + +int32_t mz_zip_writer_get_raw(void *handle, uint8_t *raw) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + if (raw == NULL) + return MZ_PARAM_ERROR; + *raw = writer->raw; + return MZ_OK; +} + +void mz_zip_writer_set_aes(void *handle, uint8_t aes) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->aes = aes; +} + +void mz_zip_writer_set_compress_method(void *handle, uint16_t compress_method) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->compress_method = compress_method; +} + +void mz_zip_writer_set_compress_level(void *handle, int16_t compress_level) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->compress_level = compress_level; +} + +void mz_zip_writer_set_follow_links(void *handle, uint8_t follow_links) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->follow_links = follow_links; +} + +void mz_zip_writer_set_store_links(void *handle, uint8_t store_links) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->store_links = store_links; +} + +void mz_zip_writer_set_zip_cd(void *handle, uint8_t zip_cd) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->zip_cd = zip_cd; +} + +int32_t mz_zip_writer_set_certificate(void *handle, const char *cert_path, const char *cert_pwd) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + void *cert_stream = NULL; + uint8_t *cert_data = NULL; + int32_t cert_data_size = 0; + int32_t err = MZ_OK; + + if (cert_path == NULL) + return MZ_PARAM_ERROR; + + cert_data_size = (int32_t)mz_os_get_file_size(cert_path); + + if (cert_data_size == 0) + return MZ_PARAM_ERROR; + + if (writer->cert_data != NULL) { + MZ_FREE(writer->cert_data); + writer->cert_data = NULL; + } + + cert_data = (uint8_t *)MZ_ALLOC(cert_data_size); + + /* Read pkcs12 certificate from disk */ + mz_stream_os_create(&cert_stream); + err = mz_stream_os_open(cert_stream, cert_path, MZ_OPEN_MODE_READ); + if (err == MZ_OK) { + if (mz_stream_os_read(cert_stream, cert_data, cert_data_size) != cert_data_size) + err = MZ_READ_ERROR; + mz_stream_os_close(cert_stream); + } + mz_stream_os_delete(&cert_stream); + + if (err == MZ_OK) { + writer->cert_data = cert_data; + writer->cert_data_size = cert_data_size; + writer->cert_pwd = cert_pwd; + } else { + MZ_FREE(cert_data); + } + + return err; +} + +void mz_zip_writer_set_overwrite_cb(void *handle, void *userdata, mz_zip_writer_overwrite_cb cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->overwrite_cb = cb; + writer->overwrite_userdata = userdata; +} + +void mz_zip_writer_set_password_cb(void *handle, void *userdata, mz_zip_writer_password_cb cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->password_cb = cb; + writer->password_userdata = userdata; +} + +void mz_zip_writer_set_progress_cb(void *handle, void *userdata, mz_zip_writer_progress_cb cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->progress_cb = cb; + writer->progress_userdata = userdata; +} + +void mz_zip_writer_set_progress_interval(void *handle, uint32_t milliseconds) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->progress_cb_interval_ms = milliseconds; +} + +void mz_zip_writer_set_entry_cb(void *handle, void *userdata, mz_zip_writer_entry_cb cb) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + writer->entry_cb = cb; + writer->entry_userdata = userdata; +} + +int32_t mz_zip_writer_get_zip_handle(void *handle, void **zip_handle) { + mz_zip_writer *writer = (mz_zip_writer *)handle; + if (zip_handle == NULL) + return MZ_PARAM_ERROR; + *zip_handle = writer->zip_handle; + if (*zip_handle == NULL) + return MZ_EXIST_ERROR; + return MZ_OK; +} + +/***************************************************************************/ + +void *mz_zip_writer_create(void **handle) { + mz_zip_writer *writer = NULL; + + writer = (mz_zip_writer *)MZ_ALLOC(sizeof(mz_zip_writer)); + if (writer != NULL) { + memset(writer, 0, sizeof(mz_zip_writer)); +#if defined(HAVE_WZAES) + writer->aes = 1; +#endif +#if defined(HAVE_ZLIB) || defined(HAVE_LIBCOMP) + writer->compress_method = MZ_COMPRESS_METHOD_DEFLATE; +#elif defined(HAVE_BZIP2) + writer->compress_method = MZ_COMPRESS_METHOD_BZIP2; +#elif defined(HAVE_LZMA) + writer->compress_method = MZ_COMPRESS_METHOD_LZMA; +#else + writer->compress_method = MZ_COMPRESS_METHOD_STORE; +#endif + writer->compress_level = MZ_COMPRESS_LEVEL_BEST; + writer->progress_cb_interval_ms = MZ_DEFAULT_PROGRESS_INTERVAL; + } + if (handle != NULL) + *handle = writer; + + return writer; +} + +void mz_zip_writer_delete(void **handle) { + mz_zip_writer *writer = NULL; + if (handle == NULL) + return; + writer = (mz_zip_writer *)*handle; + if (writer != NULL) { + mz_zip_writer_close(writer); + + if (writer->cert_data != NULL) + MZ_FREE(writer->cert_data); + + writer->cert_data = NULL; + writer->cert_data_size = 0; + + MZ_FREE(writer); + } + *handle = NULL; +} + +/***************************************************************************/ diff --git a/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.h b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.h new file mode 100644 index 0000000..e507f94 --- /dev/null +++ b/Pods/SSZipArchive/SSZipArchive/minizip/mz_zip_rw.h @@ -0,0 +1,285 @@ +/* mz_zip_rw.h -- Zip reader/writer + part of the minizip-ng project + + Copyright (C) 2010-2021 Nathan Moinvaziri + https://github.com/zlib-ng/minizip-ng + + This program is distributed under the terms of the same license as zlib. + See the accompanying LICENSE file for the full text of the license. +*/ + +#ifndef MZ_ZIP_RW_H +#define MZ_ZIP_RW_H + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************/ + +typedef int32_t (*mz_zip_reader_overwrite_cb)(void *handle, void *userdata, mz_zip_file *file_info, const char *path); +typedef int32_t (*mz_zip_reader_password_cb)(void *handle, void *userdata, mz_zip_file *file_info, char *password, int32_t max_password); +typedef int32_t (*mz_zip_reader_progress_cb)(void *handle, void *userdata, mz_zip_file *file_info, int64_t position); +typedef int32_t (*mz_zip_reader_entry_cb)(void *handle, void *userdata, mz_zip_file *file_info, const char *path); + +/***************************************************************************/ + +int32_t mz_zip_reader_is_open(void *handle); +/* Checks to see if the zip file is open */ + +int32_t mz_zip_reader_open(void *handle, void *stream); +/* Opens zip file from stream */ + +int32_t mz_zip_reader_open_file(void *handle, const char *path); +/* Opens zip file from a file path */ + +int32_t mz_zip_reader_open_file_in_memory(void *handle, const char *path); +/* Opens zip file from a file path into memory for faster access */ + +int32_t mz_zip_reader_open_buffer(void *handle, uint8_t *buf, int32_t len, uint8_t copy); +/* Opens zip file from memory buffer */ + +int32_t mz_zip_reader_close(void *handle); +/* Closes the zip file */ + +/***************************************************************************/ + +int32_t mz_zip_reader_unzip_cd(void *handle); +/* Unzip the central directory */ + +/***************************************************************************/ + +int32_t mz_zip_reader_goto_first_entry(void *handle); +/* Goto the first entry in the zip file that matches the pattern */ + +int32_t mz_zip_reader_goto_next_entry(void *handle); +/* Goto the next entry in the zip file that matches the pattern */ + +int32_t mz_zip_reader_locate_entry(void *handle, const char *filename, uint8_t ignore_case); +/* Locates an entry by filename */ + +int32_t mz_zip_reader_entry_open(void *handle); +/* Opens an entry for reading */ + +int32_t mz_zip_reader_entry_close(void *handle); +/* Closes an entry */ + +int32_t mz_zip_reader_entry_read(void *handle, void *buf, int32_t len); +/* Reads and entry after being opened */ + +int32_t mz_zip_reader_entry_has_sign(void *handle); +/* Checks to see if the entry has a signature */ + +int32_t mz_zip_reader_entry_sign_verify(void *handle); +/* Verifies a signature stored with the entry */ + +int32_t mz_zip_reader_entry_get_hash(void *handle, uint16_t algorithm, uint8_t *digest, int32_t digest_size); +/* Gets a hash algorithm from the entry's extra field */ + +int32_t mz_zip_reader_entry_get_first_hash(void *handle, uint16_t *algorithm, uint16_t *digest_size); +/* Gets the most secure hash algorithm from the entry's extra field */ + +int32_t mz_zip_reader_entry_get_info(void *handle, mz_zip_file **file_info); +/* Gets the current entry file info */ + +int32_t mz_zip_reader_entry_is_dir(void *handle); +/* Gets the current entry is a directory */ + +int32_t mz_zip_reader_entry_save(void *handle, void *stream, mz_stream_write_cb write_cb); +/* Save the current entry to a stream */ + +int32_t mz_zip_reader_entry_save_process(void *handle, void *stream, mz_stream_write_cb write_cb); +/* Saves a portion of the current entry to a stream callback */ + +int32_t mz_zip_reader_entry_save_file(void *handle, const char *path); +/* Save the current entry to a file */ + +int32_t mz_zip_reader_entry_save_buffer(void *handle, void *buf, int32_t len); +/* Save the current entry to a memory buffer */ + +int32_t mz_zip_reader_entry_save_buffer_length(void *handle); +/* Gets the length of the buffer required to save */ + +/***************************************************************************/ + +int32_t mz_zip_reader_save_all(void *handle, const char *destination_dir); +/* Save all files into a directory */ + +/***************************************************************************/ + +void mz_zip_reader_set_pattern(void *handle, const char *pattern, uint8_t ignore_case); +/* Sets the match pattern for entries in the zip file, if null all entries are matched */ + +void mz_zip_reader_set_password(void *handle, const char *password); +/* Sets the password required for extraction */ + +void mz_zip_reader_set_raw(void *handle, uint8_t raw); +/* Sets whether or not it should save the entry raw */ + +int32_t mz_zip_reader_get_raw(void *handle, uint8_t *raw); +/* Gets whether or not it should save the entry raw */ + +int32_t mz_zip_reader_get_zip_cd(void *handle, uint8_t *zip_cd); +/* Gets whether or not the archive has a zipped central directory */ + +int32_t mz_zip_reader_get_comment(void *handle, const char **comment); +/* Gets the comment for the central directory */ + +int32_t mz_zip_reader_set_recover(void *handle, uint8_t recover); +/* Sets the ability to recover the central dir by reading local file headers */ + +void mz_zip_reader_set_encoding(void *handle, int32_t encoding); +/* Sets whether or not it should support a special character encoding in zip file names. */ + +void mz_zip_reader_set_sign_required(void *handle, uint8_t sign_required); +/* Sets whether or not it a signature is required */ + +void mz_zip_reader_set_overwrite_cb(void *handle, void *userdata, mz_zip_reader_overwrite_cb cb); +/* Callback for what to do when a file is being overwritten */ + +void mz_zip_reader_set_password_cb(void *handle, void *userdata, mz_zip_reader_password_cb cb); +/* Callback for when a password is required and hasn't been set */ + +void mz_zip_reader_set_progress_cb(void *handle, void *userdata, mz_zip_reader_progress_cb cb); +/* Callback for extraction progress */ + +void mz_zip_reader_set_progress_interval(void *handle, uint32_t milliseconds); +/* Let at least milliseconds pass between calls to progress callback */ + +void mz_zip_reader_set_entry_cb(void *handle, void *userdata, mz_zip_reader_entry_cb cb); +/* Callback for zip file entries */ + +int32_t mz_zip_reader_get_zip_handle(void *handle, void **zip_handle); +/* Gets the underlying zip instance handle */ + +void* mz_zip_reader_create(void **handle); +/* Create new instance of zip reader */ + +void mz_zip_reader_delete(void **handle); +/* Delete instance of zip reader */ + +/***************************************************************************/ + +typedef int32_t (*mz_zip_writer_overwrite_cb)(void *handle, void *userdata, const char *path); +typedef int32_t (*mz_zip_writer_password_cb)(void *handle, void *userdata, mz_zip_file *file_info, char *password, int32_t max_password); +typedef int32_t (*mz_zip_writer_progress_cb)(void *handle, void *userdata, mz_zip_file *file_info, int64_t position); +typedef int32_t (*mz_zip_writer_entry_cb)(void *handle, void *userdata, mz_zip_file *file_info); + +/***************************************************************************/ + +int32_t mz_zip_writer_is_open(void *handle); +/* Checks to see if the zip file is open */ + +int32_t mz_zip_writer_open(void *handle, void *stream, uint8_t append); +/* Opens zip file from stream */ + +int32_t mz_zip_writer_open_file(void *handle, const char *path, int64_t disk_size, uint8_t append); +/* Opens zip file from a file path */ + +int32_t mz_zip_writer_open_file_in_memory(void *handle, const char *path); +/* Opens zip file from a file path into memory for faster access */ + +int32_t mz_zip_writer_close(void *handle); +/* Closes the zip file */ + +/***************************************************************************/ + +int32_t mz_zip_writer_entry_open(void *handle, mz_zip_file *file_info); +/* Opens an entry in the zip file for writing */ + +int32_t mz_zip_writer_entry_close(void *handle); +/* Closes entry in zip file */ + +int32_t mz_zip_writer_entry_write(void *handle, const void *buf, int32_t len); +/* Writes data into entry for zip */ + +/***************************************************************************/ + +int32_t mz_zip_writer_add(void *handle, void *stream, mz_stream_read_cb read_cb); +/* Writes all data to the currently open entry in the zip */ + +int32_t mz_zip_writer_add_process(void *handle, void *stream, mz_stream_read_cb read_cb); +/* Writes a portion of data to the currently open entry in the zip */ + +int32_t mz_zip_writer_add_info(void *handle, void *stream, mz_stream_read_cb read_cb, mz_zip_file *file_info); +/* Adds an entry to the zip based on the info */ + +int32_t mz_zip_writer_add_buffer(void *handle, void *buf, int32_t len, mz_zip_file *file_info); +/* Adds an entry to the zip with a memory buffer */ + +int32_t mz_zip_writer_add_file(void *handle, const char *path, const char *filename_in_zip); +/* Adds an entry to the zip from a file */ + +int32_t mz_zip_writer_add_path(void *handle, const char *path, const char *root_path, uint8_t include_path, + uint8_t recursive); +/* Enumerates a directory or pattern and adds entries to the zip */ + +int32_t mz_zip_writer_copy_from_reader(void *handle, void *reader); +/* Adds an entry from a zip reader instance */ + +/***************************************************************************/ + +void mz_zip_writer_set_password(void *handle, const char *password); +/* Password to use for encrypting files in the zip */ + +void mz_zip_writer_set_comment(void *handle, const char *comment); +/* Comment to use for the archive */ + +void mz_zip_writer_set_raw(void *handle, uint8_t raw); +/* Sets whether or not we should write the entry raw */ + +int32_t mz_zip_writer_get_raw(void *handle, uint8_t *raw); +/* Gets whether or not we should write the entry raw */ + +void mz_zip_writer_set_aes(void *handle, uint8_t aes); +/* Use aes encryption when adding files in zip */ + +void mz_zip_writer_set_compress_method(void *handle, uint16_t compress_method); +/* Sets the compression method when adding files in zip */ + +void mz_zip_writer_set_compress_level(void *handle, int16_t compress_level); +/* Sets the compression level when adding files in zip */ + +void mz_zip_writer_set_follow_links(void *handle, uint8_t follow_links); +/* Follow symbolic links when traversing directories and files to add */ + +void mz_zip_writer_set_store_links(void *handle, uint8_t store_links); +/* Store symbolic links in zip file */ + +void mz_zip_writer_set_zip_cd(void *handle, uint8_t zip_cd); +/* Sets whether or not central directory should be zipped */ + +int32_t mz_zip_writer_set_certificate(void *handle, const char *cert_path, const char *cert_pwd); +/* Sets the certificate and timestamp url to use for signing when adding files in zip */ + +void mz_zip_writer_set_overwrite_cb(void *handle, void *userdata, mz_zip_writer_overwrite_cb cb); +/* Callback for what to do when zip file already exists */ + +void mz_zip_writer_set_password_cb(void *handle, void *userdata, mz_zip_writer_password_cb cb); +/* Callback for ask if a password is required for adding */ + +void mz_zip_writer_set_progress_cb(void *handle, void *userdata, mz_zip_writer_progress_cb cb); +/* Callback for compression progress */ + +void mz_zip_writer_set_progress_interval(void *handle, uint32_t milliseconds); +/* Let at least milliseconds pass between calls to progress callback */ + +void mz_zip_writer_set_entry_cb(void *handle, void *userdata, mz_zip_writer_entry_cb cb); +/* Callback for zip file entries */ + +int32_t mz_zip_writer_get_zip_handle(void *handle, void **zip_handle); +/* Gets the underlying zip handle */ + +void* mz_zip_writer_create(void **handle); +/* Create new instance of zip writer */ + +void mz_zip_writer_delete(void **handle); +/* Delete instance of zip writer */ + +/***************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.markdown b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.markdown index 811fe3a..072e44c 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.markdown @@ -346,6 +346,30 @@ THE SOFTWARE. +## SSZipArchive + +Copyright (c) 2013-2021, ZipArchive, https://github.com/ZipArchive + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + ## Bugly Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved. diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.plist b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.plist index 6b69ac6..a026cfd 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-acknowledgements.plist @@ -447,6 +447,36 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Copyright (c) 2013-2021, ZipArchive, https://github.com/ZipArchive + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + SSZipArchive + Type + PSGroupSpecifier + FooterText Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved. diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-input-files.xcfilelist index 34d8e4e..0244c80 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-input-files.xcfilelist @@ -13,4 +13,5 @@ ${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework ${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework ${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework -${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework +${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-output-files.xcfilelist index 9d68623..a547675 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Debug-output-files.xcfilelist @@ -12,4 +12,5 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SSZipArchive.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-input-files.xcfilelist index b977d53..133961f 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-input-files.xcfilelist @@ -12,4 +12,5 @@ ${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework ${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework ${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework -${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework +${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-output-files.xcfilelist index f4eb712..c56985c 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-Release-output-files.xcfilelist @@ -11,4 +11,5 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SSZipArchive.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks.sh b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks.sh index 66535f4..383be83 100755 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks.sh +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks.sh @@ -191,6 +191,7 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework" install_framework "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework" install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework" + install_framework "${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework" @@ -207,6 +208,7 @@ if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework" install_framework "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework" install_framework "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework" + install_framework "${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.debug.xcconfig b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.debug.xcconfig index 96285cf..3ffac7b 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.debug.xcconfig +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.debug.xcconfig @@ -1,10 +1,10 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "${PODS_CONFIGURATION_BUILD_DIR}/LookinServer" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "${PODS_CONFIGURATION_BUILD_DIR}/LookinServer" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage/FLAnimatedImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal/HWPanModal.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView/LSTPopView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer/LSTTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView/LYEmptyView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LookinServer/LookinServer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage/FLAnimatedImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal/HWPanModal.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView/LSTPopView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer/LSTTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView/LYEmptyView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LookinServer/LookinServer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "CoreGraphics" -framework "DZNEmptyDataSet" -framework "FLAnimatedImage" -framework "Foundation" -framework "HWPanModal" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LSTPopView" -framework "LSTTimer" -framework "LYEmptyView" -framework "LookinServer" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "UIKit" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "-F${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "-F${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LookinServer" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" +OTHER_LDFLAGS = $(inherited) -l"iconv" -l"z" -framework "AFNetworking" -framework "CoreGraphics" -framework "DZNEmptyDataSet" -framework "FLAnimatedImage" -framework "Foundation" -framework "HWPanModal" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LSTPopView" -framework "LSTTimer" -framework "LYEmptyView" -framework "LookinServer" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SSZipArchive" -framework "Security" -framework "UIKit" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "-F${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "-F${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LookinServer" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.release.xcconfig b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.release.xcconfig index c13eb51..257e0a5 100644 --- a/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.release.xcconfig +++ b/Pods/Target Support Files/Pods-keyBoard/Pods-keyBoard.release.xcconfig @@ -1,10 +1,10 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_ROOT}/Bugly" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" "${PODS_ROOT}/Bugly" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage/FLAnimatedImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal/HWPanModal.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView/LSTPopView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer/LSTTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView/LYEmptyView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage/FLAnimatedImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal/HWPanModal.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView/JXCategoryView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView/JXPagingView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView/LSTPopView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer/LSTTimer.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView/LYEmptyView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive/SSZipArchive.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AFNetworking" -framework "Bugly" -framework "CoreGraphics" -framework "DZNEmptyDataSet" -framework "FLAnimatedImage" -framework "Foundation" -framework "HWPanModal" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LSTPopView" -framework "LSTTimer" -framework "LYEmptyView" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "-F${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "-F${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"iconv" -l"z" -framework "AFNetworking" -framework "Bugly" -framework "CoreGraphics" -framework "DZNEmptyDataSet" -framework "FLAnimatedImage" -framework "Foundation" -framework "HWPanModal" -framework "ImageIO" -framework "JXCategoryView" -framework "JXPagingView" -framework "LSTPopView" -framework "LSTTimer" -framework "LYEmptyView" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "QuartzCore" -framework "SDWebImage" -framework "SSZipArchive" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "-F${PODS_CONFIGURATION_BUILD_DIR}/Bugly" "-F${PODS_CONFIGURATION_BUILD_DIR}/DZNEmptyDataSet" "-F${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/HWPanModal" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "-F${PODS_CONFIGURATION_BUILD_DIR}/JXPagingView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTPopView" "-F${PODS_CONFIGURATION_BUILD_DIR}/LSTTimer" "-F${PODS_CONFIGURATION_BUILD_DIR}/LYEmptyView" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "-F${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "-F${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "-F${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "-F${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive-Info.plist b/Pods/Target Support Files/SSZipArchive/SSZipArchive-Info.plist new file mode 100644 index 0000000..746c5ff --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.4.3 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive-dummy.m b/Pods/Target Support Files/SSZipArchive/SSZipArchive-dummy.m new file mode 100644 index 0000000..9fabf79 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_SSZipArchive : NSObject +@end +@implementation PodsDummy_SSZipArchive +@end diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive-prefix.pch b/Pods/Target Support Files/SSZipArchive/SSZipArchive-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive-umbrella.h b/Pods/Target Support Files/SSZipArchive/SSZipArchive-umbrella.h new file mode 100644 index 0000000..332a149 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive-umbrella.h @@ -0,0 +1,18 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SSZipArchive.h" +#import "SSZipCommon.h" + +FOUNDATION_EXPORT double SSZipArchiveVersionNumber; +FOUNDATION_EXPORT const unsigned char SSZipArchiveVersionString[]; + diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive.debug.xcconfig b/Pods/Target Support Files/SSZipArchive/SSZipArchive.debug.xcconfig new file mode 100644 index 0000000..c388ad9 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB +OTHER_LDFLAGS = $(inherited) -l"iconv" -l"z" -framework "Security" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SSZipArchive +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive.modulemap b/Pods/Target Support Files/SSZipArchive/SSZipArchive.modulemap new file mode 100644 index 0000000..c30b519 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive.modulemap @@ -0,0 +1,6 @@ +framework module SSZipArchive { + umbrella header "SSZipArchive-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/SSZipArchive/SSZipArchive.release.xcconfig b/Pods/Target Support Files/SSZipArchive/SSZipArchive.release.xcconfig new file mode 100644 index 0000000..c388ad9 --- /dev/null +++ b/Pods/Target Support Files/SSZipArchive/SSZipArchive.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SSZipArchive +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB +OTHER_LDFLAGS = $(inherited) -l"iconv" -l"z" -framework "Security" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SSZipArchive +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Shared/KBConfig.h b/Shared/KBConfig.h index 2c6a97f..ed3f722 100644 --- a/Shared/KBConfig.h +++ b/Shared/KBConfig.h @@ -23,7 +23,7 @@ /// 0 = 使用本地 Assets 图片名(key_icons 的 value 写成图片名,例如 "kb_q_melon") /// 1 = 使用远程 Zip 皮肤包(skinJSON 中提供 zip_url;key_icons 的 value 写成 Zip 内图标文件名,例如 "key_a") #ifndef KB_SKIN_ICON_USE_REMOTE -#define KB_SKIN_ICON_USE_REMOTE 0 +#define KB_SKIN_ICON_USE_REMOTE 1 #endif diff --git a/keyBoard.xcodeproj/project.pbxproj b/keyBoard.xcodeproj/project.pbxproj index ab942ce..ee0b2c8 100644 --- a/keyBoard.xcodeproj/project.pbxproj +++ b/keyBoard.xcodeproj/project.pbxproj @@ -28,6 +28,7 @@ 04286A032ECB0A1600CE730C /* KBSexSelVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 04286A022ECB0A1600CE730C /* KBSexSelVC.m */; }; 04286A062ECC81B200CE730C /* KBSkinService.m in Sources */ = {isa = PBXBuildFile; fileRef = 04286A052ECC81B200CE730C /* KBSkinService.m */; }; 04286A0B2ECD88B400CE730C /* KeyboardAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 04286A0A2ECD88B400CE730C /* KeyboardAssets.xcassets */; }; + 04286A0F2ECDA71B00CE730C /* 001.zip in Resources */ = {isa = PBXBuildFile; fileRef = 04286A0E2ECDA71B00CE730C /* 001.zip */; }; 043FBCD22EAF97630036AFE1 /* KBPermissionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04C6EAE12EAF940F0089C901 /* KBPermissionViewController.m */; }; 0459D1B42EBA284C00F2D189 /* KBSkinCenterVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */; }; 0459D1B72EBA287900F2D189 /* KBSkinManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0459D1B62EBA287900F2D189 /* KBSkinManager.m */; }; @@ -43,31 +44,6 @@ 0477BEA22EBCF0000055D639 /* KBTopImageButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 0477BEA12EBCF0000055D639 /* KBTopImageButton.m */; }; 047C650D2EBC8A840035E841 /* KBPanModalView.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C650C2EBC8A840035E841 /* KBPanModalView.m */; }; 047C65102EBCA8DD0035E841 /* HomeRankContentVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C650F2EBCA8DD0035E841 /* HomeRankContentVC.m */; }; - 047C652D2EBCAAAC0035E841 /* crab_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651F2EBCAAAC0035E841 /* crab_selected.png */; }; - 047C652E2EBCAAAC0035E841 /* crab.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651E2EBCAAAC0035E841 /* crab.png */; }; - 047C652F2EBCAAAC0035E841 /* arrow_down.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651A2EBCAAAC0035E841 /* arrow_down.png */; }; - 047C65302EBCAAAC0035E841 /* football.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65212EBCAAAC0035E841 /* football.png */; }; - 047C65312EBCAAAC0035E841 /* city.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65122EBCAAAC0035E841 /* city.png */; }; - 047C65322EBCAAAC0035E841 /* apple_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65192EBCAAAC0035E841 /* apple_selected.png */; }; - 047C65332EBCAAAC0035E841 /* carrot.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651C2EBCAAAC0035E841 /* carrot.png */; }; - 047C65342EBCAAAC0035E841 /* lobster.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65262EBCAAAC0035E841 /* lobster.png */; }; - 047C65352EBCAAAC0035E841 /* lufei.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 047C65282EBCAAAC0035E841 /* lufei.jpg */; }; - 047C65362EBCAAAC0035E841 /* river.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65152EBCAAAC0035E841 /* river.png */; }; - 047C65372EBCAAAC0035E841 /* watermelon_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C652A2EBCAAAC0035E841 /* watermelon_selected.png */; }; - 047C65382EBCAAAC0035E841 /* JXCategoryView.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65242EBCAAAC0035E841 /* JXCategoryView.png */; }; - 047C65392EBCAAAC0035E841 /* JXCategoryViewStructure.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65252EBCAAAC0035E841 /* JXCategoryViewStructure.png */; }; - 047C653A2EBCAAAC0035E841 /* arrow_up.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651B2EBCAAAC0035E841 /* arrow_up.png */; }; - 047C653B2EBCAAAC0035E841 /* boat.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65112EBCAAAC0035E841 /* boat.png */; }; - 047C653C2EBCAAAC0035E841 /* grape_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65232EBCAAAC0035E841 /* grape_selected.png */; }; - 047C653D2EBCAAAC0035E841 /* lobster_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65272EBCAAAC0035E841 /* lobster_selected.png */; }; - 047C653E2EBCAAAC0035E841 /* light.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65132EBCAAAC0035E841 /* light.png */; }; - 047C653F2EBCAAAC0035E841 /* seaWave.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65162EBCAAAC0035E841 /* seaWave.png */; }; - 047C65402EBCAAAC0035E841 /* watermelon.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65292EBCAAAC0035E841 /* watermelon.png */; }; - 047C65412EBCAAAC0035E841 /* lotus.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65142EBCAAAC0035E841 /* lotus.png */; }; - 047C65422EBCAAAC0035E841 /* grape.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65222EBCAAAC0035E841 /* grape.png */; }; - 047C65432EBCAAAC0035E841 /* filter.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65202EBCAAAC0035E841 /* filter.png */; }; - 047C65442EBCAAAC0035E841 /* apple.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C65182EBCAAAC0035E841 /* apple.png */; }; - 047C65452EBCAAAC0035E841 /* carrot_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 047C651D2EBCAAAC0035E841 /* carrot_selected.png */; }; 047C65502EBCBA9E0035E841 /* KBShopVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C654F2EBCBA9E0035E841 /* KBShopVC.m */; }; 047C65532EBCBAC60035E841 /* KBCommunityVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C65522EBCBAC60035E841 /* KBCommunityVC.m */; }; 047C65582EBCC06D0035E841 /* HomeRankCardCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 047C65572EBCC06D0035E841 /* HomeRankCardCell.m */; }; @@ -239,6 +215,7 @@ 04286A042ECC81B200CE730C /* KBSkinService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinService.h; sourceTree = ""; }; 04286A052ECC81B200CE730C /* KBSkinService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBSkinService.m; sourceTree = ""; }; 04286A0A2ECD88B400CE730C /* KeyboardAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KeyboardAssets.xcassets; sourceTree = ""; }; + 04286A0E2ECDA71B00CE730C /* 001.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = 001.zip; sourceTree = ""; }; 0459D1B22EBA284C00F2D189 /* KBSkinCenterVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinCenterVC.h; sourceTree = ""; }; 0459D1B32EBA284C00F2D189 /* KBSkinCenterVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBSkinCenterVC.m; sourceTree = ""; }; 0459D1B52EBA287900F2D189 /* KBSkinManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSkinManager.h; sourceTree = ""; }; @@ -265,31 +242,6 @@ 047C650C2EBC8A840035E841 /* KBPanModalView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBPanModalView.m; sourceTree = ""; }; 047C650E2EBCA8DD0035E841 /* HomeRankContentVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeRankContentVC.h; sourceTree = ""; }; 047C650F2EBCA8DD0035E841 /* HomeRankContentVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeRankContentVC.m; sourceTree = ""; }; - 047C65112EBCAAAC0035E841 /* boat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boat.png; sourceTree = ""; }; - 047C65122EBCAAAC0035E841 /* city.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = city.png; sourceTree = ""; }; - 047C65132EBCAAAC0035E841 /* light.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = light.png; sourceTree = ""; }; - 047C65142EBCAAAC0035E841 /* lotus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lotus.png; sourceTree = ""; }; - 047C65152EBCAAAC0035E841 /* river.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = river.png; sourceTree = ""; }; - 047C65162EBCAAAC0035E841 /* seaWave.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = seaWave.png; sourceTree = ""; }; - 047C65182EBCAAAC0035E841 /* apple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = apple.png; sourceTree = ""; }; - 047C65192EBCAAAC0035E841 /* apple_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = apple_selected.png; sourceTree = ""; }; - 047C651A2EBCAAAC0035E841 /* arrow_down.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow_down.png; sourceTree = ""; }; - 047C651B2EBCAAAC0035E841 /* arrow_up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = arrow_up.png; sourceTree = ""; }; - 047C651C2EBCAAAC0035E841 /* carrot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = carrot.png; sourceTree = ""; }; - 047C651D2EBCAAAC0035E841 /* carrot_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = carrot_selected.png; sourceTree = ""; }; - 047C651E2EBCAAAC0035E841 /* crab.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = crab.png; sourceTree = ""; }; - 047C651F2EBCAAAC0035E841 /* crab_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = crab_selected.png; sourceTree = ""; }; - 047C65202EBCAAAC0035E841 /* filter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = filter.png; sourceTree = ""; }; - 047C65212EBCAAAC0035E841 /* football.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = football.png; sourceTree = ""; }; - 047C65222EBCAAAC0035E841 /* grape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = grape.png; sourceTree = ""; }; - 047C65232EBCAAAC0035E841 /* grape_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = grape_selected.png; sourceTree = ""; }; - 047C65242EBCAAAC0035E841 /* JXCategoryView.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JXCategoryView.png; sourceTree = ""; }; - 047C65252EBCAAAC0035E841 /* JXCategoryViewStructure.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JXCategoryViewStructure.png; sourceTree = ""; }; - 047C65262EBCAAAC0035E841 /* lobster.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lobster.png; sourceTree = ""; }; - 047C65272EBCAAAC0035E841 /* lobster_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lobster_selected.png; sourceTree = ""; }; - 047C65282EBCAAAC0035E841 /* lufei.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = lufei.jpg; sourceTree = ""; }; - 047C65292EBCAAAC0035E841 /* watermelon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = watermelon.png; sourceTree = ""; }; - 047C652A2EBCAAAC0035E841 /* watermelon_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = watermelon_selected.png; sourceTree = ""; }; 047C654E2EBCBA9E0035E841 /* KBShopVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBShopVC.h; sourceTree = ""; }; 047C654F2EBCBA9E0035E841 /* KBShopVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBShopVC.m; sourceTree = ""; }; 047C65512EBCBAC60035E841 /* KBCommunityVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBCommunityVC.h; sourceTree = ""; }; @@ -629,42 +581,9 @@ path = FunctionTest; sourceTree = ""; }; - 047C65172EBCAAAC0035E841 /* Indicator */ = { - isa = PBXGroup; - children = ( - 047C65112EBCAAAC0035E841 /* boat.png */, - 047C65122EBCAAAC0035E841 /* city.png */, - 047C65132EBCAAAC0035E841 /* light.png */, - 047C65142EBCAAAC0035E841 /* lotus.png */, - 047C65152EBCAAAC0035E841 /* river.png */, - 047C65162EBCAAAC0035E841 /* seaWave.png */, - ); - path = Indicator; - sourceTree = ""; - }; 047C652B2EBCAAAC0035E841 /* Images */ = { isa = PBXGroup; children = ( - 047C65172EBCAAAC0035E841 /* Indicator */, - 047C65182EBCAAAC0035E841 /* apple.png */, - 047C65192EBCAAAC0035E841 /* apple_selected.png */, - 047C651A2EBCAAAC0035E841 /* arrow_down.png */, - 047C651B2EBCAAAC0035E841 /* arrow_up.png */, - 047C651C2EBCAAAC0035E841 /* carrot.png */, - 047C651D2EBCAAAC0035E841 /* carrot_selected.png */, - 047C651E2EBCAAAC0035E841 /* crab.png */, - 047C651F2EBCAAAC0035E841 /* crab_selected.png */, - 047C65202EBCAAAC0035E841 /* filter.png */, - 047C65212EBCAAAC0035E841 /* football.png */, - 047C65222EBCAAAC0035E841 /* grape.png */, - 047C65232EBCAAAC0035E841 /* grape_selected.png */, - 047C65242EBCAAAC0035E841 /* JXCategoryView.png */, - 047C65252EBCAAAC0035E841 /* JXCategoryViewStructure.png */, - 047C65262EBCAAAC0035E841 /* lobster.png */, - 047C65272EBCAAAC0035E841 /* lobster_selected.png */, - 047C65282EBCAAAC0035E841 /* lufei.jpg */, - 047C65292EBCAAAC0035E841 /* watermelon.png */, - 047C652A2EBCAAAC0035E841 /* watermelon_selected.png */, ); path = Images; sourceTree = ""; @@ -673,6 +592,7 @@ isa = PBXGroup; children = ( 047C652B2EBCAAAC0035E841 /* Images */, + 04286A0E2ECDA71B00CE730C /* 001.zip */, ); path = Resource; sourceTree = ""; @@ -1487,32 +1407,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 04286A0F2ECDA71B00CE730C /* 001.zip in Resources */, 04C6EABA2EAF86530089C901 /* Assets.xcassets in Resources */, - 047C652D2EBCAAAC0035E841 /* crab_selected.png in Resources */, - 047C652E2EBCAAAC0035E841 /* crab.png in Resources */, - 047C652F2EBCAAAC0035E841 /* arrow_down.png in Resources */, - 047C65302EBCAAAC0035E841 /* football.png in Resources */, - 047C65312EBCAAAC0035E841 /* city.png in Resources */, - 047C65322EBCAAAC0035E841 /* apple_selected.png in Resources */, - 047C65332EBCAAAC0035E841 /* carrot.png in Resources */, - 047C65342EBCAAAC0035E841 /* lobster.png in Resources */, - 047C65352EBCAAAC0035E841 /* lufei.jpg in Resources */, - 047C65362EBCAAAC0035E841 /* river.png in Resources */, - 047C65372EBCAAAC0035E841 /* watermelon_selected.png in Resources */, - 047C65382EBCAAAC0035E841 /* JXCategoryView.png in Resources */, - 047C65392EBCAAAC0035E841 /* JXCategoryViewStructure.png in Resources */, - 047C653A2EBCAAAC0035E841 /* arrow_up.png in Resources */, - 047C653B2EBCAAAC0035E841 /* boat.png in Resources */, - 047C653C2EBCAAAC0035E841 /* grape_selected.png in Resources */, - 047C653D2EBCAAAC0035E841 /* lobster_selected.png in Resources */, - 047C653E2EBCAAAC0035E841 /* light.png in Resources */, - 047C653F2EBCAAAC0035E841 /* seaWave.png in Resources */, - 047C65402EBCAAAC0035E841 /* watermelon.png in Resources */, - 047C65412EBCAAAC0035E841 /* lotus.png in Resources */, - 047C65422EBCAAAC0035E841 /* grape.png in Resources */, - 047C65432EBCAAAC0035E841 /* filter.png in Resources */, - 047C65442EBCAAAC0035E841 /* apple.png in Resources */, - 047C65452EBCAAAC0035E841 /* carrot_selected.png in Resources */, 04A9FE212EB893F10020DB6D /* Localizable.strings in Resources */, 04C6EABC2EAF86530089C901 /* LaunchScreen.storyboard in Resources */, 04C6EABD2EAF86530089C901 /* Main.storyboard in Resources */, @@ -1552,14 +1448,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-keyBoard/Pods-keyBoard-frameworks.sh\"\n"; diff --git a/keyBoard/Class/Home/VC/FunctionTest/KBSkinCenterVC.m b/keyBoard/Class/Home/VC/FunctionTest/KBSkinCenterVC.m index 7a5342f..9f13755 100644 --- a/keyBoard/Class/Home/VC/FunctionTest/KBSkinCenterVC.m +++ b/keyBoard/Class/Home/VC/FunctionTest/KBSkinCenterVC.m @@ -54,93 +54,109 @@ // - key_icons: // * 当 KB_SKIN_ICON_USE_REMOTE==0 时,value 写本地 Assets 名称(如 "kb_space_melon") // * 当 KB_SKIN_ICON_USE_REMOTE==1 时,value 写 Zip 包内的图标“短文件名”(如 "key_space";解压后路径为 Skins//icons/key_space.png) +// self.skins = @[ +// @{ +// @"id": @"melon", +// @"name": KBLocalized(@"蜜瓜主题"), +// @"background_image": @"https://picsum.photos/id/1018/800/450.jpg", +// @"background": @"#F5FFE8", +// @"key_bg": @"#FFFFFF", +// @"key_text": @"#4A4A4A", +// @"key_highlight": @"#D9F4C4", +// @"accent": @"#A4D68A", +// @"hidden_keys": @[ +// @"letter_q",@"letter_w",@"letter_e",@"letter_r",@"letter_t", +// @"letter_y",@"letter_u",@"letter_i",@"letter_o",@"letter_p", +// @"letter_a",@"letter_s",@"letter_d",@"letter_f",@"letter_g", +// @"letter_h",@"letter_j",@"letter_k",@"letter_l", +// @"letter_z",@"letter_x",@"letter_c",@"letter_v", +// @"letter_b",@"letter_n",@"letter_m", +// @"space" +// ], +// // 默认假设本地测试:这里的值写 Assets 名称。 +// // 如果开启远程 Zip 模式,可改为 Zip 内对应的图标短文件名(如 "key_space")。 +// @"key_icons": @{ +// // 字母键:大小写共用一套本地图(演示用) +// // 若后续需要不同图,只需改为 *_lower / *_upper 对应不同资源名即可。 +// @"letter_q_lower": @"key_q", +// @"letter_q_upper": @"key_q", +// @"letter_w_lower": @"key_w", +// @"letter_w_upper": @"key_w", +// @"letter_e_lower": @"key_e", +// @"letter_e_upper": @"key_e", +// @"letter_r_lower": @"key_r", +// @"letter_r_upper": @"key_r", +// @"letter_t_lower": @"key_t", +// @"letter_t_upper": @"key_t", +// @"letter_y_lower": @"key_y", +// @"letter_y_upper": @"key_y", +// @"letter_u_lower": @"key_u", +// @"letter_u_upper": @"key_u", +// @"letter_i_lower": @"key_i", +// @"letter_i_upper": @"key_i", +// @"letter_o_lower": @"key_o", +// @"letter_o_upper": @"key_o", +// @"letter_p_lower": @"key_p", +// @"letter_p_upper": @"key_p", +// +// @"letter_a_lower": @"key_a", +// @"letter_a_upper": @"key_a", +// @"letter_s_lower": @"key_s", +// @"letter_s_upper": @"key_s", +// @"letter_d_lower": @"key_d", +// @"letter_d_upper": @"key_d", +// @"letter_f_lower": @"key_f", +// @"letter_f_upper": @"key_f", +// @"letter_g_lower": @"key_g", +// @"letter_g_upper": @"key_g", +// @"letter_h_lower": @"key_h", +// @"letter_h_upper": @"key_h", +// @"letter_j_lower": @"key_j", +// @"letter_j_upper": @"key_j", +// @"letter_k_lower": @"key_k", +// @"letter_k_upper": @"key_k", +// @"letter_l_lower": @"key_l", +// @"letter_l_upper": @"key_l", +// +// @"letter_z_lower": @"key_z", +// @"letter_z_upper": @"key_z", +// @"letter_x_lower": @"key_x", +// @"letter_x_upper": @"key_x", +// @"letter_c_lower": @"key_c", +// @"letter_c_upper": @"key_c", +// @"letter_v_lower": @"key_v", +// @"letter_v_upper": @"key_v", +// @"letter_b_lower": @"key_b", +// @"letter_b_upper": @"key_b", +// @"letter_n_lower": @"key_n", +// @"letter_n_upper": @"key_n", +// @"letter_m_lower": @"key_m", +// @"letter_m_upper": @"key_m", +// +// // 功能键(无大小写变体) +// @"space": @"key_space", // 空格键 +// @"backspace": @"key_del", // 删除键 +// @"shift": @"key_up", // Shift(上箭头) +// @"mode_123": @"key_123", // 字母面板左下角 "123" +// @"ai": @"key_ai", // 自定义 AI 键 +// @"return": @"key_send" // 发送/换行键 +// } +// } +// ]; self.skins = @[ @{ - @"id": @"melon", - @"name": KBLocalized(@"蜜瓜主题"), - @"background_image": @"https://picsum.photos/id/1018/800/450.jpg", + @"id": @"local001", + @"name": @"本地001皮肤", + // 关键:zip_url 写成 bundle:// 前缀 + 文件名 + @"zip_url": @"bundle://001.zip", + + // 颜色你可以先随便写一套,或者继承默认 @"background": @"#F5FFE8", @"key_bg": @"#FFFFFF", @"key_text": @"#4A4A4A", @"key_highlight": @"#D9F4C4", - @"accent": @"#A4D68A", - @"hidden_keys": @[ - @"letter_q",@"letter_w",@"letter_e",@"letter_r",@"letter_t", - @"letter_y",@"letter_u",@"letter_i",@"letter_o",@"letter_p", - @"letter_a",@"letter_s",@"letter_d",@"letter_f",@"letter_g", - @"letter_h",@"letter_j",@"letter_k",@"letter_l", - @"letter_z",@"letter_x",@"letter_c",@"letter_v", - @"letter_b",@"letter_n",@"letter_m", - @"space" - ], - // 默认假设本地测试:这里的值写 Assets 名称。 - // 如果开启远程 Zip 模式,可改为 Zip 内对应的图标短文件名(如 "key_space")。 - @"key_icons": @{ - // 字母键:大小写共用一套本地图(演示用) - // 若后续需要不同图,只需改为 *_lower / *_upper 对应不同资源名即可。 - @"letter_q_lower": @"key_q", - @"letter_q_upper": @"key_q", - @"letter_w_lower": @"key_w", - @"letter_w_upper": @"key_w", - @"letter_e_lower": @"key_e", - @"letter_e_upper": @"key_e", - @"letter_r_lower": @"key_r", - @"letter_r_upper": @"key_r", - @"letter_t_lower": @"key_t", - @"letter_t_upper": @"key_t", - @"letter_y_lower": @"key_y", - @"letter_y_upper": @"key_y", - @"letter_u_lower": @"key_u", - @"letter_u_upper": @"key_u", - @"letter_i_lower": @"key_i", - @"letter_i_upper": @"key_i", - @"letter_o_lower": @"key_o", - @"letter_o_upper": @"key_o", - @"letter_p_lower": @"key_p", - @"letter_p_upper": @"key_p", - - @"letter_a_lower": @"key_a", - @"letter_a_upper": @"key_a", - @"letter_s_lower": @"key_s", - @"letter_s_upper": @"key_s", - @"letter_d_lower": @"key_d", - @"letter_d_upper": @"key_d", - @"letter_f_lower": @"key_f", - @"letter_f_upper": @"key_f", - @"letter_g_lower": @"key_g", - @"letter_g_upper": @"key_g", - @"letter_h_lower": @"key_h", - @"letter_h_upper": @"key_h", - @"letter_j_lower": @"key_j", - @"letter_j_upper": @"key_j", - @"letter_k_lower": @"key_k", - @"letter_k_upper": @"key_k", - @"letter_l_lower": @"key_l", - @"letter_l_upper": @"key_l", - - @"letter_z_lower": @"key_z", - @"letter_z_upper": @"key_z", - @"letter_x_lower": @"key_x", - @"letter_x_upper": @"key_x", - @"letter_c_lower": @"key_c", - @"letter_c_upper": @"key_c", - @"letter_v_lower": @"key_v", - @"letter_v_upper": @"key_v", - @"letter_b_lower": @"key_b", - @"letter_b_upper": @"key_b", - @"letter_n_lower": @"key_n", - @"letter_n_upper": @"key_n", - @"letter_m_lower": @"key_m", - @"letter_m_upper": @"key_m", - - // 功能键(无大小写变体) - @"space": @"key_space", // 空格键 - @"backspace": @"key_del", // 删除键 - @"shift": @"key_up", // Shift(上箭头) - @"mode_123": @"key_123", // 字母面板左下角 "123" - @"ai": @"key_ai", // 自定义 AI 键 - @"return": @"key_send" // 发送/换行键 - } + @"accent": @"#A4D68A" + // 不写 key_icons,代码会自动用本地那份映射表 } ]; diff --git a/keyBoard/Class/Manager/KBSkinService.m b/keyBoard/Class/Manager/KBSkinService.m index 55eea2e..d43be87 100644 --- a/keyBoard/Class/Manager/KBSkinService.m +++ b/keyBoard/Class/Manager/KBSkinService.m @@ -339,16 +339,18 @@ #if __has_include() // 若本地尚未缓存该皮肤资源且提供了 zip_url,则下载并解压 Zip 包。 + // 支持两种来源: + // 1) 线上 URL(http/https):通过 KBNetworkManager 下载; + // 2) 本地测试:zip_url 以 "bundle://" 前缀开头,例如 "bundle://001.zip"。 if (!hasCachedAssets && zipURL.length > 0) { dispatch_group_enter(group); - [[KBNetworkManager shared] GET:zipURL parameters:nil headers:nil completion:^(id jsonOrData, NSURLResponse *response, NSError *error) { - NSData *data = ([jsonOrData isKindOfClass:NSData.class] ? (NSData *)jsonOrData : nil); - if (error || data.length == 0) { + + void (^handleZipData)(NSData *) = ^(NSData *data) { + if (data.length == 0) { zipOK = NO; dispatch_group_leave(group); return; } - // 将 Zip 写入临时路径再解压 [[NSFileManager defaultManager] createDirectoryAtPath:skinRoot withIntermediateDirectories:YES @@ -370,9 +372,81 @@ [fm removeItemAtPath:zipPath error:nil]; if (!ok || unzipError) { zipOK = NO; + dispatch_group_leave(group); + return; + } + + // 兼容“额外包一层目录”的压缩结构: + // 若 Skins//icons 为空,但存在 Skins//<子目录>/icons, + // 则将实际 icons 与 background.png 上移到预期位置。 + BOOL isDir2 = NO; + NSArray *iconsContent = [fm contentsOfDirectoryAtPath:iconsDir error:NULL]; + BOOL iconsValid = ([fm fileExistsAtPath:iconsDir isDirectory:&isDir2] && isDir2 && iconsContent.count > 0); + if (!iconsValid) { + NSArray *subItems = [fm contentsOfDirectoryAtPath:skinRoot error:NULL]; + for (NSString *name in subItems) { + if ([name isEqualToString:@"icons"] || [name isEqualToString:@"__MACOSX"]) continue; + NSString *nestedRoot = [skinRoot stringByAppendingPathComponent:name]; + BOOL isDirNested = NO; + if (![fm fileExistsAtPath:nestedRoot isDirectory:&isDirNested] || !isDirNested) continue; + + NSString *nestedIcons = [nestedRoot stringByAppendingPathComponent:@"icons"]; + BOOL isDirNestedIcons = NO; + if ([fm fileExistsAtPath:nestedIcons isDirectory:&isDirNestedIcons] && isDirNestedIcons) { + NSArray *nestedFiles = [fm contentsOfDirectoryAtPath:nestedIcons error:NULL]; + if (nestedFiles.count > 0) { + // 确保目标 icons 目录存在 + [fm createDirectoryAtPath:iconsDir + withIntermediateDirectories:YES + attributes:nil + error:NULL]; + // 将 icons 下所有文件上移一层 + for (NSString *fn in nestedFiles) { + NSString *from = [nestedIcons stringByAppendingPathComponent:fn]; + NSString *to = [iconsDir stringByAppendingPathComponent:fn]; + [fm removeItemAtPath:to error:nil]; + [fm moveItemAtPath:from toPath:to error:nil]; + } + } + } + + // 处理 background.png:若在子目录下存在,则上移到 skinRoot + NSString *nestedBg = [nestedRoot stringByAppendingPathComponent:@"background.png"]; + if ([fm fileExistsAtPath:nestedBg]) { + [fm removeItemAtPath:bgPath error:nil]; + [fm moveItemAtPath:nestedBg toPath:bgPath error:nil]; + } + } } dispatch_group_leave(group); - }]; + }; + + // 本地 bundle 测试:zip_url 形如 "bundle://001.zip" + if ([zipURL hasPrefix:@"bundle://"]) { + NSString *name = [zipURL substringFromIndex:@"bundle://".length]; + NSString *fileName = name ?: @""; + NSString *ext = fileName.pathExtension; + NSString *base = fileName; + if (ext.length == 0) { + ext = @"zip"; + } else { + base = [fileName stringByDeletingPathExtension]; + } + NSString *path = [[NSBundle mainBundle] pathForResource:base ofType:ext]; + NSData *data = (path.length > 0) ? [NSData dataWithContentsOfFile:path] : nil; + handleZipData(data); + } else { + // 正常远程下载 + [[KBNetworkManager shared] GET:zipURL parameters:nil headers:nil completion:^(id jsonOrData, NSURLResponse *response, NSError *error) { + NSData *data = ([jsonOrData isKindOfClass:NSData.class] ? (NSData *)jsonOrData : nil); + if (error || data.length == 0) { + zipOK = NO; + dispatch_group_leave(group); + return; + } + handleZipData(data); + }]; + } } #else zipOK = NO; diff --git a/keyBoard/Class/Resource/001.zip b/keyBoard/Class/Resource/001.zip new file mode 100644 index 0000000000000000000000000000000000000000..6c856d597d18cff3f0956e82ae154a53948be453 GIT binary patch literal 831641 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

OOy{-(s2F&|Smsdx%L*yIs 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

f8EiXHyyZ>Vq2!aMsTl%N7klZ#3UyM< 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�`s;_WGKBA4e*1F4bq6evQ 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≺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

am0h7W=X#07n2pHC2VmNm#(3 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

Fs_8|WnTG#{90;%-!PH|H31{ST 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 z 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 DYZHlT literal 0 HcmV?d00001 diff --git a/keyBoard/Class/Resource/Images/Indicator/boat.png b/keyBoard/Class/Resource/Images/Indicator/boat.png deleted file mode 100644 index f0805999148d111a457e3c8a869c45b30d6ee692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21478 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∋#OpxCY=nM_`#C+>VEZp5D^7OmMR1f9scn&r<6mrGQPkx}td(=>6dq>7Q@-o_f@GDjCFIzH{BgtM>bIz_q!I(Vdl~aE|kF68>6nFGQ zf9a^tr^5A!U2N$vdrU;12M@n+^=Ia0Wilfwoj&)fYlU+DhPL<)XE-OB8j~fxZqV2r zUxefFzO5W29Zttq{uC>?X%^b9dZ)hK@)}Flkp4Rf{tdxx8`lXP4 zTYdZ3cfPP8Z^^Dxfvi=l5j#^H4HwEeceEioy7$vkD5AgBx;vYNxJx*R!!Fi{Hi2u&`({~j` z;ISN9iTygm+(k=vKH+#CjV^P!jOQIYecz${H#<>m(X;F+f6`JA4+3HUi_f~UFo~C5vpJZ`=xv3@*U>)Pj-7p6}|Ac1p?pS zDGS3d4~(5|I<%W+L2=PE#vxnQ-qIV?tVVVl-w@A@b#E$#y```FfZgG?V6MEe6v=WO z>(w#h{l(Y;gU#4U&4Ic*EO)%F@|~}V;Tvubfqmbim|@EY&)vnVKStJjpAwS=`=Wk5 z>l)hLE18WyLLIg#3{!N#sX$e5+F?uoJ@`S7*$?dNeGDh54T1CxpIKl(RzIqDF^_vP zq83r+`Zny&y()I^Q&2nA2D5ol%;_`buVQy7PNgtDP%9-J*e+u%8)E z(B+52iQ`fKRd=25aCOn1s8L35Ve}TAsG}RBi{7F{7oC_<5+O>AAfvZLbfSyig$xEE z>Ua@^C}DJwXu&+-pL;(zdD@xV`Z8iE$V8)jJ_~M#IoCe+bI(mk-48+ zzP+|mJhBRec@2`Q<-|o_*Q2`Sb1zxwr+5lOb)6nbvjG5ij6@E5i0DBQIvtNMm6p{F zl7qzKrlHY^rOlIH_@^6JU_j;eHrtku;qz>UdFad$KR)#`1ppOrfgwq(78jH-MwbKi zgO6{+cGol0#czw&@9;s`>~s^zNG!JFCsVfr0{ALJjbEWcwsqk0?P(dR6&e_BI3f5n z#T-rm<|yLXmah^}=4E2r-tN*QQRa19Qp0F%lR~z+Jik!FeUPZa81^(vzd{~XNHmK0 zjo&z*Ut!7jIExiK-4(N<5^6{S{Jgag{$VSC0Bj-&7&c_J57+q+;BpQEcWGeWg8th| z+ogolLosO}ZL2gFA^09CIC4iqg*OOLP=NzG`u|JjPMVaX&r`-I;WZi<6^K$-8bAUV zwZip0<@ffw`wRcvswhG)WX4hgFdHckt2DsB!V&H zD%Ub6(Ag&(0Q}XdWS44L^Nm>(5HOZTahQJa0@xn$9G%Y}?|lRIXe6j%{Ux3s48Py1 za8br^hSGjXTF?~;hSegB~P~J$vC5lA)q)A98WWwaZ*itYO8fHzD^ zBQ<#p#IV)kRiMNVfEYEHb3o=g>Q&}HCdE|U=V4&V!SlJOx#IpYD_FR_nJ$E26!0XV z7*EQ)okIcMZU@mM%nB>%7P%M!U3nK~2Mgtbo0Ef?r{Wk_N+tuPfzI#d;VdG8RJ{V= zUF$l#j3Wm4SsQ~+^s#$o(tW_^@5WSGKvI1J}>q?UUVLd(gA!OS^(OvyFJeYJnn+i z0i$V?k}UsMVLh=2!iWd_m^b{D)bOx1KhC8FYu51~|MwT?CJh2i7q= z#t==-o#9frAeg%t?rI9j0MVF0r0#?Dknw`x+ze0|RP&!Y#&nv7TXRk{I%is)B#}B3 zWTTjU6aZN59}J7Hc^7tM3fXqNo5rGPDGHpx1!VN8$M0y)iR8j2|Cci+qV76goJ$~D z76W4B%+1}}X!KjjIqb;>~!R~BX}PS@B2E@;aZ@O9Y+Fwu5$XXqPg)SY13RGKSdp-A`fVVO6k?r03IV$FfSRZkp~Vl*pl|i z?s^xF4SEWWr7t-%e{TJl{GOh+iBeQTQ`9e&p@N${w_oJV!HAxi?jDe#RZL%A0fdz; zU0vqd7_zMtmDtoIVZp0h*yz3Z9}eBSFUvPqRl3sf03{>$sne12M zCVpO;d|#2rRdhGXvn318VWVqv&T9D}e-bA^s|;Lh?VM&O9E#kFwslm<&j5)TIi`FEF<}hvsk@xn**Er^{O8>pl4X6fZCyggzAXJHxsy`%WM0H{VP8*dc^J zzTjnV$%E$k?yP!~#wS|IcJ5$o0wE2qY0NepAoY_UA3jn{*e__>th>6l1#KEmn;0p7 zF?V2jxts&r=-3W*TH1GIe~7MQ z6GwjeqgMH|q1;6I5g2?h#>&B977Y@29jY`G?>+kkc56;mW}O-n^0+?r0YjN*wCQ@$h8(jUL7kv;tiwoMy7bguP-il;EPK5duA zJWU@eR~|p34dljsG{u~#vk}+EDy)KNs=K!Z6KYV>O<>uR7Y)w+XzYcu}?rt zu&z&Q(Ls~(@=*=+ri-+cOB(>~K9dR)K+1NNv z=XgM1JaqlXQV{_MC6QExchlM07H<2#<3RTu5x>p`)`@UyLsmq@mDwA$9m2(+vXY=V zg3}Rqb<>Os<7?aCOq#4tOnjiN$0DzQ2&iWsb_73Xa@kii2mk$EGdT-`ZEgSgdk-D4 z!FJ*Q&&^GOw7y7uhG|t{>R_a7e{y-qH+kyDbX%|Mr`+C@H783A+&G8T*H>M0SfRHz z@#0G60gFa!2eyh&+l8umc7%kVUGELjYPN?dYAL;?tswXq_`p95Azex?fBEh#OM$ed zWuMTmm}r2VjFuG&J zn$(S}Vg#m{JEKjnEx%Bl0yF;!yC@N@5!@9~nsIOxqrse?8$W9Cw%)-tiK@Js0l_vf zyVhRT5y@z4Si^QfN|SWw4y_JsjVbcWP^_rZk46DkXvvvD#?Q_r;eXBM1BZmxi^dgz zn432GroBtsi`lnaYAevokH9j671m)SmnGO)QocVt$QKKBuV$MAzC{ynzAf`U)awcv z5aKw>z@}~;fKIjKo;IwE-(E7=D8Ez$dgDKH zvP%)l%6vuR;*z^3`C7fH+*tgYu{Gp7AVanV>YJ~~gl|dE#@`#{38Fb}O`YL{q6 z6Zu=!qxyn7<%huA^21ijf<=#|qt@YV1J1D%ZABV+zgdd*KN2p4L)an zEvDqwNJlR5Ycru*MhucG#^4p?!*{04zM8r@e1Ua`rZqRy5 z)`x}=8S1$8N|zIgNuLgN4!Zg@f9JtTMej8ympN6Tb1iNaW%*o1I7t z{rbLJ2lU-!wdcFePkWp=ml_EF+*+New~>?W`<=rIP?M!?b@5`^Zccp?(dj{kw87m- z@igA*n9mlmuRQR?BOMsh4@~~@kvO%or~3(-(ns1=m+Xd>b=357o_cuA+k;7dqR z^xt5LR)vi&M%wJg$&tDXBB>aEShOpGUR=nJG4m$dx~T2FMsu=rw<0NJMhGV^I0TXB z{!sH!jxBvfw;U2~BlEQ*n0csf*F7OiKe?iTBQsB73_Ex(F(Z4kxL;6%;=Sl+J~54s zWUP6ed(I_C_%(!Nxn9A-%E0e2Lb{1O=~<6bTRAxlJ9X_^wN=ESL;e>1sbJs?7Iqd# zLj1*sb}YjKLGPdRbQ<&dnc{DQfn>jho6RmL%VCXw@$Q+qwmu8_$_0zF%~MkhL|`jI zg--s@VC3VB+kzvOXp2gZ(I&`~spIgwRGZpc2IofXSLB*2U!!{Kl;VixDJT#ryyam< z@Le}M?f4J1t@yEwk|afLcPyW6>6Ord7=OiB-1i5Dr4WXhA*v1Vi}TQUpv=7QupuK= zl*1s|u{;|niyii+_@PN&(|3%;x141wbmO*!7oF8mU45ph^Z;Jaif&vW6MJ`-6*IHn z+#SW3ur9K9btf#*vyu{Vdpw83$*mBA5K|In(I+5dsl$=a+N{4T{NIbc-e>~8rp+H> zx&*jhFgln}m?BdJyVc!!(i=_`z`-V%j~^4C+jU_$t5Lm+TAyC1a@?WHr4_cz$P&f= z5>YVqb<4z>bY}?*k|*C4v!P)@zxLsPeH;UO_*E(4BB&5~jLx>GJOmv=t%b5pVGMQb z;<(K;BvM8=Mj&=qo)F$YN)f3FBmvztx-sS!&XsP>?@&vn9uEdy&AoJb#+$~X_ zIJZV@E2Yx4{CBW?N$1T+`l7@n|LVo;@$+L)vE^&?$Ik>|Ls?OJow44vZu;}Zwy4U$1kuZ0W{}Cfi!X=T)`DQk|U*73n!*=Pn@w% z-ApYj7jgXOLdj;@*=rvu1B1M{{HnVTWdbiHEq|Jkn5eTqe$w_+kZeS)?BKMy3Abf} z`7zS_{7aCFz|V)f2T6m!3MTIgXj`zjTTfwd;c!|VT9R3Ogc>{k6IAgo>bxBSFuTH>cj2^6i)MGEPsfc6#1LcShKyIb9J#QzwE4F2z=xzxMRQzLmH|z=MU}74 z-&?;X@O)Z9aB`I53;a8jk~CIsxYDdhZ6lT#p0 z<#g)(0v>x+YkTV*@#>HkJUNw`cr-g;)`iaxO@8Z&kT+XVFqbn}I^J0N%$7T-{x>X) zr4aRHv#t20(!uMrhRLj$?HoSKnvzU-scRO0z71sdw89Yhc2WyVA#J4?bQ9|pAG77; zT~*;$ThdE(j}!zK9pn#ED8@ht>qxuAev3}&0W<8BpO1vl7!XY4AbFUhyl_8Co(v~x z-UeO@d_D*FL*&FkcgEBIn=nT%k{RBIM+>a7Dn#!ff6BjOWBDa8J&oJ!geseXTh|B$!T;!^R8jpg*xc+%vdrqjE{Gm8wNsS(MW`K|usfkn??c4Vm zt3ZwZ()uwcAUYToioKXsrxE5=1|>Ldj40r8if2vC*rAbSvNI$%D{t~GTo7^y(%7;_ zjZ~q5>aQO_RSgMN3NN5bvGTxDd)%O3F!*;g%KG0e&&lhO~z7MT2=TldKn6wvWDrtb{gMGL@{vHOc zgIi2A;!%H-0*~tlp9?)Z^ij+&1ceL#nhJ(F46x1yUiy->vQG@=!g9(%bZy2HD4>7DtD$E4;%}!S zJa}fE1a(u3MfTy8LyruhU}V4V4b%uziB%Wf1n$7hhfI!rl!vNLJDUU<7z-Qc?>3hv zd*ZCOHE5N1j9;-`P!*!SaS6l8*vTG^W>1|-tWzknI_0X&X}Uqv?)oZTN~(i*xhz*3 zqJ(0rBZzSAb}KhxD(Z{t6_XbYGt|Am{rTe{(k0SzOScU^dT*BS5q+$1eudfN&wu$7 zuBQ9hD^pl6JxN6;uKP?#nm$P!{XoZ^#_#47q7=LYN?T;p3B%~vD(a#ker1Y|$=Q_! zI1i8G+U%hPcxhFPm?yJEzx&Ly*tIGiI~GeXd!rfG+8*xYhyZ`;A7xY|v5-0Kac<8D z<2da5t5QB?=bE4m(|DB%l$70D{aCLqpQg_s6Wz1LYEW&<#m7P1Vmxpni8VI#m~Ny9 zm29rCcT9UM?mO2V|FUYvJRv7DsL(2OCXT@4&^N^H9EO%1#O(yRj| zy0Ntnm|*$}kekjL*fy8%H63rA)=jMnAkwqPc>aBCscK-3gO|#nu}MuS{d~yhi3+zA z$($#WZ_sv%e<}oMwW}aWga(TtfG9;Fij}XkVqTdZJtnE$3GteE5W3m10m^pEKNWCq zJS=L9Y^o&SvsAmOd(;Cq~{yEKRUVU_gZ^ z@dLHRzo8kecPCjR&V}3G#CN)bX};gPf+KV))*l9G-MAd05Udu(coh0tI_6ngq_3k# zO-p%rgvA={@aPhxkFQj}rVT6}`>~D9zeKLxR(;!BIr$#6HDAsa0%U=0jzLlhSS%k; zep`v0s)cv|hK$RMs>DqEafyZ>C9-F&Yl)?sIb_Dbo1HI)aHAIA&K}?HL@e4!4^s$H zz2CamIl&?L&Wg2jo#4KG^W32!`oV=EM%Y_OWy0wVpu=ZW#H{k{n|&?j`S0oeOXQ=L z{gn?pXPfQVotAntvp>BiDxS6P$`>pc9#?pW8OrpCyjFrj9_jLn#!;n265pl>qG7r$4OE{=-T?cw}y2(c57ua`^#+= zKKnf!@YWA?Mw!gQ6OUP#W0erq-Yq8+xz08G<>wrla zmjUZP+3Um;Y*21+_T$fA4@RwizmaC!Q%$%3w%=Z*bvuUi^CBj@Z8g_o)+|MPs0(p# zpo6g4a)~o`SHG70zWuWLo?p=Z?Uv!!(Ds6(4Gc2WZ22QPI$Q~6bL}QMBK=)H5h2Ff z(avcL%jW^#K7J(m0?&0_@*U@+PQKFhMQ?=}5;a+7h0YX|C2fNKQ?dG&n5O<=Nug;P z#HY{{s+R#Qq#Pje@r{I zT7pJdR9`+1Hs7n#(uO?h*Q$|-z)R$i?X8giY&sM8vzDQrqwgGR{6nH;tIn%vN5V3B zAm%s2>f&?xWVTY5dx88^#Tf6z4*q!@Y~Ov-T~$IEQ2goXoVLI-mMl++$$oR7Sy zQJyI%mO=Ds%$0DcF(sc1CmS6Xm7LfLxOOFxV0k zw|0tpax?(kOkhhxJ@$D@(`98gP5{VLKd~~J?~Hu)n)nSj(_>djBev3Yl|Vt25%Po3 z{=)w91bCA8f?yyMQ55<3@Sq%voJDEOR7~_scWYw`prOno5IXc&FDZJUm0XL|&Zlg&aHx#)@YaE=@ilD>-L38;?}?~y<=v0nwe&kp zagw5qOB$nHZa&g1y%lL7kL0r7_Zok<%*wmc3&Kc1JJwoeuFBB03GDB8djR!nk6vNdNw@*3b7jxnyS{x>N&FgI{X3(X*7ZT zZdXa1e^Q%9{%f#6ql9%jHAXg$K+e@w9ye_8wIwC-cCY(;3My|F#L@QcecL1AG!H8i zuQd@dFo=V%Ks#e&PG)v8anL3DR~+26`pp%A(FCuVK8h$?L&!nE#!OfH&pk9oM3Uvr zZINFiEeAT=LC`_`oXiTyL$iA#`6)s=FFencJ$~wFnY3W+o?K~+e&$4-<$JU8MgxSx z!&?WY*qsmgT@o$*6b)6&D?kfYOnpOsqb@lpNLtNxFnV3W7ccqBzJB*f1AU-cMfu44 z>0q+VO;prmOJllPrcTIQp^$(pyamC0xJdEuO@{L{JxKfG{bdp*zI`_+giZD3J3xCW z1=Wasb4)qgi2Zwtn{Lhnrgn>`rm_z diff --git a/keyBoard/Class/Resource/Images/Indicator/lotus.png b/keyBoard/Class/Resource/Images/Indicator/lotus.png deleted file mode 100644 index 0e33fdec0d3993e97c85d7de85923b25ac3b5659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178089 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 diff --git a/keyBoard/Class/Resource/Images/Indicator/river.png b/keyBoard/Class/Resource/Images/Indicator/river.png deleted file mode 100644 index 3e0ca5e469fc15250cec17c325f448224cae7f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19245 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ΞU=W%Mcvl-psvs@Eti=C1^+WO6py5IBkT)G?az{o}>KE{HszjAq1&? z1#*-Oj=Lhz;S$Plmo^<$5}MkHlV~$m2HZlx);_9%zLPO;_ToH0Tx#pSdu^>#rVCwZ z>@=o;++R7VD+7q=_F82CaRz| zx>gi4z%P$K9ai5k8YT|v9VUZ$gB;L-kzukZlN8&HfsoC=-a$vk;PI~nm@=Yn-n9fu z?vk34R#V|zfGK^brm0z!YH-fNqm_l7>F3zH!;TX4qZrkEtQ!Ht5HU{{u5EI@K@v;n z8eqV=x3+*rLQP!z{2vZJK0#_ALgJlfg{IARp#Q`AjD!@`D!SuS@_&o&GXqdGo@5>N zmi5+0n!AqS4CF-nF@*ug5Bu@l1Bp#+dM^{-ik~{o-jdjq8Ysvo+sBZjCDtVr2kwaB zin$|F%9i+oIkke`J9KeKw4Un3++lx%Q$^7!A%xz4oaztp$^I&&y62KQBNg5p5Snv| z?Ve*~ZV{@h%ee#8sZv#;4EV12>UFdi!L#})#$U3jW4>d|$QPz$WuF(~aYtzYl^25E;qsJ8{ z!BxR?9{plsNQeRez$aJ$bV{x9nw^$i(-%%_aI zYmDLzek+{ytx^p@GF{I02|Y53*1vm7CQL;xfvr7J0a8yYf@4?%y^uc&G6xqJ^P3723&+gk-Wx?E}HbzvIGF+5LAagW=+dV*T>;SkBV ztpMrqLv+r8==|fsWEB{4i z7D2p~&bR7NSIfOoh~x+wdTXh^5}?HeMQ|xH99$t9^lsiaS1*(Fq2H7`FrO;Ox^)|$ zNy%Vz;elWFg$LH}kx%tBo~))_idGYFzj0WNhLPvlcr|>A(1ud6NK4rgPS?JtXSC1^ zn5f~F9^@7Dbo05PU}C}u8D8T?{7U+VHT%hA0929Z#oZUhbwsKFFlml^@K7xn-epYe z5jONsx-L@(#G3Qd^2;Qt=n&PA6D{m7{mZdXi6%1UP%V z&%v2W7@r@J9sJzy>w$RW=owM^ZI}KEZjw)157S(PX+~Vswl_lTkDGf*E@1uiO-NT) zvXwe+O&#QIDQ;46VTD!+^b6l(BxmL=q79|*w%a`5;MDk1E`N?^&VfW6`7A4}bcvah z(UeK8DI*FlwojqPa4Ei+I_?nN^#-XN=05t`H~nV128&J3Z-n7A6;v|U#%xL@0~;ze z&D2hlo8r!n-Er4TAnO4)q;+1WQ56}I6EE_{L6m95!KIoe9yMISH~ahI12kTjN!>*n zH?x%{Rs)U_(zf_BchXO~*9Drai0C=-G!4VdGc8uNe_?w5+lm3?j0bXBFAy-`J+-qR zDU6pFNc9ZCfb$AJEekzyE2UCLHnbp1YE69gVvjgifWeCgFPQ(Oz}~flVNQOy1fDwQ zGP(4xB(y=5hmIUj3`))8fBX^OI%vIy`Y=Pl19i#l_2|cZrXslTz<^t1jB@M+0Yy!B zvimlr7!}j4lgYf6WoHTDh#|rI?RTl?K%w3EW70~J(TtUh*xK{1-#VH@3IGSF5MYW9 z+4%P44Gd#Wy>lUE27}|W{a-JvemWmku^h7k)pm8;-}LJwfsQ`qz#MfOH76m+z2{L;K znQ))7-uvzz;dz%Agsd?BnenCOFzzv&uGex5%@tAoYs32QIeyQkFw7IL`Ma8eJ`xh- zk}49#_QIt5oHQJ1u0i^fP$OGz-&b*&-A0%s_b+0WoXCDkTFIvgJ?Qn-@THP=(fQL; zavoq?v$H7fV1{v9zx3^f1h9d;6mmG0$uo?;Y& znm6SrEYj64UC@P%NPVls@wx?d$74^Le=0X?u$9uN4OaSD&}2W}0vS(s^AZdaqxFoS z4uGLo&?;FO&?YDL#IC2g|E9Afgst$n+E03HItJ+`$D06r+6oP7gSxqUfae428QfJ}e58Yk9W4675=~fnNxIJ)04% z&V&ez+QJqUv!xVJo3cPT>nMNJG8K+_1z)I>8aKY>*X`D<3dp|SZxBvjKz*q!ItS0D z4!M)2@f)~?G&BCjP3awvdo9pP1MiOguL+>c`gkQQ1EWwrcr51)_rIL@zO^^G zHH3G_9x~tbAb%l4gGiJ>&}=Y#WOO>gulsm@eKbU(LIuw!Hf{wVHdnpd)+w%@%z2XU|ifwrRubp;5zEazE~jD$tf3vKcdyXNXD^7RFvf z^wS|{%TBjYven{<_yYa0w{1@E2*U|A`MQtQ0Efg{g+b%f6Cwq%mrEtLC@Yg_7-E8j zW~baZAIuE$PFAR}i44|POaCxH82z2~g4xSa_5PD9Bw1ZEA_T{<4`rA)U1=Ct5iWFD zH3@i}ye+1dbxj<(L{~A=hSZBKARbA{J~zFzRDnCw*qVH-$fFg&uOZW^&#llV=|

    e?U+7^kn16ExL&Qz&c)UXMJvDIm}hYD8I)wEF{!@8xGfqu2)8#h?+=@(a-$u|w&^ z)JNV_drFzR#%~*yFu|!s*zNh*CLS2-nL$OYJm*n_CWea%>PT3{-ssxNbqIg^FRp}J zaQflDe-k0v;ORCw1)mjpT#fcCDLv`S@UM=Zye)D6q!+$cIU2iHQnmM;sj#KX0`0?> z0};e)#+c7~+fxnIkTAKh#aPW=|CtBd?uCejaY&$KuN5vX<@ud#!_*qStK{9Hh>j@| zMcau(Ejn3EQHKyuhaFaAQ3Hn?2a2djh10{J=sCkOf#3oCxBJeoZ6H@I6@hleZ2Va0 z%FD0Ui}2Lpm41#d@UCc7m6m1kU3ADT6i>JpH-{jC zjmz=`Hw5}2t0C*0##)3B6-g4wR4FFu$%GF4Gxw-2;PxWikk8GKsbU45%W4ZBj!(Jn z@|VCM%d_~on`_@wk<|xk0Dl8SXd;MCtb?N)A7Up3vNPG(G~n8E^jP?(e?AEtFC{0f{6lH@-GbT|FeEgIo06Qxxniygw4|kLvxMJ>w=};Pu z_+qs+2yO_QxMr|Virr2Nj3an6Ed(JJGS!V#PXbCVH^4AoqJ|2}jNq>U!seJCJ$N{@ z{_W?$M*AmeDg(8wuMdC54%NLL8WXyeT#M6cpwr*vi`PnlxfM~Lg@`AnAjb1j zLllqB$CqVSbPxGM;p8V)7-AFTB2%~Dky(ggwv|Fh0*?kBXP1A6@-Oxg@XyTHOyP*DJ=L7Ln2j1@)6QCY+*gpJM7$y2 z47{e>Q)AJniAgM1=>JV3v^beoT=dt+lu>9f3z5{41~6uM5w{iNJT+1K7Ao3TSkPaU z+?52`FGq!7;J7rT$Gu$LW-BL6IwpDPHf&D5XA&4=xY_yv_l!Zloc?5@^?v;G)ZbCp z#FMl!8?>Onj8sdK8OZUTFgiNo64skK;C|r@Jvu-hy zZPG>GZI;~X(tz3Dwn5k`V8&#^AvVWD?TdA&i$ z4j36?(g1<1BgxWyGA2|EPVOehxaOu(;^Mh(~LIiV;Kd2&2lq zYHE8KV(b{PmQ$3Q38q)Ip zgsQhu{Pf$3f=fO0pSZDlYRV%BTy8?0(>xE&tcBTN1VcX#=h=nZDx-H5&WBYCmT_je zzV;g@Ty3}h|X4H!Oy8f zuq)Qd_YF7@=X+KgxLr!#qABaNUc?F+rq*#^!PUK060-H%*w4Ys7MoDlRB&$~h9Z=y z$z_6DReGI+8_yp!KC+u2K<;$BD)}OW`*iq{U{z4WGDmO=Bpn1w%)p}6vk|N}{b9s= zUdB(aJq0d1@pn%nY2vAJC{G<-e(n?<7qGYO&5K^35ltF-$T#Nvu>Y(W5_avGzc?_u zfp__Oy%8vDhW#wJ>z!LKGGZpJ{a^yXuNM zY3ox54=IYp6%RW(`GPMvmzZBwqj;a@78uCSfa9J{vsAjCde@OOn*MF9>Fw@<{JEb% zdORa2{a=xDr)Ck0{+ELj(R^w!531jc)+hTsE|;|$u*-eG;nZTI6~ zz3&L}da0i4Hl!>ypyq*y3W)Ag76odAOTWkUB!YE%m=on7|B0zadMcY{d_25D;nm&u z77f&PRxjC$<82o2*5r)8f9iC8&adm2eR(R~VJ)}x^F3=ys!4M7$#RV!sXdVrjO{tV zH5LZ80UK1_M?Anh$|GwgZmYfw5G{?{|X9G>6{&EVH|yd=i*dy?tU3yD+;ax6htNXBpNN@ax-eq($BMu za?FV|?|m&iMO4V1V9EK3<fpWM-1=uV4+HZmT zj=;6cxE=+tPv>uY@>DSAsL;{o#x4p$CkG;$1B5SFm-T1q|{Q*yP!W!Z& zC2Rjl6pZ6|TEIfIYX)kaJWvYQssaC^;ZIUb?!dAQp*adap`{~T6wi#|mqrVbAv8DuQiRsKu`JKe|$WhAvq6 z3;J%gvf>8}BuvPuPJk9p1_IP`xSvF&GzGsA=A7;N(e}N7KAs89#YT!L(mkQXNm)il z%QTclO0V{Rg7o`5lgOn2-3;>^4r&Ioolj)ZPplmBKCBk@>(lVwreB(0X#1W6c~ZTO zN`&K1E!kaA#$nfO7V9Z++>;|RXnKUzAfY=sE25$khD*p4=72p3}JJ=ml+!_DO{(ppZf)zXo4Yzp>D<()F)z9*{I-=E%o+F&Fx}Uf# zngR3!ax??Ta@A@~0r2mz23Mm@G?_a3zx{4842R)>KmJ#vz9+8)k`rTb4@yXx5!)PR z9@ACeNG}#Z`IM^>wi$?uJFJHV5UAENcPpv+#Isc*26jg!;CB0aW$p%5aVwmFi;KrS zp%b$gF@ZH6&}(;p7eQeCQMP$|3=Ha&>(@QEhbnJCtEkoYgkK2a%q)Z1&YtWK^if^_ z<~LkuA>nv5<)SW9U4>3urdim!JpFHUpOXjYW02;+E5PoQHtBi0~A*b<`EJ*N#UW;o|^eO+<)U-^`*wd=R_(5|voxajHv)miuOa zTl!8;Yyn}{*dUj1e@CcznW1@*SKgi`ey@~KX_W7O?5fH=0>X|oQ0pi>Bv&iz=yk)BfFeiex=Q1j;1kRmLt0$}C3=np#{biiO})Lb zTUQj@sG%G|cThkE`4S{!#y_~HZ=y)Q$JiSF+KOLo8J+k=EDQrOM-aBO1y1gv#;zUb z%_1S4)Q(=bSs2cuwg#1ww!|(<8_ydrkW@^`%;grb-Lh2e{|5ZX1(?`qb_;^+BGB-Lm4dL4p@va@s>W##-MbsP{|K9O=rbM80X z41NHesDG*oC}u%E70SDw-^`8=Lq4{CdH&cIV_e;SlU!AbXGx`lk}<|l{M;`n=y>cC z)*fohA}!AUvs<~c*H%06mDKh?W?Ng^mqO+9N};#yZEc+zK>lHS+}4-N8E2xfoG;)K z5)CmY!@V2YxoIGdg~88J#e4AxoWM!nQIIb6<^ zJWlSo=H`9{LXyCE9;1EY<|*IKLV{#n%hA`|i0N;Vyq-3mpNr?)A4@q89DH`Y`nuuk zPo~W3#vz&g9r>J#+l{A3fBya3*{Rivt}hoM?NjqFzACwq0!dC5Vd1+t(9*>?%vZ`t zx3ja63p|kq7MNo*Y$s1vSLVOQdoX(jS3xd6Va$@JgFRu3fQr&To)iXOQLK;H{Y`kI zzLo{JuS8e|=r*e7S@lNMi{NN2`Lu{n!kMT6{*rCJ2DJ({BG6*QVHR`36JplO#KY1~ zm}hyJm{c))%jIM?eo+-%&&;%x@{u)Aw^*33bb)*}A9_}#8?mSb4!(vQ+-6i#sCqBx z0Dr!LRWJ8xzt~psSZG0{crTZB|>UReg$HPv@?wY*9UBU`nLVs?H^DB)XggSjrAy zj4O4xjOh3lu`CNqAwBouTebLJK83&lWe4~H3Mbud=g zeq1(2_^TK6L%E6SNee%c#Zkj`pAWY*!DHyjM(aGBAi=6GetUgI%_VRML41U9K&oSK zgLptrR_113OumNTLSlFiF96bt-Z?f0Tup!-ny|ffQ(YL_rlN z@!jC?Xpk?jTZA+%IQm@nai%e5x}!T`^OzmJ^;)#M?XMXUy;2|UgSL_pChYPtZh7xx zaAY4`DT+->uZz_TPDfs5g9tHa%~`Pe$}A+$HbJsUB|vt}A#Oq14!%Tk$-Sl_NW{xp zZ5;kSO$3tfd=$iuv8t@%blX!nSmMnRZ?p#@(DP-4n&D=-xJ1s+2iJ?pNre55>=fK%S!a5^APaGGVfAm(oSok_j z=UW2Z-?h5oi#e{+9}T%t8)r4TD>DQgG|blfmtnV*Er=P6kocq78#lDBqPW-M0WW?? z7D&|b9BVg7q0Vl4hyg1FtxdY&RNc%N{}^hLl7UmliSqg|`qsLuKhkKm@a{1aI!#xA z#g;oiMP*vHwLfmVAA_F(c5!j@nm4Wl*pb(7U~sN=Ts}4IY|fSa&Bc*kVaBYMVu!iY zXD@Fk9j5o>z?-mm)W;O_U-*Cye1%$y54r}@ zmgV_&Z$5fcKTl25DFr+zx`nZLsWJG$EB420DJB7!ZEN;+)pc{8Y+!E%j3re%z1rno zFu}*(rPOA1#jKLL(~2jKV^&0$sxg$;bWlUo3)D*ZKB9ELPH1Rnr)k&n%C9lhg%!SF zC#1UIg#(T$b*PtvGeZ2NA`Gu6WdjVqio1{T@py*4W+23z2)`npuhgT@uY-73W^z5})m4;rY$4*4(LdW;R|9M9f+{P>~8yUEB); zb?>=t9jR~Gz+3rod{5Qcp92`uza}my)kR7TfHZ za0H4Ih#2FZx$^?0Y|cW>|kp4{M75}_(z&5W9w%Ce-7Tj9uc6QO?f!j&kd zN>T84mjBkBdkO*`G2bIOUC#C8XnK~nElX@}#UA23q|?>e%bnOID5!tl0`t`>28L3O z$lm^56~o25gLW)L;1Mbv*Utm8EKxKV>L!xlN^sJ@pACk8p_WR{K3&`jEDNuKhKvS^}sZ4>96e9m_)tyltrBloFLci_9gN28Xw8mafu(O<7u4hS2h z(R8UYVcJ_p1fCHnP1=LA!7CL2wkOfm=Ir44G#+r8fAbPkbVtG05o z59KR{+f=6#R^4V*f&hZ>pyQvZ4vK!x~Ubkk}A_3u)Kzn`8hAHpQ7k` zzSToL{3vERTUIT$e+35QI+ApgCQDH_@L<*J#83!7KS^Zawo}t;Y?+!_mgfHki6Cri z@R~A`->4A8;|ITt#YEv-NF~R3U0#gH2ZCfgEMpiwwgRU{qNf&Z{HuTorE6=1rwBBE zP=9*v4ep;6i7b3~;Xh|AQI*aFmhw*-jVii%W4URskb4 z)xq?+Y!L%4rUw6{w=CL$o^#Sc%FP z2VPh_`Y}Fs0QnxpOS;xz1>dE|d>C4BR=t`Ya=aqlj(uUq3#09Y>VtgD!9eN=4E*KW;!EDLUdd4881MUNFs_ z_(Jut^apm7v*s`He}ljjz*HP}YgA@nUcEy>9o`9CpHy_B$vxkxRFb^QCJL7k7f*@= zZdxl`tPo7)uL~tI6Ps%)zlvg6XoccxPMhdEU5wA?+=XNc1HXzVK2wj-3-8H9eiAJ+ z9PFnnY19O(Iy3~DcQ8y`lBQMHY_28;uEY-k#}BNvW9}{uy2KySl*pH0gBZXL;NGLl z3VO=XZoaom&TZ-ksT3?ha`+wzX=h?Gi2n@K#tt#g9h=oZTUbgs^zZfqK<|fXnYr&Cni7_BvASHh)+T5ux`#w`@;IO-K$*eO} z=X2C9(b}`-_%P(+DYe0oFGkvL17T>qEQY)7W||LNpF3TP-7@Fr&L_eOJUTiBpokkX zr%D0Pq#HUThd11BaU18QqwBRRKC|lSe!I@04MwAJWbkO>$wpUCIS&BFe|tR4(ZKLp zUk6Tn3pM130@7HCVYQP#*BL2s7rij6cJ~scU(%BTj`2b+H4F%_3g9L!pCn*lYwrgJ zqTV<<|A^{W9;liN3rOue`;klH$6dlunz}H~1XbGD7#dF!j=qd!I{lGtOwfup=f_IK z0QtI1k$|&P=jJ!gZP8zP(rjAh#sy_JR2mUiw^VLX4_?L9!O(}1A*0F_kKH($J;SNW zL@IdzQ)~9q#C0Dt{ue5X@2+KWbbL?&AJv_{yTrGzDbaY}FfbHqp~8FX2%~mzhNcRo zWL*=tiS^uyLgDPg^&=4w`vo{=Uwn1IE+N);Svi_akusmdF;|QMlV=U;j;esxvIe|t zwp{7`0#1$(!Puiu!7VhW3@VXl#t8IxP!hI~*D!VFyF-oHziA-A%doab2S0QAP3Juo zeWB71N0?dVBHq!9a`KtZ#99n3oHCk>Rw_QMl=jxvQr+!j(KJB0lQTU&dY`@U_cd>R zd-GFvo+*zcBiYj+s%e9BI2FA5)>?WCuTf{B3%44>N#5Qu=N0O>5f}9ve60{=mSIJM zxMwd}RYlZ5%PzJ{@ajT9JZ?!tKre>yjB>A10F5Rke%qISKhe~+vT~Z;2AG&iuwbU= z6NfAnSC+I(1ftI9@2BW~5$NWBS0GBAngOiSfp6kcqW@ybs}0Xm6MwjJ4$t{!LD0On*T3H>WQNU8vtk0H4K;e|{Avyfv)3`Bq<6h_9A~DEggX5G@$2y%`batX)^ zN|Ylg!VqR6AfsDb*6zzz?bcL%FMZY5)z$sh-OYuv(*T42)U)k;!Yx8KdKu_U%7~$+ zXAmrQ(_W%d5Zchg8IH!P7JhsAoMT{xC-`+mBLTVMP>jth#&+3*#=D^2idbZD_?_^x zE}$DiRDewUZR@Kq(A75gIk!p+1>nP6vs||vV6TZ;AOt*isdNKBd4l!Z3aft#3}%`5 zi$QBF)H~D39ITG($BvY1*{U6lzhMR28uw9!9=EPiJZF^T`3mds+fUXD&ONId=y8aZ z@{2y8C97mD*80l5-4c2iN7;)fl|=yT3ZY)vs01dq@5-o$Z#($1=EYjNRL}`p;>fNx z^^LGyU@XjC>l)04ndxJi9%L(ofocbd6s}sLXI4vs9^z@_W7F5SgzH#^8C9}ujuluk zb>Cs&>i(4!#7mtP=XlHg6jpFWQ6zA6i_j?^Y-xS6M(7B56>zGdtCey-ZekSW$$dgh zJ~g7&$kfJzq;qT_$P}4qH|d%#12n}8i{-?69nZ*{J6Qol(DZ}^!MHj26}E(y_fF8P zJL4D#E(9EtH`H}@($Z4lCl2k4Q~~%6!9}R&N9Iz_)H&or8;&2_y1qwRV?z1^d0zzX z4&_{_%@`Tns9Kr#RntDo3Hz{?DIP@ijMTgT=I8P)Ii= zIBA%)7n?y14W$~J*>O4cFpNZrmFaV%!gF)e26d?{ZdYEM7R)1jps*3`LzuV}F4$nmd+kfR(*E$aG3^nc>IOZ5 zLheP+_URklKz;Gi^tCXxK)Hq{{aF`rgr= zN@(QGrk!e1ostfI1V5;~714u6%BDUnP<99}Iv~9=^~Dn!g$Ymd6`E@=W~`-MRR<>peX zaS(q!q{<;~8mP@k-7LM(t+Cd#(bd5KL*E3NzgaU_OdZZ~Gsk>ppDwEEFJo%5o|+xl zfgfQ&PD|=c@;&RX9kbTO?V z9z9lY-8Iso3S_B^_DRg7>2FbgeM4s$8(?UtQ&mzoRA9K+sSS>I`HY)wiI%(v@u@s0 zlV%qfz?tFOj7L7U_#MNj)&^NLu`Y+Xd2&^)^)tVH`a)@x{U4=%*7+40JHZ=+SGRgY zl`xC~cO1(c&UL!dE;G>kJ|fa;{%-Yde7*nlC-}s*>^~Xyib+_nR2XHpK`|{PYV`(g zV}|;g*=ce;9rm`(q&15MGO+k{;I^oLH`z4#bbf&y^4*6Rz~w!eL> zEZxm|5BVgLKbls)tT%SK%Z4)6mzfqw34c4u%hX+pT8f&TI$gNOl9}b;eH>P{5aC$B zmvYKA@Lg2G`$UX3*3h|LI7>6xio3Olo+Z1zy>+t!{!9?MenE@yT*<0fdE zV(uMZClpqhwtc{lh-L3el{zm6;U){N8t7%@v5oBA>67Kp|5At;E}5x(vk_l@2}1K$;D7SQL>+pc_U6%938iiP;69n` zH{FArkdKFBZ>i;n3BXSchA9PMQrsO$saSGp4_6YwSC8a`Wc)n2kA5*oQXgjN%+e`A zVWKv~F2Hf$SV*MZ5%CU3IK|#XR!SWr1#;VMrU-Je-Im*T<~DiiZW=KHakgwA1hRHw zzz7mNeB=$J-jfb7hi&?MacQ(#a?`gDH4xOsE9<;ISoK+ubdX=AN+D%%tE@dpn3^i2 z+tB}{{;%PbIyn~%oQi@NiIj>ro`w0(TJjo40*_PaYGE2#bK3998Z`CjV1%eI;a5c`)&k{b)7$+%k{sbwCi zA{LeGAM(*_(MCkmX0(|<_nPe&20hp4ypb{D?Y^hgWlw7~k;e(u+`14Vn$5~j_6XbB zYdxQ3>wd}fUD;MUo{}9;!=ufhs<}ptDqTk*AK~mkqaDDP@ zXqU}dEi~ud%VbiYAnVW4oJ8b-t9M(3gqbR!~uG zVG7axz>eY{+0eDTZ9cD}&~%~`L4Ywp&f4C_{F6jIjkMrVL(?3ef2;lkl?>CEkVJ}! zvR0t(ubIbwl*7s0MVEH8E^{fl*T)5?glu)~B?$iIQ8TSv9pld9$Qy`4nkGP0$rpM0 zg>;GiGM3Kz^&J-ACuW;#rINmmOxv%OiocvOd!j~KAmoT%EGcej)N#K&wASvw;^ex{ z{0G-@$M89i#0zs=PMu{IGV5B(;B-4-iam<|PMCfi;(ec+CKOZXJg=JqF$W*r`k&=n zu)pKKZH!rBDs^jR-tZDweuXr13yrhC-xHkUXVfs48Y6K$j*WaUf{7%8&qr;=4 zXBmH=S8i*?&$=QAKDhn(mEHIS;*YgG$;`$0rJbDhy%g+@c-lhJ@_zoG{lfMA>h*(+ zmBWV3!;;ngH2iMHpS|q0qolRH{69xIOZ)$=?4>Rrcw_gF+XvIRXKD(zDJN;$pAQ-zZle1#dHqo|yWIMAHFiGT#8*}L*IyP*{ zeeJg#BE}DsWNwcubRcnX z(yyOH<5(pVjMQit$j5Al3@_C)>c352=wvb$2ctj0H`#ngnf<$*3b5=>*}I2_=B)%+ z_0kPrlzMWHWbxl`or58$p7@rvtVtZLS)@V!_)qMg2QIZ@9Xss7vwGwEj{{4_w@9jW z+Y2sQbatZ^^8}mpE*He0W+__rh02}quD0m~K-!c_=2T}z?du=KRGEK&YWNfe#Cd#7 z>@1#9`hQe>40Vkz?yu0nsHpa}v|hb1_M6+zj&o<3uJ4V^ODy+rv zuF7kbJ)zzS`N1xseI!gMDzrZLe|A7V%&U(HqCLHE?lbRt@ zv>EcJJ3|o6LUT<`U;$zjX@68M{H3NmwRiemVvuP$`u!$zP`S-s?~jx|Gn^x+g#q^c9;2klTt--wpk%< zxoqhLAInFrTPsY@Oude5e-y)plxTRQ`rHl`xVseq(^6%_ROy=jpxpADH@qn>6OfF0 z5b$=d*im!rSK^B`U6b9s)uB)Ci6acuqZJ5qe}dQC9APZkpeNWq^#==xTgG2H?^6@P z2z#;bA$jeR{e#Bw)2?OoQdo92T^2=|`0nh}dz2EldrV`4qoD%eVj=!=G#hi;-cNx1 zkyM0V?0H_!Q;|7Y_d(5W$z}+n(SDw1fplZdUN5}bJ*X;Q(c!7*3;9C?JM_3Mbvr6! z?oC~CjGo8oKo()_zi3o~^(5F&@AgBexUECzmSPCWQ4sZJ0n5F*-On1LGf7N^ugAg{ zbr*<_YJ2@i%q3s9Z*I3Fx8!9%joK3_3jE6dWk5ZG<#cc)X#S=Vz_AjM{L)KUa^le! z;>-`LUb>f%(tG_rfmN^ACSykR|Khm!R8yZbBrS6PJyFR%(Y2urE#fw~ zhGv7pJp{9)@uHz;Uyiwd%2^|rXEq96k6^MWCI3bUCrWc3cil&PMUHvc+73|{7n3KqfUCjiP^c3#)@Q`)#DwiVCg*9F)pI% zMw6IbnLo!nml^_&a%;T*c*4)pl}Dbm+sHhlh9Z%+>qpNIr|Mm%;jS^EWXW?zWx*Ii zW>VP2hy0~1!uX15#R61H)Mz{K1rWzM^U0|f8tv_xk2Sc>urFh9JMxQVxQ2IR7e(D| z$hF4LGWoh~<0b!e2Jee|E6A%s`BZ27#vPov66f~{!7rlCMo2wZ|NX-+55=;Zlw#au z6eUn}Ggnj(mdi7;GmAvlPdTo;($|Jmn zuUnRAQAdF2ZJ}n{>`9wdvxPr8vZEyCtn29KeV>(r#IKPqtKohQWkV&$rC84s*WUk- z1q-}$vR$d8HRsZ!;vV?4Oew09cWsJ?^I<$T_X6#NbCBtz7Ps|B%_==p$ZHL4P-he; zu6~de)l+MTf_y|xZ@18`D?WY@st-6T;%5%ZrpnbmUjM2=-NyOHyQ8yoNlhG5e|6`5 z-b(d>HA1j78~%0iHRN3gL_|u(s~f#ukH0~0_7%a>ck~$X#8GCc!^(F@mpV{`VbiXJ zelqr_-{m1bALpH6AMC$Ugtx9E8O=Tq^%_>AB)NQ3WhEx6dcKP-&I)4WAY>1vq+9^^ zpV2P`X)ncEm6|C&U6}n^X?J$5(d=Z)Xow@dS=PvMHcE3hr-&uz(PC=%=T`HZL3O)& z%%sY47usdOpYrlYR17=)eu36uNXL8kxY%%acJ+5@PeCEssnPoxw-5YX^?umQ>b_uo zrokM|e=Fvu>eYS_?IQ*b;l<}-0oh>y{^>hO*=*&{XIKeOWwndY$XB9%@UN9lPjEbL zuQs#q(gQudEA09oSMl}3ULyy8Psx7CAhOR%?3d+A4JG?Ole5E65%q~MmlOkn1r5rK z^)W{U3yNy%lV3zsYS+(pwwA+KV~3s??V`o$gO*Z9NC)t*n{|w5mxo$2){$mA=F-%< zL$#wQWLQlhFZKoRfZO9gSHQT%aXmnGN8O zwpr|c8!2zwK_gc0*Eo3MM&ITp%EWJsyjFHpIOs0d8I= z-QyJBo{@)H`{?%ex<%$p9p1 z@d;2su!xbuA;?NZ^UW>5f8tk*d+jFfOxh%V#`bYL9*Ty7(k*Pl9@3 zB_hQ*dfLYf?ttCyI1_P$uq5OJ5UOkzYozDIl8)GuwikiKtdAe^Kz?p6;YaXso=)SU zN5YBrm@_ay`J?ffEan3}@oU}fI-@M1xhn?~sgg^WF+gjrm=Hqi$hoOfN#QR(y%P=C zbjN#Fel8RLFsFHERJXk&yB=Yn%rIRLx)q!7A7dW6ejSGJvAlwx{7h198}^!J$b#G< z0rHXB2jKRIkS}aWzf@4s;UOPX?byDhqG??H=C|S>Eg0Nt4`+~a`TE7D@@)lQ-a>QN zP@Mhm|8!DC!{tAha3^K+!Z$R*c>u~?0*Y-E^Ez9AWYx`1^c`8vQzk5_Uq~MXFAFcc zL27Rmutn%VI4}1u%Ba|WTe$zi0PQf*1bre`&!LuyLiJ4wHcx3uTO=0Gh@uQjr~E-m z;PV&ePg=avGx%Gr5d|*cKbgnTJ0Ao8th{&7I{r%Y@ND{>#I511t(}#9C|n|k{BEPmv#`DN}aPd6*HR$Y) z6ZQ`GXk~2&4S_epvqo6DTt1V=#8rVA)^!I%#~~4NE1V=vb2Xd}@`_<a8+V<2&UX zi)b|zaP;(6=Phq1mE)(P+)Z>VN!sGqcb%W*B>BjdDH;)$NB+uC3sgGBCq&=3)vO(t z8D->A7a0VbY;SD$Y`pSfW-SGc!V7_U%`Exo4Y$&Kz&ANma8=GZfOs*vFk7vHWEdg7 zCRgud&s?0l^iD#=yOYzETYQv~fmgHE2mfOHJ13CkN>eY6o}z51wr4+?+<*Ii1pfWn zwX$2fflSjJi4A*-$}y4mKIFB z%Qtoha*BQB23pmitb!E9NEu(Ov@zp#tFgS6hWWZCKI4Cx!HTI zhYuEbcn063OMixzEW~UiMKzwWCt1Nh8dvhGE@fx2Z6tw2+bjgay%%)+-~N|;uTB*2 zw8*&S2u9lPph`JNv3@+i%rF{n;w5Cy%%c4S0&Anl0nV=azwfU}c0eANDQPg-O2`|x zVQ5!G3YQtwOtIdhk%9&$twp8Sv$UH`BBQ=@55hcN0bfTS-S+BMGl2$j`l@J$9|@pT z(Y?6Ak;^+89+w6qx}Jp~L|iZaL)J5O9RYkh7?COe4}OxoA|Bbeuo`}tuYlSA%qx2N zf%>eg-T~FZ@tAi6XvD1^l3duGWl*!~ej~_&UtIZ^2lbdDx)X7Byi~3QQ5Z>X=~V65_&CrF z6!^h%Cy4YP>MZOdmR(Opq5xZM@SF)G!6cbqgqHX|W+BOAgH3F^H7ovtQz6<}gJD8? z*RrWk<*AD=8%dL~iJ+p8VMFDo-L!4+sRPO@5U`#xa-Qi@RdlD>Fg``Of<)13p3k& z&jhjRpIX$kXM-E$?a*J7r~Z@O*NB8obOns#w$m%r@8kNf2`U#6Xn)~|Bo_6X&fV2jT4JT-(MLJ^g8L)m|tN~!_!M~vvu4;F$*2&AM-ONohU zl5^s-OABzFU#!TvZ)Lq{Ye6XbWzNXhb~W;jg8-AmkiX@;Fk{q&U`EjUI4`8xxbxxd zmHd^+UF3hOp(me@^!JSoo7~A?H{>1fw|LU5VT4jMWa>r7#XdblWKZ=uOE9^R(clly z`D&=QsT-!9_&)+fxNY^QEE55uD=>0jK6G~DqEe&i!0zh2SZwnWU=DlhI{D(m)Sww2 zCvh!C;_*Ce4Oie)0~@1%ln)KWK?`kj`(AVEHF2(fdQiBtjFh^79>1Tre@NioBEQ?m z!&b0sb-^)l=W%E3Qx>-n&LJm>q^4CTEy?x-f z+<|>+2zYpz0AQK@9e0-#aqs)%<7=tK%A#qzSN(qme(~>3)6>F}dX4oM_r7`!m!}On z^-^n(5E+h8Wq=%{brv(lsh8pHi`UhE86U=AQrh91{5!fOqE|IjMeiqHA@O|jL1~zd z2c?gnNY&5ly7qogZ-^+AhyW0Ojpa+N@0F*OrQRk|rxHy)xT{VHf7;CgX+1<5q`CdV3 zRym(Czb14Ojb8smYf?Tr#aB;(*FSMtyT~gl9o!N8to3F%ZuIU<%zTk1Kq!`{v$k$d zc6Y*%VXsNQzUB+S{q}9bjd}Ne5x>jZ%Yab(zH_=U3Gd_LdTW8|`N(Yrn%#?&*4xCm z^@#pt4`oPywvg^Gow-AcTq&dW;NI$wcbWB?R;(m3Q!DlX>5|@?oMnYP)K{3Gzy44< z%6Aljt5``~M4H1rfVe8{xrgez;VQXzdTo}$@>NgCZ(G)jdUi}J^Jmld{szlbDmF*l zlnZ~^pnkj%vpd2lN2{Wj0(=3`EAYzuKwAoU<^BqIY(auY)W<%+Z8%^Bu;f-ZWMROg zhItx-v7d$wv{UiL+!xB(Nnx!6Fqsk(u1Y?={WcMzyTCZ{25yx5xpWUDwQ~E(XUs+&<#rkLs7(T3^%-=NaEpxRsvx^W0A$UG ziSKn9R&1YeXEmhF;@*_AKa*VJe0E0nV@#$d6%M34c~+a<&e*_LCGi#dAI{zD3RVrp zQ;4BdwWs=5J%Shu=hST+iPDM8t(ZwGe%;5^dn~MXoV(64Hj%$j46Pa^!38JjGb@T-wzK$o`$BGXOd?{0kZ`w+6!pN{jhcJwd; zw)l+1DkA3DOX57~-+|6Qr$i`o4RtZZ(@*4n&WvVMfQzR@CRlW@GXk=` zJ8tcUlyUw7;J0qcz`%oPr<66sqowSY-2%QvMW{`$Qq1a)&8Z|O#Cem_StFO;79Z}P zFU>mvt`ePf2sBI&;%95pC(gzI_QB|Q)!2{}E8n;LikzOReHghZHRoRbBh1i-7QwgQ zdELX3)u&bE4)?c6#QbxkM{%}oqO_K^O=Gl=Y)YWp_wxN>zrr{FabJSaCGS>{r3oTVv+OCfSO zObG4^j9~|T%R3H$Cy^~rriC9?f<|M%x#yYIbYGFWfzyVso1JW24WO@IqS3xH_9OWevrUV*O+#J-MM%5 ze9IB3H7#Iq%xs*;Om+OQc(lX~_x|&MJPMR^NgOdQk>sPw9dJ(gu)EvZXJBjYkg9B*$NzzBw$WcVw6p~aRw}3$cuf38 zX4$n0y#F`Y^}m2fGJP<_myiw~;$H?t44G4*I=cZ~{QyJ7U7N)=kE>g=qLtP?$zX;m zqD7HpJz%!p3Ye26)JUT>`7p?os%&FPVzoSZkRU^2T9+4BNE z-wysVqWFjM+k!*TCaT#(S@mBDFuJ}Vtb@`H7#)a(HS&w`dAa2 z6Fr>|IlGYJViKc0@ib0;tvh??oIXRSyDQm0jhrE_)p4y+POLmLYDMV-75E3LN2c5*Gva39Cu0c-!W9JJxeCK)x1=7R=BXkxi|cmoeMVQ!RahDQ1b_(X zvIVZ|`fc=Eo$-{?<6xy9L`t;}-r1H?um2U+T_W(*ANAz2)227A-uAVFtwOhB5GE zCz>E|s)Ys;R=|*0x4yCX_S2f6d#pb}PP$HksW1GqgN6c*tu=yu!QlHKa;H(1qEn=d z*&la>=gd=@;cBP2*ewK4q^`vLT<0nV?6-|bbJqBPYnTv@~T4BsKmOR)}fn?0Af`_5$Jd##=F zE*?L6ktjgbvW~Jb8M|jhRIYXp7ri?q&BjV{=_23S$_SMm-zAm(fNKi>2D~Ai$#1`B zK~UC9eJu45+~b+W(MJKRBoyteC%lqZsnLe3ZeGMzLu4|P{Id+;juPjzJ!|yP|H^7( z5e-)QSp=Z3UXTIK=*|~1#d%oD{>z8Iz7ak=6oledC)PcYQF*zb|Z`> zoWemXNZFAu(K9&XQ*6TZ>r2?NWTXv-1rwbzn3W!?VWvUPl-O(H zIm4i4pZwt33inp%%Ghu_js{9skg&sEz14Dh1@kG+1bF7lye%+m$6MOz)W}=*XpRR^ zN4;G?os$QuvXJXzVBdM~_^U(}{<=x56TkiE*|TeRw`1P(<5ARPUjSR% zKu?TuW5EMJE5M-Pm9tZG$tK>21}ov{&ff(skga|9o%{;Tv(_Mgq`{Gk7IJUM*_%EA zC;$?O_}er4v>XjqR<--4Sx1Aeq`7iuWm@y;N!TsAHjCn;gBcBlJeE|q9`NNW{OW{8 zc(d?Pl?79QZoSR2sIIVr-AVGLNQ94u>!aZkrKnkAZ#%Cjc{RTFf4;X1I8CUlnH%S*9{^t^25A1^8nBaSSf;G$?KNk79B7@08 z;N$cjU?EAg9PPkYz{;z~EZcvbQ?+Pdgod3SH6*C(=Rf=~yJk`OYH8tB_iW4ac_Y2> zdU>Xga!k6DTUPS0AE%NEcFiXV@1(7r1#M>;{R_844|ZE<1{9fh1lQNVBG);qE_RW* zfqTjvL!pQq{}E0OOZ4-gZ%MPBMRl zkUzM|gFpH3u+JR&Jjr4Rhn7gr4%w`SCc#2|%&Mpfes4?uI#1tPyW1x2DA$~mq)1BK zH31e1K_qP)H)G$4JFb7fO$FsXxB>GItKhhy3I)R{uRFa;ISqc)=xu0CqubDAt$EQz6(Ij66E7Y57WSFCpdcUtGcqCh}uo|RJ3oYIHIJEeMLs3}=|Le8%bG=`RvE&*zj_;~% z=i96l>}3&gJ9woOqhK+q9Pc*t+2(Est->~=$y;~fjn6u$a?tE!VX@bM49(03Pigpp z->Sw!l4V{L22+&C{=4g_g%w~e#!q4RIr;f|te`GZA~*05Jq*JL_WQQW>j>WMqhD%0 zKg!->lTg-(`12Tjl;Ue2=Owt~@RkzI!Awf(3T;-C9W7tAaA;yxzD`;;V{3-WOh}pf?`1pI%)Av5?uN<&ViBE!NK-7 z`)k_JymQlLK0g<{Ym$UAot|E6;3K<=Qm>=wGp@`(92JSawz1GSU?0Dmci!c#;5tsL zz}z4$BUXPBq>9-QiZxS1(Y@BH{|uK~xKkfGtg!}fu$$vXYmqC=2JNO_jTQus__0o2 z9Y??mERHV@@VLv>W$zA3U^C-__8LZ`4Nylm zReRb|>?Q%X#~`^^+Eq=`FHZCqhwFf7X#dlj2i6Yu>?HZkpAfA(1K%Le>)psxkr?Q} zeZf;}^R1&(PBlf{`IIHIH6FxP%lgl3oYiA>idj4%3;iOLL7YL~J@>nFy7did^+?89 z!r~SpBDy@qtFmnF9mBQ(vF{s2X6v&vQ_u9xi$ipkeFI=SNPyWjH7${l3!Hy}GRk>K zR!f3y1slSrcl+*slk3Nyj#F|`w{XK^3$<@^O`8km*J`*_UrO7?***4F@C4vL_1-l` zS-yaKe>CE_tyqHz2S@D3=#q*`GJjh*N1@&Q8v<-*>nO22mG}M34lyUQ@v^LgZ6*#M zex*iN!qPcxDu_Jb{f16+>57iO3=(#n@mkyELdT6A?)b%~^GHyMDEG=U@mjh*5xI_By$~hcEnaL@C>BI3( zbdd;M8jKc&*M47kiffmr+$Tl5F(#k`^X`9eh3Fv?*fPaK$c4gDD0*zY(SKvu-IkI+ zlt164rq61Gp?cZRB{-4Qz~8&R;!4}CGD8P6TF!&f#STTkLrTFnZTVGwKt@%3^O>J$ zKPDyjJN6`S@Xpn5jw1VJqU`Ai=S&7Rj?3o8b4rMy-pG8_v}u*)Hkto`K9>(%pFKjZ zoDX~<97J$6EVwk`+f&{#EP(1NUx0lOpFzv{=2!PW+^Jz}+w$Fd+oue>JarmM_n+#` z5?Y8@gsa4vXc)?kd*JL!4~dmB)~I>)6Zr33_|s@I_Y%$u=yGRBmn1(Ix`v_oBT51t z4SXXDMZH3e-+0?D_AcE`MXix+4Bx5<2E8sqy@hcc*SUvQmsC)Fp|Kz zSKh#`1;>hGKPly3Pb9X6{eZUm1lOpT*{|)*Uq1e+xI3#_EjmdmePt&4y8nyYr%R!K zI+Qk4(7>hG@i>r_1NX9z%>a3+HtJDBK96a#;~kJIXwj*C8`G5-lLDZ-%ppx6-S+cI zJDK^R+vj7Td}aNE*udd(@&vTVC%nI}@Gj|Yx*whmmFXjwzdZq7eV5wg8#l{OIH5-oj|wONrh_Oy~HFo?0`LMe4^8jBik=kv;@+d z%K^n?+|_Z0Ph%fuq91O7r9%{VbaxJAO5NI0oRv#_>~BC@QZdLyz;27MUkd+Y-+-c# zrzg?&>zn~6bWeCxIs=uaqR9m}%p&mN!{bh5F-d#J8Dd&v-Xr#YP{bhD?vHs#vu_Tt zx!+%^vWklCp&jXVXr^HUKK*9Ytyn{`c}Xl?2X~np{OblThR2$c>~mSX)PGh-W!6)1 zgo!)ZI#1lTZz_I|r`*EoA+UsDW}_P1HKl_|&?SV8L6#30Mnpgg5S+5`mQ z;Q{oSG(v{)U3Z$(wA$0Mhby?1e*PZK-dEzc&PQ5}pX7)q_*O#3#+DV!{D)ELRXD)! zXC#F+86|4h4=OF5^9F!`TxFVm@4A5wy=NL4#J#uY{|cJ^L}E?cveWj222W@!Ed|y!JDKgf1r;<#Cn? zqz=Dh97Kn?UV7j=8Gv!@#|)cl{O}tU00NX`CzZ)O9whq4z+QGt>aqWB=1C-nG{+43 z4!fTI7CbJfT88K6$9m|FLjB6A=#1nnr*;)u4QvdY7V%4EDz+#JjnT;P%wd;h)v4=Pn`OAgakSqJSPnL zSxPO%dZm_>s2w|TV!n`a*ojj%>MDBcnj-kEpO97gk{5n&n!T9daq6EBW2P;b(}Mjz z`i!Ky{|<&(pV=zh=yJH5^N4L%+Xb_|&84KXA?_JXK2Ih@?}aNW%UH4TxcnJE5Y@+% zWTpEnx?1i_``oY6DZ8Rw?>Ig268foLT1@@NP^4$u{KItXr8*w@dnU4H31nxpAmHEU zjIz77j(@auKJ{7+pjr^8anNi(vn9BZ$}coFpE6PTE7uWs^ z2Rz5wyz~Vxa7?Sg%k-H_gRwDTm0L3>0qdRF+1W&3YqGYGL^NC1{P#N6#n6Cb;y}zl z9e_WQqZbm=!|0U_;v{Bx0tbBeoK*2Qh45F&OYE!d>5JiHz;VaCC7Nc zm8%5oF2()f*T%pi=J@lz?ksc%_EYpF_o2lO+A|0Y|6DnVgr`Ysn~;N6nudXDBuX8B-vso{o?%e!(MN?hL&`lM zijA~=Z1z!?-8#GCP21&5@W2lPu(hEr!?UykG*s|L9dIUPUM0J!ed#0;84PZ^D{c2FU5-f53ki_S>4UEbQDEf+;7z^qLp=D&ARuMb73D;_on z5FmZH8%Ni+!Vi=oyDwRTgYqd0nml>`PR_`qX+<)!O zziYNx4HhU0P&}!xZyfFoT^>tn`g& z@-XHFDO3)3_BEZ5cmBhyPIL}biwC}{pzq4`e32g)L`V9GRZc6lx7T$qz{G-?iDuIV zMC`Mg!pNhVUS#2v@SCLSa<1wOhG4r%ULML)2FDk9T^&s@FH#h|eo9}f{)D?@p2R7< zcxMNunndGg8EcUMWx7L(BU~fExXS|$GXFFvy%9ol1ITm!0q>@RwEg@B3x>&M44B5UEV)Ydi3mlWcP>P2QBbd#yJ!Z zp;!*9!BuyW-lLm=0=&IJVxOl#24vVwZ{WsFU7o>Qdiua~ouxfq%EtK$y5Bp$F`Z5%wHeUHLG%?+3@u~;;1+>F(a~K*E}XOKdbG)1*Pxk1$0wtm6kA~Iu3mE z(}uHfMcM|VI@P17txi8P9=b!EA|%MaFD+e<(tF8-r6C2}SieOySmh3B9J0ddWD-)( z?hh>b{?e`)K%(eyf4&kdOa zeG9q+AxhUU;RKvRm5_&~yOOR6cUYu*4-=0FmZ|r~+`v^12FOpAZIgKo5K1z0tn+j$#OS6Y|6N;ZnAtH6D8*B@uO5*5(S8gC_86@wj$nIR6 zB$JAAu=^7!m`}l3EwTU5AvpYf0thaAHG+26t%pJ#@G6IO!9iwDt!yA!Edm$emAVun zhhq9b%7aaK;Upb;3J-~(5Lvy|sA*G|4l_dMlQ}sLoA_;SDut^S$4bOwM%<^Gq`d9( z9=iYVnFb|qZ|%s?a6QZa&g zKLEbh-bjn(c9PZy$MfE7^A;$jNFMB{HQ01pA+|ng*HIsF7$b?BJEiHF@1O8>GLjan zMR0>G-BSC+`|6)4^CSm1imHgM*C^2{SJAwMRN}{kxb&#;v1FgRL4()>wTs`yE#cIt zl(xxFmptueWRHV{5vYhm9O&UHa$69Nco9Zm#D9>txTr{zo^`q69!Scme2B-33KY;+ z|08ipYz;>Lnt>8OyhPe}nZ|2=&7CzRmXWVpx^k3zq8Fi3%jwQXJ$Hi`(y2De5fK|% zzj?WszQU~?nM!g>j;vsIeeq}VUPBj#X_6yoePW4@gR;vN+Xy1FF>o11{sZza7$4-A zbybD1k?^<36vZ&Ik=bL*mYe~wDzpmCLeM;#J#m|Z4abl*8i#3#TT-}1^TLfh3>OGy zV_UYPm<;SpEjYY4{Z1$|lyt6VDp-oUMG%>-OtVOh1cqI~KSUOwnF*B~bDlPTxOyO~ z&_(psz;6L!S+k&r2ydMv=s(f26s+h*PlwH2koC;su-E?uN6vkvhfTzMu?d;Q}x9E+mCGzvXa*GsH(0S1f8=^|?ck zGC^CWM6ZjFN`jJjEyz+Ia18Wn2`v+Z>-^2KHhQLUOz&=a)1p4)OjywoBra=i6C64r zk*``(0X_XOU4?e_xXa8^h;k%Thx^MVswaOUgN#ePV~(r&As^2yemzdFuEbXhN9OKO z4*C?&*oUb<(TX6kFXeVS#=bFE%1#fpU;VRfd(V*!T2LEjpJVvKXT$a_V)F}>P-{{j z;l&d>X-SCuXlABvI$N^KxI~Xqc9G>tyWF3^B)%)N{pXJlH~n5vz8cX?QLLXyM>q&9 znAsZ;?dt|6Dq_kq42V&CRd%Z%oqAJl5{3|(o*!+?w0_+hfm8nO>54z({^<+}trY-X zL=QlAh_VT;V-aOZYjwDG?Xn%f<4!+xH5ZS&Jwsglu=e);r`xewwI!|QZ11Rv z&~IQvZr^=&^`N#yb$RY>;|VwT zoJ`Hu=XJPasuQOU*}e#ZGo{&&X<{*vZb`j{8}e*+Uj zY!*^HqM!TGH&>SGuNYqlN$re7i&FDvl~IgpxIw%g|nP!&5o4tfd2f0-9w1tNWV--&v92!A6Bd~$I{=J`Y0Ysr>9_Y2b305+k$D7@#b6oyhWcVZ?pYk z?3rrDIim%rV=}Un#o21b-B|k zxS?ut98_fT=VHp7aP*xNyg$8)F8m-ozX2GB$31^Dsbl=g%{-HDA@nrFt4Kw?=Wl6B z&yzdEHqaYLfjsp-`erfX9H^C?1iR}{cCUx>s+nlUl~tkrOu9yUB$mfpX@@%{VMbEO zZ~mR!VqrUl=04_N8N_v`KrHmy^nVb~u-S)ln(htPPmjU27gTax7cE+3@Vv%Kv-=j# zYJvZsg7kJS!w#|e(VUsnUzY@^WU+7L#Xj7CSep+TEB{xw%b@DuE0lA$WmM7bu0t@T zoS%XkSTH*<*fe$f?dl$OB<=^=@c*g>$tiWa+?i5Xifvc2duxE?&%-1)ZF|IdanL(Z z68_6OYvU}dZkQkP&|wxodnP}Whm+O*qQy78ipmE-e#toC_8FFZyEEU#&Wv`XBgDt_ z-d9+B7>b%1NIbmSpZ=Px@!!NiJg3I7U1AGRFU8EjrOrFEHEQ!6EX{yLS$;-?t9Nw0 zPiB;8JH04oybc{z5s*l*wl$F~B0Z2E1cyJ9uB;5I60@4-?Km%!Xg%Az5es$A5$@+b zOXupWTaGhynT_S++cp0kOCrtzHk6eA(EyG0%0e!3)39rE=@R)1w>Dn*&OX4V?1@!{ z9R`+kvQXHWEW*Wte0pb6fb0GSEyJvLJ6j{T1|Xyr|ZzehwIaE!~Z zR-MY0GxO2XBaLeta{FG|&GAQ=!=d6d4y1=*o4k@v`Q1guoP7D&l_!i*=RF=VD0ya+a+T+t=iS1SZ9&qir30oO}XjoL_f3fKpHsD@tQn| z$Ff?VrNo0q;JYcMkY)GWI}qFAXgZ>|HRaF>$=ZllYrt#UQn;?-u`%hRAG|}LS4a)B zMBnYHhl3#ULc*OoZC6M2W*4pvJAJ)wpgErXS)uSTt^rqJ^q(68;aJkClcO?!^q$oE zZNiA+PSDy-pNQ>}jNSmt*qMz^B!v1NqAbYL71dNUFKeAzvDPu~8xnoEnsR3e zyz@+w^Xu%+Na*iDwtAmn@eJ5|EU_@ICHl<7SOys@ZZW6Q44fS$y_H@XV&GYAcYRCZ z%6xN0fsOBsLn5JiSz{!KcntSj|1DzB#=Qm8+KmPBS;v{ONnoLXbft3djxnK(uy>&h z_b7e$!f8&kJ<>GB_Wo_o)Mnpt72F8<%Q06JGhPNBftQ_OQd?WdusgxmNToAkclP}w zBKN@Dg}8n(j&#!tA#dG$>|$I@x~RLDaTEQR>~E!;+^P))GnR=7Gg4o6vwlK$f>?Y> zuu=J<$l^nw56MlNAil9s061)^EtmrOxL>nN&|X7_k$ct2&nlc;s{QbmM$>={%Fl5+ zP`gn45=W`M_Mx9iVpLZ*A>4Lrrix9 zuhlR%Jx+xZxWqW$dP48o>&Di^H*bfL9D}60rH-Am=#za*#icfDGv7|rr^9Cj%+1E8 zJ&HsO<+xhqc6v5_rWmXR%U>Jv^2FHt$Zmo3hDBf7Vw(N%>@g8LIkMCiL5D5&fq2V0 zpQ1dh(Nev3SNM}0s6WukAz?Ovjdc`b8a`N~(o<6z3Q2~#^$&h**4R(`UbJr`BRQFQ zGWivYCJl_tr8|_Yi8D8~27D5Cz5H4Oz!JegJwsl~!gA9b=;Du=_eRiDI{LLJ#dgw2FHZ~A*YclJZ{A)h_Pa1o}DS{ZsA z>^ z!6BnjJ^cPbtvqtl;++)#Ie!;L`8-f#<^%=^)*G;sY8viMIuSzv8c5lZk5pfUX>yk+ zSuQEfsHwv}=H?_uiIgtLz8*MXkX_a97~u)aQZ~xwn(pKJ z#z(E33PMf)%gQobNi@r0EIH`U@LO^Mv1AfQ>WwxWlcmID7h|e!>q&!m7qO>rI5QEGMg>ck>C5r z7{JnA4L<%FJR}6+hzT>8_T?-jsQV@Z?W3K*NUyb^_&MTD-?MafrAN0;q*Nb~HsO?5 z(}bE5uJpAfWE7;|ey-Yl3i*#P)O+6@NMETd)$$l99JP$t@q(2`h5?&yKxygN^>f>c6b-Q{~vkh{~FhI=3y@i#9-lZ?2P5H@knb;P*@VTOM~Jd zk3h=rU>-hv z&U@bj;4{VxAEDJllr%W)!HKOq5rDP=o+cWcJ*p7EVGg7-D<;ae8G zAADDLXI{DaE@-z9^&a3=9+wyo{8_>D>@8dNY__j$)^FnYHQKRbxIAy2TT!$8m~wG2 zN4w6{X(urzmMHhr1?e%Fa@RL)u0@?fvgfiLLk6x#tXAHPQuMum*K6ob*3N_N8l*sC zwSQ=DV3Q`}^p3Lofrcl3!UN#d*zt zm@yBzl1ZfdEn3xC5USTXNiE2B@J^uDabw1YcKr70Nm3o*J5bk1J@<^^4cBnUA54)S z6HsTBQymR2vpjX>elN>*cf$KbWdf7z<5)GjGmS+Fv@f@8hwpn&RJ^0z z*L+AeGA$|IIa|#$-#^mQ1lC|Ns3ubAw=vn7ZP?%LZ>HCxLiP1DK}MHObJ^u+XTDXu z7S%;NvK_@oS6;Q`zMy#1?B|t8RVbO81DCP8r#dd zotU#Pv$M7}W8sc+Pp|1Pqn(27IPN;AWGC~H?h4+Odrz7U#`Mv<^m{C&GmLMY<#Sbe z0DG|>@QL)qZC~2pTvgROEn6ahXTp5vY!#{9HoW3w5&Qg#FS9#PxEDV~ zb(kC2;}vMn%Rb6O;Iw<)N9n?Ivf5=#>5g*8jDh9s+Ij8Mmj(-}=Vz(unBe^`-VCvO zy7KRPW()U~jW1q4OFl~_z5Rkd5;?st`^UAxjD`EHVq*KcCA4F*vs0$`ttU|L2-XGd zolx$^_PX^xMy~4y#JlhA-CBb|bC!cul4M56_T>!uAFtNToy}j<-6xt|^09Mu`S8A1 zH{Y||8TDt}pz(U8}_H{rm+w^uN-*xCs`7tE7kB#&iKI6dH zz}APegk~bzM?qz_FhB?c~N}S8=o;J6`(?*q*;=06X4H=Mz=T zc{uZc`z#V=_;@LDAkppGE+D+FdzkK%vt6F1xD~=()^Yy^h72VJg74A#3U!t3D0h|V zI(eO$ydpuK_0APd{WCf5Wow4-miQ!f*@K+OlZ3y7H%}Q?pkKG zPvyr1)manytD<FpO4yDr_29t@^{d!r+BuR?p&fYiWg z@8iVqy^?Bpw`1fH+3tKtxznUO-)$bJ(w(nY!*;(lZZK$?zFA$*6CjsA9_|h~R)yz< z<5d!8mdtz~KCd0FN;Js#KzZ|#YdIf2cjLE*0}^G_aMv)gZk>!78fU4c1eq9d+B=CQ zBSUhOny@{mcq_MkW?AhvvzMqZhz7jhbn88b``+GgW^iA*`GqFRPzMs-j@^D?N2+q7 z`d~0Q+Z&X7a6M{3h7&`T0YX4dPP?ppp_{60RB*o&NY}@rrwk{?SnsLpPRYnpkn_$$ zIx(-4)PonVf4K5me4lyY{Sn8igwk9WtmRq4#2MTfI!>iQkL19ieJnf+LmPhZQF z-`?wP3Dno)UQ`MT_%5sFOI5H~cG}@N88Q&PL8$*upY&a2z4H&WuH27zXQkZl{r=_8IopptPv+_c z1^-VEj*sPQ+;dBkxo2Rvt5U;c_eBTc-tnYI(jTjqp#64TxkGpic$o>R|N5FbGcpk+ zTP9jezN|{gTswD5=H!FJ4~WAT^U>~mPbf8$M4+9u;#&@q9 z8F-g&Gqy})_Dr)a^YcgQ%aGTeAYGzlw(|zG^O$JoR#aE)@SOyAe{4aSN9(Qq7zF!t z-=ccw_>_^K8#Q|>-aDW1545J-_qwxz`wA6h65XE5_KQn~{C;g~y6aL);e`g`dsN+` z+;Q6T>_^Lxp-G_JwdoKWG<&SZ>Gi6zFv1JitGV-@ycv?-Q)fmtbIFqVqsw;UWPV9A zy^QY2bJcG9MA{IpK4* zCv|-t>@b~URMH>Q%awq-MSDL6-QHfc$D%%Eu1xFTWEH$)MT?xBz2UBjGP&P=(Wd+G z!B%^wHw$;gI>lscpy+@~cMG96c1&u>XrSEJy8WJ`9mv}brl%2PN6Tx#_M-KkDtOpV zmdqU3K3BR^r*b3$Uf3=} z3iYyZXOaDqOp!0s;qi2tdIcG#!iCqUc5B*6j)Co~+1IGvvXWprwYnB{QnG8uivjTI z!-@d-SnWiP_nuqt=-HX1%iRC{-#$tbWiI|KH9uac&KFvPy-Bz$+J)+x*DmY)e$-BK zlG>5M9rwhMAxyao+y&;N5baFTimIIh)&%m!#P|FTKJ51Mt~YSxX#dww8gH+d?>?`r z%P)sYcktdAeATp^_RM#ge)scLY6GXOEZmFA9rW97Z*A+=JFdHC14wS#x2w%4NGobD7gx(^w?oAfzre$7r+Z#R=Jxg#uCck|# zqA*-FSpv!e; zojW)D0^Y9;7423o@nmYa-zN+5uVT29D1&fc2<1*LZpKt7Dtfr1$(p)h80($0hAf;*41`^QaT{@P(3GJQ?Dx^8V<b>g`yBmVFHc|s9*d@8J<43?{rZj#T+bbxVfW+ujn}l~8`Pp~N3(avIvLN?toF35 zZ<^H((gA&oV^n{pE;JBJ-n31VX*S)-i@f&43!QVKIwMnNVGdLCuW^q@zy<80?B_1uqBzxgSN zD|7W_9)384?w4D=6BXWt@6Uea&-e$dTA{!td}hQHMZDHB@TKh-E7KjQCuo;oE+@#W z+A9e>c9ZQ{jR74qg5RaLOpuwr>|+er?M1Yg<@j0uf|FHI@4I$K(Qs`rZKh0O$}F00 zr;d)meQP$tosy7Td!69DgKo!+>D2Xlp9C2h`?+!_Mj)O6OD0)SP0Ui?X@$JVM7NJP zN;EuOv2bpVpMY za9+Pxc#3h!5!6z?kFcf@~B@@F(b@>MS2lLOV< zd`Vs+;bYz&4fqrl2L`+|!E_R2{99Dn>q}&Nwak?}O=B|8odlVQb04#OcCc=9o2+); z2H-T(|DH3ZK>q9#|YuA{9`aZ5oC`Vp9*&OZxOYsphgSDsbr-nfxue|c zSu?fl$dOliALkj7Y0^w+c2a0kwvQ+RIfwY6bf9`PSLOa#s)$|FDq;f#I6>6j`(F)Y z;pY3!a7pn_{`*i9XmST0i>6+rfW}EGuM)!V+lgxF7&SPbJ2IziADh3fV-4(Nwo|Je zx=*a!jn~sB$S~O|(d1{V{m7GKS)4y~F)1|m$$}FVej>chrtXSca*zA z-JNzd-aFb1>^f1wJk}%Kftn?&HBU zr>Wb8Oqr{T6t3KXdvlbzuE(glPI6>q2+58i<5P|6ov>txAp6Gc)v#qY1M8@FocA;% zl7f*jkTc^@N57}?Jwn+&Bn9&P<3Qp5O(xtAKb&(s-hE=XcNoy6M}YONt#q&k{UtLJ zyf3o>zjG?!Qw2{JJRh>kqF#(MP;ofruJQn<`+=R!a(czTv9+ZY0brI~ku(^~VV;c?E z?g4VnO=aY<39jS0x5|&1K0yYevj)=b5@h%({XO>5n_L@Vdj&;WArBAc5BG;xTC-N9qrAUSFICgt~=fTdtzVa)4%;6nKFxN%5WJIp8KS3yL#*E3Uw_h z1KMj`cg;?trGau+#op5axNr1`+PNxC5zne;hpJdJOo(>_JF}+ATuaj1=jOVbHS^}} z+c#f-a7fADdDERj1ZZNa*|iew?JLN<^S0{(fQ!OBlGbfQ!0PhL zvT?6N*fKvp9c)b|+&||u)oVd2+jk#bT{yU-+@}=o(#Vprk@CLjJ*oAA?ft5kAipYr z@40XX?jhb4>7m}0?(#Yc5F`#fIqzBSi~$~V#xHA{SB2m5WgUly(hHY$%=u#`1+{zX zSnU8FA8P58{nmm%01}5K9O|4|7lcl=kg`)OkFTr z2G6|-?$S$9$#n(%dXW9}qg2n6adX{f8c`JP(xp}LEpXq+rMm=qGxYS6CKvBOJ+BvO zlLWf`V(3o1=EsXjh}<+gh5+OWaCSlbE{ONUcg*)o1bDOIk?@?eN*5nqo%r;$H7)?z z-(A}>$=;WtUl;9tbi4Gi`7s`=KJ^vl+Il+Tu%pjOaF6%rRvRq&_>@yrdJBxVB|lSh zV9WeCp>!t=a)C2tQ0@nNPp4JxQEdR_u1&NuRl>L>HKV(gZr3M?Re5@0%WSxEztNNK z;{DWo@2ikUy(f2hln+*6`+5hqOIK6o6WBgqx}PLyKOFJXg`~^~-9ww(n1GzENBaJf zoULNf1mK4U&%ZOgBjPpwM?Q9n(0oZSuY{K-c;9=l)q(1^?1y0YteCOMb{#xAy$b3E z^6+RX0pC;LCqQqn*|FO7IlF3SDDj*Zt+3tx56XdZcja$umyGJIRn^ zofEpl_KS$4ns|TBS?b*5;p0a`Qf7!6$-8XRL)O?1BcmAEjea;hyz=_R1)`lpRiS(2!+7(pAlyc{o=A8Zs?p{9 zCg%HP0Q}Wc3D1{KsS$64$ElHKLf+xtH?T_!uJ`Q;)O+IN_%s=&uanv`I`o|QLH1s9 zj0)^qp#AKs9jWefp2j|@&E8&}L+~Qtk?x-<-S2EokOuiGu1(Df{VwK#YO^hK7Ttay z<(^7+eXwN=>7AsQOs3gAM7XPNuUr|FyR^{kq27t=RpEBk9^xIY$7!n1HmT$OBF%4~ ze=Z{H3ya5p{Bn3r=^o4`6zSc1$r-pWO?T2Qx`Rt(z5{rb@G0TRmBgn(#D|bSey|ym z-N>Fd>m8%FP+ZWixRx-i>n0QJfphllinX8dQdEBuyeIjNww>C5$zg2|FmK`BW4fz! zZwvPo(jfm{KTYM|^r9*E1C;v&r>Pk3LiixN@VryMAvH`H<#@-)P6e4f1n2(9;H~Dl zn|iMXlHJ3T8Kd9F_0LtqrXif{%ws3LyD~$~l=-d4<3IbMYL{dg8Er6qdiN5U?|ASM5dK)cW-T!O)t_F~A%Co%dqQ>ry&LWQ5bc6|w|l=%a9qjAgf7U3S;)(pNV&dN;pCxf|92J3+BXM?0zSF(KX)M~3fJy%eM!XI}Z? z^~uTT#nI7klk^Y04uR4g>s?lWJ=Qv?N|%s@?xc6SMt5muzVn^-CDiaod%1{5#(($9 zguKE%>=@&D+H{EMsS6W^OrX6dLo``?0C>cT7HUl`&eAs!VUlvlVb+WS>ca@!-Dy}zo{su=B9G175m;5#J- ze5u3vS?y`+W6ToFH-)5AM49j`30^ntuGi>(t!0Y)%jDbCyzamP)|T06gnKz$vr}_G zhmh{7+ev>^uoGqBe(J@jgcsc|(Zh3>fw}IxgLN5ns@D*UO)01**1O?w&m;8w$?NZr zE;Z!IcK_0fyLX-8sPiykx~!|E&Mx0&u9^?_JMPS7i$~Hcz)N?;AAj|o%6M<5QNjH# zSa&~0yNPy!BUD>~c4)5azy^!ks{|tKA+|!Xm3(XHHPhK=)n+^;OmF8>_ODE`!58*lsHa`-p`1 z9%LVpI1|RqNLS@_86R$3`)pJIdkFfkzmb|=S6-i7cEmqCE&r>b>5tweoZ1d{_2WgI z8`r(PW3svgm&~0(F{y~x7%Ag-MaB!`y(#1WpS<(&iR-%Zc-HBvX`sVo0K+5gz(TQU zOmQ41Yp?K-#Z8ukn)+Uu^>RTX0_N2_9`%m_d3TT#cd+TZq+!Jd`L#J)8OVaei# z79-sn)s@lR`|{h3L1X6kZ@xLI;r=I8%3R{RsR~o>UBUf~2M@%c!v?6=gYOdVBcUC` zwB19+6c4CYvSqx*P(HHS;~2@7rLeB^-P0(a2KQ6>C{cX??w?4=cdszwRqc)-pH%^4 zn*|~pGe`7bJtuD*)WP?8%J-`r9m)7Ebo?P8|6d?G5dR!-7uDOoMDPJ78ZWGZly0|z z87@@zD4e5d8sh~^V_5AXe5u?s!+m_kt`FtHkKwp;sQ=l9uH?Q9={_3U-~G+EKTN_Y z?us2M_tVvzFID3%;ZCw+7(64)-?ZdoJ=K||glyIUlNFF3og6SgA_^JIR^NCqd)l<(b+ zbbp@c-W-kY@4n9}NEhz;v#FO^xetN+xWZk^y^Ur5{%bJb z_66ECyLKnlO}kf_a*sN9@!dFHo)+2W#8vsCCJsgA3`IPPWjc39QSN0tyJ`iLI%Fp3 z?j}1Ll0npq@VvyI(v@tnmL}a?ee0^n{X)pEF3dXF1L}SomBGpw43=ViI|I8wF3)}Z zH!O{gb~JIlsCq20UXR&xh=%5I{-lO0_mJ+0-@Q8m-G6^OZluJ`fow< z*+^1-gqYQVGKBez3Lv9OCUW>u1FqRqR#=2~&y;(!pQ&jM^`1qKXy=e6u2Z#FoJIg?vd1kE$NJJ0@ILaQ!y zfXql#NB)c3q%D5d;-WF4h$gFtm@HyE$I@aaw_{<;@~dSu|P1?2_zvnh80{`6%3>KQW(O7_%rffrT$h|Z=E(itJ( z<-Y%7V*BpR1on229g_ldr@78f`R;~Hq|6u_D;pwO9MFcnhGPV@qr-;5Tub&?jUKlP zgy-sA8-;$X=Cc~C>o;nbOLxS^b=1t%v;F$}VEa!@ME-25{zrQ$>)Zz(P<5_@Zr9sY z!f+erO5wvWNpwbN_V(`~*$wd5)98b0AUTu~IA>Ng+<%63-}4=+&E|kF!|qFx9yRam zik@tlz}L2CwLm+&O)7QIl{*I(&-{Yq z`|0XjIPEfI=&n~G+h?p-SSzd4<;6(H^J0}+%LX*`GK1_RqMf20S&Q$M2(PFyO>Pf4 zh`mwpy7>8Vju)%{Fmv6Z-EYI1sjq?jk8i>DzaW45>AUZK`d`!Sdi~O+R_=YcLxuyu ziIWi(G<7o1i&yHQlkhqOQg6~@D|P#DzDL59k#e_at*kUnxg)9oysBnmrZIz_M>{_? z(i;aaeP@@3ZvyT|L!kYs;65zgI6b^#6*CHHb|wj~B||q>rQ4<4IjsF*{ud?RaX%GA zw={!YvfUuB_i&&Y*adX0!e-CI(Oy#@BhfxowGT)8XwlGWMB_%wGrzn;U*)a-#p*VUcYpSE%%*xh6%JzWN%JQt*_tMzOlKv zeq;T{6aWhP3hz7u5>3LLom^++hd;J$A+i@(H@O~3k&Zd@W6&|QLb;oGS9&Xt5p$Yz zE9+fTPbPfk&73>jk0zh*TRcHbbPs%UiY|XWb_Q@=m1bu;-x1`yc^4h~?msaPdwAzuJN4DCr;#80K(aPFO1ufDRH0DlXAG0Di z+Vxq@k7Y)ES?i8SaR2Vbf4@)hUffAt`TQT>{_ylKhIT0T7tf!6^Ys^BeA!W{%%z4q zo?)VDC)x4O+2-b+Mdu@|$#>!1-=@bKsZ2B}cYh%VyBjiX<2p8q0`H#0`ZOzL*i5pg zQJyxrdGh73CATIH_#m~pIj-Ag^YaxVZ( zB#+^%-`1DQ&qn#F67r3_9`f;bFFyE_@Gi8&ZT}Wv{|ghs{RQCu9N+nCuZNn}OF;Mg zS(I=`nY*Jsk-f8ha?(9vpkixp4}f2v3cSzS;q4Oc)b3vYn4Kmw(=TXOeasTFL^}r6 zwpVFTR3v-V%9VT2U5VyB4Tbeiu=5J%obKffRh~Z3IWM@2@00DnKiG9+hCu(hK3|jl zk~!=)=|`m7Wyzp(#|?`kuev>RcVX7JPI*qFogLW@QwB?Zn7{E_i^|4WwK&x&_psSV zt&ow`u8Np(LnVyT<*}6h&M)Z8x}ZI0i{dkFG|G%AqM?cz*X}Pq`0(?M74SXCetqL} zp#49e2HBG-^E|N~bO#bqUeE^MF9FyOm>z?cJK(;s@MdCr6J*ERhX8gQZ+m>0;u!JP z-k#$fbnmJL2R*zB1#_D!-rozZByn9@Idj>}6OuP~m zkhi5u*~50nl#@MXiuR>Urw7g!U6qeLv{4zrTNo*trM!zHZ{(j&3L8CEP=~3-ALsQQPLoEU_Ut zR?#Tf(ODA1q{$w^CHY;dAWY1wRnnkMFKsUugpEII8@x zcyu0wC*G5IUjg2&2ofz9?rfCo&UYmN-xk=xa#}HZ^EG?Lk#pQcCF`3e+>yC*?{QSs z4EB=neW-T}%H!IgCnLzqo8i$i7XWvC@u+(^iPC-7-?_JDWM^VU#7nua$$BB%Go*|B zQtICO(@id~uKnJ5wlEXN48#eLSm=!QzU5wVTRe)&CaSYbsY|(!T_9t1jb_WRy_9fo zj9lC@_BR_fwd_MHaGHIbq`$DmJ2o~I#U~h{SP-WAlGESU$t1cdy_m5yjyLI^PN+Em@fw{*c|LR z%}eF30-4ds&Lq^MaXp?pBdb03LuzGosoctmX^7<7Hiq!OJZq9&#>|%k)E9xavoDe#c>*t_uHrecFr7HY%5KS6(C=D?xi=AxAMFh)w=7fNKLjx zTs+*5I3JxJPHM6H8fhL_7us<>sP2gt?mA~%ORU=>zz(QeatQmq+qs&;z3nyZXd2pN zy?0?=K6aiH6z;XT6u|TwfjX@RJ5b@w?>A1l}p$ z5&k%8ni-VsnJGiID;mF>UYa$)cU}?OPm+o5F1kGQed3+czSI4_H^0~f+a=rU08eYi zv^!E{pGj!f>rzQ}W<-0bUn;Y*6lLvJ7=xvyz|IibO}#TsxeuXxPwV`}d%c(t8QImy z^;ZRV#}pDV&S(}uTZH>a@@^) zX-9bsnx$O;vN4d{?D&LO&wZInO8q>-@s1?bCDvP`*)zl?k-32e;vyNbq=L2)TP(5m zOAIcNgf(|czo@jY`^14k{G)TBYiPF8@0Tybnwg-xFViUznE`tcDo~-ME+xFcNgvG3eud50qw3>ib;kHR+#vr zB@E(v6?ah4T8{SS3bL=g zd7f7NT6Q_^&U8OwAn0DvfytV3G^&@yj|h407={8qAiCjOq-{2Aseu!_H(4wh;A5eU zKF=#H8$OrcOrftRIYd3=W}ohlzoB|3;2rH$?cbQ)9)3H7yZ!*J@Egs7rw8A;IN6@i zUSpy|$nPF>x~KD}J^Z6}It8|mL>SV2g?CMJ|`BD~>^(qm{Duh1Wv4r$VKubHwhf3K~?e*G!B zscLwqdQW^;U=8N$R%#gT`YYz<5H7T6(OigxC)zuw-3;vo;PJ+QDcVij-BH=Tm9+Z} z&^@HPZlvl2ccn+01Myy=4<0uF>5c}@Gd-$SQtMU{$+aUsgL{GaN~y*jdU;RP0gsaQ z(xPdpooF?iyRo+u|z0Q$%*PT&eo>Nf0j3|E`aM}^U_eJ&;8Q;&jKv)r&zi3lt zjR*U>PzTD9z6I0Sz->Oh%1yyP{^qf-f&G8tw=?UWjZL3S)1#RO;m=3I8{0?m(4PSB zdmn$6?xl|Y|CEF7QxzC4;ckWuwR<@3S%g}L6_eHkI7Z@q$=IG3$S8?*1m?4-k1En( zE~*!IR<#&bAmeBc@y?~>JFw0x7;7RhXANnn&$PCf8W*)zW|uOhozJCa&jo+}u_j&C zH$`_Znvr@}fcX5#Eg376QEHKI(;m@kIpOD*yA<&+&-VS{q)v3d_u0;A_izl|=C*sF zU8W4V&d$-ddMuS_r@?-mqrV(=n%$yhtwL9}g77Of%Du`qMQNm7)8xK;uTsQq)yV!J zxR3uPreWVJ;2z%lWZ*qX_jTS=m15_>{)d9{wP;6^Z13+#aW~r0Q=1Fr&JF%x;=LdJ3i@nAoLi>1>$|1hC6_5=_?>Tbi0F{D;hM2oam{C&5jny<#={XjG@*E^#Nao zU^m%bXSa)G);2Pjmi&!v4Qg#6tvymosM};lP_E-8^h=iqA!mlC5qxY;OxQ7BJK8sM zyWP7$FXgU<6F(7tW|k+aE)wybvl{LluzjS;hn<}dcKE}i!=1*=&!s!IhI3}A+$(q3 zO~Tt6Fpn-jro{po3Uw@+OyHf%)7YB0B=t3*{bsm-F6M>Veg2Y9!_U$vG)^ z@%>~1;2!0WhIS9Fbzn>#*>5T(+u366k{wXTfJG?xIY57LZVrG?=Mya8`PDO^{k{r> zQ~a7^|1l6g2Xaw(?>tM7FHL*X-Bfa&fH(U^Wap(!xVyPtsCEhVF`Ran?(AYbr#{)y zY9fpkw1Uops79rbUaR5jZFhaC^w??JaIasR{aE=61MlMd7ayC1C+X37k!Tm&Yyasg z+V zc4&BP9Pezpm1=mWSjUV+_|%kgALM&4pMvg~1M*yv^u=2|+BUu04Zimb@y)4oSMG{W zKK*m;?>xHvc;AwA&$vEjgjk0_N7#^Z=gB9Ys2v# z3xqc6jr@|<+Nejp}cL(r(k#Ik%h5KYYw#p}&?6nJ zca!a1J3nblf0r7*@AseLK6kdaiF2mAFWi&k)=7C)KXQ=iE~;y%A{i1K!W<2Aw)U2t z6cf{Q11$lbXh(O#*Q6q&ciDzewE$%;<~gtzP1kFFm6}iGI#=P}=V-I2+Eajb>y zQ4pUo{_W{R`LuX^91;w=heG8x`>QgSamuHZ(Y0+-ar1x#?jV{~~Je^>yc<`QT-2reto9dYbR6BxL zcb6U0G=>4PM*!(A+zEI#E}Ky8h3C$!t%@w^F73`S2YfG$GG{JKxyy4O8mIf0U%D@Y z$)Yt!&)U%E_%1VQ9eu{9^k2}DF~g1)Xh)0CW*JNHy;i_ex9i!Dks_J$=Sla@{Ii9* zB{SI_>~UaByyZHq_h{(MhNL>z`At;63|e!P;|_8w8V>db1|r=o7YcS#9Z5N9xNnN= zj(5+i8Y28uBgcD6H2d)4!KlY4vS%b?Aq5sFD1O zyW&z7&d8hFG3mZ23tdp>x(@6dFp}b&QWXqm`t01zk?O&CE|5fgq1=IXkDGGf$A9*t zjD0lG{pBs0`Pn6}jX}y`ZwJGF-iUEm?#&=O6})FN_%6#Gh~}O%w^|$75yU&z66^?D zHSqxl#ua7x4dU9{jRK|XA>)-&*RL_w*FV~$iGEQbUj}feBg5{uQp=bI*O3T2NTv$m zj;Q3cbM|cZ4H*mSb_~r{soYDvS5onL!MjZ&{R$g{K(~3N+wQ}?GhDg<`9eH*S?`k} z-4mzlmAm=rxpGH<>(-3zb14b?pgAW9di0F!48<}#8X3=LoCJ8GUC(}u75{!dbnl!d zyPdLKehdlkATL!r#X6EWpC-y(#AC%7yk=ryh70)3NEe&fClWYn0`kHLVE=_sJ;QD9V<4k-6+4819byzt&*FRd8@y|86^npHL9%O>G|!ODGty_v0t z_a)th?Tp|;y9s+GEp)B$6D)Tm&e1ti#V5qek0~s7V%?`%wB>MUcnA#uUp&|Mdg$JL zb~jlv=Cm8bmt?JTj!BKZ!Bzp*+_d}>F&`#;gZXw|;oi`QDU2D;k<%o&l)EH5M^SxZ zMZBDjKGEObM0}Jbu95PkuYO7JF1X*5D|6=9+IrBBt*zq!uHSod&rEmE8T1;oPeznc>Zgi-Eho zH^JV_R!DatTU3_;<7nqLJ|)m?0MiZSpnKYcXb-Mqw5{BBj1uh}Vj|%&Ag#P?VU-I0 zENoY7Io)6CW!TSF*JfR*bMir@?4jYs^%fPn4~Wq0)bAvE=Cp?&W1w%wh3O_O7!&SX znrfe>z3z@XIS;NgG3P9APBz$YTr;XW(=GN=+xz1lMh`;1Px!{=3t8?j6#)CAM}P0f zqelRIT`{CrKI%=WWt}@TJEi-y^L#oqyT(?9#zcg2|CwmV#^AmjRL6j>F^@_M&*DXV z`6H{cX4nb$*QeYS&kirAFH=Z&5njAUb4w-}G0dCHsD~lTDb!UIW6GUcULrj-yQW|| z$5|%1&W7}33Ko)rzrS;OMzeAYbbl%7zP(DfJ!)j)y&F>Q(Int0)1}pc-YRSu1SZt9 z@G1r@xJS4V)1*by#K+EhO#Fcc*=~|uK8(+A%V`(X*(NvKh9TFS}I&jjDw=@7VX_wek0(KFM%)4h9_Xa~6ac6%h6ab9+N z9Ms-)jyu{}CsSpXJChf*Zl<1y&K7)+3n05Qoj`Z}9%RQ5JI$@hCp+yIKpRZ&8p%@} zTI{1Ujy*bWIpGQTOC#V_EF-vs?9TOv58wIion46VJMTb+KP0AW(f;1<0l1!G&mt|K z9K81kUlZJ|Tt+FsJx9A)?0!47%IR*7dqt{a5e1N(5sr0Ab}$}kaF^fCVLMhsY9jUC z4$-|Q^)B%)Tjq`PRp3(mV}9@GSErZrgqgi{O83ljA=!OJ)^lOt4zr!h0m<%cC(Jpr ztJpC%h#c=!?QHI~gXfO-S?gf?)MoL__LvWL7~RJt`}X{^yQ@SyljJtOJIiIqXl(hW z!3zxz?$9{!(Yy{)y4{$L9c4Q&%4_G!+!vk!=49tcvU8)msk}C^am~mciXB|XffJ;9 z!a1T3$23^QE3Wn#zq4cL3%*~w9DHX5kKn%b;2}``=p9h~{|*jr?cBPx^JM4N!NFJW zJQAlB{Dz_3{&Jfhdz%0}1pL8oDc%Y91BZL=xGNMC?W~chuvXa7zFDbEWoEmP-P{-g z9*AcT&s}WiB>m20s2EcF>@YDltr6Y)Jx$F7_h;v*z{~GVs(6=le~Tx~gc_$-7t}FF zYT-ENwYiY&QP7SHkuk-R;q!9jtd?mot&T|vzVp_&4$?c@KVw5}_xo8SvY$eH~XpY#3o|0e+3!Q!_J?hhV7vcCh#5e^FiBi6SL z?mU#qqJV6FM6{Fa>+3hBZcI&K;D4(AsKUva3Tww;i-6x>B}LH?gx?+Su^(0DJb_gc*&v!AF)1vYer7 z69#vYos!+bUUGdn;Klb0@2@wY+zsx@V1Z@_*!^zsfA6so@lO)ow@S9ZcW^8HjqvxG z0wkSy03rZyc>gWFg;Ge_GWEKhRWj3hEl0)lAlc!;SZ0R|V2N%}N2UVEXj1M4-?t^) zYma)@dzv)q$yI81IWr?E_oGigJ$hN?K7nO3vMb(l*WD$#?v!dJzmm1H;nB`y3OD)-D8?-cGG3HP(bR;@A9r+P#OWIsJ!Ty9qtbPHnI>7HikbGD^e zB3hiN(!JyWyg)<0k?c+lA7O3hx8r&%2f6Q>OnfDc=@KV22Rf}5TfFVK$HdObch}gR z>ywIhkiCPuEIHW62R!-icn9BKckqVlz2ifY`r$5Rc%rq}aiWSfuLS-E+S?#!FN$9`2X!r1!0d|Igm}|2B1HTfEPe z9xpf~x6U;4Oo|J!}M=|Yp=bx z7x$fUaT@IFcdRJmWs$-X`87g?3#{+%@t| zZMzw@s(5ad%Kh$wz+LxMj~7e2f5QDid!JL0m#(=Ip{ufT9Sg~F24}@u;l;#Dx{Hd@ z1$$1UyBzlqE#0Nqzy2@O*hM@+fCnT3`HugaWwYP39xI{UZ;%GZ(_zp07ZJZ>`-Ned zhK$U2$aN%|ah;8(j9)m`#qmxoDo$iNXEwjQY-AVO@f*K?VX}+w2+8+`@y>^s_MX1L zEzd9AJy+3YyWirNKi-}`9c?Gw#da7ns9)z9dbc9he2)RB_rVaVe+0{&+YjLDbnX&c zKs}RnkhI-vZcLt_hYROAhP;ys$aChsR5CrYvL4DEL7;o?C*H9r(Eg^Ryl1Uhe^WEy zkEq3)&tqPs4+c4AV*^rj9n1vTuZSlZM#$x?oTM(FDl&u zcSAeSZT$W|Pf(y(SCyRw76iQWJ@77_u2oEU*Ro2EQ>j;aC0uy#UgBbbt8``z^)<;( z4PV=@m!IQMp<~FXT&lBOcGdp9`|KZr?DA)X_ol_WnI}(QZ2x$8vPHJLUDW5F5t@D< zjP6fHN%!qB+pBJ(9mB>gq=!+v8rbJXES4eMCkppGa|zF*+Q3yeO&Jx-AZfT;w?sg& zM`=43RV1R4a<8IQY=v^?s@O`5vufUpJFE3$Rx84NMtlCst3Usbg}*G+E!7))=DPQi z$Yn^Alip=Wt1I~$5UzK?Z+YrmJJpTzg#9X#Jg@a$uWApuk>15`9>c~xJHw_m9-n@C zc6M|WWX~$Q+F7jmH~Pf8447yHdyHA-*d^I%%)|;G^|D72Ji`Th7ROx2grsEW>*P7F zF>0H~NwtAEO1(o<4hrlM8ppJLa@vh;|8g2Khc# z?iIVT@MLl<<4q0lK8W+Gdav61-|sIV-2ZfTyhwDHbhjq4F3&tm6%j#hVq4O@R@g{x zJK2#80-U1_+Figd#c>R1%r$VHE8b4U@dh6P?guDu#Jyu2l4Fm&+AqAnpANur{cD{F zWPUKjVaRmsf|}i5hTG1eGmeU?z0#$&eYC4Ac=T3LuLs|kWyfT+YOZ^k zmj&(N$LP;u26%7Un=x#U4nNro**@WmcuL^ek(n%BxPCZtwwr7R*l%sHBQsWm?)>#p zPctxyKiO^P7Vc3glbYS_b<7p!=p?(8yZh^zyy6R(tPk$XmI=N~y~~{u?i1*mOLIm` zGy7FX`7+sGF}x`!i! z509O8<2ccNy=$Yt26FR)JGSFO{yKp!ubmU;Fk#YluPzzc6+*jCVwnNopMEX8HwgFL zr-!HUFY+(tz5j+hfAeW~XmqD3Guk5CA;xcoYzNq-+*ilieUoMH{lTVN?mZhy;T{9` z_SH5rm?+%68{R29G_YetrZ3Y8)y^rEdzE}w=4LYz?vtZyohhd4p;a4gm3fr;5fETjp-4TzDG`2WA?qgXwgU@4|o`r-v;%JeiI}2udM7eN|7y~=V+%vW_Mfkk#ty$vI-r2yB zk+|qldjr#}A;kGgBHZ6yiDtbh}aqwhibNUnZq-OUf>($&uluW3C+OnKa&GB)2o!V%5qE1;o10ei_Lw*-k^| z+DzjZ;nsUY;ywKIVQzdgS-AIypMLc}W=QUxzMw@P$8VrIhNAuRRPHf}?pE|(nYj`u zFNHgrrOF?<4777!U!uM9ZdB2n>FK$np>yGUuisE*I>@!b40}w9@-&aGw>&eu-Vg@& zz4x-V0l3qxKU*m2KCD1@7v?<~Cs_74Aq~VvYFqj%_VxxRoBfsE21kD#VSq;RW1jxY zF!`(bBJ*?mScrBcT^XER^I^(9dH&dtN^$?}NNAq|@9E7L-8*c|PV}mB)t+D{`@1I9 zV+$}0L_F3)dloth?44H7n?t%W7}R2J#ad{;tmTh%WX@)dcKx81cyH|X0@41f!oB_W z?(f#S2C&yJQ2s*UzP=Hrj7#@W?i@t-*xhlx2;rTwy~gzn@;&_+FPBMKQc&ieojd!jiCq+0joQnpyW6$3i)ii!fxL@Q}?Azl-lJ0%d9aP-_-Z#kk zG)F*MBvDIbV+m$6u#Tz6PazRL3f*fa#PeGDIVUCGChGOlOXS~LdEcc18`7F%)s+AK488VlR z?2_$I^pkcTc>lUFymPb5j7i#l#o+$cSAV#*VQ_z9aHr#*!X2`mSVt4uSFJJzv-A7c zz@BzHMm@NMW_lg1%5$)>QqW{4+DY~l@WJ&uF}k#OG|rtLu1)A#C3) zK|b-ix2ms~l5K#TM-5LK;0@QH+RA&%3AEptla zbbb8L5(qEpF69osbI8zIVKgV#CEc}gyEbn}0P#p`lDR0Ajy1E~pNy;AYX^)S9y;RB<;&P^9$@=#fyrNi1kzpmJ7VaBSO?IN zblK4;C2KK6d4P^y*r`{WgR_j?m)U< zQl_U`*K&Y{bhwM_Y9hS(?~K-w6g*b~`oBCxyHxJje_&DJ&Un30(!IM*sykXaA$;wf z(Tj#*9btI4WMD?GM;B>hZ@IT@AF4->onv% z_r)oiF*ACXCE#PkcEw&r*K;{n%ggJ__5`ysPb@;~vE!wi==Mf@jIYHPgWedHiSe6p z&QZ^Q68Kez_fvC|)I%IFc7ihvPSN~m10WvTTyy{H>Gqd75!=sA_n)5z-8<&0gYiYu zfg#i}W^FJPJlW3Vdu(F6jZ*5&7-}``Tx8wMrM!iz@B&EHKh7KP`S}0*;m%=_thY+8 zH*fEL@$s#-^{T&Xn<_m%jQgp#SpLX6s#w&~PStK%BYXjN4gq!~!>eShRRQ+g1yZJr z7s_~NknwGF3{dU^>j`%ey~Mi@I%PHR{+=ksJK=sb1M^&PzqsZStQsU$8t_( zEO+#t>Z$lZ1YSg9wC1~Pv2kS!d{G`RZ5adJ;X044!&l=9#9t1$^AwtcAN+(d#pxb6 ze=>S_aL6-)r`gs0>DfhY&wibB2i~h9$!@%5_BtjkeZO{Q3U3%ERXBzGGkqAe?m*9u^62;V$Dp}?JMmTD`ni2S?~1e%3y!? zgu6ePYSv82_TI+oy7*p%i*`=S^&*+vzFk|llkuWD8P63X$PU#$fOba?thZGPnNdx$ z-34;FGH=R5JQTt^UU$L+?$bQQG=I43lPZa9Ub@4Wp(Z7QImX1$YGN$E_iL8*3z7Lo ze+H-c8KDH~WBlEs$dr^K{+F2=MaIg9h z?#B-IUBZ1W8kKvGZj3_5F6nlvLJu!F*`?gkkeD%zv7Qr$&44^J4H;VPHeemgI^65Z zUDqm<(OxszMff&%cQ3t}VEgQzV$#Ph_+z1Yy34RQO~*meiV2O0=Bo3(u@b?H>uBgx zM#Uci=tMr@eth`jjT2*g9J+vS0*k&y5MHN~z0YgC;7>vR5QKqML89Y_5yz^7&SVSL zM^#J~v}029H^Xb;q>hX!6rCo%bQRb>G`90EQ4Pj|(Y@W`|I+O+W!Ad`3U|RBlHG2m z>d~d1z^;@lBd!PA#dnp;R4S5@E0cKVv#1;})r9+?LW5){+A{}_2=^p;vB*ZGi|DD| zb5##h>sl)b_m5_CrV>APVYrL#%}aNqI}330;N{Jg%@$&l+2L5^iX~&yTAB7${L+U%3{0}O+CZGuQneZ2JEAz9Y?g&Zq&u7$_7x6Y z9}VM4a*q6uvB9r&7nNR1Jdi49M!0vGj@dd^RP0v-?PU9rsnVunTU9g7N8jQ(*)HL3 zaQ`ylZjv3NlzZ?!j>29Q)JxgU##oM-G|#hAU7I-Hqk-obm=y*oceVi;ZxbPpRo#}6 zdY|OH`&1?B1MPK#MqsBOlMP9@znx|~fb+)(ggYN+YF@gZP?HYGVrG&(=66Fz;b0|x zY_~QC!Sexf6G5``m$N9j58^rb89J82qT|VJ^hSpx_%4!IxjP*ub1PiJ2j5ReGpBoO zP-B)1cazbRNt(D6=s6MUIVQn#PhVTIQ?Xm4PAB1Qtgei1AG8*M?W%9}jn$hM@BUZO zA*vwVl<~tQStfQP;m%5#M7!|5jz+`1ggQIZnol~FqrzN`kLAF!zV~AqGH4ipcZJ#Q z7<{ti^i9BhpM65XyS(>IM69w+Q8+Voq5HfybT59fMWFjbKccb!V6gIF08$Sam^oVO zqqmrY2i6dnRxE8AJZKFtaA|<&7qtAto18Y$33kw*S75&>{uY`7oX_Cj;Gd4nY!}-- z^#35gGlch_XG{0TVY^pEw*-6_Nsf#4F>pph4NdSor$oFrT~Vn!*i*BwTovhVe^4ru zX+CJpECSuraR1`g$7>YsL;pRpzqjrU2UPBExNoq_j_ILimUyo#_vN(PbuYED!5Rji z4Cz$vDb`ymaQ8c@B)Sb~o@k|V7u~gzelM#dqZN4X)`h&=GE*M3H}`EJ%agNTEPydX zx`V>RJF}0BrL8dJ%r}vJ%*+^=TJh^Z`M!gH#eX%-)>{wyXafY`1=444Df$DTVE6mo z@gX{$clnR2FmiIA5*P2=GdE`7`X||q>((XJbIFCA7_vXgVQNh8i1jREXU9lKCPh4^ zs}OCmeL>=98Sjl6?tNCcrzz7NP`DHBKiHm-ow0JKa7ROWeLL2rCli_-Axnk}Dfdp7 z+C4=(#&l%Jcf-35gA*QqCx(0SVxmx1=O$m0=ejkPIQI&)hMe$^0yf;sGo{jw%XZxBQcfx%X8~!qCHSVd}Ckpq# zJF*b&RSNgmxE&p%o?C(wBd}M@!22LwcC3&Q?LxVO*V694Qur>wGe!6a70xK2+-Fqi zF1TO(lX7O7m+o78ecBLH8(<(Ix^}K~`}dZ|ggLzXg`pVUCyLLIpAf%(1>I z(LS%=evI1Ht4((q?$7b`((gZZ;ob@1PPm`=zF|5rbk$0XU?3HJ`J9l=Mc9)iH+F8PvVH`3Y>AT7Jp?(fz zGQeyM{&F9Q=CJ3;6&jcP6hKdJXFypm$k#%2zcxF%>(CF!xQH(0j+Hk@dkel17OYk$ z!Yk1|F1Q9nSm!kp4gC_M{hYe}_{hIAj*e$e_tT(zyD_vQzQWB^upMx}ox&Y) zkZ^abJK$?n|25&RWGvH^5#Z6rmV0Uw8ZwqubV9w2Ax~W5AihJiTS&Q!@0?T*IpMyl zhO}q$%|fp$SS~Yz9o+@@5BSNKZ;u0_32kR->CWyQdj+Gth_CS2S;9|(;SPrW5=K}3YNWqlZ{q+L{;#Cu4c=BJLGNpB zSpwr7bf3L+uiZhV52FH@DxI>ltQvf_cb&H!qQn{Jpi8)O%aPt_-%^a2Zq)91jl{d(H>dyoskPt z9nC^}``Wk}Tl=DAd3#88@9wgb=^@#fSPa@p_|kKasVI8SURKS>e;3*dPo^8neRpq~ zTF3_WA6P`XKfYoAi$f*j5A?wU4ijS2a+CeK|9|lrHv3}4DNSSQ1NcV#P5ki__W(T; zVIqIYnUD33jp#$HNO~b&4t^g!8Lu3~MBERl-A`sH-4A24hN@N~gPw*=$9tgN6gk%3 zvOD7ADuuc&0`uhh)rofNd~Dx-WlaCaFMs>nFZSK?b`C`|qI&~uAAU-WCKvqnOb<^p*ePouq>GnvWJ@$W$T?fWwXV)a^<3kIy_9+Eyqy^TY|ye$p!Ch5^?B|02~@&mf`l;FI5{=#(o-y*)7&#^Z481$U!4z#za+sXFAl!<4UPzhNo z_joLI;=`#*o`@~9chNfRmG1#*821X9ggPz?yIyRrhmIp25ea z6wc+qb1b7hqjDL+{X>89tZ8Fr3v|DKA9()2A>zBlch(e*|4d%vdx2mN>HcyKe{a3^RCJ%OZYSFv?(2R=2Zg)J+}kR1C)af= zRarzTcFj`laRfFd?kTgGk1iSMJC>?}jN*1=>UBUA!}di0`X zW`C-3nQt3^ib-*{D8|gZB4s@^Jvon9y$K0H%HO}obnC`~Y{%&N47m%+1NF&ylHP6i ztrrD{k$vV_r*ZmZZ1CZUc=WGCbaeq>8Uj$BmeS1ME}GyOp++kpE=W4Qkl-xqUv zSarU1$3LZ}+t)sJ!=0u~#5O7+^BJZ!ZShO6*T~LZ%68pKjo!)Za_poXBebV%N9Wik z-Uk&&c27Z_(HGoHvR9fl2=U4o1oM3PO;I*8?bcy)h5O52|K!o47&G&a#C(UCC*^M& z<>AcVyJv0J)ck!g{{A!C^k}3!0FUXNdYfl%%*@i4$$j0~kQOa8WUQ6StYEh#E?T@$ zUPZL4PzG$DHq4fpFWiYzIx}-BcyA+2wm-j1wj&BtrdA1=N2MYW+%2pJPiA6Rm5e02 z>~?JwX3dkgQrSDX<$#nsIL?t7ay{2VduhwmAz!KHU0CO!&J^D1#z)j;Ja-N=xKFdY zO!H4MiT$q|HfA8*AJLd;BJK$D6!V{f@|5z|2M?&^84&Xf8a6TPcs>2@vmsm?!2O$&QRdnRA@Yag6VTU*>1a$eEcN-P?M0 z>Hn}@f5A~Dq{Dqxk1ugp?;&rl7l^+t{hnmkVX2W7RXaM86_Dtb(PYW^kxNnk*!Ian zeoTK-wTuv7YI(FAG}p7LtqbdYf68N2n}3Q)@$yx(#>{`xm}!XaWf2Z34{M%~U+!!U z#*D{E%2Uw8qz}5I55aiQ{dDWv@r;TgAF5uaLIlIva3P-Cgt<(mtAaFBMwYuOA(QMeh99#EzS{`MGnTVPh9f57 zy{l98sxaPT=XNRg;5w&t+X3?|Z&$P>+I{FxfV+6EJFLZqGg_&322D}kS)JMLGWygE zKH2O>1luxZ7AbZD^0aGic2>Z6H{{WnyA<-sXUzM%_x=d!KBJqehhe(6(u-kWE(k8p z=ZYGgLo9^$tI76(-%J(Tr@N#2GRtM`yJc>IN2fEjXD-{@&->LoY+tjRscFinSSH{u zv=i$bdPoFDE)wwF_1kJm_D+iTDvs3CnM;5=jTt?b>XO}OHk$29G>euE3c>|G4zV~tl(L%LkYsLUuZpM0--HEgPUyrPD?Zl+Ez-AxAl^Ot}A zbO8El`-p6Nwuix#YnmLa~ulp9{v3ZWUqwx0`2nNMRFPNzEtc_cSp6ETF3=0 zclU~!g6<0^L-8ein!cS?s`@vO&c?<|= zy3nnjfUo)Myoz>J(cT&x?$^#2uW~~@s+~r*0G<`ztxASvGWO^a_LG@lxYvti!gI$0 zUAq0|81HrAzI+?4RtVYU;Y)r zscam|!bmNX_`IWfcLt{_siJWvKNimZZOlxq<0<2D%eD0YX8a?l`0(QacSv`qdr5Y3 z{ovrn!yiT-4ih>+xz_cJTM(Mow0p z5#8HqxA*T(WV>$e9I99*s@t*5hnEO;h8*{_+`F{f9qUp22(+hOH^N7WyYW4Rd#5Jc z2R7B*nCukp{kr2m9K&7FpIr2wd{v}RYMi-+`snRas2u%tH)MHRbdOCeD!-emGdZe(p`CqzH5x5<6}5+WR}714 znMtv)sZRG2@8Pv4-NkgSZE=AO2%3cZ%U6v`_lHG2H#&L?&T;U;l1GcAfgfRHLh1}PFq)q534Xg)+E zy?_3#z0Te&u1+0X%#Cfz-shfsp@mMS+#jp!?6Xf}yScS)(mg}_bE2JO@4W6HdbnOA z?K9x}bKw1xbbp4Ij&DET)+h743D>USW66|s$6t>r{W{?7+D9^F-d|Q`O#WomD-Tx5 zlr0$)K^oh=WoEvfS_{kF6g$&|`yFCkmmGI4rIwVtLEVy&w}3bA=+Pq>b)LnCYzmRv!5Wp-yz?>$?;xRRO@{Cq1+ws4tS56&`y#&%k3lo!2kYh zo%1qfW-3%P#29tPzKvnlX71vneJFZ1<TUI!h<0x3eB*E^E zd-RfFsQn`-AB5LRs`y@Tut)|$_1+TPGl&oUTrE9Ij+bv4$32slHuo|J43e zp1H(a^?owAR`08OI~Z@1iewlyoxDVtlks&jUT1PhxT~jcO>#XmVhD6Q56ubR4&^R> z%Xc3hU7vm_D|UsrpD)!K+}AD^;ZsyDqd1;;wL2G8XW5q7+TX`}W4isV88Z95=4R_w zy?(2`-6Y}3c=4Sgp6W&8Y^WV?k~GS+iIHIVswsw{V;j@1L*Sp_NK&LG|waMMB9xO?Y;WXVvs2ie&! zOpU@YHRQ)=DHZdOAmxGfkq_%oke$+U(pcs*c5W zgFB=n-Al5azpYR%`2?K{>faOa8{~Vhso3P`^ynFhS?nKd(}cqiJAT2|Z6A{n9G*k0JaRI$Chg-QEU8Af#~cJBlkWaqrF90iap za*st+Lfz93<)CoKh$TDZ)MGIf&+YSYF9h!*)A8M`4w9d}2<(ND zQ-XWH0ue4mSJ{_lqI;R1VNrF4>Hffk`&QS5`-iVi)8{>N#5Pr$PnKE+0o@QO}v zYZ%>sOmK%UV_CEdg<>AV5<`h`?L($aN2bio;{DB;crV5(k%1!DsBhV33;2fk{ZgLlusoxzK%+~t4PM8=I1Vzddcvf9n3+VGg|gQ;huZ$#YieX zr@caNPop~zscs{^S`5N{e^AkiD(@Ap#SR9OwcWX>I-_)dK*ycZ5wFSHuTHW*iz)c} z0s-%MHwiDoqX^#U{!DaN%MXV;j`aiD?aI;4%Yn{IsK3@BQ%1slmbE*oW&-b*MEg54 z+g}jvnI+TO8Tt$GZL-|!K)Q#Qx2t0q7g0%cy6p?BgLKcm?pZ@df&1B^dPMtuYW5&I zw=LNyNq6;tRJ2l=j90i*x65r0T_KX8QAkXPKhRW0qwVFEP;{DBk%bWQIbsf3SnJ&zzeViR<~nA86p1JRY*_3tN6cPidlTudd~`I`Kh!hPtU zLMHsz?d=43%uPQ0w0;tFSC{SQgu6v+lWY&fQ^DgFh*vbir^%i8o7L1=5bwhK$Y`h6 zeza!gkB`rZcDe1cWIkcJmy|n(%k@>0>>TdOq`c4B4`0%$df~XU2c&HFy0m*TV^}N` zbuu=WBcL9JJJIf}7u<^s;~D4+4n9Q2Bqd}agWVDVu-gNJ2jS0EV7lvzDz)p6_a;jB z|E!DdGsgBU-yHcY6YfI+uQD2jDR)TslmFa47hIk_+3)n4Wc#05nA(^e@0g30rw{R+ zBP6^;d~qFxyH-=L0o~o35#C2Cka>q?)J3kN%8?=3@7EfX?b&a?{Gbk6?&7;DAUQkN z&6x4fIx6OimB`GO%OB^5I5LHBuI4gQ?usJ!+p`B`?!m;3Q=na$ zqRnAPC7)g>rT}PEZpq{abu>)4+qmPp-9vRU zbY&#igYP;Io4b~L3zMIPO~A*gdbHVDCll#IfLF8<+6$0fXy-JV=N^`eQZE8C3j$qK zZ`(z#w>J^kj#7!~K3DOIs_G#p87zq8W~P~AJKz#RTf%)*z{7-ZwC%u;Ujg?IWw`%2 z!5wsGi0~%k+maTJ_XPNIH2BlpD1#lhn=;7h74Pp~Io`?l3q?CBWQL+0MKYg|?P@I3 zqAP$p^#)0FUj&XI{rOy|(#ZadOd{7BU@ z67$KWDR|iwYQ0p@$M6U>b66{$Is+%FSY{habrr;To2)X`1fWXD~#GPUx7seyNO_@yhuNp5=< zLVL(}%*;0VE?cG>lS1xeVc8|irQ8|aT&yz{!E}Xn>Rvytz&{^Uy`rk_zmtub+RXGo zY!{1DBZW)$g};Ta@F&=dE>|YOy%!r=nM8Xic;2=_b;-eMct*D`|78n#ri&!1B3T8R8vD ztlN!jkHPvF-Xp!RJ&QIkQXNCm9izpRa?gun^3rwr>se%2r$E{^up<@h=i1v}->JYq z7ow|nbPjLdX!lF8oki)koXUF6G1|iSf8Nvf)IWb9+)*l7Zdnilp7(YV@mgq=OXDuQ z_%6uLyo8r!v)yd?7oflHes9pm} z<<89ex$99xrxU~UQSxAHWUHp3*adczQ)u&t=%84+Q-SHuW!OqhcWqR?(e9UHJL?vG zIdvSHr_+hUSkV^#xxt;q@Q5FFUv?)2f^`QEZ1naK4ckljVQp0t!fdBrV{7PDQlV=xU-?jcho z*&}nUE;FVSve!Kx*gIw;O+DL*GN_T5K~&Am%&@(@foZHJHT&y( zd+C=2ggbi~FdXsC9PtlCc#3$W6CRVwC9^`BOv3A_8lXqW_&geZb$=7~qY8InedjlQ z(n0oC1m#&ZI7Q}+_znRNq<3-I=$g|`(e7M#u)~gV(S8xy)xHQjDH^p@EQ1K$E>}h; zFeR>gnR_h`#7>OIWfQ1Qz$59$s8mLKQf(sPv(UP!-;rc`STcupVG%;I(75a%Zgqi$(goYDZ^qctiJ5_oa&M*#@Su`oh2Qy2>Aaw$oO{_JsE` z;BzCstx`!&oQp_BLlVBKV)(Mp*)^Nk+MjgawU}hpkgM>&r|9BqFfz^~L%0u9>&Ks3 z#ro7+G5CmouhS#n4_<-qh?o8TZhseHqW#5-wZ*$%62=z5ZH>qDlkB6QT_^0VdzCwn zPPH2*S?>Jif;!V1{gUc_WGZe{?ylG|M0P|hp^EAf?|JxE)H6SZNXL_>;QrfcJ%04c zWS1KwzSCaEKnB<2l{$+aVhatt=a*~Uohs@Y|535&t{6?q~a!;^M5e zR3t~amyEZQna_wGBNaYs8P&6$=52?&gov82r;8BaY#v%e(1-*&rEU-3%# z4Dq=~qi7)=@KF+9_+aMyonq#6xrNsA)n-uL3CaXD9xfGxeiswJm2)279#?BO7w&t9 zAG0@QWM3u+{Nxq9_zu7$jNYp|0GJ;hja!0NzyGppZj6zAZ}gY#EejzVb+_El?M_wD zXkXxrR28IYc1ZVR%y>^3wj8kQ%#SG@yCl9p$WSWV8`~sV)^dU;={jSH@Ru7{VIwfRbx|qW15}YlMe1xCEcgkZts)rS18;i z-G6?+#|=?lSJ_Ve#=iZ!z1cfQ_guqoMn(|txbi44GQu~??Z@O|@;*F@64qNs-PSuI z*r4kMvV#8F29`@GHPWIanFN7JxU*)=zKtZqU-kU*7o++2g1D&*QMC!OPzXC z+E7u~M05@3 z!1&tQi{FSf#0$^tuPrSC`DA^@d7^#y)tPYLJ20>_MiMiFIlNG#X(I@D@qP03Gc4w` zc!{*wQBmjbknCD1@2?7=TKw9~)YjBc?zO;rD0h5Zw%aA!hjN{R4^jIlKZbM% z)q!{nz+JYCvRv<|L`bn`dy^~$c2b>AO#SZCqlbTmVE?{-{?)9Y7?S$Ca?@QEGn1$L z$&}LlfwR4y*G(8V)w{uTAbkro)2l(uzEKuK`3Ri|`&(=~`sM~E?C`tF4rB}(s z0NE+raaZSo2A%d=>|PpDB-7&TSjUWsOb^k%-Qs0{$Mma|yQ}tL<&K$R7uriy?;)M* zaAH;;E-t!Y&rV7{t^m~1-xZ2}88ed))2%$KZt7(F)2(uuj5-fo#r7*6+4u7g|9diI zS-EWze!(RCW+vf-?=s;ravQ!xc6so;Wwny>;l+6Eq(K&7x);9Cdzn8nsEg(3++m!5sGLA=-3~K^_qy;7lDlxngM>R9g@xNb^lT1somg*d^Ev1atb^+oyivKk z!OpaMLu3!Ms|6T!O{Um|c314p&H2^ErAL3gV_?r-&Cz_BicR#PkbuoEa%n+^z)`1$- z#F!IvhfYi$;mZsz1od2nMK9xf{DZl@8@gY(l$s0o4gGH&lkWIM@yS2CJen08>$G*D zgwHE!w$Gb1A#@^zcScFWyAOjT*D>h91l9?4*eqiD)r7v?W7qSGcUQZEF*La}&**>O z;Pl!wpj53)A5Fttx$Cwf-Hw4guiV+<*N@ecFH?(+OH}VR!j&=3C!p7cm&kB4_$bxHWMHq@m(kZ$Uks_%?$fcXxA%CKlH)NnIZNFyj&k|UK<@j@hg=!Joly5$84f-W>nwx}?(?nFF*Nzyh_A&UeLKbR!F6+G>Y>?X%B+|r!}B>X z)DN=GQR4@7OHf|Q-4L&a1GHt_Y-b`gAzEtx*zQuT(~z+da$R6oJpJ`dxqHZFFC^JB zy>1y`ZxZayLdA}wma^>+uCjn7|C;K5FAN6Lv1TM|W*YhpqzcHK?W#$?GH0J?AMsDE zqqpy1nY9PNn_vGr@qMcY#`kdGM@I^NB*GVQi)8E~9qfzFb;o)h6~q1Bx3yMx3{9@G znvo^G%=ha7_aDz%xu=M|sjDkzj{7pk0`BVJ&I?SpIlxZ2?t4<>W-%XRpXZfD9Ig~4 zGS2o^LOW(fpMy6lcSn0yi>E2tSqrd4^-QrB%LM!1MgzN~`-`hQu|wuc^~I2K-EU7v z1l@`E$;)CAGj&~uQ5d|>(=m!a^hiu2?HoIazt8%vy zp%ql9^{`_M?8LgNV>Vs3Kec??r|L;?SCo#%gV8wLWS12)M6r+Q%cy{*`t~yVT{2sy zyJ8R4%%sKpgOKfgRmo(+osRpJ{R4gczOOpJ%=%weDfz2Rnw||4@W%LrcootpT8{ZF zq}XY(L$HJE){gMYk)jgQ{o7ixxi*F-hu<>lt4DEkoy-~am7yyW%3WwzsSE(G9`1D{ z2KS_vl)GIvnDazC9vVryV;g=UD zJ3%JE%akc8cRfk8mt7fOLRH}-qHAPFGD5KT!E>Tr(I?#9YZux>vF8Pks$;)|6_ZQ% zwX4_CbD!0hnWBm>(0yHnffFl|d6~)fysOOggbHc6*=ZlC=%ivvcWL@L;ai$_F;b`5 z+UW}f-i*kF#4CsWX@wby@C#cHZI3faSh56;C1H zqXd#@k3qJpkBlA3!3%SwLY)RI+m!CWI>wo3?>pHA_D+ngU;htq7ur?Mo@;h_G0j#@ zRWW02G3-}R`=Vb6m42z#Q>RS4Z&18XLbh+PNG6xb zJLbM2KHt&0o4DTDeQgcIA=wG`6!(xB;43D44)>z}VvOylv~R}hRWR6@-EB?iU-ZGd z{fg|21?E}Huy54}(sG$(w+SNN%OJgnyLP4eXe7XwRJ$ZQ5?ChJIpoFkVaAZ@oCx)e zrBRWibN#qle>xUB1lR)yr_1E7kilAE#@lwZ!{pMd*VwM@B_5xo`0SKcv>{9mUO@e;=%RaZV%UMkbQ}g{R;#8%6Fxh5aQ*_?2J?9$R*YB44k>c zS$1Xo3?`vn${k?0N*SHLlt!XE(uKRqARX;g?pj6lUNSk}$#zb3+!NZ{{U~>Iv^&?g zFqn34*PqTkq;i*NKL>W1F}`|=ou^Az0CxE@r&n2fE_0=NUq;sB&pN*dlOCCPWgd!I7C*R%1uV`N{XWWRT|fpG3xW!kN2T^F_hk-lPa)kuBi^OjGe;)dzmyC2DVOkHx1Q3ZQS{EL0j)Dq z%;Aml9pgH{4zd>{`xoEYOK#T+=I`zU@W6Wj9)pMQk1vn{)9uUrKYQo@ z(^isYaWtz(%`KuwL z-{7P&Xzs`FTEPr2h8+!*Y*$AlXU zq%~!bo^o%h#GTD#QbQ&<0NXVhP%mFs(k{HSnw@B;2_v$9+U(8Tn!Y=0>=nVi3)vos zb~I#1E?eHqnWmUul?cz^ps>K%L^3fU2@9B5Y=B!zn!qnq0B z6F*+LkJ5rApnYX&Wo7rq^iR`2)N36E@$NAmgl7uy7)XnFiTH4>RVqGrh#NFQ|Y_VckRzL!w>1 z1vcC3#*bk-w6|xbooE-_iFRMMv*7XW#9%Kbeo1xIe3`L`{i!2}_m<>)(SA&ZY9Cw% zSyIAVljiSh&v#c=e!2Z{`roFSofAR2+pKr$sfhPf{2YuLX?SGl#79{1h_if|gXn6= zVk&FK_Ddz)U$FJSj9=tlcXjU6>m+JF;!d z9#>KHC^P2Mr%$|`({4j>_t>7+#pLv2;?G-nSRii0RoJ1b{?RP%(ka0P?~?Beg^Tun z;I&7TL6*vfpPgL1J7@k*+c9}6;W;^*#%g#BTT9~@ABuR67%LtT`Z6>0Wg@B}`L;L* zN6vfMcBjIXq2;c#mu67+s5b5=4H-nL+==*Otp)a#^5P{o>kHoLWCgUR> zDc&KP3*q~MBfAsrKzokE;)Z9z)z)!|5n9YpC$tFb6QdjV*4D@ zJ$}p6*oTrWr!pkmS^S8cs@dh#noE-1oy~!~g6WFkx}0`}fqLgYX6-}0Z?Mi_WA@|S zN*LU&B%|F_$9Q&3pxhT1<0N~0HDpn^mCArG6EEG%|5r=#egA3S=y&qnojgj$=fS$b z-akS1<#9&DYU%|f{L~pfyhJ=0k3quMgm}c9RJ=rdwu&dAWue9tqgakD#&$2iuM_Q z>yk9Pd4Ohz8FK}R;BHi3va7uSopzm=hf5s>RQI^5;+Pu9E+g+mW}UDz|(_Y#XwbK`}AlL>x@1m`v>E*`(%$;O}+RU-fVA537@sl zDjVK}#XAxLo;HmI{M1}v#S8H{W&B_1%N!Ld-Q#=FjJ$CF)zv}zc&8~No=__qW+6?|VU%U3sB_#HxWF!7oT{P7sDQ?iTfIb+8j(IMe}c?i#Xco05o zskJ5%FDIT7@Z07E^Oo^K{KQ}x&wIfgzD#2+L%Jss(mm>X;O&UFm3iOK=ow}^xX;jv zIX;|2U{8BLa&k@ECE1n0I)<>WO{lJyFKu=VN_N1#U0YOfOb)o$@c4&H_lRo92>BiB z>F8IpbOIhh4Nt_ITT_J|VqiytCv(VaV<`d|U(AF&JrY zc7$6%r5hv7KI(9nbbnQ#bXSv@VM}+?uAG1;;XhEtgYv*UqOTy;f%Ojva$Wzbl__(+ zt_2gb0}A3@&O^orK22SS$IX;i7w=>|tKzd6KWCOypInWW?(xO$iVq{+4^nMqI2g{8 zaf71WjJk8$kr)hLwReDZnlWw_wWrb;&t|v1e0`sNW?Ez~2i&!hDIT}+=Va@%7Z~oU zfCu8q_z$PXKCqt6^-Ede9$zlWK4Wxgve#ODE1q5AnHKT0u0_qPW&9u+PsRi8M!FwF zy6!IvHD-=RyAJXY{UGoA!o5!6?r&V;A5ywwiDY-txY9Vyj>VZ^E!l;34B6~!2JG5{x+*)S-IzqJy1Mg5z`cahJ-!iq_}Q_G4tK?}4vK}MdS;1bQF_R>tzk#Vy zt843$YXRx{`_8z!M|VJ~;v3E0!G(d4&+eNs1iRlk22-!bzUxhP=Z%1S>7{%8lBzzt zl?U!s3@~LV+$*-9A>yYf;s=z(*9my0^=YKxE$Zj(?pAZ>Wc-8%0Z(7%QN$V8(&I&W zIB!Q-xZgt^?~|l*!RPSR#H>KF#Sy4F?cU6)!j5Zxzp(I=&tr z3xe;Ev!wfWVGE`D+dxvD71d=W20IU+4zgLdaIdR6hU=%sYu8~ML2XP2Ls)lcSDbWX zfOW))t}&~qd88RbvPZ(blJ4h{?ytwI$hIsiQ|7yD8r!*G78R33{Fx#iiQ)B%_X=u` z{dl+ii5s9ms0O8bgq=?RrZC$*IT#tB>&9G6r~+N=j*4H<^47{BHbms>yO)XM@p z1v~I}q8(V{rX>49`Qffw_kyK+5+mI!xJQ{XJD0x1{oISKtfv9UwX-#Q!PS%TM0_gb zE#s-Yfvd6;xqDglxsSZ`Tza6h4hbe=o0RKHIUiCC}AYL|2mWbDh zPukyVE_w2ly+((zoO=Vtd^D%@+*>$n)Ij$x>m zuL*fE_wDf5u5NtP?5WFcP4;e`g)ws3F9_V#VJ4zJG5o}ErF*hJUPY!U^B**29Na6y zpBM2csBwrN;MBOn8VnMiW(|kz_*%2Ow*Kn8B-Wa0VRSz_4a6kvx$~@_sIYj)2;(t? z`(dAOcWC!RRgWImN%oFKd*HG!gk(p4!XVg<7c+16Fc%d)!F>dz`%!Toy1Et&vDUqU zdluWBDf7JLS_)T)k3;;FHEJ?_nwqkPOIuvEy_IlB_ptS!qNuGk)p*-I8CwoRJ_)Zp zDOhs~V_c6}@fgD-#?G4uORR&W)um>>h^Al7F0f0p>qI39_MX7LiqI}4fW7t?f?ZzB z1yb&k?n%L}`xYtyhPX}j!*~^0Rge!X+<7ucMfiyD3TkHSLOda#ZOGRh=}#~oj}1uo z^(3+!a{Fpwi>hzMUtJ!QbA`~ZX#mT`bEdgBH)Q+AL+i?r>4C*AurmO5p&j9a9qE&O zlle)CU1#83IJm1h8sjqwy-TOc~?2KYR8ZbO+uo;E@&K3-IDy|AI5U zc$x93il>n0=X&e?qquTN0Xx2h-=0U?qT{iDBbw_*X$Irt=LcL)1>6PpZ@7-pv5K8W zjG~A1$u2KOo0L}DofPa+>=zO4lJ5QDrTf+prTg#WRb-elUw(eEvbzhoBU%hX9&|@m zfG-B|Q#D`44{TF|0bi!qTJI+@)RvQ;@6BhLqsh3#tmL#JAMy1`fAU$5*;ne!Fr09Q zE7KI&aS80~6%%Yy3U?`;RO}$TGh^Dl#%;5BDl6u~!d=q6|0r6z=l?p0|M0@ADHpkjy%?8*EW|P#ZgH#^VWPm=K& zm^Z#mtG{#*MQs(k$J715a@O%Y$nWGj(+=K?<+{m?4G8zo+`zQf1>8?^y=kc4#KkmJ zrynD-cSEvU#ZJu*hrN0Gjv>w;7JrS>?*S_9naCQKVF6&xyGV%3bA<4+pXOnv zj_);ciTs z-+ucI+MRqC;se4vz_+SGn!>Fb!}vKgACOmr!N5}^-ItOWYHRH^e*G$W3(5|Q;TlZD zjv0VBVUFvgx!-t$dp_=bhH$4V1DZEE8W!xLy2y_IF_HN7Rah4WGxR#Re#dY5pJ9v!~ z*V&go<$e}k+p)tX!A`2b!K-F=U^kCDFlBJ=FNAxq+acZ4kY1O?ZZ$hZX}CeD-Rm}~ z*8{F!F6Az`=U7usPHY_Yac(mZ+2*u5uc^uO^EL8%A+Y5@$%!r_~S)aEN>lNJIJE;*Sr-oNkMeq2U#JZ z<&7vecmc=;)gSg=KekUe+`W67KCnYcjt5fwwA|3lG-SuqH=jShzqYjAT0?oG<9Z{Y zI>fr6y7^`Gxt_}P+T`M$J9p{BSgv1sxZ5?=S7%x-37itgbQ$IuqFj6q(_0*nNtw^8ykQ-CT0fd)hgo>815fG-n)12Pw%fC9xlPSTwj0nDj>X8TAhUV6?|1F zIjl8T3VE!$qJLPgIAbQB?#c3wpi92%nY#e&osFZb2OpN*YXbL%8#X`k)=l`V{&`6F z4MN=xm@*LVOPj4;w;L+<>s^u^xp3XzcFHhveagsnuA4f4y@ET1yOr*@LZ(Zk8zt_T z9^yO<@_Ea$9OHXq3!gsbz0$@W{}TBQ)4L5bM0x~gPsd+$EuXR-%KiPdG(h;JzDM{x z5+0*n3HTuw)=W;$-2Um|!NEb2B!MxLb1Rb!oJhJK?QHnS1&}%8DgTLu|HkiT@8CYP zxieBQ>AQf>^^76))(mBMql|66_A^y~7FLQe0% zdvmw!(hpJoqOqN(jM#1ge=Oof_-{45Rqz$y{{XjU^6ujFLr{K9kl+3~mXq#d1vT>9 z2a`=cwlgNom^|nM@${0CBk&zhEU-Np&dL2Sa-3YZPcaP5xu~O zX}7zb=G@&|cOtNUVe8x%6kM2SpsqpN)-wk?nZ+*JFE2#slh3(BqDX#}MBy9^;o&w!eQMwks^*pU8*DgD>Gl zcz=zxY8pIj$j{Fj%HLd^hLk7eziuaaZTDj6o{U@a@_`8=bHZh%Hecn}3HAH(@w@Cl z;|KIp$ZuXL-g$p^e1>p;e`thz50o|us`Fa7u7y)leWBZ_O&M>USZ@YcznscFdCx8%GD^y_xTMKU8+XWYv$KJ@@LrNif`zU9YVHb{3SFkfkIZ$HM#1ANEnFP_x~L_Wy8$9zQj$OaEOzYbKteJ#QIxSM;d>&V;! zv%avt{&%R{T7-4wAG~_>ERmLbyB5Wt9UpIGEJwP}x>>fmTYFpXzO|=w4Mg?pcFF})9_a459yB`k z^1U~pI61zGqgKmcUa2^GKSFkpy7GJ7v+UG&m`9H)HHZABqdi05)A75^uiI}=vW+7j z^JF|-o`{#qtE)*7U;e_qKjD9Hae!xf89XAu+jCCmCG(+}_tiW(PoLM~>%i|x$oc!A zbAn#p+`V_YJ-%wU!-^*RWE}!I3GOvL06odSKR9uRxjRpXsQ>Z0XF3WPsCw$^X71v; zz)q?MTL;w%cKpG1+1&hXpHNR~7ar_cjw$Hkc?NTWoH%x34m4Lta-{AKmrM0}`%?Q- z$l@hb3Al7e7I`7!<4rOY1| z+p)M0uJ8iAHwnzbQQ#9vo^C)e=`KgI1= zL|ODlk9gdR{B8GTvk3QqJ<}xV0s2OS`Tm6sBaJUzPot-oE~%6mESiQ7fKNx^Q-fbJ zgFk1?2hL};4TK(~fB0~kO7EQ>$$!lJxOX+P^-fV^5)OTgwR@Uug!*8s3B<=77t47n zpnA35T*dP7{fTdH-FxtWNN4#%QBR?6=AQQJTr*wrT&J%K>o`5u0d}ArX|=k+(^a~3 zks#YanALh0EO2YH<^EEB^o!H_<_|g~d z`3j#@G@7C@gD*blVf0tBnM&|+o~ZZr&A}^16uxlWTiy?YOylgAZr{BFc|SPpG__e|7f?q-)d!TdWLin zorVsg`;Mh8 zS2`68^sH`z(-ZYvjYS?jK!bCixM#W>T_ImN5R6|)wEZRMR|jZ+cyoc3-#-kwc>^KN zr(&Sz5#7u^;d)Z9i|f8z$C+~d=;)|EL+V5t~i?{TwJQvZa(1ncCd7Qq! z5#^g}Y;5|Ne1prbI2*o*p9JPp!cP{A?^PD=Pvq@q0{GbA7tG)bnmMtaRv%#R8XVI8 z&dkij{5+N^Z$3n(Gs8cjehnQTcjoo$qyDbN&|h3JfA~tdfaBl-4xB!JJHXe&-zC#d z%z^ToWVzc`=k}E=d?o64{ef=g-gnhh!!RyA%5_m)T;JVysn^$)B$>gv|&>eZ{aZe6`Pdk^*;FAE+C>#3rXv;4bdj>m36u|z zr^#dKwGZR<9F$*e1>iX_Sv0~gKZy(XGXcChcn^5S48ELdKNk@n2lE}V@5%2DmuuOb zxqJ66Xsz%cgcnyU#Q2~fH*+7H>zZ;*>-B`|$iDOSW|L4S*1f1}%4M{&h%**>*VSm% zRfyMgyiYZCc(NV00u0KK?WY_+CRx!GjT!t{U_U<}$F+Xh$Nm?ea6c`stB48X>(X`A zFd^{uCQ|FHo>c0D`WS>m^_j>M@f9LIYUAUcMh?#&Ue7$q;0rq_Gd$oa@S1}+gSS}D z)ZA09Gvs=}I;h^8>wtQvhVd8mFTPP9vykz1&v@6=c*Lg?-)NBVviO21d{s}To>BCm z(~23q#d3D$o^l;mZ?5A^xqj5d^ZTom_0X!1d;GAxN4zXvh>zD=t2iQsKZiLQu{|wi z%-}7SvYC5Y#LVe|Q>~k(LypXTvk9zA*4u$>79SzLQpqEH+{2UcGI)dnU*tiV;SGLm zP=mL5})hv+PR=gfyeO$J9x1@F5J%^@MiE9 z%aG=t4|ZfO<@!mzz7mf)I;?lHDHv8T#`RB;c&@f4gijQ{LBOXKe0c|DhBx?hFB(&L ziAGy)@;UK@e+0redX_Yyh3AX?Gzl+(KZjQ@6~N#Hc-w8vV&*=` ztMCMNaXmEb(sgiMOQvnJ_0uAJeKJz`#NaszFNK%EpTmwaMKO3Q;VowFeT`jv^$P6T z%~8UBbX1eBx7$Yb(@WOFM+zSsyv8I`z@OC+BzBaEh9HY*@arVJ=exb}!!p+9o<4Ot zmnZB3`{oJPcXq6WIa`HatG624Dd58z>oW0v#xpe49)mJw@D@uk%{>KsJnYCMBQf6B zJI3|1&!QCGbu{S{t&MiTu__49bD z6|<5u_+*il0$)`Fe`-&$itSIt_Cf+){!W7@;RSdbqp^&Gxu?qRxh}9jkB!}Ny+dKQ zXOhk_0(>I{e8zVY{!|Qy{=6 zQ#2BIB*)(iKHxsQ!4vR|6dr&Nh_@2nGRo$D4{*;jc6IDwA|@+hOxOzv__ddhlOdX9 zn}VVJeK{I%FK`HWBr*8pt=kg#IV<5UBND=$WJk#^vM0tK8g?sUioVFIh9(wxL;^pI zzk}`3fP0w$pLR4>!dph!+iLr^8a)f}dw=hGKHZ()}JK0{6QYJ0o zf9N?zgY@iZOyMo%Hh02ZWS6mn>;Su;b%e0nP6DOdG8hfKMrefhVfy#i@5*VLf!Y|kyjir?4{^lEx zcD3vTyH)I?F+x+BpkEpk&fbUhF!J ze+}y(^*g;?Y%hNV_`yqfYvC;=3E@t*1MI6d6*G!i^b<5Y*o5XqPCoCe+e(bo5EYlV($2T46uXj1pA^*#f)qLPk(1UYIYygHiPJ>dm-kN7#O;Vu7T?|gpRNVX`v%FM9vqW=UhN#v1&EF%XTV=u4} zd79Bv9@Z1%@hTF76tP0K^#1vG>vR>z#qDZ0#x}J3p8kQu0HaBwZ$6#6U49>FBM$EW z`Cw^a|2`t$!}el%{_da0(=+Vb=bG&e>1b&1>1Ebq+f&l=)@d_e4DJo~_fbLp4tvK* zefQp;<=!q=Ba)be=Nq#|4sUP#VR;W^XF6u?4WEDK@@lj_a5OyAFmF%K(dbR#hp7!| ztfaBLE!qw4ADX@ajnwb|{ulX$DlgtzRE?DF?c zVsN*3zN_i?ei)Cuxq-O16x*As@YiY-9<%W2b=J1k@Rl7WB0C2Oh}QS%^kF9Az8GhVIo4C*?uK{( zo(iuYXVuTM67W{TTXx{=Iod&WA2WB$O6HNi%R^4zW)C-4m%T-n&0BIeHXSr%x2T8p1^&vaBP3-X3XC8eg(gkD7+>- z_m#9FzNTP(vp=@BF4{@MHaddC1|u$XdX=0N%Ry5{19!I;*PT z72&zBq}4R_NZWB0_c;DD`zJe#c9Q*MG8D28PCv~J?v`SG|J~vJ;oEHb*n8|PB(2Qh z{WJ94y7#h@=C_kT_;QE8AmYv8YY=i>2hhiDug;FR71TiX6G;2@?Wdo=7~Cz%_WjqX z;C%+Vi@duyyaVu9T(x#4RnjCTY4omRaCj2lb{>1rU{_@C6!CrUWT&))?2z`K@;A}o zZb=61%uMM1_y~C?-shjKoT*;YRB`y#C!PR!t7+aH++(VD<-{SU$2<|gpQ%TZeUiTo z_K;*ZxLek@Gs~+P@GkP6moozRr}Ev(nYDx;B&Xpu;cZ^B9(4?uek7L!AG-LkGq|_a zY>aYt)-i&1gS(~bY-G>V{n6tcqcdjj8xdYR{IGCZvJHo~BL3Yy;196Ng`-P*$EDht zU6nC(_SK?2mv)1@B{_jamg=WGngjylHRZrP-rA>Mlec;J1ddvE-PkuTY@ zAl1XmQL@x(694vXdlylJr^!d<%$C5eYj!$2Cfd(D*$wWN&GmhW@;zExZLO5=X74W| z{B=nW&mx{R4X0^L;`bMHGSv1&j&K9rgT3P$x2fzTJ7!}ff1XKv(Qa_JY`J{5$5vn4 z(o}bNN<6NPO-$}n+=1_c+&`1}Xj%1@U{_l`QrXeQknGKa`^OCq%S-W|d3(3VRyTL} z>*5|>P1ESdTCIxTadab-#yi{{2YdI|bTP+T*{hPBaBm984fn6kT;n~=y|=7--zaeS zobZ!)n1+Pc5+A+KlUe+3(k^2=>5d}=Xb*gUMahmoTq--AU9F&&!@U_e|0q{WE;*wY z38sh78|wAiYVR?|dv5RZ&(^)aZdy`}OLCY-PA&0~#T(*xM)z)MfcE>y-J@z|gMr7; z#Q^ODdv&rC?gvHm7VZ*xRhY4Q5z>0PKFH~Rpb33ZJChOb;JZE7w1p%HuO(i+&yzyD zF@6hS-(H^kd&)cKW-770%_y=fWgp54D#>0E?saFn&KOtbZsW|IA90Su%lHLOyq3=? z^cU+rUp918U`|Hn-FquvTD9(ddqw=|37hzorP1#QQ8+emoF;!e0Lx^v>a1n-LL z#~fwn@+p_N}*x1p<5bYCR#&7|(zHl#9^wx@4 zd;Nx_=X_q5%jhgkmjAyY1MqP`>S^-{m2aB8gYOHk@91W%d*5nJqt{w#@$6|*y9irT z^IE)jk&1MuyA$sfxV{SZ;q#VVl`*x1ds@^(fY{*XB{;tfhn&@duMLMzaC`aJ=D1fb z-$0Eg-rZxXtM+c)`_?7?T1z}FULzhFPsU@W#x#D56Yd)B8t-6xlIu~$enDeTmNE5% zds@}0=~<9;5IrH}>-l|!D;)SmSrVxCg*|0n_wwOov+&+qv3Kj=Z@lhEs z*x){sov=xbP1RIL!G1i#$ z@(5p(saz`f#ooR>AB>^0*9Gorth0OZ<%dE#R60(AD!M)wDF?8&%FMY)i3S5}p&2gVV1lYE&7|xp*I^h#K+7?Lc{h zeD%hC_>As%cdB>qblaf;>v&&h!>)v##;&@UTEIQot0S4BdT*R2Ia9j}nWAxSK zudf5i86&eqg&83Do{@w8?|skvnH*$3)jrR2lh+#WA>Rzb7fsG&z`N}!wx4;Lff}gc zTs#pUd3<#5<1YP%Ae^dEB2UPxSmmCAyTiM3_l`St!LGnQRA8?M z+=;Z<*2CkVG1OC{9%`0z@|+y^6we`kD*$IcJZl_x!8}EOUL;b@>KZ* z;{9W=jZpYegm+)g*x>tqEuIrKYO8qN#?#};cs)FcWfsaqdwLTq}@o5RZJ)o}hP}ht31?vogjL z@!6OIHL8a{*23rN(;rn8H&CKexN_0q$VmDVEnpN`T(c|Ft0GW@IbmbKBI{@>(k4>$1t3ENc;d1-66h#g+_v z(r_Ql*LCFp*mc6XBrwwa5~*GQ>Ql292jd_!9=II$4ExZ#Z-Y9-KkP0Y;_ZAZTX;SB zv4fxO%~mygUvB7;4C6)c@w6Bj8F^TF1U78vS7Bp6pFZn({TC@|W*nvRs&y{w0Qjsc z2!0)0Pap1V*j3cJp6{b>W_|zkeOD;fqgQw1mx@!95e+gUP7_W7Q%#HJwY?^|c+KK9 zrxBTk8k%SA?YnGq<9ozAFZjM(wwfB_3qYQY{1D|snaGChJp8=YDBTO@EIDu|akqZH zKIb>SpPK;rfcFwyFNo`@!yPP&0XygG`zU1V;?~uye}P$dh&c@TQO{I<=uXelu0zi| zjE@tpf$$yR74bHPH+<&|en##cSFI}EmsMv{WIV!}=;RILbG1{iw*7@zPCvByTUT{n2DCTl@cA9Kh4x%fzMeeXxqm$-G3?io!iZbf`BKlU zvz2Cf-W`L;?|X4K)PbCchqCx0c=(GD9vA@tFcC#QD4!1WVC%)|7q%8IWJ&U@bJe^JH+r7@HwVf z=VaiqD1lj1j9O=wcqYxp8V~Z|yrI0*5a`$B=;7*N?4^3GV%hOm1ZR}%N?tw8BhR}p zxOv7$X=prbexvO5)YCmU_O0k4P@R~bINTZRxZsrfVWMAuy6j>K<6wPy(oM07XYKu+ zD}47g`Pe~tvGAWyuhzo9H}EpZz|W!a9eBs0Gg3=9lPcrkR7D?%Sv7u-$mcL+vG6`R9E#K>TS01^)rYN|hoIs0gsuPp002ovPDHLkV1l*GuOa{d diff --git a/keyBoard/Class/Resource/Images/JXCategoryView.png b/keyBoard/Class/Resource/Images/JXCategoryView.png deleted file mode 100644 index ffee70913eca84d1416e87a65a6e7886559bd6fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2968 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 O0000ImHtz0_;2s8d0s(@%1-s-w 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 bHBP+Q=>y*ABOT4<{L{)vD2P{z8V3F!A`x|j diff --git a/keyBoard/Class/Resource/Images/apple.png b/keyBoard/Class/Resource/Images/apple.png deleted file mode 100644 index f5644a4e116ba9d1f100db7a37c218e2b6de90f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2032 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 diff --git a/keyBoard/Class/Resource/Images/arrow_up.png b/keyBoard/Class/Resource/Images/arrow_up.png deleted file mode 100644 index 33c503ee7e3304fd2dca85dadc0bd47f1660cad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!P=HT}t9yZuk&%(UzCMuD)6)Yo z*8gMs4wPjp3GxeO_-K$|r*Ly=nFmnB*we)^q~g}vv(|hJ4jfL7fA0Q2HG2VPw*K8c yY%+Sqx6jsCH@ULyIuV>Qb~dH*W99#C68-~ zEX=J_oLuHs?g=F+x7m*V`ThPppXYtw&-;9y&-1>|``1ggv&Bh*<-q^|NaC%q_Iup* zDc>TWIGNuot^IP=2uzj{)Wv$O-78 zyM;$qX(If>BfxwF@XinD^w_x#2rAU~76J2-f^zr{O_+aQp2v{b&4LI@Vf;K99$gf8 z=g%)vxW+=zOEo9b!N#??zI#yRCcEZRRfi^QWx4u^_a4(_@X0^@e(oKj9&T@Y0g&F@ zz@wDSzbA_0ge#(@mYl~-NtV1@p4SO%Yx|(r3F~DDH;I8uHvz$9im59#@(_< zPfC-$kJbiZ+S~4Z_x37Zaa0`}5t+AG6bM{gv;&_TcFGzI5c^!?^+SIz46v@rftRrU z2gvYO@+6hV-!6@zMcqFTcPzMBka6_zfvrvccVd}{l()EjGNl@%*@hWOVt!OvMiEvI zM#7FpOPJH47AcBW`;^#_|F+rvvOWAY%{7@4YXov0cyc0Tc!upHGJ8xpIfN;-wPUYP za5`aqZGAoT#r62Ukk}@GGJJocuWq|;s`cE)Q^ot*U+DZRtkAK^3BJ#x#!JBnhnr`x zA9M#j@A3&DThNjh7dsR~jhrZiMf15PHiYX>E=I(Cox1#|VsECI*2`jLWL#AVhDQF} z1>Jrc?1aQESSosMAA+_xyg4rS_(B>rHHvUkL9NPGt614}A zTU$yyvw~!jtNnv)ull7J4C&?!KC))Nbns1Z*6;R@isYa}WUZm661M6RPA&g{ECp!) z?T`Po&Ch81P`yzUZw@bZnm`sxsb*vR&f7eV0Z;~qt?E-f8q5!uaZ~Fgu|(J~F}X`G zy}-91eY{Y7K&^&Z#yxt?LfqHVR~vuqpOqu9{i@fy$tRFmkU+{Ts;1mV-wz|UT%C?( zuC%yY5izr9hF$%by-LmLSxYqc3*qK^ssi5U^_3|VT~#Lr!fz~7{M+!X4a2^kG60*j zGtV$cxt@aAtQ3o4r2ZT&R^g=uF-9;-uMWnaiPGc_#6Ljsu%?-C-w`+})p+);7k#9v z3n|O~pea8LucKJZs2Dzg;L%qlxos*}t030(Lv%MI_(w?}I<}spkMvgIP26>1j7~0x zQ<7KD-qUz?V^(qjAzNdzRtg`YvrzLC3tl;bJJNFZ;13b;YYj*Ov_NcMVCz2U03yyR z%Z?;SL0>2;?TAXjvuB7Q0q6HG$fbyj;VO=w&nMk7z8I8rqaCXg!X<~wtF=~jS{cm^ zTAGexVR*tdNfbmM&V-le%by+Z&P(^wxGZdb4bxLAY9kx_RJ<=(kIQU2}Yyb?M!Rq*jwXdCGFn&y!Y&+*b)>b0-xhK6) z#H5oj1wTGF#L0Iy!4sMyj`~-7F;aTm==F{!c=u}9m%k#ovu!7=p_OfHPqJa%hm&Qy zL-kTF?oX+^*4h5}=rsmhWo~FSWoMrJ)@!Tq!6mJ)diforuxB@(Xtv7EBPRB`vQ0^L z1eKN@ph4?|e*APuQJ<)R%q$*YLtihA1ryHb!8b@Lha1V;}_D6j^x0R=SY^i(z|}+HxaYzjUE}ca(}~bB;F7Cw8P`fpog$UHJ8nOCV0# zxr?!DV5DQ5N^fGgQSg(^_Z`M;+F-33;WOC6@c}}FCgYjBnL9+AekR|$rZ6CWTgEH< z^+t@e>vHHaNbTc-QYPif+m>EaE?NiYmNww#{xdYVwATajH)T9&P6NcDWJ(hsKe{-n zSZLx|dFTkWV?wBEj%4auXmYtFPor`Y1)!0f3h$|$F=^u09v{=_45uQLn;!1%;lWRx zBvbiIuN>O=8O{ad#79~Q+1R|2M__E`TAy`|ZtmkC&omMuruXcmT$BjxUGSoGa5`wI z?_4Y_N2DZIbes96|NDc7q?S`LVc}!wv>x>v-u_{UKTS^k#cDK4IlhV@Zoirj(6M;s zAOv=7HZ9W7Yw52J4ztOgW_+%#VE$9KLcP_yMAUit&E6^`3E#iYsah+ j{1KmN|9?i;E9QW-e^XV!5@Fw)>DfH?o_39}0>L&E+DD>(m^y(<|>L~Q;DD~?o^y(<|>L~Q; zDfH?n_U$M1>MHc=Dfa6rStH)u0000LbW%=J06+*KfD`@oNju)_(4mcAzHzR5F2yK} zSO5S7Ye_^wRCwC$oXd{eFbqW**_Ql%Bq8DwRs5BFF8727aa=pg1}_p-p)BFjy9055zFo7wH2cawZl<*aJBeiz4j7nOGEI z56;A*2zziQHbvNjGqEYc9-N60k)#J_VnZbD!I{_)NqcZ6Hbl}MoQV|?_DE%7Lxerj znOG2E4}nY+Mc6|i6GajB5XeMPggpc@Q5Na(H6~ZK2gu+w zF=C972!Ftr@6jFm7(8N(_!}bPADEIowmo2qXvU+TJtiSUBoiLTg#U(0_i$^#&&luc zcu9jw_jqzqna*SN_%1}{d357D0_En>2Q*(-TvqlyW_*{343*;1P52dgINKh~h~L{E z?~h>0?y-pEv9y2DfG7|AZ{mB4WDk<`9tF@Bd4A+U#fWqPuY_`mIL^a%X-!v0KzT$) zky_Fh+3|WvS%f$4_Iu^W5p*AD!|sUC1Lmb1xxO z?%o7Esful91pYw#P05KxzC01;NyWo&>k zJbLF27{jCY?sTuVkif2l$Cdd&{6qBa7m3bVWPG3FvMOD!5pEzx&(ADwGCd*B@u6}vC9O!G!fDrS4?~Q6!C43+@*gydyPQQNwuleVXR#dz z(~54b43FQvfjr!WAGRaD0;cC$W^w`T^cgODX;9s63wzGsP06h5+(5N3ukW6hG3 zvM2k#7k<-U-{<+==iGDN`=0lnbN;+H!N@?1g^8Dmf`WoY8wocdN8-QDKuz`q&+V!y zC@4#f^h`CieDr#Oto;z+XDEL!6xs{oBJy$eK_UMz4Au|1*$aXEGbpr2Scm{*{RcqY zy@0FTU>*X1wU>pZ1FIvJ^&j5e0|f{fLtFh$oEMQfCI9T zmEI3W9$k->(c9svR&r~cm}^K1G@vYu?4hI-`5KZ1G4nq3rXN_aKzJRf;=@n^~BVrsDREaXEo~HK05T z9sUmQ(0vDG@?>WICI$~EHhI{v5)7(QU4WpmCFl8L`E!d7>gm19BA+OGZB>@3w1nyr z(y2n3be(axA^pdr@zY&sz~ir~`MJjFJL{n_xV-mnzivfdU-NtGcrdlu`g>*M=R^on zkb>e$i#A-%6#aek<*~*z;%1cn##9uCPBIS`)yOCc0;P|s23jEgG@mQ4diHWmqbVHH zl3kj$`|Qs_-_&1h-FZ^{#dO5bz~foy7JpEo_}u^2&bPU%@!^3t$6n8F`^7$W`O|J~ zl)sg)_Te_4ixvcup=y7uO1yH$Jlq6SSj0l&3D-B2b5_*Zvt(j5?(r63dZOABcm=aC zsspwxIabEhk=0frO4M0ZPQ0cAc&{?GB>I9VZz?y*MJlS&r*YBx6wd15$gJUOu-()H zkP=;#bgV5hzSCH<9Nm^dc@`}al%Z@Z$x!Qap1OZ065m)023fB9nCzxN+*KWPp%Ao%dR0M5Gax*{3vGEmtd$5+jN4jQrnI?FiDClmpU4B;0olKQ0v*VqowA!BXp?2;FZ`h?dU(1TH z_~c-CE7JN0H+6rqC+uyYk7+=YWDGGG)tm*RvJI&bu6t;?W>OhwRCx%T8D#%qThgyD z9)0(FxwbEVH;sZoSx!zno#{u7YihU8m)zsM78ca@kUpAi<#s{|CEAWx11MM9!*63? zxZo&o676dScaYakY1&+LdLohnY4ho?lI8NB0gGro%wizPZ9Oh4Nj8&$|&N* zX8}i?rX^rF$t3lBi60g53S-eBD5Pp2R-b*Okw(Pe;hjl)ikAn= zL+^h7eOEk)VW{u$KRGUr?6@RG_UJ9kr%p@WYqeXMm9+u)Pqcy2e99bXQsl)|W~e+}bH8!m1+ucm#gI$t&OTRhm1~R$ORn z=)kE@24X$*+9Z%6tY@5>ew)L@Zl;@yT_Z)*7&hV)B`W0K)xV2=6q*DZDR%{XzgDzh zu6c%Q94Sr+OWcd%3yPM>wxQiUPO|%Xy@|N{gOX?(sOp`S4=r4ZwssV}dp9`F5>xQDDM! zb?!S>Kxc*LQ&m!7jrMDp_1jR{ME4I1*xcb ztQg}xGZ2Ut-XD^2$dXBC50s|L@yzagHDxK`<9d*J%;P)rmK$F-gAlI!nWDHZoEvwi zH^-Eb0tEs09tP}s6bOv}C*d4?coZcy{M5k9_vFi+^c^M$JMHP5denS7zH*F}d#ex6 zjPHm91@pb-eo%I`+L^sSjAevGR-a;7kqMUzg1f{Q`z)WU6H%55<^kDF|Y6y+JW0`j=kyu%*opNiU>7>#OMVt&641$dG4=T zRk4^bo7fU9!{WcDwe(f3eUiLjsH_&;abAG93YWGi8Q{z`&aocHThiww@O?2CWP1Ki z)@w>HuPb|e;krhEcQjUBeI+>mLB`j&?US`R@oe|z+h0h-luTav7es#B-ZJSd;_&$i z9jWS}$6oUcNiCp_51(6@hv^DZtMSD0QY@?3XV1w{&R*Wkw!(&JHRSo{=Nqf zovub$LWFMYMS&0*g*APd^Z_?s?6&*MpqPUInNPDF3y3(KcfO9{lV0KcQbWQ4k4n|+ zAkjf)XOC2fijZ(r-b;q{Dt%c6HM8U>@v>)k@KaG1Q*AD1W1II0H#)N5F1KxCm9@WV z2n9Hv>ilBpTpFXF&DD>#3TZp-N#vMHcp}5%e7l9C50*=c$U=zi<^rjOm?>HMvAnzhuQpH{ptJvNw z=0*yeHp29jN30=lg40d!lhz%}(f7~fz<9PZ@F|8)~4?4x>QKkWh4{xLMxfAq!Y4b zb?sYPWy1?s-huCd$$G6YB+wQ;3jf z6R&Yy9}$HCaWO>KE=|TFL6l*J-=+{%309)z$9YWfg{xLZxa5e!&5$MU*x=a@<6{8qH+!2xlJT=tRDswGy#r{=~v$l;hKC{L1o$m^kv z108Xp1OPAJ{Mj?QWIl;Hyjij7$MoGSbur5yj#LTF65cS%cJ_T z$Bgk@?V>FYh7{L}yw0*dkQrzrMi;?Tt=7RW%Mudq-fGs7#njOcRb_BX0Vg%5%7#7M zLbl)QG$-(VUhR~hwp0~MO4ne2(=v{ua7F0He!$)*E;U zA1q%KV0zRV#A}iJ+G78~lImVoK2nmqRo_5(dP`rQ#zFx(IUg5spX5>J84Dl&FrPd_ z;P7;9U*7ayn={oA_YG}IVVGd#itx;y87OxjBVIc);|lwX>ew%1p6<77CVFMG2<~fq zMkB1)g>@ZB>1p4zqM0ajVsdoRi+hvG)J~ diff --git a/keyBoard/Class/Resource/Images/crab_selected.png b/keyBoard/Class/Resource/Images/crab_selected.png deleted file mode 100644 index 8a91fb37e26320bb9d77e198d7d7b8661e3313ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2195 zcmV;E2yFL>P)L~TM8W
    +m^y(?}=_&m0BlPMh`0XYC`5pD^DD>(m^y(<|>L~T< zDD>(m_UtG1>L~Q;DD>(m^y(<{>L~yJ5cKLQ^y(@0>M8c?DX)Y|X#fBK8+1}mQvk#* z{O5+_Pn-jWbS)6(H^I2;a#!{KoFXM~;?)4qgpRmCCc zOS8bnx1h|!U1Ug$lY<+(@zaEs<)w|G_7ZQL;t~ivbO4+(PZna-Q1Le`OI$cmu+KA5 z(i#)&t)g6g2NUd^)WQHWY-^Kpw3tzb%5p@QW#_cI)W$3~rLm;2vBam9}^ zX%$HeZB28pVGYUV!{h=3(RYu}S{SgyRSIImK;7OtV*?}p<^_>86%n1=#lWSXdYlz>`Gc$!5FCX0uwSSpjMO^6SS_YgP{)1SwN|!5=xhL`x}xk$m+8Lm6}?p zsBg0zT9pe0JA;Z%0TiZ|^|Yphq2e@95TuM}L(QTUSx|FbD3GJbVR&DaR3W`AtP)c5 zFu@j(Q4IqbNvfUtaO1X0un(H3^Y=VzPX!|p^J?U-&#eK5@6`E z&4Se9QxSuDC1fBe@x=L}vDWO&f*%C&@gKhF3#RAVKHB2uOBJMpo-U${p@#tk^ehzs z!1pwUSIpwORo_@tG}ORANwLt+foyd5bAP=*nb2r% zG-TgDqal^oW@;Uzw=998BJfB{stV#r7ZRN$eal>XNLkdohW#*o`hh9wxaO)LprMeV zgCDbHv=o~GMd@)f3R3A-M4q)^(@5QaavJvyEzJUcNnQAcpMP3RbQf3YmtPb`_E+)O zCH1UuG$S!T{}IuMr#X02vsI0&?7{$}zdXB1l^0FqIs)hvJytkw)D(FYJNKqwX7JRK z^rRIe7}k(6PgoicVg%+r;)&;e$(ZPtv3RsnuW06V#HBr!* zS2~ZIs>cDtILWA^IHgCji-1}ilA32jA&95<5b@(Oayv4^_ZEY;bxsm1V#u7_Xq!{* z&23s?NGGE~Zu=}sbvC8A7n+w1-?A?nsZQuIJ`e;rRV2A|VDw5_;^A4B(LkIDd?3g; zjL2g3RL`CE7L2Qn2kDm2M~Als!E_LGjz7PQ2x(C{x#YDX^gdLPUS!de90M&akej&4 zV^f}h65qf)2tT)#8w>y1_mkTENlhp)aK69Xs!v8b*2lwR*(scQ=2MY|Mzv=nuA#)n zIn<4zRL69axEQbvpLq2%U1e)roz3;jg86M#ndw$O_07qdJO`8b4llW{3MM(8>S3a# zxz!d!;v%pfIY}j?KB6bI$4RguCv`C-V$yWRo`~+{&8~@y9TPEW`@)VDr0-f|x18{$ zO}C6)U_7K`B*#wqWT=n|vI`{{3jlPifR6EDEW=Hkkg>4dUqRfEUSQcBHo()bI~Kjf z64({Hq7MY&mFm%RV|r1GIqL_Z7sUc|7%LMgEvS5@2vot@C!j0`}O;S@Dbz)as;_KX00R05oCoi@*c-v zKW44J(m+9Ahxinzq!7$FArNGHkA-cL;54tFuG; zi6*#t! z{m!n%^2ciiVeltLJLAvq9qhdMtkvPYm{$n0Mv_091p$NKIahrs$k~?_w$#1l6EMee zaqYraqBn`7g}!Z$xq~E%>BEu+#>_8&O|r&+83`qRSZn|Ce7J9PiV7-8PYVCRnCRE+H_!vD_n+cE!^AmlAL2M)A3&Ba@k&_)u^KRFs9 z0^hsR?#N*R7n9t^_vrUXtn{2UZEfSuuG^-#q!#^Jp;c8@NQcAWa5x+ehr{78_CKOk VXxDr}sv-aY002ovPDHLkV1j$JLlgi2 diff --git a/keyBoard/Class/Resource/Images/filter.png b/keyBoard/Class/Resource/Images/filter.png deleted file mode 100644 index 8e425bb776334bd728825c58def6bbe6bdb6a7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!L4Z$)t9yZuJ`5Nb7yy|N5+;U1 z1EnPA{P_md%U=@Y7tGKgaKL`S`Gf}!1_}WiCQR6>Yz34G@pN$vskl|z70q=(LEy-y zu-Ciy{?E;xxUlZZh7Bq_Uw$hy=!UxZN_rJ>d}llK@<}>_=+3Sh&C5qqBh;(k&z#ZQ seOy8R;LrW8H+7OyVl!0C6u149-(Ja-T4C@+9B4j+r>mdKI;Vst03fDF!2kdN diff --git a/keyBoard/Class/Resource/Images/football.png b/keyBoard/Class/Resource/Images/football.png deleted file mode 100644 index 843a03263681b80742b4be7b3af5ac902c8ae0de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65011 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 x0+8KH&Nf$nFHmTIt_di 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%0Dr(twJtnye^O)ss*`EBXCorVy0q}_`Rr14i$ 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 diff --git a/keyBoard/Class/Resource/Images/grape_selected.png b/keyBoard/Class/Resource/Images/grape_selected.png deleted file mode 100644 index fe393d6ef3a24f30f62562412b9ca62b19c12c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1915 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 diff --git a/keyBoard/Class/Resource/Images/lobster_selected.png b/keyBoard/Class/Resource/Images/lobster_selected.png deleted file mode 100644 index efaa832ebeb41a5fee62c5ad3500963fb0714b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2856 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 L&m{oH{uucmKCsyB diff --git a/keyBoard/Class/Resource/Images/watermelon.png b/keyBoard/Class/Resource/Images/watermelon.png deleted file mode 100644 index cb3f2bda052f448f4ac82958b6911287ca47cfca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3531 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