diff --git a/.gitignore b/.gitignore index 282503ce7c..9cd3212465 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,6 @@ Preview.html Carthage/Build .DS_Store + +# AppCode +.idea/ diff --git a/Podfile b/Podfile index 66d75f693b..e662cb61d0 100644 --- a/Podfile +++ b/Podfile @@ -24,7 +24,7 @@ def all_pods pod 'SVProgressHUD' pod 'FLKAutoLayout', '1.0.1' pod 'TSMessages', :git => 'https://github.com/KrauseFx/TSMessages.git' - pod 'YandexMobileMetrica/Dynamic' + pod 'YandexMobileMetrica/Dynamic', '~> 3.0.0' pod 'FirebaseCore' pod 'FirebaseAppIndexing' @@ -35,7 +35,10 @@ def all_pods pod 'Mixpanel-swift', '2.3.0' pod 'BEMCheckBox' - pod 'IQKeyboardManagerSwift' + + # actual version - 6.x, we should test it before update + pod 'IQKeyboardManagerSwift', '~> 5.0' + pod 'Kanna', '~> 4.0.0' pod 'CRToast', :git => 'https://github.com/cruffenach/CRToast.git', :branch => 'master' pod 'TUSafariActivity', '~> 1.0' @@ -65,8 +68,11 @@ def testing_pods pod 'Nimble' end +def main_pods + pod 'Appsee' +end + def adaptive_pods - pod 'Koloda', '4.3.1' pod 'SDWebImage/GIF' pod 'NotificationBannerSwift', '1.5.2' end @@ -77,6 +83,7 @@ target 'Stepic' do target 'StepicTests' do inherit! :search_paths all_pods + main_pods testing_pods end end @@ -91,11 +98,6 @@ target 'StepikTV' do end end -target 'SberbankUniversity' do - platform :ios, '9.0' - all_pods -end - target 'Adaptive 1838' do platform :ios, '9.0' all_pods @@ -126,6 +128,12 @@ target 'Adaptive 3124' do adaptive_pods end +target 'Adaptive 8290' do + platform :ios, '9.0' + all_pods + adaptive_pods +end + target 'Adaptive 1838 Screenshots' do pod 'SimulatorStatusMagic', :configurations => ['Debug'] end diff --git a/Sb/GoogleService-Info.plist b/Sb/GoogleService-Info.plist deleted file mode 100644 index a006d65744..0000000000 Binary files a/Sb/GoogleService-Info.plist and /dev/null differ diff --git a/Sb/SbAppDelegate.swift b/Sb/SbAppDelegate.swift deleted file mode 100644 index 0500da01be..0000000000 Binary files a/Sb/SbAppDelegate.swift and /dev/null differ diff --git a/Sb/SbAuth.storyboard b/Sb/SbAuth.storyboard deleted file mode 100644 index a60ffb8970..0000000000 Binary files a/Sb/SbAuth.storyboard and /dev/null differ diff --git a/Sb/SbControllerHelperLaunchExtension.swift b/Sb/SbControllerHelperLaunchExtension.swift deleted file mode 100644 index bfc959d121..0000000000 Binary files a/Sb/SbControllerHelperLaunchExtension.swift and /dev/null differ diff --git a/Sb/SbEntranceViewController.swift b/Sb/SbEntranceViewController.swift deleted file mode 100644 index 20b39800ea..0000000000 Binary files a/Sb/SbEntranceViewController.swift and /dev/null differ diff --git a/Sb/SbEntranceViewController.xib b/Sb/SbEntranceViewController.xib deleted file mode 100644 index 38706730ec..0000000000 Binary files a/Sb/SbEntranceViewController.xib and /dev/null differ diff --git a/Sb/SbLaunchScreen.xib b/Sb/SbLaunchScreen.xib deleted file mode 100644 index 5baaaa95c5..0000000000 Binary files a/Sb/SbLaunchScreen.xib and /dev/null differ diff --git a/Sb/SbSocialNetworks.swift b/Sb/SbSocialNetworks.swift deleted file mode 100644 index f5b9bb4e08..0000000000 Binary files a/Sb/SbSocialNetworks.swift and /dev/null differ diff --git a/Sb/SbStepicApplicationsInfo.swift b/Sb/SbStepicApplicationsInfo.swift deleted file mode 100644 index c97ee0dcd7..0000000000 Binary files a/Sb/SbStepicApplicationsInfo.swift and /dev/null differ diff --git a/Sb/SberbankUniversity-Info.plist b/Sb/SberbankUniversity-Info.plist deleted file mode 100644 index 8f330890d9..0000000000 Binary files a/Sb/SberbankUniversity-Info.plist and /dev/null differ diff --git a/Sb/SberbankUniversity.entitlements b/Sb/SberbankUniversity.entitlements deleted file mode 100644 index 819485db22..0000000000 Binary files a/Sb/SberbankUniversity.entitlements and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/Contents.json b/Sb/SberbankUniversity.xcassets/Contents.json deleted file mode 100644 index 0ee42c7248..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/Contents.json and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Contents.json b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Contents.json deleted file mode 100644 index 787a4df207..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Contents.json and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40.png deleted file mode 100644 index 2491e50b5d..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@2x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@2x.png deleted file mode 100644 index 0836fe53d0..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@2x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@3x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@3x.png deleted file mode 100644 index cec599b62f..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-40@3x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@2x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index cec599b62f..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@2x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@3x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@3x.png deleted file mode 100644 index f11bd9223a..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-60@3x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76.png deleted file mode 100644 index 26c65f7ac6..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76@2x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index bb8c1ea499..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-76@2x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-83.5@2x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-83.5@2x.png deleted file mode 100644 index 83d4e523c9..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-83.5@2x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small.png deleted file mode 100644 index 8c1eb359e1..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@2x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@2x.png deleted file mode 100644 index 9f3bcf4d31..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@2x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@3x.png b/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@3x.png deleted file mode 100644 index c62889f9c3..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SbAppIcon.appiconset/Icon-Small@3x.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/CU_Rus-1.png b/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/CU_Rus-1.png deleted file mode 100644 index 5313beb62b..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/CU_Rus-1.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/Contents.json b/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/Contents.json deleted file mode 100644 index f353511dee..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/SberbankUniversity_transparent.imageset/Contents.json and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/Contents.json b/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/Contents.json deleted file mode 100644 index f8589008de..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/Contents.json and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork.png b/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork.png deleted file mode 100644 index 58727d825d..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork.png and /dev/null differ diff --git a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork@2x.png b/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork@2x.png deleted file mode 100644 index 1f4a30b777..0000000000 Binary files a/Sb/SberbankUniversity.xcassets/iTunesArtwork.imageset/iTunesArtwork@2x.png and /dev/null differ diff --git a/Stepic.xcodeproj/project.pbxproj b/Stepic.xcodeproj/project.pbxproj index 6b513b336c..438d20e6ce 100644 --- a/Stepic.xcodeproj/project.pbxproj +++ b/Stepic.xcodeproj/project.pbxproj @@ -8,26 +8,18 @@ /* Begin PBXBuildFile section */ 0800B8181D06D961006C987E /* DiscussionProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8171D06D961006C987E /* DiscussionProxy.swift */; }; - 0800B8191D06D961006C987E /* DiscussionProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8171D06D961006C987E /* DiscussionProxy.swift */; }; 0800B81B1D06DC1B006C987E /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81A1D06DC1B006C987E /* Comment.swift */; }; - 0800B81C1D06DC1B006C987E /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81A1D06DC1B006C987E /* Comment.swift */; }; 0800B81F1D06FDE5006C987E /* DiscussionProxiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81E1D06FDE4006C987E /* DiscussionProxiesAPI.swift */; }; - 0800B8201D06FDE5006C987E /* DiscussionProxiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81E1D06FDE4006C987E /* DiscussionProxiesAPI.swift */; }; 0800B8221D07029B006C987E /* CommentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8211D07029B006C987E /* CommentsAPI.swift */; }; - 0800B8231D07029B006C987E /* CommentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8211D07029B006C987E /* CommentsAPI.swift */; }; 0800B8251D0704B6006C987E /* ApiUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8241D0704B6006C987E /* ApiUtil.swift */; }; - 0800B8261D0704B6006C987E /* ApiUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8241D0704B6006C987E /* ApiUtil.swift */; }; 08019A821DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08019A811DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift */; }; - 08019A831DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08019A811DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift */; }; 0802177A1F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; - 0802177B1F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 0802177C1F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 0802177E1F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 0802177F1F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 080217801F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 080217811F54E91300186245 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; 080217831F55B1B200186245 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; - 080217841F55B1B200186245 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; 080217851F55B1B200186245 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; 080217871F55B1B200186245 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; 080217881F55B1B200186245 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; @@ -37,74 +29,49 @@ 08047E6E1BFDC0480071C875 /* TitleTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08047E6C1BFDC0470071C875 /* TitleTextTableViewCell.swift */; }; 08047E6F1BFDC0480071C875 /* TitleTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08047E6D1BFDC0470071C875 /* TitleTextTableViewCell.xib */; }; 0805FE441F0D390B001226B4 /* CodePlaygroundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0805FE431F0D390B001226B4 /* CodePlaygroundManager.swift */; }; - 0805FE451F0D390B001226B4 /* CodePlaygroundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0805FE431F0D390B001226B4 /* CodePlaygroundManager.swift */; }; 0805FE461F0D390B001226B4 /* CodePlaygroundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0805FE431F0D390B001226B4 /* CodePlaygroundManager.swift */; }; 0805FE481F0E584B001226B4 /* CodePlaygroundTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0805FE471F0E584B001226B4 /* CodePlaygroundTest.swift */; }; 0806B2C21EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0806B2C11EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift */; }; - 0806B2C31EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0806B2C11EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift */; }; 080AA2301EA017FB0079272F /* CertificateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080AA22F1EA017FB0079272F /* CertificateSpec.swift */; }; 080AA2321EA024290079272F /* CoursesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080AA2311EA024290079272F /* CoursesAPIPaginatedMock.swift */; }; - 080AA2331EA024290079272F /* CoursesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080AA2311EA024290079272F /* CoursesAPIPaginatedMock.swift */; }; 080AA2351EA05BE00079272F /* TestInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 080AA2341EA05BE00079272F /* TestInfo.plist */; }; 080AA2371EA05CD20079272F /* TestConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080AA2361EA05CD20079272F /* TestConfig.swift */; }; 080ACF501BD79D5500329F2B /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF4F1BD79D5500329F2B /* Images.swift */; }; 080ACF601BD7DE2A00329F2B /* TCBlobDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5E1BD7DE2A00329F2B /* TCBlobDownload.swift */; }; 080ACF611BD7DE2A00329F2B /* TCBlobDownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5F1BD7DE2A00329F2B /* TCBlobDownloadManager.swift */; }; 080C5E671EFC07C10036EB3D /* CodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E651EFC07C10036EB3D /* CodeQuizViewController.swift */; }; - 080C5E681EFC07C10036EB3D /* CodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E651EFC07C10036EB3D /* CodeQuizViewController.swift */; }; 080C5E691EFC07C10036EB3D /* CodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E651EFC07C10036EB3D /* CodeQuizViewController.swift */; }; 080C5E721EFC094F0036EB3D /* CodeQuizToolbarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080C5E711EFC094F0036EB3D /* CodeQuizToolbarView.xib */; }; - 080C5E731EFC094F0036EB3D /* CodeQuizToolbarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080C5E711EFC094F0036EB3D /* CodeQuizToolbarView.xib */; }; 080C5E741EFC094F0036EB3D /* CodeQuizToolbarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080C5E711EFC094F0036EB3D /* CodeQuizToolbarView.xib */; }; 080C5E771EFC09730036EB3D /* CodeQuizToolbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E761EFC09730036EB3D /* CodeQuizToolbarView.swift */; }; - 080C5E781EFC09730036EB3D /* CodeQuizToolbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E761EFC09730036EB3D /* CodeQuizToolbarView.swift */; }; 080C5E791EFC09730036EB3D /* CodeQuizToolbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E761EFC09730036EB3D /* CodeQuizToolbarView.swift */; }; 080C5E7B1EFC13ED0036EB3D /* CodeSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7A1EFC13ED0036EB3D /* CodeSample.swift */; }; - 080C5E7C1EFC13ED0036EB3D /* CodeSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7A1EFC13ED0036EB3D /* CodeSample.swift */; }; 080C5E7D1EFC13ED0036EB3D /* CodeSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7A1EFC13ED0036EB3D /* CodeSample.swift */; }; 080C5E801EFC28CF0036EB3D /* CodeSample+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7F1EFC28CE0036EB3D /* CodeSample+CoreDataProperties.swift */; }; - 080C5E811EFC28CF0036EB3D /* CodeSample+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7F1EFC28CE0036EB3D /* CodeSample+CoreDataProperties.swift */; }; 080C5E821EFC28CF0036EB3D /* CodeSample+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7F1EFC28CE0036EB3D /* CodeSample+CoreDataProperties.swift */; }; 080C5E841EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E831EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift */; }; - 080C5E851EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E831EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift */; }; 080C5E861EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E831EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift */; }; 080C9A2C1BAC88E2001BE326 /* UICustomizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C9A2B1BAC88E2001BE326 /* UICustomizer.swift */; }; 080CE1431E955D300089A27F /* CoursesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1421E955D300089A27F /* CoursesAPI.swift */; }; - 080CE1441E955D300089A27F /* CoursesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1421E955D300089A27F /* CoursesAPI.swift */; }; 080CE1461E9560EB0089A27F /* SectionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1451E9560EB0089A27F /* SectionsAPI.swift */; }; - 080CE1471E9560EB0089A27F /* SectionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1451E9560EB0089A27F /* SectionsAPI.swift */; }; 080CE1491E9562430089A27F /* LessonsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1481E9562430089A27F /* LessonsAPI.swift */; }; - 080CE14A1E9562430089A27F /* LessonsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1481E9562430089A27F /* LessonsAPI.swift */; }; 080CE14C1E9562BF0089A27F /* UsersAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14B1E9562BF0089A27F /* UsersAPI.swift */; }; - 080CE14D1E9562BF0089A27F /* UsersAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14B1E9562BF0089A27F /* UsersAPI.swift */; }; 080CE14F1E9562F30089A27F /* StepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14E1E9562F30089A27F /* StepsAPI.swift */; }; - 080CE1501E9562F30089A27F /* StepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14E1E9562F30089A27F /* StepsAPI.swift */; }; 080CE1521E9563170089A27F /* AssignmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1511E9563170089A27F /* AssignmentsAPI.swift */; }; - 080CE1531E9563170089A27F /* AssignmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1511E9563170089A27F /* AssignmentsAPI.swift */; }; 080CE1551E9563590089A27F /* ProgressesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1541E9563590089A27F /* ProgressesAPI.swift */; }; - 080CE1561E95635A0089A27F /* ProgressesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1541E9563590089A27F /* ProgressesAPI.swift */; }; 080CE1581E9566220089A27F /* ViewsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1571E9566220089A27F /* ViewsAPI.swift */; }; - 080CE1591E9566220089A27F /* ViewsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1571E9566220089A27F /* ViewsAPI.swift */; }; 080CE15B1E95804C0089A27F /* SearchResultsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15A1E95804C0089A27F /* SearchResultsAPI.swift */; }; - 080CE15C1E95804C0089A27F /* SearchResultsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15A1E95804C0089A27F /* SearchResultsAPI.swift */; }; 080CE15E1E9580CD0089A27F /* AttemptsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15D1E9580CD0089A27F /* AttemptsAPI.swift */; }; - 080CE15F1E9580CD0089A27F /* AttemptsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15D1E9580CD0089A27F /* AttemptsAPI.swift */; }; 080CE1611E9581960089A27F /* SubmissionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1601E9581960089A27F /* SubmissionsAPI.swift */; }; - 080CE1621E9581960089A27F /* SubmissionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1601E9581960089A27F /* SubmissionsAPI.swift */; }; 080DCF171C4518BC00DE3E2E /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080DCF161C4518BC00DE3E2E /* SearchResult.swift */; }; 080E80F51F0070C900DC0EA5 /* CodeLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80F41F0070C900DC0EA5 /* CodeLanguages.swift */; }; - 080E80F61F0070C900DC0EA5 /* CodeLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80F41F0070C900DC0EA5 /* CodeLanguages.swift */; }; 080E80F71F0070C900DC0EA5 /* CodeLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80F41F0070C900DC0EA5 /* CodeLanguages.swift */; }; 080E80FE1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80FC1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift */; }; - 080E80FF1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80FC1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift */; }; 080E81001F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80FC1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift */; }; 080E81011F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080E80FD1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib */; }; - 080E81021F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080E80FD1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib */; }; 080E81031F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080E80FD1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib */; }; 080EBA331EA64BC000C43C93 /* PresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA321EA64BC000C43C93 /* PresentationContainer.swift */; }; - 080EBA341EA64BC000C43C93 /* PresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA321EA64BC000C43C93 /* PresentationContainer.swift */; }; 080EBA371EA64C0C00C43C93 /* CertificatesPresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA361EA64C0C00C43C93 /* CertificatesPresentationContainer.swift */; }; - 080EBA381EA64C0C00C43C93 /* CertificatesPresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA361EA64C0C00C43C93 /* CertificatesPresentationContainer.swift */; }; 080F211B2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F211A2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift */; }; 080F211C2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F211A2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift */; }; 080F211E2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F211A2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift */; }; @@ -116,55 +83,47 @@ 080F74641BD9213D0064AAEA /* VideosInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74631BD9213D0064AAEA /* VideosInfo.swift */; }; 080F74661BD924B80064AAEA /* VideoQualityTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74651BD924B80064AAEA /* VideoQualityTableViewController.swift */; }; 081058351E9FDD3B00FAC30A /* CertificatesViewTestMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081058341E9FDD3B00FAC30A /* CertificatesViewTestMock.swift */; }; - 081058361E9FDD3B00FAC30A /* CertificatesViewTestMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081058341E9FDD3B00FAC30A /* CertificatesViewTestMock.swift */; }; 081387DF1D7AF5C30092E05D /* StyledNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387DE1D7AF5C30092E05D /* StyledNavigationViewController.swift */; }; 081387E11D7AF7700092E05D /* StyledTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387E01D7AF7700092E05D /* StyledTabBarViewController.swift */; }; 0813EEA61BFE5A5400DB4B83 /* Assignment+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA41BFE5A5400DB4B83 /* Assignment+CoreDataProperties.swift */; }; 0813EEA71BFE5A5400DB4B83 /* Assignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA51BFE5A5400DB4B83 /* Assignment.swift */; }; 0815661B1F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; - 0815661C1F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 0815661D1F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 0815661F1F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 081566201F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 081566211F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 081566221F69C3910082B359 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; 081566251F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; - 081566261F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 081566271F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 081566291F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 0815662A1F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 0815662B1F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 0815662C1F69C3AD0082B359 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; 081959E01FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; - 081959E11FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959E21FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959E41FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959E51FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959E61FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959E71FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; 081959EA1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; - 081959EB1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 081959EC1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 081959EE1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 081959EF1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 081959F01FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 081959F11FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; 08195A061FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; - 08195A071FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A081FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A0A1FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A0B1FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A0C1FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A0D1FA00FF400E6D6CD /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; 08195A181FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; - 08195A191FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A1A1FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A1C1FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A1D1FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A1E1FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A1F1FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; 08195A211FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; - 08195A221FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; 08195A231FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; 08195A251FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; 08195A261FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; @@ -178,11 +137,8 @@ 082348391ECA264100D2CB40 /* ShareableController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082348381ECA264000D2CB40 /* ShareableController.swift */; }; 0824289C1BB0104700C98185 /* Alamofire-SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0824289B1BB0104700C98185 /* Alamofire-SwiftyJSON.swift */; }; 08263D701DE5F230002E5B7F /* NotificationTimePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08263D6E1DE5F230002E5B7F /* NotificationTimePickerViewController.swift */; }; - 08263D711DE5F230002E5B7F /* NotificationTimePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08263D6E1DE5F230002E5B7F /* NotificationTimePickerViewController.swift */; }; 08263D721DE5F230002E5B7F /* PickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08263D6F1DE5F230002E5B7F /* PickerViewController.xib */; }; - 08263D731DE5F230002E5B7F /* PickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08263D6F1DE5F230002E5B7F /* PickerViewController.xib */; }; 082799481E9B81AF008A3786 /* RateAppAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082799471E9B81AF008A3786 /* RateAppAlertManager.swift */; }; - 082799491E9B81AF008A3786 /* RateAppAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082799471E9B81AF008A3786 /* RateAppAlertManager.swift */; }; 0828FF6E1BC5D177000AFEA7 /* Section+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6C1BC5D177000AFEA7 /* Section+CoreDataProperties.swift */; }; 0828FF6F1BC5D177000AFEA7 /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6D1BC5D177000AFEA7 /* Section.swift */; }; 0828FF761BC5E6B0000AFEA7 /* SectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF741BC5E6B0000AFEA7 /* SectionTableViewCell.swift */; }; @@ -197,13 +153,9 @@ 0828FF8C1BC81F41000AFEA7 /* UnitTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF8A1BC81F41000AFEA7 /* UnitTableViewCell.swift */; }; 0828FF8D1BC81F41000AFEA7 /* UnitTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF8B1BC81F41000AFEA7 /* UnitTableViewCell.xib */; }; 0829B8321E9C4CB5009B4A84 /* RateAppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8311E9C4CB5009B4A84 /* RateAppManager.swift */; }; - 0829B8331E9C4CB5009B4A84 /* RateAppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8311E9C4CB5009B4A84 /* RateAppManager.swift */; }; 0829B8351E9D025C009B4A84 /* CertificatesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8341E9D025C009B4A84 /* CertificatesAPI.swift */; }; - 0829B8361E9D025C009B4A84 /* CertificatesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8341E9D025C009B4A84 /* CertificatesAPI.swift */; }; 0829B83A1E9D05AE009B4A84 /* Certificate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8381E9D05AE009B4A84 /* Certificate.swift */; }; - 0829B83B1E9D05AE009B4A84 /* Certificate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8381E9D05AE009B4A84 /* Certificate.swift */; }; 0829B83C1E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8391E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift */; }; - 0829B83D1E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8391E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift */; }; 082A88FE2046F0460079F038 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; 082A88FF2046F0460079F038 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; 082A89012046F0460079F038 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; @@ -211,51 +163,28 @@ 082A89032046F0460079F038 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; 082A89042046F0460079F038 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; 082BE3AE1E676373006BC60F /* AuthRoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3AD1E676373006BC60F /* AuthRoutingManager.swift */; }; - 082BE3AF1E676373006BC60F /* AuthRoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3AD1E676373006BC60F /* AuthRoutingManager.swift */; }; 082BE3B21E67686B006BC60F /* RoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3B11E67686B006BC60F /* RoutingManager.swift */; }; - 082BE3B31E67686B006BC60F /* RoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3B11E67686B006BC60F /* RoutingManager.swift */; }; 082CB1B61D08971900C79A27 /* DiscussionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082CB1B41D08971900C79A27 /* DiscussionsViewController.swift */; }; - 082CB1B71D08971900C79A27 /* DiscussionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082CB1B41D08971900C79A27 /* DiscussionsViewController.swift */; }; 082CB1B81D08971900C79A27 /* DiscussionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 082CB1B51D08971900C79A27 /* DiscussionsViewController.xib */; }; - 082CB1B91D08971900C79A27 /* DiscussionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 082CB1B51D08971900C79A27 /* DiscussionsViewController.xib */; }; 082E5E0E1F46379100F41426 /* ReplyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E5E0D1F46379100F41426 /* ReplyCache.swift */; }; - 082E5E0F1F46379100F41426 /* ReplyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E5E0D1F46379100F41426 /* ReplyCache.swift */; }; 082E5E101F46379100F41426 /* ReplyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E5E0D1F46379100F41426 /* ReplyCache.swift */; }; 082FD64C1D6C849C007F3E07 /* ReplaceLastSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082FD64B1D6C849C007F3E07 /* ReplaceLastSegue.swift */; }; - 082FD64D1D6C849C007F3E07 /* ReplaceLastSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082FD64B1D6C849C007F3E07 /* ReplaceLastSegue.swift */; }; - 083056D21DBFB4BE00F1F2A4 /* DiscussionWebTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B9770A1D19D5AA00FFC52C /* DiscussionWebTableViewCell.swift */; }; - 083056D31DBFB4C500F1F2A4 /* DiscussionWebTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08B977091D19D5AA00FFC52C /* DiscussionWebTableViewCell.xib */; }; 083267A61CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A51CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift */; }; - 083267A71CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A51CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift */; }; 083267A91CDCF59B002F7B5A /* DictionarySerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A81CDCF59B002F7B5A /* DictionarySerializable.swift */; }; - 083267AA1CDCF59B002F7B5A /* DictionarySerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A81CDCF59B002F7B5A /* DictionarySerializable.swift */; }; 0834C4691E2CE469002F8516 /* MatchingDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C4681E2CE469002F8516 /* MatchingDataset.swift */; }; - 0834C46A1E2CE469002F8516 /* MatchingDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C4681E2CE469002F8516 /* MatchingDataset.swift */; }; 0834C46C1E2CE66B002F8516 /* MatchingReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46B1E2CE66B002F8516 /* MatchingReply.swift */; }; - 0834C46D1E2CE66B002F8516 /* MatchingReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46B1E2CE66B002F8516 /* MatchingReply.swift */; }; 0834C4701E2CEC4E002F8516 /* MatchingQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46E1E2CEC4E002F8516 /* MatchingQuizViewController.swift */; }; - 0834C4711E2CEC4E002F8516 /* MatchingQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46E1E2CEC4E002F8516 /* MatchingQuizViewController.swift */; }; 083540611CE5DD5000BDFEA5 /* NotificationReactionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083540601CE5DD5000BDFEA5 /* NotificationReactionHandler.swift */; }; 083540671CE5FC0E00BDFEA5 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083540661CE5FC0E00BDFEA5 /* Notification.swift */; }; - 083540681CE5FC0E00BDFEA5 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083540661CE5FC0E00BDFEA5 /* Notification.swift */; }; 083554291CC8FD2D004C4E85 /* NotificationRegistrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083554271CC8FD2D004C4E85 /* NotificationRegistrator.swift */; }; - 0835542A1CC8FD2D004C4E85 /* NotificationRegistrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083554271CC8FD2D004C4E85 /* NotificationRegistrator.swift */; }; 083622D81CD1FA4800CD8915 /* StepTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083622D71CD1FA4800CD8915 /* StepTabView.swift */; }; - 083622D91CD1FA4800CD8915 /* StepTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083622D71CD1FA4800CD8915 /* StepTabView.swift */; }; 083622DC1CD1FA6700CD8915 /* StepTabView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083622DB1CD1FA6700CD8915 /* StepTabView.xib */; }; - 083622DD1CD1FA6700CD8915 /* StepTabView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083622DB1CD1FA6700CD8915 /* StepTabView.xib */; }; 083749261DE5AE0400144C14 /* Alerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749251DE5AE0400144C14 /* Alerts.swift */; }; - 083749271DE5AE0400144C14 /* Alerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749251DE5AE0400144C14 /* Alerts.swift */; }; 0837492A1DE5AF8A00144C14 /* StreaksAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749291DE5AF8A00144C14 /* StreaksAlertManager.swift */; }; - 0837492B1DE5AF8A00144C14 /* StreaksAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749291DE5AF8A00144C14 /* StreaksAlertManager.swift */; }; 0837492D1DE5B07900144C14 /* AlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492C1DE5B07900144C14 /* AlertManager.swift */; }; - 0837492E1DE5B07900144C14 /* AlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492C1DE5B07900144C14 /* AlertManager.swift */; }; 083749301DE5BBF700144C14 /* PreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492F1DE5BBF700144C14 /* PreferencesContainer.swift */; }; - 083749311DE5BBF700144C14 /* PreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492F1DE5BBF700144C14 /* PreferencesContainer.swift */; }; 083749341DE5BC2B00144C14 /* NotificationPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749331DE5BC2A00144C14 /* NotificationPreferencesContainer.swift */; }; - 083749351DE5BC2B00144C14 /* NotificationPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749331DE5BC2A00144C14 /* NotificationPreferencesContainer.swift */; }; 083749371DE5C7DC00144C14 /* LocalNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749361DE5C7DC00144C14 /* LocalNotificationManager.swift */; }; - 083749381DE5C7DC00144C14 /* LocalNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749361DE5C7DC00144C14 /* LocalNotificationManager.swift */; }; 083AA36A1E083FD3003E054E /* WatchCoursesDisplayingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AA3691E083FD3003E054E /* WatchCoursesDisplayingHelper.swift */; }; 083AABE81BE8D63D005E1E96 /* Progress+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE61BE8D63C005E1E96 /* Progress+CoreDataProperties.swift */; }; 083AABE91BE8D63D005E1E96 /* Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE71BE8D63C005E1E96 /* Progress.swift */; }; @@ -268,94 +197,66 @@ 083D649C1C172015003222F0 /* StepicApplicationsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D649B1C172015003222F0 /* StepicApplicationsInfo.swift */; }; 083D64AF1C19BDB2003222F0 /* ControllerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D64AE1C19BDB2003222F0 /* ControllerHelper.swift */; }; 083E1DA61C96E9F100B305E4 /* ApplicationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083E1DA51C96E9F100B305E4 /* ApplicationInfo.swift */; }; - 083E1DA71C96E9F100B305E4 /* ApplicationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083E1DA51C96E9F100B305E4 /* ApplicationInfo.swift */; }; 083E49DD2072B684004896C0 /* IDFetchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083E49DC2072B684004896C0 /* IDFetchable.swift */; }; 083F2B111E9D8E8F00714173 /* CertificatesStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B101E9D8E8F00714173 /* CertificatesStoryboard.storyboard */; }; - 083F2B121E9D8E8F00714173 /* CertificatesStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B101E9D8E8F00714173 /* CertificatesStoryboard.storyboard */; }; 083F2B141E9D8EF800714173 /* CertificatesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B131E9D8EF800714173 /* CertificatesViewController.swift */; }; - 083F2B151E9D8EF800714173 /* CertificatesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B131E9D8EF800714173 /* CertificatesViewController.swift */; }; 083F2B171E9D8F1D00714173 /* CertificatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B161E9D8F1D00714173 /* CertificatesView.swift */; }; - 083F2B181E9D8F1D00714173 /* CertificatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B161E9D8F1D00714173 /* CertificatesView.swift */; }; 083F2B1A1E9D920500714173 /* CertificatesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B191E9D920500714173 /* CertificatesPresenter.swift */; }; - 083F2B1B1E9D920500714173 /* CertificatesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B191E9D920500714173 /* CertificatesPresenter.swift */; }; 083F2B1D1E9D9ABB00714173 /* CertificateViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1C1E9D9ABB00714173 /* CertificateViewData.swift */; }; - 083F2B1E1E9D9ABB00714173 /* CertificateViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1C1E9D9ABB00714173 /* CertificateViewData.swift */; }; 083F2B211E9E645000714173 /* CertificateTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1F1E9E645000714173 /* CertificateTableViewCell.swift */; }; - 083F2B221E9E645000714173 /* CertificateTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1F1E9E645000714173 /* CertificateTableViewCell.swift */; }; 083F2B231E9E645000714173 /* CertificateTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B201E9E645000714173 /* CertificateTableViewCell.xib */; }; - 083F2B241E9E645000714173 /* CertificateTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B201E9E645000714173 /* CertificateTableViewCell.xib */; }; 083F2B261E9EC10A00714173 /* LoadingPaginationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B251E9EC10A00714173 /* LoadingPaginationView.xib */; }; - 083F2B271E9EC10A00714173 /* LoadingPaginationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B251E9EC10A00714173 /* LoadingPaginationView.xib */; }; 083F2B2A1E9EC17F00714173 /* LoadingPaginationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B291E9EC17F00714173 /* LoadingPaginationView.swift */; }; - 083F2B2B1E9EC17F00714173 /* LoadingPaginationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B291E9EC17F00714173 /* LoadingPaginationView.swift */; }; 083F2B2D1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B2C1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift */; }; - 083F2B2E1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B2C1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift */; }; 084070801D64847000308FC1 /* SharingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0840707F1D64847000308FC1 /* SharingHelper.swift */; }; - 084070811D64847400308FC1 /* SharingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0840707F1D64847000308FC1 /* SharingHelper.swift */; }; 084070871D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084070861D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift */; }; - 084070881D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084070861D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift */; }; 08407EC71DE4891D0082C4E7 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 08407EC81DE4891D0082C4E7 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; 084156931BCBFFBD006B8C73 /* Block+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0841568F1BCBFFBD006B8C73 /* Block+CoreDataProperties.swift */; }; 084156941BCBFFBD006B8C73 /* Block.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156901BCBFFBD006B8C73 /* Block.swift */; }; 084156951BCBFFBD006B8C73 /* Step+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156911BCBFFBD006B8C73 /* Step+CoreDataProperties.swift */; }; 084156961BCBFFBD006B8C73 /* Step.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156921BCBFFBD006B8C73 /* Step.swift */; }; 0841BDC71E082AE7008CE13E /* WatchDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0841BDC61E082AE7008CE13E /* WatchDataHelper.swift */; }; 084472061D05918E00197166 /* ChoiceQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084472041D05918E00197166 /* ChoiceQuizTableViewCell.swift */; }; - 084472071D05918E00197166 /* ChoiceQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084472041D05918E00197166 /* ChoiceQuizTableViewCell.swift */; }; 084472081D05918E00197166 /* ChoiceQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084472051D05918E00197166 /* ChoiceQuizTableViewCell.xib */; }; - 084472091D05918E00197166 /* ChoiceQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084472051D05918E00197166 /* ChoiceQuizTableViewCell.xib */; }; 084490001F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; - 084490011F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490021F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490041F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490051F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490061F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490071F5CE15200D01940 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; 084490091F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; - 0844900A1F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 0844900B1F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 0844900D1F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 0844900E1F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 0844900F1F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 084490101F5D67E300D01940 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; 0846B1031EDDED1000D64D77 /* StepOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1021EDDED1000D64D77 /* StepOptions.swift */; }; - 0846B1041EDDED1000D64D77 /* StepOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1021EDDED1000D64D77 /* StepOptions.swift */; }; 0846B1051EDDED1000D64D77 /* StepOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1021EDDED1000D64D77 /* StepOptions.swift */; }; 0846B1071EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1061EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift */; }; - 0846B1081EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1061EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift */; }; 0846B1091EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1061EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift */; }; 0846B10C1EDDEE7F00D64D77 /* CodeLimit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10B1EDDEE7F00D64D77 /* CodeLimit.swift */; }; - 0846B10D1EDDEE7F00D64D77 /* CodeLimit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10B1EDDEE7F00D64D77 /* CodeLimit.swift */; }; 0846B10E1EDDEE7F00D64D77 /* CodeLimit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10B1EDDEE7F00D64D77 /* CodeLimit.swift */; }; 0846B1101EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10F1EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift */; }; - 0846B1111EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10F1EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift */; }; 0846B1121EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10F1EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift */; }; 0846B1151EDDF63200D64D77 /* CodeTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1141EDDF63200D64D77 /* CodeTemplate.swift */; }; - 0846B1161EDDF63200D64D77 /* CodeTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1141EDDF63200D64D77 /* CodeTemplate.swift */; }; 0846B1171EDDF63200D64D77 /* CodeTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1141EDDF63200D64D77 /* CodeTemplate.swift */; }; 0846B1191EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1181EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift */; }; - 0846B11A1EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1181EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift */; }; 0846B11B1EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1181EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift */; }; 084BD9BB1E5368B600B1901E /* PickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084BD9BA1E5368B600B1901E /* PickerViewController.swift */; }; 084C658D1FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; - 084C658E1FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C658F1FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C65911FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C65921FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C65931FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C65941FDAD04C006A3E17 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; 084C9AF81EC4C11A00AC5C3C /* jquery-3.2.1.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 084C9AF71EC4C11A00AC5C3C /* jquery-3.2.1.min.js */; }; - 084C9AF91EC4C11A00AC5C3C /* jquery-3.2.1.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 084C9AF71EC4C11A00AC5C3C /* jquery-3.2.1.min.js */; }; 084DB9D51FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; - 084DB9D61FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9D71FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9D91FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9DA1FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9DB1FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9DC1FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; 084DB9DE1FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; - 084DB9DF1FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; 084DB9E01FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; 084DB9E21FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; 084DB9E31FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; @@ -363,56 +264,36 @@ 084DB9E51FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; 084DDDE1204EDF7600913503 /* NotificationRequestAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DDDE0204EDF7500913503 /* NotificationRequestAlertViewController.swift */; }; 084F7AA71E76EF690088368A /* LastStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA61E76EF690088368A /* LastStep.swift */; }; - 084F7AA81E76EF690088368A /* LastStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA61E76EF690088368A /* LastStep.swift */; }; 084F7AAA1E76EF780088368A /* LastStep+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA91E76EF780088368A /* LastStep+CoreDataProperties.swift */; }; - 084F7AAB1E76EF780088368A /* LastStep+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA91E76EF780088368A /* LastStep+CoreDataProperties.swift */; }; 084F7AAD1E775A210088368A /* LastStepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AAC1E775A210088368A /* LastStepsAPI.swift */; }; - 084F7AAE1E775A210088368A /* LastStepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AAC1E775A210088368A /* LastStepsAPI.swift */; }; 085290C61FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; - 085290C71FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085290C81FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085290CA1FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085290CB1FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085290CC1FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085290CD1FB5C4550053F22D /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; 085514EB1CFB09760080CB88 /* CellWebViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085514EA1CFB09760080CB88 /* CellWebViewHelper.swift */; }; - 085514EC1CFB09760080CB88 /* CellWebViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085514EA1CFB09760080CB88 /* CellWebViewHelper.swift */; }; 0856E2562039769F00575394 /* AnalyticsEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035201D65A252003515C6 /* AnalyticsEvents.swift */; }; 0857AA211BECDA640044B505 /* VideoDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0857AA201BECDA640044B505 /* VideoDownload.swift */; }; 0858B7091CFF271200459A6A /* TagDetectionUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0858B7081CFF271200459A6A /* TagDetectionUtil.swift */; }; - 0858B70A1CFF271200459A6A /* TagDetectionUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0858B7081CFF271200459A6A /* TagDetectionUtil.swift */; }; 0859AE951E4F19B600A0D206 /* FillBlanksQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE941E4F19B600A0D206 /* FillBlanksQuizViewController.swift */; }; - 0859AE961E4F19B600A0D206 /* FillBlanksQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE941E4F19B600A0D206 /* FillBlanksQuizViewController.swift */; }; 0859AE991E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE971E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift */; }; - 0859AE9A1E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE971E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift */; }; 0859AE9B1E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AE981E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib */; }; - 0859AE9C1E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AE981E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib */; }; 0859AEA11E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE9F1E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift */; }; - 0859AEA21E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE9F1E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift */; }; 0859AEA31E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA01E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib */; }; - 0859AEA41E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA01E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib */; }; 0859AEA81E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEA61E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift */; }; - 0859AEA91E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEA61E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift */; }; 0859AEAA1E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA71E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib */; }; - 0859AEAB1E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA71E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib */; }; 0859AEAD1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEAC1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift */; }; - 0859AEAE1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEAC1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift */; }; 085C4FF31D89C86F00B27C95 /* UnitsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF21D89C86F00B27C95 /* UnitsAPI.swift */; }; - 085C4FF41D89C86F00B27C95 /* UnitsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF21D89C86F00B27C95 /* UnitsAPI.swift */; }; 085C4FF61D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF51D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift */; }; - 085C4FF71D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF51D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift */; }; 085D5CE41D007F6500092060 /* HTMLParsingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085D5CE31D007F6500092060 /* HTMLParsingTests.swift */; }; 085DF8D01C99A6F7006809D9 /* PlayerTestStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 085DF8CF1C99A6F7006809D9 /* PlayerTestStoryboard.storyboard */; }; 085DF8D31C99A8F9006809D9 /* PlayerTestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D21C99A8F9006809D9 /* PlayerTestViewController.swift */; }; 085DF8D51C99B9FB006809D9 /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D41C99B9FB006809D9 /* Player.swift */; }; - 085DF8D61C99B9FB006809D9 /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D41C99B9FB006809D9 /* Player.swift */; }; 085DF8D81C99C49E006809D9 /* VideoRate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D71C99C49E006809D9 /* VideoRate.swift */; }; - 085DF8D91C99C49E006809D9 /* VideoRate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D71C99C49E006809D9 /* VideoRate.swift */; }; 085DF8DB1C9AB94B006809D9 /* TimeFormatHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8DA1C9AB94B006809D9 /* TimeFormatHelper.swift */; }; - 085DF8DC1C9AB94C006809D9 /* TimeFormatHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8DA1C9AB94B006809D9 /* TimeFormatHelper.swift */; }; 085E9E6B1F138C1A00D6A4BC /* CodeSnippetSymbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9111F10C5480087D61B /* CodeSnippetSymbols.swift */; }; 085E9E6C1F138C1D00D6A4BC /* InputAccessoryBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9141F10EA690087D61B /* InputAccessoryBuilder.swift */; }; - 085E9E6D1F138C2800D6A4BC /* CodeLanguagePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081BF3461EFEF630002F84AA /* CodeLanguagePickerViewController.swift */; }; 085E9E6E1F138C3500D6A4BC /* CodeSuggestionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9171F115D830087D61B /* CodeSuggestionsTableViewController.swift */; }; 085E9E6F1F138C3800D6A4BC /* CodeSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC1A1F117257005CA0FB /* CodeSuggestionTableViewCell.swift */; }; 085E9E701F138C3B00D6A4BC /* AutocompleteWords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC201F127470005CA0FB /* AutocompleteWords.swift */; }; @@ -423,74 +304,49 @@ 085EDCB51F9945CE00AB3278 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; 085EDCB61F9945CE00AB3278 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; 085EDCB71F9945CF00AB3278 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; - 085EDCB81F9945D100AB3278 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; 085EDCB91F9945D900AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; 085EDCBB1F9945DA00AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; 085EDCBC1F9945DB00AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; 085EDCBD1F9945DB00AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; 085EDCBE1F9945DC00AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; - 085EDCBF1F9945DD00AB3278 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; - 085EDCC01F99462B00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 085EDCC11F99462C00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 085EDCC31F99462C00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 085EDCC41F99462D00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 085EDCC51F99462D00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 085EDCC61F99462E00AB3278 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; 0860D9121F10C5480087D61B /* CodeSnippetSymbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9111F10C5480087D61B /* CodeSnippetSymbols.swift */; }; - 0860D9131F10C5480087D61B /* CodeSnippetSymbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9111F10C5480087D61B /* CodeSnippetSymbols.swift */; }; 0860D9151F10EA690087D61B /* InputAccessoryBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9141F10EA690087D61B /* InputAccessoryBuilder.swift */; }; - 0860D9161F10EA690087D61B /* InputAccessoryBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9141F10EA690087D61B /* InputAccessoryBuilder.swift */; }; 0860D9191F115D830087D61B /* CodeSuggestionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9171F115D830087D61B /* CodeSuggestionsTableViewController.swift */; }; - 0860D91A1F115D830087D61B /* CodeSuggestionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9171F115D830087D61B /* CodeSuggestionsTableViewController.swift */; }; 0860D91B1F115D830087D61B /* CodeSuggestionsTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0860D9181F115D830087D61B /* CodeSuggestionsTableViewController.xib */; }; - 0860D91C1F115D830087D61B /* CodeSuggestionsTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0860D9181F115D830087D61B /* CodeSuggestionsTableViewController.xib */; }; 0861E6721CD80A9600B45652 /* Executable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6711CD80A9600B45652 /* Executable.swift */; }; - 0861E6731CD80A9600B45652 /* Executable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6711CD80A9600B45652 /* Executable.swift */; }; 0861E6751CD8106E00B45652 /* ExecutionQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6741CD8106E00B45652 /* ExecutionQueue.swift */; }; - 0861E6761CD8106E00B45652 /* ExecutionQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6741CD8106E00B45652 /* ExecutionQueue.swift */; }; 0861E67B1CD9483500B45652 /* ExecutionQueues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E67A1CD9483500B45652 /* ExecutionQueues.swift */; }; - 0861E67C1CD9483500B45652 /* ExecutionQueues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E67A1CD9483500B45652 /* ExecutionQueues.swift */; }; 0863B9672069A41A0023A182 /* RetrieveRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0863B9662069A41A0023A182 /* RetrieveRequestMaker.swift */; }; - 086442B51F764F67000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442B61F764F68000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442B81F764F69000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442B91F764F6A000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442BA1F764F6B000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442BB1F764F6B000CC53D /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; 086442BC1F764F90000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; - 086442BD1F764F91000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; 086442BF1F764F92000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; 086442C01F764F92000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; 086442C11F764F93000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; 086442C21F764F93000CC53D /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; 086442C31F764FED000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; - 086442C41F764FEE000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; 086442C61F764FEF000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; 086442C71F764FF0000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; 086442C81F764FF0000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; 086442C91F764FF1000CC53D /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; - 086442CA1F765004000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; 086442CB1F765005000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; 086442CD1F765007000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; 086442CE1F765007000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; 086442CF1F765007000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; 086442D01F765008000CC53D /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; - 086442D11F765011000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; 086442D21F765012000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; 086442D41F765013000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; 086442D51F765014000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; 086442D61F765014000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; 086442D71F765014000CC53D /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; - 0864949B1E8C78A20083E0BE /* SbStepicApplicationsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864948F1E8C753B0083E0BE /* SbStepicApplicationsInfo.swift */; }; - 0864949C1E8C78AA0083E0BE /* SbSocialNetworks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864948E1E8C753B0083E0BE /* SbSocialNetworks.swift */; }; - 0864949D1E8C79490083E0BE /* SbControllerHelperLaunchExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864948A1E8C753B0083E0BE /* SbControllerHelperLaunchExtension.swift */; }; - 0864949E1E8C79530083E0BE /* SbAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086494881E8C753B0083E0BE /* SbAppDelegate.swift */; }; - 0864949F1E8C79690083E0BE /* SbEntranceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864948B1E8C753B0083E0BE /* SbEntranceViewController.swift */; }; - 086494A11E8C7A060083E0BE /* SberbankUniversity.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 086494851E8C753B0083E0BE /* SberbankUniversity.xcassets */; }; - 086494A21E8C7A180083E0BE /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 086494871E8C753B0083E0BE /* GoogleService-Info.plist */; }; - 086494A41E8C7A270083E0BE /* SbAuth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 086494891E8C753B0083E0BE /* SbAuth.storyboard */; }; - 086494A51E8C7A360083E0BE /* SbEntranceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0864948C1E8C753B0083E0BE /* SbEntranceViewController.xib */; }; - 086494A61E8C7A3B0083E0BE /* SbLaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0864948D1E8C753B0083E0BE /* SbLaunchScreen.xib */; }; 086538381EB02716003A8415 /* Stickers.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 086538371EB02716003A8415 /* Stickers.xcassets */; }; 0865383C1EB02716003A8415 /* StickerPackExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 086538351EB02715003A8415 /* StickerPackExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 08666B5A1E11C53D00799731 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08666B5C1E11C53D00799731 /* Localizable.strings */; }; @@ -498,54 +354,40 @@ 08687BAE1BACB43700F5BDE1 /* RefreshTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08687BAC1BACB43700F5BDE1 /* RefreshTableViewCell.swift */; }; 08687BAF1BACB43700F5BDE1 /* RefreshTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08687BAD1BACB43700F5BDE1 /* RefreshTableViewCell.xib */; }; 0868C17E1F375A1200D77C5F /* SearchQueriesPersistentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0868C17D1F375A1200D77C5F /* SearchQueriesPersistentManager.swift */; }; - 0868C17F1F375A1200D77C5F /* SearchQueriesPersistentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0868C17D1F375A1200D77C5F /* SearchQueriesPersistentManager.swift */; }; 0868C1801F375A1200D77C5F /* SearchQueriesPersistentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0868C17D1F375A1200D77C5F /* SearchQueriesPersistentManager.swift */; }; - 0869530F1D747DC0003857A2 /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; - 086953101D747DC0003857A2 /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 086953121D748303003857A2 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; - 086953131D748304003857A2 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 0869F6D21CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869F6D11CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift */; }; - 0869F6D31CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869F6D11CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift */; }; 0869F6D51CE229C800F8A6DB /* Queues.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0869F6D41CE229C800F8A6DB /* Queues.plist */; }; - 0869F6D61CE229C800F8A6DB /* Queues.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0869F6D41CE229C800F8A6DB /* Queues.plist */; }; 0869F6D81CE3684000F8A6DB /* default_sound.wav in Resources */ = {isa = PBXBuildFile; fileRef = 0869F6D71CE3684000F8A6DB /* default_sound.wav */; }; 086A8B251D21434B00F45C45 /* Vote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B241D21434B00F45C45 /* Vote.swift */; }; - 086A8B261D21434B00F45C45 /* Vote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B241D21434B00F45C45 /* Vote.swift */; }; 086A8B281D21796800F45C45 /* VotesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B271D21796800F45C45 /* VotesAPI.swift */; }; - 086A8B291D21796800F45C45 /* VotesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B271D21796800F45C45 /* VotesAPI.swift */; }; 086A9D621C74AF90003611DC /* GlobalFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A9D611C74AF90003611DC /* GlobalFunctions.swift */; }; 086B7F071D194D4B00055B4E /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086B7F061D194D4B00055B4E /* NSAttributedStringExtensions.swift */; }; - 086B7F081D194D4B00055B4E /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086B7F061D194D4B00055B4E /* NSAttributedStringExtensions.swift */; }; 086BE2851F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; - 086BE2861F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE2871F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE2891F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE28A1F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE28B1F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE28C1F901CCF00B4BE56 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; 086BE2A91F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; - 086BE2AA1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2AB1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2AD1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2AE1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2AF1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2B01F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; 086BE2B21F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; - 086BE2B31F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086BE2B41F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086BE2B61F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086BE2B71F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086BE2B81F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086BE2B91F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; 086D5B3F20127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; - 086D5B4020127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B4120127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B4320127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B4420127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B4520127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B4620127A25000F7715 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; 086D5B52201283C2000F7715 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; - 086D5B53201283C2000F7715 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; 086D5B54201283C2000F7715 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; 086D5B56201283C2000F7715 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; 086D5B57201283C2000F7715 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; @@ -554,22 +396,18 @@ 086E965E1BF6683800AB952D /* VideoDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086E965D1BF6683800AB952D /* VideoDownloadView.xib */; }; 086E96601BF66A1800AB952D /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086E965F1BF66A1800AB952D /* VideoDownloadView.swift */; }; 086FC6A01FE046C100C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; - 086FC6A11FE046C200C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; 086FC6A31FE046C400C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; 086FC6A41FE046C400C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; 086FC6A51FE046C500C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; 086FC6A61FE046C500C7DFF4 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; 086FC6A81FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; - 086FC6A91FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 086FC6AA1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 086FC6AC1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 086FC6AD1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 086FC6AE1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 086FC6AF1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; 087039301CD7413D00B6571B /* NotificationAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0870392F1CD7413D00B6571B /* NotificationAlertConstructor.swift */; }; - 087039311CD7413D00B6571B /* NotificationAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0870392F1CD7413D00B6571B /* NotificationAlertConstructor.swift */; }; 087296DC20168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; - 087296DD20168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; 087296DE20168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; 087296E020168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; 087296E120168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; @@ -578,38 +416,30 @@ 087387D81BB9A4BD003CFAD1 /* CoreDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D71BB9A4BD003CFAD1 /* CoreDataHelper.swift */; }; 087387DA1BB9B768003CFAD1 /* ErrorEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D91BB9B768003CFAD1 /* ErrorEnums.swift */; }; 087585A31FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; - 087585A41FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585A51FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585A71FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585A81FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585A91FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585AA1FB50D640047A269 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; 087585AE1FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; - 087585AF1FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B01FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B21FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B31FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B41FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B51FB51D720047A269 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; 087585B71FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; - 087585B81FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585B91FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585BB1FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585BC1FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585BD1FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585BE1FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; 087585C01FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; - 087585C11FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; 087585C21FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; 087585C41FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; 087585C51FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; 087585C61FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; 087585C71FB524C20047A269 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; - 08758A9B1CDB99C400159233 /* DevicesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A21CCA69C700FFF29E /* DevicesAPI.swift */; }; - 08758A9C1CDB99C700159233 /* APIDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A61CCA75F400FFF29E /* APIDefaults.swift */; }; - 08758A9D1CDB99CF00159233 /* Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A41CCA69F300FFF29E /* Device.swift */; }; 087854F51DF6EE0D00368A50 /* wysiwyg.css in Resources */ = {isa = PBXBuildFile; fileRef = 087854F41DF6EE0D00368A50 /* wysiwyg.css */; }; - 087854F61DF6EE0D00368A50 /* wysiwyg.css in Resources */ = {isa = PBXBuildFile; fileRef = 087854F41DF6EE0D00368A50 /* wysiwyg.css */; }; 087D96B91EBB7C7700059408 /* Tokens.plist in Resources */ = {isa = PBXBuildFile; fileRef = 087D96B81EBB7C7700059408 /* Tokens.plist */; }; 087D96BB1EBB7F5500059408 /* Tokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087D96BA1EBB7F5500059408 /* Tokens.swift */; }; 087E8B23204DE29F00C35B66 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; @@ -618,18 +448,14 @@ 087E8B27204DE2A100C35B66 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; 087E8B28204DE2A200C35B66 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; 087F6B961CE9E2C8002649AB /* HTMLParsingUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087F6B951CE9E2C8002649AB /* HTMLParsingUtil.swift */; }; - 087F6B971CE9E2C8002649AB /* HTMLParsingUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087F6B951CE9E2C8002649AB /* HTMLParsingUtil.swift */; }; 0884696C1E7C2E01009131E9 /* LastStepGlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0884696B1E7C2E00009131E9 /* LastStepGlobalContext.swift */; }; - 0884696D1E7C2E01009131E9 /* LastStepGlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0884696B1E7C2E00009131E9 /* LastStepGlobalContext.swift */; }; 0885B8D21FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; - 0885B8D31FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8D41FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8D61FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8D71FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8D81FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8D91FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; 0885B8DA1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; - 0885B8DB1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; 0885B8DC1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; 0885B8DE1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; 0885B8DF1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; @@ -641,101 +467,74 @@ 0885F8561BA9F18900F2A188 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8551BA9F18900F2A188 /* Parser.swift */; }; 0885F8581BAAD43300F2A188 /* AuthInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8571BAAD43300F2A188 /* AuthInfo.swift */; }; 0888D0F91F1E3CEF00A16863 /* CodeInputAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D0F81F1E3CEF00A16863 /* CodeInputAccessoryView.xib */; }; - 0888D0FA1F1E3CEF00A16863 /* CodeInputAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D0F81F1E3CEF00A16863 /* CodeInputAccessoryView.xib */; }; 0888D0FB1F1E3CEF00A16863 /* CodeInputAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D0F81F1E3CEF00A16863 /* CodeInputAccessoryView.xib */; }; 0888D0FD1F1E3CFC00A16863 /* CodeInputAccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D0FC1F1E3CFC00A16863 /* CodeInputAccessoryView.swift */; }; - 0888D0FE1F1E3CFC00A16863 /* CodeInputAccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D0FC1F1E3CFC00A16863 /* CodeInputAccessoryView.swift */; }; 0888D0FF1F1E3CFC00A16863 /* CodeInputAccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D0FC1F1E3CFC00A16863 /* CodeInputAccessoryView.swift */; }; 0888D1021F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1001F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift */; }; - 0888D1031F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1001F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift */; }; 0888D1041F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1001F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift */; }; 0888D1051F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D1011F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib */; }; - 0888D1061F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D1011F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib */; }; 0888D1071F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D1011F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib */; }; 0888D1091F1E42A000A16863 /* CodeElementsSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1081F1E42A000A16863 /* CodeElementsSize.swift */; }; - 0888D10A1F1E42A000A16863 /* CodeElementsSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1081F1E42A000A16863 /* CodeElementsSize.swift */; }; 0888D10B1F1E42A000A16863 /* CodeElementsSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1081F1E42A000A16863 /* CodeElementsSize.swift */; }; 0889FEAF1BFB771200C6417E /* DownloadsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0889FEAE1BFB771200C6417E /* DownloadsViewController.swift */; }; 0889FEB21BFB864B00C6417E /* DownloadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0889FEB01BFB864B00C6417E /* DownloadTableViewCell.swift */; }; 0889FEB31BFB864B00C6417E /* DownloadTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0889FEB11BFB864B00C6417E /* DownloadTableViewCell.xib */; }; 088AADA91D175DA00034D86D /* HTMLContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA61D175DA00034D86D /* HTMLContentView.swift */; }; - 088AADAA1D175DA00034D86D /* HTMLContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA61D175DA00034D86D /* HTMLContentView.swift */; }; 088AADAB1D175DA00034D86D /* HTMLStringWrapperUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA71D175DA00034D86D /* HTMLStringWrapperUtil.swift */; }; - 088AADAC1D175DA00034D86D /* HTMLStringWrapperUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA71D175DA00034D86D /* HTMLStringWrapperUtil.swift */; }; 088AADAD1D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA81D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift */; }; - 088AADAE1D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA81D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift */; }; 088CB1EC1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088CB1EB1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift */; }; - 088CB1ED1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088CB1EB1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift */; }; 088E58C11DE34E2F0009B9CE /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; - 088E58C21DE34E2F0009B9CE /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 088E58C41DE34ED20009B9CE /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; - 088E58C51DE34ED20009B9CE /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 088E73EA2060124B00D458E3 /* ApiRequestRetrier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73E92060124B00D458E3 /* ApiRequestRetrier.swift */; }; - 088E73EB206014B000D458E3 /* AdaptiveRatingsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D9842010EEA2007AA743 /* AdaptiveRatingsAPI.swift */; }; 088E73ED20614DFC00D458E3 /* UpdateRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73EC20614DFC00D458E3 /* UpdateRequestMaker.swift */; }; 088E73F020619C8F00D458E3 /* DeleteRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73EF20619C8F00D458E3 /* DeleteRequestMaker.swift */; }; 088E73F220619EEF00D458E3 /* CreateRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73F120619EEF00D458E3 /* CreateRequestMaker.swift */; }; 088E73F42061BDAA00D458E3 /* StepikModelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73F32061BDAA00D458E3 /* StepikModelView.swift */; }; 088EDB501F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; - 088EDB511F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB521F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB541F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB551F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB561F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB571F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; 088EDB591F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; - 088EDB5A1F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDB5B1F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDB5D1F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDB5E1F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDB5F1F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDB601F8F5A48009B736E /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; 088EDCA61F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; - 088EDCA71F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCA81F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCAA1F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCAB1F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCAC1F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCAD1F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; 088EDCB11F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; - 088EDCB21F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB31F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB51F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB61F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB71F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB81F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; 088EDCB91F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; - 088EDCBA1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088EDCBB1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088EDCBD1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088EDCBE1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088EDCBF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088EDCC01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; 088FD8171FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; - 088FD8181FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 088FD8191FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 088FD81B1FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 088FD81C1FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 088FD81D1FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 088FD81E1FB242B3008A2953 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; 08901E631CD0EDB300D94613 /* RemoteVersionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E621CD0EDB300D94613 /* RemoteVersionManager.swift */; }; - 08901E641CD0EDB300D94613 /* RemoteVersionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E621CD0EDB300D94613 /* RemoteVersionManager.swift */; }; 08901E6A1CD1019A00D94613 /* UpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E691CD1019A00D94613 /* UpdateChecker.swift */; }; - 08901E6B1CD1019A00D94613 /* UpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E691CD1019A00D94613 /* UpdateChecker.swift */; }; 08901E6D1CD102DF00D94613 /* UpdatePreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6C1CD102DF00D94613 /* UpdatePreferencesContainer.swift */; }; - 08901E6E1CD102DF00D94613 /* UpdatePreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6C1CD102DF00D94613 /* UpdatePreferencesContainer.swift */; }; 08901E701CD111F200D94613 /* VersionUpdateAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6F1CD111F200D94613 /* VersionUpdateAlertConstructor.swift */; }; 08901E721CD1173200D94613 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E711CD1173200D94613 /* Version.swift */; }; - 08901E731CD1173200D94613 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E711CD1173200D94613 /* Version.swift */; }; - 08901E741CD15B0F00D94613 /* VersionUpdateAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6F1CD111F200D94613 /* VersionUpdateAlertConstructor.swift */; }; 0890560A1E97CD7900B8FE6A /* DefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089056091E97CD7900B8FE6A /* DefaultsContainer.swift */; }; - 0890560B1E97CD7900B8FE6A /* DefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089056091E97CD7900B8FE6A /* DefaultsContainer.swift */; }; 0890560D1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560C1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift */; }; - 0890560E1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560C1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift */; }; 089056111E98021000B8FE6A /* RateAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560F1E98021000B8FE6A /* RateAppViewController.swift */; }; - 089056121E98021000B8FE6A /* RateAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560F1E98021000B8FE6A /* RateAppViewController.swift */; }; 089056131E98021000B8FE6A /* RateAppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089056101E98021000B8FE6A /* RateAppViewController.xib */; }; - 089056141E98021000B8FE6A /* RateAppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089056101E98021000B8FE6A /* RateAppViewController.xib */; }; 089142481BCEE4EF0000BCB0 /* Video+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142441BCEE4EE0000BCB0 /* Video+CoreDataProperties.swift */; }; 089142491BCEE4EF0000BCB0 /* Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142451BCEE4EE0000BCB0 /* Video.swift */; }; 0891424A1BCEE4EF0000BCB0 /* VideoURL+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142461BCEE4EE0000BCB0 /* VideoURL+CoreDataProperties.swift */; }; @@ -743,148 +542,106 @@ 0891424E1BCEED8E0000BCB0 /* VideoStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424D1BCEED8E0000BCB0 /* VideoStepViewController.swift */; }; 089142501BCFFB7F0000BCB0 /* WebStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424F1BCFFB7F0000BCB0 /* WebStepViewController.swift */; }; 089504831F27C5C600EEC939 /* FullHeightTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089504821F27C5C600EEC939 /* FullHeightTableView.swift */; }; - 089504841F27C5C600EEC939 /* FullHeightTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089504821F27C5C600EEC939 /* FullHeightTableView.swift */; }; 089504851F27C5C600EEC939 /* FullHeightTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089504821F27C5C600EEC939 /* FullHeightTableView.swift */; }; 089574561E5B76E700C12D21 /* UIImageView+SVGDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089574551E5B76E700C12D21 /* UIImageView+SVGDownload.swift */; }; - 089574571E5B76E700C12D21 /* UIImageView+SVGDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089574551E5B76E700C12D21 /* UIImageView+SVGDownload.swift */; }; 0895A13B1E43836B00FE22DD /* FillBlanksReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0895A13A1E43836B00FE22DD /* FillBlanksReply.swift */; }; - 0895A13C1E43836B00FE22DD /* FillBlanksReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0895A13A1E43836B00FE22DD /* FillBlanksReply.swift */; }; 089611041D52250500561AC1 /* DeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089611031D52250500561AC1 /* DeepLinkRouter.swift */; }; - 089611051D52250500561AC1 /* DeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089611031D52250500561AC1 /* DeepLinkRouter.swift */; }; 08964BCD1F3072BA00DBBCCE /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; - 08964BCE1F3072BA00DBBCCE /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; 08964BCF1F3072BA00DBBCCE /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; 089700961F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; - 089700971F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 089700981F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 0897009A1F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 0897009B1F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 0897009C1F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 0897009D1F6B2A830041C24E /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; 089984291ECDE188005C0B27 /* LessonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089984281ECDE188005C0B27 /* LessonViewController.swift */; }; - 0899842A1ECDE188005C0B27 /* LessonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089984281ECDE188005C0B27 /* LessonViewController.swift */; }; 0899842C1ECDE194005C0B27 /* LessonPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842B1ECDE194005C0B27 /* LessonPresenter.swift */; }; - 0899842D1ECDE194005C0B27 /* LessonPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842B1ECDE194005C0B27 /* LessonPresenter.swift */; }; 0899842F1ECDE19E005C0B27 /* LessonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842E1ECDE19E005C0B27 /* LessonView.swift */; }; - 089984301ECDE19E005C0B27 /* LessonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842E1ECDE19E005C0B27 /* LessonView.swift */; }; 089A0DA71BE9FFCE004AF4EB /* UIViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089A0DA61BE9FFCE004AF4EB /* UIViewExtensions.swift */; }; 089B370D1BFA07AF003DC593 /* VideoDownloadDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370C1BFA07AE003DC593 /* VideoDownloadDelegate.swift */; }; 089B370F1BFA210F003DC593 /* CacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370E1BFA210F003DC593 /* CacheManager.swift */; }; 089C88D51FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; - 089C88D61FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88D71FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88D91FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88DA1FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88DB1FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88DC1FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; 089C88DE1FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; - 089C88DF1FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089C88E01FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089C88E21FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089C88E31FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089C88E41FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089C88E51FCF494300003B63 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; 089F58851D22BD3C000CD540 /* DiscussionCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089F58841D22BD3C000CD540 /* DiscussionCountView.swift */; }; - 089F58861D22BD3C000CD540 /* DiscussionCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089F58841D22BD3C000CD540 /* DiscussionCountView.swift */; }; 089F58891D22BD59000CD540 /* DiscussionCountView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089F58881D22BD59000CD540 /* DiscussionCountView.xib */; }; - 089F588A1D22BD59000CD540 /* DiscussionCountView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089F58881D22BD59000CD540 /* DiscussionCountView.xib */; }; 08A0218E1D675B4700915679 /* SectionNavigationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A0218D1D675B4700915679 /* SectionNavigationDelegate.swift */; }; - 08A0218F1D675B4800915679 /* SectionNavigationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A0218D1D675B4700915679 /* SectionNavigationDelegate.swift */; }; 08A1256F1BDE8E460066B2B2 /* Sorter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A1256E1BDE8E460066B2B2 /* Sorter.swift */; }; 08A125791BDEBCC90066B2B2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08A1257B1BDEBCC90066B2B2 /* Localizable.strings */; }; 08A3A9CE1BD5A14D0032C36E /* NSDateExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A3A9CD1BD5A14D0032C36E /* NSDateExtensions.swift */; }; 08A500501F2B73C000140D25 /* FullHeightWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A5004F1F2B73C000140D25 /* FullHeightWebView.swift */; }; - 08A500511F2B73C000140D25 /* FullHeightWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A5004F1F2B73C000140D25 /* FullHeightWebView.swift */; }; 08A500521F2B73C000140D25 /* FullHeightWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A5004F1F2B73C000140D25 /* FullHeightWebView.swift */; }; 08A7B0E81EB340F500C1BA71 /* Auth.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08A7B0E71EB340F500C1BA71 /* Auth.plist */; }; 08A9BD731F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; - 08A9BD741F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9BD751F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9BD771F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9BD781F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9BD791F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9BD7A1F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; 08A9F6FA1FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; - 08A9F6FB1FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F6FC1FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F6FE1FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F6FF1FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F7001FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F7011FC37DC100640F1F /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; 08A9F7031FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; - 08A9F7041FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F7051FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F7071FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F7081FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F7091FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F70A1FC37DD000640F1F /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; 08A9F70D1FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; - 08A9F70E1FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F70F1FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F7111FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F7121FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F7131FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F7141FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; 08A9F7151FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; - 08A9F7161FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F7171FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F7191FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F71A1FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F71B1FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F71C1FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; 08A9F71E1FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; - 08A9F71F1FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08A9F7201FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08A9F7221FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08A9F7231FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08A9F7241FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08A9F7251FC38C9E00640F1F /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; 08AB82351D74926F00FDEADE /* StepicsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82341D74926F00FDEADE /* StepicsAPI.swift */; }; - 08AB82361D74926F00FDEADE /* StepicsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82341D74926F00FDEADE /* StepicsAPI.swift */; }; 08AB82381D74C44100FDEADE /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82371D74C44100FDEADE /* Session.swift */; }; - 08AB82391D74C44100FDEADE /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82371D74C44100FDEADE /* Session.swift */; }; 08AB823B1D75AA9300FDEADE /* CookieTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB823A1D75AA9300FDEADE /* CookieTests.swift */; }; 08AC21391CDD34C300FBB9CD /* Tasks.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08AC21381CDD34C300FBB9CD /* Tasks.plist */; }; - 08AC213A1CDD34C300FBB9CD /* Tasks.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08AC21381CDD34C300FBB9CD /* Tasks.plist */; }; 08AC213C1CDD35DF00FBB9CD /* Users.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08AC213B1CDD35DF00FBB9CD /* Users.plist */; }; - 08AC213D1CDD35DF00FBB9CD /* Users.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08AC213B1CDD35DF00FBB9CD /* Users.plist */; }; 08AC21451CDD493A00FBB9CD /* PersistentRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21441CDD493A00FBB9CD /* PersistentRecoveryManager.swift */; }; - 08AC21461CDD493A00FBB9CD /* PersistentRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21441CDD493A00FBB9CD /* PersistentRecoveryManager.swift */; }; 08AC21481CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21471CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift */; }; - 08AC21491CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21471CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift */; }; 08AC214B1CE0DE9B00FBB9CD /* DeviceDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC214A1CE0DE9B00FBB9CD /* DeviceDefaults.swift */; }; - 08AC214C1CE0DE9B00FBB9CD /* DeviceDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC214A1CE0DE9B00FBB9CD /* DeviceDefaults.swift */; }; 08AEC3A31CCA69C800FFF29E /* DevicesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A21CCA69C700FFF29E /* DevicesAPI.swift */; }; 08AEC3A51CCA69F300FFF29E /* Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A41CCA69F300FFF29E /* Device.swift */; }; 08AEC3A71CCA75F400FFF29E /* APIDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A61CCA75F400FFF29E /* APIDefaults.swift */; }; 08AF59E41E6D9BE800423EFF /* RGPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D51E6D9BE800423EFF /* RGPageViewController.swift */; }; - 08AF59E51E6D9BE800423EFF /* RGPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D51E6D9BE800423EFF /* RGPageViewController.swift */; }; 08AF59E61E6D9BE800423EFF /* RGTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D61E6D9BE800423EFF /* RGTabBarItem.swift */; }; - 08AF59E71E6D9BE800423EFF /* RGTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D61E6D9BE800423EFF /* RGTabBarItem.swift */; }; 08AF59E81E6D9BE800423EFF /* RGTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D71E6D9BE800423EFF /* RGTabView.swift */; }; - 08AF59E91E6D9BE800423EFF /* RGTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D71E6D9BE800423EFF /* RGTabView.swift */; }; 08AF59EA1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D91E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift */; }; - 08AF59EB1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D91E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift */; }; 08AF59EC1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DA1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift */; }; - 08AF59ED1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DA1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift */; }; 08AF59EE1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DB1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift */; }; - 08AF59EF1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DB1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift */; }; 08AF59F01E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DC1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift */; }; - 08AF59F11E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DC1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift */; }; 08AF59F21E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DD1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift */; }; - 08AF59F31E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DD1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift */; }; 08AF59F41E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DE1E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift */; }; - 08AF59F51E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DE1E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift */; }; 08AF59F61E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DF1E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift */; }; - 08AF59F71E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DF1E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift */; }; 08AF59F81E6D9BE800423EFF /* UINavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E01E6D9BE800423EFF /* UINavigationBar.swift */; }; - 08AF59F91E6D9BE800423EFF /* UINavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E01E6D9BE800423EFF /* UINavigationBar.swift */; }; 08AF59FA1E6D9BE800423EFF /* RGPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E21E6D9BE800423EFF /* RGPageViewControllerDataSource.swift */; }; - 08AF59FB1E6D9BE800423EFF /* RGPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E21E6D9BE800423EFF /* RGPageViewControllerDataSource.swift */; }; 08AF59FC1E6D9BE800423EFF /* RGPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E31E6D9BE800423EFF /* RGPageViewControllerDelegate.swift */; }; - 08AF59FD1E6D9BE800423EFF /* RGPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E31E6D9BE800423EFF /* RGPageViewControllerDelegate.swift */; }; 08B062DD1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; - 08B062DE1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; 08B062DF1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; 08B062E11FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; 08B062E21FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; @@ -892,17 +649,12 @@ 08B062E41FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; 08B5E29A1BF509C900B875E6 /* UIThreadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B5E2991BF509C900B875E6 /* UIThreadHelper.swift */; }; 08B65AE41CFCA72800C3A770 /* ImageTapHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B65AE31CFCA72800C3A770 /* ImageTapHelper.swift */; }; - 08B65AE51CFCA72800C3A770 /* ImageTapHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B65AE31CFCA72800C3A770 /* ImageTapHelper.swift */; }; 08B845DC1D36998E00267FF4 /* AlamofireExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B845DB1D36998E00267FF4 /* AlamofireExtensions.swift */; }; - 08B845DD1D36998E00267FF4 /* AlamofireExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B845DB1D36998E00267FF4 /* AlamofireExtensions.swift */; }; 08B9770B1D19D5AA00FFC52C /* DiscussionWebTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08B977091D19D5AA00FFC52C /* DiscussionWebTableViewCell.xib */; }; 08B9770C1D19D5AA00FFC52C /* DiscussionWebTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B9770A1D19D5AA00FFC52C /* DiscussionWebTableViewCell.swift */; }; 08BC47061CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47051CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift */; }; - 08BC47071CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47051CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift */; }; 08BC47091CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47081CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift */; }; - 08BC470A1CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47081CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift */; }; 08BC47141CDA3E99009A1D25 /* ExecutableTaskTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47131CDA3E99009A1D25 /* ExecutableTaskTypes.swift */; }; - 08BC47151CDA3E99009A1D25 /* ExecutableTaskTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47131CDA3E99009A1D25 /* ExecutableTaskTypes.swift */; }; 08C02DB41F53201A00F848F5 /* ProfilePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C02DB31F53201A00F848F5 /* ProfilePresenter.swift */; }; 08C02DB51F53201A00F848F5 /* ProfilePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C02DB31F53201A00F848F5 /* ProfilePresenter.swift */; }; 08C02DB71F53201A00F848F5 /* ProfilePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C02DB31F53201A00F848F5 /* ProfilePresenter.swift */; }; @@ -912,38 +664,31 @@ 08C0A4341BF1276C0010F049 /* Messages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C0A4331BF1276C0010F049 /* Messages.swift */; }; 08C0A4361BF12CDF0010F049 /* CustomMessagesDesign.json in Resources */ = {isa = PBXBuildFile; fileRef = 08C0A4351BF12CDF0010F049 /* CustomMessagesDesign.json */; }; 08C194401ED0A05D00A41B72 /* PagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1943F1ED0A05D00A41B72 /* PagerController.swift */; }; - 08C194411ED0A05D00A41B72 /* PagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1943F1ED0A05D00A41B72 /* PagerController.swift */; }; 08C1BF281FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; - 08C1BF291FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF2A1FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF2C1FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF2D1FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF2E1FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF2F1FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; 08C1BF311FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; - 08C1BF321FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1BF331FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1BF351FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1BF361FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1BF371FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1BF381FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; 08C1FC331F41E74500E14B46 /* QuizPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1FC321F41E74500E14B46 /* QuizPresenter.swift */; }; - 08C1FC341F41E74500E14B46 /* QuizPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1FC321F41E74500E14B46 /* QuizPresenter.swift */; }; 08C1FC351F41E74500E14B46 /* QuizPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1FC321F41E74500E14B46 /* QuizPresenter.swift */; }; 08C21C4B1ED46B5900CE9345 /* wysiwyg.css in Resources */ = {isa = PBXBuildFile; fileRef = 087854F41DF6EE0D00368A50 /* wysiwyg.css */; }; 08C21C4C1ED46B5E00CE9345 /* jquery-3.2.1.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 084C9AF71EC4C11A00AC5C3C /* jquery-3.2.1.min.js */; }; 08C5E4FD1C315272004AA626 /* AudioManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C5E4FC1C315272004AA626 /* AudioManager.swift */; }; 08C6E31E1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; - 08C6E31F1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; 08C7CB741FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; - 08C7CB751FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB761FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB781FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB791FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB7A1FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB7B1FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; 08C7CB7D1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; - 08C7CB7E1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; 08C7CB7F1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; 08C7CB811FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; 08C7CB821FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; @@ -960,35 +705,30 @@ 08CA59F21BBFD65E008DC44D /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F01BBFD65E008DC44D /* User.swift */; }; 08CA59F41BC020E3008DC44D /* UIImageViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F31BC020E2008DC44D /* UIImageViewExtension.swift */; }; 08CB0D281FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; - 08CB0D291FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D2A1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D2C1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D2D1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D2E1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D2F1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; 08CB0D311FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; - 08CB0D321FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D331FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D351FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D361FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D371FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D381FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; 08CB0D3A1FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; - 08CB0D3B1FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D3C1FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D3E1FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D3F1FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D401FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D411FB5FB28001A1E02 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; 08CB0D441FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; - 08CB0D451FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D461FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D481FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D491FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D4A1FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D4B1FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; 08CB0D4D1FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; - 08CB0D4E1FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; 08CB0D4F1FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; 08CB0D511FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; 08CB0D521FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; @@ -996,84 +736,72 @@ 08CB0D541FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; 08CB4ABE1C4D3DCE00D7F918 /* WKWebViewPanelManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08CB4ABD1C4D3DCE00D7F918 /* WKWebViewPanelManager.m */; }; 08CBA2F81F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; - 08CBA2F91F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA2FA1F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA2FC1F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA2FD1F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA2FE1F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA2FF1F573F6900302154 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; 08CBA3011F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; - 08CBA3021F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3031F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3051F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3061F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3071F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3081F57459800302154 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; 08CBA3151F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; - 08CBA3161F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA3171F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA3191F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA31A1F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA31B1F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA31C1F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; 08CBA31D1F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; - 08CBA31E1F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA31F1F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA3211F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA3221F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA3231F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA3241F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; 08CBA3271F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; - 08CBA3281F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA3291F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA32B1F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA32C1F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA32D1F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA32E1F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; 08CBA32F1F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; - 08CBA3301F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3311F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3331F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3341F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3351F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3361F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; 08CBA3391F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; - 08CBA33A1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA33B1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA33D1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA33E1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA33F1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA3401F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; 08CBA3411F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; - 08CBA3421F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA3431F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA3451F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA3461F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA3471F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA3481F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; 08CBA34B1F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; - 08CBA34C1F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA34D1F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA34F1F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA3501F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA3511F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA3521F57734900302154 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; 08CBA3541F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; - 08CBA3551F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA3561F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA3581F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA3591F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA35A1F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA35B1F5A2D9400302154 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; 08CBA35E1F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; - 08CBA35F1F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3601F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3621F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3631F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3641F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3651F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; 08CBA3671F5B2B8800302154 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; - 08CBA3681F5B2B8800302154 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; 08CBA3691F5B2B8800302154 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; 08CBA36B1F5B2B8800302154 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; 08CBA36C1F5B2B8800302154 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; @@ -1087,143 +815,7 @@ 08CCAEC7204F0B2D002B4544 /* NotificationRequestAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CCAEC0204F0B2D002B4544 /* NotificationRequestAlertManager.swift */; }; 08CE16E01BFA5A80008511B7 /* DeviceInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CE16DF1BFA5A80008511B7 /* DeviceInfo.swift */; }; 08D035211D65A252003515C6 /* AnalyticsEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035201D65A252003515C6 /* AnalyticsEvents.swift */; }; - 08D035221D65A252003515C6 /* AnalyticsEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035201D65A252003515C6 /* AnalyticsEvents.swift */; }; 08D035251D65B5E5003515C6 /* AnalyticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035241D65B5E5003515C6 /* AnalyticsReporter.swift */; }; - 08D035261D65B5E5003515C6 /* AnalyticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035241D65B5E5003515C6 /* AnalyticsReporter.swift */; }; - 08D120751C937B2200A54ABC /* Course.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF721BB5636700BE84E6 /* Course.swift */; }; - 08D120771C937B2200A54ABC /* GlobalFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A9D611C74AF90003611DC /* GlobalFunctions.swift */; }; - 08D120791C937B2200A54ABC /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; - 08D1207A1C937B2200A54ABC /* Dataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554F1C4F93B700C877E8 /* Dataset.swift */; }; - 08D1207B1C937B2200A54ABC /* WebStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424F1BCFFB7F0000BCB0 /* WebStepViewController.swift */; }; - 08D1207D1C937B2200A54ABC /* LabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59E91BBD3D55008DC44D /* LabelExtension.swift */; }; - 08D1207F1C937B2200A54ABC /* Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE71BE8D63C005E1E96 /* Progress.swift */; }; - 08D120811C937B2200A54ABC /* MathQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485AB1C580DB3000165AA /* MathQuizViewController.swift */; }; - 08D120821C937B2200A54ABC /* VideoURL+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142461BCEE4EE0000BCB0 /* VideoURL+CoreDataProperties.swift */; }; - 08D120831C937B2200A54ABC /* Video+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142441BCEE4EE0000BCB0 /* Video+CoreDataProperties.swift */; }; - 08D120841C937B2200A54ABC /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF6E1BB5618700BE84E6 /* Model.xcdatamodeld */; }; - 08D120851C937B2200A54ABC /* ChoiceQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555681C50007800C877E8 /* ChoiceQuizViewController.swift */; }; - 08D120861C937B2200A54ABC /* ConnectionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E16F281BDBA731004822E1 /* ConnectionHelper.swift */; }; - 08D120871C937B2200A54ABC /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF4F1BD79D5500329F2B /* Images.swift */; }; - 08D120891C937B2200A54ABC /* StandardsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081B7E291BAC208200554153 /* StandardsExtensions.swift */; }; - 08D1208A1C937B2200A54ABC /* AnalyticsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D2AE491C05127500BD8C3D /* AnalyticsHelper.swift */; }; - 08D1208B1C937B2200A54ABC /* Lesson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7F1BC7FD24000AFEA7 /* Lesson.swift */; }; - 08D1208C1C937B2200A54ABC /* HTMLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D971BDAE11500BA35EA /* HTMLBuilder.swift */; }; - 08D1208D1C937B2200A54ABC /* Scripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D931BDADB2D00BA35EA /* Scripts.swift */; }; - 08D1208E1C937B2200A54ABC /* DeviceInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CE16DF1BFA5A80008511B7 /* DeviceInfo.swift */; }; - 08D1208F1C937B2200A54ABC /* UIViewLoadExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485971C5752D0000165AA /* UIViewLoadExtension.swift */; }; - 08D120911C937B2200A54ABC /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6D1BC5D177000AFEA7 /* Section.swift */; }; - 08D120921C937B2200A54ABC /* Step+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156911BCBFFBD006B8C73 /* Step+CoreDataProperties.swift */; }; - 08D120931C937B2200A54ABC /* UnknownTypeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555621C4FE30400C877E8 /* UnknownTypeQuizViewController.swift */; }; - 08D120941C937B2200A54ABC /* CourseSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542081C6CD65500DEC38E /* CourseSubscriptionManager.swift */; }; - 08D120951C937B2200A54ABC /* SortingDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485AE1C58E946000165AA /* SortingDataset.swift */; }; - 08D120961C937B2200A54ABC /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080DCF161C4518BC00DE3E2E /* SearchResult.swift */; }; - 08D120971C937B2200A54ABC /* Assignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA51BFE5A5400DB4B83 /* Assignment.swift */; }; - 08D120981C937B2200A54ABC /* PathManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D8B1BDA77A200BA35EA /* PathManager.swift */; }; - 08D120991C937B2200A54ABC /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D911BDAB93900BA35EA /* StringExtensions.swift */; }; - 08D1209A1C937B2200A54ABC /* Attempt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554D1C4F924000C877E8 /* Attempt.swift */; }; - 08D1209C1C937B2200A54ABC /* ControllerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D64AE1C19BDB2003222F0 /* ControllerHelper.swift */; }; - 08D1209D1C937B2200A54ABC /* Progress+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE61BE8D63C005E1E96 /* Progress+CoreDataProperties.swift */; }; - 08D1209E1C937B2200A54ABC /* ButtonExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59ED1BBFC962008DC44D /* ButtonExtension.swift */; }; - 08D120A01C937B2200A54ABC /* TeachersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59E51BBD25DC008DC44D /* TeachersTableViewCell.swift */; }; - 08D120A21C937B2200A54ABC /* SortingQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B61C58ECE3000165AA /* SortingQuizTableViewCell.swift */; }; - 08D120A31C937B2200A54ABC /* UIViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089A0DA61BE9FFCE004AF4EB /* UIViewExtensions.swift */; }; - 08D120A41C937B2200A54ABC /* Section+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6C1BC5D177000AFEA7 /* Section+CoreDataProperties.swift */; }; - 08D120A51C937B2200A54ABC /* VideoStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424D1BCEED8E0000BCB0 /* VideoStepViewController.swift */; }; - 08D120A61C937B2200A54ABC /* NSDateExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A3A9CD1BD5A14D0032C36E /* NSDateExtensions.swift */; }; - 08D120A71C937B2200A54ABC /* WebControllerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C9F7CF1C29AE8B00E544D0 /* WebControllerManager.swift */; }; - 08D120A91C937B2200A54ABC /* TabsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74601BD8159F0064AAEA /* TabsInfo.swift */; }; - 08D120AB1C937B2200A54ABC /* SectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF741BC5E6B0000AFEA7 /* SectionTableViewCell.swift */; }; - 08D120AC1C937B2200A54ABC /* NumberReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4859F1C579318000165AA /* NumberReply.swift */; }; - 08D120AD1C937B2200A54ABC /* Unit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7A1BC7F9D6000AFEA7 /* Unit+CoreDataProperties.swift */; }; - 08D120AE1C937B2200A54ABC /* Unit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7B1BC7F9D6000AFEA7 /* Unit.swift */; }; - 08D120AF1C937B2200A54ABC /* VideoDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0857AA201BECDA640044B505 /* VideoDownload.swift */; }; - 08D120B01C937B2200A54ABC /* StringQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4859B1C5786DE000165AA /* StringQuizViewController.swift */; }; - 08D120B11C937B2200A54ABC /* FreeAnswerReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A41C57AF2E000165AA /* FreeAnswerReply.swift */; }; - 08D120B21C937B2200A54ABC /* QuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081A7DA81C56625F00583728 /* QuizViewController.swift */; }; - 08D120B31C937B2200A54ABC /* FreeAnswerQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A61C57B023000165AA /* FreeAnswerQuizViewController.swift */; }; - 08D120B41C937B2200A54ABC /* SortingQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B21C58EC33000165AA /* SortingQuizViewController.swift */; }; - 08D120B51C937B2200A54ABC /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8551BA9F18900F2A188 /* Parser.swift */; }; - 08D120B61C937B2200A54ABC /* DownloadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0889FEB01BFB864B00C6417E /* DownloadTableViewCell.swift */; }; - 08D120B71C937B2200A54ABC /* CacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370E1BFA210F003DC593 /* CacheManager.swift */; }; - 08D120B81C937B2200A54ABC /* Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D2AE451C04BA6100BD8C3D /* Time.swift */; }; - 08D120B91C937B2200A54ABC /* Assignment+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA41BFE5A5400DB4B83 /* Assignment+CoreDataProperties.swift */; }; - 08D120BA1C937B2200A54ABC /* RefreshTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08687BAC1BACB43700F5BDE1 /* RefreshTableViewCell.swift */; }; - 08D120BB1C937B2200A54ABC /* Messages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C0A4331BF1276C0010F049 /* Messages.swift */; }; - 08D120BC1C937B2200A54ABC /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485921C574D79000165AA /* WarningView.swift */; }; - 08D120BD1C937B2200A54ABC /* CoreDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D71BB9A4BD003CFAD1 /* CoreDataHelper.swift */; }; - 08D120BE1C937B2200A54ABC /* UnitsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF851BC81EEC000AFEA7 /* UnitsViewController.swift */; }; - 08D120C01C937B2200A54ABC /* Reply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555591C4FB0A300C877E8 /* Reply.swift */; }; - 08D120C11C937B2200A54ABC /* AudioManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C5E4FC1C315272004AA626 /* AudioManager.swift */; }; - 08D120C41C937B2200A54ABC /* VideosInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74631BD9213D0064AAEA /* VideosInfo.swift */; }; - 08D120C61C937B2200A54ABC /* Course+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF711BB5636700BE84E6 /* Course+CoreDataProperties.swift */; }; - 08D120C71C937B2200A54ABC /* QuizControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555641C4FF22600C877E8 /* QuizControllerDelegate.swift */; }; - 08D120C81C937B2200A54ABC /* VideoURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142471BCEE4EE0000BCB0 /* VideoURL.swift */; }; - 08D120C91C937B2200A54ABC /* ChoiceReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5555B1C4FB1E300C877E8 /* ChoiceReply.swift */; }; - 08D120CA1C937B2200A54ABC /* VideoQualityTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74651BD924B80064AAEA /* VideoQualityTableViewController.swift */; }; - 08D120CB1C937B2200A54ABC /* MathReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A91C580D61000165AA /* MathReply.swift */; }; - 08D120CD1C937B2200A54ABC /* StepicVideoPlayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EF9A051C91D0F800433E4A /* StepicVideoPlayerViewController.swift */; }; - 08D120CE1C937B2200A54ABC /* StringDatasetExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555551C4F9FAB00C877E8 /* StringDatasetExtension.swift */; }; - 08D120CF1C937B2200A54ABC /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F01BBFD65E008DC44D /* User.swift */; }; - 08D120D01C937B2200A54ABC /* WKWebViewPanelManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08CB4ABD1C4D3DCE00D7F918 /* WKWebViewPanelManager.m */; }; - 08D120D31C937B2200A54ABC /* ApiDataDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F84D1BA837E200F2A188 /* ApiDataDownloader.swift */; }; - 08D120D41C937B2200A54ABC /* GeneralInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0802C3B11BFE3B95003CDAD2 /* GeneralInfoTableViewCell.swift */; }; - 08D120D51C937B2200A54ABC /* NumberQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A11C57987B000165AA /* NumberQuizViewController.swift */; }; - 08D120D61C937B2200A54ABC /* GCDThings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5556B1C5267A600C877E8 /* GCDThings.swift */; }; - 08D120D81C937B2200A54ABC /* Block.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156901BCBFFBD006B8C73 /* Block.swift */; }; - 08D120DB1C937B2200A54ABC /* JSQWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083B164C1C2AF27700250B37 /* JSQWebViewController.swift */; }; - 08D120DC1C937B2200A54ABC /* Alamofire-SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0824289B1BB0104700C98185 /* Alamofire-SwiftyJSON.swift */; }; - 08D120DD1C937B2200A54ABC /* TCBlobDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5E1BD7DE2A00329F2B /* TCBlobDownload.swift */; }; - 08D120DE1C937B2200A54ABC /* User+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59EF1BBFD65E008DC44D /* User+CoreDataProperties.swift */; }; - 08D120DF1C937B2200A54ABC /* EmptyDatasetState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542021C6C75FD00DEC38E /* EmptyDatasetState.swift */; }; - 08D120E01C937B2200A54ABC /* CoursePreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59D81BBC008A008DC44D /* CoursePreviewViewController.swift */; }; - 08D120E11C937B2200A54ABC /* SortingReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B01C58EB0D000165AA /* SortingReply.swift */; }; - 08D120E21C937B2200A54ABC /* Block+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0841568F1BCBFFBD006B8C73 /* Block+CoreDataProperties.swift */; }; - 08D120E31C937B2200A54ABC /* Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142451BCEE4EE0000BCB0 /* Video.swift */; }; - 08D120E41C937B2200A54ABC /* UIThreadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B5E2991BF509C900B875E6 /* UIThreadHelper.swift */; }; - 08D120E51C937B2200A54ABC /* DownloadsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0889FEAE1BFB771200C6417E /* DownloadsViewController.swift */; }; - 08D120E61C937B2200A54ABC /* Step.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156921BCBFFBD006B8C73 /* Step.swift */; }; - 08D120E71C937B2200A54ABC /* Submission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555571C4FAF5200C877E8 /* Submission.swift */; }; - 08D120E81C937B2200A54ABC /* AuthInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8571BAAD43300F2A188 /* AuthInfo.swift */; }; - 08D120E91C937B2200A54ABC /* VideoDownloadDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370C1BFA07AE003DC593 /* VideoDownloadDelegate.swift */; }; - 08D120EA1C937B2200A54ABC /* TextReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485991C57868E000165AA /* TextReply.swift */; }; - 08D120EB1C937B2200A54ABC /* JSONSerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF821BC800C0000AFEA7 /* JSONSerializable.swift */; }; - 08D120EC1C937B2200A54ABC /* UIImageViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F31BC020E2008DC44D /* UIImageViewExtension.swift */; }; - 08D120ED1C937B2200A54ABC /* Lesson+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7E1BC7FD24000AFEA7 /* Lesson+CoreDataProperties.swift */; }; - 08D120EE1C937B2200A54ABC /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086E965F1BF66A1800AB952D /* VideoDownloadView.swift */; }; - 08D120EF1C937B2200A54ABC /* TCBlobDownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5F1BD7DE2A00329F2B /* TCBlobDownloadManager.swift */; }; - 08D120F01C937B2200A54ABC /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DE94381B8E3FCE00D278AB /* UIColorExtensions.swift */; }; - 08D120F11C937B2200A54ABC /* Meta.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8531BA9DB5C00F2A188 /* Meta.swift */; }; - 08D120F31C937B2200A54ABC /* StepicToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F31DC1BA7162C00F356A0 /* StepicToken.swift */; }; - 08D120F51C937B2200A54ABC /* SectionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF781BC5E744000AFEA7 /* SectionsViewController.swift */; }; - 08D120F61C937B2200A54ABC /* Sorter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A1256E1BDE8E460066B2B2 /* Sorter.swift */; }; - 08D120F81C937B2200A54ABC /* ChoiceDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555531C4F97C100C877E8 /* ChoiceDataset.swift */; }; - 08D120F91C937B2200A54ABC /* TeacherCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59DA1BBC00B9008DC44D /* TeacherCollectionViewCell.swift */; }; - 08D120FB1C937B2200A54ABC /* UnitTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF8A1BC81F41000AFEA7 /* UnitTableViewCell.swift */; }; - 08D120FC1C937B2200A54ABC /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 08E16F221BDBA4AF004822E1 /* Reachability.m */; }; - 08D120FE1C937B2200A54ABC /* TitleTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08047E6C1BFDC0470071C875 /* TitleTextTableViewCell.swift */; }; - 08D120FF1C937B2200A54ABC /* ErrorEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D91BB9B768003CFAD1 /* ErrorEnums.swift */; }; - 08D121001C937B2200A54ABC /* UICustomizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C9A2B1BAC88E2001BE326 /* UICustomizer.swift */; }; - 08D121011C937B2200A54ABC /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8511BA9D64300F2A188 /* Constants.swift */; }; - 08D121041C937B2200A54ABC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08E16F241BDBA539004822E1 /* SystemConfiguration.framework */; }; - 08D121091C937B2200A54ABC /* CustomMessagesDesign.json in Resources */ = {isa = PBXBuildFile; fileRef = 08C0A4351BF12CDF0010F049 /* CustomMessagesDesign.json */; }; - 08D1210A1C937B2200A54ABC /* TitleTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08047E6D1BFDC0470071C875 /* TitleTextTableViewCell.xib */; }; - 08D1210B1C937B2200A54ABC /* UnknownTypeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 081A7DF41C56A0DD00583728 /* UnknownTypeQuizViewController.xib */; }; - 08D1210C1C937B2200A54ABC /* MathJax in Resources */ = {isa = PBXBuildFile; fileRef = 08E542001C6A76E100DEC38E /* MathJax */; }; - 08D1210F1C937B2200A54ABC /* UnitTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF8B1BC81F41000AFEA7 /* UnitTableViewCell.xib */; }; - 08D121101C937B2200A54ABC /* QuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 081A7DF21C56A09300583728 /* QuizViewController.xib */; }; - 08D121111C937B2200A54ABC /* RefreshTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08687BAD1BACB43700F5BDE1 /* RefreshTableViewCell.xib */; }; - 08D121121C937B2200A54ABC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941A1B8C58AC00D278AB /* Main.storyboard */; }; - 08D121131C937B2200A54ABC /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941F1B8C58AC00D278AB /* LaunchScreen.xib */; }; - 08D121141C937B2200A54ABC /* DownloadTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0889FEB11BFB864B00C6417E /* DownloadTableViewCell.xib */; }; - 08D121151C937B2200A54ABC /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941D1B8C58AC00D278AB /* Images.xcassets */; }; - 08D121161C937B2200A54ABC /* Scripts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08DF1D951BDADB7A00BA35EA /* Scripts.plist */; }; - 08D121171C937B2200A54ABC /* VideoDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086E965D1BF6683800AB952D /* VideoDownloadView.xib */; }; - 08D121181C937B2200A54ABC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08A1257B1BDEBCC90066B2B2 /* Localizable.strings */; }; - 08D1211A1C937B2200A54ABC /* WarningView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485941C574DAD000165AA /* WarningView.xib */; }; - 08D1211B1C937B2200A54ABC /* TeacherCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CA59DB1BBC00B9008DC44D /* TeacherCollectionViewCell.xib */; }; - 08D1211C1C937B2200A54ABC /* SectionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF751BC5E6B0000AFEA7 /* SectionTableViewCell.xib */; }; - 08D1211D1C937B2200A54ABC /* SortingQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485B81C58ED01000165AA /* SortingQuizTableViewCell.xib */; }; - 08D1211E1C937B2200A54ABC /* StepicVideoPlayerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EF9A071C91D0F800433E4A /* StepicVideoPlayerViewController.xib */; }; 08D1EF701BB5618700BE84E6 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF6E1BB5618700BE84E6 /* Model.xcdatamodeld */; }; 08D1EF731BB5636700BE84E6 /* Course+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF711BB5636700BE84E6 /* Course+CoreDataProperties.swift */; }; 08D1EF741BB5636700BE84E6 /* Course.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF721BB5636700BE84E6 /* Course.swift */; }; @@ -1231,21 +823,18 @@ 08D2AE481C04F52300BD8C3D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08D2AE471C04F52300BD8C3D /* GoogleService-Info.plist */; }; 08D2AE4A1C05127500BD8C3D /* AnalyticsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D2AE491C05127500BD8C3D /* AnalyticsHelper.swift */; }; 08D5F56D1F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; - 08D5F56E1F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F56F1F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F5711F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F5721F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F5731F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F5741F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; 08D5F5771F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; - 08D5F5781F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F5791F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F57B1F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F57C1F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F57D1F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F57E1F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; 08D5F5801F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; - 08D5F5811F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; 08D5F5821F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; 08D5F5841F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; 08D5F5851F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; @@ -1254,9 +843,7 @@ 08D9E98C206C243D002F41D3 /* DatabaseFetchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D9E98B206C243D002F41D3 /* DatabaseFetchService.swift */; }; 08DA79011DB6BB36003491C4 /* ControllerHelperLaunchExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DA79001DB6BB36003491C4 /* ControllerHelperLaunchExtension.swift */; }; 08DB8CB91D0BECF000A6D079 /* DiscussionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DB8CB71D0BECF000A6D079 /* DiscussionTableViewCell.swift */; }; - 08DB8CBA1D0BECF000A6D079 /* DiscussionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DB8CB71D0BECF000A6D079 /* DiscussionTableViewCell.swift */; }; 08DB8CBB1D0BECF100A6D079 /* DiscussionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DB8CB81D0BECF000A6D079 /* DiscussionTableViewCell.xib */; }; - 08DB8CBC1D0BECF100A6D079 /* DiscussionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DB8CB81D0BECF000A6D079 /* DiscussionTableViewCell.xib */; }; 08DE94171B8C58AC00D278AB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DE94161B8C58AC00D278AB /* AppDelegate.swift */; }; 08DE941C1B8C58AC00D278AB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941A1B8C58AC00D278AB /* Main.storyboard */; }; 08DE941E1B8C58AC00D278AB /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941D1B8C58AC00D278AB /* Images.xcassets */; }; @@ -1268,50 +855,42 @@ 08DF1D961BDADB7A00BA35EA /* Scripts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 08DF1D951BDADB7A00BA35EA /* Scripts.plist */; }; 08DF1D981BDAE11500BA35EA /* HTMLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D971BDAE11500BA35EA /* HTMLBuilder.swift */; }; 08DF788D1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; - 08DF788E1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF788F1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF78911F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF78921F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF78931F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF78941F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; 08DF78951F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; - 08DF78961F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF78971F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF78991F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF789A1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF789B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF789C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; 08DF789E1F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; - 08DF789F1F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A01F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A21F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A31F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A41F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A51F5DE64300AEEA85 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; 08DF78A81F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; - 08DF78A91F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78AA1F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78AC1F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78AD1F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78AE1F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78AF1F5DE66200AEEA85 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; 08DF78B91F5E0C9000AEEA85 /* StringHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C03B2A31F0CD87600005383 /* StringHelper.swift */; }; - 08DF78BA1F5E0C9300AEEA85 /* StringHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C03B2A31F0CD87600005383 /* StringHelper.swift */; }; 08DF78BC1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; - 08DF78BD1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; 08DF78BE1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; 08DF78C01F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; 08DF78C11F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; 08DF78C21F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; 08DF78C31F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; - 08DF78C81F60118E00AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78C91F60118F00AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78CB1F60119000AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78CC1F60119100AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78CD1F60119100AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78CE1F60119200AEEA85 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 08DF78D21F64059900AEEA85 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; - 08DF78D31F64059900AEEA85 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; 08DF78D41F64059900AEEA85 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; 08DF78D61F64059900AEEA85 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; 08DF78D71F64059900AEEA85 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; @@ -1328,132 +907,100 @@ 08E3A3BC1E93C35800E9C2EF /* AuthRoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3AD1E676373006BC60F /* AuthRoutingManager.swift */; }; 08E3A3BD1E93C40800E9C2EF /* LastStepGlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0884696B1E7C2E00009131E9 /* LastStepGlobalContext.swift */; }; 08E3B9671EEA16DC0072995B /* CodeReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E3B9661EEA16DC0072995B /* CodeReply.swift */; }; - 08E3B9681EEA16DC0072995B /* CodeReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E3B9661EEA16DC0072995B /* CodeReply.swift */; }; 08E3B9691EEA16DC0072995B /* CodeReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E3B9661EEA16DC0072995B /* CodeReply.swift */; }; 08E542011C6A76E100DEC38E /* MathJax in Resources */ = {isa = PBXBuildFile; fileRef = 08E542001C6A76E100DEC38E /* MathJax */; }; 08E542031C6C75FD00DEC38E /* EmptyDatasetState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542021C6C75FD00DEC38E /* EmptyDatasetState.swift */; }; 08E542091C6CD65500DEC38E /* CourseSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542081C6CD65500DEC38E /* CourseSubscriptionManager.swift */; }; 08E59ABF1E433057008EEECE /* FillBlanksDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E59ABE1E433057008EEECE /* FillBlanksDataset.swift */; }; - 08E59AC01E433057008EEECE /* FillBlanksDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E59ABE1E433057008EEECE /* FillBlanksDataset.swift */; }; 08E6BB681DC8DF59006622EC /* UserActivitiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB671DC8DF59006622EC /* UserActivitiesAPI.swift */; }; - 08E6BB691DC8DF59006622EC /* UserActivitiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB671DC8DF59006622EC /* UserActivitiesAPI.swift */; }; 08E6BB6B1DC8EB45006622EC /* UserActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB6A1DC8EB45006622EC /* UserActivity.swift */; }; - 08E6BB6C1DC8EB45006622EC /* UserActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB6A1DC8EB45006622EC /* UserActivity.swift */; }; 08E8F9671F34DD2C008CF4A1 /* SearchQueriesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9661F34DD2C008CF4A1 /* SearchQueriesPresenter.swift */; }; - 08E8F9681F34DD2C008CF4A1 /* SearchQueriesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9661F34DD2C008CF4A1 /* SearchQueriesPresenter.swift */; }; 08E8F9691F34DD2C008CF4A1 /* SearchQueriesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9661F34DD2C008CF4A1 /* SearchQueriesPresenter.swift */; }; 08E8F96C1F34DD48008CF4A1 /* SearchQueriesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F96B1F34DD48008CF4A1 /* SearchQueriesView.swift */; }; - 08E8F96D1F34DD48008CF4A1 /* SearchQueriesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F96B1F34DD48008CF4A1 /* SearchQueriesView.swift */; }; 08E8F96E1F34DD48008CF4A1 /* SearchQueriesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F96B1F34DD48008CF4A1 /* SearchQueriesView.swift */; }; 08E8F9741F34E3D5008CF4A1 /* SearchQueriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9731F34E3D5008CF4A1 /* SearchQueriesViewController.swift */; }; - 08E8F9751F34E3D5008CF4A1 /* SearchQueriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9731F34E3D5008CF4A1 /* SearchQueriesViewController.swift */; }; 08E8F9761F34E3D5008CF4A1 /* SearchQueriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9731F34E3D5008CF4A1 /* SearchQueriesViewController.swift */; }; 08E8F97A1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9781F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift */; }; - 08E8F97B1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9781F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift */; }; 08E8F97C1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9781F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift */; }; 08E8F97D1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08E8F9791F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib */; }; - 08E8F97E1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08E8F9791F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib */; }; 08E8F97F1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08E8F9791F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib */; }; 08EA89B5200E53AA00BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; 08EA89B7200E53AB00BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; 08EA89B8200E53AC00BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; 08EA89B9200E53AD00BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; 08EA89BA200E53AD00BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; - 08EA89BB200E53B200BCAF44 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; 08EA89BC200E53CC00BCAF44 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; 08EA89BE200E53CD00BCAF44 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; 08EA89BF200E53CE00BCAF44 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; 08EA89C0200E53CE00BCAF44 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; 08EA89C1200E53CE00BCAF44 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; - 08EA89C2200E686800BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; 08EA89C3200E686800BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; 08EA89C5200E686900BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; 08EA89C6200E686900BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; 08EA89C7200E686A00BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; 08EA89C8200E686B00BCAF44 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; - 08EA89C9200E688800BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; 08EA89CA200E688900BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; 08EA89CC200E688900BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; 08EA89CD200E688A00BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; 08EA89CE200E688A00BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; 08EA89CF200E688B00BCAF44 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; - 08EA89D0200E69C800BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EA89D1200E69C900BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EA89D3200E69CA00BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EA89D4200E69CB00BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EA89D5200E69CB00BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EA89D6200E69CC00BCAF44 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; 08EB85DF1D0F192900E4F345 /* LoadMoreTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85DD1D0F192900E4F345 /* LoadMoreTableViewCell.swift */; }; - 08EB85E01D0F192A00E4F345 /* LoadMoreTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85DD1D0F192900E4F345 /* LoadMoreTableViewCell.swift */; }; 08EB85E11D0F192A00E4F345 /* LoadMoreTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85DE1D0F192900E4F345 /* LoadMoreTableViewCell.xib */; }; - 08EB85E21D0F192A00E4F345 /* LoadMoreTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85DE1D0F192900E4F345 /* LoadMoreTableViewCell.xib */; }; 08EB85E61D0F446A00E4F345 /* DiscussionUpdateDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E51D0F446A00E4F345 /* DiscussionUpdateDelegate.swift */; }; - 08EB85E71D0F446A00E4F345 /* DiscussionUpdateDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E51D0F446A00E4F345 /* DiscussionUpdateDelegate.swift */; }; 08EB85E91D0F649700E4F345 /* CellOperationsUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E81D0F649700E4F345 /* CellOperationsUtil.swift */; }; - 08EB85EA1D0F649700E4F345 /* CellOperationsUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E81D0F649700E4F345 /* CellOperationsUtil.swift */; }; 08EB85EC1D100B7300E4F345 /* DiscussionCellDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EB1D100B7300E4F345 /* DiscussionCellDelegate.swift */; }; - 08EB85ED1D100B7400E4F345 /* DiscussionCellDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EB1D100B7300E4F345 /* DiscussionCellDelegate.swift */; }; 08EB85F01D101D7800E4F345 /* WriteCommentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EE1D101D7800E4F345 /* WriteCommentViewController.swift */; }; - 08EB85F11D101D7800E4F345 /* WriteCommentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EE1D101D7800E4F345 /* WriteCommentViewController.swift */; }; 08EB85F51D10267800E4F345 /* WriteCommentDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85F41D10267800E4F345 /* WriteCommentDelegate.swift */; }; - 08EB85F61D10267900E4F345 /* WriteCommentDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85F41D10267800E4F345 /* WriteCommentDelegate.swift */; }; 08EB85F81D10454D00E4F345 /* DiscussionsStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85F71D10454D00E4F345 /* DiscussionsStoryboard.storyboard */; }; - 08EB85F91D10454E00E4F345 /* DiscussionsStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85F71D10454D00E4F345 /* DiscussionsStoryboard.storyboard */; }; 08EB85FB1D10863F00E4F345 /* DiscussionAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85FA1D10863F00E4F345 /* DiscussionAlertConstructor.swift */; }; - 08EB85FC1D10863F00E4F345 /* DiscussionAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85FA1D10863F00E4F345 /* DiscussionAlertConstructor.swift */; }; - 08ECC4481DB8D3D60005D401 /* StyledNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387DE1D7AF5C30092E05D /* StyledNavigationViewController.swift */; }; - 08ECC4491DB8D56E0005D401 /* StyledTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387E01D7AF7700092E05D /* StyledTabBarViewController.swift */; }; 08ED08E21FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; - 08ED08E31FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08ED08E41FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08ED08E61FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08ED08E71FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08ED08E81FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08ED08E91FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; 08EDB8B11F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; - 08EDB8B21F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8B31F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8B51F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8B61F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8B71F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8B81F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; 08EDB8BB1F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; - 08EDB8BC1F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8BD1F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8BF1F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8C01F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8C11F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8C21F7C3D430028A9AE /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; 08EDB8C51F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; - 08EDB8C61F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8C71F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8C91F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8CA1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8CB1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8CC1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; 08EDB8CD1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; - 08EDB8CE1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDB8CF1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDB8D11F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDB8D21F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDB8D31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDB8D41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; 08EDD6181F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; - 08EDD6191F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD61A1F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD61C1F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD61D1F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD61E1F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD61F1F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; 08EDD6201F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; - 08EDD6211F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD6221F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD6241F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD6251F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD6261F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD6271F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; 08EDD62A1F7C6785005203E4 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; - 08EDD62B1F7C6785005203E4 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; 08EDD62C1F7C6785005203E4 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; 08EDD62E1F7C6785005203E4 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; 08EDD62F1F7C6785005203E4 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; @@ -1462,11 +1009,8 @@ 08EF9A081C91D0F800433E4A /* StepicVideoPlayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EF9A051C91D0F800433E4A /* StepicVideoPlayerViewController.swift */; }; 08EF9A0A1C91D0F800433E4A /* StepicVideoPlayerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EF9A071C91D0F800433E4A /* StepicVideoPlayerViewController.xib */; }; 08F261211E79DD0C00AC908B /* APIEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F261201E79DD0B00AC908B /* APIEndpoint.swift */; }; - 08F261221E79DD0C00AC908B /* APIEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F261201E79DD0B00AC908B /* APIEndpoint.swift */; }; 08F4761E1E82C11C0018E82C /* StreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F4761D1E82C11C0018E82C /* StreaksView.xib */; }; - 08F4761F1E82C11C0018E82C /* StreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F4761D1E82C11C0018E82C /* StreaksView.xib */; }; 08F476221E82C1480018E82C /* StreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F476211E82C1480018E82C /* StreaksView.swift */; }; - 08F476231E82C1480018E82C /* StreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F476211E82C1480018E82C /* StreaksView.swift */; }; 08F485931C574D79000165AA /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485921C574D79000165AA /* WarningView.swift */; }; 08F485951C574DAD000165AA /* WarningView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485941C574DAD000165AA /* WarningView.xib */; }; 08F485981C5752D0000165AA /* UIViewLoadExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485971C5752D0000165AA /* UIViewLoadExtension.swift */; }; @@ -1484,7 +1028,6 @@ 08F485B71C58ECE3000165AA /* SortingQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B61C58ECE3000165AA /* SortingQuizTableViewCell.swift */; }; 08F485B91C58ED01000165AA /* SortingQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485B81C58ED01000165AA /* SortingQuizTableViewCell.xib */; }; 08F4CB281CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4CB271CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift */; }; - 08F4CB291CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4CB271CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift */; }; 08F5554E1C4F924000C877E8 /* Attempt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554D1C4F924000C877E8 /* Attempt.swift */; }; 08F555501C4F93B700C877E8 /* Dataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554F1C4F93B700C877E8 /* Dataset.swift */; }; 08F555541C4F97C100C877E8 /* ChoiceDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555531C4F97C100C877E8 /* ChoiceDataset.swift */; }; @@ -1502,13 +1045,9 @@ 08F8FEBA1F4D07B6009F21BA /* ReplyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E5E0D1F46379100F41426 /* ReplyCache.swift */; }; 08FCEB641B9ED2AC00FC4F8B /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 08FEFC1C1F117257005CA0FB /* CodeSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC1A1F117257005CA0FB /* CodeSuggestionTableViewCell.swift */; }; - 08FEFC1D1F117257005CA0FB /* CodeSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC1A1F117257005CA0FB /* CodeSuggestionTableViewCell.swift */; }; 08FEFC1E1F117257005CA0FB /* CodeSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08FEFC1B1F117257005CA0FB /* CodeSuggestionTableViewCell.xib */; }; - 08FEFC1F1F117257005CA0FB /* CodeSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08FEFC1B1F117257005CA0FB /* CodeSuggestionTableViewCell.xib */; }; 08FEFC211F127470005CA0FB /* AutocompleteWords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC201F127470005CA0FB /* AutocompleteWords.swift */; }; - 08FEFC221F127470005CA0FB /* AutocompleteWords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC201F127470005CA0FB /* AutocompleteWords.swift */; }; 08FF75301DF9B89000D656C4 /* StreaksStepikAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FF752F1DF9B89000D656C4 /* StreaksStepikAlertManager.swift */; }; - 08FF75311DF9B89000D656C4 /* StreaksStepikAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FF752F1DF9B89000D656C4 /* StreaksStepikAlertManager.swift */; }; 0E2B1455D0480FA8DEDE5288 /* Pods_Adaptive_1838_Screenshots.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7323D7E21164616CABECB50 /* Pods_Adaptive_1838_Screenshots.framework */; }; 1B0A8439D733F3D0B65D47AC /* Pods_Stepic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DEC4FAD5F7ACA1C893F5BB3 /* Pods_Stepic.framework */; }; 1B3296DFD6BAA51FAAB6C3D0 /* Pods_StepicTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C3C8CE2D05F89F06659D716 /* Pods_StepicTests.framework */; }; @@ -1844,7 +1383,6 @@ 2C1B62061F4C4AEF00236804 /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 2C1B62071F4C4AEF00236804 /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 2C1B62081F4C4AEF00236804 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 2C1B62091F4C4AEF00236804 /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 2C1B620A1F4C4AEF00236804 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 2C1B620B1F4C4AEF00236804 /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 2C1B620C1F4C4AEF00236804 /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; @@ -2241,7 +1779,6 @@ 2C1B64171F4C590700236804 /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 2C1B64181F4C590700236804 /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 2C1B64191F4C590700236804 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 2C1B641A1F4C590700236804 /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 2C1B641B1F4C590700236804 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 2C1B641C1F4C590700236804 /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 2C1B641D1F4C590700236804 /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; @@ -2449,7 +1986,6 @@ 2C5DF14B1FED2C51003B1177 /* StepReversedCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF14A1FED2C51003B1177 /* StepReversedCardView.swift */; }; 2C5DF14F1FED2E84003B1177 /* CardOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF14E1FED2E84003B1177 /* CardOverlayView.swift */; }; 2C5F77BE1F90EE3F00E8E175 /* TapProxyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9704221F3B1BFE00C36F0A /* TapProxyView.swift */; }; - 2C5F77BF1F90EE3F00E8E175 /* TapProxyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9704221F3B1BFE00C36F0A /* TapProxyView.swift */; }; 2C5F77C11F90F63B00E8E175 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; 2C5F77C41F90FC2500E8E175 /* NotificationsMarkAsReadButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C31F90FC2500E8E175 /* NotificationsMarkAsReadButton.swift */; }; 2C604E1F207E45A1001588FB /* CodeEditorPreviewView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2C604E1E207E45A1001588FB /* CodeEditorPreviewView.xib */; }; @@ -2989,7 +2525,6 @@ 2C89AA9A1F4C289900227C3B /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 2C89AA9B1F4C289900227C3B /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 2C89AA9C1F4C289900227C3B /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 2C89AA9D1F4C289900227C3B /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 2C89AA9E1F4C289900227C3B /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 2C89AA9F1F4C289900227C3B /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 2C89AAA01F4C289900227C3B /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; @@ -3392,7 +2927,6 @@ 2C97324E1F4C38F600AC9301 /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 2C97324F1F4C38F600AC9301 /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 2C9732501F4C38F600AC9301 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 2C9732511F4C38F600AC9301 /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 2C9732521F4C38F600AC9301 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 2C9732531F4C38F600AC9301 /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 2C9732541F4C38F600AC9301 /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; @@ -3512,7 +3046,6 @@ 2C9E3F3E1F7A930100DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; 2C9E3F3F1F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; 2C9E3F401F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; - 2C9E3F411F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; 2C9E3F421F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; 2C9E3F431F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; 2C9E3F451F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; @@ -3549,6 +3082,586 @@ 2CA5E5A6200E1FC700CE77B0 /* AdaptiveRatingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEDA35F1F336FEC005F4A5D /* AdaptiveRatingHelper.swift */; }; 2CA5E5A7200E1FCA00CE77B0 /* AdaptiveRatingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C76ACCC1F16496C0077D9D7 /* AdaptiveRatingManager.swift */; }; 2CA6414F204565C1009842D6 /* step0.html in Resources */ = {isa = PBXBuildFile; fileRef = 2C8652661F4B2FA500D51654 /* step0.html */; }; + 2CA8D13C2088D9C000E105E9 /* UserActivityHomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88D41FCCDF3900003B63 /* UserActivityHomeView.swift */; }; + 2CA8D13D2088D9C000E105E9 /* CodeLanguagePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081BF3461EFEF630002F84AA /* CodeLanguagePickerViewController.swift */; }; + 2CA8D13E2088D9C000E105E9 /* LessonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089984281ECDE188005C0B27 /* LessonViewController.swift */; }; + 2CA8D13F2088D9C000E105E9 /* Notification+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3B1F7A80A300DDF1AA /* Notification+CoreDataProperties.swift */; }; + 2CA8D1402088D9C000E105E9 /* LessonPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842B1ECDE194005C0B27 /* LessonPresenter.swift */; }; + 2CA8D1412088D9C000E105E9 /* LessonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0899842E1ECDE19E005C0B27 /* LessonView.swift */; }; + 2CA8D1422088D9C000E105E9 /* PagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1943F1ED0A05D00A41B72 /* PagerController.swift */; }; + 2CA8D1432088D9C000E105E9 /* ShareableController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082348381ECA264000D2CB40 /* ShareableController.swift */; }; + 2CA8D1442088D9C000E105E9 /* StepReversedCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF14A1FED2C51003B1177 /* StepReversedCardView.swift */; }; + 2CA8D1452088D9C000E105E9 /* PostViewsExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0806B2C11EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift */; }; + 2CA8D1462088D9C000E105E9 /* Tokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087D96BA1EBB7F5500059408 /* Tokens.swift */; }; + 2CA8D1472088D9C000E105E9 /* LoadingPaginationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B291E9EC17F00714173 /* LoadingPaginationView.swift */; }; + 2CA8D1482088D9C000E105E9 /* CertificatesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B2C1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift */; }; + 2CA8D1492088D9C000E105E9 /* CertificatesViewTestMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081058341E9FDD3B00FAC30A /* CertificatesViewTestMock.swift */; }; + 2CA8D14A2088D9C000E105E9 /* CoursesAPIPaginatedMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080AA2311EA024290079272F /* CoursesAPIPaginatedMock.swift */; }; + 2CA8D14B2088D9C000E105E9 /* CertificatesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B131E9D8EF800714173 /* CertificatesViewController.swift */; }; + 2CA8D14C2088D9C000E105E9 /* ContinueLearningWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DB9DD1FA2A1B00074B11E /* ContinueLearningWidgetView.swift */; }; + 2CA8D14D2088D9C000E105E9 /* CertificatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B161E9D8F1D00714173 /* CertificatesView.swift */; }; + 2CA8D14E2088D9C000E105E9 /* CertificatesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B191E9D920500714173 /* CertificatesPresenter.swift */; }; + 2CA8D14F2088D9C000E105E9 /* CertificateViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1C1E9D9ABB00714173 /* CertificateViewData.swift */; }; + 2CA8D1502088D9C000E105E9 /* CertificateTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B1F1E9E645000714173 /* CertificateTableViewCell.swift */; }; + 2CA8D1512088D9C000E105E9 /* CodeInputAccessoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D0FC1F1E3CFC00A16863 /* CodeInputAccessoryView.swift */; }; + 2CA8D1522088D9C000E105E9 /* PresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA321EA64BC000C43C93 /* PresentationContainer.swift */; }; + 2CA8D1532088D9C000E105E9 /* CodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E651EFC07C10036EB3D /* CodeQuizViewController.swift */; }; + 2CA8D1542088D9C000E105E9 /* AchievementsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6640D01F2F5B740033A274 /* AchievementsHelper.swift */; }; + 2CA8D1552088D9C000E105E9 /* CertificatesPresentationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080EBA361EA64C0C00C43C93 /* CertificatesPresentationContainer.swift */; }; + 2CA8D1562088D9C000E105E9 /* Certificate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8381E9D05AE009B4A84 /* Certificate.swift */; }; + 2CA8D1572088D9C000E105E9 /* AnalyticsEvents+Adaptive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCEB4941F27755800B45D63 /* AnalyticsEvents+Adaptive.swift */; }; + 2CA8D1582088D9C000E105E9 /* Certificate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8391E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift */; }; + 2CA8D1592088D9C000E105E9 /* CertificatesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8341E9D025C009B4A84 /* CertificatesAPI.swift */; }; + 2CA8D15A2088D9C000E105E9 /* MenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78BB1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift */; }; + 2CA8D15B2088D9C000E105E9 /* RatingProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C76ACD01F18E8C00077D9D7 /* RatingProgressView.swift */; }; + 2CA8D15C2088D9C000E105E9 /* AdaptiveStatsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE527C02029D8EE0047EC5F /* AdaptiveStatsSection.swift */; }; + 2CA8D15D2088D9C000E105E9 /* StreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F476211E82C1480018E82C /* StreaksView.swift */; }; + 2CA8D15E2088D9C000E105E9 /* RateAppViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560F1E98021000B8FE6A /* RateAppViewController.swift */; }; + 2CA8D15F2088D9C000E105E9 /* StepikLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF78D11F64059900AEEA85 /* StepikLabel.swift */; }; + 2CA8D1602088D9C000E105E9 /* CardStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF13E1FED26AC003B1177 /* CardStepViewController.swift */; }; + 2CA8D1612088D9C000E105E9 /* CustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081566241F69C3AD0082B359 /* CustomSearchBar.swift */; }; + 2CA8D1622088D9C000E105E9 /* LaunchDefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0890560C1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift */; }; + 2CA8D1632088D9C000E105E9 /* CourseListEmptyPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C7CB7C1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift */; }; + 2CA8D1642088D9C000E105E9 /* DefaultsContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089056091E97CD7900B8FE6A /* DefaultsContainer.swift */; }; + 2CA8D1652088D9C000E105E9 /* CoursesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1421E955D300089A27F /* CoursesAPI.swift */; }; + 2CA8D1662088D9C000E105E9 /* SectionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1451E9560EB0089A27F /* SectionsAPI.swift */; }; + 2CA8D1672088D9C000E105E9 /* LessonsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1481E9562430089A27F /* LessonsAPI.swift */; }; + 2CA8D1682088D9C000E105E9 /* UsersAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14B1E9562BF0089A27F /* UsersAPI.swift */; }; + 2CA8D1692088D9C000E105E9 /* StepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE14E1E9562F30089A27F /* StepsAPI.swift */; }; + 2CA8D16A2088D9C000E105E9 /* AssignmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1511E9563170089A27F /* AssignmentsAPI.swift */; }; + 2CA8D16B2088D9C000E105E9 /* ProgressesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1541E9563590089A27F /* ProgressesAPI.swift */; }; + 2CA8D16C2088D9C000E105E9 /* ViewsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1571E9566220089A27F /* ViewsAPI.swift */; }; + 2CA8D16D2088D9C000E105E9 /* SearchResultsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15A1E95804C0089A27F /* SearchResultsAPI.swift */; }; + 2CA8D16E2088D9C000E105E9 /* AttemptsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE15D1E9580CD0089A27F /* AttemptsAPI.swift */; }; + 2CA8D16F2088D9C000E105E9 /* SubmissionsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080CE1601E9581960089A27F /* SubmissionsAPI.swift */; }; + 2CA8D1702088D9C000E105E9 /* RateAppAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082799471E9B81AF008A3786 /* RateAppAlertManager.swift */; }; + 2CA8D1712088D9C000E105E9 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 08E16F221BDBA4AF004822E1 /* Reachability.m */; }; + 2CA8D1722088D9C000E105E9 /* ControllerHelperLaunchExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DA79001DB6BB36003491C4 /* ControllerHelperLaunchExtension.swift */; }; + 2CA8D1732088D9C000E105E9 /* CodeSnippetSymbols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9111F10C5480087D61B /* CodeSnippetSymbols.swift */; }; + 2CA8D1742088D9C000E105E9 /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086E965F1BF66A1800AB952D /* VideoDownloadView.swift */; }; + 2CA8D1752088D9C000E105E9 /* CodeSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7A1EFC13ED0036EB3D /* CodeSample.swift */; }; + 2CA8D1762088D9C000E105E9 /* AdaptiveRatingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C76ACCC1F16496C0077D9D7 /* AdaptiveRatingManager.swift */; }; + 2CA8D1772088D9C000E105E9 /* ProfilePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C02DB31F53201A00F848F5 /* ProfilePresenter.swift */; }; + 2CA8D1782088D9C000E105E9 /* CourseTagCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F70B1FC3837800640F1F /* CourseTagCollectionViewCell.swift */; }; + 2CA8D1792088D9C000E105E9 /* PinsMapExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C4533A0204DB3D00061342A /* PinsMapExpandableMenuBlockTableViewCell.swift */; }; + 2CA8D17A2088D9C000E105E9 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485921C574D79000165AA /* WarningView.swift */; }; + 2CA8D17B2088D9C000E105E9 /* UIViewLoadExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485971C5752D0000165AA /* UIViewLoadExtension.swift */; }; + 2CA8D17C2088D9C000E105E9 /* ProfileStreaksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3661F5B2B8800302154 /* ProfileStreaksView.swift */; }; + 2CA8D17D2088D9C000E105E9 /* StepTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083622D71CD1FA4800CD8915 /* StepTabView.swift */; }; + 2CA8D17E2088D9C000E105E9 /* DiscussionCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089F58841D22BD3C000CD540 /* DiscussionCountView.swift */; }; + 2CA8D17F2088D9C000E105E9 /* ProfilesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8464A1F25FE8B00E8153C /* ProfilesAPI.swift */; }; + 2CA8D1802088D9C000E105E9 /* AdaptiveRatingsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D9842010EEA2007AA743 /* AdaptiveRatingsAPI.swift */; }; + 2CA8D1812088D9C000E105E9 /* StepOptions+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1061EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift */; }; + 2CA8D1822088D9C000E105E9 /* CodeElementsSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1081F1E42A000A16863 /* CodeElementsSize.swift */; }; + 2CA8D1832088D9C000E105E9 /* PickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084BD9BA1E5368B600B1901E /* PickerViewController.swift */; }; + 2CA8D1842088D9C000E105E9 /* StepicVideoPlayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EF9A051C91D0F800433E4A /* StepicVideoPlayerViewController.swift */; }; + 2CA8D1852088D9C000E105E9 /* CongratsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86BB7C012019538000063538 /* CongratsView.swift */; }; + 2CA8D1862088D9C000E105E9 /* AdaptiveRatingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97C20109C07007AA743 /* AdaptiveRatingsPresenter.swift */; }; + 2CA8D1872088D9C000E105E9 /* CodeEditorPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C604E20207E4609001588FB /* CodeEditorPreviewView.swift */; }; + 2CA8D1882088D9C000E105E9 /* PlayerTestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D21C99A8F9006809D9 /* PlayerTestViewController.swift */; }; + 2CA8D1892088D9C000E105E9 /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D41C99B9FB006809D9 /* Player.swift */; }; + 2CA8D18A2088D9C000E105E9 /* VideoRate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8D71C99C49E006809D9 /* VideoRate.swift */; }; + 2CA8D18B2088D9C000E105E9 /* DownloadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0889FEB01BFB864B00C6417E /* DownloadTableViewCell.swift */; }; + 2CA8D18C2088D9C000E105E9 /* DiscussionWebTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B9770A1D19D5AA00FFC52C /* DiscussionWebTableViewCell.swift */; }; + 2CA8D18D2088D9C000E105E9 /* DiscussionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DB8CB71D0BECF000A6D079 /* DiscussionTableViewCell.swift */; }; + 2CA8D18E2088D9C000E105E9 /* HTMLContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA61D175DA00034D86D /* HTMLContentView.swift */; }; + 2CA8D18F2088D9C000E105E9 /* ContentLanguageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885B8D01FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift */; }; + 2CA8D1902088D9C000E105E9 /* HTMLStringWrapperUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA71D175DA00034D86D /* HTMLStringWrapperUtil.swift */; }; + 2CA8D1912088D9C000E105E9 /* HTMLContentViewInteractionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088AADA81D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift */; }; + 2CA8D1922088D9C000E105E9 /* AdaptiveCourseTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD5D36202A1898008ACBC7 /* AdaptiveCourseTableViewCell.swift */; }; + 2CA8D1932088D9C000E105E9 /* DiscussionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082CB1B41D08971900C79A27 /* DiscussionsViewController.swift */; }; + 2CA8D1942088D9C000E105E9 /* LoadMoreTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85DD1D0F192900E4F345 /* LoadMoreTableViewCell.swift */; }; + 2CA8D1952088D9C000E105E9 /* DiscussionUpdateDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E51D0F446A00E4F345 /* DiscussionUpdateDelegate.swift */; }; + 2CA8D1962088D9C000E105E9 /* StepCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF1471FED2B71003B1177 /* StepCardView.swift */; }; + 2CA8D1972088D9C000E105E9 /* CellOperationsUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85E81D0F649700E4F345 /* CellOperationsUtil.swift */; }; + 2CA8D1982088D9C000E105E9 /* DiscussionCellDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EB1D100B7300E4F345 /* DiscussionCellDelegate.swift */; }; + 2CA8D1992088D9C000E105E9 /* WriteCommentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85EE1D101D7800E4F345 /* WriteCommentViewController.swift */; }; + 2CA8D19A2088D9C000E105E9 /* AdaptiveRemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9295032035D83F0058D18C /* AdaptiveRemoteConfig.swift */; }; + 2CA8D19B2088D9C000E105E9 /* WriteCommentDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85F41D10267800E4F345 /* WriteCommentDelegate.swift */; }; + 2CA8D19C2088D9C000E105E9 /* DiscussionAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB85FA1D10863F00E4F345 /* DiscussionAlertConstructor.swift */; }; + 2CA8D19D2088D9C000E105E9 /* VideoStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424D1BCEED8E0000BCB0 /* VideoStepViewController.swift */; }; + 2CA8D19E2088D9C000E105E9 /* WebStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0891424F1BCFFB7F0000BCB0 /* WebStepViewController.swift */; }; + 2CA8D19F2088D9C000E105E9 /* LocalProgressLastViewedUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F211A2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift */; }; + 2CA8D1A02088D9C000E105E9 /* AdaptiveCardsStepsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA2E70D20237DB7001DC410 /* AdaptiveCardsStepsViewController.swift */; }; + 2CA8D1A12088D9C000E105E9 /* CellWebViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085514EA1CFB09760080CB88 /* CellWebViewHelper.swift */; }; + 2CA8D1A22088D9C000E105E9 /* QuizControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555641C4FF22600C877E8 /* QuizControllerDelegate.swift */; }; + 2CA8D1A32088D9C000E105E9 /* QuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081A7DA81C56625F00583728 /* QuizViewController.swift */; }; + 2CA8D1A42088D9C000E105E9 /* UnknownTypeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555621C4FE30400C877E8 /* UnknownTypeQuizViewController.swift */; }; + 2CA8D1A52088D9C000E105E9 /* ChoiceQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555681C50007800C877E8 /* ChoiceQuizViewController.swift */; }; + 2CA8D1A62088D9C000E105E9 /* ChoiceQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084472041D05918E00197166 /* ChoiceQuizTableViewCell.swift */; }; + 2CA8D1A72088D9C000E105E9 /* MenuBlocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217791F54E91300186245 /* MenuBlocks.swift */; }; + 2CA8D1A82088D9C000E105E9 /* LastStep+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA91E76EF780088368A /* LastStep+CoreDataProperties.swift */; }; + 2CA8D1A92088D9C000E105E9 /* StringQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4859B1C5786DE000165AA /* StringQuizViewController.swift */; }; + 2CA8D1AA2088D9C000E105E9 /* NumberQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A11C57987B000165AA /* NumberQuizViewController.swift */; }; + 2CA8D1AB2088D9C000E105E9 /* RemoteConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084C658C1FDAD04C006A3E17 /* RemoteConfig.swift */; }; + 2CA8D1AC2088D9C000E105E9 /* ProgressTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D9802010A0CD007AA743 /* ProgressTableViewCell.swift */; }; + 2CA8D1AD2088D9C000E105E9 /* FreeAnswerQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A61C57B023000165AA /* FreeAnswerQuizViewController.swift */; }; + 2CA8D1AE2088D9C000E105E9 /* MathQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485AB1C580DB3000165AA /* MathQuizViewController.swift */; }; + 2CA8D1AF2088D9C000E105E9 /* CourseListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB581F8F5A48009B736E /* CourseListViewController.swift */; }; + 2CA8D1B02088D9C000E105E9 /* SortingQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B21C58EC33000165AA /* SortingQuizViewController.swift */; }; + 2CA8D1B12088D9C000E105E9 /* SortingQuizTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B61C58ECE3000165AA /* SortingQuizTableViewCell.swift */; }; + 2CA8D1B22088D9C000E105E9 /* MatchingQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46E1E2CEC4E002F8516 /* MatchingQuizViewController.swift */; }; + 2CA8D1B32088D9C000E105E9 /* FillBlanksTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEA61E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift */; }; + 2CA8D1B42088D9C000E105E9 /* LastStepRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2841F901CCF00B4BE56 /* LastStepRouter.swift */; }; + 2CA8D1B52088D9C000E105E9 /* FillBlanksInputTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE9F1E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift */; }; + 2CA8D1B62088D9C000E105E9 /* FillBlanksQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE941E4F19B600A0D206 /* FillBlanksQuizViewController.swift */; }; + 2CA8D1B72088D9C000E105E9 /* LastStepGlobalContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0884696B1E7C2E00009131E9 /* LastStepGlobalContext.swift */; }; + 2CA8D1B82088D9C000E105E9 /* FillBlanksChoiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AE971E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift */; }; + 2CA8D1B92088D9C000E105E9 /* CodeLimit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10F1EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift */; }; + 2CA8D1BA2088D9C000E105E9 /* FillBlanksActiveTableViewCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0859AEAC1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift */; }; + 2CA8D1BB2088D9C000E105E9 /* RGPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D51E6D9BE800423EFF /* RGPageViewController.swift */; }; + 2CA8D1BC2088D9C000E105E9 /* RGTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D61E6D9BE800423EFF /* RGTabBarItem.swift */; }; + 2CA8D1BD2088D9C000E105E9 /* AdaptiveStatsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC0754620177A2E004A6005 /* AdaptiveStatsViewController.swift */; }; + 2CA8D1BE2088D9C000E105E9 /* RGTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D71E6D9BE800423EFF /* RGTabView.swift */; }; + 2CA8D1BF2088D9C000E105E9 /* RGPageViewController+UICollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59D91E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift */; }; + 2CA8D1C02088D9C000E105E9 /* CAGradientLayer+Init.swift in Sources */ = {isa = PBXBuildFile; fileRef = 861B96361FE1DF7F00773EDA /* CAGradientLayer+Init.swift */; }; + 2CA8D1C12088D9C000E105E9 /* RGPageViewController+UICollectionViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DA1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift */; }; + 2CA8D1C22088D9C000E105E9 /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DB1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift */; }; + 2CA8D1C32088D9C000E105E9 /* CodeTemplate+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1181EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift */; }; + 2CA8D1C42088D9C000E105E9 /* StepikPlaceholderStyle+Placeholders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 866AD0D3206145DC0004C2B2 /* StepikPlaceholderStyle+Placeholders.swift */; }; + 2CA8D1C52088D9C000E105E9 /* CourseListHorizontalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCA51F9496DE0098DEC7 /* CourseListHorizontalViewController.swift */; }; + 2CA8D1C62088D9C000E105E9 /* CardStepDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF1421FED2758003B1177 /* CardStepDelegate.swift */; }; + 2CA8D1C72088D9C000E105E9 /* RGPageViewController+UIPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DC1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift */; }; + 2CA8D1C82088D9C000E105E9 /* RGPageViewController+UIPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DD1E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift */; }; + 2CA8D1C92088D9C000E105E9 /* RGPageViewController+UIScrollViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DE1E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift */; }; + 2CA8D1CA2088D9C000E105E9 /* RGPageViewController+UIToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59DF1E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift */; }; + 2CA8D1CB2088D9C000E105E9 /* UINavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E01E6D9BE800423EFF /* UINavigationBar.swift */; }; + 2CA8D1CC2088D9C000E105E9 /* RGPageViewControllerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E21E6D9BE800423EFF /* RGPageViewControllerDataSource.swift */; }; + 2CA8D1CD2088D9C000E105E9 /* CourseWidgetTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6161F7C607A005203E4 /* CourseWidgetTableViewCell.swift */; }; + 2CA8D1CE2088D9C000E105E9 /* AdaptiveStatsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C733C391F29E090000E7FAF /* AdaptiveStatsManager.swift */; }; + 2CA8D1CF2088D9C000E105E9 /* MigrationExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C0AF18B203C67EC000EA3B6 /* MigrationExtensions.swift */; }; + 2CA8D1D02088D9C000E105E9 /* RGPageViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AF59E31E6D9BE800423EFF /* RGPageViewControllerDelegate.swift */; }; + 2CA8D1D12088D9C000E105E9 /* GeneralInfoTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0802C3B11BFE3B95003CDAD2 /* GeneralInfoTableViewCell.swift */; }; + 2CA8D1D22088D9C000E105E9 /* TeachersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59E51BBD25DC008DC44D /* TeachersTableViewCell.swift */; }; + 2CA8D1D32088D9C000E105E9 /* TeacherCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59DA1BBC00B9008DC44D /* TeacherCollectionViewCell.swift */; }; + 2CA8D1D42088D9C000E105E9 /* TitleTextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08047E6C1BFDC0470071C875 /* TitleTextTableViewCell.swift */; }; + 2CA8D1D52088D9C000E105E9 /* CoursePreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59D81BBC008A008DC44D /* CoursePreviewViewController.swift */; }; + 2CA8D1D62088D9C000E105E9 /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8463E1F25F7F300E8153C /* Profile.swift */; }; + 2CA8D1D72088D9C000E105E9 /* VideoQualityTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74651BD924B80064AAEA /* VideoQualityTableViewController.swift */; }; + 2CA8D1D82088D9C000E105E9 /* CourseWidgetCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDCAF1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift */; }; + 2CA8D1D92088D9C000E105E9 /* RateAppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0829B8311E9C4CB5009B4A84 /* RateAppManager.swift */; }; + 2CA8D1DA2088D9C000E105E9 /* CourseReviewSummary+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F5761F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift */; }; + 2CA8D1DB2088D9C000E105E9 /* FullHeightWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A5004F1F2B73C000140D25 /* FullHeightWebView.swift */; }; + 2CA8D1DC2088D9C000E105E9 /* NotificationTimePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08263D6E1DE5F230002E5B7F /* NotificationTimePickerViewController.swift */; }; + 2CA8D1DD2088D9C000E105E9 /* RefreshTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08687BAC1BACB43700F5BDE1 /* RefreshTableViewCell.swift */; }; + 2CA8D1DE2088D9C000E105E9 /* AdaptiveStepCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86ABC66B1E96867A0012E8A6 /* AdaptiveStepCardView.swift */; }; + 2CA8D1DF2088D9C000E105E9 /* TapProxyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9704221F3B1BFE00C36F0A /* TapProxyView.swift */; }; + 2CA8D1E02088D9C000E105E9 /* CodeSample+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E7F1EFC28CE0036EB3D /* CodeSample+CoreDataProperties.swift */; }; + 2CA8D1E12088D9C000E105E9 /* Achievement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6640C91F2F35E60033A274 /* Achievement.swift */; }; + 2CA8D1E22088D9C000E105E9 /* EmailAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351961F683140004255B6 /* EmailAuthViewController.swift */; }; + 2CA8D1E32088D9C000E105E9 /* SearchResultsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF301FBA0CA1008F342F /* SearchResultsViewController.swift */; }; + 2CA8D1E42088D9C000E105E9 /* LoadingCourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086BE2B11F93A21B00B4BE56 /* LoadingCourseWidgetView.swift */; }; + 2CA8D1E52088D9C000E105E9 /* SearchQueriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9731F34E3D5008CF4A1 /* SearchQueriesViewController.swift */; }; + 2CA8D1E62088D9C000E105E9 /* SectionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF781BC5E744000AFEA7 /* SectionsViewController.swift */; }; + 2CA8D1E72088D9C000E105E9 /* SectionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF741BC5E6B0000AFEA7 /* SectionTableViewCell.swift */; }; + 2CA8D1E82088D9C000E105E9 /* UnitsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF851BC81EEC000AFEA7 /* UnitsViewController.swift */; }; + 2CA8D1E92088D9C000E105E9 /* AchievementNotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2544081F3480BE004DB3D9 /* AchievementNotificationView.swift */; }; + 2CA8D1EA2088D9C000E105E9 /* CardOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF14E1FED2E84003B1177 /* CardOverlayView.swift */; }; + 2CA8D1EB2088D9C000E105E9 /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; + 2CA8D1EC2088D9C000E105E9 /* FullscreenCodeQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80FC1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift */; }; + 2CA8D1ED2088D9C000E105E9 /* UnitTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF8A1BC81F41000AFEA7 /* UnitTableViewCell.swift */; }; + 2CA8D1EE2088D9C000E105E9 /* SectionNavigationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A0218D1D675B4700915679 /* SectionNavigationDelegate.swift */; }; + 2CA8D1EF2088D9C000E105E9 /* SearchResultsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1BF271FB9ED01008F342F /* SearchResultsPresenter.swift */; }; + 2CA8D1F02088D9C000E105E9 /* ReplaceLastSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082FD64B1D6C849C007F3E07 /* ReplaceLastSegue.swift */; }; + 2CA8D1F12088D9C000E105E9 /* StyledNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387DE1D7AF5C30092E05D /* StyledNavigationViewController.swift */; }; + 2CA8D1F22088D9C000E105E9 /* StepikPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF08860205BEE2B00FCB9C0 /* StepikPlaceholder.swift */; }; + 2CA8D1F32088D9C000E105E9 /* NotificationsMarkAsReadButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C31F90FC2500E8E175 /* NotificationsMarkAsReadButton.swift */; }; + 2CA8D1F42088D9C000E105E9 /* TransitionMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3251F57563C00302154 /* TransitionMenuBlockTableViewCell.swift */; }; + 2CA8D1F52088D9C000E105E9 /* StyledTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081387E01D7AF7700092E05D /* StyledTabBarViewController.swift */; }; + 2CA8D1F62088D9C000E105E9 /* CodeReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E3B9661EEA16DC0072995B /* CodeReply.swift */; }; + 2CA8D1F72088D9C000E105E9 /* TCBlobDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5E1BD7DE2A00329F2B /* TCBlobDownload.swift */; }; + 2CA8D1F82088D9C000E105E9 /* PinsMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C453397204D46E90061342A /* PinsMap.swift */; }; + 2CA8D1F92088D9C000E105E9 /* TCBlobDownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF5F1BD7DE2A00329F2B /* TCBlobDownloadManager.swift */; }; + 2CA8D1FA2088D9C000E105E9 /* Alamofire-SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0824289B1BB0104700C98185 /* Alamofire-SwiftyJSON.swift */; }; + 2CA8D1FB2088D9C000E105E9 /* JSQWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083B164C1C2AF27700250B37 /* JSQWebViewController.swift */; }; + 2CA8D1FC2088D9C000E105E9 /* CourseReviewSummariesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F57F1F7DBA70007C1634 /* CourseReviewSummariesAPI.swift */; }; + 2CA8D1FD2088D9C000E105E9 /* WatchSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C71491E076B3E00EC8DA3 /* WatchSessionManager.swift */; }; + 2CA8D1FE2088D9C000E105E9 /* WatchSessionDataObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714A1E076B3E00EC8DA3 /* WatchSessionDataObserver.swift */; }; + 2CA8D1FF2088D9C000E105E9 /* WatchSessionSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714B1E076B3E00EC8DA3 /* WatchSessionSender.swift */; }; + 2CA8D2002088D9C000E105E9 /* DataConvertable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714C1E076B3E00EC8DA3 /* DataConvertable.swift */; }; + 2CA8D2012088D9C000E105E9 /* CoursePlainEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714D1E076B3E00EC8DA3 /* CoursePlainEntity.swift */; }; + 2CA8D2022088D9C000E105E9 /* CourseMetainfoEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F5F3D701E08783E00000423 /* CourseMetainfoEntity.swift */; }; + 2CA8D2032088D9C000E105E9 /* PlaybackCommandEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714E1E076B3E00EC8DA3 /* PlaybackCommandEntity.swift */; }; + 2CA8D2042088D9C000E105E9 /* PlaybackStatusEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714F1E076B3E00EC8DA3 /* PlaybackStatusEntity.swift */; }; + 2CA8D2052088D9C000E105E9 /* HTMLBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D971BDAE11500BA35EA /* HTMLBuilder.swift */; }; + 2CA8D2062088D9C000E105E9 /* SQLReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */; }; + 2CA8D2072088D9C000E105E9 /* UICustomizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C9A2B1BAC88E2001BE326 /* UICustomizer.swift */; }; + 2CA8D2082088D9C000E105E9 /* CoreDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D71BB9A4BD003CFAD1 /* CoreDataHelper.swift */; }; + 2CA8D2092088D9C000E105E9 /* AuthTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC351991F68339A004255B6 /* AuthTextField.swift */; }; + 2CA8D20A2088D9C000E105E9 /* ConnectionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E16F281BDBA731004822E1 /* ConnectionHelper.swift */; }; + 2CA8D20B2088D9C000E105E9 /* CardStepPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF1401FED26B7003B1177 /* CardStepPresenter.swift */; }; + 2CA8D20C2088D9C000E105E9 /* Sorter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A1256E1BDE8E460066B2B2 /* Sorter.swift */; }; + 2CA8D20D2088D9C000E105E9 /* Messages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C0A4331BF1276C0010F049 /* Messages.swift */; }; + 2CA8D20E2088D9C000E105E9 /* CardsStepsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF1381FEBDC8C003B1177 /* CardsStepsPresenter.swift */; }; + 2CA8D20F2088D9C000E105E9 /* UIThreadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B5E2991BF509C900B875E6 /* UIThreadHelper.swift */; }; + 2CA8D2102088D9C000E105E9 /* NotificationStatusesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A721FC76578008E7E6C /* NotificationStatusesAPI.swift */; }; + 2CA8D2112088D9C000E105E9 /* DeviceInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CE16DF1BFA5A80008511B7 /* DeviceInfo.swift */; }; + 2CA8D2122088D9C000E105E9 /* MenuUIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3001F57459800302154 /* MenuUIManager.swift */; }; + 2CA8D2132088D9C000E105E9 /* Time.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D2AE451C04BA6100BD8C3D /* Time.swift */; }; + 2CA8D2142088D9C000E105E9 /* AnalyticsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D2AE491C05127500BD8C3D /* AnalyticsHelper.swift */; }; + 2CA8D2152088D9C000E105E9 /* ControllerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D64AE1C19BDB2003222F0 /* ControllerHelper.swift */; }; + 2CA8D2162088D9C000E105E9 /* NotificationRequestAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CCAEC0204F0B2D002B4544 /* NotificationRequestAlertManager.swift */; }; + 2CA8D2172088D9C000E105E9 /* GCDThings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5556B1C5267A600C877E8 /* GCDThings.swift */; }; + 2CA8D2182088D9C000E105E9 /* TooltipDefaultsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087296DB20168FF2009F9256 /* TooltipDefaultsManager.swift */; }; + 2CA8D2192088D9C000E105E9 /* CourseTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F7021FC37DD000640F1F /* CourseTagsView.swift */; }; + 2CA8D21A2088D9C000E105E9 /* GlobalFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A9D611C74AF90003611DC /* GlobalFunctions.swift */; }; + 2CA8D21B2088D9C000E105E9 /* AdaptiveRatingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEDA35F1F336FEC005F4A5D /* AdaptiveRatingHelper.swift */; }; + 2CA8D21C2088D9C000E105E9 /* TimeFormatHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085DF8DA1C9AB94B006809D9 /* TimeFormatHelper.swift */; }; + 2CA8D21D2088D9C000E105E9 /* SettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08448FFF1F5CE15200D01940 /* SettingsPresenter.swift */; }; + 2CA8D21E2088D9C000E105E9 /* ContentLanguagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D4C1FB63F83001A1E02 /* ContentLanguagesView.swift */; }; + 2CA8D21F2088D9C000E105E9 /* WebViewHorizontalScrollHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4CB271CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift */; }; + 2CA8D2202088D9C000E105E9 /* NibInitializableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089700951F6B2A820041C24E /* NibInitializableView.swift */; }; + 2CA8D2212088D9C000E105E9 /* CodeInputAccessoryCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0888D1001F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift */; }; + 2CA8D2222088D9C000E105E9 /* AdaptiveCoursesInfoAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9295062035D8FC0058D18C /* AdaptiveCoursesInfoAPI.swift */; }; + 2CA8D2232088D9C000E105E9 /* ImageTapHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B65AE31CFCA72800C3A770 /* ImageTapHelper.swift */; }; + 2CA8D2242088D9C000E105E9 /* NotificationsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB9E8C31F7AA5CD0004E17F /* NotificationsPresenter.swift */; }; + 2CA8D2252088D9C000E105E9 /* DeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089611031D52250500561AC1 /* DeepLinkRouter.swift */; }; + 2CA8D2262088D9C000E105E9 /* SharingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0840707F1D64847000308FC1 /* SharingHelper.swift */; }; + 2CA8D2272088D9C000E105E9 /* AnalyticsEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035201D65A252003515C6 /* AnalyticsEvents.swift */; }; + 2CA8D2282088D9C000E105E9 /* AdaptiveRatingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBD855B201799B700E14F83 /* AdaptiveRatingsViewController.swift */; }; + 2CA8D2292088D9C000E105E9 /* AnalyticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D035241D65B5E5003515C6 /* AnalyticsReporter.swift */; }; + 2CA8D22A2088D9C000E105E9 /* CourseListsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585A21FB50D640047A269 /* CourseListsAPI.swift */; }; + 2CA8D22B2088D9C000E105E9 /* WatchDataHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0841BDC61E082AE7008CE13E /* WatchDataHelper.swift */; }; + 2CA8D22C2088D9C000E105E9 /* WatchCoursesDisplayingHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AA3691E083FD3003E054E /* WatchCoursesDisplayingHelper.swift */; }; + 2CA8D22D2088D9C000E105E9 /* HeaderMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF788B1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift */; }; + 2CA8D22E2088D9C000E105E9 /* AuthButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E31F6BF52700FC2B7C /* AuthButton.swift */; }; + 2CA8D22F2088D9C000E105E9 /* HTMLParsingUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087F6B951CE9E2C8002649AB /* HTMLParsingUtil.swift */; }; + 2CA8D2302088D9C000E105E9 /* CongratulationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86BB7C05201953AF00063538 /* CongratulationViewController.swift */; }; + 2CA8D2312088D9C000E105E9 /* TagDetectionUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0858B7081CFF271200459A6A /* TagDetectionUtil.swift */; }; + 2CA8D2322088D9C000E105E9 /* UIImageView+SVGDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089574551E5B76E700C12D21 /* UIImageView+SVGDownload.swift */; }; + 2CA8D2332088D9C000E105E9 /* DiscussionProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8171D06D961006C987E /* DiscussionProxy.swift */; }; + 2CA8D2342088D9C000E105E9 /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81A1D06DC1B006C987E /* Comment.swift */; }; + 2CA8D2352088D9C000E105E9 /* CardsStepsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5DF13A1FEC0534003B1177 /* CardsStepsViewController.swift */; }; + 2CA8D2362088D9C000E105E9 /* Vote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B241D21434B00F45C45 /* Vote.swift */; }; + 2CA8D2372088D9C000E105E9 /* Tooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B3E20127A25000F7715 /* Tooltip.swift */; }; + 2CA8D2382088D9C000E105E9 /* CodePlaygroundManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0805FE431F0D390B001226B4 /* CodePlaygroundManager.swift */; }; + 2CA8D2392088D9C000E105E9 /* Scripts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D931BDADB2D00BA35EA /* Scripts.swift */; }; + 2CA8D23A2088D9C000E105E9 /* Notification+FetchMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5F77C01F90F63B00E8E175 /* Notification+FetchMethods.swift */; }; + 2CA8D23B2088D9C000E105E9 /* Scripts.plist in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D951BDADB7A00BA35EA /* Scripts.plist */; }; + 2CA8D23C2088D9C000E105E9 /* CourseListPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9BD721F8CA02A0085EAF6 /* CourseListPresenter.swift */; }; + 2CA8D23D2088D9C000E105E9 /* CongratulationAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86BB7C04201953AE00063538 /* CongratulationAlertManager.swift */; }; + 2CA8D23E2088D9C000E105E9 /* LocalNotificationsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C4DA9E81F38729500E392FA /* LocalNotificationsHelper.swift */; }; + 2CA8D23F2088D9C000E105E9 /* HomeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959E91FA007D800E6D6CD /* HomeScreenViewController.swift */; }; + 2CA8D2402088D9C000E105E9 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8511BA9D64300F2A188 /* Constants.swift */; }; + 2CA8D2412088D9C000E105E9 /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080ACF4F1BD79D5500329F2B /* Images.swift */; }; + 2CA8D2422088D9C000E105E9 /* ApplicationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083E1DA51C96E9F100B305E4 /* ApplicationInfo.swift */; }; + 2CA8D2432088D9C000E105E9 /* PathManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D8B1BDA77A200BA35EA /* PathManager.swift */; }; + 2CA8D2442088D9C000E105E9 /* AudioManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C5E4FC1C315272004AA626 /* AudioManager.swift */; }; + 2CA8D2452088D9C000E105E9 /* WebControllerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C9F7CF1C29AE8B00E544D0 /* WebControllerManager.swift */; }; + 2CA8D2462088D9C000E105E9 /* CacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370E1BFA210F003DC593 /* CacheManager.swift */; }; + 2CA8D2472088D9C000E105E9 /* WKWebViewPanelManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08CB4ABD1C4D3DCE00D7F918 /* WKWebViewPanelManager.m */; }; + 2CA8D2482088D9C000E105E9 /* AchievementManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6640CE1F2F47A90033A274 /* AchievementManager.swift */; }; + 2CA8D2492088D9C000E105E9 /* CourseSubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542081C6CD65500DEC38E /* CourseSubscriptionManager.swift */; }; + 2CA8D24A2088D9C000E105E9 /* RemoteVersionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E621CD0EDB300D94613 /* RemoteVersionManager.swift */; }; + 2CA8D24B2088D9C000E105E9 /* UpdateChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E691CD1019A00D94613 /* UpdateChecker.swift */; }; + 2CA8D24C2088D9C000E105E9 /* CodeQuizToolbarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E831EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift */; }; + 2CA8D24D2088D9C000E105E9 /* UpdatePreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6C1CD102DF00D94613 /* UpdatePreferencesContainer.swift */; }; + 2CA8D24E2088D9C000E105E9 /* VersionUpdateAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E6F1CD111F200D94613 /* VersionUpdateAlertConstructor.swift */; }; + 2CA8D24F2088D9C000E105E9 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08901E711CD1173200D94613 /* Version.swift */; }; + 2CA8D2502088D9C000E105E9 /* StreaksNotificationSuggestionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08019A811DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift */; }; + 2CA8D2512088D9C000E105E9 /* Executable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6711CD80A9600B45652 /* Executable.swift */; }; + 2CA8D2522088D9C000E105E9 /* ExecutionQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E6741CD8106E00B45652 /* ExecutionQueue.swift */; }; + 2CA8D2532088D9C000E105E9 /* NotificationPermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082A88FD2046F0460079F038 /* NotificationPermissionManager.swift */; }; + 2CA8D2542088D9C000E105E9 /* PersistentQueueRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869F6D11CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift */; }; + 2CA8D2552088D9C000E105E9 /* Queues.plist in Sources */ = {isa = PBXBuildFile; fileRef = 0869F6D41CE229C800F8A6DB /* Queues.plist */; }; + 2CA8D2562088D9C000E105E9 /* ExecutionQueues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0861E67A1CD9483500B45652 /* ExecutionQueues.swift */; }; + 2CA8D2572088D9C000E105E9 /* AdaptiveAchievementsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C35C4981F4DA3B6002F3BF4 /* AdaptiveAchievementsPresenter.swift */; }; + 2CA8D2582088D9C000E105E9 /* PersistentRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21441CDD493A00FBB9CD /* PersistentRecoveryManager.swift */; }; + 2CA8D2592088D9C000E105E9 /* Users.plist in Sources */ = {isa = PBXBuildFile; fileRef = 08AC213B1CDD35DF00FBB9CD /* Users.plist */; }; + 2CA8D25A2088D9C000E105E9 /* PersistentUserTokenRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21471CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift */; }; + 2CA8D25B2088D9C000E105E9 /* DeleteDeviceExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47051CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift */; }; + 2CA8D25C2088D9C000E105E9 /* Tasks.plist in Sources */ = {isa = PBXBuildFile; fileRef = 08AC21381CDD34C300FBB9CD /* Tasks.plist */; }; + 2CA8D25D2088D9C000E105E9 /* PinsMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8622056A2055561F00F14255 /* PinsMapView.swift */; }; + 2CA8D25E2088D9C000E105E9 /* AchievementManager+Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C86506C1F4B1A6B00D51654 /* AchievementManager+Data.swift */; }; + 2CA8D25F2088D9C000E105E9 /* EnrollmentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8CB0E21FB48F39008CB1AC /* EnrollmentsAPI.swift */; }; + 2CA8D2602088D9C000E105E9 /* SearchSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9781F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift */; }; + 2CA8D2612088D9C000E105E9 /* PersistentTaskRecoveryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A51CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift */; }; + 2CA8D2622088D9C000E105E9 /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9E3F3D1F7A930100DDF1AA /* NotificationsAPI.swift */; }; + 2CA8D2632088D9C000E105E9 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3371F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift */; }; + 2CA8D2642088D9C000E105E9 /* ExecutableTaskTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47131CDA3E99009A1D25 /* ExecutableTaskTypes.swift */; }; + 2CA8D2652088D9C000E105E9 /* DictionarySerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083267A81CDCF59B002F7B5A /* DictionarySerializable.swift */; }; + 2CA8D2662088D9C000E105E9 /* PersistentTaskManagerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08BC47081CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift */; }; + 2CA8D2672088D9C000E105E9 /* SearchQueriesPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F9661F34DD2C008CF4A1 /* SearchQueriesPresenter.swift */; }; + 2CA8D2682088D9C000E105E9 /* RoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3B11E67686B006BC60F /* RoutingManager.swift */; }; + 2CA8D2692088D9C000E105E9 /* NotificationRegistrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083554271CC8FD2D004C4E85 /* NotificationRegistrator.swift */; }; + 2CA8D26A2088D9C000E105E9 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; + 2CA8D26B2088D9C000E105E9 /* NotificationAlertConstructor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0870392F1CD7413D00B6571B /* NotificationAlertConstructor.swift */; }; + 2CA8D26C2088D9C000E105E9 /* UICollectionViewFlowLayout+PlusCrashWorkaround.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C15EB951FC70A0300F56D93 /* UICollectionViewFlowLayout+PlusCrashWorkaround.swift */; }; + 2CA8D26D2088D9C000E105E9 /* DeviceDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AC214A1CE0DE9B00FBB9CD /* DeviceDefaults.swift */; }; + 2CA8D26E2088D9C000E105E9 /* ArtView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF789D1F5DE64300AEEA85 /* ArtView.swift */; }; + 2CA8D26F2088D9C000E105E9 /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083540661CE5FC0E00BDFEA5 /* Notification.swift */; }; + 2CA8D2702088D9C000E105E9 /* Attempt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554D1C4F924000C877E8 /* Attempt.swift */; }; + 2CA8D2712088D9C000E105E9 /* LastStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AA61E76EF690088368A /* LastStep.swift */; }; + 2CA8D2722088D9C000E105E9 /* NotificationDataExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD9B9671F87A58B00D446C2 /* NotificationDataExtractor.swift */; }; + 2CA8D2732088D9C000E105E9 /* Dataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5554F1C4F93B700C877E8 /* Dataset.swift */; }; + 2CA8D2742088D9C000E105E9 /* ChoiceDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555531C4F97C100C877E8 /* ChoiceDataset.swift */; }; + 2CA8D2752088D9C000E105E9 /* StringDatasetExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555551C4F9FAB00C877E8 /* StringDatasetExtension.swift */; }; + 2CA8D2762088D9C000E105E9 /* SortingDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485AE1C58E946000165AA /* SortingDataset.swift */; }; + 2CA8D2772088D9C000E105E9 /* HorizontalCoursesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08195A171FA0AF1200E6D6CD /* HorizontalCoursesView.swift */; }; + 2CA8D2782088D9C000E105E9 /* FreeAnswerDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088CB1EB1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift */; }; + 2CA8D2792088D9C000E105E9 /* AdaptiveAchievementsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C1649661F2A0842002C9F99 /* AdaptiveAchievementsViewController.swift */; }; + 2CA8D27A2088D9C000E105E9 /* MatchingDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C4681E2CE469002F8516 /* MatchingDataset.swift */; }; + 2CA8D27B2088D9C000E105E9 /* AuthNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D674921D78B46900B60963 /* AuthNavigationViewController.swift */; }; + 2CA8D27C2088D9C000E105E9 /* BaseCardsStepsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C5D51582024653B00B9D932 /* BaseCardsStepsViewController.swift */; }; + 2CA8D27D2088D9C000E105E9 /* FillBlanksDataset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E59ABE1E433057008EEECE /* FillBlanksDataset.swift */; }; + 2CA8D27E2088D9C000E105E9 /* CourseTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A9F71D1FC38C9E00640F1F /* CourseTag.swift */; }; + 2CA8D27F2088D9C000E105E9 /* HomeScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081959DF1FA0032E00E6D6CD /* HomeScreenPresenter.swift */; }; + 2CA8D2802088D9C000E105E9 /* Submission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555571C4FAF5200C877E8 /* Submission.swift */; }; + 2CA8D2812088D9C000E105E9 /* SearchQueriesPersistentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0868C17D1F375A1200D77C5F /* SearchQueriesPersistentManager.swift */; }; + 2CA8D2822088D9C000E105E9 /* StepikPlaceholderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF08863205BEEB900FCB9C0 /* StepikPlaceholderView.swift */; }; + 2CA8D2832088D9C000E105E9 /* Reply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F555591C4FB0A300C877E8 /* Reply.swift */; }; + 2CA8D2842088D9C000E105E9 /* ReplyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082E5E0D1F46379100F41426 /* ReplyCache.swift */; }; + 2CA8D2852088D9C000E105E9 /* ChoiceReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F5555B1C4FB1E300C877E8 /* ChoiceReply.swift */; }; + 2CA8D2862088D9C000E105E9 /* TextReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485991C57868E000165AA /* TextReply.swift */; }; + 2CA8D2872088D9C000E105E9 /* NumberReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F4859F1C579318000165AA /* NumberReply.swift */; }; + 2CA8D2882088D9C000E105E9 /* NotificationRequestAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084DDDE0204EDF7500913503 /* NotificationRequestAlertViewController.swift */; }; + 2CA8D2892088D9C000E105E9 /* CourseListsCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D271FB5CD5E001A1E02 /* CourseListsCache.swift */; }; + 2CA8D28A2088D9C000E105E9 /* FreeAnswerReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A41C57AF2E000165AA /* FreeAnswerReply.swift */; }; + 2CA8D28B2088D9C000E105E9 /* DefaultsStorageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C97040C1F3A0DCF00C36F0A /* DefaultsStorageManager.swift */; }; + 2CA8D28C2088D9C000E105E9 /* NotificationsStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86624A741FC76682008E7E6C /* NotificationsStatus.swift */; }; + 2CA8D28D2088D9C000E105E9 /* MathReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485A91C580D61000165AA /* MathReply.swift */; }; + 2CA8D28E2088D9C000E105E9 /* SortingReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F485B01C58EB0D000165AA /* SortingReply.swift */; }; + 2CA8D28F2088D9C000E105E9 /* AdaptiveCourseSelectPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD5D33202A12E3008ACBC7 /* AdaptiveCourseSelectPresenter.swift */; }; + 2CA8D2902088D9C000E105E9 /* MatchingReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0834C46B1E2CE66B002F8516 /* MatchingReply.swift */; }; + 2CA8D2912088D9C000E105E9 /* FillBlanksReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0895A13A1E43836B00FE22DD /* FillBlanksReply.swift */; }; + 2CA8D2922088D9C000E105E9 /* VideoDownloadDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089B370C1BFA07AE003DC593 /* VideoDownloadDelegate.swift */; }; + 2CA8D2932088D9C000E105E9 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF6E1BB5618700BE84E6 /* Model.xcdatamodeld */; }; + 2CA8D2942088D9C000E105E9 /* Assignment+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA41BFE5A5400DB4B83 /* Assignment+CoreDataProperties.swift */; }; + 2CA8D2952088D9C000E105E9 /* CodeLimit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B10B1EDDEE7F00D64D77 /* CodeLimit.swift */; }; + 2CA8D2962088D9C000E105E9 /* CodeSuggestionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9171F115D830087D61B /* CodeSuggestionsTableViewController.swift */; }; + 2CA8D2972088D9C000E105E9 /* SwitchMenuBlockTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA3131F57562A00302154 /* SwitchMenuBlockTableViewCell.swift */; }; + 2CA8D2982088D9C000E105E9 /* Assignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0813EEA51BFE5A5400DB4B83 /* Assignment.swift */; }; + 2CA8D2992088D9C000E105E9 /* Progress+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE61BE8D63C005E1E96 /* Progress+CoreDataProperties.swift */; }; + 2CA8D29A2088D9C000E105E9 /* Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083AABE71BE8D63C005E1E96 /* Progress.swift */; }; + 2CA8D29B2088D9C000E105E9 /* ExploreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CB0D301FB5F9FC001A1E02 /* ExploreViewController.swift */; }; + 2CA8D29C2088D9C000E105E9 /* Video+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142441BCEE4EE0000BCB0 /* Video+CoreDataProperties.swift */; }; + 2CA8D29D2088D9C000E105E9 /* Video.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142451BCEE4EE0000BCB0 /* Video.swift */; }; + 2CA8D29E2088D9C000E105E9 /* VideoURL+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142461BCEE4EE0000BCB0 /* VideoURL+CoreDataProperties.swift */; }; + 2CA8D29F2088D9C000E105E9 /* CourseWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8BA1F7C3D430028A9AE /* CourseWidgetView.swift */; }; + 2CA8D2A02088D9C000E105E9 /* AchievementTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6640D21F2F7AFD0033A274 /* AchievementTableViewCell.swift */; }; + 2CA8D2A12088D9C000E105E9 /* AdaptiveUserActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA2E7092023591F001DC410 /* AdaptiveUserActions.swift */; }; + 2CA8D2A22088D9C000E105E9 /* VideoURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089142471BCEE4EE0000BCB0 /* VideoURL.swift */; }; + 2CA8D2A32088D9C000E105E9 /* Block+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0841568F1BCBFFBD006B8C73 /* Block+CoreDataProperties.swift */; }; + 2CA8D2A42088D9C000E105E9 /* Block.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156901BCBFFBD006B8C73 /* Block.swift */; }; + 2CA8D2A52088D9C000E105E9 /* Step+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156911BCBFFBD006B8C73 /* Step+CoreDataProperties.swift */; }; + 2CA8D2A62088D9C000E105E9 /* Step.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084156921BCBFFBD006B8C73 /* Step.swift */; }; + 2CA8D2A72088D9C000E105E9 /* Lesson+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7E1BC7FD24000AFEA7 /* Lesson+CoreDataProperties.swift */; }; + 2CA8D2A82088D9C000E105E9 /* Lesson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7F1BC7FD24000AFEA7 /* Lesson.swift */; }; + 2CA8D2A92088D9C000E105E9 /* Unit+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7A1BC7F9D6000AFEA7 /* Unit+CoreDataProperties.swift */; }; + 2CA8D2AA2088D9C000E105E9 /* Unit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF7B1BC7F9D6000AFEA7 /* Unit.swift */; }; + 2CA8D2AB2088D9C000E105E9 /* StepikButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDD6291F7C6785005203E4 /* StepikButton.swift */; }; + 2CA8D2AC2088D9C000E105E9 /* Section+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6C1BC5D177000AFEA7 /* Section+CoreDataProperties.swift */; }; + 2CA8D2AD2088D9C000E105E9 /* ContentLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585BF1FB524C20047A269 /* ContentLanguage.swift */; }; + 2CA8D2AE2088D9C000E105E9 /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF6D1BC5D177000AFEA7 /* Section.swift */; }; + 2CA8D2AF2088D9C000E105E9 /* Course+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF711BB5636700BE84E6 /* Course+CoreDataProperties.swift */; }; + 2CA8D2B02088D9C000E105E9 /* Course.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D1EF721BB5636700BE84E6 /* Course.swift */; }; + 2CA8D2B12088D9C000E105E9 /* User+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59EF1BBFD65E008DC44D /* User+CoreDataProperties.swift */; }; + 2CA8D2B22088D9C000E105E9 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F01BBFD65E008DC44D /* User.swift */; }; + 2CA8D2B32088D9C000E105E9 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8551BA9F18900F2A188 /* Parser.swift */; }; + 2CA8D2B42088D9C000E105E9 /* ControllerWithStepikPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 866AD0D52061A7D70004C2B2 /* ControllerWithStepikPlaceholder.swift */; }; + 2CA8D2B52088D9C000E105E9 /* CourseListType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089C88DD1FCF494300003B63 /* CourseListType.swift */; }; + 2CA8D2B62088D9C000E105E9 /* StepicToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F31DC1BA7162C00F356A0 /* StepicToken.swift */; }; + 2CA8D2B72088D9C000E105E9 /* AuthInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8571BAAD43300F2A188 /* AuthInfo.swift */; }; + 2CA8D2B82088D9C000E105E9 /* APIEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F261201E79DD0B00AC908B /* APIEndpoint.swift */; }; + 2CA8D2B92088D9C000E105E9 /* AuthRoutingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 082BE3AD1E676373006BC60F /* AuthRoutingManager.swift */; }; + 2CA8D2BA2088D9C000E105E9 /* CodeLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080E80F41F0070C900DC0EA5 /* CodeLanguages.swift */; }; + 2CA8D2BB2088D9C000E105E9 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82371D74C44100FDEADE /* Session.swift */; }; + 2CA8D2BC2088D9C000E105E9 /* AdaptiveAdaptiveStatsPagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE527C42029D9780047EC5F /* AdaptiveAdaptiveStatsPagerViewController.swift */; }; + 2CA8D2BD2088D9C000E105E9 /* CourseListVerticalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088EDB4F1F8E8A5D009B736E /* CourseListVerticalViewController.swift */; }; + 2CA8D2BE2088D9C000E105E9 /* OnboardingCardStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB62BDA2019ECB800B5E336 /* OnboardingCardStepViewController.swift */; }; + 2CA8D2BF2088D9C000E105E9 /* AdaptiveStatsPagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97620109718007AA743 /* AdaptiveStatsPagerViewController.swift */; }; + 2CA8D2C02088D9C000E105E9 /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; + 2CA8D2C12088D9C000E105E9 /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; + 2CA8D2C22088D9C000E105E9 /* StepikTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CF08859205BEBF500FCB9C0 /* StepikTableView.swift */; }; + 2CA8D2C32088D9C000E105E9 /* NotificationsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C12198F1F9655AB00A43E98 /* NotificationsSection.swift */; }; + 2CA8D2C42088D9C000E105E9 /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; + 2CA8D2C52088D9C000E105E9 /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; + 2CA8D2C62088D9C000E105E9 /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; + 2CA8D2C72088D9C000E105E9 /* QueriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08964BCC1F3072BA00DBBCCE /* QueriesAPI.swift */; }; + 2CA8D2C82088D9C000E105E9 /* AutocompleteWords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC201F127470005CA0FB /* AutocompleteWords.swift */; }; + 2CA8D2C92088D9C000E105E9 /* ApiDataDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F84D1BA837E200F2A188 /* ApiDataDownloader.swift */; }; + 2CA8D2CA2088D9C000E105E9 /* AdaptiveStorageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C6E9CDA1FF27543001821A2 /* AdaptiveStorageManager.swift */; }; + 2CA8D2CB2088D9C000E105E9 /* Meta.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F8531BA9DB5C00F2A188 /* Meta.swift */; }; + 2CA8D2CC2088D9C000E105E9 /* DevicesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A21CCA69C700FFF29E /* DevicesAPI.swift */; }; + 2CA8D2CD2088D9C000E105E9 /* APIDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A61CCA75F400FFF29E /* APIDefaults.swift */; }; + 2CA8D2CE2088D9C000E105E9 /* MenuViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA2F71F573F6900302154 /* MenuViewController.swift */; }; + 2CA8D2CF2088D9C000E105E9 /* EmailAuthPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C23C5E11F6BD43300FC2B7C /* EmailAuthPresenter.swift */; }; + 2CA8D2D02088D9C000E105E9 /* AdaptiveStatsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97820109727007AA743 /* AdaptiveStatsPresenter.swift */; }; + 2CA8D2D12088D9C000E105E9 /* DiscussionProxiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B81E1D06FDE4006C987E /* DiscussionProxiesAPI.swift */; }; + 2CA8D2D22088D9C000E105E9 /* SearchQueriesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8F96B1F34DD48008CF4A1 /* SearchQueriesView.swift */; }; + 2CA8D2D32088D9C000E105E9 /* LastStepsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084F7AAC1E775A210088368A /* LastStepsAPI.swift */; }; + 2CA8D2D42088D9C000E105E9 /* LeaderboardTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D9872011FB4E007AA743 /* LeaderboardTableViewCell.swift */; }; + 2CA8D2D52088D9C000E105E9 /* CommentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8211D07029B006C987E /* CommentsAPI.swift */; }; + 2CA8D2D62088D9C000E105E9 /* ApiUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0800B8241D0704B6006C987E /* ApiUtil.swift */; }; + 2CA8D2D72088D9C000E105E9 /* VotesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A8B271D21796800F45C45 /* VotesAPI.swift */; }; + 2CA8D2D82088D9C000E105E9 /* AdaptiveCourseSelectViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD5D31202A12D5008ACBC7 /* AdaptiveCourseSelectViewController.swift */; }; + 2CA8D2D92088D9C000E105E9 /* CodeQuizToolbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080C5E761EFC09730036EB3D /* CodeQuizToolbarView.swift */; }; + 2CA8D2DA2088D9C000E105E9 /* StepicsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AB82341D74926F00FDEADE /* StepicsAPI.swift */; }; + 2CA8D2DB2088D9C000E105E9 /* UnitsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF21D89C86F00B27C95 /* UnitsAPI.swift */; }; + 2CA8D2DC2088D9C000E105E9 /* UserActivitiesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB671DC8DF59006622EC /* UserActivitiesAPI.swift */; }; + 2CA8D2DD2088D9C000E105E9 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CBA34A1F57734900302154 /* ProfileViewController.swift */; }; + 2CA8D2DE2088D9C000E105E9 /* StreaksAlertPresentationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B062DC1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift */; }; + 2CA8D2DF2088D9C000E105E9 /* JSONSerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0828FF821BC800C0000AFEA7 /* JSONSerializable.swift */; }; + 2CA8D2E02088D9C000E105E9 /* TabsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74601BD8159F0064AAEA /* TabsInfo.swift */; }; + 2CA8D2E12088D9C000E105E9 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084490081F5D67E300D01940 /* SettingsViewController.swift */; }; + 2CA8D2E22088D9C000E105E9 /* VideosInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080F74631BD9213D0064AAEA /* VideosInfo.swift */; }; + 2CA8D2E32088D9C000E105E9 /* VideoDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0857AA201BECDA640044B505 /* VideoDownload.swift */; }; + 2CA8D2E42088D9C000E105E9 /* NotificationRequestAlertContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C47A163206284B1003E87EC /* NotificationRequestAlertContext.swift */; }; + 2CA8D2E52088D9C000E105E9 /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080DCF161C4518BC00DE3E2E /* SearchResult.swift */; }; + 2CA8D2E62088D9C000E105E9 /* Device.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AEC3A41CCA69F300FFF29E /* Device.swift */; }; + 2CA8D2E72088D9C000E105E9 /* CyrillicURLActivityItemSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 084070861D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift */; }; + 2CA8D2E82088D9C000E105E9 /* StepsControllerDeepLinkRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085C4FF51D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift */; }; + 2CA8D2E92088D9C000E105E9 /* UserActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E6BB6A1DC8EB45006622EC /* UserActivity.swift */; }; + 2CA8D2EA2088D9C000E105E9 /* Alerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749251DE5AE0400144C14 /* Alerts.swift */; }; + 2CA8D2EB2088D9C000E105E9 /* CourseStatCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EDB8C31F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift */; }; + 2CA8D2EC2088D9C000E105E9 /* StreaksAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749291DE5AF8A00144C14 /* StreaksAlertManager.swift */; }; + 2CA8D2ED2088D9C000E105E9 /* QuizPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C1FC321F41E74500E14B46 /* QuizPresenter.swift */; }; + 2CA8D2EE2088D9C000E105E9 /* StreaksStepikAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FF752F1DF9B89000D656C4 /* StreaksStepikAlertManager.swift */; }; + 2CA8D2EF2088D9C000E105E9 /* InputAccessoryBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0860D9141F10EA690087D61B /* InputAccessoryBuilder.swift */; }; + 2CA8D2F02088D9C000E105E9 /* TooltipFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086D5B51201283C2000F7715 /* TooltipFactory.swift */; }; + 2CA8D2F12088D9C000E105E9 /* AlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492C1DE5B07900144C14 /* AlertManager.swift */; }; + 2CA8D2F22088D9C000E105E9 /* CourseReviewSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D5F56C1F7DA6BB007C1634 /* CourseReviewSummary.swift */; }; + 2CA8D2F32088D9C000E105E9 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 080217821F55B1B200186245 /* Menu.swift */; }; + 2CA8D2F42088D9C000E105E9 /* CodeSuggestionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FEFC1A1F117257005CA0FB /* CodeSuggestionTableViewCell.swift */; }; + 2CA8D2F52088D9C000E105E9 /* PreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0837492F1DE5BBF700144C14 /* PreferencesContainer.swift */; }; + 2CA8D2F62088D9C000E105E9 /* NotificationPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749331DE5BC2A00144C14 /* NotificationPreferencesContainer.swift */; }; + 2CA8D2F72088D9C000E105E9 /* NotificationsBadgesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9BD78D1FC43C6B00F89CBE /* NotificationsBadgesManager.swift */; }; + 2CA8D2F82088D9C000E105E9 /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; + 2CA8D2F92088D9C000E105E9 /* LocalNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083749361DE5C7DC00144C14 /* LocalNotificationManager.swift */; }; + 2CA8D2FA2088D9C000E105E9 /* UIColorExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DE94381B8E3FCE00D278AB /* UIColorExtensions.swift */; }; + 2CA8D2FB2088D9C000E105E9 /* StandardsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 081B7E291BAC208200554153 /* StandardsExtensions.swift */; }; + 2CA8D2FC2088D9C000E105E9 /* LabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59E91BBD3D55008DC44D /* LabelExtension.swift */; }; + 2CA8D2FD2088D9C000E105E9 /* ButtonExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59ED1BBFC962008DC44D /* ButtonExtension.swift */; }; + 2CA8D2FE2088D9C000E105E9 /* RecommendationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86795EF61E85325000A985C2 /* RecommendationsAPI.swift */; }; + 2CA8D2FF2088D9C000E105E9 /* UIImageViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08CA59F31BC020E2008DC44D /* UIImageViewExtension.swift */; }; + 2CA8D3002088D9C000E105E9 /* StepicApplicationsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083D649B1C172015003222F0 /* StepicApplicationsInfo.swift */; }; + 2CA8D3012088D9C000E105E9 /* NSDateExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08A3A9CD1BD5A14D0032C36E /* NSDateExtensions.swift */; }; + 2CA8D3022088D9C000E105E9 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08DF1D911BDAB93900BA35EA /* StringExtensions.swift */; }; + 2CA8D3032088D9C000E105E9 /* CourseList+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585B61FB51D840047A269 /* CourseList+CoreDataProperties.swift */; }; + 2CA8D3042088D9C000E105E9 /* UIViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089A0DA61BE9FFCE004AF4EB /* UIViewExtensions.swift */; }; + 2CA8D3052088D9C000E105E9 /* Profile+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD846461F25FB6C00E8153C /* Profile+CoreDataProperties.swift */; }; + 2CA8D3062088D9C000E105E9 /* ExplorePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 085290C51FB5C4550053F22D /* ExplorePresenter.swift */; }; + 2CA8D3072088D9C000E105E9 /* FullHeightTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 089504821F27C5C600EEC939 /* FullHeightTableView.swift */; }; + 2CA8D3082088D9C000E105E9 /* StepOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1021EDDED1000D64D77 /* StepOptions.swift */; }; + 2CA8D3092088D9C000E105E9 /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086B7F061D194D4B00055B4E /* NSAttributedStringExtensions.swift */; }; + 2CA8D30A2088D9C000E105E9 /* AlamofireExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B845DB1D36998E00267FF4 /* AlamofireExtensions.swift */; }; + 2CA8D30B2088D9C000E105E9 /* CourseList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087585AD1FB51D720047A269 /* CourseList.swift */; }; + 2CA8D30C2088D9C000E105E9 /* ErrorEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087387D91BB9B768003CFAD1 /* ErrorEnums.swift */; }; + 2CA8D30D2088D9C000E105E9 /* AdaptiveCardsStepsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA2E70620233E28001DC410 /* AdaptiveCardsStepsPresenter.swift */; }; + 2CA8D30E2088D9C000E105E9 /* CodeTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0846B1141EDDF63200D64D77 /* CodeTemplate.swift */; }; + 2CA8D30F2088D9C000E105E9 /* StringHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C03B2A31F0CD87600005383 /* StringHelper.swift */; }; + 2CA8D3102088D9C000E105E9 /* EmptyDatasetState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E542021C6C75FD00DEC38E /* EmptyDatasetState.swift */; }; + 2CA8D3112088D9C000E105E9 /* RangeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086FC6A71FE04DBD00C7DFF4 /* RangeExtension.swift */; }; + 2CA8D3122088D9C000E105E9 /* AdaptiveAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86EF29361E83CEA900F8D214 /* AdaptiveAppDelegate.swift */; }; + 2CA8D3132088D9C000E105E9 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; + 2CA8D3142088D9C000E105E9 /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; + 2CA8D3152088D9C000E105E9 /* CourseListViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */; }; + 2CA8D3162088D9C000E105E9 /* CodeEditorSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */; }; + 2CA8D3172088D9C000E105E9 /* CodeEditorSettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */; }; + 2CA8D3182088D9C000E105E9 /* CodeEditorPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */; }; + 2CA8D31C2088D9C000E105E9 /* jquery-3.2.1.min.js in Resources */ = {isa = PBXBuildFile; fileRef = 084C9AF71EC4C11A00AC5C3C /* jquery-3.2.1.min.js */; }; + 2CA8D31D2088D9C000E105E9 /* wysiwyg.css in Resources */ = {isa = PBXBuildFile; fileRef = 087854F41DF6EE0D00368A50 /* wysiwyg.css */; }; + 2CA8D31E2088D9C000E105E9 /* adjectives_f.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2C35C4C51F4DA462002F3BF4 /* adjectives_f.plist */; }; + 2CA8D31F2088D9C000E105E9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08A1257B1BDEBCC90066B2B2 /* Localizable.strings */; }; + 2CA8D3202088D9C000E105E9 /* LoadingPaginationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B251E9EC10A00714173 /* LoadingPaginationView.xib */; }; + 2CA8D3212088D9C000E105E9 /* ProfileStreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA35D1F5AFDCF00302154 /* ProfileStreaksView.xib */; }; + 2CA8D3222088D9C000E105E9 /* adjectives_m.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2C35C4C71F4DA462002F3BF4 /* adjectives_m.plist */; }; + 2CA8D3232088D9C000E105E9 /* overlay_simple.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CF4252B2024C10D002D7305 /* overlay_simple.png */; }; + 2CA8D3242088D9C000E105E9 /* step3.html in Resources */ = {isa = PBXBuildFile; fileRef = 2CB62BDC2019FD8400B5E336 /* step3.html */; }; + 2CA8D3252088D9C000E105E9 /* CertificateTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B201E9E645000714173 /* CertificateTableViewCell.xib */; }; + 2CA8D3262088D9C000E105E9 /* CertificatesStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 083F2B101E9D8E8F00714173 /* CertificatesStoryboard.storyboard */; }; + 2CA8D3282088D9C000E105E9 /* HorizontalCoursesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08195A201FA0AF2A00E6D6CD /* HorizontalCoursesView.xib */; }; + 2CA8D3292088D9C000E105E9 /* CourseStatCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8C41F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib */; }; + 2CA8D32A2088D9C000E105E9 /* CourseWidgetTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDD6171F7C607A005203E4 /* CourseWidgetTableViewCell.xib */; }; + 2CA8D32B2088D9C000E105E9 /* StreaksView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F4761D1E82C11C0018E82C /* StreaksView.xib */; }; + 2CA8D32C2088D9C000E105E9 /* RateAppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089056101E98021000B8FE6A /* RateAppViewController.xib */; }; + 2CA8D32D2088D9C000E105E9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941A1B8C58AC00D278AB /* Main.storyboard */; }; + 2CA8D32E2088D9C000E105E9 /* ContentLanguageCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0885B8D11FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib */; }; + 2CA8D32F2088D9C000E105E9 /* CongratulationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 86BB7C06201953AF00063538 /* CongratulationViewController.xib */; }; + 2CA8D3302088D9C000E105E9 /* StepCardView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 860DB7911EB8DC13001E3E42 /* StepCardView.xib */; }; + 2CA8D3312088D9C000E105E9 /* nouns_f.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2C35C4C91F4DA462002F3BF4 /* nouns_f.plist */; }; + 2CA8D3322088D9C000E105E9 /* CodeSuggestionsTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0860D9181F115D830087D61B /* CodeSuggestionsTableViewController.xib */; }; + 2CA8D3332088D9C000E105E9 /* ContentLanguagesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D431FB63F74001A1E02 /* ContentLanguagesView.xib */; }; + 2CA8D3342088D9C000E105E9 /* ProgressTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2CA9D9822010A13C007AA743 /* ProgressTableViewCell.xib */; }; + 2CA8D3352088D9C000E105E9 /* VideoDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086E965D1BF6683800AB952D /* VideoDownloadView.xib */; }; + 2CA8D3362088D9C000E105E9 /* WarningView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485941C574DAD000165AA /* WarningView.xib */; }; + 2CA8D3372088D9C000E105E9 /* MathJax in Resources */ = {isa = PBXBuildFile; fileRef = 08E542001C6A76E100DEC38E /* MathJax */; }; + 2CA8D3382088D9C000E105E9 /* StepTabView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 083622DB1CD1FA6700CD8915 /* StepTabView.xib */; }; + 2CA8D3392088D9C000E105E9 /* DiscussionCountView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 089F58881D22BD59000CD540 /* DiscussionCountView.xib */; }; + 2CA8D33A2088D9C000E105E9 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3381F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib */; }; + 2CA8D33B2088D9C000E105E9 /* Adaptive.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2C6E9CD31FED657E001821A2 /* Adaptive.storyboard */; }; + 2CA8D33C2088D9C000E105E9 /* PickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08263D6F1DE5F230002E5B7F /* PickerViewController.xib */; }; + 2CA8D33D2088D9C000E105E9 /* FullscreenCodeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080E80FD1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib */; }; + 2CA8D33E2088D9C000E105E9 /* ContinueLearningWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084DB9D41FA2A19F0074B11E /* ContinueLearningWidgetView.xib */; }; + 2CA8D33F2088D9C000E105E9 /* AchievementTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2C6640E41F30BCE60033A274 /* AchievementTableViewCell.xib */; }; + 2CA8D3402088D9C000E105E9 /* StepicVideoPlayerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EF9A071C91D0F800433E4A /* StepicVideoPlayerViewController.xib */; }; + 2CA8D3412088D9C000E105E9 /* step1.html in Resources */ = {isa = PBXBuildFile; fileRef = 2CB62BDE2019FD8400B5E336 /* step1.html */; }; + 2CA8D3432088D9C000E105E9 /* AdaptiveCourseTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2CCD5D37202A1898008ACBC7 /* AdaptiveCourseTableViewCell.xib */; }; + 2CA8D3442088D9C000E105E9 /* CodeInputAccessoryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D0F81F1E3CEF00A16863 /* CodeInputAccessoryView.xib */; }; + 2CA8D3452088D9C000E105E9 /* PlayerTestStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 085DF8CF1C99A6F7006809D9 /* PlayerTestStoryboard.storyboard */; }; + 2CA8D3462088D9C000E105E9 /* DownloadTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0889FEB11BFB864B00C6417E /* DownloadTableViewCell.xib */; }; + 2CA8D3472088D9C000E105E9 /* HeaderMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF788C1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib */; }; + 2CA8D3482088D9C000E105E9 /* DiscussionWebTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08B977091D19D5AA00FFC52C /* DiscussionWebTableViewCell.xib */; }; + 2CA8D3492088D9C000E105E9 /* nouns_m.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2C35C4CB1F4DA462002F3BF4 /* nouns_m.plist */; }; + 2CA8D34A2088D9C000E105E9 /* DiscussionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DB8CB81D0BECF000A6D079 /* DiscussionTableViewCell.xib */; }; + 2CA8D34B2088D9C000E105E9 /* Explore.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CB0D391FB5FB28001A1E02 /* Explore.storyboard */; }; + 2CA8D34C2088D9C000E105E9 /* DiscussionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 082CB1B51D08971900C79A27 /* DiscussionsViewController.xib */; }; + 2CA8D34D2088D9C000E105E9 /* LoadMoreTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85DE1D0F192900E4F345 /* LoadMoreTableViewCell.xib */; }; + 2CA8D34E2088D9C000E105E9 /* overlay_hard.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CF425292024C10C002D7305 /* overlay_hard.png */; }; + 2CA8D34F2088D9C000E105E9 /* DiscussionsStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08EB85F71D10454D00E4F345 /* DiscussionsStoryboard.storyboard */; }; + 2CA8D3502088D9C000E105E9 /* StepikPlaceholderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2CF0885C205BED9700FCB9C0 /* StepikPlaceholderView.xib */; }; + 2CA8D3512088D9C000E105E9 /* CourseListEmptyPlaceholder.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C7CB731FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib */; }; + 2CA8D3522088D9C000E105E9 /* QuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 081A7DF21C56A09300583728 /* QuizViewController.xib */; }; + 2CA8D3532088D9C000E105E9 /* step4.html in Resources */ = {isa = PBXBuildFile; fileRef = 2C97041A1F3B0B7200C36F0A /* step4.html */; }; + 2CA8D3542088D9C000E105E9 /* arrow_right.svg in Resources */ = {isa = PBXBuildFile; fileRef = 2CB62BEC2019FDB000B5E336 /* arrow_right.svg */; }; + 2CA8D3552088D9C000E105E9 /* SearchSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08E8F9791F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib */; }; + 2CA8D3562088D9C000E105E9 /* ArtView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08DF78A71F5DE66200AEEA85 /* ArtView.xib */; }; + 2CA8D3572088D9C000E105E9 /* CourseTagsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F6F91FC37DC100640F1F /* CourseTagsView.xib */; }; + 2CA8D35A2088D9C000E105E9 /* UnknownTypeQuizViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 081A7DF41C56A0DD00583728 /* UnknownTypeQuizViewController.xib */; }; + 2CA8D35B2088D9C000E105E9 /* CodeInputAccessoryCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0888D1011F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib */; }; + 2CA8D35C2088D9C000E105E9 /* step2.html in Resources */ = {isa = PBXBuildFile; fileRef = 2CB62BE22019FD8400B5E336 /* step2.html */; }; + 2CA8D35D2088D9C000E105E9 /* ChoiceQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 084472051D05918E00197166 /* ChoiceQuizTableViewCell.xib */; }; + 2CA8D35E2088D9C000E105E9 /* SortingQuizTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F485B81C58ED01000165AA /* SortingQuizTableViewCell.xib */; }; + 2CA8D35F2088D9C000E105E9 /* CodeQuizToolbarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 080C5E711EFC094F0036EB3D /* CodeQuizToolbarView.xib */; }; + 2CA8D3602088D9C000E105E9 /* CourseWidgetCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 088EDCB01F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib */; }; + 2CA8D3612088D9C000E105E9 /* FillBlanksTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA71E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib */; }; + 2CA8D3632088D9C000E105E9 /* FillBlanksInputTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AEA01E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib */; }; + 2CA8D3642088D9C000E105E9 /* CourseTagCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08A9F70C1FC3837800640F1F /* CourseTagCollectionViewCell.xib */; }; + 2CA8D3652088D9C000E105E9 /* plyr.js in Resources */ = {isa = PBXBuildFile; fileRef = 2C4BBF10203DC668000A4250 /* plyr.js */; }; + 2CA8D3662088D9C000E105E9 /* FillBlanksChoiceTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0859AE981E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib */; }; + 2CA8D3672088D9C000E105E9 /* SwitchMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3141F57562A00302154 /* SwitchMenuBlockTableViewCell.xib */; }; + 2CA8D3682088D9C000E105E9 /* TeacherCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CA59DB1BBC00B9008DC44D /* TeacherCollectionViewCell.xib */; }; + 2CA8D3692088D9C000E105E9 /* TitleTextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08047E6D1BFDC0470071C875 /* TitleTextTableViewCell.xib */; }; + 2CA8D36A2088D9C000E105E9 /* RefreshTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08687BAD1BACB43700F5BDE1 /* RefreshTableViewCell.xib */; }; + 2CA8D36B2088D9C000E105E9 /* CourseLists.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */; }; + 2CA8D36C2088D9C000E105E9 /* TransitionMenuBlockTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3261F57563C00302154 /* TransitionMenuBlockTableViewCell.xib */; }; + 2CA8D36D2088D9C000E105E9 /* SectionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF751BC5E6B0000AFEA7 /* SectionTableViewCell.xib */; }; + 2CA8D36E2088D9C000E105E9 /* UnitTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF8B1BC81F41000AFEA7 /* UnitTableViewCell.xib */; }; + 2CA8D36F2088D9C000E105E9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941D1B8C58AC00D278AB /* Images.xcassets */; }; + 2CA8D3702088D9C000E105E9 /* arrow_left.svg in Resources */ = {isa = PBXBuildFile; fileRef = 2CB62BED2019FDB100B5E336 /* arrow_left.svg */; }; + 2CA8D3712088D9C000E105E9 /* CourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08EDB8B01F7C3D0C0028A9AE /* CourseWidgetView.xib */; }; + 2CA8D3722088D9C000E105E9 /* CustomSearchBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0815661A1F69C3910082B359 /* CustomSearchBar.xib */; }; + 2CA8D3732088D9C000E105E9 /* AchievementNotificationView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2C3DA0031F3C68B700D74968 /* AchievementNotificationView.xib */; }; + 2CA8D3742088D9C000E105E9 /* plyr.css in Resources */ = {isa = PBXBuildFile; fileRef = 2C4BBF12203DC668000A4250 /* plyr.css */; }; + 2CA8D3752088D9C000E105E9 /* LoadingCourseWidgetView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 086BE2A81F93A20B00B4BE56 /* LoadingCourseWidgetView.xib */; }; + 2CA8D3762088D9C000E105E9 /* NotificationRequestAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08C6E31B1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib */; }; + 2CA8D3772088D9C000E105E9 /* AdaptiveLaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 86EF293F1E83CEA900F8D214 /* AdaptiveLaunchScreen.storyboard */; }; + 2CA8D3782088D9C000E105E9 /* CodeSuggestionTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08FEFC1B1F117257005CA0FB /* CodeSuggestionTableViewCell.xib */; }; + 2CA8D3792088D9C000E105E9 /* Notifications.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2CB9E8BF1F7AA5760004E17F /* Notifications.storyboard */; }; + 2CA8D37A2088D9C000E105E9 /* AdaptiveAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 86EF293D1E83CEA900F8D214 /* AdaptiveAssets.xcassets */; }; + 2CA8D37B2088D9C000E105E9 /* UserActivityHomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08ED08E11FCCDC3A0053FB68 /* UserActivityHomeView.xib */; }; + 2CA8D37C2088D9C000E105E9 /* AdaptiveMain.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 86EF293A1E83CEA900F8D214 /* AdaptiveMain.storyboard */; }; + 2CA8D37D2088D9C000E105E9 /* Profile.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08CBA3531F5A2D9400302154 /* Profile.storyboard */; }; + 2CA8D37E2088D9C000E105E9 /* LeaderboardTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2CA9D9892011FBD5007AA743 /* LeaderboardTableViewCell.xib */; }; + 2CA8D37F2088D9C000E105E9 /* loading_robot.gif in Resources */ = {isa = PBXBuildFile; fileRef = 863262F81ECFC5AE007A20B3 /* loading_robot.gif */; }; + 2CA8D3A62088F7CA00E105E9 /* ApiRequestRetrier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73E92060124B00D458E3 /* ApiRequestRetrier.swift */; }; + 2CA8D3A72088F7CA00E105E9 /* UpdateRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73EC20614DFC00D458E3 /* UpdateRequestMaker.swift */; }; + 2CA8D3A82088F7CA00E105E9 /* DeleteRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73EF20619C8F00D458E3 /* DeleteRequestMaker.swift */; }; + 2CA8D3A92088F7CA00E105E9 /* CreateRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73F120619EEF00D458E3 /* CreateRequestMaker.swift */; }; + 2CA8D3AA2088F7CA00E105E9 /* RetrieveRequestMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0863B9662069A41A0023A182 /* RetrieveRequestMaker.swift */; }; + 2CA8D3AB2088F7CA00E105E9 /* StepikModelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E73F32061BDAA00D458E3 /* StepikModelView.swift */; }; + 2CA8D3AC2088F7CA00E105E9 /* DatabaseFetchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D9E98B206C243D002F41D3 /* DatabaseFetchService.swift */; }; + 2CA8D3AD2088F7CA00E105E9 /* IDFetchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083E49DC2072B684004896C0 /* IDFetchable.swift */; }; 2CA9D97720109718007AA743 /* AdaptiveStatsPagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97620109718007AA743 /* AdaptiveStatsPagerViewController.swift */; }; 2CA9D97920109727007AA743 /* AdaptiveStatsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97820109727007AA743 /* AdaptiveStatsPresenter.swift */; }; 2CA9D97D20109C07007AA743 /* AdaptiveRatingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA9D97C20109C07007AA743 /* AdaptiveRatingsPresenter.swift */; }; @@ -3606,15 +3719,19 @@ 2CD12BDB1F4F34CC001D3C82 /* Adaptive_Screenshots_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD12B931F4F3374001D3C82 /* Adaptive_Screenshots_UITests.swift */; }; 2CD12BDC1F4F34CC001D3C82 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD12B971F4F33E2001D3C82 /* SnapshotHelper.swift */; }; 2CD8463F1F25F7F300E8153C /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8463E1F25F7F300E8153C /* Profile.swift */; }; - 2CD846401F25F7F300E8153C /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8463E1F25F7F300E8153C /* Profile.swift */; }; 2CD846411F25F7F300E8153C /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8463E1F25F7F300E8153C /* Profile.swift */; }; 2CD846471F25FB6C00E8153C /* Profile+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD846461F25FB6C00E8153C /* Profile+CoreDataProperties.swift */; }; - 2CD846481F25FB6C00E8153C /* Profile+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD846461F25FB6C00E8153C /* Profile+CoreDataProperties.swift */; }; 2CD846491F25FB6C00E8153C /* Profile+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD846461F25FB6C00E8153C /* Profile+CoreDataProperties.swift */; }; 2CD8464B1F25FE8B00E8153C /* ProfilesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8464A1F25FE8B00E8153C /* ProfilesAPI.swift */; }; - 2CD8464C1F25FE8B00E8153C /* ProfilesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8464A1F25FE8B00E8153C /* ProfilesAPI.swift */; }; 2CD8464D1F25FE8B00E8153C /* ProfilesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD8464A1F25FE8B00E8153C /* ProfilesAPI.swift */; }; 2CD9B9681F87A58B00D446C2 /* NotificationDataExtractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD9B9671F87A58B00D446C2 /* NotificationDataExtractor.swift */; }; + 2CE11347208E103100293EAE /* Tokens.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2CE1133D208E102900293EAE /* Tokens.plist */; }; + 2CE11348208E103400293EAE /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2CE11335208E102700293EAE /* Icons.xcassets */; }; + 2CE11349208E103900293EAE /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 2CE1133A208E102800293EAE /* icon.png */; }; + 2CE1134A208E103D00293EAE /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2CE11337208E102700293EAE /* GoogleService-Info.plist */; }; + 2CE1134B208E104000293EAE /* Config.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2CE11338208E102800293EAE /* Config.plist */; }; + 2CE1134C208E104400293EAE /* Auth.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2CE1133C208E102900293EAE /* Auth.plist */; }; + 2CE11353208E112600293EAE /* step0.html in Resources */ = {isa = PBXBuildFile; fileRef = 2CE1134E208E106B00293EAE /* step0.html */; }; 2CE1C2B420249A0100722989 /* StepCardView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 860DB7911EB8DC13001E3E42 /* StepCardView.xib */; }; 2CE1C2B520249C2B00722989 /* AdaptiveStepCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86ABC66B1E96867A0012E8A6 /* AdaptiveStepCardView.swift */; }; 2CE3BCA51FBF0121000AD405 /* SQLQuizViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */; }; @@ -3650,22 +3767,38 @@ 2CF953362062ACA800B9617A /* AdaptiveCardsStepsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA2E70620233E28001DC410 /* AdaptiveCardsStepsPresenter.swift */; }; 2CFDB1241F559F9A00B8035C /* AvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */; }; 452173E1842CC6913B58FD2F /* Pods_Adaptive_3149_Screenshots.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDB4721C79C8860F955A54E7 /* Pods_Adaptive_3149_Screenshots.framework */; }; + 62E980204101C3A3CEA147B7 /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 62E9805746CCF14D91FF516D /* CodeEditorSettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */; }; + 62E9822130C1EA241A84DED7 /* CourseListViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */; }; + 62E9831EA7A75D89A3C9EC5B /* CourseListViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */; }; + 62E98400F19C6E781027F2A7 /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 62E98438E8DCED37E1AC2A8D /* CodeEditorPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */; }; 62E9846CA267356298D01D67 /* CodeEditorSettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */; }; 62E984A30B7A381A8D25E7D1 /* CodeEditorSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */; }; + 62E98580ED2041F1BA80D3FB /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 62E9862FC6DD9EC1AC1647DA /* CodeEditorSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */; }; + 62E986E416361591CE91DE3B /* CourseListViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */; }; + 62E987459D5C971C022BE7A5 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; + 62E9879A89A2EFFA5CCAED86 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; + 62E98873E98E4598D8F1ACB0 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; + 62E98967D33DB824B8BF27E0 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; 62E98975B396C752B07036D8 /* CodeEditorSettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */; }; + 62E98ABEDEB0D955D6F3A951 /* UserAgentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E987B9D418CC2175A64EC2 /* UserAgentTests.swift */; }; + 62E98AF2CF2F93395EBBBC11 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; 62E98BC4B9330D5A2FFBC9B5 /* CodeEditorSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */; }; + 62E98BDDD7DAB7AF32414179 /* StepikURLSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */; }; 62E98C1377148A52D15AAEBF /* CodeEditorPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */; }; + 62E98C975482E46A95E173AB /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 62E98D1D5AE08AC53898A59B /* CodeEditorPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */; }; 62E98DC371227AE0EDF94038 /* CodeEditorPreferencesContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */; }; + 62E98DD20F2FC4D7DA37DF9A /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 62E98E53B559035BD0E4D903 /* CodeEditorSettingsPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */; }; + 62E98E72A85E731394868512 /* CourseListViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */; }; 62E98F431204AD9A46EBBC18 /* CodeEditorSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */; }; + 62E98FFF555F4E6C888EB561 /* AlamofireDefaultSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */; }; 6A7DBAB7DC854F473438F007 /* Pods_Adaptive_3124.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B3E4DF00B221C0C4986BCE /* Pods_Adaptive_3124.framework */; }; 6CE42CA60425E8BFDE0CC9C1 /* Pods_Adaptive_GMAT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D480E6140E3FF44F2E720BF /* Pods_Adaptive_GMAT.framework */; }; 7E6ECF7D5E3928A2D8BC5789 /* Pods_StepikTVTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB2A138F0DB9843ED42F3412 /* Pods_StepikTVTests.framework */; }; - 7F84D4D43CE1BD915C1039AE /* Pods_SberbankUniversity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60775FB2AF00F82D3077ABE1 /* Pods_SberbankUniversity.framework */; }; 81BD99CCA5CEC93725F4659B /* Pods_StepikTV.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19956283569F1F9B77E95D90 /* Pods_StepikTV.framework */; }; 828CF38E1E0866E40058ACFC /* clock.png in Resources */ = {isa = PBXBuildFile; fileRef = 828CF38D1E0866E40058ACFC /* clock.png */; }; 860BC3381EAA1E520058F440 /* LoadingPaginationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083F2B291E9EC17F00714173 /* LoadingPaginationView.swift */; }; @@ -3818,7 +3951,6 @@ 864D67021E83DE03001E8D9E /* SocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C01DE34E2F0009B9CE /* SocialSDKProvider.swift */; }; 864D67031E83DE03001E8D9E /* VKSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088E58C31DE34ED20009B9CE /* VKSocialSDKProvider.swift */; }; 864D67041E83DE03001E8D9E /* FBSocialSDKProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08407EC61DE4891D0082C4E7 /* FBSocialSDKProvider.swift */; }; - 864D67051E83DE03001E8D9E /* RequestChain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0869530E1D747DC0003857A2 /* RequestChain.swift */; }; 864D67061E83DE03001E8D9E /* ApiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086953111D748303003857A2 /* ApiRequest.swift */; }; 864D67071E83DE03001E8D9E /* AuthAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */; }; 864D67081E83DE03001E8D9E /* ApiDataDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885F84D1BA837E200F2A188 /* ApiDataDownloader.swift */; }; @@ -3999,7 +4131,6 @@ 86AE948C1E84511A00F67691 /* UnitTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0828FF8B1BC81F41000AFEA7 /* UnitTableViewCell.xib */; }; 86AE948D1E84511A00F67691 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08DE941D1B8C58AC00D278AB /* Images.xcassets */; }; 86B457031E9F984800D31850 /* RecommendationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86795EF61E85325000A985C2 /* RecommendationsAPI.swift */; }; - 86B457041E9F98BC00D31850 /* RecommendationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86795EF61E85325000A985C2 /* RecommendationsAPI.swift */; }; 86B56EAD1EC38F7500CFE4A3 /* PostViewsExecutableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0806B2C11EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift */; }; 86B56EAE1EC38F7500CFE4A3 /* Tokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087D96BA1EBB7F5500059408 /* Tokens.swift */; }; 86BB7C022019538100063538 /* CongratsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86BB7C012019538000063538 /* CongratsView.swift */; }; @@ -4245,6 +4376,7 @@ 9F9C715B1E076B3E00EC8DA3 /* PlaybackCommandEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714E1E076B3E00EC8DA3 /* PlaybackCommandEntity.swift */; }; 9F9C715C1E076B3E00EC8DA3 /* PlaybackStatusEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714F1E076B3E00EC8DA3 /* PlaybackStatusEntity.swift */; }; 9F9C715D1E076B3E00EC8DA3 /* PlaybackStatusEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9C714F1E076B3E00EC8DA3 /* PlaybackStatusEntity.swift */; }; + AC4F37341E20E04E78D92AE4 /* Pods_Adaptive_8290.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F44AEA6B4D3D4D0AEAAFE7E /* Pods_Adaptive_8290.framework */; }; BA903500205449A000191D0A /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08A1257B1BDEBCC90066B2B2 /* Localizable.strings */; }; BA90350220544A5D00191D0A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BA90350120544A5D00191D0A /* Main.storyboard */; }; BAF1F3992027945000C5918C /* CourseSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */; }; @@ -4570,18 +4702,6 @@ 0861E6741CD8106E00B45652 /* ExecutionQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExecutionQueue.swift; sourceTree = ""; }; 0861E67A1CD9483500B45652 /* ExecutionQueues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExecutionQueues.swift; sourceTree = ""; }; 0863B9662069A41A0023A182 /* RetrieveRequestMaker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RetrieveRequestMaker.swift; sourceTree = ""; }; - 086494841E8C753B0083E0BE /* SberbankUniversity-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "SberbankUniversity-Info.plist"; path = "Sb/SberbankUniversity-Info.plist"; sourceTree = ""; }; - 086494851E8C753B0083E0BE /* SberbankUniversity.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = SberbankUniversity.xcassets; path = Sb/SberbankUniversity.xcassets; sourceTree = ""; }; - 086494861E8C753B0083E0BE /* SberbankUniversity.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; name = SberbankUniversity.entitlements; path = Sb/SberbankUniversity.entitlements; sourceTree = ""; }; - 086494871E8C753B0083E0BE /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Sb/GoogleService-Info.plist"; sourceTree = ""; }; - 086494881E8C753B0083E0BE /* SbAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SbAppDelegate.swift; path = Sb/SbAppDelegate.swift; sourceTree = ""; }; - 086494891E8C753B0083E0BE /* SbAuth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SbAuth.storyboard; path = Sb/SbAuth.storyboard; sourceTree = ""; }; - 0864948A1E8C753B0083E0BE /* SbControllerHelperLaunchExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SbControllerHelperLaunchExtension.swift; path = Sb/SbControllerHelperLaunchExtension.swift; sourceTree = ""; }; - 0864948B1E8C753B0083E0BE /* SbEntranceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SbEntranceViewController.swift; path = Sb/SbEntranceViewController.swift; sourceTree = ""; }; - 0864948C1E8C753B0083E0BE /* SbEntranceViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = SbEntranceViewController.xib; path = Sb/SbEntranceViewController.xib; sourceTree = ""; }; - 0864948D1E8C753B0083E0BE /* SbLaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = SbLaunchScreen.xib; path = Sb/SbLaunchScreen.xib; sourceTree = ""; }; - 0864948E1E8C753B0083E0BE /* SbSocialNetworks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SbSocialNetworks.swift; path = Sb/SbSocialNetworks.swift; sourceTree = ""; }; - 0864948F1E8C753B0083E0BE /* SbStepicApplicationsInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SbStepicApplicationsInfo.swift; path = Sb/SbStepicApplicationsInfo.swift; sourceTree = ""; }; 086538351EB02715003A8415 /* StickerPackExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = StickerPackExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 086538371EB02716003A8415 /* Stickers.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Stickers.xcassets; sourceTree = ""; }; 086538391EB02716003A8415 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -4591,7 +4711,6 @@ 08687BAC1BACB43700F5BDE1 /* RefreshTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshTableViewCell.swift; sourceTree = ""; }; 08687BAD1BACB43700F5BDE1 /* RefreshTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RefreshTableViewCell.xib; sourceTree = ""; }; 0868C17D1F375A1200D77C5F /* SearchQueriesPersistentManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchQueriesPersistentManager.swift; sourceTree = ""; }; - 0869530E1D747DC0003857A2 /* RequestChain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestChain.swift; sourceTree = ""; }; 086953111D748303003857A2 /* ApiRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiRequest.swift; sourceTree = ""; }; 0869F6D11CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistentQueueRecoveryManager.swift; sourceTree = ""; }; 0869F6D41CE229C800F8A6DB /* Queues.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Queues.plist; sourceTree = ""; }; @@ -4777,7 +4896,6 @@ 08CE16DF1BFA5A80008511B7 /* DeviceInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceInfo.swift; sourceTree = ""; }; 08D035201D65A252003515C6 /* AnalyticsEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnalyticsEvents.swift; sourceTree = ""; }; 08D035241D65B5E5003515C6 /* AnalyticsReporter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnalyticsReporter.swift; sourceTree = ""; }; - 08D121241C937B2200A54ABC /* SberbankUniversity.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SberbankUniversity.app; sourceTree = BUILT_PRODUCTS_DIR; }; 08D1EF6F1BB5618700BE84E6 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = ""; }; 08D1EF711BB5636700BE84E6 /* Course+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Course+CoreDataProperties.swift"; sourceTree = ""; }; 08D1EF721BB5636700BE84E6 /* Course.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Course.swift; sourceTree = ""; }; @@ -5065,6 +5183,7 @@ 2CA2E70620233E28001DC410 /* AdaptiveCardsStepsPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveCardsStepsPresenter.swift; sourceTree = ""; }; 2CA2E7092023591F001DC410 /* AdaptiveUserActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveUserActions.swift; sourceTree = ""; }; 2CA2E70D20237DB7001DC410 /* AdaptiveCardsStepsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveCardsStepsViewController.swift; sourceTree = ""; }; + 2CA8D3872088D9C000E105E9 /* Adaptive 8290.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Adaptive 8290.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2CA9D97620109718007AA743 /* AdaptiveStatsPagerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveStatsPagerViewController.swift; sourceTree = ""; }; 2CA9D97820109727007AA743 /* AdaptiveStatsPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveStatsPresenter.swift; sourceTree = ""; }; 2CA9D97C20109C07007AA743 /* AdaptiveRatingsPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveRatingsPresenter.swift; sourceTree = ""; }; @@ -5121,6 +5240,15 @@ 2CD846461F25FB6C00E8153C /* Profile+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Profile+CoreDataProperties.swift"; sourceTree = ""; }; 2CD8464A1F25FE8B00E8153C /* ProfilesAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfilesAPI.swift; sourceTree = ""; }; 2CD9B9671F87A58B00D446C2 /* NotificationDataExtractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDataExtractor.swift; sourceTree = ""; }; + 2CE11335208E102700293EAE /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Icons.xcassets; path = Content/8290/Icons.xcassets; sourceTree = ""; }; + 2CE11336208E102700293EAE /* AdaptiveInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AdaptiveInfo.plist; path = Content/8290/AdaptiveInfo.plist; sourceTree = ""; }; + 2CE11337208E102700293EAE /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Content/8290/GoogleService-Info.plist"; sourceTree = ""; }; + 2CE11338208E102800293EAE /* Config.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Config.plist; path = Content/8290/Config.plist; sourceTree = ""; }; + 2CE1133A208E102800293EAE /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = Content/8290/icon.png; sourceTree = ""; }; + 2CE1133C208E102900293EAE /* Auth.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Auth.plist; path = Content/8290/Auth.plist; sourceTree = ""; }; + 2CE1133D208E102900293EAE /* Tokens.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Tokens.plist; path = Content/8290/Tokens.plist; sourceTree = ""; }; + 2CE1134F208E106B00293EAE /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = ru; path = Content/8290/ru.lproj/step0.html; sourceTree = ""; }; + 2CE11351208E107400293EAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = en; path = Content/8290/en.lproj/step0.html; sourceTree = ""; }; 2CE3BCA41FBF0121000AD405 /* SQLQuizViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLQuizViewController.swift; sourceTree = ""; }; 2CE3BCA61FBF13CE000AD405 /* SQLReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SQLReply.swift; sourceTree = ""; }; 2CE527C02029D8EE0047EC5F /* AdaptiveStatsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptiveStatsSection.swift; sourceTree = ""; }; @@ -5137,7 +5265,10 @@ 2CFDA8181FBB3CFD0098A441 /* Model_sections_with_course_id_v21.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model_sections_with_course_id_v21.xcdatamodel; sourceTree = ""; }; 2CFDB1231F559F9A00B8035C /* AvatarImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarImageView.swift; sourceTree = ""; }; 37627BD3700B1D7795D371AC /* Pods_Adaptive_3150_Screenshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Adaptive_3150_Screenshots.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3A53D8E59267A93612403D59 /* Pods-Adaptive 8290.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Adaptive 8290.release.xcconfig"; path = "Pods/Target Support Files/Pods-Adaptive 8290/Pods-Adaptive 8290.release.xcconfig"; sourceTree = ""; }; + 3B3FD6B163F292403A536E4B /* Pods-Adaptive 8290.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Adaptive 8290.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Adaptive 8290/Pods-Adaptive 8290.debug.xcconfig"; sourceTree = ""; }; 3C0BEF79D32646AF1AAA1044 /* Pods-SberbankUniversity.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SberbankUniversity.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SberbankUniversity/Pods-SberbankUniversity.debug.xcconfig"; sourceTree = ""; }; + 3F44AEA6B4D3D4D0AEAAFE7E /* Pods_Adaptive_8290.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Adaptive_8290.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4729F9B4639AAD9EBFC01D1E /* Pods_Adaptive_1906.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Adaptive_1906.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 47AABB125002C92F6CC39E5E /* Pods-StepikTVTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-StepikTVTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-StepikTVTests/Pods-StepikTVTests.release.xcconfig"; sourceTree = ""; }; 5003B355F9C103E512D8A2A2 /* Pods-SberbankUniversity.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SberbankUniversity.release.xcconfig"; path = "Pods/Target Support Files/Pods-SberbankUniversity/Pods-SberbankUniversity.release.xcconfig"; sourceTree = ""; }; @@ -5147,7 +5278,11 @@ 60775FB2AF00F82D3077ABE1 /* Pods_SberbankUniversity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SberbankUniversity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 611F6148D39767518C0599A3 /* Pods-Adaptive 3124 Screenshots.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Adaptive 3124 Screenshots.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Adaptive 3124 Screenshots/Pods-Adaptive 3124 Screenshots.debug.xcconfig"; sourceTree = ""; }; 62E98148BF3C6F51F47F2BA9 /* CodeEditorPreferencesContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeEditorPreferencesContainer.swift; sourceTree = ""; }; + 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CourseListViewData.swift; sourceTree = ""; }; + 62E987B9D418CC2175A64EC2 /* UserAgentTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserAgentTests.swift; sourceTree = ""; }; 62E989579A70D89D559F7520 /* CodeEditorSettingsPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeEditorSettingsPresenter.swift; sourceTree = ""; }; + 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlamofireDefaultSessionManager.swift; sourceTree = ""; }; + 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepikURLSessionConfiguration.swift; sourceTree = ""; }; 62E98F34F48CF83CC3A6939B /* CodeEditorSettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodeEditorSettingsViewController.swift; sourceTree = ""; }; 6407CA973D1E0DD43D7D37A6 /* Pods-Adaptive 3149 Screenshots.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Adaptive 3149 Screenshots.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Adaptive 3149 Screenshots/Pods-Adaptive 3149 Screenshots.debug.xcconfig"; sourceTree = ""; }; 659D078D6ECC6EAC850691ED /* Pods-Stepic.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Stepic.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Stepic/Pods-Stepic.debug.xcconfig"; sourceTree = ""; }; @@ -5289,15 +5424,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 08D121031C937B2200A54ABC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 08D121041C937B2200A54ABC /* SystemConfiguration.framework in Frameworks */, - 7F84D4D43CE1BD915C1039AE /* Pods_SberbankUniversity.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 08DE940E1B8C58AC00D278AB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -5356,6 +5482,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2CA8D3192088D9C000E105E9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AC4F37341E20E04E78D92AE4 /* Pods_Adaptive_8290.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2CD12B821F4ED1F4001D3C82 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -5639,6 +5773,7 @@ 08195A051FA00FF400E6D6CD /* CourseLists.storyboard */, 088FD8161FB242B3008A2953 /* CourseSubscriber.swift */, 089C88DD1FCF494300003B63 /* CourseListType.swift */, + 62E9865A5FE3936F4ADA7133 /* CourseListViewData.swift */, ); name = "Course List"; sourceTree = ""; @@ -6139,6 +6274,7 @@ 080AA2341EA05BE00079272F /* TestInfo.plist */, 080AA2361EA05CD20079272F /* TestConfig.swift */, 2CB51F6A204FC6220008431C /* UserActivitySpec.swift */, + 62E987B9D418CC2175A64EC2 /* UserAgentTests.swift */, ); path = StepicTests; sourceTree = ""; @@ -6343,7 +6479,6 @@ isa = PBXGroup; children = ( 088E58BF1DE34E140009B9CE /* SocialSDKProviders */, - 0869530E1D747DC0003857A2 /* RequestChain.swift */, 086953111D748303003857A2 /* ApiRequest.swift */, 08FCEB631B9ED2AC00FC4F8B /* AuthAPI.swift */, 0885F84D1BA837E200F2A188 /* ApiDataDownloader.swift */, @@ -6735,25 +6870,6 @@ name = Analytics; sourceTree = ""; }; - 08D121261C93882400A54ABC /* Sb */ = { - isa = PBXGroup; - children = ( - 086494841E8C753B0083E0BE /* SberbankUniversity-Info.plist */, - 086494851E8C753B0083E0BE /* SberbankUniversity.xcassets */, - 086494861E8C753B0083E0BE /* SberbankUniversity.entitlements */, - 086494871E8C753B0083E0BE /* GoogleService-Info.plist */, - 086494881E8C753B0083E0BE /* SbAppDelegate.swift */, - 086494891E8C753B0083E0BE /* SbAuth.storyboard */, - 0864948A1E8C753B0083E0BE /* SbControllerHelperLaunchExtension.swift */, - 0864948B1E8C753B0083E0BE /* SbEntranceViewController.swift */, - 0864948C1E8C753B0083E0BE /* SbEntranceViewController.xib */, - 0864948D1E8C753B0083E0BE /* SbLaunchScreen.xib */, - 0864948E1E8C753B0083E0BE /* SbSocialNetworks.swift */, - 0864948F1E8C753B0083E0BE /* SbStepicApplicationsInfo.swift */, - ); - name = Sb; - sourceTree = ""; - }; 08D565C91C5F7CF000DE2B6A /* Quizzes */ = { isa = PBXGroup; children = ( @@ -6790,7 +6906,6 @@ 1BAE13041F93F67700482251 /* StepikTVTests */, 08DE94121B8C58AC00D278AB /* Products */, 1BAD14BA674336E6C1C0716C /* Frameworks */, - 08D121261C93882400A54ABC /* Sb */, 15A6EA0367C62E2E49D43D22 /* Pods */, 938860E02037994800DFEA3A /* Recovered References */, ); @@ -6800,7 +6915,6 @@ isa = PBXGroup; children = ( 08DE94111B8C58AC00D278AB /* Stepic.app */, - 08D121241C937B2200A54ABC /* SberbankUniversity.app */, 085D5CD91D007F2100092060 /* StepicTests.xctest */, 9F9C71171E076AE000EC8DA3 /* StepicWatch.app */, 9F9C71231E076AE000EC8DA3 /* StepicWatch Extension.appex */, @@ -6818,6 +6932,7 @@ 2CD12BE31F4F34CC001D3C82 /* Adaptive 3124 Screenshots.xctest */, 1BAE12EF1F93F67700482251 /* StepikTV.app */, 1BAE13011F93F67700482251 /* StepikTVTests.xctest */, + 2CA8D3872088D9C000E105E9 /* Adaptive 8290.app */, ); name = Products; sourceTree = ""; @@ -6845,6 +6960,8 @@ 08DA79001DB6BB36003491C4 /* ControllerHelperLaunchExtension.swift */, 080F211A2034DA2500A1204C /* LocalProgressLastViewedUpdater.swift */, 866AD0D52061A7D70004C2B2 /* ControllerWithStepikPlaceholder.swift */, + 62E98DC7237B8757A9F58935 /* StepikURLSessionConfiguration.swift */, + 62E98D998C0EBCA801E4BD65 /* AlamofireDefaultSessionManager.swift */, ); path = Stepic; sourceTree = ""; @@ -7249,6 +7366,8 @@ 47AABB125002C92F6CC39E5E /* Pods-StepikTVTests.release.xcconfig */, 210D872D0B8EC9F0380D3EF9 /* Pods-Adaptive GMAT.debug.xcconfig */, 1FFF7988186C86846F0ECF48 /* Pods-Adaptive GMAT.release.xcconfig */, + 3B3FD6B163F292403A536E4B /* Pods-Adaptive 8290.debug.xcconfig */, + 3A53D8E59267A93612403D59 /* Pods-Adaptive 8290.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -7397,6 +7516,7 @@ 19956283569F1F9B77E95D90 /* Pods_StepikTV.framework */, 9895386718491CB7C8C870C8 /* Pods_StepikTVTests.framework */, 5D480E6140E3FF44F2E720BF /* Pods_Adaptive_GMAT.framework */, + 3F44AEA6B4D3D4D0AEAAFE7E /* Pods_Adaptive_8290.framework */, ); name = Frameworks; sourceTree = ""; @@ -7683,6 +7803,7 @@ 2C8652561F4B2C2300D51654 /* Content */ = { isa = PBXGroup; children = ( + 2CE11332208E100F00293EAE /* 8290 */, 2C1B64CA1F4C595500236804 /* 3124 */, 2C1B62B11F4C4B3900236804 /* 3149 */, 2C9732F01F4C390E00AC9301 /* 3150 */, @@ -7989,6 +8110,21 @@ name = Profile; sourceTree = ""; }; + 2CE11332208E100F00293EAE /* 8290 */ = { + isa = PBXGroup; + children = ( + 2CE11336208E102700293EAE /* AdaptiveInfo.plist */, + 2CE1133C208E102900293EAE /* Auth.plist */, + 2CE11338208E102800293EAE /* Config.plist */, + 2CE11337208E102700293EAE /* GoogleService-Info.plist */, + 2CE1133A208E102800293EAE /* icon.png */, + 2CE1134E208E106B00293EAE /* step0.html */, + 2CE11335208E102700293EAE /* Icons.xcassets */, + 2CE1133D208E102900293EAE /* Tokens.plist */, + ); + name = 8290; + sourceTree = ""; + }; 2CE3BCA31FBEFF74000AD405 /* SQLQuizViewController */ = { isa = PBXGroup; children = ( @@ -8384,27 +8520,6 @@ productReference = 086538351EB02715003A8415 /* StickerPackExtension.appex */; productType = "com.apple.product-type.app-extension.messages-sticker-pack"; }; - 08D120731C937B2200A54ABC /* SberbankUniversity */ = { - isa = PBXNativeTarget; - buildConfigurationList = 08D121211C937B2200A54ABC /* Build configuration list for PBXNativeTarget "SberbankUniversity" */; - buildPhases = ( - 0E04A87A000ABE0DEA44C065 /* [CP] Check Pods Manifest.lock */, - 08D120741C937B2200A54ABC /* Sources */, - 08D121031C937B2200A54ABC /* Frameworks */, - 08D121061C937B2200A54ABC /* Resources */, - 08D1211F1C937B2200A54ABC /* ShellScript */, - 2F98E9CF49B3636DF2BC4BC0 /* [CP] Embed Pods Frameworks */, - 9C992E1AD385AAA0936274FF /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SberbankUniversity; - productName = Stepic; - productReference = 08D121241C937B2200A54ABC /* SberbankUniversity.app */; - productType = "com.apple.product-type.application"; - }; 08DE94101B8C58AC00D278AB /* Stepic */ = { isa = PBXNativeTarget; buildConfigurationList = 08DE94301B8C58AC00D278AB /* Build configuration list for PBXNativeTarget "Stepic" */; @@ -8562,6 +8677,28 @@ productReference = 2C9732EE1F4C38F600AC9301 /* Adaptive 3150.app */; productType = "com.apple.product-type.application"; }; + 2CA8D1392088D9C000E105E9 /* Adaptive 8290 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2CA8D3842088D9C000E105E9 /* Build configuration list for PBXNativeTarget "Adaptive 8290" */; + buildPhases = ( + 2CA8D13A2088D9C000E105E9 /* [CP] Check Pods Manifest.lock */, + 2CA8D13B2088D9C000E105E9 /* Sources */, + 2CA8D3192088D9C000E105E9 /* Frameworks */, + 2CA8D31B2088D9C000E105E9 /* Resources */, + 2CA8D3802088D9C000E105E9 /* Fabric Script */, + 2CA8D3812088D9C000E105E9 /* SwiftLint Script */, + 2CA8D3822088D9C000E105E9 /* [CP] Embed Pods Frameworks */, + 2CA8D3832088D9C000E105E9 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Adaptive 8290"; + productName = StepicAdaptiveCourse; + productReference = 2CA8D3872088D9C000E105E9 /* Adaptive 8290.app */; + productType = "com.apple.product-type.application"; + }; 2CD12B841F4ED1F4001D3C82 /* Adaptive 1838 Screenshots */ = { isa = PBXNativeTarget; buildConfigurationList = 2CD12B8E1F4ED1F4001D3C82 /* Build configuration list for PBXNativeTarget "Adaptive 1838 Screenshots" */; @@ -8762,9 +8899,6 @@ LastSwiftMigration = 0920; ProvisioningStyle = Manual; }; - 08D120731C937B2200A54ABC = { - DevelopmentTeam = 4562ZPB9BG; - }; 08DE94101B8C58AC00D278AB = { CreatedOnToolsVersion = 6.4; DevelopmentTeam = E9KER42773; @@ -8818,6 +8952,10 @@ DevelopmentTeam = E9KER42773; ProvisioningStyle = Manual; }; + 2CA8D1392088D9C000E105E9 = { + DevelopmentTeam = E9KER42773; + ProvisioningStyle = Automatic; + }; 2CD12B841F4ED1F4001D3C82 = { CreatedOnToolsVersion = 8.3.3; LastSwiftMigration = 0830; @@ -8883,7 +9021,6 @@ projectRoot = ""; targets = ( 08DE94101B8C58AC00D278AB /* Stepic */, - 08D120731C937B2200A54ABC /* SberbankUniversity */, 085D5CD81D007F2100092060 /* StepicTests */, 9F9C71161E076AE000EC8DA3 /* StepicWatch */, 9F9C71221E076AE000EC8DA3 /* StepicWatch Extension */, @@ -8901,6 +9038,7 @@ 2CD12BD51F4F34CC001D3C82 /* Adaptive 3124 Screenshots */, 1BAE12EE1F93F67700482251 /* StepikTV */, 1BAE13001F93F67700482251 /* StepikTVTests */, + 2CA8D1392088D9C000E105E9 /* Adaptive 8290 */, ); }; /* End PBXProject section */ @@ -8922,91 +9060,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 08D121061C937B2200A54ABC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 08A9F6FB1FC37DC100640F1F /* CourseTagsView.xib in Resources */, - 08D121091C937B2200A54ABC /* CustomMessagesDesign.json in Resources */, - 08D1210A1C937B2200A54ABC /* TitleTextTableViewCell.xib in Resources */, - 08F4761F1E82C11C0018E82C /* StreaksView.xib in Resources */, - 087854F61DF6EE0D00368A50 /* wysiwyg.css in Resources */, - 08DF78961F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.xib in Resources */, - 082CB1B91D08971900C79A27 /* DiscussionsViewController.xib in Resources */, - 08D1210B1C937B2200A54ABC /* UnknownTypeQuizViewController.xib in Resources */, - 08D1210C1C937B2200A54ABC /* MathJax in Resources */, - 08AC213D1CDD35DF00FBB9CD /* Users.plist in Resources */, - 0859AE9C1E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.xib in Resources */, - 089F588A1D22BD59000CD540 /* DiscussionCountView.xib in Resources */, - 08CBA3551F5A2D9400302154 /* Profile.storyboard in Resources */, - 08263D731DE5F230002E5B7F /* PickerViewController.xib in Resources */, - 084DB9D61FA2A19F0074B11E /* ContinueLearningWidgetView.xib in Resources */, - 08D1210F1C937B2200A54ABC /* UnitTableViewCell.xib in Resources */, - 089056141E98021000B8FE6A /* RateAppViewController.xib in Resources */, - 086BE2AA1F93A20B00B4BE56 /* LoadingCourseWidgetView.xib in Resources */, - 08D121101C937B2200A54ABC /* QuizViewController.xib in Resources */, - 083F2B121E9D8E8F00714173 /* CertificatesStoryboard.storyboard in Resources */, - 08195A071FA00FF400E6D6CD /* CourseLists.storyboard in Resources */, - 08D121111C937B2200A54ABC /* RefreshTableViewCell.xib in Resources */, - 083F2B241E9E645000714173 /* CertificateTableViewCell.xib in Resources */, - 08EDB8CE1F7C4BDB0028A9AE /* CourseStatCollectionViewCell.xib in Resources */, - 08EB85F91D10454E00E4F345 /* DiscussionsStoryboard.storyboard in Resources */, - 08CB0D451FB63F74001A1E02 /* ContentLanguagesView.xib in Resources */, - 086494A41E8C7A270083E0BE /* SbAuth.storyboard in Resources */, - 0815661C1F69C3910082B359 /* CustomSearchBar.xib in Resources */, - 08C6E31F1DFB2691007F7E39 /* NotificationRequestAlertViewController.xib in Resources */, - 085EDCC01F99462B00AB3278 /* Notifications.storyboard in Resources */, - 08AC213A1CDD34C300FBB9CD /* Tasks.plist in Resources */, - 08D121121C937B2200A54ABC /* Main.storyboard in Resources */, - 080E81021F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.xib in Resources */, - 0859AEA41E4F22B500A0D206 /* FillBlanksInputTableViewCell.xib in Resources */, - 08EDB8B21F7C3D0C0028A9AE /* CourseWidgetView.xib in Resources */, - 086494A61E8C7A3B0083E0BE /* SbLaunchScreen.xib in Resources */, - 08D121131C937B2200A54ABC /* LaunchScreen.xib in Resources */, - 08D121141C937B2200A54ABC /* DownloadTableViewCell.xib in Resources */, - 08D121151C937B2200A54ABC /* Images.xcassets in Resources */, - 083F2B271E9EC10A00714173 /* LoadingPaginationView.xib in Resources */, - 086494A21E8C7A180083E0BE /* GoogleService-Info.plist in Resources */, - 088EDCBA1F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.xib in Resources */, - 08EDD6211F7C607A005203E4 /* CourseWidgetTableViewCell.xib in Resources */, - 0860D91C1F115D830087D61B /* CodeSuggestionsTableViewController.xib in Resources */, - 08D121161C937B2200A54ABC /* Scripts.plist in Resources */, - 08195A221FA0AF2A00E6D6CD /* HorizontalCoursesView.xib in Resources */, - 08D121171C937B2200A54ABC /* VideoDownloadView.xib in Resources */, - 08D121181C937B2200A54ABC /* Localizable.strings in Resources */, - 08DB8CBC1D0BECF100A6D079 /* DiscussionTableViewCell.xib in Resources */, - 08ED08E31FCCDC3A0053FB68 /* UserActivityHomeView.xib in Resources */, - 08DF78A91F5DE66200AEEA85 /* ArtView.xib in Resources */, - 08EB85E21D0F192A00E4F345 /* LoadMoreTableViewCell.xib in Resources */, - 083622DD1CD1FA6700CD8915 /* StepTabView.xib in Resources */, - 08CBA31E1F57562A00302154 /* SwitchMenuBlockTableViewCell.xib in Resources */, - 08FEFC1F1F117257005CA0FB /* CodeSuggestionTableViewCell.xib in Resources */, - 08D1211A1C937B2200A54ABC /* WarningView.xib in Resources */, - 0888D0FA1F1E3CEF00A16863 /* CodeInputAccessoryView.xib in Resources */, - 083056D31DBFB4C500F1F2A4 /* DiscussionWebTableViewCell.xib in Resources */, - 086494A51E8C7A360083E0BE /* SbEntranceViewController.xib in Resources */, - 08CBA3421F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */, - 080C5E731EFC094F0036EB3D /* CodeQuizToolbarView.xib in Resources */, - 08CBA3301F57563C00302154 /* TransitionMenuBlockTableViewCell.xib in Resources */, - 0869F6D61CE229C800F8A6DB /* Queues.plist in Resources */, - 08D1211B1C937B2200A54ABC /* TeacherCollectionViewCell.xib in Resources */, - 08D1211C1C937B2200A54ABC /* SectionTableViewCell.xib in Resources */, - 08D1211D1C937B2200A54ABC /* SortingQuizTableViewCell.xib in Resources */, - 0885B8DB1FB64452005A7B2E /* ContentLanguageCollectionViewCell.xib in Resources */, - 08A9F7161FC3837800640F1F /* CourseTagCollectionViewCell.xib in Resources */, - 084472091D05918E00197166 /* ChoiceQuizTableViewCell.xib in Resources */, - 08E8F97E1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.xib in Resources */, - 08D1211E1C937B2200A54ABC /* StepicVideoPlayerViewController.xib in Resources */, - 08CB0D3B1FB5FB28001A1E02 /* Explore.storyboard in Resources */, - 086494A11E8C7A060083E0BE /* SberbankUniversity.xcassets in Resources */, - 08C7CB751FA7ACB9001D8241 /* CourseListEmptyPlaceholder.xib in Resources */, - 0859AEAB1E4F26C700A0D206 /* FillBlanksTextTableViewCell.xib in Resources */, - 084C9AF91EC4C11A00AC5C3C /* jquery-3.2.1.min.js in Resources */, - 0888D1061F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.xib in Resources */, - 08CBA35F1F5AFDCF00302154 /* ProfileStreaksView.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 08DE940F1B8C58AC00D278AB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -9598,6 +9651,115 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2CA8D31B2088D9C000E105E9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2CE1134C208E104400293EAE /* Auth.plist in Resources */, + 2CA8D31C2088D9C000E105E9 /* jquery-3.2.1.min.js in Resources */, + 2CA8D31D2088D9C000E105E9 /* wysiwyg.css in Resources */, + 2CA8D31E2088D9C000E105E9 /* adjectives_f.plist in Resources */, + 2CA8D31F2088D9C000E105E9 /* Localizable.strings in Resources */, + 2CA8D3202088D9C000E105E9 /* LoadingPaginationView.xib in Resources */, + 2CA8D3212088D9C000E105E9 /* ProfileStreaksView.xib in Resources */, + 2CA8D3222088D9C000E105E9 /* adjectives_m.plist in Resources */, + 2CA8D3232088D9C000E105E9 /* overlay_simple.png in Resources */, + 2CA8D3242088D9C000E105E9 /* step3.html in Resources */, + 2CA8D3252088D9C000E105E9 /* CertificateTableViewCell.xib in Resources */, + 2CA8D3262088D9C000E105E9 /* CertificatesStoryboard.storyboard in Resources */, + 2CA8D3282088D9C000E105E9 /* HorizontalCoursesView.xib in Resources */, + 2CA8D3292088D9C000E105E9 /* CourseStatCollectionViewCell.xib in Resources */, + 2CA8D32A2088D9C000E105E9 /* CourseWidgetTableViewCell.xib in Resources */, + 2CA8D32B2088D9C000E105E9 /* StreaksView.xib in Resources */, + 2CA8D32C2088D9C000E105E9 /* RateAppViewController.xib in Resources */, + 2CA8D32D2088D9C000E105E9 /* Main.storyboard in Resources */, + 2CA8D32E2088D9C000E105E9 /* ContentLanguageCollectionViewCell.xib in Resources */, + 2CA8D32F2088D9C000E105E9 /* CongratulationViewController.xib in Resources */, + 2CA8D3302088D9C000E105E9 /* StepCardView.xib in Resources */, + 2CA8D3312088D9C000E105E9 /* nouns_f.plist in Resources */, + 2CA8D3322088D9C000E105E9 /* CodeSuggestionsTableViewController.xib in Resources */, + 2CA8D3332088D9C000E105E9 /* ContentLanguagesView.xib in Resources */, + 2CA8D3342088D9C000E105E9 /* ProgressTableViewCell.xib in Resources */, + 2CA8D3352088D9C000E105E9 /* VideoDownloadView.xib in Resources */, + 2CA8D3362088D9C000E105E9 /* WarningView.xib in Resources */, + 2CA8D3372088D9C000E105E9 /* MathJax in Resources */, + 2CA8D3382088D9C000E105E9 /* StepTabView.xib in Resources */, + 2CE1134B208E104000293EAE /* Config.plist in Resources */, + 2CA8D3392088D9C000E105E9 /* DiscussionCountView.xib in Resources */, + 2CA8D33A2088D9C000E105E9 /* TitleContentExpandableMenuBlockTableViewCell.xib in Resources */, + 2CA8D33B2088D9C000E105E9 /* Adaptive.storyboard in Resources */, + 2CA8D33C2088D9C000E105E9 /* PickerViewController.xib in Resources */, + 2CA8D33D2088D9C000E105E9 /* FullscreenCodeQuizViewController.xib in Resources */, + 2CA8D33E2088D9C000E105E9 /* ContinueLearningWidgetView.xib in Resources */, + 2CA8D33F2088D9C000E105E9 /* AchievementTableViewCell.xib in Resources */, + 2CA8D3402088D9C000E105E9 /* StepicVideoPlayerViewController.xib in Resources */, + 2CA8D3412088D9C000E105E9 /* step1.html in Resources */, + 2CA8D3432088D9C000E105E9 /* AdaptiveCourseTableViewCell.xib in Resources */, + 2CA8D3442088D9C000E105E9 /* CodeInputAccessoryView.xib in Resources */, + 2CA8D3452088D9C000E105E9 /* PlayerTestStoryboard.storyboard in Resources */, + 2CA8D3462088D9C000E105E9 /* DownloadTableViewCell.xib in Resources */, + 2CA8D3472088D9C000E105E9 /* HeaderMenuBlockTableViewCell.xib in Resources */, + 2CA8D3482088D9C000E105E9 /* DiscussionWebTableViewCell.xib in Resources */, + 2CA8D3492088D9C000E105E9 /* nouns_m.plist in Resources */, + 2CE11348208E103400293EAE /* Icons.xcassets in Resources */, + 2CA8D34A2088D9C000E105E9 /* DiscussionTableViewCell.xib in Resources */, + 2CA8D34B2088D9C000E105E9 /* Explore.storyboard in Resources */, + 2CA8D34C2088D9C000E105E9 /* DiscussionsViewController.xib in Resources */, + 2CA8D34D2088D9C000E105E9 /* LoadMoreTableViewCell.xib in Resources */, + 2CA8D34E2088D9C000E105E9 /* overlay_hard.png in Resources */, + 2CE11349208E103900293EAE /* icon.png in Resources */, + 2CA8D34F2088D9C000E105E9 /* DiscussionsStoryboard.storyboard in Resources */, + 2CA8D3502088D9C000E105E9 /* StepikPlaceholderView.xib in Resources */, + 2CA8D3512088D9C000E105E9 /* CourseListEmptyPlaceholder.xib in Resources */, + 2CA8D3522088D9C000E105E9 /* QuizViewController.xib in Resources */, + 2CA8D3532088D9C000E105E9 /* step4.html in Resources */, + 2CA8D3542088D9C000E105E9 /* arrow_right.svg in Resources */, + 2CA8D3552088D9C000E105E9 /* SearchSuggestionTableViewCell.xib in Resources */, + 2CA8D3562088D9C000E105E9 /* ArtView.xib in Resources */, + 2CA8D3572088D9C000E105E9 /* CourseTagsView.xib in Resources */, + 2CE11347208E103100293EAE /* Tokens.plist in Resources */, + 2CA8D35A2088D9C000E105E9 /* UnknownTypeQuizViewController.xib in Resources */, + 2CA8D35B2088D9C000E105E9 /* CodeInputAccessoryCollectionViewCell.xib in Resources */, + 2CA8D35C2088D9C000E105E9 /* step2.html in Resources */, + 2CA8D35D2088D9C000E105E9 /* ChoiceQuizTableViewCell.xib in Resources */, + 2CA8D35E2088D9C000E105E9 /* SortingQuizTableViewCell.xib in Resources */, + 2CA8D35F2088D9C000E105E9 /* CodeQuizToolbarView.xib in Resources */, + 2CA8D3602088D9C000E105E9 /* CourseWidgetCollectionViewCell.xib in Resources */, + 2CA8D3612088D9C000E105E9 /* FillBlanksTextTableViewCell.xib in Resources */, + 2CA8D3632088D9C000E105E9 /* FillBlanksInputTableViewCell.xib in Resources */, + 2CA8D3642088D9C000E105E9 /* CourseTagCollectionViewCell.xib in Resources */, + 2CA8D3652088D9C000E105E9 /* plyr.js in Resources */, + 2CA8D3662088D9C000E105E9 /* FillBlanksChoiceTableViewCell.xib in Resources */, + 2CA8D3672088D9C000E105E9 /* SwitchMenuBlockTableViewCell.xib in Resources */, + 2CE1134A208E103D00293EAE /* GoogleService-Info.plist in Resources */, + 2CE11353208E112600293EAE /* step0.html in Resources */, + 2CA8D3682088D9C000E105E9 /* TeacherCollectionViewCell.xib in Resources */, + 2CA8D3692088D9C000E105E9 /* TitleTextTableViewCell.xib in Resources */, + 2CA8D36A2088D9C000E105E9 /* RefreshTableViewCell.xib in Resources */, + 2CA8D36B2088D9C000E105E9 /* CourseLists.storyboard in Resources */, + 2CA8D36C2088D9C000E105E9 /* TransitionMenuBlockTableViewCell.xib in Resources */, + 2CA8D36D2088D9C000E105E9 /* SectionTableViewCell.xib in Resources */, + 2CA8D36E2088D9C000E105E9 /* UnitTableViewCell.xib in Resources */, + 2CA8D36F2088D9C000E105E9 /* Images.xcassets in Resources */, + 2CA8D3702088D9C000E105E9 /* arrow_left.svg in Resources */, + 2CA8D3712088D9C000E105E9 /* CourseWidgetView.xib in Resources */, + 2CA8D3722088D9C000E105E9 /* CustomSearchBar.xib in Resources */, + 2CA8D3732088D9C000E105E9 /* AchievementNotificationView.xib in Resources */, + 2CA8D3742088D9C000E105E9 /* plyr.css in Resources */, + 2CA8D3752088D9C000E105E9 /* LoadingCourseWidgetView.xib in Resources */, + 2CA8D3762088D9C000E105E9 /* NotificationRequestAlertViewController.xib in Resources */, + 2CA8D3772088D9C000E105E9 /* AdaptiveLaunchScreen.storyboard in Resources */, + 2CA8D3782088D9C000E105E9 /* CodeSuggestionTableViewCell.xib in Resources */, + 2CA8D3792088D9C000E105E9 /* Notifications.storyboard in Resources */, + 2CA8D37A2088D9C000E105E9 /* AdaptiveAssets.xcassets in Resources */, + 2CA8D37B2088D9C000E105E9 /* UserActivityHomeView.xib in Resources */, + 2CA8D37C2088D9C000E105E9 /* AdaptiveMain.storyboard in Resources */, + 2CA8D37D2088D9C000E105E9 /* Profile.storyboard in Resources */, + 2CA8D37E2088D9C000E105E9 /* LeaderboardTableViewCell.xib in Resources */, + 2CA8D37F2088D9C000E105E9 /* loading_robot.gif in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2CD12B831F4ED1F4001D3C82 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -9988,24 +10150,6 @@ shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Fabric/run\" d4016589326f6f7814080b7ff9017e18711a1959 7b8ab6e85a0ca84908f6cd82f195f1b24ffad778e69b5bce1105ce078d1255f8"; }; - 08D1211F1C937B2200A54ABC /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-StepikTV/Pods-StepikTV-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Alamofire-tvOS/Alamofire.framework", - "${BUILT_PRODUCTS_DIR}/CocoaLumberjack-tvOS/CocoaLumberjack.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON-tvOS/SwiftyJSON.framework", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}\"/Fabric/Fabric.framework/run d4016589326f6f7814080b7ff9017e18711a1959 7b8ab6e85a0ca84908f6cd82f195f1b24ffad778e69b5bce1105ce078d1255f8"; - }; 08DB2D6354939DE948ED5639 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -10042,24 +10186,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; - 0E04A87A000ABE0DEA44C065 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-SberbankUniversity-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 13FD40DAA032234A82A4C0D1 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -10317,13 +10443,59 @@ shellPath = /bin/sh; shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; }; - 2F98E9CF49B3636DF2BC4BC0 /* [CP] Embed Pods Frameworks */ = { + 2CA8D13A2088D9C000E105E9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Adaptive 8290-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 2CA8D3802088D9C000E105E9 /* Fabric Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Fabric Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Fabric/run\" d4016589326f6f7814080b7ff9017e18711a1959 7b8ab6e85a0ca84908f6cd82f195f1b24ffad778e69b5bce1105ce078d1255f8"; + }; + 2CA8D3812088D9C000E105E9 /* SwiftLint Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "SwiftLint Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; + }; + 2CA8D3822088D9C000E105E9 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-SberbankUniversity/Pods-SberbankUniversity-frameworks.sh", + "${SRCROOT}/Pods/Target Support Files/Pods-Adaptive 8290/Pods-Adaptive 8290-frameworks.sh", "${BUILT_PRODUCTS_DIR}/ActionSheetPicker-3.0/ActionSheetPicker_3_0.framework", "${BUILT_PRODUCTS_DIR}/Agrume/Agrume.framework", "${BUILT_PRODUCTS_DIR}/Alamofire-iOS/Alamofire.framework", @@ -10350,7 +10522,7 @@ "${BUILT_PRODUCTS_DIR}/PromiseKit-iOS/PromiseKit.framework", "${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework", "${BUILT_PRODUCTS_DIR}/RFKeyboardToolbar/RFKeyboardToolbar.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage-iOS/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage.default-GIF/SDWebImage.framework", "${BUILT_PRODUCTS_DIR}/SVGKit-iOS/SVGKit.framework", "${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework", "${BUILT_PRODUCTS_DIR}/SwiftyJSON-iOS/SwiftyJSON.framework", @@ -10362,6 +10534,10 @@ "${BUILT_PRODUCTS_DIR}/lottie-ios/Lottie.framework", "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework", "${BUILT_PRODUCTS_DIR}/pop/pop.framework", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MarqueeLabel/MarqueeLabel.framework", + "${BUILT_PRODUCTS_DIR}/NotificationBannerSwift/NotificationBannerSwift.framework", + "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( @@ -10403,10 +10579,29 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Lottie.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/pop.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MarqueeLabel.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NotificationBannerSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SberbankUniversity/Pods-SberbankUniversity-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Adaptive 8290/Pods-Adaptive 8290-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 2CA8D3832088D9C000E105E9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Adaptive 8290/Pods-Adaptive 8290-resources.sh\"\n"; showEnvVarsInLog = 0; }; 3F82A4676256445CD63EB8B3 /* [CP] Embed Pods Frameworks */ = { @@ -10870,21 +11065,6 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Adaptive 3149 Screenshots/Pods-Adaptive 3149 Screenshots-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 9C992E1AD385AAA0936274FF /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SberbankUniversity/Pods-SberbankUniversity-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; AB5E962B0AD41C11219C9B32 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -11480,400 +11660,7 @@ 0805FE481F0E584B001226B4 /* CodePlaygroundTest.swift in Sources */, 2C45339A204D5DEE0061342A /* PinsMapSpec.swift in Sources */, 080AA2371EA05CD20079272F /* TestConfig.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 08D120741C937B2200A54ABC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 08758A9B1CDB99C400159233 /* DevicesAPI.swift in Sources */, - 086442CA1F765004000CC53D /* AuthButton.swift in Sources */, - 08D120751C937B2200A54ABC /* Course.swift in Sources */, - 0890560E1E97CE1800B8FE6A /* LaunchDefaultsContainer.swift in Sources */, - 08AF59EB1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDataSource.swift in Sources */, - 08EB85EA1D0F649700E4F345 /* CellOperationsUtil.swift in Sources */, - 080CE1531E9563170089A27F /* AssignmentsAPI.swift in Sources */, - 08D120771C937B2200A54ABC /* GlobalFunctions.swift in Sources */, - 08D120791C937B2200A54ABC /* AuthAPI.swift in Sources */, - 0895A13C1E43836B00FE22DD /* FillBlanksReply.swift in Sources */, - 2CD846481F25FB6C00E8153C /* Profile+CoreDataProperties.swift in Sources */, - 083E1DA71C96E9F100B305E4 /* ApplicationInfo.swift in Sources */, - 088CB1ED1D4BD5ED00C6ED1B /* FreeAnswerDataset.swift in Sources */, - 0864949C1E8C78AA0083E0BE /* SbSocialNetworks.swift in Sources */, - 08D1207A1C937B2200A54ABC /* Dataset.swift in Sources */, - 089984301ECDE19E005C0B27 /* LessonView.swift in Sources */, - 08EA89BB200E53B200BCAF44 /* EnrollmentsAPI.swift in Sources */, - 08D1207B1C937B2200A54ABC /* WebStepViewController.swift in Sources */, - 086442D11F765011000CC53D /* AuthTextField.swift in Sources */, - 0834C4711E2CEC4E002F8516 /* MatchingQuizViewController.swift in Sources */, - 086BE2B31F93A21B00B4BE56 /* LoadingCourseWidgetView.swift in Sources */, - 08EA89C9200E688800BCAF44 /* SQLReply.swift in Sources */, - 087F6B971CE9E2C8002649AB /* HTMLParsingUtil.swift in Sources */, - 08407EC81DE4891D0082C4E7 /* FBSocialSDKProvider.swift in Sources */, - 08D1207D1C937B2200A54ABC /* LabelExtension.swift in Sources */, - 08E8F9681F34DD2C008CF4A1 /* SearchQueriesPresenter.swift in Sources */, - 0859AEA21E4F22B500A0D206 /* FillBlanksInputTableViewCell.swift in Sources */, - 08D1207F1C937B2200A54ABC /* Progress.swift in Sources */, - 0834C46A1E2CE469002F8516 /* MatchingDataset.swift in Sources */, - 089574571E5B76E700C12D21 /* UIImageView+SVGDownload.swift in Sources */, - 08D5F5781F7DA8CB007C1634 /* CourseReviewSummary+CoreDataProperties.swift in Sources */, - 0864949B1E8C78A20083E0BE /* SbStepicApplicationsInfo.swift in Sources */, - 08D120811C937B2200A54ABC /* MathQuizViewController.swift in Sources */, - 086953101D747DC0003857A2 /* RequestChain.swift in Sources */, - 08B062DE1FDEFD5900A6C999 /* StreaksAlertPresentationManager.swift in Sources */, - 08E59AC01E433057008EEECE /* FillBlanksDataset.swift in Sources */, - 087585AF1FB51D720047A269 /* CourseList.swift in Sources */, - 086BE2861F901CCF00B4BE56 /* LastStepRouter.swift in Sources */, - 08BC47151CDA3E99009A1D25 /* ExecutableTaskTypes.swift in Sources */, - 08D120821C937B2200A54ABC /* VideoURL+CoreDataProperties.swift in Sources */, - 083F2B2B1E9EC17F00714173 /* LoadingPaginationView.swift in Sources */, - 08901E731CD1173200D94613 /* Version.swift in Sources */, - 08D120831C937B2200A54ABC /* Video+CoreDataProperties.swift in Sources */, - 08EB85ED1D100B7400E4F345 /* DiscussionCellDelegate.swift in Sources */, - 08D120841C937B2200A54ABC /* Model.xcdatamodeld in Sources */, - 08EB85FC1D10863F00E4F345 /* DiscussionAlertConstructor.swift in Sources */, - 0859AE961E4F19B600A0D206 /* FillBlanksQuizViewController.swift in Sources */, - 08D120851C937B2200A54ABC /* ChoiceQuizViewController.swift in Sources */, - 08D120861C937B2200A54ABC /* ConnectionHelper.swift in Sources */, - 080E80FF1F0146EF00DC0EA5 /* FullscreenCodeQuizViewController.swift in Sources */, - 08019A831DEED7E900691F0B /* StreaksNotificationSuggestionManager.swift in Sources */, - 08D120871C937B2200A54ABC /* Images.swift in Sources */, - 088AADAE1D175DA00034D86D /* HTMLContentViewInteractionDelegate.swift in Sources */, - 08D120891C937B2200A54ABC /* StandardsExtensions.swift in Sources */, - 089611051D52250500561AC1 /* DeepLinkRouter.swift in Sources */, - 0861E6731CD80A9600B45652 /* Executable.swift in Sources */, - 08D1208A1C937B2200A54ABC /* AnalyticsHelper.swift in Sources */, - 08D1208B1C937B2200A54ABC /* Lesson.swift in Sources */, - 081058361E9FDD3B00FAC30A /* CertificatesViewTestMock.swift in Sources */, - 085EDCB81F9945D100AB3278 /* Notification+FetchMethods.swift in Sources */, - 08EB85F61D10267900E4F345 /* WriteCommentDelegate.swift in Sources */, - 08D5F56E1F7DA6BB007C1634 /* CourseReviewSummary.swift in Sources */, - 083F2B221E9E645000714173 /* CertificateTableViewCell.swift in Sources */, - 08A9BD741F8CA02A0085EAF6 /* CourseListPresenter.swift in Sources */, - 0859AEAE1E4F5D8200A0D206 /* FillBlanksActiveTableViewCellProtocol.swift in Sources */, - 0861E6761CD8106E00B45652 /* ExecutionQueue.swift in Sources */, - 08901E741CD15B0F00D94613 /* VersionUpdateAlertConstructor.swift in Sources */, - 08195A191FA0AF1200E6D6CD /* HorizontalCoursesView.swift in Sources */, - 08901E6B1CD1019A00D94613 /* UpdateChecker.swift in Sources */, - 08D1208C1C937B2200A54ABC /* HTMLBuilder.swift in Sources */, - 080C5E781EFC09730036EB3D /* CodeQuizToolbarView.swift in Sources */, - 0800B8231D07029B006C987E /* CommentsAPI.swift in Sources */, - 088AADAC1D175DA00034D86D /* HTMLStringWrapperUtil.swift in Sources */, - 2CD8464C1F25FE8B00E8153C /* ProfilesAPI.swift in Sources */, - 08D1208D1C937B2200A54ABC /* Scripts.swift in Sources */, - 08EDB8BC1F7C3D430028A9AE /* CourseWidgetView.swift in Sources */, - 08AF59E51E6D9BE800423EFF /* RGPageViewController.swift in Sources */, - 08AF59F51E6D9BE800423EFF /* RGPageViewController+UIScrollViewDelegate.swift in Sources */, - 08DF789F1F5DE64300AEEA85 /* ArtView.swift in Sources */, - 08AF59FD1E6D9BE800423EFF /* RGPageViewControllerDelegate.swift in Sources */, - 084F7AAB1E76EF780088368A /* LastStep+CoreDataProperties.swift in Sources */, - 086A8B291D21796800F45C45 /* VotesAPI.swift in Sources */, - 08D1208E1C937B2200A54ABC /* DeviceInfo.swift in Sources */, - 08D1208F1C937B2200A54ABC /* UIViewLoadExtension.swift in Sources */, - 086953131D748304003857A2 /* ApiRequest.swift in Sources */, - 08D120911C937B2200A54ABC /* Section.swift in Sources */, - 08D120921C937B2200A54ABC /* Step+CoreDataProperties.swift in Sources */, - 08A0218F1D675B4800915679 /* SectionNavigationDelegate.swift in Sources */, - 08D120931C937B2200A54ABC /* UnknownTypeQuizViewController.swift in Sources */, - 0800B8191D06D961006C987E /* DiscussionProxy.swift in Sources */, - 08D120941C937B2200A54ABC /* CourseSubscriptionManager.swift in Sources */, - 080CE14A1E9562430089A27F /* LessonsAPI.swift in Sources */, - 08D120951C937B2200A54ABC /* SortingDataset.swift in Sources */, - 08758A9D1CDB99CF00159233 /* Device.swift in Sources */, - 08D120961C937B2200A54ABC /* SearchResult.swift in Sources */, - 08EB85E01D0F192A00E4F345 /* LoadMoreTableViewCell.swift in Sources */, - 0835542A1CC8FD2D004C4E85 /* NotificationRegistrator.swift in Sources */, - 088E58C21DE34E2F0009B9CE /* SocialSDKProvider.swift in Sources */, - 08D120971C937B2200A54ABC /* Assignment.swift in Sources */, - 087585C11FB524C20047A269 /* ContentLanguage.swift in Sources */, - 08D120981C937B2200A54ABC /* PathManager.swift in Sources */, - 0800B8201D06FDE5006C987E /* DiscussionProxiesAPI.swift in Sources */, - 0829B8361E9D025C009B4A84 /* CertificatesAPI.swift in Sources */, - 08D120991C937B2200A54ABC /* StringExtensions.swift in Sources */, - 08D1209A1C937B2200A54ABC /* Attempt.swift in Sources */, - 087585A41FB50D640047A269 /* CourseListsAPI.swift in Sources */, - 08EDD6191F7C607A005203E4 /* CourseWidgetTableViewCell.swift in Sources */, - 0869F6D31CE216B600F8A6DB /* PersistentQueueRecoveryManager.swift in Sources */, - 08BC47071CD9F424009A1D25 /* DeleteDeviceExecutableTask.swift in Sources */, - 08DF78BA1F5E0C9300AEEA85 /* StringHelper.swift in Sources */, - 08A500511F2B73C000140D25 /* FullHeightWebView.swift in Sources */, - 08AF59F71E6D9BE800423EFF /* RGPageViewController+UIToolbarDelegate.swift in Sources */, - 08E8F9751F34E3D5008CF4A1 /* SearchQueriesViewController.swift in Sources */, - 088EDCA71F9496DE0098DEC7 /* CourseListHorizontalViewController.swift in Sources */, - 080CE1561E95635A0089A27F /* ProgressesAPI.swift in Sources */, - 084F7AA81E76EF690088368A /* LastStep.swift in Sources */, - 0860D9161F10EA690087D61B /* InputAccessoryBuilder.swift in Sources */, - 08DB8CBA1D0BECF000A6D079 /* DiscussionTableViewCell.swift in Sources */, - 08D1209C1C937B2200A54ABC /* ControllerHelper.swift in Sources */, - 087296DD20168FF2009F9256 /* TooltipDefaultsManager.swift in Sources */, - 085C4FF71D8C835600B27C95 /* StepsControllerDeepLinkRouter.swift in Sources */, - 08E6BB691DC8DF59006622EC /* UserActivitiesAPI.swift in Sources */, - 08CB0D4E1FB63F83001A1E02 /* ContentLanguagesView.swift in Sources */, - 0846B1041EDDED1000D64D77 /* StepOptions.swift in Sources */, - 08D1209D1C937B2200A54ABC /* Progress+CoreDataProperties.swift in Sources */, - 080EBA341EA64BC000C43C93 /* PresentationContainer.swift in Sources */, - 08CBA34C1F57734900302154 /* ProfileViewController.swift in Sources */, - 08D1209E1C937B2200A54ABC /* ButtonExtension.swift in Sources */, - 08D120A01C937B2200A54ABC /* TeachersTableViewCell.swift in Sources */, - 082BE3B31E67686B006BC60F /* RoutingManager.swift in Sources */, - 080CE15C1E95804C0089A27F /* SearchResultsAPI.swift in Sources */, - 08AF59F11E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDataSource.swift in Sources */, - 0888D10A1F1E42A000A16863 /* CodeElementsSize.swift in Sources */, - 08D120A21C937B2200A54ABC /* SortingQuizTableViewCell.swift in Sources */, - 085290C71FB5C4550053F22D /* ExplorePresenter.swift in Sources */, - 08AF59E71E6D9BE800423EFF /* RGTabBarItem.swift in Sources */, - 088AADAA1D175DA00034D86D /* HTMLContentView.swift in Sources */, - 08D120A31C937B2200A54ABC /* UIViewExtensions.swift in Sources */, - 08D035261D65B5E5003515C6 /* AnalyticsReporter.swift in Sources */, - 08D120A41C937B2200A54ABC /* Section+CoreDataProperties.swift in Sources */, - 08D120A51C937B2200A54ABC /* VideoStepViewController.swift in Sources */, - 080CE14D1E9562BF0089A27F /* UsersAPI.swift in Sources */, - 08D120A61C937B2200A54ABC /* NSDateExtensions.swift in Sources */, - 08F476231E82C1480018E82C /* StreaksView.swift in Sources */, - 0868C17F1F375A1200D77C5F /* SearchQueriesPersistentManager.swift in Sources */, - 0899842D1ECDE194005C0B27 /* LessonPresenter.swift in Sources */, - 087585B81FB51D840047A269 /* CourseList+CoreDataProperties.swift in Sources */, - 0899842A1ECDE188005C0B27 /* LessonViewController.swift in Sources */, - 08AF59E91E6D9BE800423EFF /* RGTabView.swift in Sources */, - 2CD846401F25F7F300E8153C /* Profile.swift in Sources */, - 08F4CB291CF5C58C00B15B3D /* WebViewHorizontalScrollHelper.swift in Sources */, - 08D120A71C937B2200A54ABC /* WebControllerManager.swift in Sources */, - 0860D9131F10C5480087D61B /* CodeSnippetSymbols.swift in Sources */, - 0864949D1E8C79490083E0BE /* SbControllerHelperLaunchExtension.swift in Sources */, - 089F58861D22BD3C000CD540 /* DiscussionCountView.swift in Sources */, - 08D120A91C937B2200A54ABC /* TabsInfo.swift in Sources */, - 08CBA3281F57563C00302154 /* TransitionMenuBlockTableViewCell.swift in Sources */, - 080C5E7C1EFC13ED0036EB3D /* CodeSample.swift in Sources */, - 085DF8DC1C9AB94C006809D9 /* TimeFormatHelper.swift in Sources */, - 0837492B1DE5AF8A00144C14 /* StreaksAlertManager.swift in Sources */, - 080CE1501E9562F30089A27F /* StepsAPI.swift in Sources */, - 08D120AB1C937B2200A54ABC /* SectionTableViewCell.swift in Sources */, - 0800B81C1D06DC1B006C987E /* Comment.swift in Sources */, - 08901E641CD0EDB300D94613 /* RemoteVersionManager.swift in Sources */, - 08D120AC1C937B2200A54ABC /* NumberReply.swift in Sources */, - 08D120AD1C937B2200A54ABC /* Unit+CoreDataProperties.swift in Sources */, - 08D120AE1C937B2200A54ABC /* Unit.swift in Sources */, - 0802177B1F54E91300186245 /* MenuBlocks.swift in Sources */, - 2C9E3F411F7A976D00DDF1AA /* NotificationsAPI.swift in Sources */, - 08D120AF1C937B2200A54ABC /* VideoDownload.swift in Sources */, - 0844900A1F5D67E300D01940 /* SettingsViewController.swift in Sources */, - 080C5E811EFC28CF0036EB3D /* CodeSample+CoreDataProperties.swift in Sources */, - 083749271DE5AE0400144C14 /* Alerts.swift in Sources */, - 08AC21491CDD558500FBB9CD /* PersistentUserTokenRecoveryManager.swift in Sources */, - 08D120B01C937B2200A54ABC /* StringQuizViewController.swift in Sources */, - 08D120B11C937B2200A54ABC /* FreeAnswerReply.swift in Sources */, - 0859AE9A1E4F1B8F00A0D206 /* FillBlanksChoiceTableViewCell.swift in Sources */, - 08D120B21C937B2200A54ABC /* QuizViewController.swift in Sources */, - 08AB82391D74C44100FDEADE /* Session.swift in Sources */, - 08C194411ED0A05D00A41B72 /* PagerController.swift in Sources */, - 08D120B31C937B2200A54ABC /* FreeAnswerQuizViewController.swift in Sources */, - 086442B51F764F67000CC53D /* AuthNavigationViewController.swift in Sources */, - 08EA89C2200E686800BCAF44 /* NotificationsBadgesManager.swift in Sources */, - 08E3B9681EEA16DC0072995B /* CodeReply.swift in Sources */, - 08F261221E79DD0C00AC908B /* APIEndpoint.swift in Sources */, - 08CBA2F91F573F6900302154 /* MenuViewController.swift in Sources */, - 08D120B41C937B2200A54ABC /* SortingQuizViewController.swift in Sources */, - 0890560B1E97CD7900B8FE6A /* DefaultsContainer.swift in Sources */, - 08AF59F91E6D9BE800423EFF /* UINavigationBar.swift in Sources */, - 08D120B51C937B2200A54ABC /* Parser.swift in Sources */, - 08D120B61C937B2200A54ABC /* DownloadTableViewCell.swift in Sources */, - 0800B8261D0704B6006C987E /* ApiUtil.swift in Sources */, - 08D120B71C937B2200A54ABC /* CacheManager.swift in Sources */, - 0834C46D1E2CE66B002F8516 /* MatchingReply.swift in Sources */, - 08D120B81C937B2200A54ABC /* Time.swift in Sources */, - 08A9F70E1FC3837800640F1F /* CourseTagCollectionViewCell.swift in Sources */, - 0829B8331E9C4CB5009B4A84 /* RateAppManager.swift in Sources */, - 08D120B91C937B2200A54ABC /* Assignment+CoreDataProperties.swift in Sources */, - 08D120BA1C937B2200A54ABC /* RefreshTableViewCell.swift in Sources */, - 08D120BB1C937B2200A54ABC /* Messages.swift in Sources */, - 08D120BC1C937B2200A54ABC /* WarningView.swift in Sources */, - 08D120BD1C937B2200A54ABC /* CoreDataHelper.swift in Sources */, - 08FEFC221F127470005CA0FB /* AutocompleteWords.swift in Sources */, - 083F2B181E9D8F1D00714173 /* CertificatesView.swift in Sources */, - 08CBA3681F5B2B8800302154 /* ProfileStreaksView.swift in Sources */, - 08D120BE1C937B2200A54ABC /* UnitsViewController.swift in Sources */, - 08D120C01C937B2200A54ABC /* Reply.swift in Sources */, - 08D120C11C937B2200A54ABC /* AudioManager.swift in Sources */, - 080AA2331EA024290079272F /* CoursesAPIPaginatedMock.swift in Sources */, - 08D120C41C937B2200A54ABC /* VideosInfo.swift in Sources */, - 084490011F5CE15200D01940 /* SettingsPresenter.swift in Sources */, - 08758A9C1CDB99C700159233 /* APIDefaults.swift in Sources */, - 086FC6A11FE046C200C7DFF4 /* NotificationStatusesAPI.swift in Sources */, - 0837492E1DE5B07900144C14 /* AlertManager.swift in Sources */, - 08D120C61C937B2200A54ABC /* Course+CoreDataProperties.swift in Sources */, - 08AF59EF1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift in Sources */, - 08AF59ED1E6D9BE800423EFF /* RGPageViewController+UICollectionViewDelegate.swift in Sources */, - 08EB85F11D101D7800E4F345 /* WriteCommentViewController.swift in Sources */, - 08FF75311DF9B89000D656C4 /* StreaksStepikAlertManager.swift in Sources */, - 0884696D1E7C2E01009131E9 /* LastStepGlobalContext.swift in Sources */, - 08D120C71C937B2200A54ABC /* QuizControllerDelegate.swift in Sources */, - 08D120C81C937B2200A54ABC /* VideoURL.swift in Sources */, - 08D120C91C937B2200A54ABC /* ChoiceReply.swift in Sources */, - 08AF59FB1E6D9BE800423EFF /* RGPageViewControllerDataSource.swift in Sources */, - 0846B1111EDDEE8E00D64D77 /* CodeLimit+CoreDataProperties.swift in Sources */, - 0888D1031F1E41FF00A16863 /* CodeInputAccessoryCollectionViewCell.swift in Sources */, - 08D120CA1C937B2200A54ABC /* VideoQualityTableViewController.swift in Sources */, - 08D120CB1C937B2200A54ABC /* MathReply.swift in Sources */, - 084F7AAE1E775A210088368A /* LastStepsAPI.swift in Sources */, - 0846B11A1EDDF64F00D64D77 /* CodeTemplate+CoreDataProperties.swift in Sources */, - 0846B1161EDDF63200D64D77 /* CodeTemplate.swift in Sources */, - 08CB0D321FB5F9FC001A1E02 /* ExploreViewController.swift in Sources */, - 089504841F27C5C600EEC939 /* FullHeightTableView.swift in Sources */, - 08D120CD1C937B2200A54ABC /* StepicVideoPlayerViewController.swift in Sources */, - 0829B83B1E9D05AE009B4A84 /* Certificate.swift in Sources */, - 08D120CE1C937B2200A54ABC /* StringDatasetExtension.swift in Sources */, - 086FC6A91FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */, - 08D120CF1C937B2200A54ABC /* User.swift in Sources */, - 083749351DE5BC2B00144C14 /* NotificationPreferencesContainer.swift in Sources */, - 08D120D01C937B2200A54ABC /* WKWebViewPanelManager.m in Sources */, - 08D120D31C937B2200A54ABC /* ApiDataDownloader.swift in Sources */, - 08D5F5811F7DBA70007C1634 /* CourseReviewSummariesAPI.swift in Sources */, - 081959E11FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */, - 0860D91A1F115D830087D61B /* CodeSuggestionsTableViewController.swift in Sources */, - 080CE1591E9566220089A27F /* ViewsAPI.swift in Sources */, - 0806B2C31EBDBB0200FDE0F7 /* PostViewsExecutableTask.swift in Sources */, - 0829B83D1E9D05AE009B4A84 /* Certificate+CoreDataProperties.swift in Sources */, - 088EDCB21F949B0F0098DEC7 /* CourseWidgetCollectionViewCell.swift in Sources */, - 080CE15F1E9580CD0089A27F /* AttemptsAPI.swift in Sources */, - 088E73EB206014B000D458E3 /* AdaptiveRatingsAPI.swift in Sources */, - 086A8B261D21434B00F45C45 /* Vote.swift in Sources */, - 08D120D41C937B2200A54ABC /* GeneralInfoTableViewCell.swift in Sources */, - 08D120D51C937B2200A54ABC /* NumberQuizViewController.swift in Sources */, - 08D120D61C937B2200A54ABC /* GCDThings.swift in Sources */, - 08D120D81C937B2200A54ABC /* Block.swift in Sources */, - 086D5B4020127A25000F7715 /* Tooltip.swift in Sources */, - 084472071D05918E00197166 /* ChoiceQuizTableViewCell.swift in Sources */, - 08BC470A1CD9FE10009A1D25 /* PersistentTaskManagerProtocol.swift in Sources */, - 083056D21DBFB4BE00F1F2A4 /* DiscussionWebTableViewCell.swift in Sources */, - 08ECC4491DB8D56E0005D401 /* StyledTabBarViewController.swift in Sources */, - 083267AA1CDCF59B002F7B5A /* DictionarySerializable.swift in Sources */, - 86B457041E9F98BC00D31850 /* RecommendationsAPI.swift in Sources */, - 08D120DB1C937B2200A54ABC /* JSQWebViewController.swift in Sources */, - 08D120DC1C937B2200A54ABC /* Alamofire-SwiftyJSON.swift in Sources */, - 089700971F6B2A830041C24E /* NibInitializableView.swift in Sources */, - 084070881D64DC7500308FC1 /* CyrillicURLActivityItemSource.swift in Sources */, - 083F2B1B1E9D920500714173 /* CertificatesPresenter.swift in Sources */, - 08D120DD1C937B2200A54ABC /* TCBlobDownload.swift in Sources */, - 08D120DE1C937B2200A54ABC /* User+CoreDataProperties.swift in Sources */, - 083F2B2E1E9ECD2400714173 /* CertificatesAPIPaginatedMock.swift in Sources */, - 08DF78C81F60118E00AEEA85 /* AvatarImageView.swift in Sources */, - 083622D91CD1FA4800CD8915 /* StepTabView.swift in Sources */, - 0846B1081EDDED4400D64D77 /* StepOptions+CoreDataProperties.swift in Sources */, - 08EA89D0200E69C800BCAF44 /* SQLQuizViewController.swift in Sources */, - 08E8F96D1F34DD48008CF4A1 /* SearchQueriesView.swift in Sources */, - 086442C41F764FEE000CC53D /* EmailAuthPresenter.swift in Sources */, - 0885B8D31FB64452005A7B2E /* ContentLanguageCollectionViewCell.swift in Sources */, - 081959EB1FA007D800E6D6CD /* HomeScreenViewController.swift in Sources */, - 08D120DF1C937B2200A54ABC /* EmptyDatasetState.swift in Sources */, - 0864949F1E8C79690083E0BE /* SbEntranceViewController.swift in Sources */, - 083540681CE5FC0E00BDFEA5 /* Notification.swift in Sources */, - 087039311CD7413D00B6571B /* NotificationAlertConstructor.swift in Sources */, - 08EDD62B1F7C6785005203E4 /* StepikButton.swift in Sources */, - 08C1FC341F41E74500E14B46 /* QuizPresenter.swift in Sources */, - 08D120E01C937B2200A54ABC /* CoursePreviewViewController.swift in Sources */, - 08D120E11C937B2200A54ABC /* SortingReply.swift in Sources */, - 0861E67C1CD9483500B45652 /* ExecutionQueues.swift in Sources */, - 08D120E21C937B2200A54ABC /* Block+CoreDataProperties.swift in Sources */, - 08964BCE1F3072BA00DBBCCE /* QueriesAPI.swift in Sources */, - 080E80F61F0070C900DC0EA5 /* CodeLanguages.swift in Sources */, - 08D120E31C937B2200A54ABC /* Video.swift in Sources */, - 080C5E681EFC07C10036EB3D /* CodeQuizViewController.swift in Sources */, - 08D120E41C937B2200A54ABC /* UIThreadHelper.swift in Sources */, - 08D120E51C937B2200A54ABC /* DownloadsViewController.swift in Sources */, - 08A9F7041FC37DD000640F1F /* CourseTagsView.swift in Sources */, - 08CBA33A1F57565700302154 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */, - 08D120E61C937B2200A54ABC /* Step.swift in Sources */, - 08D120E71C937B2200A54ABC /* Submission.swift in Sources */, - 08AB82361D74926F00FDEADE /* StepicsAPI.swift in Sources */, - 08D120E81C937B2200A54ABC /* AuthInfo.swift in Sources */, - 08D120E91C937B2200A54ABC /* VideoDownloadDelegate.swift in Sources */, - 083749311DE5BBF700144C14 /* PreferencesContainer.swift in Sources */, - 08D120EA1C937B2200A54ABC /* TextReply.swift in Sources */, - 082FD64D1D6C849C007F3E07 /* ReplaceLastSegue.swift in Sources */, - 08D120EB1C937B2200A54ABC /* JSONSerializable.swift in Sources */, - 08D120EC1C937B2200A54ABC /* UIImageViewExtension.swift in Sources */, - 0864949E1E8C79530083E0BE /* SbAppDelegate.swift in Sources */, - 08D120ED1C937B2200A54ABC /* Lesson+CoreDataProperties.swift in Sources */, - 083749381DE5C7DC00144C14 /* LocalNotificationManager.swift in Sources */, - 08EDB8C61F7C4BDB0028A9AE /* CourseStatCollectionViewCell.swift in Sources */, - 089056121E98021000B8FE6A /* RateAppViewController.swift in Sources */, - 080CE1621E9581960089A27F /* SubmissionsAPI.swift in Sources */, - 088EDB5A1F8F5A48009B736E /* CourseListViewController.swift in Sources */, - 2C5F77BF1F90EE3F00E8E175 /* TapProxyView.swift in Sources */, - 08B845DD1D36998E00267FF4 /* AlamofireExtensions.swift in Sources */, - 080C5E851EFD252D0036EB3D /* CodeQuizToolbarDelegate.swift in Sources */, - 08D120EE1C937B2200A54ABC /* VideoDownloadView.swift in Sources */, - 0846B10D1EDDEE7F00D64D77 /* CodeLimit.swift in Sources */, - 08D120EF1C937B2200A54ABC /* TCBlobDownloadManager.swift in Sources */, - 089C88DF1FCF494300003B63 /* CourseListType.swift in Sources */, - 08D120F01C937B2200A54ABC /* UIColorExtensions.swift in Sources */, - 081566261F69C3AD0082B359 /* CustomSearchBar.swift in Sources */, - 082799491E9B81AF008A3786 /* RateAppAlertManager.swift in Sources */, - 08C7CB7E1FA7ACC1001D8241 /* CourseListEmptyPlaceholder.swift in Sources */, - 088E58C51DE34ED20009B9CE /* VKSocialSDKProvider.swift in Sources */, - 08DF78BD1F5EEFFE00AEEA85 /* MenuBlockTableViewCell.swift in Sources */, - 0859AEA91E4F26C700A0D206 /* FillBlanksTextTableViewCell.swift in Sources */, - 08D120F11C937B2200A54ABC /* Meta.swift in Sources */, - 08D120F31C937B2200A54ABC /* StepicToken.swift in Sources */, - 08C1BF321FBA0CA1008F342F /* SearchResultsViewController.swift in Sources */, - 080217841F55B1B200186245 /* Menu.swift in Sources */, - 08D120F51C937B2200A54ABC /* SectionsViewController.swift in Sources */, - 088FD8181FB242B3008A2953 /* CourseSubscriber.swift in Sources */, - 088EDB511F8E8A5D009B736E /* CourseListVerticalViewController.swift in Sources */, - 085EDCBF1F9945DD00AB3278 /* Notification+CoreDataProperties.swift in Sources */, - 085E9E6D1F138C2800D6A4BC /* CodeLanguagePickerViewController.swift in Sources */, - 089C88D61FCCDF3900003B63 /* UserActivityHomeView.swift in Sources */, - 082BE3AF1E676373006BC60F /* AuthRoutingManager.swift in Sources */, - 08DF78D31F64059900AEEA85 /* StepikLabel.swift in Sources */, - 08E8F97B1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift in Sources */, - 08D120F61C937B2200A54ABC /* Sorter.swift in Sources */, - 082CB1B71D08971900C79A27 /* DiscussionsViewController.swift in Sources */, - 0805FE451F0D390B001226B4 /* CodePlaygroundManager.swift in Sources */, - 08D120F81C937B2200A54ABC /* ChoiceDataset.swift in Sources */, - 08263D711DE5F230002E5B7F /* NotificationTimePickerViewController.swift in Sources */, - 08C1BF291FB9ED01008F342F /* SearchResultsPresenter.swift in Sources */, - 08D120F91C937B2200A54ABC /* TeacherCollectionViewCell.swift in Sources */, - 084C658E1FDAD04C006A3E17 /* RemoteConfig.swift in Sources */, - 08AF59F31E6D9BE800423EFF /* RGPageViewController+UIPageViewControllerDelegate.swift in Sources */, - 085DF8D91C99C49E006809D9 /* VideoRate.swift in Sources */, - 08AC214C1CE0DE9B00FBB9CD /* DeviceDefaults.swift in Sources */, - 08CBA3021F57459800302154 /* MenuUIManager.swift in Sources */, - 08E6BB6C1DC8EB45006622EC /* UserActivity.swift in Sources */, - 080CE1471E9560EB0089A27F /* SectionsAPI.swift in Sources */, - 083267A71CDCE64F002F7B5A /* PersistentTaskRecoveryManager.swift in Sources */, - 08ECC4481DB8D3D60005D401 /* StyledNavigationViewController.swift in Sources */, - 08AC21461CDD493A00FBB9CD /* PersistentRecoveryManager.swift in Sources */, - 086D5B53201283C2000F7715 /* TooltipFactory.swift in Sources */, - 085C4FF41D89C86F00B27C95 /* UnitsAPI.swift in Sources */, - 08CB0D291FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */, - 080CE1441E955D300089A27F /* CoursesAPI.swift in Sources */, - 08901E6E1CD102DF00D94613 /* UpdatePreferencesContainer.swift in Sources */, - 08D120FB1C937B2200A54ABC /* UnitTableViewCell.swift in Sources */, - 086B7F081D194D4B00055B4E /* NSAttributedStringExtensions.swift in Sources */, - 08DF788E1F5D6A7600AEEA85 /* HeaderMenuBlockTableViewCell.swift in Sources */, - 085DF8D61C99B9FB006809D9 /* Player.swift in Sources */, - 08D120FC1C937B2200A54ABC /* Reachability.m in Sources */, - 086442BD1F764F91000CC53D /* EmailAuthViewController.swift in Sources */, - 08D120FE1C937B2200A54ABC /* TitleTextTableViewCell.swift in Sources */, - 082E5E0F1F46379100F41426 /* ReplyCache.swift in Sources */, - 08D035221D65A252003515C6 /* AnalyticsEvents.swift in Sources */, - 083F2B1E1E9D9ABB00714173 /* CertificateViewData.swift in Sources */, - 085514EC1CFB09760080CB88 /* CellWebViewHelper.swift in Sources */, - 084070811D64847400308FC1 /* SharingHelper.swift in Sources */, - 084DB9DF1FA2A1B00074B11E /* ContinueLearningWidgetView.swift in Sources */, - 08CBA3161F57562A00302154 /* SwitchMenuBlockTableViewCell.swift in Sources */, - 08A9F71F1FC38C9E00640F1F /* CourseTag.swift in Sources */, - 08B65AE51CFCA72800C3A770 /* ImageTapHelper.swift in Sources */, - 0888D0FE1F1E3CFC00A16863 /* CodeInputAccessoryView.swift in Sources */, - 083F2B151E9D8EF800714173 /* CertificatesViewController.swift in Sources */, - 08FEFC1D1F117257005CA0FB /* CodeSuggestionTableViewCell.swift in Sources */, - 08D120FF1C937B2200A54ABC /* ErrorEnums.swift in Sources */, - 08D121001C937B2200A54ABC /* UICustomizer.swift in Sources */, - 080EBA381EA64C0C00C43C93 /* CertificatesPresentationContainer.swift in Sources */, - 08EB85E71D0F446A00E4F345 /* DiscussionUpdateDelegate.swift in Sources */, - 08D121011C937B2200A54ABC /* Constants.swift in Sources */, - 0858B70A1CFF271200459A6A /* TagDetectionUtil.swift in Sources */, + 62E98ABEDEB0D955D6F3A951 /* UserAgentTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12127,7 +11914,6 @@ 08E8F97A1F34E64E008CF4A1 /* SearchSuggestionTableViewCell.swift in Sources */, 0828FF861BC81EEC000AFEA7 /* UnitsViewController.swift in Sources */, 2CC351971F683140004255B6 /* EmailAuthViewController.swift in Sources */, - 0869530F1D747DC0003857A2 /* RequestChain.swift in Sources */, 082A88FE2046F0460079F038 /* NotificationPermissionManager.swift in Sources */, 081959E01FA0032E00E6D6CD /* HomeScreenPresenter.swift in Sources */, 08D9E98C206C243D002F41D3 /* DatabaseFetchService.swift in Sources */, @@ -12351,6 +12137,9 @@ 08AC214B1CE0DE9B00FBB9CD /* DeviceDefaults.swift in Sources */, 08964BCD1F3072BA00DBBCCE /* QueriesAPI.swift in Sources */, 084C658D1FDAD04C006A3E17 /* RemoteConfig.swift in Sources */, + 62E987459D5C971C022BE7A5 /* StepikURLSessionConfiguration.swift in Sources */, + 62E98DD20F2FC4D7DA37DF9A /* AlamofireDefaultSessionManager.swift in Sources */, + 62E9831EA7A75D89A3C9EC5B /* CourseListViewData.swift in Sources */, 62E98F431204AD9A46EBBC18 /* CodeEditorSettingsViewController.swift in Sources */, 62E98975B396C752B07036D8 /* CodeEditorSettingsPresenter.swift in Sources */, 62E98C1377148A52D15AAEBF /* CodeEditorPreferencesContainer.swift in Sources */, @@ -12990,7 +12779,6 @@ 2C1B62061F4C4AEF00236804 /* SocialSDKProvider.swift in Sources */, 2C1B62071F4C4AEF00236804 /* VKSocialSDKProvider.swift in Sources */, 2C1B62081F4C4AEF00236804 /* FBSocialSDKProvider.swift in Sources */, - 2C1B62091F4C4AEF00236804 /* RequestChain.swift in Sources */, 2C1B620A1F4C4AEF00236804 /* ApiRequest.swift in Sources */, 2C1B620B1F4C4AEF00236804 /* AuthAPI.swift in Sources */, 08CB0D2E1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */, @@ -13079,6 +12867,8 @@ 2C1B62491F4C4AEF00236804 /* StringHelper.swift in Sources */, 2C1B624A1F4C4AEF00236804 /* EmptyDatasetState.swift in Sources */, 2C1B624B1F4C4AEF00236804 /* AdaptiveAppDelegate.swift in Sources */, + 62E98873E98E4598D8F1ACB0 /* StepikURLSessionConfiguration.swift in Sources */, + 62E98580ED2041F1BA80D3FB /* AlamofireDefaultSessionManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -13470,7 +13260,6 @@ 2C1B64171F4C590700236804 /* SocialSDKProvider.swift in Sources */, 2C1B64181F4C590700236804 /* VKSocialSDKProvider.swift in Sources */, 2C1B64191F4C590700236804 /* FBSocialSDKProvider.swift in Sources */, - 2C1B641A1F4C590700236804 /* RequestChain.swift in Sources */, 2C1B641B1F4C590700236804 /* ApiRequest.swift in Sources */, 2C1B641C1F4C590700236804 /* AuthAPI.swift in Sources */, 08CB0D2F1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */, @@ -13559,6 +13348,8 @@ 2C1B645A1F4C590700236804 /* StringHelper.swift in Sources */, 2C1B645B1F4C590700236804 /* EmptyDatasetState.swift in Sources */, 2C1B645C1F4C590700236804 /* AdaptiveAppDelegate.swift in Sources */, + 62E98BDDD7DAB7AF32414179 /* StepikURLSessionConfiguration.swift in Sources */, + 62E98400F19C6E781027F2A7 /* AlamofireDefaultSessionManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -13959,7 +13750,6 @@ 2C4919092062A1CB003E733D /* StepikTableView.swift in Sources */, 2C6A76422045CEB900C509A6 /* NotificationsSection.swift in Sources */, 2C89AA9C1F4C289900227C3B /* FBSocialSDKProvider.swift in Sources */, - 2C89AA9D1F4C289900227C3B /* RequestChain.swift in Sources */, 2C89AA9E1F4C289900227C3B /* ApiRequest.swift in Sources */, 2C89AA9F1F4C289900227C3B /* AuthAPI.swift in Sources */, 2C89AAA01F4C289900227C3B /* QueriesAPI.swift in Sources */, @@ -14038,6 +13828,9 @@ 2C89AADE1F4C289900227C3B /* EmptyDatasetState.swift in Sources */, 086FC6AC1FE04DBD00C7DFF4 /* RangeExtension.swift in Sources */, 2C89AADF1F4C289900227C3B /* AdaptiveAppDelegate.swift in Sources */, + 62E9879A89A2EFFA5CCAED86 /* StepikURLSessionConfiguration.swift in Sources */, + 62E98C975482E46A95E173AB /* AlamofireDefaultSessionManager.swift in Sources */, + 62E98E72A85E731394868512 /* CourseListViewData.swift in Sources */, 62E9862FC6DD9EC1AC1647DA /* CodeEditorSettingsViewController.swift in Sources */, 62E9805746CCF14D91FF516D /* CodeEditorSettingsPresenter.swift in Sources */, 62E98438E8DCED37E1AC2A8D /* CodeEditorPreferencesContainer.swift in Sources */, @@ -14431,7 +14224,6 @@ 2C97324E1F4C38F600AC9301 /* SocialSDKProvider.swift in Sources */, 2C97324F1F4C38F600AC9301 /* VKSocialSDKProvider.swift in Sources */, 2C9732501F4C38F600AC9301 /* FBSocialSDKProvider.swift in Sources */, - 2C9732511F4C38F600AC9301 /* RequestChain.swift in Sources */, 2C9732521F4C38F600AC9301 /* ApiRequest.swift in Sources */, 2C9732531F4C38F600AC9301 /* AuthAPI.swift in Sources */, 08CB0D2D1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */, @@ -14521,12 +14313,507 @@ 2C9732911F4C38F600AC9301 /* StringHelper.swift in Sources */, 2C9732921F4C38F600AC9301 /* EmptyDatasetState.swift in Sources */, 2C9732931F4C38F600AC9301 /* AdaptiveAppDelegate.swift in Sources */, + 62E98967D33DB824B8BF27E0 /* StepikURLSessionConfiguration.swift in Sources */, + 62E98FFF555F4E6C888EB561 /* AlamofireDefaultSessionManager.swift in Sources */, + 62E986E416361591CE91DE3B /* CourseListViewData.swift in Sources */, 62E984A30B7A381A8D25E7D1 /* CodeEditorSettingsViewController.swift in Sources */, 62E9846CA267356298D01D67 /* CodeEditorSettingsPresenter.swift in Sources */, 62E98D1D5AE08AC53898A59B /* CodeEditorPreferencesContainer.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + 2CA8D13B2088D9C000E105E9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2CA8D3A62088F7CA00E105E9 /* ApiRequestRetrier.swift in Sources */, + 2CA8D3A72088F7CA00E105E9 /* UpdateRequestMaker.swift in Sources */, + 2CA8D3A82088F7CA00E105E9 /* DeleteRequestMaker.swift in Sources */, + 2CA8D3A92088F7CA00E105E9 /* CreateRequestMaker.swift in Sources */, + 2CA8D3AA2088F7CA00E105E9 /* RetrieveRequestMaker.swift in Sources */, + 2CA8D3AB2088F7CA00E105E9 /* StepikModelView.swift in Sources */, + 2CA8D3AC2088F7CA00E105E9 /* DatabaseFetchService.swift in Sources */, + 2CA8D3AD2088F7CA00E105E9 /* IDFetchable.swift in Sources */, + 2CA8D13C2088D9C000E105E9 /* UserActivityHomeView.swift in Sources */, + 2CA8D13D2088D9C000E105E9 /* CodeLanguagePickerViewController.swift in Sources */, + 2CA8D13E2088D9C000E105E9 /* LessonViewController.swift in Sources */, + 2CA8D13F2088D9C000E105E9 /* Notification+CoreDataProperties.swift in Sources */, + 2CA8D1402088D9C000E105E9 /* LessonPresenter.swift in Sources */, + 2CA8D1412088D9C000E105E9 /* LessonView.swift in Sources */, + 2CA8D1422088D9C000E105E9 /* PagerController.swift in Sources */, + 2CA8D1432088D9C000E105E9 /* ShareableController.swift in Sources */, + 2CA8D1442088D9C000E105E9 /* StepReversedCardView.swift in Sources */, + 2CA8D1452088D9C000E105E9 /* PostViewsExecutableTask.swift in Sources */, + 2CA8D1462088D9C000E105E9 /* Tokens.swift in Sources */, + 2CA8D1472088D9C000E105E9 /* LoadingPaginationView.swift in Sources */, + 2CA8D1482088D9C000E105E9 /* CertificatesAPIPaginatedMock.swift in Sources */, + 2CA8D1492088D9C000E105E9 /* CertificatesViewTestMock.swift in Sources */, + 2CA8D14A2088D9C000E105E9 /* CoursesAPIPaginatedMock.swift in Sources */, + 2CA8D14B2088D9C000E105E9 /* CertificatesViewController.swift in Sources */, + 2CA8D14C2088D9C000E105E9 /* ContinueLearningWidgetView.swift in Sources */, + 2CA8D14D2088D9C000E105E9 /* CertificatesView.swift in Sources */, + 2CA8D14E2088D9C000E105E9 /* CertificatesPresenter.swift in Sources */, + 2CA8D14F2088D9C000E105E9 /* CertificateViewData.swift in Sources */, + 2CA8D1502088D9C000E105E9 /* CertificateTableViewCell.swift in Sources */, + 2CA8D1512088D9C000E105E9 /* CodeInputAccessoryView.swift in Sources */, + 2CA8D1522088D9C000E105E9 /* PresentationContainer.swift in Sources */, + 2CA8D1532088D9C000E105E9 /* CodeQuizViewController.swift in Sources */, + 2CA8D1542088D9C000E105E9 /* AchievementsHelper.swift in Sources */, + 2CA8D1552088D9C000E105E9 /* CertificatesPresentationContainer.swift in Sources */, + 2CA8D1562088D9C000E105E9 /* Certificate.swift in Sources */, + 2CA8D1572088D9C000E105E9 /* AnalyticsEvents+Adaptive.swift in Sources */, + 2CA8D1582088D9C000E105E9 /* Certificate+CoreDataProperties.swift in Sources */, + 2CA8D1592088D9C000E105E9 /* CertificatesAPI.swift in Sources */, + 2CA8D15A2088D9C000E105E9 /* MenuBlockTableViewCell.swift in Sources */, + 2CA8D15B2088D9C000E105E9 /* RatingProgressView.swift in Sources */, + 2CA8D15C2088D9C000E105E9 /* AdaptiveStatsSection.swift in Sources */, + 2CA8D15D2088D9C000E105E9 /* StreaksView.swift in Sources */, + 2CA8D15E2088D9C000E105E9 /* RateAppViewController.swift in Sources */, + 2CA8D15F2088D9C000E105E9 /* StepikLabel.swift in Sources */, + 2CA8D1602088D9C000E105E9 /* CardStepViewController.swift in Sources */, + 2CA8D1612088D9C000E105E9 /* CustomSearchBar.swift in Sources */, + 2CA8D1622088D9C000E105E9 /* LaunchDefaultsContainer.swift in Sources */, + 2CA8D1632088D9C000E105E9 /* CourseListEmptyPlaceholder.swift in Sources */, + 2CA8D1642088D9C000E105E9 /* DefaultsContainer.swift in Sources */, + 2CA8D1652088D9C000E105E9 /* CoursesAPI.swift in Sources */, + 2CA8D1662088D9C000E105E9 /* SectionsAPI.swift in Sources */, + 2CA8D1672088D9C000E105E9 /* LessonsAPI.swift in Sources */, + 2CA8D1682088D9C000E105E9 /* UsersAPI.swift in Sources */, + 2CA8D1692088D9C000E105E9 /* StepsAPI.swift in Sources */, + 2CA8D16A2088D9C000E105E9 /* AssignmentsAPI.swift in Sources */, + 2CA8D16B2088D9C000E105E9 /* ProgressesAPI.swift in Sources */, + 2CA8D16C2088D9C000E105E9 /* ViewsAPI.swift in Sources */, + 2CA8D16D2088D9C000E105E9 /* SearchResultsAPI.swift in Sources */, + 2CA8D16E2088D9C000E105E9 /* AttemptsAPI.swift in Sources */, + 2CA8D16F2088D9C000E105E9 /* SubmissionsAPI.swift in Sources */, + 2CA8D1702088D9C000E105E9 /* RateAppAlertManager.swift in Sources */, + 2CA8D1712088D9C000E105E9 /* Reachability.m in Sources */, + 2CA8D1722088D9C000E105E9 /* ControllerHelperLaunchExtension.swift in Sources */, + 2CA8D1732088D9C000E105E9 /* CodeSnippetSymbols.swift in Sources */, + 2CA8D1742088D9C000E105E9 /* VideoDownloadView.swift in Sources */, + 2CA8D1752088D9C000E105E9 /* CodeSample.swift in Sources */, + 2CA8D1762088D9C000E105E9 /* AdaptiveRatingManager.swift in Sources */, + 2CA8D1772088D9C000E105E9 /* ProfilePresenter.swift in Sources */, + 2CA8D1782088D9C000E105E9 /* CourseTagCollectionViewCell.swift in Sources */, + 2CA8D1792088D9C000E105E9 /* PinsMapExpandableMenuBlockTableViewCell.swift in Sources */, + 2CA8D17A2088D9C000E105E9 /* WarningView.swift in Sources */, + 2CA8D17B2088D9C000E105E9 /* UIViewLoadExtension.swift in Sources */, + 2CA8D17C2088D9C000E105E9 /* ProfileStreaksView.swift in Sources */, + 2CA8D17D2088D9C000E105E9 /* StepTabView.swift in Sources */, + 2CA8D17E2088D9C000E105E9 /* DiscussionCountView.swift in Sources */, + 2CA8D17F2088D9C000E105E9 /* ProfilesAPI.swift in Sources */, + 2CA8D1802088D9C000E105E9 /* AdaptiveRatingsAPI.swift in Sources */, + 2CA8D1812088D9C000E105E9 /* StepOptions+CoreDataProperties.swift in Sources */, + 2CA8D1822088D9C000E105E9 /* CodeElementsSize.swift in Sources */, + 2CA8D1832088D9C000E105E9 /* PickerViewController.swift in Sources */, + 2CA8D1842088D9C000E105E9 /* StepicVideoPlayerViewController.swift in Sources */, + 2CA8D1852088D9C000E105E9 /* CongratsView.swift in Sources */, + 2CA8D1862088D9C000E105E9 /* AdaptiveRatingsPresenter.swift in Sources */, + 2CA8D1872088D9C000E105E9 /* CodeEditorPreviewView.swift in Sources */, + 2CA8D1882088D9C000E105E9 /* PlayerTestViewController.swift in Sources */, + 2CA8D1892088D9C000E105E9 /* Player.swift in Sources */, + 2CA8D18A2088D9C000E105E9 /* VideoRate.swift in Sources */, + 2CA8D18B2088D9C000E105E9 /* DownloadTableViewCell.swift in Sources */, + 2CA8D18C2088D9C000E105E9 /* DiscussionWebTableViewCell.swift in Sources */, + 2CA8D18D2088D9C000E105E9 /* DiscussionTableViewCell.swift in Sources */, + 2CA8D18E2088D9C000E105E9 /* HTMLContentView.swift in Sources */, + 2CA8D18F2088D9C000E105E9 /* ContentLanguageCollectionViewCell.swift in Sources */, + 2CA8D1902088D9C000E105E9 /* HTMLStringWrapperUtil.swift in Sources */, + 2CA8D1912088D9C000E105E9 /* HTMLContentViewInteractionDelegate.swift in Sources */, + 2CA8D1922088D9C000E105E9 /* AdaptiveCourseTableViewCell.swift in Sources */, + 2CA8D1932088D9C000E105E9 /* DiscussionsViewController.swift in Sources */, + 2CA8D1942088D9C000E105E9 /* LoadMoreTableViewCell.swift in Sources */, + 2CA8D1952088D9C000E105E9 /* DiscussionUpdateDelegate.swift in Sources */, + 2CA8D1962088D9C000E105E9 /* StepCardView.swift in Sources */, + 2CA8D1972088D9C000E105E9 /* CellOperationsUtil.swift in Sources */, + 2CA8D1982088D9C000E105E9 /* DiscussionCellDelegate.swift in Sources */, + 2CA8D1992088D9C000E105E9 /* WriteCommentViewController.swift in Sources */, + 2CA8D19A2088D9C000E105E9 /* AdaptiveRemoteConfig.swift in Sources */, + 2CA8D19B2088D9C000E105E9 /* WriteCommentDelegate.swift in Sources */, + 2CA8D19C2088D9C000E105E9 /* DiscussionAlertConstructor.swift in Sources */, + 2CA8D19D2088D9C000E105E9 /* VideoStepViewController.swift in Sources */, + 2CA8D19E2088D9C000E105E9 /* WebStepViewController.swift in Sources */, + 2CA8D19F2088D9C000E105E9 /* LocalProgressLastViewedUpdater.swift in Sources */, + 2CA8D1A02088D9C000E105E9 /* AdaptiveCardsStepsViewController.swift in Sources */, + 2CA8D1A12088D9C000E105E9 /* CellWebViewHelper.swift in Sources */, + 2CA8D1A22088D9C000E105E9 /* QuizControllerDelegate.swift in Sources */, + 2CA8D1A32088D9C000E105E9 /* QuizViewController.swift in Sources */, + 2CA8D1A42088D9C000E105E9 /* UnknownTypeQuizViewController.swift in Sources */, + 2CA8D1A52088D9C000E105E9 /* ChoiceQuizViewController.swift in Sources */, + 2CA8D1A62088D9C000E105E9 /* ChoiceQuizTableViewCell.swift in Sources */, + 2CA8D1A72088D9C000E105E9 /* MenuBlocks.swift in Sources */, + 2CA8D1A82088D9C000E105E9 /* LastStep+CoreDataProperties.swift in Sources */, + 2CA8D1A92088D9C000E105E9 /* StringQuizViewController.swift in Sources */, + 2CA8D1AA2088D9C000E105E9 /* NumberQuizViewController.swift in Sources */, + 2CA8D1AB2088D9C000E105E9 /* RemoteConfig.swift in Sources */, + 2CA8D1AC2088D9C000E105E9 /* ProgressTableViewCell.swift in Sources */, + 2CA8D1AD2088D9C000E105E9 /* FreeAnswerQuizViewController.swift in Sources */, + 2CA8D1AE2088D9C000E105E9 /* MathQuizViewController.swift in Sources */, + 2CA8D1AF2088D9C000E105E9 /* CourseListViewController.swift in Sources */, + 2CA8D1B02088D9C000E105E9 /* SortingQuizViewController.swift in Sources */, + 2CA8D1B12088D9C000E105E9 /* SortingQuizTableViewCell.swift in Sources */, + 2CA8D1B22088D9C000E105E9 /* MatchingQuizViewController.swift in Sources */, + 2CA8D1B32088D9C000E105E9 /* FillBlanksTextTableViewCell.swift in Sources */, + 2CA8D1B42088D9C000E105E9 /* LastStepRouter.swift in Sources */, + 2CA8D1B52088D9C000E105E9 /* FillBlanksInputTableViewCell.swift in Sources */, + 2CA8D1B62088D9C000E105E9 /* FillBlanksQuizViewController.swift in Sources */, + 2CA8D1B72088D9C000E105E9 /* LastStepGlobalContext.swift in Sources */, + 2CA8D1B82088D9C000E105E9 /* FillBlanksChoiceTableViewCell.swift in Sources */, + 2CA8D1B92088D9C000E105E9 /* CodeLimit+CoreDataProperties.swift in Sources */, + 2CA8D1BA2088D9C000E105E9 /* FillBlanksActiveTableViewCellProtocol.swift in Sources */, + 2CA8D1BB2088D9C000E105E9 /* RGPageViewController.swift in Sources */, + 2CA8D1BC2088D9C000E105E9 /* RGTabBarItem.swift in Sources */, + 2CA8D1BD2088D9C000E105E9 /* AdaptiveStatsViewController.swift in Sources */, + 2CA8D1BE2088D9C000E105E9 /* RGTabView.swift in Sources */, + 2CA8D1BF2088D9C000E105E9 /* RGPageViewController+UICollectionViewDataSource.swift in Sources */, + 2CA8D1C02088D9C000E105E9 /* CAGradientLayer+Init.swift in Sources */, + 2CA8D1C12088D9C000E105E9 /* RGPageViewController+UICollectionViewDelegate.swift in Sources */, + 2CA8D1C22088D9C000E105E9 /* RGPageViewController+UICollectionViewDelegateFlowLayout.swift in Sources */, + 2CA8D1C32088D9C000E105E9 /* CodeTemplate+CoreDataProperties.swift in Sources */, + 2CA8D1C42088D9C000E105E9 /* StepikPlaceholderStyle+Placeholders.swift in Sources */, + 2CA8D1C52088D9C000E105E9 /* CourseListHorizontalViewController.swift in Sources */, + 2CA8D1C62088D9C000E105E9 /* CardStepDelegate.swift in Sources */, + 2CA8D1C72088D9C000E105E9 /* RGPageViewController+UIPageViewControllerDataSource.swift in Sources */, + 2CA8D1C82088D9C000E105E9 /* RGPageViewController+UIPageViewControllerDelegate.swift in Sources */, + 2CA8D1C92088D9C000E105E9 /* RGPageViewController+UIScrollViewDelegate.swift in Sources */, + 2CA8D1CA2088D9C000E105E9 /* RGPageViewController+UIToolbarDelegate.swift in Sources */, + 2CA8D1CB2088D9C000E105E9 /* UINavigationBar.swift in Sources */, + 2CA8D1CC2088D9C000E105E9 /* RGPageViewControllerDataSource.swift in Sources */, + 2CA8D1CD2088D9C000E105E9 /* CourseWidgetTableViewCell.swift in Sources */, + 2CA8D1CE2088D9C000E105E9 /* AdaptiveStatsManager.swift in Sources */, + 2CA8D1CF2088D9C000E105E9 /* MigrationExtensions.swift in Sources */, + 2CA8D1D02088D9C000E105E9 /* RGPageViewControllerDelegate.swift in Sources */, + 2CA8D1D12088D9C000E105E9 /* GeneralInfoTableViewCell.swift in Sources */, + 2CA8D1D22088D9C000E105E9 /* TeachersTableViewCell.swift in Sources */, + 2CA8D1D32088D9C000E105E9 /* TeacherCollectionViewCell.swift in Sources */, + 2CA8D1D42088D9C000E105E9 /* TitleTextTableViewCell.swift in Sources */, + 2CA8D1D52088D9C000E105E9 /* CoursePreviewViewController.swift in Sources */, + 2CA8D1D62088D9C000E105E9 /* Profile.swift in Sources */, + 2CA8D1D72088D9C000E105E9 /* VideoQualityTableViewController.swift in Sources */, + 2CA8D1D82088D9C000E105E9 /* CourseWidgetCollectionViewCell.swift in Sources */, + 2CA8D1D92088D9C000E105E9 /* RateAppManager.swift in Sources */, + 2CA8D1DA2088D9C000E105E9 /* CourseReviewSummary+CoreDataProperties.swift in Sources */, + 2CA8D1DB2088D9C000E105E9 /* FullHeightWebView.swift in Sources */, + 2CA8D1DC2088D9C000E105E9 /* NotificationTimePickerViewController.swift in Sources */, + 2CA8D1DD2088D9C000E105E9 /* RefreshTableViewCell.swift in Sources */, + 2CA8D1DE2088D9C000E105E9 /* AdaptiveStepCardView.swift in Sources */, + 2CA8D1DF2088D9C000E105E9 /* TapProxyView.swift in Sources */, + 2CA8D1E02088D9C000E105E9 /* CodeSample+CoreDataProperties.swift in Sources */, + 2CA8D1E12088D9C000E105E9 /* Achievement.swift in Sources */, + 2CA8D1E22088D9C000E105E9 /* EmailAuthViewController.swift in Sources */, + 2CA8D1E32088D9C000E105E9 /* SearchResultsViewController.swift in Sources */, + 2CA8D1E42088D9C000E105E9 /* LoadingCourseWidgetView.swift in Sources */, + 2CA8D1E52088D9C000E105E9 /* SearchQueriesViewController.swift in Sources */, + 2CA8D1E62088D9C000E105E9 /* SectionsViewController.swift in Sources */, + 2CA8D1E72088D9C000E105E9 /* SectionTableViewCell.swift in Sources */, + 2CA8D1E82088D9C000E105E9 /* UnitsViewController.swift in Sources */, + 2CA8D1E92088D9C000E105E9 /* AchievementNotificationView.swift in Sources */, + 2CA8D1EA2088D9C000E105E9 /* CardOverlayView.swift in Sources */, + 2CA8D1EB2088D9C000E105E9 /* CourseSubscriber.swift in Sources */, + 2CA8D1EC2088D9C000E105E9 /* FullscreenCodeQuizViewController.swift in Sources */, + 2CA8D1ED2088D9C000E105E9 /* UnitTableViewCell.swift in Sources */, + 2CA8D1EE2088D9C000E105E9 /* SectionNavigationDelegate.swift in Sources */, + 2CA8D1EF2088D9C000E105E9 /* SearchResultsPresenter.swift in Sources */, + 2CA8D1F02088D9C000E105E9 /* ReplaceLastSegue.swift in Sources */, + 2CA8D1F12088D9C000E105E9 /* StyledNavigationViewController.swift in Sources */, + 2CA8D1F22088D9C000E105E9 /* StepikPlaceholder.swift in Sources */, + 2CA8D1F32088D9C000E105E9 /* NotificationsMarkAsReadButton.swift in Sources */, + 2CA8D1F42088D9C000E105E9 /* TransitionMenuBlockTableViewCell.swift in Sources */, + 2CA8D1F52088D9C000E105E9 /* StyledTabBarViewController.swift in Sources */, + 2CA8D1F62088D9C000E105E9 /* CodeReply.swift in Sources */, + 2CA8D1F72088D9C000E105E9 /* TCBlobDownload.swift in Sources */, + 2CA8D1F82088D9C000E105E9 /* PinsMap.swift in Sources */, + 2CA8D1F92088D9C000E105E9 /* TCBlobDownloadManager.swift in Sources */, + 2CA8D1FA2088D9C000E105E9 /* Alamofire-SwiftyJSON.swift in Sources */, + 2CA8D1FB2088D9C000E105E9 /* JSQWebViewController.swift in Sources */, + 2CA8D1FC2088D9C000E105E9 /* CourseReviewSummariesAPI.swift in Sources */, + 2CA8D1FD2088D9C000E105E9 /* WatchSessionManager.swift in Sources */, + 2CA8D1FE2088D9C000E105E9 /* WatchSessionDataObserver.swift in Sources */, + 2CA8D1FF2088D9C000E105E9 /* WatchSessionSender.swift in Sources */, + 2CA8D2002088D9C000E105E9 /* DataConvertable.swift in Sources */, + 2CA8D2012088D9C000E105E9 /* CoursePlainEntity.swift in Sources */, + 2CA8D2022088D9C000E105E9 /* CourseMetainfoEntity.swift in Sources */, + 2CA8D2032088D9C000E105E9 /* PlaybackCommandEntity.swift in Sources */, + 2CA8D2042088D9C000E105E9 /* PlaybackStatusEntity.swift in Sources */, + 2CA8D2052088D9C000E105E9 /* HTMLBuilder.swift in Sources */, + 2CA8D2062088D9C000E105E9 /* SQLReply.swift in Sources */, + 2CA8D2072088D9C000E105E9 /* UICustomizer.swift in Sources */, + 2CA8D2082088D9C000E105E9 /* CoreDataHelper.swift in Sources */, + 2CA8D2092088D9C000E105E9 /* AuthTextField.swift in Sources */, + 2CA8D20A2088D9C000E105E9 /* ConnectionHelper.swift in Sources */, + 2CA8D20B2088D9C000E105E9 /* CardStepPresenter.swift in Sources */, + 2CA8D20C2088D9C000E105E9 /* Sorter.swift in Sources */, + 2CA8D20D2088D9C000E105E9 /* Messages.swift in Sources */, + 2CA8D20E2088D9C000E105E9 /* CardsStepsPresenter.swift in Sources */, + 2CA8D20F2088D9C000E105E9 /* UIThreadHelper.swift in Sources */, + 2CA8D2102088D9C000E105E9 /* NotificationStatusesAPI.swift in Sources */, + 2CA8D2112088D9C000E105E9 /* DeviceInfo.swift in Sources */, + 2CA8D2122088D9C000E105E9 /* MenuUIManager.swift in Sources */, + 2CA8D2132088D9C000E105E9 /* Time.swift in Sources */, + 2CA8D2142088D9C000E105E9 /* AnalyticsHelper.swift in Sources */, + 2CA8D2152088D9C000E105E9 /* ControllerHelper.swift in Sources */, + 2CA8D2162088D9C000E105E9 /* NotificationRequestAlertManager.swift in Sources */, + 2CA8D2172088D9C000E105E9 /* GCDThings.swift in Sources */, + 2CA8D2182088D9C000E105E9 /* TooltipDefaultsManager.swift in Sources */, + 2CA8D2192088D9C000E105E9 /* CourseTagsView.swift in Sources */, + 2CA8D21A2088D9C000E105E9 /* GlobalFunctions.swift in Sources */, + 2CA8D21B2088D9C000E105E9 /* AdaptiveRatingHelper.swift in Sources */, + 2CA8D21C2088D9C000E105E9 /* TimeFormatHelper.swift in Sources */, + 2CA8D21D2088D9C000E105E9 /* SettingsPresenter.swift in Sources */, + 2CA8D21E2088D9C000E105E9 /* ContentLanguagesView.swift in Sources */, + 2CA8D21F2088D9C000E105E9 /* WebViewHorizontalScrollHelper.swift in Sources */, + 2CA8D2202088D9C000E105E9 /* NibInitializableView.swift in Sources */, + 2CA8D2212088D9C000E105E9 /* CodeInputAccessoryCollectionViewCell.swift in Sources */, + 2CA8D2222088D9C000E105E9 /* AdaptiveCoursesInfoAPI.swift in Sources */, + 2CA8D2232088D9C000E105E9 /* ImageTapHelper.swift in Sources */, + 2CA8D2242088D9C000E105E9 /* NotificationsPresenter.swift in Sources */, + 2CA8D2252088D9C000E105E9 /* DeepLinkRouter.swift in Sources */, + 2CA8D2262088D9C000E105E9 /* SharingHelper.swift in Sources */, + 2CA8D2272088D9C000E105E9 /* AnalyticsEvents.swift in Sources */, + 2CA8D2282088D9C000E105E9 /* AdaptiveRatingsViewController.swift in Sources */, + 2CA8D2292088D9C000E105E9 /* AnalyticsReporter.swift in Sources */, + 2CA8D22A2088D9C000E105E9 /* CourseListsAPI.swift in Sources */, + 2CA8D22B2088D9C000E105E9 /* WatchDataHelper.swift in Sources */, + 2CA8D22C2088D9C000E105E9 /* WatchCoursesDisplayingHelper.swift in Sources */, + 2CA8D22D2088D9C000E105E9 /* HeaderMenuBlockTableViewCell.swift in Sources */, + 2CA8D22E2088D9C000E105E9 /* AuthButton.swift in Sources */, + 2CA8D22F2088D9C000E105E9 /* HTMLParsingUtil.swift in Sources */, + 2CA8D2302088D9C000E105E9 /* CongratulationViewController.swift in Sources */, + 2CA8D2312088D9C000E105E9 /* TagDetectionUtil.swift in Sources */, + 2CA8D2322088D9C000E105E9 /* UIImageView+SVGDownload.swift in Sources */, + 2CA8D2332088D9C000E105E9 /* DiscussionProxy.swift in Sources */, + 2CA8D2342088D9C000E105E9 /* Comment.swift in Sources */, + 2CA8D2352088D9C000E105E9 /* CardsStepsViewController.swift in Sources */, + 2CA8D2362088D9C000E105E9 /* Vote.swift in Sources */, + 2CA8D2372088D9C000E105E9 /* Tooltip.swift in Sources */, + 2CA8D2382088D9C000E105E9 /* CodePlaygroundManager.swift in Sources */, + 2CA8D2392088D9C000E105E9 /* Scripts.swift in Sources */, + 2CA8D23A2088D9C000E105E9 /* Notification+FetchMethods.swift in Sources */, + 2CA8D23B2088D9C000E105E9 /* Scripts.plist in Sources */, + 2CA8D23C2088D9C000E105E9 /* CourseListPresenter.swift in Sources */, + 2CA8D23D2088D9C000E105E9 /* CongratulationAlertManager.swift in Sources */, + 2CA8D23E2088D9C000E105E9 /* LocalNotificationsHelper.swift in Sources */, + 2CA8D23F2088D9C000E105E9 /* HomeScreenViewController.swift in Sources */, + 2CA8D2402088D9C000E105E9 /* Constants.swift in Sources */, + 2CA8D2412088D9C000E105E9 /* Images.swift in Sources */, + 2CA8D2422088D9C000E105E9 /* ApplicationInfo.swift in Sources */, + 2CA8D2432088D9C000E105E9 /* PathManager.swift in Sources */, + 2CA8D2442088D9C000E105E9 /* AudioManager.swift in Sources */, + 2CA8D2452088D9C000E105E9 /* WebControllerManager.swift in Sources */, + 2CA8D2462088D9C000E105E9 /* CacheManager.swift in Sources */, + 2CA8D2472088D9C000E105E9 /* WKWebViewPanelManager.m in Sources */, + 2CA8D2482088D9C000E105E9 /* AchievementManager.swift in Sources */, + 2CA8D2492088D9C000E105E9 /* CourseSubscriptionManager.swift in Sources */, + 2CA8D24A2088D9C000E105E9 /* RemoteVersionManager.swift in Sources */, + 2CA8D24B2088D9C000E105E9 /* UpdateChecker.swift in Sources */, + 2CA8D24C2088D9C000E105E9 /* CodeQuizToolbarDelegate.swift in Sources */, + 2CA8D24D2088D9C000E105E9 /* UpdatePreferencesContainer.swift in Sources */, + 2CA8D24E2088D9C000E105E9 /* VersionUpdateAlertConstructor.swift in Sources */, + 2CA8D24F2088D9C000E105E9 /* Version.swift in Sources */, + 2CA8D2502088D9C000E105E9 /* StreaksNotificationSuggestionManager.swift in Sources */, + 2CA8D2512088D9C000E105E9 /* Executable.swift in Sources */, + 2CA8D2522088D9C000E105E9 /* ExecutionQueue.swift in Sources */, + 2CA8D2532088D9C000E105E9 /* NotificationPermissionManager.swift in Sources */, + 2CA8D2542088D9C000E105E9 /* PersistentQueueRecoveryManager.swift in Sources */, + 2CA8D2552088D9C000E105E9 /* Queues.plist in Sources */, + 2CA8D2562088D9C000E105E9 /* ExecutionQueues.swift in Sources */, + 2CA8D2572088D9C000E105E9 /* AdaptiveAchievementsPresenter.swift in Sources */, + 2CA8D2582088D9C000E105E9 /* PersistentRecoveryManager.swift in Sources */, + 2CA8D2592088D9C000E105E9 /* Users.plist in Sources */, + 2CA8D25A2088D9C000E105E9 /* PersistentUserTokenRecoveryManager.swift in Sources */, + 2CA8D25B2088D9C000E105E9 /* DeleteDeviceExecutableTask.swift in Sources */, + 2CA8D25C2088D9C000E105E9 /* Tasks.plist in Sources */, + 2CA8D25D2088D9C000E105E9 /* PinsMapView.swift in Sources */, + 2CA8D25E2088D9C000E105E9 /* AchievementManager+Data.swift in Sources */, + 2CA8D25F2088D9C000E105E9 /* EnrollmentsAPI.swift in Sources */, + 2CA8D2602088D9C000E105E9 /* SearchSuggestionTableViewCell.swift in Sources */, + 2CA8D2612088D9C000E105E9 /* PersistentTaskRecoveryManager.swift in Sources */, + 2CA8D2622088D9C000E105E9 /* NotificationsAPI.swift in Sources */, + 2CA8D2632088D9C000E105E9 /* TitleContentExpandableMenuBlockTableViewCell.swift in Sources */, + 2CA8D2642088D9C000E105E9 /* ExecutableTaskTypes.swift in Sources */, + 2CA8D2652088D9C000E105E9 /* DictionarySerializable.swift in Sources */, + 2CA8D2662088D9C000E105E9 /* PersistentTaskManagerProtocol.swift in Sources */, + 2CA8D2672088D9C000E105E9 /* SearchQueriesPresenter.swift in Sources */, + 2CA8D2682088D9C000E105E9 /* RoutingManager.swift in Sources */, + 2CA8D2692088D9C000E105E9 /* NotificationRegistrator.swift in Sources */, + 2CA8D26A2088D9C000E105E9 /* SQLQuizViewController.swift in Sources */, + 2CA8D26B2088D9C000E105E9 /* NotificationAlertConstructor.swift in Sources */, + 2CA8D26C2088D9C000E105E9 /* UICollectionViewFlowLayout+PlusCrashWorkaround.swift in Sources */, + 2CA8D26D2088D9C000E105E9 /* DeviceDefaults.swift in Sources */, + 2CA8D26E2088D9C000E105E9 /* ArtView.swift in Sources */, + 2CA8D26F2088D9C000E105E9 /* Notification.swift in Sources */, + 2CA8D2702088D9C000E105E9 /* Attempt.swift in Sources */, + 2CA8D2712088D9C000E105E9 /* LastStep.swift in Sources */, + 2CA8D2722088D9C000E105E9 /* NotificationDataExtractor.swift in Sources */, + 2CA8D2732088D9C000E105E9 /* Dataset.swift in Sources */, + 2CA8D2742088D9C000E105E9 /* ChoiceDataset.swift in Sources */, + 2CA8D2752088D9C000E105E9 /* StringDatasetExtension.swift in Sources */, + 2CA8D2762088D9C000E105E9 /* SortingDataset.swift in Sources */, + 2CA8D2772088D9C000E105E9 /* HorizontalCoursesView.swift in Sources */, + 2CA8D2782088D9C000E105E9 /* FreeAnswerDataset.swift in Sources */, + 2CA8D2792088D9C000E105E9 /* AdaptiveAchievementsViewController.swift in Sources */, + 2CA8D27A2088D9C000E105E9 /* MatchingDataset.swift in Sources */, + 2CA8D27B2088D9C000E105E9 /* AuthNavigationViewController.swift in Sources */, + 2CA8D27C2088D9C000E105E9 /* BaseCardsStepsViewController.swift in Sources */, + 2CA8D27D2088D9C000E105E9 /* FillBlanksDataset.swift in Sources */, + 2CA8D27E2088D9C000E105E9 /* CourseTag.swift in Sources */, + 2CA8D27F2088D9C000E105E9 /* HomeScreenPresenter.swift in Sources */, + 2CA8D2802088D9C000E105E9 /* Submission.swift in Sources */, + 2CA8D2812088D9C000E105E9 /* SearchQueriesPersistentManager.swift in Sources */, + 2CA8D2822088D9C000E105E9 /* StepikPlaceholderView.swift in Sources */, + 2CA8D2832088D9C000E105E9 /* Reply.swift in Sources */, + 2CA8D2842088D9C000E105E9 /* ReplyCache.swift in Sources */, + 2CA8D2852088D9C000E105E9 /* ChoiceReply.swift in Sources */, + 2CA8D2862088D9C000E105E9 /* TextReply.swift in Sources */, + 2CA8D2872088D9C000E105E9 /* NumberReply.swift in Sources */, + 2CA8D2882088D9C000E105E9 /* NotificationRequestAlertViewController.swift in Sources */, + 2CA8D2892088D9C000E105E9 /* CourseListsCache.swift in Sources */, + 2CA8D28A2088D9C000E105E9 /* FreeAnswerReply.swift in Sources */, + 2CA8D28B2088D9C000E105E9 /* DefaultsStorageManager.swift in Sources */, + 2CA8D28C2088D9C000E105E9 /* NotificationsStatus.swift in Sources */, + 2CA8D28D2088D9C000E105E9 /* MathReply.swift in Sources */, + 2CA8D28E2088D9C000E105E9 /* SortingReply.swift in Sources */, + 2CA8D28F2088D9C000E105E9 /* AdaptiveCourseSelectPresenter.swift in Sources */, + 2CA8D2902088D9C000E105E9 /* MatchingReply.swift in Sources */, + 2CA8D2912088D9C000E105E9 /* FillBlanksReply.swift in Sources */, + 2CA8D2922088D9C000E105E9 /* VideoDownloadDelegate.swift in Sources */, + 2CA8D2932088D9C000E105E9 /* Model.xcdatamodeld in Sources */, + 2CA8D2942088D9C000E105E9 /* Assignment+CoreDataProperties.swift in Sources */, + 2CA8D2952088D9C000E105E9 /* CodeLimit.swift in Sources */, + 2CA8D2962088D9C000E105E9 /* CodeSuggestionsTableViewController.swift in Sources */, + 2CA8D2972088D9C000E105E9 /* SwitchMenuBlockTableViewCell.swift in Sources */, + 2CA8D2982088D9C000E105E9 /* Assignment.swift in Sources */, + 2CA8D2992088D9C000E105E9 /* Progress+CoreDataProperties.swift in Sources */, + 2CA8D29A2088D9C000E105E9 /* Progress.swift in Sources */, + 2CA8D29B2088D9C000E105E9 /* ExploreViewController.swift in Sources */, + 2CA8D29C2088D9C000E105E9 /* Video+CoreDataProperties.swift in Sources */, + 2CA8D29D2088D9C000E105E9 /* Video.swift in Sources */, + 2CA8D29E2088D9C000E105E9 /* VideoURL+CoreDataProperties.swift in Sources */, + 2CA8D29F2088D9C000E105E9 /* CourseWidgetView.swift in Sources */, + 2CA8D2A02088D9C000E105E9 /* AchievementTableViewCell.swift in Sources */, + 2CA8D2A12088D9C000E105E9 /* AdaptiveUserActions.swift in Sources */, + 2CA8D2A22088D9C000E105E9 /* VideoURL.swift in Sources */, + 2CA8D2A32088D9C000E105E9 /* Block+CoreDataProperties.swift in Sources */, + 2CA8D2A42088D9C000E105E9 /* Block.swift in Sources */, + 2CA8D2A52088D9C000E105E9 /* Step+CoreDataProperties.swift in Sources */, + 2CA8D2A62088D9C000E105E9 /* Step.swift in Sources */, + 2CA8D2A72088D9C000E105E9 /* Lesson+CoreDataProperties.swift in Sources */, + 2CA8D2A82088D9C000E105E9 /* Lesson.swift in Sources */, + 2CA8D2A92088D9C000E105E9 /* Unit+CoreDataProperties.swift in Sources */, + 2CA8D2AA2088D9C000E105E9 /* Unit.swift in Sources */, + 2CA8D2AB2088D9C000E105E9 /* StepikButton.swift in Sources */, + 2CA8D2AC2088D9C000E105E9 /* Section+CoreDataProperties.swift in Sources */, + 2CA8D2AD2088D9C000E105E9 /* ContentLanguage.swift in Sources */, + 2CA8D2AE2088D9C000E105E9 /* Section.swift in Sources */, + 2CA8D2AF2088D9C000E105E9 /* Course+CoreDataProperties.swift in Sources */, + 2CA8D2B02088D9C000E105E9 /* Course.swift in Sources */, + 2CA8D2B12088D9C000E105E9 /* User+CoreDataProperties.swift in Sources */, + 2CA8D2B22088D9C000E105E9 /* User.swift in Sources */, + 2CA8D2B32088D9C000E105E9 /* Parser.swift in Sources */, + 2CA8D2B42088D9C000E105E9 /* ControllerWithStepikPlaceholder.swift in Sources */, + 2CA8D2B52088D9C000E105E9 /* CourseListType.swift in Sources */, + 2CA8D2B62088D9C000E105E9 /* StepicToken.swift in Sources */, + 2CA8D2B72088D9C000E105E9 /* AuthInfo.swift in Sources */, + 2CA8D2B82088D9C000E105E9 /* APIEndpoint.swift in Sources */, + 2CA8D2B92088D9C000E105E9 /* AuthRoutingManager.swift in Sources */, + 2CA8D2BA2088D9C000E105E9 /* CodeLanguages.swift in Sources */, + 2CA8D2BB2088D9C000E105E9 /* Session.swift in Sources */, + 2CA8D2BC2088D9C000E105E9 /* AdaptiveAdaptiveStatsPagerViewController.swift in Sources */, + 2CA8D2BD2088D9C000E105E9 /* CourseListVerticalViewController.swift in Sources */, + 2CA8D2BE2088D9C000E105E9 /* OnboardingCardStepViewController.swift in Sources */, + 2CA8D2BF2088D9C000E105E9 /* AdaptiveStatsPagerViewController.swift in Sources */, + 2CA8D2C02088D9C000E105E9 /* SocialSDKProvider.swift in Sources */, + 2CA8D2C12088D9C000E105E9 /* VKSocialSDKProvider.swift in Sources */, + 2CA8D2C22088D9C000E105E9 /* StepikTableView.swift in Sources */, + 2CA8D2C32088D9C000E105E9 /* NotificationsSection.swift in Sources */, + 2CA8D2C42088D9C000E105E9 /* FBSocialSDKProvider.swift in Sources */, + 2CA8D2C52088D9C000E105E9 /* ApiRequest.swift in Sources */, + 2CA8D2C62088D9C000E105E9 /* AuthAPI.swift in Sources */, + 2CA8D2C72088D9C000E105E9 /* QueriesAPI.swift in Sources */, + 2CA8D2C82088D9C000E105E9 /* AutocompleteWords.swift in Sources */, + 2CA8D2C92088D9C000E105E9 /* ApiDataDownloader.swift in Sources */, + 2CA8D2CA2088D9C000E105E9 /* AdaptiveStorageManager.swift in Sources */, + 2CA8D2CB2088D9C000E105E9 /* Meta.swift in Sources */, + 2CA8D2CC2088D9C000E105E9 /* DevicesAPI.swift in Sources */, + 2CA8D2CD2088D9C000E105E9 /* APIDefaults.swift in Sources */, + 2CA8D2CE2088D9C000E105E9 /* MenuViewController.swift in Sources */, + 2CA8D2CF2088D9C000E105E9 /* EmailAuthPresenter.swift in Sources */, + 2CA8D2D02088D9C000E105E9 /* AdaptiveStatsPresenter.swift in Sources */, + 2CA8D2D12088D9C000E105E9 /* DiscussionProxiesAPI.swift in Sources */, + 2CA8D2D22088D9C000E105E9 /* SearchQueriesView.swift in Sources */, + 2CA8D2D32088D9C000E105E9 /* LastStepsAPI.swift in Sources */, + 2CA8D2D42088D9C000E105E9 /* LeaderboardTableViewCell.swift in Sources */, + 2CA8D2D52088D9C000E105E9 /* CommentsAPI.swift in Sources */, + 2CA8D2D62088D9C000E105E9 /* ApiUtil.swift in Sources */, + 2CA8D2D72088D9C000E105E9 /* VotesAPI.swift in Sources */, + 2CA8D2D82088D9C000E105E9 /* AdaptiveCourseSelectViewController.swift in Sources */, + 2CA8D2D92088D9C000E105E9 /* CodeQuizToolbarView.swift in Sources */, + 2CA8D2DA2088D9C000E105E9 /* StepicsAPI.swift in Sources */, + 2CA8D2DB2088D9C000E105E9 /* UnitsAPI.swift in Sources */, + 2CA8D2DC2088D9C000E105E9 /* UserActivitiesAPI.swift in Sources */, + 2CA8D2DD2088D9C000E105E9 /* ProfileViewController.swift in Sources */, + 2CA8D2DE2088D9C000E105E9 /* StreaksAlertPresentationManager.swift in Sources */, + 2CA8D2DF2088D9C000E105E9 /* JSONSerializable.swift in Sources */, + 2CA8D2E02088D9C000E105E9 /* TabsInfo.swift in Sources */, + 2CA8D2E12088D9C000E105E9 /* SettingsViewController.swift in Sources */, + 2CA8D2E22088D9C000E105E9 /* VideosInfo.swift in Sources */, + 2CA8D2E32088D9C000E105E9 /* VideoDownload.swift in Sources */, + 2CA8D2E42088D9C000E105E9 /* NotificationRequestAlertContext.swift in Sources */, + 2CA8D2E52088D9C000E105E9 /* SearchResult.swift in Sources */, + 2CA8D2E62088D9C000E105E9 /* Device.swift in Sources */, + 2CA8D2E72088D9C000E105E9 /* CyrillicURLActivityItemSource.swift in Sources */, + 2CA8D2E82088D9C000E105E9 /* StepsControllerDeepLinkRouter.swift in Sources */, + 2CA8D2E92088D9C000E105E9 /* UserActivity.swift in Sources */, + 2CA8D2EA2088D9C000E105E9 /* Alerts.swift in Sources */, + 2CA8D2EB2088D9C000E105E9 /* CourseStatCollectionViewCell.swift in Sources */, + 2CA8D2EC2088D9C000E105E9 /* StreaksAlertManager.swift in Sources */, + 2CA8D2ED2088D9C000E105E9 /* QuizPresenter.swift in Sources */, + 2CA8D2EE2088D9C000E105E9 /* StreaksStepikAlertManager.swift in Sources */, + 2CA8D2EF2088D9C000E105E9 /* InputAccessoryBuilder.swift in Sources */, + 2CA8D2F02088D9C000E105E9 /* TooltipFactory.swift in Sources */, + 2CA8D2F12088D9C000E105E9 /* AlertManager.swift in Sources */, + 2CA8D2F22088D9C000E105E9 /* CourseReviewSummary.swift in Sources */, + 2CA8D2F32088D9C000E105E9 /* Menu.swift in Sources */, + 2CA8D2F42088D9C000E105E9 /* CodeSuggestionTableViewCell.swift in Sources */, + 2CA8D2F52088D9C000E105E9 /* PreferencesContainer.swift in Sources */, + 2CA8D2F62088D9C000E105E9 /* NotificationPreferencesContainer.swift in Sources */, + 2CA8D2F72088D9C000E105E9 /* NotificationsBadgesManager.swift in Sources */, + 2CA8D2F82088D9C000E105E9 /* AvatarImageView.swift in Sources */, + 2CA8D2F92088D9C000E105E9 /* LocalNotificationManager.swift in Sources */, + 2CA8D2FA2088D9C000E105E9 /* UIColorExtensions.swift in Sources */, + 2CA8D2FB2088D9C000E105E9 /* StandardsExtensions.swift in Sources */, + 2CA8D2FC2088D9C000E105E9 /* LabelExtension.swift in Sources */, + 2CA8D2FD2088D9C000E105E9 /* ButtonExtension.swift in Sources */, + 2CA8D2FE2088D9C000E105E9 /* RecommendationsAPI.swift in Sources */, + 2CA8D2FF2088D9C000E105E9 /* UIImageViewExtension.swift in Sources */, + 2CA8D3002088D9C000E105E9 /* StepicApplicationsInfo.swift in Sources */, + 2CA8D3012088D9C000E105E9 /* NSDateExtensions.swift in Sources */, + 2CA8D3022088D9C000E105E9 /* StringExtensions.swift in Sources */, + 2CA8D3032088D9C000E105E9 /* CourseList+CoreDataProperties.swift in Sources */, + 2CA8D3042088D9C000E105E9 /* UIViewExtensions.swift in Sources */, + 2CA8D3052088D9C000E105E9 /* Profile+CoreDataProperties.swift in Sources */, + 2CA8D3062088D9C000E105E9 /* ExplorePresenter.swift in Sources */, + 2CA8D3072088D9C000E105E9 /* FullHeightTableView.swift in Sources */, + 2CA8D3082088D9C000E105E9 /* StepOptions.swift in Sources */, + 2CA8D3092088D9C000E105E9 /* NSAttributedStringExtensions.swift in Sources */, + 2CA8D30A2088D9C000E105E9 /* AlamofireExtensions.swift in Sources */, + 2CA8D30B2088D9C000E105E9 /* CourseList.swift in Sources */, + 2CA8D30C2088D9C000E105E9 /* ErrorEnums.swift in Sources */, + 2CA8D30D2088D9C000E105E9 /* AdaptiveCardsStepsPresenter.swift in Sources */, + 2CA8D30E2088D9C000E105E9 /* CodeTemplate.swift in Sources */, + 2CA8D30F2088D9C000E105E9 /* StringHelper.swift in Sources */, + 2CA8D3102088D9C000E105E9 /* EmptyDatasetState.swift in Sources */, + 2CA8D3112088D9C000E105E9 /* RangeExtension.swift in Sources */, + 2CA8D3122088D9C000E105E9 /* AdaptiveAppDelegate.swift in Sources */, + 2CA8D3132088D9C000E105E9 /* StepikURLSessionConfiguration.swift in Sources */, + 2CA8D3142088D9C000E105E9 /* AlamofireDefaultSessionManager.swift in Sources */, + 2CA8D3152088D9C000E105E9 /* CourseListViewData.swift in Sources */, + 2CA8D3162088D9C000E105E9 /* CodeEditorSettingsViewController.swift in Sources */, + 2CA8D3172088D9C000E105E9 /* CodeEditorSettingsPresenter.swift in Sources */, + 2CA8D3182088D9C000E105E9 /* CodeEditorPreferencesContainer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2CD12B811F4ED1F4001D3C82 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -14983,7 +15270,6 @@ 864D67031E83DE03001E8D9E /* VKSocialSDKProvider.swift in Sources */, 082A88FF2046F0460079F038 /* NotificationPermissionManager.swift in Sources */, 864D67041E83DE03001E8D9E /* FBSocialSDKProvider.swift in Sources */, - 864D67051E83DE03001E8D9E /* RequestChain.swift in Sources */, 864D67061E83DE03001E8D9E /* ApiRequest.swift in Sources */, 864D67071E83DE03001E8D9E /* AuthAPI.swift in Sources */, 08CB0D2A1FB5CD5E001A1E02 /* CourseListsCache.swift in Sources */, @@ -15064,6 +15350,9 @@ 2C03B2A41F0CD87600005383 /* StringHelper.swift in Sources */, 864D67341E83DE03001E8D9E /* EmptyDatasetState.swift in Sources */, 86EF29371E83CEA900F8D214 /* AdaptiveAppDelegate.swift in Sources */, + 62E98AF2CF2F93395EBBBC11 /* StepikURLSessionConfiguration.swift in Sources */, + 62E980204101C3A3CEA147B7 /* AlamofireDefaultSessionManager.swift in Sources */, + 62E9822130C1EA241A84DED7 /* CourseListViewData.swift in Sources */, 62E98BC4B9330D5A2FFBC9B5 /* CodeEditorSettingsViewController.swift in Sources */, 62E98E53B559035BD0E4D903 /* CodeEditorSettingsPresenter.swift in Sources */, 62E98DC371227AE0EDF94038 /* CodeEditorPreferencesContainer.swift in Sources */, @@ -15309,6 +15598,15 @@ name = Auth.storyboard; sourceTree = ""; }; + 2CE1134E208E106B00293EAE /* step0.html */ = { + isa = PBXVariantGroup; + children = ( + 2CE1134F208E106B00293EAE /* ru */, + 2CE11351208E107400293EAE /* en */, + ); + name = step0.html; + sourceTree = ""; + }; 2CF425292024C10C002D7305 /* overlay_hard.png */ = { isa = PBXVariantGroup; children = ( @@ -15460,49 +15758,6 @@ }; name = Release; }; - 08D121221C937B2200A54ABC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3C0BEF79D32646AF1AAA1044 /* Pods-SberbankUniversity.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = SbAppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: ANO Sberbank University"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = "Sb/SberbankUniversity-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.sberbank-school.stepic"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "db7f025d-0d90-4bb3-9bf7-ba8af1813acf"; - SWIFT_OBJC_BRIDGING_HEADER = "Stepic/Stepic-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 08D121231C937B2200A54ABC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5003B355F9C103E512D8A2A2 /* Pods-SberbankUniversity.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = SbAppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: ANO Sberbank University"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = "Sb/SberbankUniversity-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.sberbank-school.stepic"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = "db7f025d-0d90-4bb3-9bf7-ba8af1813acf"; - SWIFT_OBJC_BRIDGING_HEADER = "Stepic/Stepic-Bridging-Header.h"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; 08DE942E1B8C58AC00D278AB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -15626,13 +15881,13 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 86; + CURRENT_PROJECT_VERSION = 87; DEVELOPMENT_TEAM = E9KER42773; ENABLE_BITCODE = YES; INFOPLIST_FILE = Stepic/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\""; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" -DENABLE_APPSEE"; PRODUCT_BUNDLE_IDENTIFIER = "com.AlexKarpov.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "1b78f6cb-2443-4479-8828-77bb34275cb0"; @@ -15657,13 +15912,13 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 86; + CURRENT_PROJECT_VERSION = 87; DEVELOPMENT_TEAM = E9KER42773; ENABLE_BITCODE = YES; INFOPLIST_FILE = Stepic/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\""; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" -DENABLE_APPSEE"; PRODUCT_BUNDLE_IDENTIFIER = "com.AlexKarpov.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = "636e8124-b505-48f4-9514-ff6f037a7ce0"; @@ -16003,6 +16258,56 @@ }; name = Release; }; + 2CA8D3852088D9C000E105E9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3B3FD6B163F292403A536E4B /* Pods-Adaptive 8290.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon8290; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer: Alexander Karpov (X767B24B99)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/StepicAdaptiveCourse/Content/8290/AdaptiveInfo.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.stepik.ios.adaptive.8290; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_BRIDGING_HEADER = "Stepic/Stepic-Bridging-Header.h"; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 2CA8D3862088D9C000E105E9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3A53D8E59267A93612403D59 /* Pods-Adaptive 8290.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon8290; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution: STEPIK, OOO (E9KER42773)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/StepicAdaptiveCourse/Content/8290/AdaptiveInfo.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = org.stepik.ios.adaptive.8290; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Stepic/Stepic-Bridging-Header.h"; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; 2CD12B8C1F4ED1F4001D3C82 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = D0AEEC9A301A3A82D07888A3 /* Pods-Adaptive 1838 Screenshots.debug.xcconfig */; @@ -16448,15 +16753,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 08D121211C937B2200A54ABC /* Build configuration list for PBXNativeTarget "SberbankUniversity" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 08D121221C937B2200A54ABC /* Debug */, - 08D121231C937B2200A54ABC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 08DE940C1B8C58AC00D278AB /* Build configuration list for PBXProject "Stepic" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -16529,6 +16825,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 2CA8D3842088D9C000E105E9 /* Build configuration list for PBXNativeTarget "Adaptive 8290" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2CA8D3852088D9C000E105E9 /* Debug */, + 2CA8D3862088D9C000E105E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 2CD12B8E1F4ED1F4001D3C82 /* Build configuration list for PBXNativeTarget "Adaptive 1838 Screenshots" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Stepic.xcodeproj/xcshareddata/xcschemes/Adaptive 8290.xcscheme b/Stepic.xcodeproj/xcshareddata/xcschemes/Adaptive 8290.xcscheme new file mode 100644 index 0000000000..6d8d57b50b --- /dev/null +++ b/Stepic.xcodeproj/xcshareddata/xcschemes/Adaptive 8290.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Stepic.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Stepic.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/Stepic.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Stepic/APIEndpoint.swift b/Stepic/APIEndpoint.swift index 80b3f8845f..6db08e9631 100644 --- a/Stepic/APIEndpoint.swift +++ b/Stepic/APIEndpoint.swift @@ -42,9 +42,7 @@ class APIEndpoint { var retrieve: RetrieveRequestMaker init() { - let configuration = URLSessionConfiguration.default - configuration.timeoutIntervalForRequest = 15 - manager = Alamofire.SessionManager(configuration: configuration) + manager = Alamofire.SessionManager(configuration: StepikURLSessionConfiguration.default) let retrier = ApiRequestRetrier() manager.retrier = retrier manager.adapter = retrier diff --git a/Stepic/AlamofireDefaultSessionManager.swift b/Stepic/AlamofireDefaultSessionManager.swift new file mode 100644 index 0000000000..fc30c02ec8 --- /dev/null +++ b/Stepic/AlamofireDefaultSessionManager.swift @@ -0,0 +1,13 @@ +// +// AlamofireDefaultSessionManager.swift +// Stepic +// +// Created by Vladislav Kiryukhin on 16.04.2018. +// Copyright © 2018 Alex Karpov. All rights reserved. +// + +import Alamofire + +class AlamofireDefaultSessionManager: Alamofire.SessionManager { + static let shared = Alamofire.SessionManager(configuration: StepikURLSessionConfiguration.default) +} diff --git a/Stepic/AnalyticsHelper.swift b/Stepic/AnalyticsHelper.swift index fdb94c52bd..7fc2c78e12 100644 --- a/Stepic/AnalyticsHelper.swift +++ b/Stepic/AnalyticsHelper.swift @@ -19,10 +19,13 @@ class AnalyticsHelper: NSObject { func setupAnalytics() { Fabric.with([Crashlytics.self]) + FirebaseApp.configure() Mixpanel.initialize(token: Tokens.shared.mixpanelToken) - YMMYandexMetrica.activate(withApiKey: Tokens.shared.appMetricaToken) + if let config = YMMYandexMetricaConfiguration(apiKey: Tokens.shared.appMetricaToken) { + YMMYandexMetrica.activate(with: config) + } } } diff --git a/Stepic/ApiRequestRetrier.swift b/Stepic/ApiRequestRetrier.swift index 9cc92ed2dd..9563edd652 100644 --- a/Stepic/ApiRequestRetrier.swift +++ b/Stepic/ApiRequestRetrier.swift @@ -13,6 +13,7 @@ class ApiRequestRetrier: RequestRetrier, RequestAdapter { func adapt(_ urlRequest: URLRequest) throws -> URLRequest { var urlRequest = urlRequest + for (headerField, value) in AuthInfo.shared.initialHTTPHeaders { urlRequest.setValue(value, forHTTPHeaderField: headerField) } diff --git a/Stepic/AttemptsAPI.swift b/Stepic/AttemptsAPI.swift index 081b889907..6bd7274104 100644 --- a/Stepic/AttemptsAPI.swift +++ b/Stepic/AttemptsAPI.swift @@ -44,7 +44,7 @@ class AttemptsAPI: APIEndpoint { print("no user id!") } - return Alamofire.request("\(StepicApplicationsInfo.apiURL)/attempts", method: .get, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ + return manager.request("\(StepicApplicationsInfo.apiURL)/attempts", method: .get, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ response in var error = response.result.error diff --git a/Stepic/AvatarImageView.swift b/Stepic/AvatarImageView.swift index d83066b2b0..8676aa168f 100644 --- a/Stepic/AvatarImageView.swift +++ b/Stepic/AvatarImageView.swift @@ -49,7 +49,7 @@ class AvatarImageView: UIImageView { if url.pathExtension != "svg" { self.sd_setImage(with: url, placeholderImage: self.image) } else { - Alamofire.request(url).responseData(completionHandler: { response in + AlamofireDefaultSessionManager.shared.request(url).responseData(completionHandler: { response in if response.result.error != nil { return } diff --git a/Stepic/BaseCardsStepsViewController.swift b/Stepic/BaseCardsStepsViewController.swift index c47cca374d..b876c4d2b4 100644 --- a/Stepic/BaseCardsStepsViewController.swift +++ b/Stepic/BaseCardsStepsViewController.swift @@ -25,6 +25,20 @@ class BaseCardsStepsViewController: CardsStepsViewController { var course: Course! var didJustSubscribe: Bool = false + override var state: CardsStepsViewState { + set { + super.state = newValue + if newValue != .normal { + bringElementsToFront() + } else { + sendElementsToBack() + } + } + get { + return super.state + } + } + override func viewDidLoad() { super.viewDidLoad() @@ -38,12 +52,7 @@ class BaseCardsStepsViewController: CardsStepsViewController { view.insertSubview(padView, at: 0) } - trophyButton.layer.zPosition = kolodaView.layer.zPosition - 1 - backButton.layer.zPosition = kolodaView.layer.zPosition - 1 - statusBarPad?.layer.zPosition = kolodaView.layer.zPosition - 1 - progressBar.layer.zPosition = kolodaView.layer.zPosition - 1 - labelsStackView.layer.zPosition = kolodaView.layer.zPosition - 1 - shadowView.layer.zPosition = kolodaView.layer.zPosition - 1 + sendElementsToBack() progressBar.progress = 0 @@ -170,4 +179,25 @@ class BaseCardsStepsViewController: CardsStepsViewController { shouldToggleNavigationBar = true super.presentDiscussions(stepId: stepId, discussionProxyId: discussionProxyId) } + + private func changeZPositionForElements(change: CGFloat, relativeTo layer: CALayer) { + trophyButton.layer.zPosition = layer.zPosition + change + backButton.layer.zPosition = layer.zPosition + change + statusBarPad?.layer.zPosition = layer.zPosition + change + progressBar.layer.zPosition = layer.zPosition + change + labelsStackView.layer.zPosition = layer.zPosition + change + shadowView.layer.zPosition = layer.zPosition + change + } + + private func bringElementsToFront() { + backButton.superview?.bringSubview(toFront: backButton) + trophyButton.superview?.bringSubview(toFront: trophyButton) + + changeZPositionForElements(change: 1.0, relativeTo: placeholderContainer.placeholderView.layer) + } + + private func sendElementsToBack() { + changeZPositionForElements(change: -1.0, relativeTo: kolodaView.layer) + } + } diff --git a/Stepic/CardStepPresenter.swift b/Stepic/CardStepPresenter.swift index b8def6fecf..92fc25c4af 100644 --- a/Stepic/CardStepPresenter.swift +++ b/Stepic/CardStepPresenter.swift @@ -33,7 +33,7 @@ class CardStepPresenter { return step.lesson } - var quizViewController: ChoiceQuizViewController? + var quizViewController: QuizViewController? init(view: CardStepView, step: Step) { self.step = step @@ -49,7 +49,22 @@ class CardStepPresenter { view?.updateProblem(with: step.block.text ?? "") // Set up quiz view controller - quizViewController = ChoiceQuizViewController(nibName: "QuizViewController", bundle: nil) + switch step.block.name { + case "choice": + quizViewController = ChoiceQuizViewController(nibName: "QuizViewController", bundle: nil) + case "string": + let vc = StringQuizViewController(nibName: "QuizViewController", bundle: nil) + vc.useSmallPadding = true + vc.textView.placeholder = NSLocalizedString("StringInputTextFieldPlaceholder", comment: "") + quizViewController = vc + case "number": + let vc = NumberQuizViewController(nibName: "QuizViewController", bundle: nil) + vc.useSmallPadding = true + vc.textField.placeholder = NSLocalizedString("NumberInputTextFieldPlaceholder", comment: "") + quizViewController = vc + default: break + } + guard let quizViewController = quizViewController else { print("card step: quiz vc init failed") delegate?.contentLoadingDidFail() @@ -69,9 +84,15 @@ class CardStepPresenter { } func submit() { - // TODO: this check only for choices var isSelected = false - quizViewController?.choices.forEach { isSelected = isSelected || $0 } + + switch step.block.name { + case "choice": + (quizViewController as? ChoiceQuizViewController)?.choices.forEach { isSelected = isSelected || $0 } + case "string", "number": + isSelected = true + default: break + } if isSelected { quizViewController?.submitPressed() diff --git a/Stepic/CardStepViewController.swift b/Stepic/CardStepViewController.swift index b96128782f..6bedf7efb1 100644 --- a/Stepic/CardStepViewController.swift +++ b/Stepic/CardStepViewController.swift @@ -137,7 +137,7 @@ class CardStepViewController: UIViewController, CardStepView { } } - private func refreshWebView() { + func refreshWebView() { resetWebViewHeight(5.0) func reloadContent() -> Promise { diff --git a/Stepic/CardsStepsViewController.swift b/Stepic/CardsStepsViewController.swift index 4b2aa21446..071dadafdf 100644 --- a/Stepic/CardsStepsViewController.swift +++ b/Stepic/CardsStepsViewController.swift @@ -45,7 +45,7 @@ class CardsStepsViewController: UIViewController, CardsStepsView, ControllerWith override func viewDidLoad() { super.viewDidLoad() - registerPlaceholder(placeholder: StepikPlaceholder(.noConnection, action: { [weak self] in + registerPlaceholder(placeholder: StepikPlaceholder(.noConnectionQuiz, action: { [weak self] in self?.presenter?.tryAgain() }), for: .connectionError) diff --git a/Stepic/CourseListPresenter.swift b/Stepic/CourseListPresenter.swift index ada58f671a..64c0f862e9 100644 --- a/Stepic/CourseListPresenter.swift +++ b/Stepic/CourseListPresenter.swift @@ -41,6 +41,8 @@ protocol CourseListCountDelegate: class { } class CourseListPresenter { + private weak var view: CourseListView? + private var coursesAPI: CoursesAPI private var progressesAPI: ProgressesAPI private var reviewSummariesAPI: CourseReviewSummariesAPI @@ -48,26 +50,29 @@ class CourseListPresenter { private var subscriptionManager: CourseSubscriptionManager private var adaptiveStorageManager: AdaptiveStorageManager - private var colorMode: CourseListColorMode - var onlyLocal: Bool - - private var ID: String - - private weak var view: CourseListView? - private var limit: Int? + private var id: String var listType: CourseListType + // Only cached courses? + var onlyLocal: Bool + + // Pagination private var currentPage: Int = 1 private var hasNextPage: Bool = false + private var limit: Int? private var lastUser: User? - private var subscriber = CourseSubscriber() private var lastLanguage: ContentLanguage + private var subscriber = CourseSubscriber() + weak var lastStepDataSource: LastStepWidgetDataSource? weak var couseListCountDelegate: CourseListCountDelegate? - private var didRefreshOnce: Bool = false + private var reachabilityManager: Alamofire.NetworkReachabilityManager? + + private var didRefreshOnce = false + private var canUpdateCache = false private var state: CourseListState = .empty { didSet { @@ -87,14 +92,16 @@ class CourseListPresenter { private var courses: [Course] = [] { didSet { - listType.cachedListCourseIds = courses.map({ $0.id }) - print("\(ID): cached courses with ids: \(listType.cachedListCourseIds)") + if canUpdateCache { + listType.cachedListCourseIds = courses.map({ $0.id }) + print("\(id): cached courses with ids: \(listType.cachedListCourseIds)") + } if let limit = limit { displayingCourses = [Course](courses.prefix(limit)) } else { displayingCourses = courses } - self.couseListCountDelegate?.updateCourseCount(to: courses.count, forListID: ID) + self.couseListCountDelegate?.updateCourseCount(to: courses.count, forListID: id) } } @@ -109,39 +116,36 @@ class CourseListPresenter { return result } - init(view: CourseListView, ID: String, limit: Int?, listType: CourseListType, colorMode: CourseListColorMode, onlyLocal: Bool, subscriptionManager: CourseSubscriptionManager, coursesAPI: CoursesAPI, progressesAPI: ProgressesAPI, reviewSummariesAPI: CourseReviewSummariesAPI, searchResultsAPI: SearchResultsAPI, subscriber: CourseSubscriber, adaptiveStorageManager: AdaptiveStorageManager) { + init(view: CourseListView, id: String, limit: Int?, listType: CourseListType, onlyLocal: Bool, subscriptionManager: CourseSubscriptionManager, coursesAPI: CoursesAPI, progressesAPI: ProgressesAPI, reviewSummariesAPI: CourseReviewSummariesAPI, searchResultsAPI: SearchResultsAPI, subscriber: CourseSubscriber, adaptiveStorageManager: AdaptiveStorageManager) { self.view = view - self.ID = ID - self.coursesAPI = coursesAPI - self.progressesAPI = progressesAPI - self.reviewSummariesAPI = reviewSummariesAPI + self.id = id + self.limit = limit self.listType = listType - self.colorMode = colorMode self.subscriber = subscriber self.lastUser = AuthInfo.shared.user self.lastLanguage = ContentLanguage.sharedContentLanguage self.onlyLocal = onlyLocal + + self.coursesAPI = coursesAPI + self.progressesAPI = progressesAPI + self.reviewSummariesAPI = reviewSummariesAPI self.searchResultsAPI = searchResultsAPI self.subscriptionManager = subscriptionManager self.adaptiveStorageManager = adaptiveStorageManager - subscriptionManager.handleUpdatesBlock = { - [weak self] in + + subscriptionManager.handleUpdatesBlock = { [weak self] in self?.handleCourseSubscriptionUpdates() } subscriptionManager.startObservingOtherSubscriptionManagers() - view.colorMode = colorMode } - private var reachabilityManager: Alamofire.NetworkReachabilityManager? private func setupNetworkReachabilityListener() { guard reachabilityManager == nil else { return } reachabilityManager = Alamofire.NetworkReachabilityManager(host: StepicApplicationsInfo.stepicURL) - reachabilityManager?.listener = { - [weak self] - status in + reachabilityManager?.listener = { [weak self] status in guard let strongSelf = self else { return } @@ -158,13 +162,10 @@ class CourseListPresenter { } func getData(from courses: [Course]) -> [CourseViewData] { - return courses.map { - course in - CourseViewData(course: course, action: { - [weak self] in + return courses.map { course in + CourseViewData(course: course, action: { [weak self] in self?.actionButtonPressed(course: course) - }, secondaryAction: { - [weak self] in + }, secondaryAction: { [weak self] in self?.secondaryActionButtonPressed(course: course) }) } @@ -172,23 +173,19 @@ class CourseListPresenter { private func subscribe(to course: Course) { self.view?.startProgressHUD() - checkToken().then { - [weak self] - () -> Promise in + + checkToken().then { [weak self] () -> Promise in guard let strongSelf = self else { throw CourseSubscriber.CourseSubscriptionError.error(status: "") } return strongSelf.subscriber.join(course: course) - }.then { - [weak self] - course -> Void in + }.then { [weak self] course -> Void in self?.view?.finishProgressHUD(success: true, message: "") + if let controller = self?.getSectionsController(for: course, didSubscribe: true) { self?.view?.show(controller: controller) } - }.catch { - [weak self] - error in + }.catch { [weak self] error in guard let error = error as? CourseSubscriber.CourseSubscriptionError else { self?.view?.finishProgressHUD(success: false, message: "") return @@ -208,8 +205,7 @@ class CourseListPresenter { LastStepRouter.continueLearning(for: course, using: navigation) } } else { - let joinBlock: (() -> Void) = { - [weak self] in + let joinBlock: (() -> Void) = { [weak self] in self?.subscribe(to: course) } if !AuthInfo.shared.isAuthorized { @@ -242,36 +238,31 @@ class CourseListPresenter { let selectedCourse = courses[index] let isAdaptiveMode = adaptiveStorageManager.canOpenInAdaptiveMode(courseId: selectedCourse.id) - if !isAdaptiveMode { - secondaryActionButtonPressed(course: selectedCourse) - } - if isAdaptiveMode { actionButtonPressed(course: selectedCourse) + } else { + secondaryActionButtonPressed(course: selectedCourse) } } private func displayCachedAsyncIfEmpty() -> Promise { - return Promise { - [weak self] - fulfill, reject in + return Promise { [weak self] fulfill, reject in guard let strongSelf = self else { reject(PromiseError.noSelf) return } if strongSelf.courses.isEmpty { - Course.fetchAsync(strongSelf.listType.cachedListCourseIds).then { - [weak self] - courses -> Void in + Course.fetchAsync(strongSelf.listType.cachedListCourseIds).then { [weak self] courses -> Void in guard let strongSelf = self else { reject(PromiseError.noSelf) return } + strongSelf.courses = Sorter.sort(courses, byIds: strongSelf.listType.cachedListCourseIds) + strongSelf.canUpdateCache = true strongSelf.view?.display(courses: strongSelf.getData(from: strongSelf.displayingCourses)) fulfill(()) - }.catch { - error in + }.catch { error in reject(error) } } else { @@ -280,14 +271,8 @@ class CourseListPresenter { } } - enum PromiseError: Error { - case localUpdate, noSelf - } - private func updateState() -> Promise { - return Promise { - [weak self] - fulfill, reject in + return Promise { [weak self] fulfill, reject in guard let strongSelf = self else { reject(PromiseError.noSelf) return @@ -305,12 +290,9 @@ class CourseListPresenter { func refresh() { displayCachedAsyncIfEmpty().then { self.updateState() - }.then { - [weak self] in + }.then { [weak self] in self?.refreshCourses() - }.catch { - [weak self] - error in + }.catch { [weak self] error in guard let strongSelf = self else { return } @@ -329,9 +311,7 @@ class CourseListPresenter { } self.view?.setPaginationStatus(status: .loading) coursesAPI.cancelAllTasks() - listType.request(page: currentPage + 1, language: ContentLanguage.sharedContentLanguage, withAPI: coursesAPI, progressesAPI: progressesAPI, searchResultsAPI: searchResultsAPI)?.then { - [weak self] - (courses, meta) -> Void in + listType.request(page: currentPage + 1, language: ContentLanguage.sharedContentLanguage, withAPI: coursesAPI, progressesAPI: progressesAPI, searchResultsAPI: searchResultsAPI)?.then { [weak self] (courses, meta) -> Void in guard let strongSelf = self else { return } @@ -342,9 +322,7 @@ class CourseListPresenter { strongSelf.currentPage = meta.page strongSelf.hasNextPage = meta.hasNext strongSelf.view?.setPaginationStatus(status: strongSelf.shouldLoadNextPage ? .loading : .none) - }.catch { - [weak self] - _ in + }.catch { [weak self] _ in print("error while loading next page") self?.view?.setPaginationStatus(status: .error) } @@ -362,6 +340,9 @@ class CourseListPresenter { func willAppear() { if lastUser != AuthInfo.shared.user || shouldRefreshLanguage { courses = [] + listType.cachedListCourseIds.removeAll() + canUpdateCache = false + self.view?.display(courses: []) lastUser = AuthInfo.shared.user lastLanguage = ContentLanguage.sharedContentLanguage @@ -416,24 +397,20 @@ class CourseListPresenter { subscriptionManager.clean() let newDisplayedCourses = getDisplaying(from: courses) - let deletedDisplayedCourses = oldDisplayedCourses.filter({ - !newDisplayedCourses.contains($0) - }) - let addedDisplayedCourses = newDisplayedCourses.filter({ - !oldDisplayedCourses.contains($0) - }) - oldDisplayedCourses.enumerated().forEach({ - index, oldDisplayedCourse in + let deletedDisplayedCourses = oldDisplayedCourses.filter { !newDisplayedCourses.contains($0) } + let addedDisplayedCourses = newDisplayedCourses.filter { !oldDisplayedCourses.contains($0) } + + oldDisplayedCourses.enumerated().forEach({ index, oldDisplayedCourse in if deletedDisplayedCourses.contains(oldDisplayedCourse) { deletedIds += [index] } }) - newDisplayedCourses.enumerated().forEach({ - index, newDisplayedCourse in + newDisplayedCourses.enumerated().forEach({ index, newDisplayedCourse in if addedDisplayedCourses.contains(newDisplayedCourse) { addedIds += [index] } }) + if oldDisplayedCourses.isEmpty && !newDisplayedCourses.isEmpty { self.state = .displaying } @@ -441,6 +418,7 @@ class CourseListPresenter { self.state = .empty return } + if oldDisplayedCourses.count - deletedIds.count + addedIds.count == newDisplayedCourses.count { view?.update(deletingIds: deletedIds, insertingIds: addedIds, courses: getData(from: newDisplayedCourses)) } else { @@ -474,9 +452,7 @@ class CourseListPresenter { } private func requestNonCollection(updateProgresses: Bool, completion: (() -> Void)? = nil) { - listType.request(page: 1, language: ContentLanguage.sharedContentLanguage, withAPI: coursesAPI, progressesAPI: progressesAPI, searchResultsAPI: searchResultsAPI)?.then { - [weak self] - (courses, meta) -> Void in + listType.request(page: 1, language: ContentLanguage.sharedContentLanguage, withAPI: coursesAPI, progressesAPI: progressesAPI, searchResultsAPI: searchResultsAPI)?.then { [weak self] (courses, meta) -> Void in guard let strongSelf = self else { return } @@ -492,18 +468,16 @@ class CourseListPresenter { strongSelf.view?.setPaginationStatus(status: strongSelf.shouldLoadNextPage ? .loading : .none) strongSelf.didRefreshOnce = true completion?() - }.catch { - [weak self] - _ in - guard let strongSelf = self else { - return - } - print("Error while refreshing collection") - if !strongSelf.didRefreshOnce { - strongSelf.setupNetworkReachabilityListener() - } - strongSelf.state = strongSelf.courses.isEmpty ? .emptyError : .displayingWithError - completion?() + }.catch { [weak self] _ in + guard let strongSelf = self else { + return + } + print("Error while refreshing collection") + if !strongSelf.didRefreshOnce { + strongSelf.setupNetworkReachabilityListener() + } + strongSelf.state = strongSelf.courses.isEmpty ? .emptyError : .displayingWithError + completion?() } } @@ -511,9 +485,7 @@ class CourseListPresenter { coursesAPI.cancelAllTasks() switch listType { case let .collection(ids: ids): - listType.request(coursesWithIds: ids, withAPI: coursesAPI)?.then { - [weak self] - courses -> Void in + listType.request(coursesWithIds: ids, withAPI: coursesAPI)?.then { [weak self] courses -> Void in guard let strongSelf = self else { return } @@ -526,9 +498,7 @@ class CourseListPresenter { strongSelf.hasNextPage = false strongSelf.view?.setPaginationStatus(status: strongSelf.shouldLoadNextPage ? .loading : .none) strongSelf.didRefreshOnce = true - }.catch { - [weak self] - _ in + }.catch { [weak self] _ in guard let strongSelf = self else { return } @@ -540,14 +510,15 @@ class CourseListPresenter { } case .enrolled: if !AuthInfo.shared.isAuthorized { + self.listType.cachedListCourseIds.removeAll() self.courses = [] + self.canUpdateCache = false self.view?.display(courses: []) self.lastStepDataSource?.didLoadWithProgresses(courses: courses) self.state = .emptyAnonymous return } - requestNonCollection(updateProgresses: false, completion: { - [weak self] in + requestNonCollection(updateProgresses: false, completion: { [weak self] in guard let strongSelf = self else { return } @@ -577,9 +548,7 @@ class CourseListPresenter { AnalyticsReporter.reportEvent(AnalyticsEvents.PeekNPop.Course.peeked) courseVC.course = course courseVC.didJustSubscribe = didSubscribe - courseVC.parentShareBlock = { - [weak self] - shareVC in + courseVC.parentShareBlock = { [weak self] shareVC in AnalyticsReporter.reportEvent(AnalyticsEvents.PeekNPop.Course.shared) shareVC.popoverPresentationController?.sourceView = sourceView self?.view?.present(controller: shareVC) @@ -594,9 +563,7 @@ class CourseListPresenter { } AnalyticsReporter.reportEvent(AnalyticsEvents.PeekNPop.Course.peeked) courseVC.course = course - courseVC.parentShareBlock = { - [weak self] - shareVC in + courseVC.parentShareBlock = { [weak self] shareVC in AnalyticsReporter.reportEvent(AnalyticsEvents.PeekNPop.Course.shared) shareVC.popoverPresentationController?.sourceView = sourceView self?.view?.present(controller: shareVC) @@ -610,8 +577,6 @@ class CourseListPresenter { return course.enrolled ? getSectionsController(for: course, sourceView: sourceView) : getCoursePreviewController(for: course, sourceView: sourceView) } - // Progresses - @discardableResult private func updateProgresses(for courses: [Course]) -> Promise<[Course]> { var progressIds: [String] = [] var progresses: [Progress] = [] @@ -624,19 +589,15 @@ class CourseListPresenter { } } - return Promise { - fulfill, reject in - progressesAPI.getObjectsByIds(ids: progressIds, updating: progresses).then { - [weak self] - newProgresses -> Void in + return Promise { fulfill, reject in + progressesAPI.getObjectsByIds(ids: progressIds, updating: progresses).then { [weak self] newProgresses -> Void in guard let strongSelf = self else { return } strongSelf.matchProgresses(newProgresses: newProgresses, ids: progressIds, courses: courses) strongSelf.view?.update(updatedCourses: strongSelf.getData(from: strongSelf.getDisplaying(from: courses)), courses: strongSelf.getData(from: strongSelf.displayingCourses)) fulfill(strongSelf.courses) - }.catch { - error in + }.catch { error in print("Error while loading progresses") reject(error) } @@ -678,16 +639,13 @@ class CourseListPresenter { } } - reviewSummariesAPI.getObjectsByIds(ids: reviewIds, updating: reviews).then { - [weak self] - newReviews -> Void in + reviewSummariesAPI.getObjectsByIds(ids: reviewIds, updating: reviews).then { [weak self] newReviews -> Void in guard let strongSelf = self else { return } strongSelf.matchReviewSummaries(newReviewSummaries: newReviews, ids: reviewIds, courses: courses) strongSelf.view?.update(updatedCourses: strongSelf.getData(from: strongSelf.getDisplaying(from: courses)), courses: strongSelf.getData(from: strongSelf.courses) ) - }.catch { - _ in + }.catch { _ in print("error while loading review summaries") } } @@ -711,28 +669,9 @@ class CourseListPresenter { } CoreDataHelper.instance.save() } -} -struct CourseViewData { - var id: Int - var title: String - var isEnrolled: Bool - var coverURLString: String - var rating: Float? - var learners: Int? - var progress: Float? - var action: (() -> Void)? - var secondaryAction: (() -> Void)? - init(course: Course, action: @escaping () -> Void, secondaryAction: @escaping () -> Void) { - self.id = course.id - self.title = course.title - self.isEnrolled = course.enrolled - self.coverURLString = course.coverURLString - self.rating = course.reviewSummary?.average - self.learners = course.learnersCount - self.progress = course.enrolled ? course.progress?.percentPassed : nil - self.action = action - self.secondaryAction = secondaryAction + enum PromiseError: Error { + case localUpdate, noSelf } } diff --git a/Stepic/CourseListViewController.swift b/Stepic/CourseListViewController.swift index c4b5ec6a17..f82cac73d2 100644 --- a/Stepic/CourseListViewController.swift +++ b/Stepic/CourseListViewController.swift @@ -183,6 +183,8 @@ class CourseListViewController: UIViewController, CourseListView { emptyPlaceholder.text = NSLocalizedString("HomePlaceholderErrorPopular", comment: "") case .search(query: _): emptyPlaceholder.text = NSLocalizedString("SearchPlaceholderError", comment: "") + case .tag: + emptyPlaceholder.text = NSLocalizedString("TagPlaceholderError", comment: "") default: emptyPlaceholder.text = "Error" break diff --git a/Stepic/CourseListViewData.swift b/Stepic/CourseListViewData.swift new file mode 100644 index 0000000000..ffb91b94d9 --- /dev/null +++ b/Stepic/CourseListViewData.swift @@ -0,0 +1,33 @@ +// +// CourseViewData.swift +// Stepic +// +// Created by Ostrenkiy on 11.10.2017. +// Copyright © 2017 Alex Karpov. All rights reserved. +// + +import Foundation + +struct CourseViewData { + var id: Int + var title: String + var isEnrolled: Bool + var coverURLString: String + var rating: Float? + var learners: Int? + var progress: Float? + var action: (() -> Void)? + var secondaryAction: (() -> Void)? + + init(course: Course, action: @escaping () -> Void, secondaryAction: @escaping () -> Void) { + self.id = course.id + self.title = course.title + self.isEnrolled = course.enrolled + self.coverURLString = course.coverURLString + self.rating = course.reviewSummary?.average + self.learners = course.learnersCount + self.progress = course.enrolled ? course.progress?.percentPassed : nil + self.action = action + self.secondaryAction = secondaryAction + } +} diff --git a/Stepic/EnrollmentsAPI.swift b/Stepic/EnrollmentsAPI.swift index 154fe2f424..0494c51a89 100644 --- a/Stepic/EnrollmentsAPI.swift +++ b/Stepic/EnrollmentsAPI.swift @@ -39,7 +39,7 @@ class EnrollmentsAPI: APIEndpoint { ] if !delete { - return Alamofire.request("\(StepicApplicationsInfo.apiURL)/\(name)", method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseSwiftyJSON({ + return manager.request("\(StepicApplicationsInfo.apiURL)/\(name)", method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseSwiftyJSON({ response in var error = response.result.error @@ -69,7 +69,7 @@ class EnrollmentsAPI: APIEndpoint { } }) } else { - return Alamofire.request("\(StepicApplicationsInfo.apiURL)/enrollments/\(course.id)", method: .delete, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ + return manager.request("\(StepicApplicationsInfo.apiURL)/enrollments/\(course.id)", method: .delete, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ response in var error = response.result.error diff --git a/Stepic/ExplorePresenter.swift b/Stepic/ExplorePresenter.swift index 39c476a9d2..586f51a899 100644 --- a/Stepic/ExplorePresenter.swift +++ b/Stepic/ExplorePresenter.swift @@ -67,12 +67,12 @@ class ExplorePresenter: CourseListCountDelegate { [weak self] tag in if let controller = ControllerHelper.instantiateViewController(identifier: "CourseListVerticalViewController", storyboardName: "CourseLists") as? CourseListVerticalViewController { + controller.colorMode = .light controller.presenter = CourseListPresenter( view: controller, - ID: "Tag_\(tag.ID)", + id: "Tag_\(tag.ID)", limit: nil, listType: CourseListType.tag(id: tag.ID) , - colorMode: .light, onlyLocal: false, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager() ) diff --git a/Stepic/HomeScreenPresenter.swift b/Stepic/HomeScreenPresenter.swift index 2238f6da36..c73d6e4279 100644 --- a/Stepic/HomeScreenPresenter.swift +++ b/Stepic/HomeScreenPresenter.swift @@ -153,9 +153,10 @@ class CourseListBlock { self.onlyLocal = onlyLocal self.listType = listType self.horizontalController = ControllerHelper.instantiateViewController(identifier: "CourseListHorizontalViewController", storyboardName: "CourseLists") as! CourseListHorizontalViewController - self.horizontalController.presenter = CourseListPresenter(view: horizontalController, ID: ID, limit: horizontalLimit, listType: listType, colorMode: colorMode, onlyLocal: onlyLocal, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) + self.horizontalController.presenter = CourseListPresenter(view: horizontalController, id: ID, limit: horizontalLimit, listType: listType, onlyLocal: onlyLocal, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) self.horizontalController.presenter?.lastStepDataSource = lastStepWidgetDataSource self.horizontalController.presenter?.couseListCountDelegate = courseListCountDelegate + self.horizontalController.colorMode = colorMode self.showVerticalBlock = { [weak self] count in @@ -167,8 +168,9 @@ class CourseListBlock { verticalController.descriptionView.colorStyle = strongSelf.colorStyle verticalController.courseCount = count verticalController.listDescription = strongSelf.description - verticalController.presenter = CourseListPresenter(view: verticalController, ID: ID, limit: nil, listType: strongSelf.listType, colorMode: strongSelf.colorMode, onlyLocal: strongSelf.onlyLocal, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) + verticalController.presenter = CourseListPresenter(view: verticalController, id: ID, limit: nil, listType: strongSelf.listType, onlyLocal: strongSelf.onlyLocal, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) verticalController.presenter?.couseListCountDelegate = verticalController + verticalController.colorMode = strongSelf.colorMode showControllerBlock(verticalController) } } diff --git a/Stepic/Images.xcassets/New placeholders/new-empty-noconnection.imageset/new-empty-noconnection.pdf b/Stepic/Images.xcassets/New placeholders/new-empty-noconnection.imageset/new-empty-noconnection.pdf index 6499247c40..e08483bbe6 100644 Binary files a/Stepic/Images.xcassets/New placeholders/new-empty-noconnection.imageset/new-empty-noconnection.pdf and b/Stepic/Images.xcassets/New placeholders/new-empty-noconnection.imageset/new-empty-noconnection.pdf differ diff --git a/Stepic/Info.plist b/Stepic/Info.plist index 47cf91e673..58c05e8d81 100644 --- a/Stepic/Info.plist +++ b/Stepic/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.56.1 + 1.57 CFBundleSignature ???? CFBundleURLTypes @@ -52,13 +52,22 @@ CFBundleVersion - 86 + 87 Fabric APIKey d4016589326f6f7814080b7ff9017e18711a1959 Kits + + KitName + Appsee + KitInfo + + apikey + 66bb9d8f3ad7428e9fdc7f2fe0d84988 + + KitInfo diff --git a/Stepic/NumberQuizViewController.swift b/Stepic/NumberQuizViewController.swift index c589406b9a..79654db62d 100644 --- a/Stepic/NumberQuizViewController.swift +++ b/Stepic/NumberQuizViewController.swift @@ -18,6 +18,9 @@ class NumberQuizViewController: QuizViewController { var dataset: String? var reply: NumberReply? + // Hack for adaptive mode (ugly layout when child quiz has padding) + var useSmallPadding: Bool = false + override func viewDidLoad() { super.viewDidLoad() @@ -27,11 +30,11 @@ class NumberQuizViewController: QuizViewController { if #available(iOS 11.0, *) { NSLayoutConstraint.activate([ - textField.leadingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.leadingAnchor, constant: 16), - textField.trailingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.trailingAnchor, constant: -16) + textField.leadingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.leadingAnchor, constant: useSmallPadding ? 8 : 16), + textField.trailingAnchor.constraint(equalTo: containerView.safeAreaLayoutGuide.trailingAnchor, constant: useSmallPadding ? -8 : -16) ]) } else { - textField.alignLeading("16", trailing: "-16", toView: containerView) + textField.alignLeading(useSmallPadding ? "8" : "16", trailing: useSmallPadding ? "-8" : "-16", toView: containerView) } textField.borderStyle = UITextBorderStyle.roundedRect diff --git a/Stepic/OnboardingCardStepViewController.swift b/Stepic/OnboardingCardStepViewController.swift index 4ccaff25d0..756cabc46b 100644 --- a/Stepic/OnboardingCardStepViewController.swift +++ b/Stepic/OnboardingCardStepViewController.swift @@ -28,6 +28,19 @@ class OnboardingCardStepViewController: CardStepViewController { stepWebView.loadHTMLString(html, baseURL: step.baseURL) } + override func refreshWebView() { + // Workaround for strange encoding bug + // Skip refreshing for onboarding + alignImages(in: self.stepWebView).then { + self.getContentHeight(self.stepWebView) + }.then { height -> Void in + self.resetWebViewHeight(Float(height)) + self.scrollView.layoutIfNeeded() + }.catch { _ in + print("onboarding card step: error while refreshing") + } + } + override func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { super.webView(webView, didFinish: navigation) delegate?.contentLoadingDidComplete() diff --git a/Stepic/QueriesAPI.swift b/Stepic/QueriesAPI.swift index e0d0beffae..22d8e8b3b9 100644 --- a/Stepic/QueriesAPI.swift +++ b/Stepic/QueriesAPI.swift @@ -19,7 +19,7 @@ class QueriesAPI: APIEndpoint { let params: Parameters = ["query": query] - return Alamofire.request("\(StepicApplicationsInfo.apiURL)/\(name)", parameters: params, headers: headers).responseSwiftyJSON({ + return manager.request("\(StepicApplicationsInfo.apiURL)/\(name)", parameters: params, headers: headers).responseSwiftyJSON({ response in var error = response.result.error diff --git a/Stepic/RemoteVersionManager.swift b/Stepic/RemoteVersionManager.swift index 1aac572ff4..b0449fe0f0 100644 --- a/Stepic/RemoteVersionManager.swift +++ b/Stepic/RemoteVersionManager.swift @@ -46,7 +46,7 @@ class RemoteVersionManager: NSObject { } fileprivate func getRemoteVersion(success: @escaping (String, String) -> Void, error errorHandler: @escaping (NSError) -> Void) -> Request { - return Alamofire.request(StepicApplicationsInfo.versionInfoURL).responseSwiftyJSON({ + return AlamofireDefaultSessionManager.shared.request(StepicApplicationsInfo.versionInfoURL).responseSwiftyJSON({ response in var error = response.result.error diff --git a/Stepic/RequestChain.swift b/Stepic/RequestChain.swift deleted file mode 100644 index e5741f706f..0000000000 --- a/Stepic/RequestChain.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// RequestChain.swift -// Stepic -// -// Created by Alexander Karpov on 29.08.16. -// Copyright © 2016 Alex Karpov. All rights reserved. -// - -import Foundation -import Alamofire - -class RequestChain { - typealias CompletionHandler = (_ success: Bool, _ errorResult: ErrorResult?) -> Void - - struct ErrorResult { - let request: URLRequest? - let error: Error? - } - - fileprivate var requests: [Request] = [] - - init(requests: [Request]) { - self.requests = requests - } - - func start(_ completionHandler: @escaping CompletionHandler) { - if let request = requests.first { - Alamofire.request(request as! URLRequestConvertible).response { - response in - if response.error != nil { - completionHandler(false, ErrorResult(request: response.request, error: response.error)) - return - } - self.requests.removeFirst() - self.start(completionHandler) - } - request.resume() - } else { - completionHandler(true, nil) - return - } - - } -} diff --git a/Stepic/SearchResultsAPI.swift b/Stepic/SearchResultsAPI.swift index 66844eec62..a9cde9b4b0 100644 --- a/Stepic/SearchResultsAPI.swift +++ b/Stepic/SearchResultsAPI.swift @@ -31,7 +31,7 @@ class SearchResultsAPI: APIEndpoint { params["language"] = l.languageString } - return Alamofire.request("\(StepicApplicationsInfo.apiURL)/search-results", method: .get, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ + return manager.request("\(StepicApplicationsInfo.apiURL)/search-results", method: .get, parameters: params, encoding: URLEncoding.default, headers: headers).responseSwiftyJSON({ response in var error = response.result.error diff --git a/Stepic/SearchResultsPresenter.swift b/Stepic/SearchResultsPresenter.swift index 2c5d225c0c..1a852028ee 100644 --- a/Stepic/SearchResultsPresenter.swift +++ b/Stepic/SearchResultsPresenter.swift @@ -53,7 +53,8 @@ class SearchResultsPresenter { if resultsVC == nil { resultsVC = ControllerHelper.instantiateViewController(identifier: "CourseListVerticalViewController", storyboardName: "CourseLists") as? CourseListVerticalViewController if let resultsVC = resultsVC { - resultsVC.presenter = CourseListPresenter(view: resultsVC, ID: "SearchCourses", limit: nil, listType: .search(query: query), colorMode: .light, onlyLocal: false, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) + resultsVC.colorMode = .light + resultsVC.presenter = CourseListPresenter(view: resultsVC, id: "SearchCourses", limit: nil, listType: .search(query: query), onlyLocal: false, subscriptionManager: CourseSubscriptionManager(), coursesAPI: CoursesAPI(), progressesAPI: ProgressesAPI(), reviewSummariesAPI: CourseReviewSummariesAPI(), searchResultsAPI: SearchResultsAPI(), subscriber: CourseSubscriber(), adaptiveStorageManager: AdaptiveStorageManager()) self.view?.set(controller: resultsVC, forState: .courses) } } else { diff --git a/Stepic/Session.swift b/Stepic/Session.swift index 0305fea8a3..64aa2241e1 100644 --- a/Stepic/Session.swift +++ b/Stepic/Session.swift @@ -28,7 +28,7 @@ class Session { let stepicURL = URL(string: stepicURLString)! delete() - return Alamofire.request(stepicURLString, parameters: nil, encoding: URLEncoding.default).response { + return AlamofireDefaultSessionManager.shared.request(stepicURLString, parameters: nil, encoding: URLEncoding.default).response { response in let error = response.error diff --git a/Stepic/StepikPlaceholderStyle+Placeholders.swift b/Stepic/StepikPlaceholderStyle+Placeholders.swift index 1a3744ebb0..765567070e 100644 --- a/Stepic/StepikPlaceholderStyle+Placeholders.swift +++ b/Stepic/StepikPlaceholderStyle+Placeholders.swift @@ -14,7 +14,7 @@ extension StepikPlaceholder.Style { text: NSLocalizedString("PlaceholderEmptyText", comment: ""), buttonTitle: NSLocalizedString("PlaceholderEmptyButton", comment: "")) static let noConnection = StepikPlaceholderStyle(id: "noConnection", - image: PlaceholderImage(image: #imageLiteral(resourceName: "new-empty-noconnection"), scale: 0.35), + image: PlaceholderImage(image: #imageLiteral(resourceName: "new-empty-noconnection"), scale: 0.49), text: NSLocalizedString("PlaceholderNoConnectionText", comment: ""), buttonTitle: NSLocalizedString("PlaceholderNoConnectionButton", comment: "")) static let emptyDownloads = StepikPlaceholderStyle(id: "emptyDownloads", @@ -28,7 +28,7 @@ extension StepikPlaceholder.Style { static let emptyNotifications = StepikPlaceholderStyle(id: "emptyNotifications", image: PlaceholderImage(image: #imageLiteral(resourceName: "new-empty-notifications"), scale: 0.48), text: NSLocalizedString("PlaceholderEmptyNotificationsText", comment: ""), - buttonTitle: NSLocalizedString("PlaceholderEmptyNotificationsButton", comment: "")) + buttonTitle: nil) static let emptyNotificationsLoading = StepikPlaceholderStyle(id: "emptyNotificationsLoading", image: PlaceholderImage(image: #imageLiteral(resourceName: "new-empty-notifications"), scale: 0.48), text: NSLocalizedString("Refreshing", comment: ""), diff --git a/Stepic/StepikPlaceholderView.swift b/Stepic/StepikPlaceholderView.swift index 11080d504a..167342949d 100644 --- a/Stepic/StepikPlaceholderView.swift +++ b/Stepic/StepikPlaceholderView.swift @@ -63,7 +63,7 @@ class StepikPlaceholderView: NibInitializableView { actionButton.layer.borderWidth = 0.5 actionButton.layer.borderColor = UIColor(red: 204 / 255, green: 204 / 255, blue: 204 / 255, alpha: 1.0).cgColor - actionButton.contentEdgeInsets = UIEdgeInsets(top: 14.0, left: 25.0, bottom: 14.0, right: 25.0) + actionButton.contentEdgeInsets = UIEdgeInsets(top: 12.0, left: 23.0, bottom: 12.0, right: 23.0) actionButton.setTitleColor(UIColor(red: 83 / 255, green: 83 / 255, blue: 102 / 255, alpha: 1.0), for: .normal) } @@ -111,29 +111,43 @@ class StepikPlaceholderView: NibInitializableView { if isVertical { stackView.axis = .vertical stackView.distribution = .equalCentering + stackView.alignment = .fill } else { stackView.axis = .horizontal stackView.distribution = .fillEqually + stackView.alignment = .center + } + } + + override func updateConstraints() { + super.updateConstraints() + if let currentPlaceholder = self.currentPlaceholder { + self.rebuildConstraints(for: currentPlaceholder) } } override func layoutSubviews() { super.layoutSubviews() - DispatchQueue.main.async { [weak self] in - if let currentPlaceholder = self?.currentPlaceholder { - self?.rebuildConstraints(for: currentPlaceholder) - } - } + setNeedsUpdateConstraints() + updateConstraintsIfNeeded() } func set(placeholder: StepikPlaceholderStyle) { - currentPlaceholder = placeholder - imageView.image = placeholder.image?.image textLabel.text = placeholder.text - actionButton.setTitle(placeholder.buttonTitle, for: .normal) + // If it's first load prevent button title change animation + if currentPlaceholder == nil { + UIView.performWithoutAnimation { + self.actionButton.setTitle(placeholder.buttonTitle, for: .normal) + self.actionButton.layoutIfNeeded() + } + } else { + actionButton.setTitle(placeholder.buttonTitle, for: .normal) + } + + currentPlaceholder = placeholder rebuildConstraints(for: placeholder) } } diff --git a/Stepic/StepikPlaceholderView.xib b/Stepic/StepikPlaceholderView.xib index dab64f3cfb..33f3f69ef2 100644 --- a/Stepic/StepikPlaceholderView.xib +++ b/Stepic/StepikPlaceholderView.xib @@ -1,15 +1,14 @@ - + - - + - + @@ -26,14 +25,14 @@ - - + + - + - + @@ -50,19 +49,22 @@ - + - + -