Suraj Kumar Mandal hace 1 año
padre
commit
bf3671afe0
Se han modificado 100 ficheros con 11739 adiciones y 182 borrados
  1. 892 8
      LMS.xcodeproj/project.pbxproj
  2. 0 0
      LMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  3. 0 0
      LMS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  4. 14 0
      LMS.xcodeproj/xcuserdata/suraj.xcuserdatad/xcschemes/xcschememanagement.plist
  5. 1 1
      LMS.xcodeproj/xcuserdata/surajkumarmandal.xcuserdatad/xcschemes/xcschememanagement.plist
  6. 10 0
      LMS.xcworkspace/contents.xcworkspacedata
  7. 8 0
      LMS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  8. 6 0
      LMS.xcworkspace/xcuserdata/surajkumarmandal.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  9. 0 0
      LMS/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png
  10. 0 0
      LMS/Assets.xcassets/Finlabs.imageset/Contents.json
  11. 0 0
      LMS/Assets.xcassets/Finlabs.imageset/Finlabs.png
  12. 0 0
      LMS/Assets.xcassets/Hinduja College.imageset/Contents.json
  13. 0 0
      LMS/Assets.xcassets/Hinduja College.imageset/Hinduja College.png
  14. 0 0
      LMS/Assets.xcassets/Hinduja Foundation (Blue).imageset/Contents.json
  15. 0 0
      LMS/Assets.xcassets/Hinduja Foundation (Blue).imageset/Hinduja Foundation (Blue).png
  16. 0 0
      LMS/Assets.xcassets/Hinduja Foundation (White).imageset/Contents.json
  17. 0 0
      LMS/Assets.xcassets/Hinduja Foundation (White).imageset/Hinduja Foundation (White).png
  18. 0 0
      LMS/Assets.xcassets/ic_slno_bannar.imageset/Rectangle 480.png
  19. 0 0
      LMS/Assets.xcassets/login-lock.imageset/Contents.json
  20. 0 0
      LMS/Assets.xcassets/login-lock.imageset/login-lock.png
  21. 0 0
      LMS/Assets.xcassets/newAssessment-image.imageset/Contents.json
  22. 0 0
      LMS/Assets.xcassets/newAssessment-image.imageset/newAssessment-image.svg
  23. 0 0
      LMS/Assets.xcassets/orange.colorset/Contents.json
  24. 0 0
      LMS/Assets.xcassets/secondary.colorset/Contents.json
  25. 0 0
      LMS/Assets.xcassets/study-material.imageset/Group 426.png
  26. 0 0
      LMS/Bridge-Header.h
  27. 8 0
      LMS/Cells/CollectionView/NewAssessmentCollectionViewCell.swift
  28. 11 0
      LMS/Cells/CollectionView/QuestionNumberCollectionViewCell.swift
  29. 5 0
      LMS/Cells/CollectionView/UnitsCollectionViewCell.swift
  30. 11 0
      LMS/Cells/TableView/AssessmentListTableViewCell.swift
  31. 4 0
      LMS/Cells/TableView/ContentListTableViewCell.swift
  32. 37 0
      LMS/Cells/TableView/DashboardAssessmentListTableViewCell.swift
  33. 35 0
      LMS/Cells/TableView/DashboardSessionListTableViewCell.swift
  34. 14 4
      LMS/Cells/TableView/DragTableViewCell.swift
  35. 2 0
      LMS/Cells/TableView/InstructionTableViewCell.swift
  36. 3 0
      LMS/Cells/TableView/LessonTableViewCell.swift
  37. 25 7
      LMS/Cells/TableView/MCQTableViewCell.swift
  38. 6 0
      LMS/Cells/TableView/MeetingListTableViewCell.swift
  39. 4 0
      LMS/Cells/TableView/MenuHeaderTableViewCell.swift
  40. 4 0
      LMS/Cells/TableView/MenuTableViewCell.swift
  41. 3 0
      LMS/Cells/TableView/NotificationTableViewCell.swift
  42. 5 0
      LMS/Cells/TableView/OfflineMeetingTableViewCell.swift
  43. 14 1
      LMS/Cells/TableView/SessionListTableViewCell.swift
  44. 19 1
      LMS/Cells/TableView/TrueFalseTableViewCell.swift
  45. 3 0
      LMS/Cells/TableView/ViewAnswerOptionsTableViewCell.swift
  46. 2 0
      LMS/Cells/TableView/ViewAnswerQuestionTableViewCell.swift
  47. 147 0
      LMS/Constant/AppConstant.swift
  48. 29 0
      LMS/Constant/DispatchQueue+Extensions.swift
  49. 112 0
      LMS/Constant/Extension.swift
  50. 51 0
      LMS/Database/DBManager.swift
  51. 12 8
      LMS/Delegate/AppDelegate.swift
  52. 0 0
      LMS/Delegate/SceneDelegate.swift
  53. 2 0
      LMS/Info.plist
  54. 38 0
      LMS/Library/ActivityIndicator.swift
  55. 72 0
      LMS/Library/Alert.swift
  56. 14 0
      LMS/Library/AutoAdjustableTable.swift
  57. 54 0
      LMS/Library/Date+Picker.swift
  58. 201 0
      LMS/Library/GIFMaker.swift
  59. 17 0
      LMS/Library/PaddedTextField.swift
  60. 30 0
      LMS/Library/Reachability.swift
  61. 20 0
      LMS/Library/RoundedCorners+ImageView.swift
  62. 18 0
      LMS/Library/String+Indexpath.swift
  63. 47 0
      LMS/Library/ToolbarPickerView.swift
  64. 11 0
      LMS/Model/AllSubmittedAnswers.swift
  65. 22 0
      LMS/Model/AnswerSubmitModel.swift
  66. 295 0
      LMS/Model/AssessmentListModel.swift
  67. 28 0
      LMS/Model/AssessmentResultModel.swift
  68. 12 0
      LMS/Model/AssessmentSubmitModel.swift
  69. 153 0
      LMS/Model/BatchListModel.swift
  70. 456 1
      LMS/Model/CalendarModel.swift
  71. 14 0
      LMS/Model/InterventionLevelModel.swift
  72. 115 0
      LMS/Model/LessonListModel.swift
  73. 63 0
      LMS/Model/LessonModel.swift
  74. 57 0
      LMS/Model/NewAssessmentModel.swift
  75. 26 0
      LMS/Model/QuizModel.swift
  76. 78 0
      LMS/Model/SessionInterventionModel.swift
  77. 220 0
      LMS/Model/SessionListModel.swift
  78. 29 0
      LMS/Model/StudentDetailsModel.swift
  79. 63 0
      LMS/Model/UnitsListModel.swift
  80. 90 0
      LMS/Model/UserDetailsModel.swift
  81. 6 22
      LMS/Storyboard/Base.lproj/LaunchScreen.storyboard
  82. 4665 6
      LMS/Storyboard/Base.lproj/Main.storyboard
  83. 199 0
      LMS/View Controller/AssessmentBeneficiaryViewController.swift
  84. 64 11
      LMS/View Controller/AudioViewController.swift
  85. 122 9
      LMS/View Controller/CalendarViewController.swift
  86. 301 9
      LMS/View Controller/DashboardViewController.swift
  87. 87 10
      LMS/View Controller/InstructionViewController.swift
  88. 129 9
      LMS/View Controller/LessonListViewController.swift
  89. 79 0
      LMS/View Controller/LessonViewController.swift
  90. 113 10
      LMS/View Controller/LoginViewController.swift
  91. 108 0
      LMS/View Controller/MeetingListViewController.swift
  92. 101 0
      LMS/View Controller/NewAssessmentViewController.swift
  93. 594 9
      LMS/View Controller/NewQuizViewController.swift
  94. 22 0
      LMS/View Controller/NotificationViewController.swift
  95. 157 9
      LMS/View Controller/OfflineAssessmentViewController.swift
  96. 78 10
      LMS/View Controller/PdfReaderViewController.swift
  97. 418 9
      LMS/View Controller/QuizViewController.swift
  98. 94 10
      LMS/View Controller/ScromViewController.swift
  99. 455 8
      LMS/View Controller/SessionListViewController.swift
  100. 205 10
      LMS/View Controller/SideMenuViewController.swift

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 892 - 8
LMS.xcodeproj/project.pbxproj


+ 0 - 0
LMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata


+ 0 - 0
LMS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist


+ 14 - 0
LMS.xcodeproj/xcuserdata/suraj.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>LMS.xcscheme_^#shared#^_</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>

+ 1 - 1
LMS.xcodeproj/xcuserdata/surajkumarmandal.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>LMS.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>0</integer>
+			<integer>14</integer>
 		</dict>
 	</dict>
 </dict>

+ 10 - 0
LMS.xcworkspace/contents.xcworkspacedata

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:LMS.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>

+ 8 - 0
LMS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>

+ 6 - 0
LMS.xcworkspace/xcuserdata/surajkumarmandal.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   uuid = "FC7383A4-CEFF-4917-9E27-E7699CC6D79C"
+   type = "0"
+   version = "2.0">
+</Bucket>

+ 0 - 0
LMS/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png


+ 0 - 0
LMS/Assets.xcassets/Finlabs.imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/Finlabs.imageset/Finlabs.png


+ 0 - 0
LMS/Assets.xcassets/Hinduja College.imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/Hinduja College.imageset/Hinduja College.png


+ 0 - 0
LMS/Assets.xcassets/Hinduja Foundation (Blue).imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/Hinduja Foundation (Blue).imageset/Hinduja Foundation (Blue).png


+ 0 - 0
LMS/Assets.xcassets/Hinduja Foundation (White).imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/Hinduja Foundation (White).imageset/Hinduja Foundation (White).png


+ 0 - 0
LMS/Assets.xcassets/ic_slno_bannar.imageset/Rectangle 480.png


+ 0 - 0
LMS/Assets.xcassets/login-lock.imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/login-lock.imageset/login-lock.png


+ 0 - 0
LMS/Assets.xcassets/newAssessment-image.imageset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/newAssessment-image.imageset/newAssessment-image.svg


+ 0 - 0
LMS/Assets.xcassets/orange.colorset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/secondary.colorset/Contents.json


+ 0 - 0
LMS/Assets.xcassets/study-material.imageset/Group 426.png


+ 0 - 0
LMS/Bridge-Header.h


+ 8 - 0
LMS/Cells/CollectionView/NewAssessmentCollectionViewCell.swift

@@ -9,4 +9,12 @@ import UIKit
 
 class NewAssessmentCollectionViewCell: UICollectionViewCell {
     
+    @IBOutlet var customView: UIView!
+    @IBOutlet var testImageView: RoundedTopCornersImageView!
+    @IBOutlet var testNameLabel: UILabel!
+    @IBOutlet var takeExamButton: UIButton!
+    @IBOutlet var scoreLabel: UILabel!
+    @IBOutlet var attemptsLabel: UILabel!
+    @IBOutlet var serialNoLabel: UILabel!
+    
 }

+ 11 - 0
LMS/Cells/CollectionView/QuestionNumberCollectionViewCell.swift

@@ -9,4 +9,15 @@ import UIKit
 
 class QuestionNumberCollectionViewCell: UICollectionViewCell {
     
+    @IBOutlet var customCellView: UIView!
+    @IBOutlet var serialNoLabel: UILabel!
+    
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        
+        // Customize the appearance of your cell's content view
+        customCellView.layer.cornerRadius = 20
+        customCellView.clipsToBounds = true
+    }
+    
 }

+ 5 - 0
LMS/Cells/CollectionView/UnitsCollectionViewCell.swift

@@ -9,4 +9,9 @@ import UIKit
 
 class UnitsCollectionViewCell: UICollectionViewCell {
     
+    @IBOutlet var customView: UIView!
+    @IBOutlet var subjectNameLabel: UILabel!
+    @IBOutlet var subjectImageView: UIImageView!
+    @IBOutlet var serialNumberLabel: UILabel!
+    
 }

+ 11 - 0
LMS/Cells/TableView/AssessmentListTableViewCell.swift

@@ -8,6 +8,17 @@
 import UIKit
 
 class AssessmentListTableViewCell: UITableViewCell {
+    
+    @IBOutlet var customView: UIView!
+    @IBOutlet var backgroundImageView: UIImageView!
+    @IBOutlet var serialNoLabel: UILabel!
+    @IBOutlet var activeStatusLabel: UILabel!
+    @IBOutlet var activeStatusImageView: UIImageView!
+    @IBOutlet var dateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    @IBOutlet var startButton: UIButton!
+    @IBOutlet var assessmentNameLabel: UILabel!
+    
 
     override func awakeFromNib() {
         super.awakeFromNib()

+ 4 - 0
LMS/Cells/TableView/ContentListTableViewCell.swift

@@ -9,6 +9,10 @@ import UIKit
 
 class ContentListTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var contentLabel: UILabel!
+    @IBOutlet var contentImageView: UIImageView!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 37 - 0
LMS/Cells/TableView/DashboardAssessmentListTableViewCell.swift

@@ -9,6 +9,16 @@ import UIKit
 
 class DashboardAssessmentListTableViewCell: UITableViewCell {
 
+    @IBOutlet var assessmentCustomView: UIView!
+    @IBOutlet var assessmentNameLabel: UILabel!
+    @IBOutlet var dropdownButton: UIButton!
+    @IBOutlet var hiddenCustomView: UIView!
+    @IBOutlet var dayDateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    @IBOutlet var startButton: UIButton!
+    @IBOutlet var activeStatusLabel: UILabel!
+    @IBOutlet var statusIndicatorImageView: UIImageView!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
@@ -18,6 +28,33 @@ class DashboardAssessmentListTableViewCell: UITableViewCell {
         super.setSelected(selected, animated: animated)
 
         // Configure the view for the selected state
+        if isDetailViewHidden, selected {
+            showDetailView()
+        } else {
+            hideDetailView()
+        }
+    }
+    
+    func commonInit() {
+        selectionStyle = .none
+        hiddenCustomView.isHidden = true
+        dropdownButton.setImage(UIImage(systemName: "chevron.right"), for: .normal)
+    }
+
+}
+
+extension DashboardAssessmentListTableViewCell {
+    var isDetailViewHidden: Bool {
+        return hiddenCustomView.isHidden
+    }
+
+    func showDetailView() {
+        hiddenCustomView.isHidden = false
+        dropdownButton.setImage(UIImage(systemName: "chevron.down"), for: .normal)
     }
 
+    func hideDetailView() {
+        hiddenCustomView.isHidden = true
+        dropdownButton.setImage(UIImage(systemName: "chevron.right"), for: .normal)
+    }
 }

+ 35 - 0
LMS/Cells/TableView/DashboardSessionListTableViewCell.swift

@@ -9,6 +9,14 @@ import UIKit
 
 class DashboardSessionListTableViewCell: UITableViewCell {
 
+    @IBOutlet var sessionCustomView: UIView!
+    @IBOutlet var sessionNameLabel: UILabel!
+    @IBOutlet var dropdownArrowButton: UIButton!
+    @IBOutlet var hiddenView: UIView!
+    @IBOutlet var dayDateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    @IBOutlet var joinButton: UIButton!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
@@ -18,6 +26,33 @@ class DashboardSessionListTableViewCell: UITableViewCell {
         super.setSelected(selected, animated: animated)
 
         // Configure the view for the selected state
+        if isDetailViewHidden, selected {
+            showDetailView()
+        } else {
+            hideDetailView()
+        }
+    }
+    
+    func commonInit() {
+        selectionStyle = .none
+        hiddenView.isHidden = true
+        dropdownArrowButton.setImage(UIImage(systemName: "chevron.right"), for: .normal)
+    }
+
+}
+
+extension DashboardSessionListTableViewCell {
+    var isDetailViewHidden: Bool {
+        return hiddenView.isHidden
+    }
+
+    func showDetailView() {
+        hiddenView.isHidden = false
+        dropdownArrowButton.setImage(UIImage(systemName: "chevron.down"), for: .normal)
     }
 
+    func hideDetailView() {
+        hiddenView.isHidden = true
+        dropdownArrowButton.setImage(UIImage(systemName: "chevron.right"), for: .normal)
+    }
 }

+ 14 - 4
LMS/Cells/TableView/DragTableViewCell.swift

@@ -8,16 +8,26 @@
 import UIKit
 
 class DragTableViewCell: UITableViewCell {
-
+    
+    @IBOutlet var optionLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
     }
-
+    
     override func setSelected(_ selected: Bool, animated: Bool) {
         super.setSelected(selected, animated: animated)
-
+        
         // Configure the view for the selected state
     }
-
+    
+    override func layoutSubviews() {
+        super.layoutSubviews()
+        //set the values for top,left,bottom,right margins
+        let margins = UIEdgeInsets(top: 5, left: 0, bottom: 5, right: 0)
+        contentView.frame = contentView.frame.inset(by: margins)
+        contentView.layer.cornerRadius = 8
+    }
+    
 }

+ 2 - 0
LMS/Cells/TableView/InstructionTableViewCell.swift

@@ -9,6 +9,8 @@ import UIKit
 
 class InstructionTableViewCell: UITableViewCell {
 
+    @IBOutlet var instructionLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 3 - 0
LMS/Cells/TableView/LessonTableViewCell.swift

@@ -9,6 +9,9 @@ import UIKit
 
 class LessonTableViewCell: UITableViewCell {
 
+    @IBOutlet var customCellView: UIView!
+    @IBOutlet var lessonNameLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 25 - 7
LMS/Cells/TableView/MCQTableViewCell.swift

@@ -8,16 +8,34 @@
 import UIKit
 
 class MCQTableViewCell: UITableViewCell {
-
+    
+    @IBOutlet var customView: UIView!
+    @IBOutlet var checkButton: UIButton!
+    @IBOutlet var optionLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
     }
-
-    override func setSelected(_ selected: Bool, animated: Bool) {
-        super.setSelected(selected, animated: animated)
-
-        // Configure the view for the selected state
+    
+//    override func setSelected(_ selected: Bool, animated: Bool) {
+//        super.setSelected(selected, animated: animated)
+//        
+//        // Configure the view for the selected state
+//        if selected {
+//            self.checkButton.setImage(UIImage(systemName: "checkmark.square"), for: .normal)
+//        } else {
+//            self.checkButton.setImage(UIImage(systemName: "square"), for: .normal)
+//        }
+//    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        self.selectionStyle = .none
     }
-
+    
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+    }
+    
 }

+ 6 - 0
LMS/Cells/TableView/MeetingListTableViewCell.swift

@@ -9,6 +9,12 @@ import UIKit
 
 class MeetingListTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var meetingNameLabel: UILabel!
+    @IBOutlet var dayDateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    @IBOutlet var joinClassButton: UIButton!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 4 - 0
LMS/Cells/TableView/MenuHeaderTableViewCell.swift

@@ -9,6 +9,10 @@ import UIKit
 
 class MenuHeaderTableViewCell: UITableViewCell {
 
+    @IBOutlet var userNameLabel: UILabel!
+    @IBOutlet var cancelButton: UIButton!
+    @IBOutlet var appVersionLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 4 - 0
LMS/Cells/TableView/MenuTableViewCell.swift

@@ -9,6 +9,10 @@ import UIKit
 
 class MenuTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var menuIconImageView: UIImageView!
+    @IBOutlet var menuNameLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 3 - 0
LMS/Cells/TableView/NotificationTableViewCell.swift

@@ -9,6 +9,9 @@ import UIKit
 
 class NotificationTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var messageLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 5 - 0
LMS/Cells/TableView/OfflineMeetingTableViewCell.swift

@@ -9,6 +9,11 @@ import UIKit
 
 class OfflineMeetingTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var meetingNameLabel: UILabel!
+    @IBOutlet var dateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 14 - 1
LMS/Cells/TableView/SessionListTableViewCell.swift

@@ -8,7 +8,20 @@
 import UIKit
 
 class SessionListTableViewCell: UITableViewCell {
-
+    
+    @IBOutlet var listCustomView: UIView!
+    @IBOutlet var backgroundImageView: UIImageView!
+    @IBOutlet var serialNumberLabel: UILabel!
+    @IBOutlet var meetingNameLabel: UILabel!
+    @IBOutlet var activeStatusLabel: UILabel!
+    @IBOutlet var activeIndicatorImageView: UIImageView!
+    @IBOutlet var dateLabel: UILabel!
+    @IBOutlet var timeLabel: UILabel!
+    @IBOutlet var teacherLabel: UILabel!
+    @IBOutlet var interventionNameLabel: UILabel!
+    @IBOutlet var batchLabel: UILabel!
+    @IBOutlet var joinClassButton: UIButton!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code

+ 19 - 1
LMS/Cells/TableView/TrueFalseTableViewCell.swift

@@ -9,6 +9,10 @@ import UIKit
 
 class TrueFalseTableViewCell: UITableViewCell {
 
+    @IBOutlet var customView: UIView!
+    @IBOutlet var selectButton: UIButton!
+    @IBOutlet var optionLabel: UILabel!
+    
     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
@@ -16,8 +20,22 @@ class TrueFalseTableViewCell: UITableViewCell {
 
     override func setSelected(_ selected: Bool, animated: Bool) {
         super.setSelected(selected, animated: animated)
-
+        
         // Configure the view for the selected state
+        if selected {
+            self.selectButton.setImage(UIImage(systemName: "circle.inset.filled"), for: .normal)
+        } else {
+            self.selectButton.setImage(UIImage(systemName: "circle"), for: .normal)
+        }
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        self.selectionStyle = .none
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
     }
 
 }

+ 3 - 0
LMS/Cells/TableView/ViewAnswerOptionsTableViewCell.swift

@@ -8,6 +8,9 @@
 import UIKit
 
 class ViewAnswerOptionsTableViewCell: UITableViewCell {
+    
+    @IBOutlet var dotImageView: UIImageView!
+    @IBOutlet var choiceLabel: UILabel!
 
     override func awakeFromNib() {
         super.awakeFromNib()

+ 2 - 0
LMS/Cells/TableView/ViewAnswerQuestionTableViewCell.swift

@@ -8,6 +8,8 @@
 import UIKit
 
 class ViewAnswerQuestionTableViewCell: UITableViewCell {
+    
+    @IBOutlet var questionLabel: UILabel!
 
     override func awakeFromNib() {
         super.awakeFromNib()

+ 147 - 0
LMS/Constant/AppConstant.swift

@@ -5,4 +5,151 @@
 //  Created by Suraj Kumar Mandal on 17/08/22.
 //
 
+import UIKit
 import Foundation
+
+struct AppConstant {
+    
+    // App colors
+    static let BASE_COLOR = #colorLiteral(red: 0, green: 0.2823529412, blue: 0.6431372549, alpha: 1)
+    
+    //Alert View Constants
+    static let Ok                      = "OK"
+    static let defaultTitle            = "Alert"
+    static let defaultMsg              = "Something went wrong"
+    static let internetAlertTitle      = "No Internet"
+    static let internetAlertMessage    = "Internet connection is not available, please check your internet connection and try again"
+    
+    static let quizInstruction = ["There will be 5 questions for digital literacy assessment.", "For each question only one possible answer can be given.", "You have to choose the correct one by clicking the mouse.", "Exam can be accessed only twice before final submission.", "The time limit will be 5 minutes."]
+    
+    static let answerInstruction = ["Drag And Drop Correct Match From Right Hand Side", "Enter Answer In Input Box", "Select [ One ] Options", "Select [ One / More Than One ] Options", "Choose One Option"]
+    
+    // QUiz constants
+    static let MultipleMCQ = "Multiple select MCQ"
+    static let SingleMCQ = "Single select MCQ"
+    static let Match = "Match the following"
+    static let Fill = "Fill in the blanks"
+    static let TrueFalse = "True and False"
+    
+    static let boolOption = ["True", "False"]
+    
+    // API's constant values
+    static let ProdClientSecret = "IYTMU3ULXzXZ6XYSZMKtrJzpRmkXusZr"
+    static let DevClientSecret = "YRA0h2JB0vLyChqLSarWXPsU2LdPaaZN"
+    
+    static let ClientSecret = ProdClientSecret
+    static let ClientId = "lms-mobile-app"
+    
+}
+
+struct ApiURL {
+    
+    private struct ProdUrl {
+        static let Keycloak = "https://hindujaauth.finlabsindia.org"
+        static let AppData = "https://hindujalms.finlabsindia.org:444"
+    }
+    
+    private struct DevUrl {
+        static let Keycloak = "https://keytest.finlabsindia.org"
+        static let AppData = "https://hindujadev.finlabsindia.org:444"
+    }
+    
+    private  static let KeycloakDomain = ProdUrl.Keycloak
+    private  static let AppDataDomain = ProdUrl.AppData
+        
+    static var AccessToken: String {
+        return KeycloakDomain + "/realms/lms/protocol/openid-connect/token"
+    }
+    
+    static var GetUserDetails: String {
+        return AppDataDomain + "/user/api/v1/lms-user/getUserByUserId"
+    }
+    
+    static var GetStudentDetails: String {
+        return AppDataDomain + "/admin/api/v1/lms-admin/student/getStudentDetailsByUserId"
+    }
+    
+    static var GetSessionList: String {
+        return AppDataDomain + "/admin/api/v1/lms-admin/calendar"
+    }
+    
+    static var GetAssessmentList: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/schedule/getByUserId"
+    }
+    
+    static var GetCalendarData: String {
+        return AppDataDomain + "/admin/api/v1/lms-admin/schedule/light/user"
+    }
+    
+    static var GetSessionIntervention: String {
+        return AppDataDomain + "/admin/api/v1/lms-admin/interventions/view"
+    }
+    
+    static var GetInterventionLevel: String {
+        return AppDataDomain + "admin/api/v1/lms-admin/interventions/intervention-level/byInterventionId"
+    }
+    
+    static var GetBatchList: String {
+        return AppDataDomain + "/batch/api/v1/lms-batch/batch/list/Approved"
+    }
+    
+    static var GetUnitsList: String {
+        return AppDataDomain + "/content/api/v1/lms-content/unit/getByUserId"
+    }
+    
+    static var GetLessons: String {
+        return AppDataDomain + "/content/api/v1/lms-content/lesson/filter"
+    }
+    
+    static var GetLessonsList: String {
+        return AppDataDomain + "/content/api/v1/lms-content/content/filter"
+    }
+    
+    static var DownloadBase64: String {
+        return AppDataDomain + "/files/files/download/base64"
+    }
+    
+    static var GetQuizAttempts: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/attempt/mgmt/user/attempts"
+    }
+    
+    static var GetQuizData: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/data/mgmt/beneficiary/assessment"
+    }
+    
+    static var GetQuizTime: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/data/mgmt/assessment/time"
+    }
+    
+    static var SubmitQuizAnswer: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/attempt/mgmt/user/answer/post"
+    }
+    
+    static var UploadAssessment: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/attempt/mgmt/offline/upload"
+    }
+    
+    static var GetNewAssessmentList: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/getAssessmentList"
+    }
+    
+    static var SubmitAnswer: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/attempt/mgmt/user/answer/post2"
+    }
+    
+    static var SubmitTotalAssessment: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/attempt/mgmt/submit/assignment2"
+    }
+    
+    static var GeAllSubmittedAnswers: String {
+        return AppDataDomain + "/lms-assessment-service/api/v1/lms_assessment/getAllAnswerAttemptByUser"
+    }
+    
+}
+
+struct PlaceHolderText {
+    
+    static let UserName = "Username or email"
+    static let Password = "Password"
+}
+

+ 29 - 0
LMS/Constant/DispatchQueue+Extensions.swift

@@ -6,3 +6,32 @@
 //
 
 import Foundation
+
+typealias Dispatch = DispatchQueue
+
+extension Dispatch {
+    
+    static func background(_ task: @escaping () -> ()) {
+        Dispatch.global(qos: .background).async {
+            task()
+        }
+    }
+    
+    static func main(_ task: @escaping () -> ()) {
+        Dispatch.main.async {
+            task()
+        }
+    }
+    
+}
+
+//Usage
+/*
+Dispatch.background {
+    // do stuff
+
+    Dispatch.main {
+        // update UI
+    }
+}
+*/

+ 112 - 0
LMS/Constant/Extension.swift

@@ -6,3 +6,115 @@
 //
 
 import Foundation
+import UIKit
+
+extension UIApplication {
+    class func isFirstLaunch() -> Bool {
+        if !UserDefaults.standard.bool(forKey: "hasBeenLaunchedBeforeFlag") {
+            UserDefaults.standard.set(true, forKey: "hasBeenLaunchedBeforeFlag")
+            UserDefaults.standard.synchronize()
+            return true
+        }
+        return false
+    }
+}
+
+extension UIWindow {
+    static var key: UIWindow? {
+        if #available(iOS 13, *) {
+            return UIApplication.shared.windows.first { $0.isKeyWindow }
+        } else {
+            return UIApplication.shared.keyWindow
+        }
+    }
+}
+
+extension UIApplication {
+    static var release: String {
+        return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String? ?? "x.x"
+    }
+    static var build: String {
+        return Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String? ?? "x"
+    }
+    static var version: String {
+        return "\(release).\(build)"
+    }
+}
+
+extension UIView {
+    func dropShadow(scale: Bool = true) {
+        layer.masksToBounds = false
+        layer.shadowColor = UIColor.black.cgColor
+        layer.shadowOpacity = 0.2
+        layer.shadowOffset = .zero
+        layer.shadowRadius = 1
+        layer.shouldRasterize = true
+        layer.rasterizationScale = scale ? UIScreen.main.scale : 1
+    }
+    
+    func addShadow() {
+        self.layer.shadowColor = UIColor.gray.cgColor
+        self.layer.shadowOffset = CGSize(width: 1, height: 1)
+        self.layer.shadowOpacity = 1
+    }
+}
+
+extension UIScrollView {
+    func scrollToTop() {
+        let desiredOffset = CGPoint(x: 0, y: -contentInset.top)
+        setContentOffset(desiredOffset, animated: true)
+    }
+}
+
+extension UIScrollView {
+    func scrollViewToTop( _ someView:UIView){
+        let targetViewTop = someView.frame.origin.y
+        let viewToTop = targetViewTop - self.contentInset.top
+        self.setContentOffset(CGPoint(x: 0, y: viewToTop), animated: true)
+    }
+}
+
+extension Bundle {
+    // Name of the app - title under the icon.
+    var displayName: String? {
+        return object(forInfoDictionaryKey: "CFBundleDisplayName") as? String ??
+        object(forInfoDictionaryKey: "CFBundleName") as? String
+    }
+}
+
+extension UIDatePicker {
+    func setMonthYearPicker() {
+        self.datePickerMode = .date
+        let currentDate = Date()
+        self.maximumDate = currentDate
+        let calendar = Calendar(identifier: .gregorian)
+        var components = calendar.dateComponents([.year, .month], from: currentDate)
+        components.calendar = calendar
+        self.date = components.date!
+    }
+}
+
+extension Encodable {
+    func toDictionary() -> [String: Any]? {
+        guard let data = try? JSONEncoder().encode(self) else {
+            return nil
+        }
+        
+        return (try? JSONSerialization.jsonObject(with: data, options: .allowFragments)) as? [String: Any]
+    }
+}
+
+extension UIViewController {
+    func dismissAllAlerts() {
+        if let rootViewController = UIApplication.shared.windows.first?.rootViewController {
+            var topViewController = rootViewController
+            while let presentedViewController = topViewController.presentedViewController {
+                if let alert = presentedViewController as? UIAlertController {
+                    alert.dismiss(animated: false, completion: nil)
+                }
+                topViewController = presentedViewController
+            }
+        }
+    }
+}
+

+ 51 - 0
LMS/Database/DBManager.swift

@@ -6,3 +6,54 @@
 //
 
 import Foundation
+import RealmSwift
+
+class DBManager {
+    
+    public var database:Realm
+    static let sharedInstance = DBManager()
+    
+    private init() {
+        database = try! Realm()
+    }
+    
+    //
+    //    func getDataFromDB(objs: [Object]) -> Results<Object> {
+    //
+    //        let results: Results<Object> = database.objects(objs.self)
+    //        return results
+    //    }
+    
+    
+    func getObjects(type: Object.Type) -> Results<Object>? {
+        //return database.objects(type)
+        
+        let results: Results<Object> = database.objects(type)
+        print("Get Objects")
+        return results
+    }
+    
+    
+    func addData(objs: [Object]) {
+        try! database.write {
+            database.add(objs,update: .modified)
+            print("Added new object")
+        }
+    }
+    
+    func deleteAllDatabase()  {
+        try! database.write {
+            database.deleteAll()
+            // database.refresh();
+            print("Delete all database")
+        }
+    }
+    
+    func deleteFromDb(object: [Object]) {
+        try! database.write {
+            database.delete(object)
+            print("Delete from database")
+        }
+    }
+    
+}

+ 12 - 8
LMS/Delegate/AppDelegate.swift

@@ -9,28 +9,32 @@ import UIKit
 
 @main
 class AppDelegate: UIResponder, UIApplicationDelegate {
-
-
-
+    
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
         // Override point for customization after application launch.
+        UserDefaults.standard.set(1, forKey: "menuActiveIndex")
+        UserDefaults.standard.synchronize()
         return true
     }
-
+    
+    func applicationWillTerminate(_ application: UIApplication) {
+        UserDefaults.standard.removeObject(forKey: "menuActiveIndex")
+        UserDefaults.standard.synchronize()
+    }
+    
     // MARK: UISceneSession Lifecycle
-
+    
     func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
         // Called when a new scene session is being created.
         // Use this method to select a configuration to create the new scene with.
         return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
     }
-
+    
     func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
         // Called when the user discards a scene session.
         // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
         // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
     }
-
-
+    
 }
 

+ 0 - 0
LMS/Delegate/SceneDelegate.swift


+ 2 - 0
LMS/Info.plist

@@ -21,5 +21,7 @@
 			</array>
 		</dict>
 	</dict>
+	<key>UIFileSharingEnabled</key>
+	<true/>
 </dict>
 </plist>

+ 38 - 0
LMS/Library/ActivityIndicator.swift

@@ -5,4 +5,42 @@
 //  Created by Suraj Kumar Mandal on 25/08/22.
 //
 
+import UIKit
 import Foundation
+
+class ActivityIndicator: UIViewController {
+    
+    internal static var spinner: UIActivityIndicatorView?
+    public static var style: UIActivityIndicatorView.Style = .large
+    public static var baseBackColor = UIColor.black.withAlphaComponent(0.5)
+    public static var baseColor = UIColor.lightGray
+    
+    public static func start(style: UIActivityIndicatorView.Style = style, backColor: UIColor = baseBackColor, baseColor: UIColor = baseColor) {
+        NotificationCenter.default.addObserver(self, selector: #selector(update), name: UIDevice.orientationDidChangeNotification, object: nil)
+        if spinner == nil, let window = UIWindow.key {
+            let frame = UIScreen.main.bounds
+            spinner = UIActivityIndicatorView(frame: frame)
+            spinner!.backgroundColor = backColor
+            spinner!.style = style
+            spinner?.color = baseColor
+            window.addSubview(spinner!)
+            spinner!.startAnimating()
+        }
+    }
+    
+    public static func stop() {
+        if spinner != nil {
+            spinner!.stopAnimating()
+            spinner!.removeFromSuperview()
+            spinner = nil
+        }
+    }
+    
+    @objc public static func update() {
+        if spinner != nil {
+            stop()
+            start()
+        }
+    }
+    
+}

+ 72 - 0
LMS/Library/Alert.swift

@@ -6,3 +6,75 @@
 //
 
 import Foundation
+import UIKit
+
+struct Alert {
+    
+    static func showAlert(on vc:UIViewController, with title:String, message:String) {
+        let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
+        alert.addAction(UIAlertAction(title: AppConstant.Ok, style: .default, handler: nil))
+        DispatchQueue.main.async {
+            vc.present(alert, animated: true, completion: nil)
+        }
+    }
+    
+    static func showAlertWithAction(vc:UIViewController,
+                                    title: String,
+                                    message: String,
+                                    alertStyle:UIAlertController.Style,
+                                    actionTitles:[String],
+                                    actionStyles:[UIAlertAction.Style],
+                                    actions: [((UIAlertAction) -> Void)]){
+        
+        let alertController = UIAlertController(title: title, message: message, preferredStyle: alertStyle)
+        for(index, indexTitle) in actionTitles.enumerated(){
+            let action = UIAlertAction(title: indexTitle, style: actionStyles[index], handler: actions[index])
+            alertController.addAction(action)
+        }
+        DispatchQueue.main.async {
+            vc.present(alertController, animated: true, completion: nil)
+        }
+    }
+    
+//    //Usage Alert
+//    self.showAlertWithAction(title: "alert", message: "add your message", alertStyle: .alert, actionTitles: ["Okay", "Cancel"], actionStyles: [.default, .cancel], actions: [{_ in
+//        print("okay click")
+//    },
+//    {_ in
+//        print("cancel click")
+//    }
+//    ])
+//    //Usage ActionSheet
+//    self.showAlertWithAction(title: "actionsheet",
+//    message: "add your message",
+//    alertStyle: .actionSheet,
+//    actionTitles: ["Okay", "Cancel"],
+//    actionStyles: [.default, .cancel],
+//    actions: [
+//    {_ in
+//    print("okay click")
+//    },
+//    {_ in
+//    print("cancel click")
+//    }
+//    ])
+    
+    //Show Common Alert like internet failure
+    static func showInternetFailureAlert(on vc:UIViewController){
+        showAlertWithAction(vc: vc, title: AppConstant.internetAlertTitle, message: AppConstant.internetAlertMessage, alertStyle: .alert, actionTitles: ["Cancel", "Open Setting"], actionStyles: [.cancel, .default], actions: [
+            {_ in
+                print("cancel click")
+            },
+            {_ in
+                if let url = URL.init(string: UIApplication.openSettingsURLString) {
+                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
+                }
+            }
+        ])
+    }
+    //Show Specific Alerts like Valid or Invalid
+    static func showInvalidAlert(on vc:UIViewController){
+        showAlert(on: vc, with: AppConstant.defaultTitle, message: AppConstant.defaultMsg)
+    }
+    
+}

+ 14 - 0
LMS/Library/AutoAdjustableTable.swift

@@ -6,3 +6,17 @@
 //
 
 import Foundation
+import UIKit
+
+final class AutoAdjustableTable: UITableView {
+    override var contentSize:CGSize {
+        didSet {
+            invalidateIntrinsicContentSize()
+        }
+    }
+
+    override var intrinsicContentSize: CGSize {
+        layoutIfNeeded()
+        return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
+    }
+}

+ 54 - 0
LMS/Library/Date+Picker.swift

@@ -6,3 +6,57 @@
 //
 
 import Foundation
+import UIKit
+
+extension UITextField {
+    func datePicker<T>(target: T,
+                       doneAction: Selector,
+                       cancelAction: Selector,
+                       datePickerMode: UIDatePicker.Mode = .date) {
+        let screenWidth = UIScreen.main.bounds.width
+        
+        func buttonItem(withSystemItemStyle style: UIBarButtonItem.SystemItem) -> UIBarButtonItem {
+            let buttonTarget = style == .flexibleSpace ? nil : target
+            let action: Selector? = {
+                switch style {
+                case .cancel:
+                    return cancelAction
+                case .done:
+                    return doneAction
+                default:
+                    return nil
+                }
+            }()
+            
+            let barButtonItem = UIBarButtonItem(barButtonSystemItem: style,
+                                                target: buttonTarget,
+                                                action: action)
+            
+            return barButtonItem
+        }
+        
+        let datePicker = UIDatePicker(frame: CGRect(x: 0,
+                                                    y: 0,
+                                                    width: screenWidth,
+                                                    height: 216))
+        datePicker.datePickerMode = datePickerMode
+        
+        if #available(iOS 13.4, *) {
+            datePicker.preferredDatePickerStyle = .wheels
+        } else {
+            // Fallback on earlier versions
+        }
+        datePicker.minimumDate = Date()
+        self.inputView = datePicker
+        
+        let toolBar = UIToolbar(frame: CGRect(x: 0,
+                                              y: 0,
+                                              width: screenWidth,
+                                              height: 44))
+        toolBar.setItems([buttonItem(withSystemItemStyle: .cancel),
+                          buttonItem(withSystemItemStyle: .flexibleSpace),
+                          buttonItem(withSystemItemStyle: .done)],
+                         animated: true)
+        self.inputAccessoryView = toolBar
+    }
+}

+ 201 - 0
LMS/Library/GIFMaker.swift

@@ -6,3 +6,204 @@
 //
 
 import Foundation
+import UIKit
+import ImageIO
+
+// FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
+// Consider refactoring the code to use the non-optional operators.
+fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
+    switch (lhs, rhs) {
+    case let (l?, r?):
+        return l < r
+    case (nil, _?):
+        return true
+    default:
+        return false
+    }
+}
+
+
+
+extension UIImage {
+    
+    public class func gifImageWithData(_ data: Data) -> UIImage? {
+        guard let source = CGImageSourceCreateWithData(data as CFData, nil) else {
+            print("image doesn't exist")
+            return nil
+        }
+        
+        return UIImage.animatedImageWithSource(source)
+    }
+    
+    public class func gifImageWithURL(_ gifUrl:String) -> UIImage? {
+        guard let bundleURL:URL? = URL(string: gifUrl)
+        else {
+            print("image named \"\(gifUrl)\" doesn't exist")
+            return nil
+        }
+        guard let imageData = try? Data(contentsOf: bundleURL!) else {
+            print("image named \"\(gifUrl)\" into NSData")
+            return nil
+        }
+        
+        return gifImageWithData(imageData)
+    }
+    
+    public class func gifImageWithName(_ name: String) -> UIImage? {
+        guard let bundleURL = Bundle.main
+            .url(forResource: name, withExtension: "gif") else {
+            print("SwiftGif: This image named \"\(name)\" does not exist")
+            return nil
+        }
+        guard let imageData = try? Data(contentsOf: bundleURL) else {
+            print("SwiftGif: Cannot turn image named \"\(name)\" into NSData")
+            return nil
+        }
+        
+        return gifImageWithData(imageData)
+    }
+    
+    class func delayForImageAtIndex(_ index: Int, source: CGImageSource!) -> Double {
+        var delay = 0.1
+        
+        let cfProperties = CGImageSourceCopyPropertiesAtIndex(source, index, nil)
+        let gifProperties: CFDictionary = unsafeBitCast(
+            CFDictionaryGetValue(cfProperties,
+                                 Unmanaged.passUnretained(kCGImagePropertyGIFDictionary).toOpaque()),
+            to: CFDictionary.self)
+        
+        var delayObject: AnyObject = unsafeBitCast(
+            CFDictionaryGetValue(gifProperties,
+                                 Unmanaged.passUnretained(kCGImagePropertyGIFUnclampedDelayTime).toOpaque()),
+            to: AnyObject.self)
+        if delayObject.doubleValue == 0 {
+            delayObject = unsafeBitCast(CFDictionaryGetValue(gifProperties,
+                                                             Unmanaged.passUnretained(kCGImagePropertyGIFDelayTime).toOpaque()), to: AnyObject.self)
+        }
+        
+        delay = delayObject as! Double
+        
+        if delay < 0.1 {
+            delay = 0.1
+        }
+        
+        return delay
+    }
+    
+    class func gcdForPair(_ a: Int?, _ b: Int?) -> Int {
+        var a = a
+        var b = b
+        if b == nil || a == nil {
+            if b != nil {
+                return b!
+            } else if a != nil {
+                return a!
+            } else {
+                return 0
+            }
+        }
+        
+        if a < b {
+            let c = a
+            a = b
+            b = c
+        }
+        
+        var rest: Int
+        while true {
+            rest = a! % b!
+            
+            if rest == 0 {
+                return b!
+            } else {
+                a = b
+                b = rest
+            }
+        }
+    }
+    
+    class func gcdForArray(_ array: Array<Int>) -> Int {
+        if array.isEmpty {
+            return 1
+        }
+        
+        var gcd = array[0]
+        
+        for val in array {
+            gcd = UIImage.gcdForPair(val, gcd)
+        }
+        
+        return gcd
+    }
+    
+    class func animatedImageWithSource(_ source: CGImageSource) -> UIImage? {
+        let count = CGImageSourceGetCount(source)
+        var images = [CGImage]()
+        var delays = [Int]()
+        
+        for i in 0..<count {
+            if let image = CGImageSourceCreateImageAtIndex(source, i, nil) {
+                images.append(image)
+            }
+            
+            let delaySeconds = UIImage.delayForImageAtIndex(Int(i),
+                                                            source: source)
+            delays.append(Int(delaySeconds * 1000.0)) // Seconds to ms
+        }
+        
+        let duration: Int = {
+            var sum = 0
+            
+            for val: Int in delays {
+                sum += val
+            }
+            
+            return sum
+        }()
+        
+        let gcd = gcdForArray(delays)
+        var frames = [UIImage]()
+        
+        var frame: UIImage
+        var frameCount: Int
+        for i in 0..<count {
+            frame = UIImage(cgImage: images[Int(i)])
+            frameCount = Int(delays[Int(i)] / gcd)
+            
+            for _ in 0..<frameCount {
+                frames.append(frame)
+            }
+        }
+        
+        let animation = UIImage.animatedImage(with: frames,
+                                              duration: Double(duration) / 1000.0)
+        
+        return animation
+    }
+}
+
+
+// How to use gif maker
+/*
+#2 : Load GIF image Using Name
+
+    let jeremyGif = UIImage.gifImageWithName("funny")
+    let imageView = UIImageView(image: jeremyGif)
+    imageView.frame = CGRect(x: 20.0, y: 50.0, width: self.view.frame.size.width - 40, height: 150.0)
+    view.addSubview(imageView)
+#3 : Load GIF image Using Data
+
+    let imageData = try? Data(contentsOf: Bundle.main.url(forResource: "play", withExtension: "gif")!)
+    let advTimeGif = UIImage.gifImageWithData(imageData!)
+    let imageView2 = UIImageView(image: advTimeGif)
+    imageView2.frame = CGRect(x: 20.0, y: 220.0, width:
+    self.view.frame.size.width - 40, height: 150.0)
+    view.addSubview(imageView2)
+#4 : Load GIF image Using URL
+
+    let gifURL : String = "http://www.gifbin.com/bin/4802swswsw04.gif"
+    let imageURL = UIImage.gifImageWithURL(gifURL)
+    let imageView3 = UIImageView(image: imageURL)
+    imageView3.frame = CGRect(x: 20.0, y: 390.0, width: self.view.frame.size.width - 40, height: 150.0)
+    view.addSubview(imageView3)
+*/

+ 17 - 0
LMS/Library/PaddedTextField.swift

@@ -6,3 +6,20 @@
 //
 
 import Foundation
+import UIKit
+
+class PaddedTextField: UITextField {
+    let padding = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10) // Adjust the left and right padding as needed
+
+    override func textRect(forBounds bounds: CGRect) -> CGRect {
+        return bounds.inset(by: padding)
+    }
+
+    override func placeholderRect(forBounds bounds: CGRect) -> CGRect {
+        return bounds.inset(by: padding)
+    }
+
+    override func editingRect(forBounds bounds: CGRect) -> CGRect {
+        return bounds.inset(by: padding)
+    }
+}

+ 30 - 0
LMS/Library/Reachability.swift

@@ -6,3 +6,33 @@
 //
 
 import Foundation
+import SystemConfiguration
+
+public class Reachability {
+    
+    class func isConnectedToNetwork() -> Bool {
+        
+        var zeroAddress = sockaddr_in()
+        zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
+        zeroAddress.sin_family = sa_family_t(AF_INET)
+        
+        guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
+            $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
+                SCNetworkReachabilityCreateWithAddress(nil, $0)
+            }
+        }) else {
+            return false
+        }
+        
+        var flags: SCNetworkReachabilityFlags = []
+        if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
+            return false
+        }
+        
+        let isReachable = flags.contains(.reachable)
+        let needsConnection = flags.contains(.connectionRequired)
+        
+        return (isReachable && !needsConnection)
+        
+    }
+}

+ 20 - 0
LMS/Library/RoundedCorners+ImageView.swift

@@ -6,3 +6,23 @@
 //
 
 import Foundation
+import UIKit
+
+class RoundedTopCornersImageView: UIImageView {
+    override class var layerClass: AnyClass {
+        return CAShapeLayer.self
+    }
+    
+    override func layoutSubviews() {
+        super.layoutSubviews()
+        
+        let maskLayer = CAShapeLayer()
+        maskLayer.path = UIBezierPath(
+            roundedRect: bounds,
+            byRoundingCorners: [.topLeft, .topRight],
+            cornerRadii: CGSize(width: 10.0, height: 10.0) // Adjust the corner radius as needed
+        ).cgPath
+        
+        layer.mask = maskLayer
+    }
+}

+ 18 - 0
LMS/Library/String+Indexpath.swift

@@ -6,3 +6,21 @@
 //
 
 import Foundation
+
+extension IndexPath {
+    // Create a convenience initializer to parse a string into an IndexPath
+    init?(string: String) {
+        let components = string.components(separatedBy: ",")
+        guard components.count == 2,
+              let section = Int(components[0]),
+              let row = Int(components[1]) else {
+            return nil
+        }
+        self.init(row: row, section: section)
+    }
+
+    // Convert IndexPath to a string
+    var stringValue: String {
+        return "\(section),\(row)"
+    }
+}

+ 47 - 0
LMS/Library/ToolbarPickerView.swift

@@ -6,3 +6,50 @@
 //
 
 import Foundation
+import UIKit
+
+protocol ToolbarPickerViewDelegate: AnyObject {
+    func didTapDone()
+    func didTapCancel()
+}
+
+class ToolbarPickerView: UIPickerView {
+
+    public private(set) var toolbar: UIToolbar?
+    public weak var toolbarDelegate: ToolbarPickerViewDelegate?
+
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        self.commonInit()
+    }
+
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.commonInit()
+    }
+
+    private func commonInit() {
+        let toolBar = UIToolbar()
+        toolBar.barStyle = UIBarStyle.default
+        //toolBar.isTranslucent = true
+        //toolBar.tintColor = .black
+        toolBar.sizeToFit()
+
+        let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.doneTapped))
+        let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
+        let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(self.cancelTapped))
+
+        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
+        toolBar.isUserInteractionEnabled = true
+
+        self.toolbar = toolBar
+    }
+
+    @objc func doneTapped() {
+        self.toolbarDelegate?.didTapDone()
+    }
+
+    @objc func cancelTapped() {
+        self.toolbarDelegate?.didTapCancel()
+    }
+}

+ 11 - 0
LMS/Model/AllSubmittedAnswers.swift

@@ -6,3 +6,14 @@
 //
 
 import Foundation
+
+// MARK: - AllSubmittedAnswers
+class AllSubmittedAnswers: Encodable {
+    let questionId: Int?
+    let answers: [String]?
+
+    init(questionId: Int?, answers: [String]?) {
+        self.questionId = questionId
+        self.answers = answers
+    }
+}

+ 22 - 0
LMS/Model/AnswerSubmitModel.swift

@@ -6,3 +6,25 @@
 //
 
 import Foundation
+
+// MARK: - AnswerSubmitModel
+class AnswerSubmitModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var assessmentId, userId, questionId: Int?
+    var quesType: String?
+    var answers: [String]?
+    var sessionId: Int?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, assessmentId: Int?, userId: Int?, questionId: Int?, quesType: String?, answers: [String]?, sessionId: Int?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.assessmentId = assessmentId
+        self.userId = userId
+        self.questionId = questionId
+        self.quesType = quesType
+        self.answers = answers
+        self.sessionId = sessionId
+    }
+}

+ 295 - 0
LMS/Model/AssessmentListModel.swift

@@ -5,4 +5,299 @@
 //  Created by Suraj Kumar Mandal on 13/09/22.
 //
 
+//   let assessmentList = try? newJSONDecoder().decode(AssessmentList.self, from: jsonData)
+
 import Foundation
+
+// MARK: - AssessmentListModel
+class AssessmentListModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var assessment: Assessment?
+    var batches: [AssessmentBatch]?
+    var status, comments, startDateTime, endDateTime: String?
+    var source, scheduleAssessmentCreatorName, scheduleAssessmentApproverName, scheduleAssessmentApprovedDateTime: JSONNull?
+    var attempted: Bool?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, assessment: Assessment?, batches: [AssessmentBatch]?, status: String?, comments: String?, startDateTime: String?, endDateTime: String?, source: JSONNull?, scheduleAssessmentCreatorName: JSONNull?, scheduleAssessmentApproverName: JSONNull?, scheduleAssessmentApprovedDateTime: JSONNull?, attempted: Bool?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.assessment = assessment
+        self.batches = batches
+        self.status = status
+        self.comments = comments
+        self.startDateTime = startDateTime
+        self.endDateTime = endDateTime
+        self.source = source
+        self.scheduleAssessmentCreatorName = scheduleAssessmentCreatorName
+        self.scheduleAssessmentApproverName = scheduleAssessmentApproverName
+        self.scheduleAssessmentApprovedDateTime = scheduleAssessmentApprovedDateTime
+        self.attempted = attempted
+    }
+}
+
+// MARK: - Assessment
+class Assessment: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var intervention: AssessmentIntervention?
+    var level: AssessmentLevel?
+    var unit: AssessmentUnit?
+    var lesson: AssessmentLesson?
+    var type, mode, name, status: String?
+    var comments: String?
+    var totalMarks, negativeMarkPerQuestion, totalQuestions: Int?
+    var fileId, fileType: String?
+    var assessmentCreatorName, assessmentApproverName, assessmentApprovedDateTime: JSONNull?
+    var negative, randomized: Bool?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, intervention: AssessmentIntervention?, level: AssessmentLevel?, unit: AssessmentUnit?, lesson: AssessmentLesson?, type: String?, mode: String?, name: String?, status: String?, comments: String?, totalMarks: Int?, negativeMarkPerQuestion: Int?, totalQuestions: Int?, fileId: String?, fileType: String?, assessmentCreatorName: JSONNull?, assessmentApproverName: JSONNull?, assessmentApprovedDateTime: JSONNull?, negative: Bool?, randomized: Bool?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.intervention = intervention
+        self.level = level
+        self.unit = unit
+        self.lesson = lesson
+        self.type = type
+        self.mode = mode
+        self.name = name
+        self.status = status
+        self.comments = comments
+        self.totalMarks = totalMarks
+        self.negativeMarkPerQuestion = negativeMarkPerQuestion
+        self.totalQuestions = totalQuestions
+        self.fileId = fileId
+        self.fileType = fileType
+        self.assessmentCreatorName = assessmentCreatorName
+        self.assessmentApproverName = assessmentApproverName
+        self.assessmentApprovedDateTime = assessmentApprovedDateTime
+        self.negative = negative
+        self.randomized = randomized
+    }
+}
+
+// MARK: - AssessmentIntervention
+class AssessmentIntervention: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+    var levels: [Level]?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?, levels: [Level]?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+        self.levels = levels
+    }
+}
+
+// MARK: - AssessmentLevel
+class AssessmentLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}
+
+// MARK: - AssessmentLesson
+class AssessmentLesson: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var name: String?
+    var lessonCreatedUserName, lessonApprovedUserName, lessonApprovedDateTime: JSONNull?
+    var status, comments: String?
+    var unit: AssessmentUnit?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, name: String?, lessonCreatedUserName: JSONNull?, lessonApprovedUserName: JSONNull?, lessonApprovedDateTime: JSONNull?, status: String?, comments: String?, unit: AssessmentUnit?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.name = name
+        self.lessonCreatedUserName = lessonCreatedUserName
+        self.lessonApprovedUserName = lessonApprovedUserName
+        self.lessonApprovedDateTime = lessonApprovedDateTime
+        self.status = status
+        self.comments = comments
+        self.unit = unit
+    }
+}
+
+// MARK: - AssessmentUnit
+class AssessmentUnit: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, name: String?
+    var unitCreatedUserName, unitApprovedUserName, unitApprovedDateTime: JSONNull?
+    var status: String?
+    var intervention: AssessmentIntervention?
+    var level: Level?
+    var comments: String?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, name: String?, unitCreatedUserName: JSONNull?, unitApprovedUserName: JSONNull?, unitApprovedDateTime: JSONNull?, status: String?, intervention: AssessmentIntervention?, level: Level?, comments: String?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.name = name
+        self.unitCreatedUserName = unitCreatedUserName
+        self.unitApprovedUserName = unitApprovedUserName
+        self.unitApprovedDateTime = unitApprovedDateTime
+        self.status = status
+        self.intervention = intervention
+        self.level = level
+        self.comments = comments
+    }
+}
+
+// MARK: - AssessmentBatch
+class AssessmentBatch: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, batchName: String?
+    var studentBatch, deleted, active: Bool?
+    var status, comments: String?
+    var interventionDTO: AssessmentIntervention?
+    var schoolDTO: AssessmentSchoolDTO?
+    var batachUserDtos: [AssessmentBatachUserDto]?
+    var level: Level?
+    var createdByUser, approvedByUser, approvalDateTime: JSONNull?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, batchName: String?, studentBatch: Bool?, deleted: Bool?, active: Bool?, status: String?, comments: String?, interventionDTO: AssessmentIntervention?, schoolDTO: AssessmentSchoolDTO?, batachUserDtos: [AssessmentBatachUserDto]?, level: Level?, createdByUser: JSONNull?, approvedByUser: JSONNull?, approvalDateTime: JSONNull?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.batchName = batchName
+        self.studentBatch = studentBatch
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.comments = comments
+        self.interventionDTO = interventionDTO
+        self.schoolDTO = schoolDTO
+        self.batachUserDtos = batachUserDtos
+        self.level = level
+        self.createdByUser = createdByUser
+        self.approvedByUser = approvedByUser
+        self.approvalDateTime = approvalDateTime
+    }
+}
+
+// MARK: - AssessmentBatachUserDto
+class AssessmentBatachUserDto: Codable {
+    var userDto: AssessmentUserDto?
+    var standard, division: String?
+    var offlineAttendance: JSONNull?
+
+    init(userDto: AssessmentUserDto?, standard: String?, division: String?, offlineAttendance: JSONNull?) {
+        self.userDto = userDto
+        self.standard = standard
+        self.division = division
+        self.offlineAttendance = offlineAttendance
+    }
+}
+
+// MARK: - AssessmentUserDto
+class AssessmentUserDto: Codable {
+    var id: Int?
+    var name: String?
+    var middleName: String?
+    var lastName, username, email: String?
+    var mobile: String?
+    var schoolName: JSONNull?
+    var userType: AssessmentUserType?
+    var keycloakUserId: String?
+    var enable, tempPass: Bool?
+    var batchId: Int?
+    var intervantions: [Int]?
+    var password, errorMsg: JSONNull?
+
+    init(id: Int?, name: String?, middleName: String?, lastName: String?, username: String?, email: String?, mobile: String?, schoolName: JSONNull?, userType: AssessmentUserType?, keycloakUserId: String?, enable: Bool?, tempPass: Bool?, batchId: Int?, intervantions: [Int]?, password: JSONNull?, errorMsg: JSONNull?) {
+        self.id = id
+        self.name = name
+        self.middleName = middleName
+        self.lastName = lastName
+        self.username = username
+        self.email = email
+        self.mobile = mobile
+        self.schoolName = schoolName
+        self.userType = userType
+        self.keycloakUserId = keycloakUserId
+        self.enable = enable
+        self.tempPass = tempPass
+        self.batchId = batchId
+        self.intervantions = intervantions
+        self.password = password
+        self.errorMsg = errorMsg
+    }
+}
+
+// MARK: - AssessmentUserType
+class AssessmentUserType: Codable {
+    var id: Int?
+    var actor, parentActor, discription, defaultRealmRole: String?
+    var createAccess, deleteAccess, editAccess, viewAccess: String?
+    var appUrl: String?
+
+    init(id: Int?, actor: String?, parentActor: String?, discription: String?, defaultRealmRole: String?, createAccess: String?, deleteAccess: String?, editAccess: String?, viewAccess: String?, appUrl: String?) {
+        self.id = id
+        self.actor = actor
+        self.parentActor = parentActor
+        self.discription = discription
+        self.defaultRealmRole = defaultRealmRole
+        self.createAccess = createAccess
+        self.deleteAccess = deleteAccess
+        self.editAccess = editAccess
+        self.viewAccess = viewAccess
+        self.appUrl = appUrl
+    }
+}
+
+// MARK: - AssessmentSchoolDTO
+class AssessmentSchoolDTO: Codable {
+    var schoolId, schoolName, state, city: String?
+    var pincode: Int?
+    var active, deleted: Bool?
+    var status: JSONNull?
+
+    init(schoolId: String?, schoolName: String?, state: String?, city: String?, pincode: Int?, active: Bool?, deleted: Bool?, status: JSONNull?) {
+        self.schoolId = schoolId
+        self.schoolName = schoolName
+        self.state = state
+        self.city = city
+        self.pincode = pincode
+        self.active = active
+        self.deleted = deleted
+        self.status = status
+    }
+}
+
+typealias AssessmentList = [AssessmentListModel]

+ 28 - 0
LMS/Model/AssessmentResultModel.swift

@@ -6,3 +6,31 @@
 //
 
 import Foundation
+
+
+// MARK: - AssessmentResultModel
+class AssessmentResultModel: Codable {
+    var asnId: JSONNull?
+    var question: String?
+    var selectedAnswers, answers: [String]?
+    var questionType: QuestionType?
+    var options: [String]?
+    var optionsOne, optionsTwo: [String]?
+
+    init(asnId: JSONNull?, question: String?, selectedAnswers: [String]?, answers: [String]?, questionType: QuestionType?, options: [String]?, optionsOne: [String]?, optionsTwo: [String]?) {
+        self.asnId = asnId
+        self.question = question
+        self.selectedAnswers = selectedAnswers
+        self.answers = answers
+        self.questionType = questionType
+        self.options = options
+        self.optionsOne = optionsOne
+        self.optionsTwo = optionsTwo
+    }
+}
+
+enum QuestionType: String, Codable {
+    case singleSelectMCQ = "Single select MCQ"
+}
+
+typealias AssessmentResult = [AssessmentResultModel]

+ 12 - 0
LMS/Model/AssessmentSubmitModel.swift

@@ -6,3 +6,15 @@
 //
 
 import Foundation
+
+// MARK: - AssessmentSubmitModel
+class AssessmentSubmitModel: Codable {
+    var achievedMarks, totalMarks: Int?
+    var lable: String?
+
+    init(achievedMarks: Int?, totalMarks: Int?, lable: String?) {
+        self.achievedMarks = achievedMarks
+        self.totalMarks = totalMarks
+        self.lable = lable
+    }
+}

+ 153 - 0
LMS/Model/BatchListModel.swift

@@ -5,4 +5,157 @@
 //  Created by Suraj Kumar Mandal on 05/09/22.
 //
 
+//   let batchList = try? newJSONDecoder().decode(BatchList.self, from: jsonData)
+
 import Foundation
+
+// MARK: - BatchListModel
+class BatchListModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, batchName: String?
+    var studentBatch, deleted, active: Bool?
+    var status, comments: String?
+    var interventionDTO: BatchInterventionDTO?
+    var schoolDTO: BatchSchoolDTO?
+    var batachUserDtos: [BatachUserDto]?
+    var level: BatchLevel?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, batchName: String?, studentBatch: Bool?, deleted: Bool?, active: Bool?, status: String?, comments: String?, interventionDTO: BatchInterventionDTO?, schoolDTO: BatchSchoolDTO?, batachUserDtos: [BatachUserDto]?, level: BatchLevel?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.batchName = batchName
+        self.studentBatch = studentBatch
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.comments = comments
+        self.interventionDTO = interventionDTO
+        self.schoolDTO = schoolDTO
+        self.batachUserDtos = batachUserDtos
+        self.level = level
+    }
+}
+
+// MARK: - BatachUserDto
+class BatachUserDto: Codable {
+    var userDto: BatchUserDto?
+    var standard, division: String?
+    var grade: JSONNull?
+
+    init(userDto: BatchUserDto?, standard: String?, division: String?, grade: JSONNull?) {
+        self.userDto = userDto
+        self.standard = standard
+        self.division = division
+        self.grade = grade
+    }
+}
+
+// MARK: - UserDto
+class BatchUserDto: Codable {
+    var id: Int?
+    var name: String?
+    var middleName: String?
+    var lastName, username, email, mobile: String?
+    var schoolName: JSONNull?
+    var userType: BatchUserType?
+    var keycloakUserId: String?
+    var enable: Bool?
+    var intervantions: [Int]?
+
+    init(id: Int?, name: String?, middleName: String?, lastName: String?, username: String?, email: String?, mobile: String?, schoolName: JSONNull?, userType: BatchUserType?, keycloakUserId: String?, enable: Bool?, intervantions: [Int]?) {
+        self.id = id
+        self.name = name
+        self.middleName = middleName
+        self.lastName = lastName
+        self.username = username
+        self.email = email
+        self.mobile = mobile
+        self.schoolName = schoolName
+        self.userType = userType
+        self.keycloakUserId = keycloakUserId
+        self.enable = enable
+        self.intervantions = intervantions
+    }
+}
+
+// MARK: - UserType
+class BatchUserType: Codable {
+    var id: Int?
+    var actor, parentActor, discription, defaultRealmRole: String?
+    var createAccess, deleteAccess, editAccess, viewAccess: String?
+    var appUrl: String?
+
+    init(id: Int?, actor: String?, parentActor: String?, discription: String?, defaultRealmRole: String?, createAccess: String?, deleteAccess: String?, editAccess: String?, viewAccess: String?, appUrl: String?) {
+        self.id = id
+        self.actor = actor
+        self.parentActor = parentActor
+        self.discription = discription
+        self.defaultRealmRole = defaultRealmRole
+        self.createAccess = createAccess
+        self.deleteAccess = deleteAccess
+        self.editAccess = editAccess
+        self.viewAccess = viewAccess
+        self.appUrl = appUrl
+    }
+}
+
+// MARK: - InterventionDTO
+class BatchInterventionDTO: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class BatchLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}
+
+// MARK: - SchoolDTO
+class BatchSchoolDTO: Codable {
+    var schoolId, schoolName, state, city: String?
+    var pincode: Int?
+    var active, deleted: Bool?
+    var status: JSONNull?
+
+    init(schoolId: String?, schoolName: String?, state: String?, city: String?, pincode: Int?, active: Bool?, deleted: Bool?, status: JSONNull?) {
+        self.schoolId = schoolId
+        self.schoolName = schoolName
+        self.state = state
+        self.city = city
+        self.pincode = pincode
+        self.active = active
+        self.deleted = deleted
+        self.status = status
+    }
+}

+ 456 - 1
LMS/Model/CalendarModel.swift

@@ -3,6 +3,461 @@
 //  LMS
 //
 //  Created by Suraj Kumar Mandal on 02/09/22.
-//
+
+//   let calendarModel = try? newJSONDecoder().decode(CalendarModel.self, from: jsonData)
 
 import Foundation
+
+// MARK: - CalendarModel
+class CalendarModel: Codable {
+    var id, scheduleId, userId: Int?
+    var date, startTime, endTime: String?
+    var linkCreated: Bool?
+    var link: String?
+    var batch: Batch?
+    var scheduleTitle, schedulePlace, status, workFlowStatus: String?
+    var eventNo: Int?
+    var notes: JSONNull?
+    var offline: Bool?
+    var batchName: String?
+    var schoolName: String?
+    var interventionName: String?
+    var interventionLevelName: String?
+    var teacherFirstName: String?
+    var teacherLastName: String?
+    var interventionId: Int?
+    var interventionLevelId: Int?
+    var batchId: Int?
+    var schoolId: String?
+    
+
+    init(id: Int?, scheduleId: Int?, userId: Int?, date: String?, startTime: String?, endTime: String?, linkCreated: Bool?, link: String?, batch: Batch?, scheduleTitle: String?, schedulePlace: String?, status: String?, workFlowStatus: String?, eventNo: Int?, notes: JSONNull?, offline: Bool?, batchName: String?, schoolName: String? ,interventionName: String? ,interventionLevelName: String? ,teacherFirstName: String? ,teacherLastName: String?, interventionId: Int? ,interventionLevelId: Int?, batchId: Int?, schoolId: String?) {
+        self.id = id
+        self.scheduleId = scheduleId
+        self.userId = userId
+        self.date = date
+        self.startTime = startTime
+        self.endTime = endTime
+        self.linkCreated = linkCreated
+        self.link = link
+        self.batch = batch
+        self.scheduleTitle = scheduleTitle
+        self.schedulePlace = schedulePlace
+        self.status = status
+        self.workFlowStatus = workFlowStatus
+        self.eventNo = eventNo
+        self.notes = notes
+        self.offline = offline
+        self.batchName = batchName
+        self.schoolName = schoolName
+        self.interventionName = interventionName
+        self.interventionLevelName = interventionLevelName
+        self.teacherFirstName = teacherFirstName
+        self.teacherLastName = teacherLastName
+        self.interventionId = interventionId
+        self.interventionLevelId = interventionLevelId
+        self.batchId = batchId
+        self.schoolId = schoolId
+    }
+}
+
+// MARK: - Batch
+class Batch: Codable {
+    var viewBatchRS: ViewBatchRS?
+    var teacher: Teacher?
+    var comments: String?
+    var substituteTeachers: [Teacher]?
+    var status: String?
+    var id: Int?
+
+    init(viewBatchRS: ViewBatchRS?, teacher: Teacher?, comments: String?, substituteTeachers: [Teacher]?, status: String?, id: Int?) {
+        self.viewBatchRS = viewBatchRS
+        self.teacher = teacher
+        self.comments = comments
+        self.substituteTeachers = substituteTeachers
+        self.status = status
+        self.id = id
+    }
+}
+
+// MARK: - Teacher
+class Teacher: Codable {
+    var id: Int?
+    var name: String?
+    var middleName: JSONNull?
+    var lastName, username, email, mobile: String?
+    var userType: User?
+    var keycloakUserId: String?
+    var enable: Bool?
+    var intervantions: [Int]?
+
+    init(id: Int?, name: String?, middleName: JSONNull?, lastName: String?, username: String?, email: String?, mobile: String?, userType: User?, keycloakUserId: String?, enable: Bool?, intervantions: [Int]?) {
+        self.id = id
+        self.name = name
+        self.middleName = middleName
+        self.lastName = lastName
+        self.username = username
+        self.email = email
+        self.mobile = mobile
+        self.userType = userType
+        self.keycloakUserId = keycloakUserId
+        self.enable = enable
+        self.intervantions = intervantions
+    }
+}
+
+// MARK: - UserType
+class User: Codable {
+    var id: Int?
+    var actor, parentActor, discription, defaultRealmRole: String?
+    var createAccess, deleteAccess, editAccess, viewAccess: String?
+    var appUrl: String?
+
+    init(id: Int?, actor: String?, parentActor: String?, discription: String?, defaultRealmRole: String?, createAccess: String?, deleteAccess: String?, editAccess: String?, viewAccess: String?, appUrl: String?) {
+        self.id = id
+        self.actor = actor
+        self.parentActor = parentActor
+        self.discription = discription
+        self.defaultRealmRole = defaultRealmRole
+        self.createAccess = createAccess
+        self.deleteAccess = deleteAccess
+        self.editAccess = editAccess
+        self.viewAccess = viewAccess
+        self.appUrl = appUrl
+    }
+}
+
+// MARK: - ViewBatchRS
+class ViewBatchRS: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, batchName: String?
+    var studentBatch, deleted, active: Bool?
+    var status, comments: String?
+    var interventionDTO: InterventionDTO?
+    var schoolDTO: SchoolDTO?
+    var batachUserDtos: JSONNull?
+    var level: Level?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, batchName: String?, studentBatch: Bool?, deleted: Bool?, active: Bool?, status: String?, comments: String?, interventionDTO: InterventionDTO?, schoolDTO: SchoolDTO?, batachUserDtos: JSONNull?, level: Level?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.batchName = batchName
+        self.studentBatch = studentBatch
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.comments = comments
+        self.interventionDTO = interventionDTO
+        self.schoolDTO = schoolDTO
+        self.batachUserDtos = batachUserDtos
+        self.level = level
+    }
+}
+
+// MARK: - InterventionDTO
+class InterventionDTO: Codable {
+    var id: Int?
+    var incrementor: JSONNull?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: JSONNull?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class Level: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}
+
+// MARK: - SchoolDTO
+class SchoolDTO: Codable {
+    var schoolId, schoolName, state, city: String?
+    var pincode: Int?
+    var active, deleted: Bool?
+    var status: String?
+
+    init(schoolId: String?, schoolName: String?, state: String?, city: String?, pincode: Int?, active: Bool?, deleted: Bool?, status: String?) {
+        self.schoolId = schoolId
+        self.schoolName = schoolName
+        self.state = state
+        self.city = city
+        self.pincode = pincode
+        self.active = active
+        self.deleted = deleted
+        self.status = status
+    }
+}
+
+// MARK: - Encode/decode helpers
+
+class JSONNull: Codable, Hashable {
+
+    public static func == (lhs: JSONNull, rhs: JSONNull) -> Bool {
+        return true
+    }
+
+    public var hashValue: Int {
+        return 0
+    }
+
+    public func hash(into hasher: inout Hasher) {
+        // No-op
+    }
+
+    public init() {}
+
+    public required init(from decoder: Decoder) throws {
+        let container = try decoder.singleValueContainer()
+        if !container.decodeNil() {
+            throw DecodingError.typeMismatch(JSONNull.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for JSONNull"))
+        }
+    }
+
+    public func encode(to encoder: Encoder) throws {
+        var container = encoder.singleValueContainer()
+        try container.encodeNil()
+    }
+}
+
+class JSONCodingKey: CodingKey {
+    let key: String
+
+    required init?(intValue: Int) {
+        return nil
+    }
+
+    required init?(stringValue: String) {
+        key = stringValue
+    }
+
+    var intValue: Int? {
+        return nil
+    }
+
+    var stringValue: String {
+        return key
+    }
+}
+
+class JSONAny: Codable {
+
+    let value: Any
+
+    static func decodingError(forCodingPath codingPath: [CodingKey]) -> DecodingError {
+        let context = DecodingError.Context(codingPath: codingPath, debugDescription: "Cannot decode JSONAny")
+        return DecodingError.typeMismatch(JSONAny.self, context)
+    }
+
+    static func encodingError(forValue value: Any, codingPath: [CodingKey]) -> EncodingError {
+        let context = EncodingError.Context(codingPath: codingPath, debugDescription: "Cannot encode JSONAny")
+        return EncodingError.invalidValue(value, context)
+    }
+
+    static func decode(from container: SingleValueDecodingContainer) throws -> Any {
+        if let value = try? container.decode(Bool.self) {
+            return value
+        }
+        if let value = try? container.decode(Int64.self) {
+            return value
+        }
+        if let value = try? container.decode(Double.self) {
+            return value
+        }
+        if let value = try? container.decode(String.self) {
+            return value
+        }
+        if container.decodeNil() {
+            return JSONNull()
+        }
+        throw decodingError(forCodingPath: container.codingPath)
+    }
+
+    static func decode(from container: inout UnkeyedDecodingContainer) throws -> Any {
+        if let value = try? container.decode(Bool.self) {
+            return value
+        }
+        if let value = try? container.decode(Int64.self) {
+            return value
+        }
+        if let value = try? container.decode(Double.self) {
+            return value
+        }
+        if let value = try? container.decode(String.self) {
+            return value
+        }
+        if let value = try? container.decodeNil() {
+            if value {
+                return JSONNull()
+            }
+        }
+        if var container = try? container.nestedUnkeyedContainer() {
+            return try decodeArray(from: &container)
+        }
+        if var container = try? container.nestedContainer(keyedBy: JSONCodingKey.self) {
+            return try decodeDictionary(from: &container)
+        }
+        throw decodingError(forCodingPath: container.codingPath)
+    }
+
+    static func decode(from container: inout KeyedDecodingContainer<JSONCodingKey>, forKey key: JSONCodingKey) throws -> Any {
+        if let value = try? container.decode(Bool.self, forKey: key) {
+            return value
+        }
+        if let value = try? container.decode(Int64.self, forKey: key) {
+            return value
+        }
+        if let value = try? container.decode(Double.self, forKey: key) {
+            return value
+        }
+        if let value = try? container.decode(String.self, forKey: key) {
+            return value
+        }
+        if let value = try? container.decodeNil(forKey: key) {
+            if value {
+                return JSONNull()
+            }
+        }
+        if var container = try? container.nestedUnkeyedContainer(forKey: key) {
+            return try decodeArray(from: &container)
+        }
+        if var container = try? container.nestedContainer(keyedBy: JSONCodingKey.self, forKey: key) {
+            return try decodeDictionary(from: &container)
+        }
+        throw decodingError(forCodingPath: container.codingPath)
+    }
+
+    static func decodeArray(from container: inout UnkeyedDecodingContainer) throws -> [Any] {
+        var arr: [Any] = []
+        while !container.isAtEnd {
+            let value = try decode(from: &container)
+            arr.append(value)
+        }
+        return arr
+    }
+
+    static func decodeDictionary(from container: inout KeyedDecodingContainer<JSONCodingKey>) throws -> [String: Any] {
+        var dict = [String: Any]()
+        for key in container.allKeys {
+            let value = try decode(from: &container, forKey: key)
+            dict[key.stringValue] = value
+        }
+        return dict
+    }
+
+    static func encode(to container: inout UnkeyedEncodingContainer, array: [Any]) throws {
+        for value in array {
+            if let value = value as? Bool {
+                try container.encode(value)
+            } else if let value = value as? Int64 {
+                try container.encode(value)
+            } else if let value = value as? Double {
+                try container.encode(value)
+            } else if let value = value as? String {
+                try container.encode(value)
+            } else if value is JSONNull {
+                try container.encodeNil()
+            } else if let value = value as? [Any] {
+                var container = container.nestedUnkeyedContainer()
+                try encode(to: &container, array: value)
+            } else if let value = value as? [String: Any] {
+                var container = container.nestedContainer(keyedBy: JSONCodingKey.self)
+                try encode(to: &container, dictionary: value)
+            } else {
+                throw encodingError(forValue: value, codingPath: container.codingPath)
+            }
+        }
+    }
+
+    static func encode(to container: inout KeyedEncodingContainer<JSONCodingKey>, dictionary: [String: Any]) throws {
+        for (key, value) in dictionary {
+            let key = JSONCodingKey(stringValue: key)!
+            if let value = value as? Bool {
+                try container.encode(value, forKey: key)
+            } else if let value = value as? Int64 {
+                try container.encode(value, forKey: key)
+            } else if let value = value as? Double {
+                try container.encode(value, forKey: key)
+            } else if let value = value as? String {
+                try container.encode(value, forKey: key)
+            } else if value is JSONNull {
+                try container.encodeNil(forKey: key)
+            } else if let value = value as? [Any] {
+                var container = container.nestedUnkeyedContainer(forKey: key)
+                try encode(to: &container, array: value)
+            } else if let value = value as? [String: Any] {
+                var container = container.nestedContainer(keyedBy: JSONCodingKey.self, forKey: key)
+                try encode(to: &container, dictionary: value)
+            } else {
+                throw encodingError(forValue: value, codingPath: container.codingPath)
+            }
+        }
+    }
+
+    static func encode(to container: inout SingleValueEncodingContainer, value: Any) throws {
+        if let value = value as? Bool {
+            try container.encode(value)
+        } else if let value = value as? Int64 {
+            try container.encode(value)
+        } else if let value = value as? Double {
+            try container.encode(value)
+        } else if let value = value as? String {
+            try container.encode(value)
+        } else if value is JSONNull {
+            try container.encodeNil()
+        } else {
+            throw encodingError(forValue: value, codingPath: container.codingPath)
+        }
+    }
+
+    public required init(from decoder: Decoder) throws {
+        if var arrayContainer = try? decoder.unkeyedContainer() {
+            self.value = try JSONAny.decodeArray(from: &arrayContainer)
+        } else if var container = try? decoder.container(keyedBy: JSONCodingKey.self) {
+            self.value = try JSONAny.decodeDictionary(from: &container)
+        } else {
+            let container = try decoder.singleValueContainer()
+            self.value = try JSONAny.decode(from: container)
+        }
+    }
+
+    public func encode(to encoder: Encoder) throws {
+        if let arr = self.value as? [Any] {
+            var container = encoder.unkeyedContainer()
+            try JSONAny.encode(to: &container, array: arr)
+        } else if let dict = self.value as? [String: Any] {
+            var container = encoder.container(keyedBy: JSONCodingKey.self)
+            try JSONAny.encode(to: &container, dictionary: dict)
+        } else {
+            var container = encoder.singleValueContainer()
+            try JSONAny.encode(to: &container, value: self.value)
+        }
+    }
+}

+ 14 - 0
LMS/Model/InterventionLevelModel.swift

@@ -5,4 +5,18 @@
 //  Created by Suraj Kumar Mandal on 05/09/22.
 //
 
+//   let interventionLevel = try? newJSONDecoder().decode(InterventionLevel.self, from: jsonData)
+
 import Foundation
+
+// MARK: - InterventionLevel
+class InterventionLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}

+ 115 - 0
LMS/Model/LessonListModel.swift

@@ -5,4 +5,119 @@
 //  Created by Suraj Kumar Mandal on 06/09/22.
 //
 
+//   let lessonListModel = try? newJSONDecoder().decode(LessonListModel.self, from: jsonData)
+
 import Foundation
+
+// MARK: - LessonListModel
+class LessonListModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id, lessonId: Int?
+    var name: String?
+    var contentIndex: Int?
+    var type, fileId: String?
+    var teacherAccess, beneficiaryAccess: Bool?
+    var status, comments: String?
+    var lesson: Lesson?
+    var source: String?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, lessonId: Int?, name: String?, contentIndex: Int?, type: String?, fileId: String?, teacherAccess: Bool?, beneficiaryAccess: Bool?, status: String?, comments: String?, lesson: Lesson?, source: String?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.lessonId = lessonId
+        self.name = name
+        self.contentIndex = contentIndex
+        self.type = type
+        self.fileId = fileId
+        self.teacherAccess = teacherAccess
+        self.beneficiaryAccess = beneficiaryAccess
+        self.status = status
+        self.comments = comments
+        self.lesson = lesson
+        self.source = source
+    }
+}
+
+// MARK: - Lesson
+class Lesson: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var name, status, comments: String?
+    var unit: LessonListUnit?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, name: String?, status: String?, comments: String?, unit: LessonListUnit?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.name = name
+        self.status = status
+        self.comments = comments
+        self.unit = unit
+    }
+}
+
+// MARK: - Unit
+class LessonListUnit: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, name, status: String?
+    var intervention: LessonListIntervention?
+    var level: LessonListLevel?
+    var comments: String?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, name: String?, status: String?, intervention: LessonListIntervention?, level: LessonListLevel?, comments: String?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.name = name
+        self.status = status
+        self.intervention = intervention
+        self.level = level
+        self.comments = comments
+    }
+}
+
+// MARK: - Intervention
+class LessonListIntervention: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class LessonListLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}

+ 63 - 0
LMS/Model/LessonModel.swift

@@ -5,4 +5,67 @@
 //  Created by Suraj Kumar Mandal on 06/09/22.
 //
 
+//   let lessonList = try? newJSONDecoder().decode(LessonList.self, from: jsonData)
+
 import Foundation
+
+// MARK: - LessonModel
+class LessonModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, name, status: String?
+    var intervention: LessonIntervention?
+    var level: LessonLevel?
+    var comments: String?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, name: String?, status: String?, intervention: LessonIntervention?, level: LessonLevel?, comments: String?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.name = name
+        self.status = status
+        self.intervention = intervention
+        self.level = level
+        self.comments = comments
+    }
+}
+
+// MARK: - Intervention
+class LessonIntervention: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class LessonLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}

+ 57 - 0
LMS/Model/NewAssessmentModel.swift

@@ -6,3 +6,60 @@
 //
 
 import Foundation
+
+// MARK: - NewAssessmentModel
+class NewAssessmentModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var intervention, level, unit, lesson: JSONNull?
+    var type: TypeEnum?
+    var mode: Mode?
+    var name: String?
+    var status, comments: Comments?
+    var totalMarks, negativeMarkPerQuestion, totalQuestions: Int?
+    var fileId, fileType: String?
+    var assessmentCreatorName, assessmentApproverName, assessmentApprovedDateTime: JSONNull?
+    var achievedMarks, numberofAtmt: Int?
+    var negative, randomized: Bool?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, intervention: JSONNull?, level: JSONNull?, unit: JSONNull?, lesson: JSONNull?, type: TypeEnum?, mode: Mode?, name: String?, status: Comments?, comments: Comments?, totalMarks: Int?, negativeMarkPerQuestion: Int?, totalQuestions: Int?, fileId: String?, fileType: String?, assessmentCreatorName: JSONNull?, assessmentApproverName: JSONNull?, assessmentApprovedDateTime: JSONNull?, achievedMarks: Int?, numberofAtmt: Int?, negative: Bool?, randomized: Bool?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.intervention = intervention
+        self.level = level
+        self.unit = unit
+        self.lesson = lesson
+        self.type = type
+        self.mode = mode
+        self.name = name
+        self.status = status
+        self.comments = comments
+        self.totalMarks = totalMarks
+        self.negativeMarkPerQuestion = negativeMarkPerQuestion
+        self.totalQuestions = totalQuestions
+        self.fileId = fileId
+        self.fileType = fileType
+        self.assessmentCreatorName = assessmentCreatorName
+        self.assessmentApproverName = assessmentApproverName
+        self.assessmentApprovedDateTime = assessmentApprovedDateTime
+        self.achievedMarks = achievedMarks
+        self.numberofAtmt = numberofAtmt
+        self.negative = negative
+        self.randomized = randomized
+    }
+}
+
+enum Comments: String, Codable {
+    case approved = "Approved"
+}
+
+enum Mode: String, Codable {
+    case online = "Online"
+}
+
+enum TypeEnum: String, Codable {
+    case assessment = "Assessment"
+}

+ 26 - 0
LMS/Model/QuizModel.swift

@@ -5,4 +5,30 @@
 //  Created by Suraj Kumar Mandal on 21/09/22.
 //
 
+//   let quizModel = try? newJSONDecoder().decode(QuizModel.self, from: jsonData)
+
 import Foundation
+
+// MARK: - QuizModel
+class QuizModel: Codable {
+    var id, assessmentId: Int?
+    var srNo, questionType, question: String?
+    var optionsOne, optionsTwo, options, correctMatch: [String]?
+    var marks, negativeMarks, timeInMinutes, status: String?
+
+    init(id: Int?, assessmentId: Int?, srNo: String?, questionType: String?, question: String?, options: [String]?, optionsOne: [String]?, optionsTwo: [String]?, correctMatch: [String]?, marks: String?, negativeMarks: String?, timeInMinutes: String?, status: String?) {
+        self.id = id
+        self.assessmentId = assessmentId
+        self.srNo = srNo
+        self.questionType = questionType
+        self.question = question
+        self.options = options
+        self.optionsOne = optionsOne
+        self.optionsTwo = optionsTwo
+        self.correctMatch = correctMatch
+        self.marks = marks
+        self.negativeMarks = negativeMarks
+        self.timeInMinutes = timeInMinutes
+        self.status = status
+    }
+}

+ 78 - 0
LMS/Model/SessionInterventionModel.swift

@@ -5,4 +5,82 @@
 //  Created by Suraj Kumar Mandal on 05/09/22.
 //
 
+//   let interventionList = try? newJSONDecoder().decode(InterventionList.self, from: jsonData)
+
 import Foundation
+
+// MARK: - SessionInterventionModel
+class SessionInterventionModel: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings: [InterventionSchoolMapping]?
+    var mappedProgramHeads: [MappedProgramHead]?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: [InterventionSchoolMapping]?, mappedProgramHeads: [MappedProgramHead]?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+
+// MARK: - InterventionSchoolMapping
+class InterventionSchoolMapping: Codable {
+    var id, interventionTableId: Int?
+    var schoolMasterTableId: String?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionEntity: SessionInterventionModel?
+    var schoolMasterDTO: JSONNull?
+
+    init(id: Int?, interventionTableId: Int?, schoolMasterTableId: String?, deleted: Bool?, active: Bool?, status: String?, interventionEntity: SessionInterventionModel?, schoolMasterDTO: JSONNull?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.schoolMasterTableId = schoolMasterTableId
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionEntity = interventionEntity
+        self.schoolMasterDTO = schoolMasterDTO
+    }
+}
+
+// MARK: - MappedProgramHead
+class MappedProgramHead: Codable {
+    var id: Int?
+    var userType: JSONNull?
+    var phName: String?
+    var phLastName: JSONNull?
+    var phEmail, phMobile: String?
+    var userId, phEmployeeId: JSONNull?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionIds: [JSONAny]?
+
+    init(id: Int?, userType: JSONNull?, phName: String?, phLastName: JSONNull?, phEmail: String?, phMobile: String?, userId: JSONNull?, phEmployeeId: JSONNull?, deleted: Bool?, active: Bool?, status: String?, interventionIds: [JSONAny]?) {
+        self.id = id
+        self.userType = userType
+        self.phName = phName
+        self.phLastName = phLastName
+        self.phEmail = phEmail
+        self.phMobile = phMobile
+        self.userId = userId
+        self.phEmployeeId = phEmployeeId
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionIds = interventionIds
+    }
+}

+ 220 - 0
LMS/Model/SessionListModel.swift

@@ -6,3 +6,223 @@
 //
 
 import Foundation
+
+// MARK: - SessionListModel
+class SessionListModel: Codable {
+    var id, scheduleId, userId: Int?
+    var date, startTime, endTime: String?
+    var linkCreated: Bool?
+    var link: String?
+    var batch: SessionListBatch?
+    var scheduleTitle, schedulePlace, status, workFlowStatus: String?
+    var eventNo: Int?
+    var notes: JSONNull?
+    var offline: Bool?
+    var batchName: String?
+    var schoolName: String?
+    var interventionName: String?
+    var interventionLevelName: String?
+    var teacherFirstName: String?
+    var teacherLastName: String?
+    var interventionId: Int?
+    var interventionLevelId: Int?
+    var batchId: Int?
+    var schoolId: String?
+
+    init(id: Int?, scheduleId: Int?, userId: Int?, date: String?, startTime: String?, endTime: String?, linkCreated: Bool?, link: String?, batch: SessionListBatch?, scheduleTitle: String?, schedulePlace: String?, status: String?, workFlowStatus: String?, eventNo: Int?, notes: JSONNull?, offline: Bool?, batchName: String?, schoolName: String? ,interventionName: String? ,interventionLevelName: String? ,teacherFirstName: String? ,teacherLastName: String?, interventionId: Int? ,interventionLevelId: Int?, batchId: Int?, schoolId: String?) {
+        self.id = id
+        self.scheduleId = scheduleId
+        self.userId = userId
+        self.date = date
+        self.startTime = startTime
+        self.endTime = endTime
+        self.linkCreated = linkCreated
+        self.link = link
+        self.batch = batch
+        self.scheduleTitle = scheduleTitle
+        self.schedulePlace = schedulePlace
+        self.status = status
+        self.workFlowStatus = workFlowStatus
+        self.eventNo = eventNo
+        self.notes = notes
+        self.offline = offline
+        self.batchName = batchName
+        self.schoolName = schoolName
+        self.interventionName = interventionName
+        self.interventionLevelName = interventionLevelName
+        self.teacherFirstName = teacherFirstName
+        self.teacherLastName = teacherLastName
+        self.interventionId = interventionId
+        self.interventionLevelId = interventionLevelId
+        self.batchId = batchId
+        self.schoolId = schoolId
+    }
+}
+
+// MARK: - Batch
+class SessionListBatch: Codable {
+    var viewBatchRS: SessionListViewBatchRS?
+    var teacher: SessionListTeacher?
+    var comments: String?
+    var substituteTeachers: [SessionListTeacher]?
+    var status: String?
+    var id: Int?
+
+    init(viewBatchRS: SessionListViewBatchRS?, teacher: SessionListTeacher?, comments: String?, substituteTeachers: [SessionListTeacher]?, status: String?, id: Int?) {
+        self.viewBatchRS = viewBatchRS
+        self.teacher = teacher
+        self.comments = comments
+        self.substituteTeachers = substituteTeachers
+        self.status = status
+        self.id = id
+    }
+}
+
+// MARK: - Teacher
+class SessionListTeacher: Codable {
+    var id: Int?
+    var name: String?
+    var middleName: String?
+    var lastName, username, email, mobile: String?
+    var userType: SessionListUserType?
+    var keycloakUserId: String?
+    var enable: Bool?
+    var intervantions: [Int]?
+
+    init(id: Int?, name: String?, middleName: String?, lastName: String?, username: String?, email: String?, mobile: String?, userType: SessionListUserType?, keycloakUserId: String?, enable: Bool?, intervantions: [Int]?) {
+        self.id = id
+        self.name = name
+        self.middleName = middleName
+        self.lastName = lastName
+        self.username = username
+        self.email = email
+        self.mobile = mobile
+        self.userType = userType
+        self.keycloakUserId = keycloakUserId
+        self.enable = enable
+        self.intervantions = intervantions
+    }
+}
+
+// MARK: - UserType
+class SessionListUserType: Codable {
+    var id: Int?
+    var actor, parentActor, discription, defaultRealmRole: String?
+    var createAccess, deleteAccess, editAccess, viewAccess: String?
+    var appUrl: String?
+
+    init(id: Int?, actor: String?, parentActor: String?, discription: String?, defaultRealmRole: String?, createAccess: String?, deleteAccess: String?, editAccess: String?, viewAccess: String?, appUrl: String?) {
+        self.id = id
+        self.actor = actor
+        self.parentActor = parentActor
+        self.discription = discription
+        self.defaultRealmRole = defaultRealmRole
+        self.createAccess = createAccess
+        self.deleteAccess = deleteAccess
+        self.editAccess = editAccess
+        self.viewAccess = viewAccess
+        self.appUrl = appUrl
+    }
+}
+
+// MARK: - ViewBatchRS
+class SessionListViewBatchRS: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, batchName: String?
+    var studentBatch, deleted, active: Bool?
+    var status, comments: String?
+    var interventionDTO: SessionListInterventionDTO?
+    var schoolDTO: SessionListSchoolDTO?
+    var batachUserDtos: [SessionListBatachUserDto]?
+    var level: SessionListLevel?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, batchName: String?, studentBatch: Bool?, deleted: Bool?, active: Bool?, status: String?, comments: String?, interventionDTO: SessionListInterventionDTO?, schoolDTO: SessionListSchoolDTO?, batachUserDtos: [SessionListBatachUserDto]?, level: SessionListLevel?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.batchName = batchName
+        self.studentBatch = studentBatch
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.comments = comments
+        self.interventionDTO = interventionDTO
+        self.schoolDTO = schoolDTO
+        self.batachUserDtos = batachUserDtos
+        self.level = level
+    }
+}
+
+// MARK: - BatachUserDto
+class SessionListBatachUserDto: Codable {
+    var userDto: Teacher?
+    var standard, division, grade: String?
+
+    init(userDto: Teacher?, standard: String?, division: String?, grade: String?) {
+        self.userDto = userDto
+        self.standard = standard
+        self.division = division
+        self.grade = grade
+    }
+}
+
+// MARK: - InterventionDTO
+class SessionListInterventionDTO: Codable {
+    var id: Int?
+    var incrementor: JSONNull?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: JSONNull?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class SessionListLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}
+
+// MARK: - SchoolDTO
+class SessionListSchoolDTO: Codable {
+    var schoolId, schoolName, state, city: String?
+    var pincode: Int?
+    var active, deleted: Bool?
+    var status: String?
+
+    init(schoolId: String?, schoolName: String?, state: String?, city: String?, pincode: Int?, active: Bool?, deleted: Bool?, status: String?) {
+        self.schoolId = schoolId
+        self.schoolName = schoolName
+        self.state = state
+        self.city = city
+        self.pincode = pincode
+        self.active = active
+        self.deleted = deleted
+        self.status = status
+    }
+}

+ 29 - 0
LMS/Model/StudentDetailsModel.swift

@@ -6,3 +6,32 @@
 //
 
 import Foundation
+import RealmSwift
+
+class StudentDetailsModel: Object {
+    
+    @objc dynamic var studentId = 0
+    @objc dynamic var standard = ""
+    @objc dynamic var division = ""
+    @objc dynamic var academicYear = ""
+    
+    override static func primaryKey() -> String? {
+        return "studentId"
+    }
+    
+    convenience init(studentId: Int,
+                     standard: String,
+                     division :String,
+                     academicYear :String
+    ) {
+        
+        self.init()
+        
+        self.studentId = studentId
+        self.standard = standard
+        self.division = division
+        self.academicYear = academicYear
+        
+    }
+    
+}

+ 63 - 0
LMS/Model/UnitsListModel.swift

@@ -5,4 +5,67 @@
 //  Created by Suraj Kumar Mandal on 06/09/22.
 //
 
+//   let unitsList = try? newJSONDecoder().decode(UnitsList.self, from: jsonData)
+
 import Foundation
+
+// MARK: - UnitsListModel
+class UnitsListModel: Codable {
+    var createdBy, createdDate, lastModifiedBy, lastModifiedDate: String?
+    var id: Int?
+    var academicYear, name, status: String?
+    var intervention: Intervention?
+    var level: UnitsLevel?
+    var comments: String?
+
+    init(createdBy: String?, createdDate: String?, lastModifiedBy: String?, lastModifiedDate: String?, id: Int?, academicYear: String?, name: String?, status: String?, intervention: Intervention?, level: UnitsLevel?, comments: String?) {
+        self.createdBy = createdBy
+        self.createdDate = createdDate
+        self.lastModifiedBy = lastModifiedBy
+        self.lastModifiedDate = lastModifiedDate
+        self.id = id
+        self.academicYear = academicYear
+        self.name = name
+        self.status = status
+        self.intervention = intervention
+        self.level = level
+        self.comments = comments
+    }
+}
+
+// MARK: - Intervention
+class Intervention: Codable {
+    var id, incrementor: Int?
+    var interventionId, interventionName: String?
+    var interventionLevels: [String]?
+    var beneficiaryIds: [Int]?
+    var deleted, active: Bool?
+    var status: String?
+    var interventionSchoolMappings, mappedProgramHeads: JSONNull?
+
+    init(id: Int?, incrementor: Int?, interventionId: String?, interventionName: String?, interventionLevels: [String]?, beneficiaryIds: [Int]?, deleted: Bool?, active: Bool?, status: String?, interventionSchoolMappings: JSONNull?, mappedProgramHeads: JSONNull?) {
+        self.id = id
+        self.incrementor = incrementor
+        self.interventionId = interventionId
+        self.interventionName = interventionName
+        self.interventionLevels = interventionLevels
+        self.beneficiaryIds = beneficiaryIds
+        self.deleted = deleted
+        self.active = active
+        self.status = status
+        self.interventionSchoolMappings = interventionSchoolMappings
+        self.mappedProgramHeads = mappedProgramHeads
+    }
+}
+
+// MARK: - Level
+class UnitsLevel: Codable {
+    var id, interventionTableId: Int?
+    var interventionLevels: String?
+
+    init(id: Int?, interventionTableId: Int?, interventionLevels: String?) {
+        self.id = id
+        self.interventionTableId = interventionTableId
+        self.interventionLevels = interventionLevels
+    }
+}

+ 90 - 0
LMS/Model/UserDetailsModel.swift

@@ -6,3 +6,93 @@
 //
 
 import Foundation
+import RealmSwift
+
+class UserDetailsModel: Object {
+    
+    @objc dynamic var id = 0
+    @objc dynamic var name = ""
+    @objc dynamic var lastName = ""
+    @objc dynamic var username = ""
+    @objc dynamic var email = ""
+    @objc dynamic var mobile = ""
+    @objc dynamic var keycloakUserId = ""
+    @objc dynamic var enable = true
+    //@objc dynamic var intervantions = [0]
+    var userType = List<UserType>()
+    
+    override static func primaryKey() -> String? {
+        return "id"
+    }
+    
+    convenience init(id: Int,
+                     name :String,
+                     lastName :String,
+                     username: String,
+                     email: String,
+                     mobile : String,
+                     keycloakUserId : String    ,
+                     enable : Bool,
+                     //intervantions : Array<Int>,
+                     userType : List<UserType>
+    ) {
+        
+        self.init()
+        
+        self.id = id
+        self.name = name
+        self.lastName = lastName
+        self.username = username
+        self.email = email
+        self.mobile = mobile
+        self.keycloakUserId = keycloakUserId
+        self.enable = enable
+        //self.intervantions = intervantions
+        self.userType = userType
+        
+    }
+    
+}
+
+class UserType: Object {
+
+    @objc dynamic var id = 0
+    @objc dynamic var actor = ""
+    @objc dynamic var parentActor = ""
+    @objc dynamic var discription = ""
+    @objc dynamic var defaultRealmRole = ""
+    @objc dynamic var createAccess = ""
+    @objc dynamic var deleteAccess = ""
+    @objc dynamic var editAccess = ""
+    @objc dynamic var viewAccess = ""
+    @objc dynamic var appUrl = ""
+
+    override static func primaryKey() -> String? {
+        return "id"
+    }
+
+    convenience init(id:Int,
+                     actor:String,
+                     parentActor:String,
+                     discription:String,
+                     defaultRealmRole:String,
+                     createAccess:String,
+                     deleteAccess:String,
+                     editAccess:String,
+                     viewAccess:String,
+                     appUrl:String
+    ) {
+        self.init()
+        self.id = id
+        self.actor = actor
+        self.parentActor = parentActor
+        self.discription = discription
+        self.defaultRealmRole = defaultRealmRole
+        self.createAccess = createAccess
+        self.deleteAccess = deleteAccess
+        self.editAccess = editAccess
+        self.viewAccess = viewAccess
+        self.appUrl = appUrl
+    }
+
+}

+ 6 - 22
LMS/Storyboard/Base.lproj/LaunchScreen.storyboard

@@ -1,25 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
-        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
     </dependencies>
-    <scenes>
-        <!--View Controller-->
-        <scene sceneID="EHf-IW-A2E">
-            <objects>
-                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
-                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
-                        <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
-                    </view>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="53" y="375"/>
-        </scene>
-    </scenes>
+    <scenes/>
 </document>

+ 4665 - 6
LMS/Storyboard/Base.lproj/Main.storyboard

@@ -1,24 +1,4683 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22155" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="G3n-Hm-MGg">
+    <device id="retina5_5" orientation="portrait" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22131"/>
+        <capability name="Image references" minToolsVersion="12.0"/>
+        <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="Stack View standard spacing" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="collection view cell content view" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
+    <customFonts key="customFonts">
+        <array key="AvenirNext.ttc">
+            <string>AvenirNext-Regular</string>
+        </array>
+    </customFonts>
     <scenes>
-        <!--View Controller-->
+        <!--Navigation Controller-->
+        <scene sceneID="ltA-YQ-3Ch">
+            <objects>
+                <navigationController automaticallyAdjustsScrollViewInsets="NO" navigationBarHidden="YES" id="G3n-Hm-MGg" sceneMemberID="viewController">
+                    <toolbarItems/>
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="hNp-pn-OiQ">
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <nil name="viewControllers"/>
+                    <connections>
+                        <segue destination="BYZ-38-t0r" kind="relationship" relationship="rootViewController" id="nnT-IV-ebc"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="tGX-do-rhZ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="128.98550724637681" y="97.767857142857139"/>
+        </scene>
+        <!--Dashboard View Controller-->
+        <scene sceneID="qrW-oE-4IG">
+            <objects>
+                <viewController storyboardIdentifier="DashboardViewController" id="MOP-ZK-IIY" customClass="DashboardViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="xS5-r8-kIN">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" verticalHuggingPriority="252" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bBd-KF-hBu">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Dashboard" id="1V2-ve-ZEX">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="UxS-kZ-Z6k">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="MOP-ZK-IIY" id="fv1-0M-ezW"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi User Name," textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5iz-Hn-48K">
+                                <rect key="frame" x="20" y="84" width="374" height="23.333333333333329"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="17"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <stackView opaque="NO" contentMode="scaleToFill" spacing="6" translatesAutoresizingMaskIntoConstraints="NO" id="ISL-yI-GyY">
+                                <rect key="frame" x="20" y="115.33333333333333" width="174" height="24.999999999999986"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="graduationcap.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="C27-YK-9aK">
+                                        <rect key="frame" x="0.0" y="2.6666666666666661" width="25" height="23"/>
+                                        <color key="tintColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="25" id="8EX-4e-VGF"/>
+                                            <constraint firstAttribute="height" constant="25" id="elu-Tw-ZRC"/>
+                                        </constraints>
+                                        <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="small"/>
+                                    </imageView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Academic year:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EIU-2H-GKe">
+                                        <rect key="frame" x="31" y="0.0" width="107" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="N/A" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NCE-3L-x14">
+                                        <rect key="frame" x="144" y="0.0" width="30" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                            </stackView>
+                            <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U7T-d3-gK0">
+                                <rect key="frame" x="20.000000000000007" y="148.33333333333334" width="95.666666666666686" height="25"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="person.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="ICf-FG-1TS">
+                                        <rect key="frame" x="0.0" y="3.3333333333333321" width="25" height="18.666666666666668"/>
+                                        <color key="tintColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="25" id="1dH-pF-3wV"/>
+                                            <constraint firstAttribute="height" constant="25" id="zT5-jo-IiP"/>
+                                        </constraints>
+                                        <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="small"/>
+                                    </imageView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Class:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xXf-CN-xJk">
+                                        <rect key="frame" x="24.999999999999996" y="0.0" width="40.666666666666657" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="N/A" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zxF-6x-sjy">
+                                        <rect key="frame" x="65.666666666666671" y="0.0" width="30" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                            </stackView>
+                            <stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hj7-ho-eLQ">
+                                <rect key="frame" x="123.66666666666669" y="148.33333333333334" width="115" height="25"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="book.closed.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="J8m-lh-qxp">
+                                        <rect key="frame" x="0.0" y="2.3333333333333321" width="25" height="20.666666666666668"/>
+                                        <color key="tintColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="25" id="IVx-XW-tb5"/>
+                                            <constraint firstAttribute="height" constant="25" id="NPi-bg-wWo"/>
+                                        </constraints>
+                                        <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="small"/>
+                                    </imageView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Division:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bxh-Yb-Nx6">
+                                        <rect key="frame" x="24.999999999999986" y="0.0" width="60" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="N/A" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fS9-O7-lc1">
+                                        <rect key="frame" x="84.999999999999986" y="0.0" width="30" height="25"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                            </stackView>
+                            <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="kRw-Hn-Dlh">
+                                <rect key="frame" x="20" y="193.33333333333334" width="374" height="32"/>
+                                <segments>
+                                    <segment title="Sessions"/>
+                                    <segment title="Assessments"/>
+                                </segments>
+                                <connections>
+                                    <action selector="segmentControllClick:" destination="MOP-ZK-IIY" eventType="valueChanged" id="wj4-ly-Rml"/>
+                                </connections>
+                            </segmentedControl>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vBU-oQ-w6G">
+                                <rect key="frame" x="0.0" y="241.33333333333334" width="414" height="494.66666666666663"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Upcoming Assessment:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dOr-Ef-Gss">
+                                        <rect key="frame" x="20" y="19.999999999999972" width="374" height="20.666666666666671"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="F4e-Wz-Nad">
+                                        <rect key="frame" x="20" y="48.666666666666657" width="374" height="393"/>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <prototypes>
+                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DashboardAssessmentListTableViewCell" rowHeight="170" id="9PX-Xc-JA5" customClass="DashboardAssessmentListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                <rect key="frame" x="0.0" y="50" width="374" height="170"/>
+                                                <autoresizingMask key="autoresizingMask"/>
+                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="9PX-Xc-JA5" id="aL9-3n-kk6">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="170"/>
+                                                    <autoresizingMask key="autoresizingMask"/>
+                                                    <subviews>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NC7-AD-lpb">
+                                                            <rect key="frame" x="0.0" y="5" width="374" height="160"/>
+                                                            <subviews>
+                                                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="GCP-yE-ovm">
+                                                                    <rect key="frame" x="20" y="10" width="334" height="140"/>
+                                                                    <subviews>
+                                                                        <stackView opaque="NO" contentMode="scaleToFill" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="8zp-aB-9X4">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="334" height="20"/>
+                                                                            <subviews>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Test Assessment 1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wtw-1I-zg3">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="306" height="20"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="18"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="I2z-3b-zgC">
+                                                                                    <rect key="frame" x="314" y="0.0" width="20" height="20"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="20" id="qnq-aF-Sp1"/>
+                                                                                        <constraint firstAttribute="height" constant="20" id="y3Z-G4-Xdt"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <state key="normal" title="Button"/>
+                                                                                    <buttonConfiguration key="configuration" style="plain" image="chevron.right" catalog="system"/>
+                                                                                </button>
+                                                                            </subviews>
+                                                                        </stackView>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3bV-v7-Cv8">
+                                                                            <rect key="frame" x="0.0" y="28" width="334" height="112"/>
+                                                                            <subviews>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Day &amp; Date" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DIm-mC-dOL">
+                                                                                    <rect key="frame" x="20" y="0.0" width="294" height="16.666666666666668"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="12"/>
+                                                                                    <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Time (From - To)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qzi-cG-HDE">
+                                                                                    <rect key="frame" x="20" y="33.333333333333329" width="294" height="20.666666666666671"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="uPP-mV-rq5">
+                                                                                    <rect key="frame" x="248.66666666666671" y="72" width="65.333333333333343" height="20"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Online" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="krN-m3-1OG">
+                                                                                            <rect key="frame" x="0.0" y="0.0" width="40.333333333333336" height="20"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="13"/>
+                                                                                            <color key="textColor" name="AccentColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="dLs-ll-Bmq">
+                                                                                            <rect key="frame" x="45.333333333333314" y="0.99999999999999822" width="20" height="18.666666666666664"/>
+                                                                                            <color key="tintColor" red="0.38431372549999998" green="0.64705882349999999" blue="0.26274509800000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="height" constant="20" id="Ndw-oI-P6S"/>
+                                                                                                <constraint firstAttribute="width" constant="20" id="w2S-hd-c0I"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                    </subviews>
+                                                                                </stackView>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QBi-Es-O50">
+                                                                                    <rect key="frame" x="20" y="62" width="120" height="30"/>
+                                                                                    <color key="backgroundColor" name="AccentColor"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="120" id="WpX-Vr-YRl"/>
+                                                                                        <constraint firstAttribute="height" constant="30" id="zzO-cr-aYG"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <state key="normal" title="Button"/>
+                                                                                    <buttonConfiguration key="configuration" style="plain" title="Start">
+                                                                                        <fontDescription key="titleFontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    </buttonConfiguration>
+                                                                                </button>
+                                                                            </subviews>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="trailing" secondItem="uPP-mV-rq5" secondAttribute="trailing" constant="20" symbolic="YES" id="4zo-es-Gju"/>
+                                                                                <constraint firstItem="DIm-mC-dOL" firstAttribute="top" secondItem="3bV-v7-Cv8" secondAttribute="top" id="Cii-WM-wyh"/>
+                                                                                <constraint firstItem="QBi-Es-O50" firstAttribute="top" secondItem="qzi-cG-HDE" secondAttribute="bottom" constant="8" symbolic="YES" id="E4b-US-a3z"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="uPP-mV-rq5" secondAttribute="bottom" constant="20" symbolic="YES" id="Lwu-gM-JQ5"/>
+                                                                                <constraint firstItem="DIm-mC-dOL" firstAttribute="leading" secondItem="3bV-v7-Cv8" secondAttribute="leading" constant="20" symbolic="YES" id="QGI-oo-Jop"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="QBi-Es-O50" secondAttribute="bottom" constant="20" symbolic="YES" id="VhA-nb-HCW"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="DIm-mC-dOL" secondAttribute="trailing" constant="20" symbolic="YES" id="dL6-sP-oj0"/>
+                                                                                <constraint firstItem="qzi-cG-HDE" firstAttribute="leading" secondItem="3bV-v7-Cv8" secondAttribute="leading" constant="20" symbolic="YES" id="kks-sX-muP"/>
+                                                                                <constraint firstItem="qzi-cG-HDE" firstAttribute="top" secondItem="DIm-mC-dOL" secondAttribute="bottom" priority="250" constant="8" symbolic="YES" id="qdw-xl-GCw"/>
+                                                                                <constraint firstItem="QBi-Es-O50" firstAttribute="leading" secondItem="3bV-v7-Cv8" secondAttribute="leading" constant="20" symbolic="YES" id="s5o-Kn-Gay"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="qzi-cG-HDE" secondAttribute="trailing" constant="20" symbolic="YES" id="vWU-Cf-Iou"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstItem="3bV-v7-Cv8" firstAttribute="leading" secondItem="GCP-yE-ovm" secondAttribute="leading" id="Esd-PF-65J"/>
+                                                                        <constraint firstItem="8zp-aB-9X4" firstAttribute="leading" secondItem="GCP-yE-ovm" secondAttribute="leading" id="JbE-G3-WhE"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="3bV-v7-Cv8" secondAttribute="bottom" id="OXQ-6M-V4B"/>
+                                                                        <constraint firstItem="3bV-v7-Cv8" firstAttribute="top" secondItem="8zp-aB-9X4" secondAttribute="bottom" constant="8" symbolic="YES" id="e5E-fR-vuR"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="8zp-aB-9X4" secondAttribute="trailing" id="ez3-lx-iHL"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="3bV-v7-Cv8" secondAttribute="trailing" id="mjd-pP-XT0"/>
+                                                                        <constraint firstItem="8zp-aB-9X4" firstAttribute="top" secondItem="GCP-yE-ovm" secondAttribute="top" id="wj9-1Q-igm"/>
+                                                                    </constraints>
+                                                                </stackView>
+                                                            </subviews>
+                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                            <constraints>
+                                                                <constraint firstItem="GCP-yE-ovm" firstAttribute="top" secondItem="NC7-AD-lpb" secondAttribute="top" constant="10" id="9Ol-wZ-tyf"/>
+                                                                <constraint firstAttribute="trailing" secondItem="GCP-yE-ovm" secondAttribute="trailing" constant="20" symbolic="YES" id="R5C-yb-sXQ"/>
+                                                                <constraint firstAttribute="bottom" secondItem="GCP-yE-ovm" secondAttribute="bottom" constant="10" id="nlb-zb-mBS"/>
+                                                                <constraint firstItem="GCP-yE-ovm" firstAttribute="leading" secondItem="NC7-AD-lpb" secondAttribute="leading" constant="20" symbolic="YES" id="p3v-QO-Izg"/>
+                                                            </constraints>
+                                                        </view>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="trailing" secondItem="NC7-AD-lpb" secondAttribute="trailing" id="352-kj-mfW"/>
+                                                        <constraint firstItem="NC7-AD-lpb" firstAttribute="leading" secondItem="aL9-3n-kk6" secondAttribute="leading" id="Ljr-mB-8Bu"/>
+                                                        <constraint firstAttribute="bottom" secondItem="NC7-AD-lpb" secondAttribute="bottom" constant="5" id="T5t-T3-gPA"/>
+                                                        <constraint firstItem="NC7-AD-lpb" firstAttribute="top" secondItem="aL9-3n-kk6" secondAttribute="top" constant="5" id="jpe-5K-FLo"/>
+                                                    </constraints>
+                                                </tableViewCellContentView>
+                                                <connections>
+                                                    <outlet property="activeStatusLabel" destination="krN-m3-1OG" id="CyT-id-R3x"/>
+                                                    <outlet property="assessmentCustomView" destination="NC7-AD-lpb" id="7Fw-8v-lsw"/>
+                                                    <outlet property="assessmentNameLabel" destination="wtw-1I-zg3" id="HAR-ML-Elf"/>
+                                                    <outlet property="dayDateLabel" destination="DIm-mC-dOL" id="258-ks-rzI"/>
+                                                    <outlet property="dropdownButton" destination="I2z-3b-zgC" id="YoN-0j-GbE"/>
+                                                    <outlet property="hiddenCustomView" destination="3bV-v7-Cv8" id="Yzx-jE-ZsI"/>
+                                                    <outlet property="startButton" destination="QBi-Es-O50" id="MjJ-rL-PvQ"/>
+                                                    <outlet property="statusIndicatorImageView" destination="dLs-ll-Bmq" id="5Lo-5n-L1N"/>
+                                                    <outlet property="timeLabel" destination="qzi-cG-HDE" id="iSm-Nt-va2"/>
+                                                </connections>
+                                            </tableViewCell>
+                                        </prototypes>
+                                    </tableView>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zn2-EL-NQf">
+                                        <rect key="frame" x="20" y="449.66666666666663" width="190" height="25"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="190" id="DZ8-we-FqB"/>
+                                            <constraint firstAttribute="height" constant="25" id="kwy-wu-ox2"/>
+                                        </constraints>
+                                        <state key="normal" title="Button"/>
+                                        <buttonConfiguration key="configuration" style="plain" title="view all assessments" imagePadding="5">
+                                            <imageReference key="image" image="plus" catalog="system" symbolScale="medium"/>
+                                            <fontDescription key="titleFontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="15"/>
+                                            <color key="baseForegroundColor" name="AccentColor"/>
+                                        </buttonConfiguration>
+                                        <connections>
+                                            <action selector="viewAllAssessmentAction:" destination="MOP-ZK-IIY" eventType="touchUpInside" id="Jr5-F6-3dw"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="trailing" secondItem="dOr-Ef-Gss" secondAttribute="trailing" constant="20" symbolic="YES" id="4I4-d4-Q1u"/>
+                                    <constraint firstAttribute="bottom" secondItem="Zn2-EL-NQf" secondAttribute="bottom" constant="20" symbolic="YES" id="HQj-em-gT3"/>
+                                    <constraint firstItem="Zn2-EL-NQf" firstAttribute="leading" secondItem="vBU-oQ-w6G" secondAttribute="leading" constant="20" symbolic="YES" id="LRr-mX-6Tp"/>
+                                    <constraint firstItem="F4e-Wz-Nad" firstAttribute="leading" secondItem="vBU-oQ-w6G" secondAttribute="leading" constant="20" symbolic="YES" id="Nef-aQ-82L"/>
+                                    <constraint firstItem="Zn2-EL-NQf" firstAttribute="top" secondItem="F4e-Wz-Nad" secondAttribute="bottom" priority="250" constant="8" symbolic="YES" id="Vv9-41-1kf"/>
+                                    <constraint firstItem="F4e-Wz-Nad" firstAttribute="top" secondItem="dOr-Ef-Gss" secondAttribute="bottom" constant="8" symbolic="YES" id="gTe-uR-sir"/>
+                                    <constraint firstItem="dOr-Ef-Gss" firstAttribute="top" secondItem="vBU-oQ-w6G" secondAttribute="top" constant="20" symbolic="YES" id="la6-eY-8ua"/>
+                                    <constraint firstItem="dOr-Ef-Gss" firstAttribute="leading" secondItem="vBU-oQ-w6G" secondAttribute="leading" constant="20" symbolic="YES" id="qXf-JT-3ZO"/>
+                                    <constraint firstAttribute="trailing" secondItem="F4e-Wz-Nad" secondAttribute="trailing" constant="20" symbolic="YES" id="tws-dY-HcY"/>
+                                </constraints>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XlJ-3M-DAb">
+                                <rect key="frame" x="0.0" y="241.33333333333334" width="414" height="494.66666666666663"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Upcoming Sessions:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="64V-cI-UEG">
+                                        <rect key="frame" x="20" y="19.999999999999972" width="374" height="20.666666666666671"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" layoutMarginsFollowReadableWidth="YES" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="1x8-2k-v4Z">
+                                        <rect key="frame" x="20" y="48.666666666666657" width="374" height="393"/>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <directionalEdgeInsets key="directionalLayoutMargins" top="8" leading="8" bottom="8" trailing="8"/>
+                                        <prototypes>
+                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DashboardSessionListTableViewCell" rowHeight="170" id="La0-v9-8OP" customClass="DashboardSessionListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                <rect key="frame" x="0.0" y="50" width="374" height="170"/>
+                                                <autoresizingMask key="autoresizingMask"/>
+                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="La0-v9-8OP" id="gVs-EA-0qL">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="170"/>
+                                                    <autoresizingMask key="autoresizingMask"/>
+                                                    <subviews>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kwI-Kw-jAy">
+                                                            <rect key="frame" x="0.0" y="5" width="374" height="160"/>
+                                                            <subviews>
+                                                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="j0c-pn-n4F">
+                                                                    <rect key="frame" x="20" y="10" width="334" height="140"/>
+                                                                    <subviews>
+                                                                        <stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="dPQ-Jo-6mF">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="334" height="20"/>
+                                                                            <subviews>
+                                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="8Ba-rR-5tf">
+                                                                                    <rect key="frame" x="0.0" y="0.99999999999999822" width="20" height="18.666666666666664"/>
+                                                                                    <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="20" id="Gg7-TC-Lxw"/>
+                                                                                        <constraint firstAttribute="width" constant="20" id="bX9-6d-e76"/>
+                                                                                    </constraints>
+                                                                                </imageView>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Session Name" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6v5-iB-rIj">
+                                                                                    <rect key="frame" x="28" y="0.0" width="278" height="20"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="18"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Bos-Kz-obZ">
+                                                                                    <rect key="frame" x="314" y="0.0" width="20" height="20"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="20" id="5pw-PY-i4n"/>
+                                                                                        <constraint firstAttribute="width" constant="20" id="a8U-tR-PGw"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                                                    <state key="normal" image="chevron.down" catalog="system"/>
+                                                                                </button>
+                                                                            </subviews>
+                                                                        </stackView>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kTc-GS-mT9">
+                                                                            <rect key="frame" x="0.0" y="28" width="334" height="112"/>
+                                                                            <subviews>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Day &amp; Date" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CMR-gC-ErB">
+                                                                                    <rect key="frame" x="30" y="0.0" width="284" height="34"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="12"/>
+                                                                                    <color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <stackView opaque="NO" contentMode="scaleToFill" spacing="17" translatesAutoresizingMaskIntoConstraints="NO" id="1hX-sh-K45">
+                                                                                    <rect key="frame" x="20" y="42" width="148.33333333333334" height="20"/>
+                                                                                    <subviews>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="UlL-xv-GrG">
+                                                                                            <rect key="frame" x="0.0" y="0.99999999999999822" width="20" height="18.666666666666664"/>
+                                                                                            <color key="tintColor" systemColor="labelColor"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="height" constant="20" id="cqL-DX-DdP"/>
+                                                                                                <constraint firstAttribute="width" constant="20" id="oO2-bX-J3X"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Time (From - To)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="g0M-zT-AsY">
+                                                                                            <rect key="frame" x="36.999999999999993" y="0.0" width="111.33333333333331" height="20"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                            <nil key="textColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                    </subviews>
+                                                                                </stackView>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wq8-g4-zfl">
+                                                                                    <rect key="frame" x="20" y="70" width="140" height="32"/>
+                                                                                    <color key="backgroundColor" name="AccentColor"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="32" id="Rbz-n4-eSf"/>
+                                                                                        <constraint firstAttribute="width" constant="140" id="lsk-N2-jSn"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <state key="normal" title="Button"/>
+                                                                                    <buttonConfiguration key="configuration" style="plain" title="Join Class">
+                                                                                        <fontDescription key="titleFontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    </buttonConfiguration>
+                                                                                </button>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="bottom" secondItem="Wq8-g4-zfl" secondAttribute="bottom" constant="10" id="7BJ-PK-Qds"/>
+                                                                                <constraint firstItem="Wq8-g4-zfl" firstAttribute="top" secondItem="1hX-sh-K45" secondAttribute="bottom" constant="8" symbolic="YES" id="7EC-sb-z2V"/>
+                                                                                <constraint firstItem="1hX-sh-K45" firstAttribute="top" secondItem="CMR-gC-ErB" secondAttribute="bottom" constant="8" symbolic="YES" id="8XV-OM-cWX"/>
+                                                                                <constraint firstItem="CMR-gC-ErB" firstAttribute="leading" secondItem="kTc-GS-mT9" secondAttribute="leading" constant="30" id="cfA-mL-TG0"/>
+                                                                                <constraint firstItem="CMR-gC-ErB" firstAttribute="top" secondItem="kTc-GS-mT9" secondAttribute="top" id="kwq-x9-YZt"/>
+                                                                                <constraint firstItem="Wq8-g4-zfl" firstAttribute="leading" secondItem="kTc-GS-mT9" secondAttribute="leading" constant="20" symbolic="YES" id="pO4-qo-F7V"/>
+                                                                                <constraint firstItem="1hX-sh-K45" firstAttribute="leading" secondItem="kTc-GS-mT9" secondAttribute="leading" constant="20" symbolic="YES" id="x5f-jw-aF0"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="CMR-gC-ErB" secondAttribute="trailing" constant="20" symbolic="YES" id="zeE-aV-OQx"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="trailing" secondItem="kTc-GS-mT9" secondAttribute="trailing" id="NLi-ck-RZq"/>
+                                                                        <constraint firstItem="kTc-GS-mT9" firstAttribute="leading" secondItem="j0c-pn-n4F" secondAttribute="leading" id="Rqv-72-FLS"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="dPQ-Jo-6mF" secondAttribute="trailing" id="WxG-Ho-gXa"/>
+                                                                        <constraint firstItem="dPQ-Jo-6mF" firstAttribute="top" secondItem="j0c-pn-n4F" secondAttribute="top" id="h43-sJ-8NA"/>
+                                                                        <constraint firstItem="dPQ-Jo-6mF" firstAttribute="leading" secondItem="j0c-pn-n4F" secondAttribute="leading" id="kWO-SF-6Qd"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="kTc-GS-mT9" secondAttribute="bottom" id="uNM-BD-onK"/>
+                                                                        <constraint firstItem="kTc-GS-mT9" firstAttribute="top" secondItem="dPQ-Jo-6mF" secondAttribute="bottom" constant="8" symbolic="YES" id="vQM-cN-XaK"/>
+                                                                    </constraints>
+                                                                </stackView>
+                                                            </subviews>
+                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                            <constraints>
+                                                                <constraint firstItem="j0c-pn-n4F" firstAttribute="top" secondItem="kwI-Kw-jAy" secondAttribute="top" constant="10" id="INu-uz-PHd"/>
+                                                                <constraint firstAttribute="bottom" secondItem="j0c-pn-n4F" secondAttribute="bottom" constant="10" id="JD9-Oa-jBJ"/>
+                                                                <constraint firstItem="j0c-pn-n4F" firstAttribute="leading" secondItem="kwI-Kw-jAy" secondAttribute="leading" constant="20" symbolic="YES" id="Jk6-pb-KWE"/>
+                                                                <constraint firstAttribute="trailing" secondItem="j0c-pn-n4F" secondAttribute="trailing" constant="20" symbolic="YES" id="ZnZ-op-0n5"/>
+                                                            </constraints>
+                                                        </view>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="bottom" secondItem="kwI-Kw-jAy" secondAttribute="bottom" constant="5" id="1f1-ti-6ae"/>
+                                                        <constraint firstItem="kwI-Kw-jAy" firstAttribute="top" secondItem="gVs-EA-0qL" secondAttribute="top" constant="5" id="560-Mr-n8n"/>
+                                                        <constraint firstItem="kwI-Kw-jAy" firstAttribute="leading" secondItem="gVs-EA-0qL" secondAttribute="leading" id="TLh-F8-6Kv"/>
+                                                        <constraint firstAttribute="trailing" secondItem="kwI-Kw-jAy" secondAttribute="trailing" id="nkh-7S-vgv"/>
+                                                    </constraints>
+                                                </tableViewCellContentView>
+                                                <connections>
+                                                    <outlet property="dayDateLabel" destination="CMR-gC-ErB" id="w3p-68-uti"/>
+                                                    <outlet property="dropdownArrowButton" destination="Bos-Kz-obZ" id="0Hq-8j-vSU"/>
+                                                    <outlet property="hiddenView" destination="kTc-GS-mT9" id="XdY-Cp-gtG"/>
+                                                    <outlet property="joinButton" destination="Wq8-g4-zfl" id="LAK-NQ-zPl"/>
+                                                    <outlet property="sessionCustomView" destination="kwI-Kw-jAy" id="iBf-Oo-ruu"/>
+                                                    <outlet property="sessionNameLabel" destination="6v5-iB-rIj" id="Ld4-7Y-0Q4"/>
+                                                    <outlet property="timeLabel" destination="g0M-zT-AsY" id="pAt-Qr-9i1"/>
+                                                </connections>
+                                            </tableViewCell>
+                                        </prototypes>
+                                    </tableView>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="leading" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Trj-oo-Ale">
+                                        <rect key="frame" x="20" y="449.66666666666663" width="160" height="25"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="160" id="0Wr-0v-J2O"/>
+                                            <constraint firstAttribute="height" constant="25" id="BNm-TY-Lb9"/>
+                                        </constraints>
+                                        <state key="normal" title="Button"/>
+                                        <buttonConfiguration key="configuration" style="plain" title="view all sessions" imagePadding="5">
+                                            <imageReference key="image" image="plus" catalog="system" symbolScale="medium"/>
+                                            <fontDescription key="titleFontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="15"/>
+                                            <color key="baseForegroundColor" name="AccentColor"/>
+                                        </buttonConfiguration>
+                                        <connections>
+                                            <action selector="viewAllSessionAction:" destination="MOP-ZK-IIY" eventType="touchUpInside" id="02f-sK-pdW"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstItem="1x8-2k-v4Z" firstAttribute="leading" secondItem="XlJ-3M-DAb" secondAttribute="leading" constant="20" symbolic="YES" id="4pe-Uv-qWD"/>
+                                    <constraint firstAttribute="trailing" secondItem="64V-cI-UEG" secondAttribute="trailing" constant="20" symbolic="YES" id="82d-Ma-wnR"/>
+                                    <constraint firstItem="Trj-oo-Ale" firstAttribute="top" secondItem="1x8-2k-v4Z" secondAttribute="bottom" priority="250" constant="8" symbolic="YES" id="8G9-AQ-dcX"/>
+                                    <constraint firstAttribute="bottom" secondItem="Trj-oo-Ale" secondAttribute="bottom" constant="20" symbolic="YES" id="GFu-Ei-JW8"/>
+                                    <constraint firstAttribute="trailing" secondItem="Trj-oo-Ale" secondAttribute="trailing" priority="250" constant="234" id="OrN-PR-5Tg"/>
+                                    <constraint firstItem="1x8-2k-v4Z" firstAttribute="top" secondItem="64V-cI-UEG" secondAttribute="bottom" constant="8" symbolic="YES" id="Pcz-rj-BHv"/>
+                                    <constraint firstItem="64V-cI-UEG" firstAttribute="top" secondItem="XlJ-3M-DAb" secondAttribute="top" constant="20" symbolic="YES" id="qsr-1E-WET"/>
+                                    <constraint firstItem="64V-cI-UEG" firstAttribute="leading" secondItem="XlJ-3M-DAb" secondAttribute="leading" constant="20" symbolic="YES" id="rVM-wd-CqT"/>
+                                    <constraint firstAttribute="trailing" secondItem="1x8-2k-v4Z" secondAttribute="trailing" constant="20" symbolic="YES" id="vLp-kK-rX5"/>
+                                    <constraint firstItem="Trj-oo-Ale" firstAttribute="leading" secondItem="XlJ-3M-DAb" secondAttribute="leading" constant="20" symbolic="YES" id="xaG-mq-8lc"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="flU-3i-z48"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="U7T-d3-gK0" firstAttribute="top" secondItem="ISL-yI-GyY" secondAttribute="bottom" constant="8" symbolic="YES" id="0sB-Dr-Lfn"/>
+                            <constraint firstItem="XlJ-3M-DAb" firstAttribute="trailing" secondItem="flU-3i-z48" secondAttribute="trailing" id="5H6-zh-Tph"/>
+                            <constraint firstItem="5iz-Hn-48K" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" constant="20" id="7c6-LO-uFq"/>
+                            <constraint firstItem="vBU-oQ-w6G" firstAttribute="trailing" secondItem="flU-3i-z48" secondAttribute="trailing" id="AOK-Mo-QQQ"/>
+                            <constraint firstItem="ISL-yI-GyY" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" constant="20" id="BKD-t8-1zU"/>
+                            <constraint firstItem="vBU-oQ-w6G" firstAttribute="bottom" secondItem="flU-3i-z48" secondAttribute="bottom" id="Fh3-6H-L2t"/>
+                            <constraint firstItem="XlJ-3M-DAb" firstAttribute="bottom" secondItem="flU-3i-z48" secondAttribute="bottom" id="Jtn-UV-RZh"/>
+                            <constraint firstItem="5iz-Hn-48K" firstAttribute="top" secondItem="bBd-KF-hBu" secondAttribute="bottom" constant="20" id="KPq-SZ-UPN"/>
+                            <constraint firstItem="bBd-KF-hBu" firstAttribute="top" secondItem="flU-3i-z48" secondAttribute="top" id="Mw1-fj-C3d"/>
+                            <constraint firstItem="kRw-Hn-Dlh" firstAttribute="top" secondItem="U7T-d3-gK0" secondAttribute="bottom" constant="20" id="Ufy-5Q-Nzp"/>
+                            <constraint firstItem="XlJ-3M-DAb" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" id="hhm-U6-LML"/>
+                            <constraint firstItem="flU-3i-z48" firstAttribute="trailing" secondItem="kRw-Hn-Dlh" secondAttribute="trailing" constant="20" id="juF-yZ-nDe"/>
+                            <constraint firstItem="bBd-KF-hBu" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" id="l4T-du-biu"/>
+                            <constraint firstItem="hj7-ho-eLQ" firstAttribute="top" secondItem="ISL-yI-GyY" secondAttribute="bottom" constant="8" symbolic="YES" id="l5x-t4-uqd"/>
+                            <constraint firstItem="vBU-oQ-w6G" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" id="lSR-vj-LzP"/>
+                            <constraint firstItem="kRw-Hn-Dlh" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" constant="20" id="o6c-0C-DGa"/>
+                            <constraint firstItem="vBU-oQ-w6G" firstAttribute="top" secondItem="kRw-Hn-Dlh" secondAttribute="bottom" constant="16.999999999999972" id="o9I-TZ-pIT"/>
+                            <constraint firstItem="bBd-KF-hBu" firstAttribute="trailing" secondItem="flU-3i-z48" secondAttribute="trailing" id="qwA-GZ-4XB"/>
+                            <constraint firstItem="U7T-d3-gK0" firstAttribute="leading" secondItem="flU-3i-z48" secondAttribute="leading" constant="20" id="sZS-zg-D54"/>
+                            <constraint firstItem="hj7-ho-eLQ" firstAttribute="leading" secondItem="U7T-d3-gK0" secondAttribute="trailing" constant="8" symbolic="YES" id="vp8-3Y-bQT"/>
+                            <constraint firstItem="flU-3i-z48" firstAttribute="trailing" secondItem="5iz-Hn-48K" secondAttribute="trailing" constant="20" id="wXA-B2-R2H"/>
+                            <constraint firstItem="ISL-yI-GyY" firstAttribute="top" secondItem="5iz-Hn-48K" secondAttribute="bottom" constant="8" symbolic="YES" id="xO6-ZX-FpR"/>
+                            <constraint firstItem="XlJ-3M-DAb" firstAttribute="top" secondItem="kRw-Hn-Dlh" secondAttribute="bottom" constant="16.999999999999972" id="y9O-wa-Uyn"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="academicYearLabel" destination="NCE-3L-x14" id="AKm-S6-nl0"/>
+                        <outlet property="assessmentListTableView" destination="F4e-Wz-Nad" id="LVl-Kr-tUo"/>
+                        <outlet property="classLabel" destination="zxF-6x-sjy" id="2Zh-oJ-WPG"/>
+                        <outlet property="divisionLabel" destination="fS9-O7-lc1" id="LTR-xh-t3N"/>
+                        <outlet property="navigationBar" destination="bBd-KF-hBu" id="AQL-A4-NPB"/>
+                        <outlet property="sessionListTableView" destination="1x8-2k-v4Z" id="WKR-Od-6wh"/>
+                        <outlet property="typeSegmentControl" destination="kRw-Hn-Dlh" id="X0b-TL-mfC"/>
+                        <outlet property="upcomingAssessmentView" destination="vBU-oQ-w6G" id="yxE-uG-HWn"/>
+                        <outlet property="upcomingSessionView" destination="XlJ-3M-DAb" id="tZf-df-KEc"/>
+                        <outlet property="usernameLabel" destination="5iz-Hn-48K" id="pEA-uA-a7b"/>
+                        <outlet property="viewAllAssessmentButton" destination="Zn2-EL-NQf" id="pvd-kL-vK8"/>
+                        <outlet property="viewAllSessionButton" destination="Trj-oo-Ale" id="IW1-pA-Qsw"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="5BK-Pp-4Yz" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="128.98550724637681" y="835.59782608695662"/>
+        </scene>
+        <!--Splash Screen View Controller-->
         <scene sceneID="tne-QT-ifu">
             <objects>
-                <viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController storyboardIdentifier="SplashScreenViewController" id="BYZ-38-t0r" customClass="SplashScreenViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <subviews>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Presented by -  " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WO0-cE-ZLb">
+                                <rect key="frame" x="20" y="50" width="374" height="34.333333333333343"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-DemiBoldItalic" family="Avenir Next" pointSize="25"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mf4-xN-v81">
+                                <rect key="frame" x="107" y="104.33333333333331" width="200" height="120"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Hinduja Foundation (White)" translatesAutoresizingMaskIntoConstraints="NO" id="IiE-vM-4Nh">
+                                        <rect key="frame" x="20" y="20" width="160" height="80"/>
+                                    </imageView>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstItem="IiE-vM-4Nh" firstAttribute="leading" secondItem="mf4-xN-v81" secondAttribute="leading" constant="20" id="57g-by-Cva"/>
+                                    <constraint firstAttribute="width" constant="200" id="MU3-5V-gpP"/>
+                                    <constraint firstAttribute="trailing" secondItem="IiE-vM-4Nh" secondAttribute="trailing" constant="20" id="dhW-QS-JnP"/>
+                                    <constraint firstAttribute="bottom" secondItem="IiE-vM-4Nh" secondAttribute="bottom" constant="20" id="h0v-zh-F0B"/>
+                                    <constraint firstAttribute="height" constant="120" id="nCq-HB-4f5"/>
+                                    <constraint firstItem="IiE-vM-4Nh" firstAttribute="top" secondItem="mf4-xN-v81" secondAttribute="top" constant="20" id="zT1-1v-k35"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sew-Mh-UY4">
+                                <rect key="frame" x="206.66666666666666" y="224.33333333333334" width="1" height="62.000000000000028"/>
+                                <color key="backgroundColor" red="0.1058823529" green="0.37647058820000001" blue="0.59607843140000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="1" id="vpf-d0-H9a"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="&amp;" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x7u-Fg-rDf">
+                                <rect key="frame" x="196" y="244.33333333333334" width="22" height="22.000000000000028"/>
+                                <color key="backgroundColor" red="0.10588235294117647" green="0.37647058823529411" blue="0.59607843137254901" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="22" id="Gyq-Hb-Ef6"/>
+                                    <constraint firstAttribute="width" constant="22" id="uMe-hf-dpv"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gEk-FG-IvU">
+                                <rect key="frame" x="132" y="286.33333333333331" width="150" height="150"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Hinduja College" translatesAutoresizingMaskIntoConstraints="NO" id="JEu-qd-gCG">
+                                        <rect key="frame" x="20" y="20" width="110" height="110"/>
+                                    </imageView>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstItem="JEu-qd-gCG" firstAttribute="top" secondItem="gEk-FG-IvU" secondAttribute="top" constant="20" id="8rW-qs-C89"/>
+                                    <constraint firstAttribute="bottom" secondItem="JEu-qd-gCG" secondAttribute="bottom" constant="20" id="aXK-YU-HWa"/>
+                                    <constraint firstItem="JEu-qd-gCG" firstAttribute="leading" secondItem="gEk-FG-IvU" secondAttribute="leading" constant="20" id="csM-ms-dgG"/>
+                                    <constraint firstAttribute="width" constant="150" id="dPk-Ix-dnx"/>
+                                    <constraint firstAttribute="trailing" secondItem="JEu-qd-gCG" secondAttribute="trailing" constant="20" id="vAR-SG-fD6"/>
+                                    <constraint firstAttribute="height" constant="150" id="yhX-mW-tuF"/>
+                                </constraints>
+                            </view>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cwa-FZ-M5G">
+                                <rect key="frame" x="206.66666666666666" y="436.33333333333331" width="1" height="189.66666666666669"/>
+                                <color key="backgroundColor" red="0.1058823529" green="0.37647058820000001" blue="0.59607843140000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="1" id="pF1-VG-KZ7"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                <nil key="textColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by -" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fcp-ct-egs">
+                                <rect key="frame" x="20" y="561.66666666666663" width="374" height="34.333333333333371"/>
+                                <color key="backgroundColor" name="AccentColor"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-DemiBoldItalic" family="Avenir Next" pointSize="25"/>
+                                <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CSd-LF-IEo">
+                                <rect key="frame" x="107" y="626" width="200" height="70"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Finlabs" translatesAutoresizingMaskIntoConstraints="NO" id="bXg-Cu-Ao4">
+                                        <rect key="frame" x="20" y="20" width="160" height="30"/>
+                                    </imageView>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstAttribute="trailing" secondItem="bXg-Cu-Ao4" secondAttribute="trailing" constant="20" id="3NC-Jb-rNe"/>
+                                    <constraint firstAttribute="height" constant="70" id="4I0-hw-Tal"/>
+                                    <constraint firstAttribute="width" constant="200" id="HKE-PW-CkB"/>
+                                    <constraint firstAttribute="bottom" secondItem="bXg-Cu-Ao4" secondAttribute="bottom" constant="20" id="UDB-pn-cK0"/>
+                                    <constraint firstItem="bXg-Cu-Ao4" firstAttribute="leading" secondItem="CSd-LF-IEo" secondAttribute="leading" constant="20" id="UWO-kQ-9cm"/>
+                                    <constraint firstItem="bXg-Cu-Ao4" firstAttribute="top" secondItem="CSd-LF-IEo" secondAttribute="top" constant="20" id="pH3-Bv-Mwo"/>
+                                </constraints>
+                            </view>
+                        </subviews>
                         <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
+                        <color key="backgroundColor" name="AccentColor"/>
+                        <constraints>
+                            <constraint firstItem="cwa-FZ-M5G" firstAttribute="top" secondItem="gEk-FG-IvU" secondAttribute="bottom" id="3cr-Bo-OfT"/>
+                            <constraint firstItem="x7u-Fg-rDf" firstAttribute="top" secondItem="mf4-xN-v81" secondAttribute="bottom" constant="20" id="5YH-Dg-X4J"/>
+                            <constraint firstItem="Sew-Mh-UY4" firstAttribute="top" secondItem="mf4-xN-v81" secondAttribute="bottom" id="C9e-1E-0Zn"/>
+                            <constraint firstItem="gEk-FG-IvU" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="Fjn-QX-YfR"/>
+                            <constraint firstItem="CSd-LF-IEo" firstAttribute="top" secondItem="cwa-FZ-M5G" secondAttribute="bottom" id="H0n-YU-u3Q"/>
+                            <constraint firstItem="gEk-FG-IvU" firstAttribute="top" secondItem="Sew-Mh-UY4" secondAttribute="bottom" id="Jm9-N7-AjV"/>
+                            <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="WO0-cE-ZLb" secondAttribute="trailing" constant="20" id="OHn-hk-yml"/>
+                            <constraint firstItem="CSd-LF-IEo" firstAttribute="top" secondItem="fcp-ct-egs" secondAttribute="bottom" constant="30" id="ORe-MN-8N3"/>
+                            <constraint firstItem="WO0-cE-ZLb" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="OXz-dW-xxZ"/>
+                            <constraint firstItem="mf4-xN-v81" firstAttribute="top" secondItem="WO0-cE-ZLb" secondAttribute="bottom" constant="20" id="Rln-EB-AWk"/>
+                            <constraint firstItem="gEk-FG-IvU" firstAttribute="top" secondItem="x7u-Fg-rDf" secondAttribute="bottom" constant="20" id="SoY-gp-Zft"/>
+                            <constraint firstItem="WO0-cE-ZLb" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="30" id="T4s-XN-V51"/>
+                            <constraint firstItem="cwa-FZ-M5G" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="Whi-lv-Qv8"/>
+                            <constraint firstItem="x7u-Fg-rDf" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="XfQ-uF-p8y"/>
+                            <constraint firstItem="CSd-LF-IEo" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="Xpl-o7-MFc"/>
+                            <constraint firstItem="fcp-ct-egs" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="20" id="chu-Dk-WIt"/>
+                            <constraint firstItem="mf4-xN-v81" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="dt8-rs-b4q"/>
+                            <constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="CSd-LF-IEo" secondAttribute="bottom" constant="40" id="ipt-Tj-zuG"/>
+                            <constraint firstItem="fcp-ct-egs" firstAttribute="top" secondItem="gEk-FG-IvU" secondAttribute="bottom" priority="250" constant="135.33333333333331" id="uTF-g2-Y6F"/>
+                            <constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="fcp-ct-egs" secondAttribute="trailing" constant="20" id="yT6-tQ-wPL"/>
+                            <constraint firstItem="Sew-Mh-UY4" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="z9h-Gb-Rjt"/>
+                        </constraints>
                     </view>
+                    <navigationItem key="navigationItem" id="eKV-0H-KrR"/>
+                    <connections>
+                        <outlet property="andLabel" destination="x7u-Fg-rDf" id="AdY-Hh-TMo"/>
+                        <outlet property="finlabsLogoImageView" destination="bXg-Cu-Ao4" id="qBN-C7-KRi"/>
+                        <outlet property="finlabsLogoView" destination="CSd-LF-IEo" id="nTT-F3-0DD"/>
+                        <outlet property="hindujaCollegeImageView" destination="JEu-qd-gCG" id="avn-5f-pxw"/>
+                        <outlet property="hindujaCollegeView" destination="gEk-FG-IvU" id="aOU-of-uKf"/>
+                        <outlet property="hindujaLogoImageView" destination="IiE-vM-4Nh" id="fbL-hE-Hsg"/>
+                        <outlet property="hindujaLogoView" destination="mf4-xN-v81" id="fMB-Vq-c4U"/>
+                        <outlet property="poweredByLabel" destination="fcp-ct-egs" id="c5F-hR-piz"/>
+                        <outlet property="presentedByLabel" destination="WO0-cE-ZLb" id="xYR-tk-ESj"/>
+                    </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
             </objects>
+            <point key="canvasLocation" x="876.81159420289862" y="97.010869565217405"/>
+        </scene>
+        <!--Login View Controller-->
+        <scene sceneID="Ty6-hw-E2N">
+            <objects>
+                <viewController storyboardIdentifier="LoginViewController" id="4UB-VE-Edr" customClass="LoginViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="H86-hJ-sDL">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oUU-wp-b8X">
+                                <rect key="frame" x="0.0" y="179.33333333333334" width="414" height="377.33333333333326"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sign in to your account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oUb-kX-QCi">
+                                        <rect key="frame" x="20" y="109.99999999999997" width="374" height="27.333333333333343"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="20"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="qA9-nY-IvY" customClass="PaddedTextField" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="40" y="237.33333333333337" width="334" height="40"/>
+                                        <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="40" id="Low-Cs-KZk"/>
+                                        </constraints>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="17"/>
+                                        <textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="namePhonePad" enablesReturnKeyAutomatically="YES" secureTextEntry="YES" textContentType="password"/>
+                                    </textField>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fQj-JP-7v5">
+                                        <rect key="frame" x="40" y="307.33333333333337" width="334" height="50"/>
+                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="50" id="Fub-Ml-rIJ"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" title="Sign In">
+                                            <color key="titleColor" red="0.050980392156862744" green="0.29803921568627451" blue="0.53333333333333333" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="signInAction:" destination="4UB-VE-Edr" eventType="touchUpInside" id="xIw-kx-W6U"/>
+                                        </connections>
+                                    </button>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qh9-XU-Syu">
+                                        <rect key="frame" x="172" y="20" width="70" height="70"/>
+                                        <subviews>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login-lock" translatesAutoresizingMaskIntoConstraints="NO" id="dGp-Ko-kYS">
+                                                <rect key="frame" x="5" y="5" width="60" height="60"/>
+                                            </imageView>
+                                        </subviews>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="70" id="C56-RO-QAM"/>
+                                            <constraint firstItem="dGp-Ko-kYS" firstAttribute="leading" secondItem="Qh9-XU-Syu" secondAttribute="leading" constant="5" id="CI9-4p-sRa"/>
+                                            <constraint firstAttribute="bottom" secondItem="dGp-Ko-kYS" secondAttribute="bottom" constant="5" id="ZPg-6j-hWo"/>
+                                            <constraint firstItem="dGp-Ko-kYS" firstAttribute="top" secondItem="Qh9-XU-Syu" secondAttribute="top" constant="5" id="bD4-pH-dN0"/>
+                                            <constraint firstAttribute="height" constant="70" id="hXf-jf-2BG"/>
+                                            <constraint firstAttribute="trailing" secondItem="dGp-Ko-kYS" secondAttribute="trailing" constant="5" id="yBl-W4-g8W"/>
+                                        </constraints>
+                                    </view>
+                                    <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username or email" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="E97-bL-Mpu" customClass="PaddedTextField" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="40" y="177.33333333333334" width="334" height="40"/>
+                                        <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="40" id="AwP-9J-rwJ"/>
+                                        </constraints>
+                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="17"/>
+                                        <textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="emailAddress" enablesReturnKeyAutomatically="YES" textContentType="username"/>
+                                    </textField>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstItem="Qh9-XU-Syu" firstAttribute="centerX" secondItem="oUU-wp-b8X" secondAttribute="centerX" id="0z7-81-Mbp"/>
+                                    <constraint firstAttribute="trailing" secondItem="E97-bL-Mpu" secondAttribute="trailing" constant="40" id="2u3-2a-a16"/>
+                                    <constraint firstItem="Qh9-XU-Syu" firstAttribute="top" secondItem="oUU-wp-b8X" secondAttribute="top" constant="20" id="7YM-d2-rw9"/>
+                                    <constraint firstAttribute="trailing" secondItem="fQj-JP-7v5" secondAttribute="trailing" constant="40" id="Bsv-ra-prE"/>
+                                    <constraint firstAttribute="trailing" secondItem="qA9-nY-IvY" secondAttribute="trailing" constant="40" id="HAn-iw-LT4"/>
+                                    <constraint firstItem="qA9-nY-IvY" firstAttribute="top" secondItem="E97-bL-Mpu" secondAttribute="bottom" constant="20" id="TcR-OJ-TiD"/>
+                                    <constraint firstItem="E97-bL-Mpu" firstAttribute="leading" secondItem="oUU-wp-b8X" secondAttribute="leading" constant="40" id="ZKz-TQ-C3j"/>
+                                    <constraint firstItem="fQj-JP-7v5" firstAttribute="top" secondItem="qA9-nY-IvY" secondAttribute="bottom" constant="30" id="dKd-J8-iT4"/>
+                                    <constraint firstItem="E97-bL-Mpu" firstAttribute="top" secondItem="oUb-kX-QCi" secondAttribute="bottom" constant="40" id="do7-np-JV5"/>
+                                    <constraint firstItem="oUb-kX-QCi" firstAttribute="leading" secondItem="oUU-wp-b8X" secondAttribute="leading" constant="20" symbolic="YES" id="hDV-Jh-rAK"/>
+                                    <constraint firstItem="fQj-JP-7v5" firstAttribute="leading" secondItem="oUU-wp-b8X" secondAttribute="leading" constant="40" id="iL5-CC-AJS"/>
+                                    <constraint firstAttribute="bottom" secondItem="fQj-JP-7v5" secondAttribute="bottom" constant="20" id="k0p-r9-RHE"/>
+                                    <constraint firstItem="qA9-nY-IvY" firstAttribute="leading" secondItem="oUU-wp-b8X" secondAttribute="leading" constant="40" id="k74-yZ-Jcx"/>
+                                    <constraint firstItem="oUb-kX-QCi" firstAttribute="top" secondItem="Qh9-XU-Syu" secondAttribute="bottom" constant="20" id="pEU-Kp-zfp"/>
+                                    <constraint firstAttribute="trailing" secondItem="oUb-kX-QCi" secondAttribute="trailing" constant="20" symbolic="YES" id="uIw-KU-ZJ1"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="Zqe-qS-8pM"/>
+                        <color key="backgroundColor" name="AccentColor"/>
+                        <constraints>
+                            <constraint firstItem="oUU-wp-b8X" firstAttribute="centerY" secondItem="H86-hJ-sDL" secondAttribute="centerY" id="VIe-Zs-CxW"/>
+                            <constraint firstItem="oUU-wp-b8X" firstAttribute="centerX" secondItem="H86-hJ-sDL" secondAttribute="centerX" id="fYC-44-bd5"/>
+                            <constraint firstItem="oUU-wp-b8X" firstAttribute="trailing" secondItem="Zqe-qS-8pM" secondAttribute="trailing" id="xP1-PI-oHI"/>
+                            <constraint firstItem="oUU-wp-b8X" firstAttribute="leading" secondItem="Zqe-qS-8pM" secondAttribute="leading" id="z1N-0C-3BI"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="lockImageView" destination="dGp-Ko-kYS" id="tXV-hP-a7h"/>
+                        <outlet property="lockView" destination="Qh9-XU-Syu" id="ppr-Ld-L5e"/>
+                        <outlet property="passwordTF" destination="qA9-nY-IvY" id="sen-d5-2aq"/>
+                        <outlet property="signInButton" destination="fQj-JP-7v5" id="QKC-kl-cd4"/>
+                        <outlet property="signInTitleLabel" destination="oUb-kX-QCi" id="fhW-6S-AiK"/>
+                        <outlet property="usernameTF" destination="E97-bL-Mpu" id="lkb-Bd-6sz"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="crJ-eu-KrD" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1631.8840579710147" y="97.826086956521749"/>
+        </scene>
+        <!--Meeting List View Controller-->
+        <scene sceneID="9Y7-pd-c46">
+            <objects>
+                <viewController storyboardIdentifier="MeetingListViewController" id="W9m-9H-WD1" customClass="MeetingListViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="deU-VZ-AOw">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="IbR-2r-dQx">
+                                <rect key="frame" x="0.0" y="40" width="414" height="696"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MeetingListTableViewCell" rowHeight="160" id="lOi-rm-ZZv" customClass="MeetingListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="414" height="160"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="lOi-rm-ZZv" id="zl3-he-z3V">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="160"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="e5T-ua-jpY">
+                                                    <rect key="frame" x="15" y="5" width="384" height="150"/>
+                                                    <subviews>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="vk4-Ge-yxf">
+                                                            <rect key="frame" x="10" y="10.999999999999998" width="25" height="23.666666666666664"/>
+                                                            <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="25" id="7Q4-c9-zek"/>
+                                                                <constraint firstAttribute="height" constant="25" id="8F6-bR-MS6"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Session Name" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nOT-FE-x8Q">
+                                                            <rect key="frame" x="55" y="10" width="309" height="22"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="16"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Day, Month Date, Year" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="azT-Lu-rfp">
+                                                            <rect key="frame" x="55" y="37" width="309" height="18"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_clock" translatesAutoresizingMaskIntoConstraints="NO" id="Xvj-nM-Ra5">
+                                                            <rect key="frame" x="10" y="62.666666666666671" width="25" height="25"/>
+                                                            <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="25" id="GiW-Ta-4HM"/>
+                                                                <constraint firstAttribute="height" constant="25" id="Z1T-qz-KZR"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_video_call" translatesAutoresizingMaskIntoConstraints="NO" id="SH4-F9-hlM">
+                                                            <rect key="frame" x="10" y="115" width="25" height="25"/>
+                                                            <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="25" id="ICC-xx-znc"/>
+                                                                <constraint firstAttribute="width" constant="25" id="V1w-vm-MfQ"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OwR-0O-eHL">
+                                                            <rect key="frame" x="55" y="110" width="150" height="30"/>
+                                                            <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="150" id="J1O-0R-EHu"/>
+                                                                <constraint firstAttribute="height" constant="30" id="VEe-ct-OUL"/>
+                                                            </constraints>
+                                                            <state key="normal" title="Button"/>
+                                                            <buttonConfiguration key="configuration" style="plain" title="Join Class">
+                                                                <fontDescription key="titleFontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                <color key="baseForegroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            </buttonConfiguration>
+                                                        </button>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Time (From-To)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HX5-rl-Hu8">
+                                                            <rect key="frame" x="55" y="66" width="309" height="18"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstItem="nOT-FE-x8Q" firstAttribute="leading" secondItem="vk4-Ge-yxf" secondAttribute="trailing" constant="20" id="0Pl-sa-Uhd"/>
+                                                        <constraint firstAttribute="trailing" secondItem="HX5-rl-Hu8" secondAttribute="trailing" constant="20" symbolic="YES" id="5H9-U0-NzT"/>
+                                                        <constraint firstAttribute="trailing" secondItem="azT-Lu-rfp" secondAttribute="trailing" constant="20" symbolic="YES" id="6Nw-Ja-zes"/>
+                                                        <constraint firstAttribute="bottom" secondItem="OwR-0O-eHL" secondAttribute="bottom" constant="10" id="6Qn-YG-N5r"/>
+                                                        <constraint firstItem="SH4-F9-hlM" firstAttribute="leading" secondItem="e5T-ua-jpY" secondAttribute="leading" constant="10" id="Aqc-ob-a5v"/>
+                                                        <constraint firstItem="azT-Lu-rfp" firstAttribute="leading" secondItem="nOT-FE-x8Q" secondAttribute="leading" id="Bh2-ok-s2g"/>
+                                                        <constraint firstAttribute="trailing" secondItem="nOT-FE-x8Q" secondAttribute="trailing" constant="20" symbolic="YES" id="GP7-z9-k2b"/>
+                                                        <constraint firstItem="OwR-0O-eHL" firstAttribute="leading" secondItem="SH4-F9-hlM" secondAttribute="trailing" constant="20" id="GlG-7I-6VM"/>
+                                                        <constraint firstItem="vk4-Ge-yxf" firstAttribute="leading" secondItem="e5T-ua-jpY" secondAttribute="leading" constant="10" id="Lek-zF-94o"/>
+                                                        <constraint firstAttribute="bottom" secondItem="SH4-F9-hlM" secondAttribute="bottom" constant="10" id="PsG-eA-cDH"/>
+                                                        <constraint firstItem="HX5-rl-Hu8" firstAttribute="top" secondItem="azT-Lu-rfp" secondAttribute="bottom" constant="11" id="TLb-ew-35u"/>
+                                                        <constraint firstItem="vk4-Ge-yxf" firstAttribute="top" secondItem="e5T-ua-jpY" secondAttribute="top" constant="10" id="UYE-ZM-GfH"/>
+                                                        <constraint firstItem="Xvj-nM-Ra5" firstAttribute="leading" secondItem="e5T-ua-jpY" secondAttribute="leading" constant="10" id="ZnC-gJ-SDi"/>
+                                                        <constraint firstItem="nOT-FE-x8Q" firstAttribute="top" secondItem="e5T-ua-jpY" secondAttribute="top" constant="10" id="b2V-up-gcA"/>
+                                                        <constraint firstItem="Xvj-nM-Ra5" firstAttribute="centerY" secondItem="e5T-ua-jpY" secondAttribute="centerY" id="gTe-Yy-Fa6"/>
+                                                        <constraint firstItem="HX5-rl-Hu8" firstAttribute="leading" secondItem="Xvj-nM-Ra5" secondAttribute="trailing" constant="20" id="h8A-43-rBb"/>
+                                                        <constraint firstItem="OwR-0O-eHL" firstAttribute="top" secondItem="HX5-rl-Hu8" secondAttribute="bottom" constant="26" id="iCk-TF-SHX"/>
+                                                        <constraint firstItem="HX5-rl-Hu8" firstAttribute="centerY" secondItem="e5T-ua-jpY" secondAttribute="centerY" id="kfQ-Mr-Fy1"/>
+                                                        <constraint firstItem="azT-Lu-rfp" firstAttribute="top" secondItem="nOT-FE-x8Q" secondAttribute="bottom" constant="5" id="sXn-mo-Vyv"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="e5T-ua-jpY" firstAttribute="leading" secondItem="zl3-he-z3V" secondAttribute="leading" constant="15" id="1Kp-UQ-hcD"/>
+                                                <constraint firstItem="e5T-ua-jpY" firstAttribute="top" secondItem="zl3-he-z3V" secondAttribute="top" constant="5" id="1ud-jx-TB6"/>
+                                                <constraint firstAttribute="bottom" secondItem="e5T-ua-jpY" secondAttribute="bottom" constant="5" id="I8J-Wl-Xg9"/>
+                                                <constraint firstAttribute="trailing" secondItem="e5T-ua-jpY" secondAttribute="trailing" constant="15" id="zcW-Ma-D1k"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="customView" destination="e5T-ua-jpY" id="vfo-Aw-in6"/>
+                                            <outlet property="dayDateLabel" destination="azT-Lu-rfp" id="LGK-UB-fVd"/>
+                                            <outlet property="joinClassButton" destination="OwR-0O-eHL" id="i1a-OL-RaE"/>
+                                            <outlet property="meetingNameLabel" destination="nOT-FE-x8Q" id="Q92-dG-AJ0"/>
+                                            <outlet property="timeLabel" destination="HX5-rl-Hu8" id="Ofw-S5-9Q0"/>
+                                        </connections>
+                                    </tableViewCell>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OfflineMeetingTableViewCell" rowHeight="110" id="HDr-e2-sYS" customClass="OfflineMeetingTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="210" width="414" height="110"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="HDr-e2-sYS" id="yxR-ZP-OJz">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="110"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kuk-Zh-2VC">
+                                                    <rect key="frame" x="15" y="5" width="384" height="100"/>
+                                                    <subviews>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="RAN-zH-MdJ">
+                                                            <rect key="frame" x="10" y="10.999999999999998" width="25" height="23.666666666666664"/>
+                                                            <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="25" id="iJl-b9-tpf"/>
+                                                                <constraint firstAttribute="height" constant="25" id="zgN-KI-Lbg"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Session Name" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wYR-Pp-uKm">
+                                                            <rect key="frame" x="55" y="10" width="309" height="22"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="16"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Day, Month Date, Year" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="27g-sN-Tml">
+                                                            <rect key="frame" x="55" y="37" width="309" height="18"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_clock" translatesAutoresizingMaskIntoConstraints="NO" id="a5b-Vf-Sob">
+                                                            <rect key="frame" x="10" y="65" width="25" height="25"/>
+                                                            <color key="tintColor" red="0.3921568627" green="0.70980392160000005" blue="0.96470588239999999" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="25" id="MYe-Sf-c5z"/>
+                                                                <constraint firstAttribute="height" constant="25" id="PBc-cQ-2OV"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Time (From-To)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWb-Lp-2VH">
+                                                            <rect key="frame" x="55" y="68.666666666666671" width="309" height="18"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstItem="YWb-Lp-2VH" firstAttribute="top" secondItem="27g-sN-Tml" secondAttribute="bottom" priority="250" constant="11" id="6Zh-Zg-fwn"/>
+                                                        <constraint firstAttribute="trailing" secondItem="YWb-Lp-2VH" secondAttribute="trailing" constant="20" symbolic="YES" id="7S0-M6-ODQ"/>
+                                                        <constraint firstItem="RAN-zH-MdJ" firstAttribute="leading" secondItem="Kuk-Zh-2VC" secondAttribute="leading" constant="10" id="JVP-rS-8Ro"/>
+                                                        <constraint firstItem="a5b-Vf-Sob" firstAttribute="leading" secondItem="Kuk-Zh-2VC" secondAttribute="leading" constant="10" id="Jc0-NM-tS7"/>
+                                                        <constraint firstItem="RAN-zH-MdJ" firstAttribute="top" secondItem="Kuk-Zh-2VC" secondAttribute="top" constant="10" id="M96-qB-0W0"/>
+                                                        <constraint firstItem="27g-sN-Tml" firstAttribute="top" secondItem="wYR-Pp-uKm" secondAttribute="bottom" constant="5" id="NK6-GK-U0Z"/>
+                                                        <constraint firstItem="YWb-Lp-2VH" firstAttribute="centerY" secondItem="a5b-Vf-Sob" secondAttribute="centerY" id="QeG-EE-mCG"/>
+                                                        <constraint firstAttribute="trailing" secondItem="27g-sN-Tml" secondAttribute="trailing" constant="20" symbolic="YES" id="SLp-Dv-se7"/>
+                                                        <constraint firstItem="wYR-Pp-uKm" firstAttribute="leading" secondItem="RAN-zH-MdJ" secondAttribute="trailing" constant="20" id="bwr-OE-unv"/>
+                                                        <constraint firstAttribute="bottom" secondItem="a5b-Vf-Sob" secondAttribute="bottom" constant="10" id="psH-AH-ILi"/>
+                                                        <constraint firstItem="YWb-Lp-2VH" firstAttribute="leading" secondItem="a5b-Vf-Sob" secondAttribute="trailing" constant="20" id="qrD-P2-FgZ"/>
+                                                        <constraint firstItem="27g-sN-Tml" firstAttribute="leading" secondItem="wYR-Pp-uKm" secondAttribute="leading" id="sLe-JY-c7C"/>
+                                                        <constraint firstItem="wYR-Pp-uKm" firstAttribute="top" secondItem="Kuk-Zh-2VC" secondAttribute="top" constant="10" id="wyd-oq-2wS"/>
+                                                        <constraint firstAttribute="trailing" secondItem="wYR-Pp-uKm" secondAttribute="trailing" constant="20" symbolic="YES" id="zRe-jR-XMw"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstAttribute="bottom" secondItem="Kuk-Zh-2VC" secondAttribute="bottom" constant="5" id="2Vb-Lc-56k"/>
+                                                <constraint firstItem="Kuk-Zh-2VC" firstAttribute="leading" secondItem="yxR-ZP-OJz" secondAttribute="leading" constant="15" id="cz2-lZ-auu"/>
+                                                <constraint firstItem="Kuk-Zh-2VC" firstAttribute="top" secondItem="yxR-ZP-OJz" secondAttribute="top" constant="5" id="g5h-eo-JAm"/>
+                                                <constraint firstAttribute="trailing" secondItem="Kuk-Zh-2VC" secondAttribute="trailing" constant="15" id="vXr-1p-xxf"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="customView" destination="Kuk-Zh-2VC" id="xJJ-nq-4Ew"/>
+                                            <outlet property="dateLabel" destination="27g-sN-Tml" id="78u-nU-0hO"/>
+                                            <outlet property="meetingNameLabel" destination="wYR-Pp-uKm" id="a2e-TO-GlF"/>
+                                            <outlet property="timeLabel" destination="YWb-Lp-2VH" id="gJD-tm-cpO"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="tNh-Hc-Udp"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="IbR-2r-dQx" firstAttribute="leading" secondItem="tNh-Hc-Udp" secondAttribute="leading" id="B8z-K4-Z7i"/>
+                            <constraint firstItem="IbR-2r-dQx" firstAttribute="trailing" secondItem="tNh-Hc-Udp" secondAttribute="trailing" id="WDs-9Q-dHd"/>
+                            <constraint firstItem="IbR-2r-dQx" firstAttribute="bottom" secondItem="tNh-Hc-Udp" secondAttribute="bottom" id="fu3-vl-rUG"/>
+                            <constraint firstItem="IbR-2r-dQx" firstAttribute="top" secondItem="tNh-Hc-Udp" secondAttribute="top" constant="20" id="gfV-J6-ZI1"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="meetingListTableView" destination="IbR-2r-dQx" id="aNS-di-q63"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="ZgM-TA-svo" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="876.81159420289862" y="1557.8804347826087"/>
+        </scene>
+        <!--Session List View Controller-->
+        <scene sceneID="4hh-Va-dRx">
+            <objects>
+                <viewController storyboardIdentifier="SessionListViewController" id="Hg3-dp-OsB" customClass="SessionListViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="UQL-Et-84T">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" verticalHuggingPriority="251" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XEc-e1-wYO">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Session List" id="lgw-7x-arn">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="k41-RL-4cS">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="Hg3-dp-OsB" id="LmK-ja-LTi"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eaR-xB-7Us">
+                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ZaD-SG-DDR">
+                                        <rect key="frame" x="0.0" y="0.0" width="414" height="642.33333333333337"/>
+                                        <subviews>
+                                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="7vF-5o-5Qp">
+                                                <rect key="frame" x="20" y="20" width="374" height="602.33333333333337"/>
+                                                <subviews>
+                                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MrA-qI-jCB">
+                                                        <rect key="frame" x="0.0" y="0.0" width="374" height="101.33333333333333"/>
+                                                        <subviews>
+                                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Month-Year:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gLl-cL-8l7">
+                                                                <rect key="frame" x="20" y="20" width="334" height="19.333333333333329"/>
+                                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                                <color key="textColor" name="AccentColor"/>
+                                                                <nil key="highlightedColor"/>
+                                                            </label>
+                                                            <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select Month - Year" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="AtI-8b-DdU">
+                                                                <rect key="frame" x="20" y="47.333333333333343" width="334" height="34"/>
+                                                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="14"/>
+                                                                <textInputTraits key="textInputTraits"/>
+                                                            </textField>
+                                                        </subviews>
+                                                        <color key="backgroundColor" red="0.87058823529999996" green="0.89019607840000003" blue="0.91372549020000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                        <constraints>
+                                                            <constraint firstItem="AtI-8b-DdU" firstAttribute="top" secondItem="gLl-cL-8l7" secondAttribute="bottom" constant="8" symbolic="YES" id="2np-vM-B7f"/>
+                                                            <constraint firstItem="gLl-cL-8l7" firstAttribute="leading" secondItem="MrA-qI-jCB" secondAttribute="leading" constant="20" symbolic="YES" id="3ht-TX-6lH"/>
+                                                            <constraint firstAttribute="bottom" secondItem="AtI-8b-DdU" secondAttribute="bottom" constant="20" symbolic="YES" id="AFl-T9-a2s"/>
+                                                            <constraint firstAttribute="trailing" secondItem="AtI-8b-DdU" secondAttribute="trailing" constant="20" symbolic="YES" id="U6u-DF-rT8"/>
+                                                            <constraint firstItem="AtI-8b-DdU" firstAttribute="leading" secondItem="MrA-qI-jCB" secondAttribute="leading" constant="20" symbolic="YES" id="XeC-TB-Bsr"/>
+                                                            <constraint firstItem="gLl-cL-8l7" firstAttribute="top" secondItem="MrA-qI-jCB" secondAttribute="top" constant="20" symbolic="YES" id="aKi-lQ-y4a"/>
+                                                            <constraint firstAttribute="trailing" secondItem="gLl-cL-8l7" secondAttribute="trailing" constant="20" symbolic="YES" id="snJ-q4-I6c"/>
+                                                            <constraint firstAttribute="height" priority="750" constant="101.33" id="wJy-tV-uWG"/>
+                                                        </constraints>
+                                                    </view>
+                                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="emi-OS-Ugu">
+                                                        <rect key="frame" x="0.0" y="109.33333333333337" width="374" height="493"/>
+                                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="height" constant="493" id="d5d-x9-eeG"/>
+                                                        </constraints>
+                                                        <prototypes>
+                                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SessionListTableViewCell" rowHeight="250" id="dJj-oy-y1l" customClass="SessionListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                <rect key="frame" x="0.0" y="50" width="374" height="250"/>
+                                                                <autoresizingMask key="autoresizingMask"/>
+                                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="dJj-oy-y1l" id="PZA-6b-Z31">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="250"/>
+                                                                    <autoresizingMask key="autoresizingMask"/>
+                                                                    <subviews>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WXu-Ja-tdI">
+                                                                            <rect key="frame" x="0.0" y="10" width="374" height="230"/>
+                                                                            <subviews>
+                                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="session_background" translatesAutoresizingMaskIntoConstraints="NO" id="dmM-4W-xUG">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="70"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="70" id="NXT-Fm-MnJ"/>
+                                                                                    </constraints>
+                                                                                </imageView>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jPe-o9-K2Q">
+                                                                                    <rect key="frame" x="10" y="9.9999999999999982" width="8.3333333333333357" height="19.333333333333329"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="19.333333333333329" id="CB2-pZ-3Ct"/>
+                                                                                    </constraints>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                                                    <color key="textColor" name="AccentColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="BXp-6B-HZ0">
+                                                                                    <rect key="frame" x="303.66666666666669" y="10" width="60.333333333333314" height="15"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Online" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p4f-j0-xDC">
+                                                                                            <rect key="frame" x="0.0" y="0.0" width="40.333333333333336" height="15"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="13"/>
+                                                                                            <color key="textColor" name="AccentColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="QYD-58-aMy">
+                                                                                            <rect key="frame" x="45.333333333333314" y="0.99999999999999822" width="15" height="13.666666666666668"/>
+                                                                                            <color key="tintColor" red="0.38431372549019605" green="0.6470588235294118" blue="0.2627450980392157" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="width" constant="15" id="BzQ-Xe-06e"/>
+                                                                                                <constraint firstAttribute="height" constant="15" id="kzy-IL-s7L"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                    </subviews>
+                                                                                </stackView>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1 Jan" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ngU-5f-kIx">
+                                                                                    <rect key="frame" x="0.0" y="57.333333333333329" width="60" height="20"/>
+                                                                                    <color key="backgroundColor" red="0.90980392156862744" green="0.29803921568627451" blue="0.24705882352941178" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="60" id="Ebg-5i-EAH"/>
+                                                                                        <constraint firstAttribute="height" constant="20" id="SHY-nv-1pf"/>
+                                                                                    </constraints>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="14"/>
+                                                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="wUc-Tk-Yox">
+                                                                                    <rect key="frame" x="220.33333333333337" y="80" width="143.66666666666663" height="15"/>
+                                                                                    <subviews>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="0Xr-pI-mK4">
+                                                                                            <rect key="frame" x="0.0" y="0.99999999999999822" width="15" height="13.666666666666668"/>
+                                                                                            <color key="tintColor" systemColor="labelColor"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="height" constant="15" id="Vmd-Ej-mPP"/>
+                                                                                                <constraint firstAttribute="width" constant="15" id="nDt-4I-mnO"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12:00 PM to 01:00 PM" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LpE-4b-LgU">
+                                                                                            <rect key="frame" x="20.000000000000007" y="0.0" width="123.66666666666669" height="15"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="12"/>
+                                                                                            <color key="textColor" name="AccentColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                    </subviews>
+                                                                                </stackView>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Session Name" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nSd-0Z-rE6">
+                                                                                    <rect key="frame" x="15" y="110" width="344" height="21"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                                                    <color key="textColor" name="AccentColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Teacher: Dinesh Kartik" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HmF-r5-Fi9">
+                                                                                    <rect key="frame" x="15" y="141" width="344" height="18"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="18" id="tPR-69-Hqk"/>
+                                                                                    </constraints>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="13"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Intervention Name: Umang" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tmx-AA-xGG">
+                                                                                    <rect key="frame" x="15" y="164" width="344" height="18"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="18" id="PBF-Ah-Vdb"/>
+                                                                                    </constraints>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="13"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="b78-kI-fH8">
+                                                                                    <rect key="frame" x="15" y="200.66666666666666" width="221" height="19.333333333333343"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="top" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Batch:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mzU-HL-xlC">
+                                                                                            <rect key="frame" x="0.0" y="0.0" width="50" height="19.333333333333332"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="width" constant="50" id="km2-9t-Ldu"/>
+                                                                                            </constraints>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="14"/>
+                                                                                            <color key="textColor" name="AccentColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LMS APP Batch" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MPT-lZ-r0e">
+                                                                                            <rect key="frame" x="58" y="0.0" width="163" height="19.333333333333332"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="12"/>
+                                                                                            <nil key="textColor"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                    </subviews>
+                                                                                </stackView>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tEa-Er-XGz">
+                                                                                    <rect key="frame" x="244" y="190" width="120" height="30"/>
+                                                                                    <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="120" id="6TR-DA-oaB"/>
+                                                                                        <constraint firstAttribute="height" constant="30" id="UCE-ND-61F"/>
+                                                                                    </constraints>
+                                                                                    <state key="normal" title="Button"/>
+                                                                                    <buttonConfiguration key="configuration" style="plain" title="Join Class">
+                                                                                        <fontDescription key="titleFontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                                                        <color key="baseForegroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    </buttonConfiguration>
+                                                                                </button>
+                                                                            </subviews>
+                                                                            <constraints>
+                                                                                <constraint firstItem="dmM-4W-xUG" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" id="4cD-8K-JTn"/>
+                                                                                <constraint firstItem="tEa-Er-XGz" firstAttribute="top" secondItem="tmx-AA-xGG" secondAttribute="bottom" constant="8" symbolic="YES" id="6Dh-9d-clO"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="wUc-Tk-Yox" secondAttribute="trailing" constant="10" id="9j7-Mw-6Cl"/>
+                                                                                <constraint firstItem="jPe-o9-K2Q" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" constant="10" id="Cio-Tr-Aex"/>
+                                                                                <constraint firstItem="BXp-6B-HZ0" firstAttribute="top" secondItem="WXu-Ja-tdI" secondAttribute="top" constant="10" id="Ea9-HU-0Ks"/>
+                                                                                <constraint firstItem="nSd-0Z-rE6" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" constant="15" id="FBN-j1-RuU"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="BXp-6B-HZ0" secondAttribute="trailing" constant="10" id="JHg-Hl-imt"/>
+                                                                                <constraint firstItem="b78-kI-fH8" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" constant="15" id="Mao-d3-tah"/>
+                                                                                <constraint firstItem="dmM-4W-xUG" firstAttribute="top" secondItem="WXu-Ja-tdI" secondAttribute="top" id="NNj-jK-M3x"/>
+                                                                                <constraint firstItem="nSd-0Z-rE6" firstAttribute="top" secondItem="wUc-Tk-Yox" secondAttribute="bottom" constant="15" id="RdF-qs-ZHN"/>
+                                                                                <constraint firstItem="HmF-r5-Fi9" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" constant="15" id="Rxf-xd-2eb"/>
+                                                                                <constraint firstItem="jPe-o9-K2Q" firstAttribute="top" secondItem="WXu-Ja-tdI" secondAttribute="top" constant="10" id="ToT-MP-gvW"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="HmF-r5-Fi9" secondAttribute="trailing" constant="15" id="VvW-wg-dan"/>
+                                                                                <constraint firstItem="ngU-5f-kIx" firstAttribute="top" secondItem="jPe-o9-K2Q" secondAttribute="bottom" constant="28" id="Wtw-KC-bs0"/>
+                                                                                <constraint firstItem="tmx-AA-xGG" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" constant="15" id="d4v-8R-orF"/>
+                                                                                <constraint firstItem="HmF-r5-Fi9" firstAttribute="top" secondItem="nSd-0Z-rE6" secondAttribute="bottom" constant="10" id="gZD-lf-UvM"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="tEa-Er-XGz" secondAttribute="trailing" constant="10" id="gda-Oi-vMv"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="b78-kI-fH8" secondAttribute="bottom" constant="10" id="hvx-em-q78"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="dmM-4W-xUG" secondAttribute="trailing" id="jHa-wE-NnU"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="tmx-AA-xGG" secondAttribute="trailing" constant="15" id="lAA-d7-am8"/>
+                                                                                <constraint firstItem="tmx-AA-xGG" firstAttribute="top" secondItem="HmF-r5-Fi9" secondAttribute="bottom" constant="5" id="lJx-g5-Wsk"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="nSd-0Z-rE6" secondAttribute="trailing" constant="15" id="n6M-86-FAs"/>
+                                                                                <constraint firstItem="ngU-5f-kIx" firstAttribute="leading" secondItem="WXu-Ja-tdI" secondAttribute="leading" id="n9p-NO-W3v"/>
+                                                                                <constraint firstItem="tEa-Er-XGz" firstAttribute="leading" secondItem="b78-kI-fH8" secondAttribute="trailing" constant="8" symbolic="YES" id="swv-af-wUB"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="tEa-Er-XGz" secondAttribute="bottom" constant="10" id="tjg-PA-Wlx"/>
+                                                                                <constraint firstItem="wUc-Tk-Yox" firstAttribute="top" secondItem="dmM-4W-xUG" secondAttribute="bottom" constant="10" id="yoS-Ze-XTa"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="trailing" secondItem="WXu-Ja-tdI" secondAttribute="trailing" id="CyS-jx-O69"/>
+                                                                        <constraint firstItem="WXu-Ja-tdI" firstAttribute="top" secondItem="PZA-6b-Z31" secondAttribute="top" constant="10" id="jsN-tI-gzn"/>
+                                                                        <constraint firstItem="WXu-Ja-tdI" firstAttribute="leading" secondItem="PZA-6b-Z31" secondAttribute="leading" id="rzq-Ya-4AX"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="WXu-Ja-tdI" secondAttribute="bottom" constant="10" id="wGF-gj-K3d"/>
+                                                                    </constraints>
+                                                                </tableViewCellContentView>
+                                                                <connections>
+                                                                    <outlet property="activeIndicatorImageView" destination="QYD-58-aMy" id="73T-9O-RMq"/>
+                                                                    <outlet property="activeStatusLabel" destination="p4f-j0-xDC" id="a3V-Si-v9r"/>
+                                                                    <outlet property="backgroundImageView" destination="dmM-4W-xUG" id="hUA-D6-NQg"/>
+                                                                    <outlet property="batchLabel" destination="MPT-lZ-r0e" id="5gB-9V-oof"/>
+                                                                    <outlet property="dateLabel" destination="ngU-5f-kIx" id="PX8-4E-bZC"/>
+                                                                    <outlet property="interventionNameLabel" destination="tmx-AA-xGG" id="CGf-5l-way"/>
+                                                                    <outlet property="joinClassButton" destination="tEa-Er-XGz" id="pWv-ct-k0A"/>
+                                                                    <outlet property="listCustomView" destination="WXu-Ja-tdI" id="DKb-Mb-1gc"/>
+                                                                    <outlet property="meetingNameLabel" destination="nSd-0Z-rE6" id="6rE-dp-gSY"/>
+                                                                    <outlet property="serialNumberLabel" destination="jPe-o9-K2Q" id="OsC-nS-oPW"/>
+                                                                    <outlet property="teacherLabel" destination="HmF-r5-Fi9" id="qJE-CJ-0SX"/>
+                                                                    <outlet property="timeLabel" destination="LpE-4b-LgU" id="HfZ-3s-qKx"/>
+                                                                </connections>
+                                                            </tableViewCell>
+                                                        </prototypes>
+                                                    </tableView>
+                                                </subviews>
+                                            </stackView>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="bottom" secondItem="7vF-5o-5Qp" secondAttribute="bottom" constant="20" symbolic="YES" id="1yH-K6-wFZ"/>
+                                            <constraint firstItem="7vF-5o-5Qp" firstAttribute="leading" secondItem="ZaD-SG-DDR" secondAttribute="leading" constant="20" symbolic="YES" id="QGe-a3-NFW"/>
+                                            <constraint firstAttribute="trailing" secondItem="7vF-5o-5Qp" secondAttribute="trailing" constant="20" symbolic="YES" id="YN4-BT-oyB"/>
+                                            <constraint firstItem="7vF-5o-5Qp" firstAttribute="top" secondItem="ZaD-SG-DDR" secondAttribute="top" constant="20" symbolic="YES" id="lcR-A9-hEc"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="ZaD-SG-DDR" firstAttribute="width" secondItem="eaR-xB-7Us" secondAttribute="width" id="AAj-Rm-ABg"/>
+                                    <constraint firstItem="ZaD-SG-DDR" firstAttribute="top" secondItem="eaR-xB-7Us" secondAttribute="top" id="PmD-k2-yhN"/>
+                                    <constraint firstItem="ZaD-SG-DDR" firstAttribute="height" secondItem="eaR-xB-7Us" secondAttribute="height" priority="250" id="QbG-FJ-pMF"/>
+                                    <constraint firstAttribute="bottom" secondItem="ZaD-SG-DDR" secondAttribute="bottom" id="dIH-tY-Qa1"/>
+                                    <constraint firstAttribute="trailing" secondItem="ZaD-SG-DDR" secondAttribute="trailing" id="eLh-bf-eKO"/>
+                                    <constraint firstItem="ZaD-SG-DDR" firstAttribute="leading" secondItem="eaR-xB-7Us" secondAttribute="leading" id="lBv-J1-GUx"/>
+                                </constraints>
+                                <viewLayoutGuide key="contentLayoutGuide" id="ihi-xw-SHQ"/>
+                                <viewLayoutGuide key="frameLayoutGuide" id="kvF-2S-5QQ"/>
+                            </scrollView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c0A-zY-cFP">
+                                <rect key="frame" x="344" y="666" width="50" height="50"/>
+                                <color key="backgroundColor" name="orange"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="50" id="FaV-Bw-tQh"/>
+                                    <constraint firstAttribute="height" constant="50" id="YrV-m7-585"/>
+                                </constraints>
+                                <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" image="filter">
+                                    <preferredSymbolConfiguration key="preferredSymbolConfiguration"/>
+                                </state>
+                                <connections>
+                                    <action selector="filterAction:" destination="Hg3-dp-OsB" eventType="touchUpInside" id="Iqy-Y1-EPI"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="vNc-S0-aRP"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="eaR-xB-7Us" firstAttribute="bottom" secondItem="vNc-S0-aRP" secondAttribute="bottom" id="0ya-dQ-rca"/>
+                            <constraint firstItem="vNc-S0-aRP" firstAttribute="trailing" secondItem="c0A-zY-cFP" secondAttribute="trailing" constant="20" id="2AR-Rp-vVj"/>
+                            <constraint firstItem="eaR-xB-7Us" firstAttribute="leading" secondItem="vNc-S0-aRP" secondAttribute="leading" id="CHM-dL-sVO"/>
+                            <constraint firstItem="XEc-e1-wYO" firstAttribute="top" secondItem="vNc-S0-aRP" secondAttribute="top" id="TKE-lC-boG"/>
+                            <constraint firstItem="eaR-xB-7Us" firstAttribute="trailing" secondItem="vNc-S0-aRP" secondAttribute="trailing" id="UMr-y0-KHG"/>
+                            <constraint firstItem="vNc-S0-aRP" firstAttribute="bottom" secondItem="c0A-zY-cFP" secondAttribute="bottom" constant="20" id="gA5-K7-ppH"/>
+                            <constraint firstItem="XEc-e1-wYO" firstAttribute="trailing" secondItem="vNc-S0-aRP" secondAttribute="trailing" id="pqb-ED-iKE"/>
+                            <constraint firstItem="XEc-e1-wYO" firstAttribute="leading" secondItem="vNc-S0-aRP" secondAttribute="leading" id="rkE-Gl-CZf"/>
+                            <constraint firstItem="eaR-xB-7Us" firstAttribute="top" secondItem="XEc-e1-wYO" secondAttribute="bottom" id="ug2-0b-7w8"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="contentScrollView" destination="eaR-xB-7Us" id="zrX-uT-3ZL"/>
+                        <outlet property="customView" destination="MrA-qI-jCB" id="aVu-JP-a06"/>
+                        <outlet property="filterButton" destination="c0A-zY-cFP" id="wBZ-0m-Bf9"/>
+                        <outlet property="monthYearLabel" destination="gLl-cL-8l7" id="Waw-cH-Ybf"/>
+                        <outlet property="monthYearTF" destination="AtI-8b-DdU" id="rVx-cP-cBP"/>
+                        <outlet property="navigationBar" destination="XEc-e1-wYO" id="Zbg-hg-IKV"/>
+                        <outlet property="sessionListTableView" destination="emi-OS-Ugu" id="nnb-cu-XBa"/>
+                        <outlet property="sessionTableHeightConstraint" destination="d5d-x9-eeG" id="w7i-2E-sjF"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="SFd-ip-Cwk" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1631.8840579710147" y="835.59782608695662"/>
+        </scene>
+        <!--Study Materials View Controller-->
+        <scene sceneID="kE5-4E-hie">
+            <objects>
+                <viewController storyboardIdentifier="StudyMaterialsViewController" id="dYg-Ex-vIP" customClass="StudyMaterialsViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="BG5-bh-nCB">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kMR-pu-BKs">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Study Materials" id="kb4-5c-329">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="0pg-lS-P88">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="dYg-Ex-vIP" id="TkZ-8f-oHW"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unit -&gt;" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cxK-I3-kSW">
+                                <rect key="frame" x="20" y="84" width="374" height="24.666666666666671"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="RWl-go-0A4">
+                                <rect key="frame" x="10" y="128.66666666666669" width="394" height="597.33333333333326"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="Hiy-qT-ypP">
+                                    <size key="itemSize" width="192" height="220"/>
+                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                </collectionViewFlowLayout>
+                                <cells>
+                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="UnitsCollectionViewCell" id="fck-bW-G0R" customClass="UnitsCollectionViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="0.0" width="192" height="220"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="rUA-kr-zPv">
+                                            <rect key="frame" x="0.0" y="0.0" width="192" height="220"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="o68-3D-ANw">
+                                                    <rect key="frame" x="0.0" y="0.0" width="192" height="220"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Subject Name" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cmx-az-WIq">
+                                                            <rect key="frame" x="20" y="175" width="152" height="25"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                            <color key="textColor" name="AccentColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="study-material" translatesAutoresizingMaskIntoConstraints="NO" id="BcI-mF-Lgc" customClass="RoundedTopCornersImageView" customModule="LMS" customModuleProvider="target">
+                                                            <rect key="frame" x="0.0" y="0.0" width="192" height="167"/>
+                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="167" id="suq-2l-zds"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W7u-EJ-xW3">
+                                                            <rect key="frame" x="162" y="0.0" width="30" height="40"/>
+                                                            <subviews>
+                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_slno_bannar" translatesAutoresizingMaskIntoConstraints="NO" id="QGj-wj-AHM">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="30" height="40"/>
+                                                                </imageView>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p0b-BM-ype">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="30" height="40"/>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="height" constant="40" id="PJM-Cl-wA0"/>
+                                                                        <constraint firstAttribute="width" constant="30" id="WFu-dm-1ld"/>
+                                                                    </constraints>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="15"/>
+                                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                            </subviews>
+                                                            <constraints>
+                                                                <constraint firstAttribute="trailing" secondItem="p0b-BM-ype" secondAttribute="trailing" id="0HA-Ko-Jtk"/>
+                                                                <constraint firstItem="QGj-wj-AHM" firstAttribute="top" secondItem="W7u-EJ-xW3" secondAttribute="top" id="338-Os-Ed7"/>
+                                                                <constraint firstAttribute="bottom" secondItem="QGj-wj-AHM" secondAttribute="bottom" id="Dsn-OG-6fE"/>
+                                                                <constraint firstItem="QGj-wj-AHM" firstAttribute="leading" secondItem="W7u-EJ-xW3" secondAttribute="leading" id="Nor-Gu-ckV"/>
+                                                                <constraint firstItem="p0b-BM-ype" firstAttribute="top" secondItem="W7u-EJ-xW3" secondAttribute="top" id="TwG-Uy-5Fh"/>
+                                                                <constraint firstItem="p0b-BM-ype" firstAttribute="leading" secondItem="W7u-EJ-xW3" secondAttribute="leading" id="Yx4-k9-ur4"/>
+                                                                <constraint firstAttribute="height" constant="40" id="jcC-ZT-YDg"/>
+                                                                <constraint firstItem="p0b-BM-ype" firstAttribute="top" secondItem="W7u-EJ-xW3" secondAttribute="top" id="l4Q-Qa-5lW"/>
+                                                                <constraint firstAttribute="width" constant="30" id="lY6-cb-akl"/>
+                                                                <constraint firstAttribute="trailing" secondItem="QGj-wj-AHM" secondAttribute="trailing" id="myW-v8-y7k"/>
+                                                                <constraint firstAttribute="trailing" secondItem="p0b-BM-ype" secondAttribute="trailing" id="qWd-2j-Gkg"/>
+                                                                <constraint firstAttribute="bottom" secondItem="p0b-BM-ype" secondAttribute="bottom" id="rDi-Ov-uZz"/>
+                                                            </constraints>
+                                                        </view>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="trailing" secondItem="BcI-mF-Lgc" secondAttribute="trailing" id="1KG-XI-oUv"/>
+                                                        <constraint firstItem="BcI-mF-Lgc" firstAttribute="top" secondItem="o68-3D-ANw" secondAttribute="top" id="Fwr-zB-3cA"/>
+                                                        <constraint firstItem="cmx-az-WIq" firstAttribute="top" secondItem="BcI-mF-Lgc" secondAttribute="bottom" constant="8" symbolic="YES" id="H6w-DQ-cZU"/>
+                                                        <constraint firstItem="W7u-EJ-xW3" firstAttribute="top" secondItem="o68-3D-ANw" secondAttribute="top" id="T2Q-TT-Plh"/>
+                                                        <constraint firstAttribute="trailing" secondItem="W7u-EJ-xW3" secondAttribute="trailing" id="WTf-It-YZN"/>
+                                                        <constraint firstItem="BcI-mF-Lgc" firstAttribute="leading" secondItem="o68-3D-ANw" secondAttribute="leading" id="fKy-O1-pP2"/>
+                                                        <constraint firstItem="cmx-az-WIq" firstAttribute="leading" secondItem="o68-3D-ANw" secondAttribute="leading" constant="20" symbolic="YES" id="oX6-3B-MUb"/>
+                                                        <constraint firstAttribute="trailing" secondItem="cmx-az-WIq" secondAttribute="trailing" constant="20" symbolic="YES" id="q6y-Jd-1Xr"/>
+                                                        <constraint firstAttribute="bottom" secondItem="cmx-az-WIq" secondAttribute="bottom" constant="20" symbolic="YES" id="rHp-13-aXe"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="o68-3D-ANw" firstAttribute="leading" secondItem="rUA-kr-zPv" secondAttribute="leading" id="LZj-dI-wgW"/>
+                                                <constraint firstItem="o68-3D-ANw" firstAttribute="top" secondItem="rUA-kr-zPv" secondAttribute="top" id="b1j-el-rla"/>
+                                                <constraint firstAttribute="bottom" secondItem="o68-3D-ANw" secondAttribute="bottom" id="irJ-EO-zSY"/>
+                                                <constraint firstAttribute="trailing" secondItem="o68-3D-ANw" secondAttribute="trailing" id="qE1-s9-vxo"/>
+                                            </constraints>
+                                        </collectionViewCellContentView>
+                                        <size key="customSize" width="192" height="220"/>
+                                        <connections>
+                                            <outlet property="customView" destination="o68-3D-ANw" id="VXs-KX-Vgn"/>
+                                            <outlet property="serialNumberLabel" destination="p0b-BM-ype" id="pzY-RX-95d"/>
+                                            <outlet property="subjectImageView" destination="BcI-mF-Lgc" id="0xa-IX-iWq"/>
+                                            <outlet property="subjectNameLabel" destination="cmx-az-WIq" id="KSB-ae-yFy"/>
+                                        </connections>
+                                    </collectionViewCell>
+                                </cells>
+                            </collectionView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="2ts-c9-08a"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="cxK-I3-kSW" firstAttribute="top" secondItem="kMR-pu-BKs" secondAttribute="bottom" constant="20" id="1fp-uA-J2N"/>
+                            <constraint firstItem="2ts-c9-08a" firstAttribute="trailing" secondItem="RWl-go-0A4" secondAttribute="trailing" constant="10" id="3OI-Z1-8mn"/>
+                            <constraint firstItem="RWl-go-0A4" firstAttribute="top" secondItem="cxK-I3-kSW" secondAttribute="bottom" constant="20" id="3yr-MN-kIC"/>
+                            <constraint firstItem="kMR-pu-BKs" firstAttribute="leading" secondItem="2ts-c9-08a" secondAttribute="leading" id="5T6-0N-GjH"/>
+                            <constraint firstItem="2ts-c9-08a" firstAttribute="trailing" secondItem="cxK-I3-kSW" secondAttribute="trailing" constant="20" id="A9N-av-1AZ"/>
+                            <constraint firstItem="2ts-c9-08a" firstAttribute="bottom" secondItem="RWl-go-0A4" secondAttribute="bottom" constant="10" id="Cfb-ac-3Y8"/>
+                            <constraint firstItem="kMR-pu-BKs" firstAttribute="trailing" secondItem="2ts-c9-08a" secondAttribute="trailing" id="DuZ-ni-T6S"/>
+                            <constraint firstItem="kMR-pu-BKs" firstAttribute="top" secondItem="2ts-c9-08a" secondAttribute="top" id="GQR-6E-NTp"/>
+                            <constraint firstItem="RWl-go-0A4" firstAttribute="leading" secondItem="2ts-c9-08a" secondAttribute="leading" constant="10" id="odX-6H-ayg"/>
+                            <constraint firstItem="cxK-I3-kSW" firstAttribute="leading" secondItem="2ts-c9-08a" secondAttribute="leading" constant="20" id="pxH-9p-wI5"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="navigationBar" destination="kMR-pu-BKs" id="cxe-7h-8ig"/>
+                        <outlet property="pageNameLabel" destination="cxK-I3-kSW" id="Gvb-3d-9Fa"/>
+                        <outlet property="unitsCollectionView" destination="RWl-go-0A4" id="YCq-GI-Z6X"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="3h9-QV-SqM" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2392.753623188406" y="835.59782608695662"/>
+        </scene>
+        <!--Lesson View Controller-->
+        <scene sceneID="Pn2-9C-oSK">
+            <objects>
+                <viewController storyboardIdentifier="LessonViewController" id="HN7-UW-rfI" customClass="LessonViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="2tE-fz-cYW">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="c5Z-u2-N6f">
+                                <rect key="frame" x="20" y="128.66666666666669" width="374" height="607.33333333333326"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LessonTableViewCell" rowHeight="70" id="xgV-OB-5zy" customClass="LessonTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="374" height="70"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="xgV-OB-5zy" id="pPl-ud-099">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="70"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="AFC-BH-buj">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="62"/>
+                                                    <subviews>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L2y-RU-2ir">
+                                                            <rect key="frame" x="20" y="0.0" width="354" height="62"/>
+                                                            <subviews>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Lesson name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7t7-Lb-pSO">
+                                                                    <rect key="frame" x="20" y="20" width="314" height="22"/>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="17"/>
+                                                                    <nil key="textColor"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                            </subviews>
+                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="bottom" secondItem="7t7-Lb-pSO" secondAttribute="bottom" constant="20" symbolic="YES" id="5Yx-XL-MTi"/>
+                                                                <constraint firstAttribute="trailing" secondItem="7t7-Lb-pSO" secondAttribute="trailing" constant="20" symbolic="YES" id="EDX-5q-0s4"/>
+                                                                <constraint firstItem="7t7-Lb-pSO" firstAttribute="top" secondItem="L2y-RU-2ir" secondAttribute="top" constant="20" symbolic="YES" id="iq1-zq-7ab"/>
+                                                                <constraint firstItem="7t7-Lb-pSO" firstAttribute="leading" secondItem="L2y-RU-2ir" secondAttribute="leading" constant="20" symbolic="YES" id="wMD-6y-AQs"/>
+                                                            </constraints>
+                                                        </view>
+                                                    </subviews>
+                                                    <color key="backgroundColor" name="orange"/>
+                                                    <constraints>
+                                                        <constraint firstItem="L2y-RU-2ir" firstAttribute="leading" secondItem="AFC-BH-buj" secondAttribute="leading" constant="20" id="3Ft-l6-hFC"/>
+                                                        <constraint firstAttribute="bottom" secondItem="L2y-RU-2ir" secondAttribute="bottom" id="V7B-Uf-FnY"/>
+                                                        <constraint firstItem="L2y-RU-2ir" firstAttribute="top" secondItem="AFC-BH-buj" secondAttribute="top" id="Vik-aL-9J9"/>
+                                                        <constraint firstAttribute="trailing" secondItem="L2y-RU-2ir" secondAttribute="trailing" id="cIv-qe-Jv7"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="AFC-BH-buj" firstAttribute="leading" secondItem="pPl-ud-099" secondAttribute="leading" id="OlC-KB-O0c"/>
+                                                <constraint firstItem="AFC-BH-buj" firstAttribute="top" secondItem="pPl-ud-099" secondAttribute="top" id="WWa-3Q-SDa"/>
+                                                <constraint firstAttribute="trailing" secondItem="AFC-BH-buj" secondAttribute="trailing" id="hVE-gA-k2H"/>
+                                                <constraint firstAttribute="bottom" secondItem="AFC-BH-buj" secondAttribute="bottom" constant="8" id="hqM-c8-2Lx"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="customCellView" destination="AFC-BH-buj" id="ESp-sp-CGW"/>
+                                            <outlet property="lessonNameLabel" destination="7t7-Lb-pSO" id="OTX-Xx-dVX"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hvY-dR-LTe">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Study Materials" id="LIT-hX-0ZO">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="xrj-aI-XwL">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="HN7-UW-rfI" id="M9Y-eH-uDz"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Lesson Name -&gt;" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Gh-gE-5ex">
+                                <rect key="frame" x="20" y="84" width="374" height="24.666666666666671"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="7fQ-e0-4MO"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="c5Z-u2-N6f" firstAttribute="top" secondItem="5Gh-gE-5ex" secondAttribute="bottom" constant="20" id="2YU-93-geP"/>
+                            <constraint firstItem="hvY-dR-LTe" firstAttribute="top" secondItem="7fQ-e0-4MO" secondAttribute="top" id="EDB-Jg-9Kb"/>
+                            <constraint firstItem="c5Z-u2-N6f" firstAttribute="bottom" secondItem="7fQ-e0-4MO" secondAttribute="bottom" id="Lej-U2-zNj"/>
+                            <constraint firstItem="7fQ-e0-4MO" firstAttribute="trailing" secondItem="hvY-dR-LTe" secondAttribute="trailing" id="Oqm-5I-lfY"/>
+                            <constraint firstItem="5Gh-gE-5ex" firstAttribute="top" secondItem="hvY-dR-LTe" secondAttribute="bottom" constant="20" id="cpz-u9-H9V"/>
+                            <constraint firstItem="7fQ-e0-4MO" firstAttribute="trailing" secondItem="5Gh-gE-5ex" secondAttribute="trailing" constant="20" id="fkZ-H2-ic7"/>
+                            <constraint firstItem="5Gh-gE-5ex" firstAttribute="leading" secondItem="2tE-fz-cYW" secondAttribute="leading" constant="20" id="jK1-y3-b04"/>
+                            <constraint firstItem="7fQ-e0-4MO" firstAttribute="trailing" secondItem="c5Z-u2-N6f" secondAttribute="trailing" constant="20" id="uY9-CP-j2i"/>
+                            <constraint firstItem="c5Z-u2-N6f" firstAttribute="leading" secondItem="7fQ-e0-4MO" secondAttribute="leading" constant="20" id="xTE-ik-aYm"/>
+                            <constraint firstItem="hvY-dR-LTe" firstAttribute="leading" secondItem="2tE-fz-cYW" secondAttribute="leading" id="xTF-ad-ATs"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="lessonNameLabel" destination="5Gh-gE-5ex" id="CTg-vF-fTX"/>
+                        <outlet property="lessonsTableView" destination="c5Z-u2-N6f" id="Rjg-z2-olb"/>
+                        <outlet property="navigationBar" destination="hvY-dR-LTe" id="0Tx-xV-pOF"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="yfF-5I-SXp" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2424.6376811594205" y="1557.8804347826087"/>
+        </scene>
+        <!--Instruction View Controller-->
+        <scene sceneID="Aum-Xd-o2T">
+            <objects>
+                <viewController storyboardIdentifier="InstructionViewController" id="7P3-6n-LyI" customClass="InstructionViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="WQE-gj-yIr">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="hkJ-UX-Gzv">
+                                <rect key="frame" x="0.0" y="122.33333333333331" width="414" height="545.66666666666674"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="InstructionTableViewCell" id="ePQ-GF-fBg" customClass="InstructionTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="414" height="41"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="ePQ-GF-fBg" id="tyd-RM-NWt">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="41"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nae-0Y-IrM">
+                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="41"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Y1-Px-XjU">
+                                                            <rect key="frame" x="20" y="10" width="374" height="21"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstItem="8Y1-Px-XjU" firstAttribute="leading" secondItem="Nae-0Y-IrM" secondAttribute="leading" constant="20" symbolic="YES" id="FhG-7l-Aak"/>
+                                                        <constraint firstAttribute="trailing" secondItem="8Y1-Px-XjU" secondAttribute="trailing" constant="20" symbolic="YES" id="KAp-9h-GLz"/>
+                                                        <constraint firstAttribute="bottom" secondItem="8Y1-Px-XjU" secondAttribute="bottom" constant="10" id="MjM-vR-IeT"/>
+                                                        <constraint firstItem="8Y1-Px-XjU" firstAttribute="top" secondItem="Nae-0Y-IrM" secondAttribute="top" constant="10" id="hta-zC-hdG"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstAttribute="bottom" secondItem="Nae-0Y-IrM" secondAttribute="bottom" id="41Y-HC-far"/>
+                                                <constraint firstItem="Nae-0Y-IrM" firstAttribute="leading" secondItem="tyd-RM-NWt" secondAttribute="leading" id="LMy-Gq-zaZ"/>
+                                                <constraint firstAttribute="trailing" secondItem="Nae-0Y-IrM" secondAttribute="trailing" id="SWJ-MA-Zn5"/>
+                                                <constraint firstItem="Nae-0Y-IrM" firstAttribute="top" secondItem="tyd-RM-NWt" secondAttribute="top" id="r9k-7G-cS3"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="instructionLabel" destination="8Y1-Px-XjU" id="h4m-Am-udi"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KUW-Kj-0e9">
+                                <rect key="frame" x="20" y="676" width="200" height="40"/>
+                                <color key="backgroundColor" name="AccentColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="Egm-TK-q8O"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="Continue">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </state>
+                                <connections>
+                                    <action selector="continueAction:" destination="7P3-6n-LyI" eventType="touchUpInside" id="BYa-NW-0ac"/>
+                                </connections>
+                            </button>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R24-nj-Z3Q">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Exam Instructions" id="hmc-qQ-QNZ">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.left" catalog="system" id="g5f-lx-eKQ">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="7P3-6n-LyI" id="3OB-U1-1AM"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Instructions For Examination" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jdl-5o-KF7">
+                                <rect key="frame" x="20" y="84" width="374" height="30.333333333333329"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="22"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="NMl-Rm-ZcG"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="NMl-Rm-ZcG" firstAttribute="trailing" secondItem="hkJ-UX-Gzv" secondAttribute="trailing" id="2eO-nv-8Li"/>
+                            <constraint firstItem="Jdl-5o-KF7" firstAttribute="leading" secondItem="NMl-Rm-ZcG" secondAttribute="leading" constant="20" id="3j9-na-4g8"/>
+                            <constraint firstItem="NMl-Rm-ZcG" firstAttribute="trailing" secondItem="Jdl-5o-KF7" secondAttribute="trailing" constant="20" id="AcR-Uc-Jxy"/>
+                            <constraint firstItem="hkJ-UX-Gzv" firstAttribute="top" secondItem="Jdl-5o-KF7" secondAttribute="bottom" constant="8" symbolic="YES" id="C0y-Pa-Yk4"/>
+                            <constraint firstItem="KUW-Kj-0e9" firstAttribute="leading" secondItem="NMl-Rm-ZcG" secondAttribute="leading" constant="20" id="IbF-sN-mMj"/>
+                            <constraint firstItem="KUW-Kj-0e9" firstAttribute="width" secondItem="WQE-gj-yIr" secondAttribute="width" multiplier="0.483092" id="PEm-KM-f3H"/>
+                            <constraint firstItem="hkJ-UX-Gzv" firstAttribute="leading" secondItem="NMl-Rm-ZcG" secondAttribute="leading" id="dsT-2t-xMs"/>
+                            <constraint firstItem="NMl-Rm-ZcG" firstAttribute="bottom" secondItem="KUW-Kj-0e9" secondAttribute="bottom" constant="20" id="fOA-Jk-qEP"/>
+                            <constraint firstItem="R24-nj-Z3Q" firstAttribute="top" secondItem="NMl-Rm-ZcG" secondAttribute="top" id="h4c-Ky-Y8Z"/>
+                            <constraint firstItem="R24-nj-Z3Q" firstAttribute="leading" secondItem="WQE-gj-yIr" secondAttribute="leading" id="q0q-65-rOh"/>
+                            <constraint firstItem="NMl-Rm-ZcG" firstAttribute="trailing" secondItem="R24-nj-Z3Q" secondAttribute="trailing" id="rcg-jD-WcZ"/>
+                            <constraint firstItem="KUW-Kj-0e9" firstAttribute="top" secondItem="hkJ-UX-Gzv" secondAttribute="bottom" constant="8" symbolic="YES" id="uxB-om-Cg1"/>
+                            <constraint firstItem="Jdl-5o-KF7" firstAttribute="top" secondItem="R24-nj-Z3Q" secondAttribute="bottom" constant="20" id="yhU-J2-3aj"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="instructionTableView" destination="hkJ-UX-Gzv" id="j8m-tM-6UG"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="GUx-ML-iTt" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3554" y="1558"/>
+        </scene>
+        <!--Lesson List View Controller-->
+        <scene sceneID="8d0-Em-75w">
+            <objects>
+                <viewController storyboardIdentifier="LessonListViewController" id="PAB-SN-vG4" customClass="LessonListViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="G2w-hG-PSp">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oHE-dt-RT3">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Study Materials" id="hLG-5h-dOa">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="Iwl-ub-anA">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="PAB-SN-vG4" id="XVr-Uk-So0"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Content Name -&gt;" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="chc-gV-sm3">
+                                <rect key="frame" x="20" y="84" width="374" height="24.666666666666671"/>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <color key="textColor" name="AccentColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="bl7-6E-YwJ">
+                                <rect key="frame" x="20" y="128.66666666666669" width="374" height="587.33333333333326"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ContentListTableViewCell" rowHeight="60" id="nID-J7-hzq" customClass="ContentListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="374" height="60"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="nID-J7-hzq" id="VOJ-Me-n3G">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="60"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7YE-dO-X4v">
+                                                    <rect key="frame" x="0.0" y="5" width="374" height="50"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Content" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cc0-xV-ceL">
+                                                            <rect key="frame" x="20" y="15" width="296" height="20"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                            <color key="textColor" name="AccentColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scorn-test" translatesAutoresizingMaskIntoConstraints="NO" id="hNE-C1-03e">
+                                                            <rect key="frame" x="324" y="10" width="30" height="30"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="30" id="27R-K7-anr"/>
+                                                                <constraint firstAttribute="width" constant="30" id="nZF-8V-M5I"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                    <constraints>
+                                                        <constraint firstItem="hNE-C1-03e" firstAttribute="leading" secondItem="Cc0-xV-ceL" secondAttribute="trailing" constant="8" symbolic="YES" id="45J-ua-gJO"/>
+                                                        <constraint firstItem="Cc0-xV-ceL" firstAttribute="top" secondItem="7YE-dO-X4v" secondAttribute="top" constant="15" id="G9b-5D-7Jb"/>
+                                                        <constraint firstItem="hNE-C1-03e" firstAttribute="top" secondItem="7YE-dO-X4v" secondAttribute="top" constant="10" id="OKb-uJ-wHa"/>
+                                                        <constraint firstAttribute="bottom" secondItem="hNE-C1-03e" secondAttribute="bottom" constant="10" id="g8x-PC-OBO"/>
+                                                        <constraint firstAttribute="bottom" secondItem="Cc0-xV-ceL" secondAttribute="bottom" constant="15" id="px4-s2-T1w"/>
+                                                        <constraint firstAttribute="trailing" secondItem="hNE-C1-03e" secondAttribute="trailing" constant="20" id="wGO-tt-vWI"/>
+                                                        <constraint firstItem="Cc0-xV-ceL" firstAttribute="leading" secondItem="7YE-dO-X4v" secondAttribute="leading" constant="20" symbolic="YES" id="yzb-nB-qlI"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="7YE-dO-X4v" firstAttribute="top" secondItem="VOJ-Me-n3G" secondAttribute="top" constant="5" id="OC6-pL-YI6"/>
+                                                <constraint firstAttribute="bottom" secondItem="7YE-dO-X4v" secondAttribute="bottom" constant="5" id="Yl1-fN-ztP"/>
+                                                <constraint firstItem="7YE-dO-X4v" firstAttribute="leading" secondItem="VOJ-Me-n3G" secondAttribute="leading" id="ctV-kg-65D"/>
+                                                <constraint firstAttribute="trailing" secondItem="7YE-dO-X4v" secondAttribute="trailing" id="h1A-8x-4sl"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="contentImageView" destination="hNE-C1-03e" id="IzM-mO-DNJ"/>
+                                            <outlet property="contentLabel" destination="Cc0-xV-ceL" id="qVb-15-VZE"/>
+                                            <outlet property="customView" destination="7YE-dO-X4v" id="X8y-yh-Cou"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="Hcx-U6-Nas"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="Hcx-U6-Nas" firstAttribute="trailing" secondItem="chc-gV-sm3" secondAttribute="trailing" constant="20" id="7UT-Ak-aNF"/>
+                            <constraint firstItem="chc-gV-sm3" firstAttribute="leading" secondItem="Hcx-U6-Nas" secondAttribute="leading" constant="20" id="Fah-e8-a5v"/>
+                            <constraint firstItem="oHE-dt-RT3" firstAttribute="leading" secondItem="Hcx-U6-Nas" secondAttribute="leading" id="PQ1-CJ-rh4"/>
+                            <constraint firstItem="Hcx-U6-Nas" firstAttribute="trailing" secondItem="bl7-6E-YwJ" secondAttribute="trailing" constant="20" id="Rlx-af-Hjl"/>
+                            <constraint firstItem="oHE-dt-RT3" firstAttribute="trailing" secondItem="Hcx-U6-Nas" secondAttribute="trailing" id="kbs-XT-PH9"/>
+                            <constraint firstItem="chc-gV-sm3" firstAttribute="top" secondItem="oHE-dt-RT3" secondAttribute="bottom" constant="20" id="pg9-Vw-swj"/>
+                            <constraint firstItem="bl7-6E-YwJ" firstAttribute="top" secondItem="chc-gV-sm3" secondAttribute="bottom" constant="20" id="tDh-PY-VF0"/>
+                            <constraint firstItem="oHE-dt-RT3" firstAttribute="top" secondItem="Hcx-U6-Nas" secondAttribute="top" id="uPc-9l-2lg"/>
+                            <constraint firstItem="bl7-6E-YwJ" firstAttribute="leading" secondItem="Hcx-U6-Nas" secondAttribute="leading" constant="20" id="x6V-BJ-qcF"/>
+                            <constraint firstItem="Hcx-U6-Nas" firstAttribute="bottom" secondItem="bl7-6E-YwJ" secondAttribute="bottom" constant="20" id="zyl-B0-hU0"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="contentListTableView" destination="bl7-6E-YwJ" id="UjI-gj-GxN"/>
+                        <outlet property="contentNameLabel" destination="chc-gV-sm3" id="ZqH-2D-0i8"/>
+                        <outlet property="navigationBar" destination="oHE-dt-RT3" id="VsZ-O2-ptY"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="oVF-Bh-TL0" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2424.6376811594205" y="2282.608695652174"/>
+        </scene>
+        <!--Quiz View Controller-->
+        <scene sceneID="jLn-UH-MgK">
+            <objects>
+                <viewController storyboardIdentifier="QuizViewController" id="JRX-qz-6Fp" customClass="QuizViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="sfs-eW-PqE">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vMW-yC-FYt">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Assessment Name" id="7EQ-sg-0ac">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="vDZ-ta-HJm">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="PAB-SN-vG4" id="Grr-1s-U47"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mt5-zc-VXx">
+                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question No - 0/0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6PK-wt-TD2">
+                                        <rect key="frame" x="20" y="20" width="200" height="40"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" priority="250" constant="200" id="d8W-7t-EAl"/>
+                                            <constraint firstAttribute="height" constant="40" id="kjM-C1-sTq"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="18"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="isf-YE-2lb">
+                                        <rect key="frame" x="220" y="58" width="174" height="2"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="2" id="iMJ-JY-gtX"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                        <nil key="textColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question Type : Multiple Select MCQ" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0aV-3h-R9e">
+                                        <rect key="frame" x="20" y="68" width="276" height="22"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <stackView opaque="NO" contentMode="scaleToFill" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="3bb-gD-FoJ">
+                                        <rect key="frame" x="304" y="68" width="90" height="22"/>
+                                        <subviews>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="stopwatch" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="YYb-er-g9E">
+                                                <rect key="frame" x="0.0" y="-0.66666666666666785" width="22" height="22.333333333333336"/>
+                                                <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="22" id="BIK-zK-YIQ"/>
+                                                    <constraint firstAttribute="height" constant="22" id="hWN-y9-qA7"/>
+                                                </constraints>
+                                            </imageView>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tz-JB-2RQ">
+                                                <rect key="frame" x="30" y="0.0" width="60" height="22"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="22" id="QJj-og-1TJ"/>
+                                                    <constraint firstAttribute="width" constant="60" id="tXQ-HH-udE"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                        </subviews>
+                                    </stackView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b7p-qx-7Qb">
+                                        <rect key="frame" x="20" y="110" width="374" height="30.333333333333343"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="22"/>
+                                        <color key="textColor" red="0.18431372549019609" green="0.42745098039215684" blue="0.66274509803921566" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Answer selection instruction" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Oq5-7e-2zg">
+                                        <rect key="frame" x="20" y="148.33333333333334" width="374" height="24.666666666666657"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                        <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yih-j8-uvi">
+                                        <rect key="frame" x="0.0" y="193" width="414" height="399"/>
+                                        <subviews>
+                                            <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter your answer" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="azX-vZ-zOq">
+                                                <rect key="frame" x="20" y="20" width="374" height="34"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                                <textInputTraits key="textInputTraits"/>
+                                            </textField>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5H0-Ej-ump">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="bg3-PZ-n9V">
+                                                        <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                        <prototypes>
+                                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MCQTableViewCell" rowHeight="100" id="YU1-Kz-TH7" customClass="MCQTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                <rect key="frame" x="0.0" y="50" width="414" height="100"/>
+                                                                <autoresizingMask key="autoresizingMask"/>
+                                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="YU1-Kz-TH7" id="QQU-Sr-okZ">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
+                                                                    <autoresizingMask key="autoresizingMask"/>
+                                                                    <subviews>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VXi-9Z-Ggg">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
+                                                                            <subviews>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jqL-pX-fsa">
+                                                                                    <rect key="frame" x="20" y="37.666666666666664" width="25" height="25"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="25" id="Ife-wM-2uS"/>
+                                                                                        <constraint firstAttribute="width" constant="25" id="MSk-M8-Fha"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                                                    <state key="normal" image="square" catalog="system"/>
+                                                                                </button>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bxu-sb-bjK">
+                                                                                    <rect key="frame" x="53" y="10" width="341" height="80"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                                            <constraints>
+                                                                                <constraint firstItem="Bxu-sb-bjK" firstAttribute="leading" secondItem="jqL-pX-fsa" secondAttribute="trailing" constant="8" symbolic="YES" id="8fU-vA-6eC"/>
+                                                                                <constraint firstItem="jqL-pX-fsa" firstAttribute="leading" secondItem="VXi-9Z-Ggg" secondAttribute="leading" constant="20" symbolic="YES" id="A19-Pi-QAi"/>
+                                                                                <constraint firstItem="Bxu-sb-bjK" firstAttribute="top" secondItem="VXi-9Z-Ggg" secondAttribute="top" constant="10" id="IsK-1w-5Tq"/>
+                                                                                <constraint firstItem="jqL-pX-fsa" firstAttribute="centerY" secondItem="VXi-9Z-Ggg" secondAttribute="centerY" id="SV3-rY-nIp"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="Bxu-sb-bjK" secondAttribute="trailing" constant="20" symbolic="YES" id="upa-he-zLf"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="Bxu-sb-bjK" secondAttribute="bottom" constant="10" id="yk1-M5-YUc"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="bottom" secondItem="VXi-9Z-Ggg" secondAttribute="bottom" id="cbz-f8-ivU"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="VXi-9Z-Ggg" secondAttribute="trailing" id="fEZ-K1-5HK"/>
+                                                                        <constraint firstItem="VXi-9Z-Ggg" firstAttribute="top" secondItem="QQU-Sr-okZ" secondAttribute="top" id="wd2-cs-6m8"/>
+                                                                        <constraint firstItem="VXi-9Z-Ggg" firstAttribute="leading" secondItem="QQU-Sr-okZ" secondAttribute="leading" id="yXV-UR-0Mo"/>
+                                                                    </constraints>
+                                                                </tableViewCellContentView>
+                                                                <connections>
+                                                                    <outlet property="checkButton" destination="jqL-pX-fsa" id="kfr-nM-PAl"/>
+                                                                    <outlet property="customView" destination="VXi-9Z-Ggg" id="nWG-CV-f8g"/>
+                                                                    <outlet property="optionLabel" destination="Bxu-sb-bjK" id="HDr-42-X5b"/>
+                                                                </connections>
+                                                            </tableViewCell>
+                                                        </prototypes>
+                                                    </tableView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="trailing" secondItem="bg3-PZ-n9V" secondAttribute="trailing" id="MXA-mh-TAV"/>
+                                                    <constraint firstItem="bg3-PZ-n9V" firstAttribute="top" secondItem="5H0-Ej-ump" secondAttribute="top" id="owH-VC-SIt"/>
+                                                    <constraint firstAttribute="bottom" secondItem="bg3-PZ-n9V" secondAttribute="bottom" id="sfy-Xk-hDS"/>
+                                                    <constraint firstItem="bg3-PZ-n9V" firstAttribute="leading" secondItem="5H0-Ej-ump" secondAttribute="leading" id="xsH-lF-1sR"/>
+                                                </constraints>
+                                            </view>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7Eq-o5-ad4">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="2Ij-tc-qjL">
+                                                        <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                        <prototypes>
+                                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="TrueFalseTableViewCell" rowHeight="45" id="y8D-Lq-3mb" customClass="TrueFalseTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                <rect key="frame" x="0.0" y="50" width="414" height="45"/>
+                                                                <autoresizingMask key="autoresizingMask"/>
+                                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="y8D-Lq-3mb" id="dkE-cn-45q">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="45"/>
+                                                                    <autoresizingMask key="autoresizingMask"/>
+                                                                    <subviews>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0B6-su-v0S">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="414" height="45"/>
+                                                                            <subviews>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="l4q-sM-Vaj">
+                                                                                    <rect key="frame" x="20" y="10" width="25" height="25"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="25" id="WB6-mz-fev"/>
+                                                                                        <constraint firstAttribute="height" constant="25" id="hyj-TA-RKj"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" systemColor="labelColor"/>
+                                                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                                                    <state key="normal" image="circle" catalog="system"/>
+                                                                                </button>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qm8-Wy-dZh">
+                                                                                    <rect key="frame" x="53" y="10" width="341" height="25"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="bottom" secondItem="qm8-Wy-dZh" secondAttribute="bottom" constant="10" id="0Js-wF-zVf"/>
+                                                                                <constraint firstItem="qm8-Wy-dZh" firstAttribute="top" secondItem="0B6-su-v0S" secondAttribute="top" constant="10" id="3Ry-Va-32x"/>
+                                                                                <constraint firstItem="qm8-Wy-dZh" firstAttribute="leading" secondItem="l4q-sM-Vaj" secondAttribute="trailing" constant="8" symbolic="YES" id="4fE-El-Jup"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="qm8-Wy-dZh" secondAttribute="trailing" constant="20" symbolic="YES" id="Crv-Kc-oTZ"/>
+                                                                                <constraint firstItem="l4q-sM-Vaj" firstAttribute="top" secondItem="0B6-su-v0S" secondAttribute="top" constant="10" id="IVb-IA-OBS"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="l4q-sM-Vaj" secondAttribute="bottom" constant="10" id="ZG7-GX-T2B"/>
+                                                                                <constraint firstItem="l4q-sM-Vaj" firstAttribute="leading" secondItem="0B6-su-v0S" secondAttribute="leading" constant="20" symbolic="YES" id="job-ZG-4RQ"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="bottom" secondItem="0B6-su-v0S" secondAttribute="bottom" id="Mgc-Yd-eke"/>
+                                                                        <constraint firstItem="0B6-su-v0S" firstAttribute="top" secondItem="dkE-cn-45q" secondAttribute="top" id="jnH-hC-dxK"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="0B6-su-v0S" secondAttribute="trailing" id="sUJ-R5-mRM"/>
+                                                                        <constraint firstItem="0B6-su-v0S" firstAttribute="leading" secondItem="dkE-cn-45q" secondAttribute="leading" id="w5o-zG-X7j"/>
+                                                                    </constraints>
+                                                                </tableViewCellContentView>
+                                                                <connections>
+                                                                    <outlet property="customView" destination="0B6-su-v0S" id="CbU-Lg-tUG"/>
+                                                                    <outlet property="optionLabel" destination="qm8-Wy-dZh" id="Eks-y7-lk2"/>
+                                                                    <outlet property="selectButton" destination="l4q-sM-Vaj" id="Vkl-ig-q9d"/>
+                                                                </connections>
+                                                            </tableViewCell>
+                                                        </prototypes>
+                                                    </tableView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstItem="2Ij-tc-qjL" firstAttribute="leading" secondItem="7Eq-o5-ad4" secondAttribute="leading" id="L9m-Zq-5vX"/>
+                                                    <constraint firstAttribute="trailing" secondItem="2Ij-tc-qjL" secondAttribute="trailing" id="Obp-vz-cRa"/>
+                                                    <constraint firstItem="2Ij-tc-qjL" firstAttribute="top" secondItem="7Eq-o5-ad4" secondAttribute="top" id="ojh-V6-RBz"/>
+                                                    <constraint firstAttribute="bottom" secondItem="2Ij-tc-qjL" secondAttribute="bottom" id="vdx-7w-kTk"/>
+                                                </constraints>
+                                            </view>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bfu-V6-1cR">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="JAr-Bf-BIN">
+                                                        <rect key="frame" x="20" y="0.0" width="374" height="399"/>
+                                                        <subviews>
+                                                            <tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="UIj-1n-7au">
+                                                                <rect key="frame" x="0.0" y="0.0" width="177" height="399"/>
+                                                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                <prototypes>
+                                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DragTableViewCell" rowHeight="50" id="W1b-eb-Dee" customClass="DragTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                        <rect key="frame" x="0.0" y="50" width="177" height="50"/>
+                                                                        <autoresizingMask key="autoresizingMask"/>
+                                                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="W1b-eb-Dee" id="HwT-OB-GPV">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                            <autoresizingMask key="autoresizingMask"/>
+                                                                            <subviews>
+                                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="U0r-nn-PMd">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option 1" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5B9-lu-0fd">
+                                                                                            <rect key="frame" x="10" y="10" width="157" height="30"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                                                            <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                    </subviews>
+                                                                                    <color key="backgroundColor" red="0.7803921568627451" green="0.7803921568627451" blue="0.7803921568627451" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="trailing" secondItem="5B9-lu-0fd" secondAttribute="trailing" constant="10" id="GhI-9F-ZHO"/>
+                                                                                        <constraint firstAttribute="height" constant="50" id="ZUf-Nu-aDP"/>
+                                                                                        <constraint firstItem="5B9-lu-0fd" firstAttribute="leading" secondItem="U0r-nn-PMd" secondAttribute="leading" constant="10" id="iKi-jr-gzZ"/>
+                                                                                        <constraint firstAttribute="bottom" secondItem="5B9-lu-0fd" secondAttribute="bottom" constant="10" id="tVf-o2-4zm"/>
+                                                                                        <constraint firstItem="5B9-lu-0fd" firstAttribute="top" secondItem="U0r-nn-PMd" secondAttribute="top" constant="10" id="umu-Vm-Uta"/>
+                                                                                    </constraints>
+                                                                                </view>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                            <constraints>
+                                                                                <constraint firstItem="U0r-nn-PMd" firstAttribute="top" secondItem="HwT-OB-GPV" secondAttribute="top" id="7De-tA-fub"/>
+                                                                                <constraint firstItem="U0r-nn-PMd" firstAttribute="leading" secondItem="HwT-OB-GPV" secondAttribute="leading" id="QJq-3q-FJg"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="U0r-nn-PMd" secondAttribute="bottom" id="Uoj-q9-Srb"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="U0r-nn-PMd" secondAttribute="trailing" id="jat-y1-SUN"/>
+                                                                            </constraints>
+                                                                        </tableViewCellContentView>
+                                                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                        <connections>
+                                                                            <outlet property="optionLabel" destination="5B9-lu-0fd" id="bxH-xT-Qn9"/>
+                                                                        </connections>
+                                                                    </tableViewCell>
+                                                                </prototypes>
+                                                            </tableView>
+                                                            <tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="P4u-em-D73">
+                                                                <rect key="frame" x="197" y="0.0" width="177" height="399"/>
+                                                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                <prototypes>
+                                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DragTableViewCell" rowHeight="50" id="hst-c2-aSS" customClass="DragTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                        <rect key="frame" x="0.0" y="50" width="177" height="50"/>
+                                                                        <autoresizingMask key="autoresizingMask"/>
+                                                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="hst-c2-aSS" id="J5s-pX-F7m">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                            <autoresizingMask key="autoresizingMask"/>
+                                                                            <subviews>
+                                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VV1-BS-aOf">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option 2" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GU7-5K-1Pr">
+                                                                                            <rect key="frame" x="10" y="10" width="157" height="30"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="16"/>
+                                                                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_drag_white" translatesAutoresizingMaskIntoConstraints="NO" id="y0A-Xo-aIV">
+                                                                                            <rect key="frame" x="142" y="5" width="25" height="40"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="height" constant="40" id="xlT-PV-PS1"/>
+                                                                                                <constraint firstAttribute="width" constant="25" id="zXj-qD-yVe"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                    </subviews>
+                                                                                    <color key="backgroundColor" red="0.18431372549019609" green="0.42745098039215684" blue="0.66274509803921566" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstItem="y0A-Xo-aIV" firstAttribute="top" secondItem="VV1-BS-aOf" secondAttribute="top" constant="5" id="HwP-ye-3k0"/>
+                                                                                        <constraint firstAttribute="bottom" secondItem="y0A-Xo-aIV" secondAttribute="bottom" constant="5" id="N9A-Mb-H99"/>
+                                                                                        <constraint firstAttribute="bottom" secondItem="GU7-5K-1Pr" secondAttribute="bottom" constant="10" id="RiO-lQ-Zee"/>
+                                                                                        <constraint firstItem="y0A-Xo-aIV" firstAttribute="trailing" secondItem="GU7-5K-1Pr" secondAttribute="trailing" id="X2m-Qg-7zG"/>
+                                                                                        <constraint firstAttribute="trailing" secondItem="GU7-5K-1Pr" secondAttribute="trailing" constant="10" id="han-r4-Gs3"/>
+                                                                                        <constraint firstItem="GU7-5K-1Pr" firstAttribute="top" secondItem="VV1-BS-aOf" secondAttribute="top" constant="10" id="ieZ-gg-ihB"/>
+                                                                                        <constraint firstAttribute="height" constant="50" id="pe5-HK-SJM"/>
+                                                                                        <constraint firstItem="GU7-5K-1Pr" firstAttribute="leading" secondItem="VV1-BS-aOf" secondAttribute="leading" constant="10" id="qKz-VK-UJR"/>
+                                                                                    </constraints>
+                                                                                </view>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                            <constraints>
+                                                                                <constraint firstItem="VV1-BS-aOf" firstAttribute="top" secondItem="J5s-pX-F7m" secondAttribute="top" id="94Q-Zs-hyb"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="VV1-BS-aOf" secondAttribute="trailing" id="Cnw-eJ-YBG"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="VV1-BS-aOf" secondAttribute="bottom" id="FFh-Y1-2TQ"/>
+                                                                                <constraint firstItem="VV1-BS-aOf" firstAttribute="leading" secondItem="J5s-pX-F7m" secondAttribute="leading" id="jOT-VI-sXQ"/>
+                                                                            </constraints>
+                                                                        </tableViewCellContentView>
+                                                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                        <connections>
+                                                                            <outlet property="optionLabel" destination="GU7-5K-1Pr" id="SCd-uy-BD3"/>
+                                                                        </connections>
+                                                                    </tableViewCell>
+                                                                </prototypes>
+                                                            </tableView>
+                                                        </subviews>
+                                                        <constraints>
+                                                            <constraint firstItem="P4u-em-D73" firstAttribute="top" secondItem="JAr-Bf-BIN" secondAttribute="top" id="0p4-7Z-CSl"/>
+                                                            <constraint firstAttribute="trailing" secondItem="P4u-em-D73" secondAttribute="trailing" id="BNA-KM-utN"/>
+                                                            <constraint firstItem="UIj-1n-7au" firstAttribute="top" secondItem="JAr-Bf-BIN" secondAttribute="top" id="IDY-90-lUj"/>
+                                                            <constraint firstAttribute="bottom" secondItem="UIj-1n-7au" secondAttribute="bottom" id="ULR-RZ-rwS"/>
+                                                            <constraint firstItem="UIj-1n-7au" firstAttribute="leading" secondItem="JAr-Bf-BIN" secondAttribute="leading" id="Wky-07-cVD"/>
+                                                            <constraint firstItem="P4u-em-D73" firstAttribute="leading" secondItem="UIj-1n-7au" secondAttribute="trailing" constant="20" id="iBV-1b-B8e"/>
+                                                            <constraint firstAttribute="bottom" secondItem="P4u-em-D73" secondAttribute="bottom" id="mhL-lY-cKb"/>
+                                                        </constraints>
+                                                    </stackView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="trailing" secondItem="JAr-Bf-BIN" secondAttribute="trailing" constant="20" symbolic="YES" id="0T8-8J-SrC"/>
+                                                    <constraint firstItem="JAr-Bf-BIN" firstAttribute="top" secondItem="bfu-V6-1cR" secondAttribute="top" id="m3V-77-vUr"/>
+                                                    <constraint firstAttribute="bottom" secondItem="JAr-Bf-BIN" secondAttribute="bottom" id="qaS-tp-Ur5"/>
+                                                    <constraint firstItem="JAr-Bf-BIN" firstAttribute="leading" secondItem="bfu-V6-1cR" secondAttribute="leading" constant="20" symbolic="YES" id="xy4-rz-9uI"/>
+                                                </constraints>
+                                            </view>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="bottom" secondItem="bfu-V6-1cR" secondAttribute="bottom" id="0ak-Kw-FXP"/>
+                                            <constraint firstItem="azX-vZ-zOq" firstAttribute="top" secondItem="yih-j8-uvi" secondAttribute="top" constant="20" symbolic="YES" id="1Mu-N1-QWf"/>
+                                            <constraint firstItem="bfu-V6-1cR" firstAttribute="top" secondItem="yih-j8-uvi" secondAttribute="top" id="5og-op-e3c"/>
+                                            <constraint firstAttribute="trailing" secondItem="azX-vZ-zOq" secondAttribute="trailing" constant="20" symbolic="YES" id="Lhb-Jz-e3g"/>
+                                            <constraint firstAttribute="bottom" secondItem="5H0-Ej-ump" secondAttribute="bottom" id="PGI-37-CIa"/>
+                                            <constraint firstItem="7Eq-o5-ad4" firstAttribute="leading" secondItem="yih-j8-uvi" secondAttribute="leading" id="TXj-gm-sft"/>
+                                            <constraint firstItem="azX-vZ-zOq" firstAttribute="leading" secondItem="yih-j8-uvi" secondAttribute="leading" constant="20" symbolic="YES" id="b1y-7P-HC6"/>
+                                            <constraint firstAttribute="bottom" secondItem="7Eq-o5-ad4" secondAttribute="bottom" id="fZc-mQ-HE8"/>
+                                            <constraint firstItem="bfu-V6-1cR" firstAttribute="leading" secondItem="yih-j8-uvi" secondAttribute="leading" id="ghx-Ak-so2"/>
+                                            <constraint firstItem="7Eq-o5-ad4" firstAttribute="top" secondItem="yih-j8-uvi" secondAttribute="top" id="hQi-yi-uMy"/>
+                                            <constraint firstAttribute="trailing" secondItem="7Eq-o5-ad4" secondAttribute="trailing" id="o9I-4d-c9O"/>
+                                            <constraint firstItem="5H0-Ej-ump" firstAttribute="leading" secondItem="yih-j8-uvi" secondAttribute="leading" id="qhV-Mq-QLW"/>
+                                            <constraint firstItem="5H0-Ej-ump" firstAttribute="top" secondItem="yih-j8-uvi" secondAttribute="top" id="t6D-Fw-gnY"/>
+                                            <constraint firstAttribute="trailing" secondItem="bfu-V6-1cR" secondAttribute="trailing" id="xIE-Sh-mYD"/>
+                                            <constraint firstAttribute="trailing" secondItem="5H0-Ej-ump" secondAttribute="trailing" id="y9r-k6-IOj"/>
+                                        </constraints>
+                                    </view>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="muf-s0-kJm">
+                                        <rect key="frame" x="344" y="542" width="50" height="50"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="50" id="AjF-TA-AHi"/>
+                                            <constraint firstAttribute="width" constant="50" id="zog-Z1-8Un"/>
+                                        </constraints>
+                                        <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" image="circle.grid.3x3.fill" catalog="system">
+                                            <preferredSymbolConfiguration key="preferredSymbolConfiguration"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="filterAction:" destination="Hg3-dp-OsB" eventType="touchUpInside" id="Jt4-Ah-cQO"/>
+                                            <action selector="quesNumberAction:" destination="JRX-qz-6Fp" eventType="touchUpInside" id="gmX-lR-qAt"/>
+                                        </connections>
+                                    </button>
+                                    <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="AJw-mT-Jhb">
+                                        <rect key="frame" x="20" y="612" width="374" height="40"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Dc7-ez-Bta">
+                                                <rect key="frame" x="0.0" y="0.0" width="183" height="40"/>
+                                                <color key="backgroundColor" name="AccentColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="40" id="jaX-vq-iMP"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" title="Skip">
+                                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="skipAction:" destination="JRX-qz-6Fp" eventType="touchUpInside" id="VfM-Nj-lnc"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Txy-lS-3cX">
+                                                <rect key="frame" x="191" y="0.0" width="183" height="40"/>
+                                                <color key="backgroundColor" name="AccentColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="40" id="Od5-MK-svs"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" title="Next">
+                                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="nextAction:" destination="JRX-qz-6Fp" eventType="touchUpInside" id="h2r-LY-TdS"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                    </stackView>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstItem="6PK-wt-TD2" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" constant="20" symbolic="YES" id="1L3-Zb-AD2"/>
+                                    <constraint firstAttribute="trailing" secondItem="AJw-mT-Jhb" secondAttribute="trailing" constant="20" symbolic="YES" id="5yb-Hr-U9S"/>
+                                    <constraint firstItem="3bb-gD-FoJ" firstAttribute="leading" secondItem="0aV-3h-R9e" secondAttribute="trailing" constant="8" symbolic="YES" id="C3p-gX-n9m"/>
+                                    <constraint firstAttribute="trailing" secondItem="3bb-gD-FoJ" secondAttribute="trailing" constant="20" symbolic="YES" id="CI1-kW-2es"/>
+                                    <constraint firstItem="3bb-gD-FoJ" firstAttribute="trailing" secondItem="Oq5-7e-2zg" secondAttribute="trailing" id="HW7-Ri-kF9"/>
+                                    <constraint firstItem="b7p-qx-7Qb" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" constant="20" symbolic="YES" id="I3c-ba-hLz"/>
+                                    <constraint firstItem="b7p-qx-7Qb" firstAttribute="top" secondItem="3bb-gD-FoJ" secondAttribute="bottom" constant="20" id="Ihx-fL-i7t"/>
+                                    <constraint firstItem="0aV-3h-R9e" firstAttribute="centerY" secondItem="3bb-gD-FoJ" secondAttribute="centerY" id="J7M-q2-5HJ"/>
+                                    <constraint firstAttribute="trailing" secondItem="Oq5-7e-2zg" secondAttribute="trailing" constant="20" symbolic="YES" id="MqK-By-f2r"/>
+                                    <constraint firstItem="0aV-3h-R9e" firstAttribute="leading" secondItem="AJw-mT-Jhb" secondAttribute="leading" id="Mu5-Fc-VMb"/>
+                                    <constraint firstItem="0aV-3h-R9e" firstAttribute="leading" secondItem="Oq5-7e-2zg" secondAttribute="leading" id="Owf-Ff-6uQ"/>
+                                    <constraint firstAttribute="trailing" secondItem="yih-j8-uvi" secondAttribute="trailing" id="RI5-1a-g04"/>
+                                    <constraint firstItem="AJw-mT-Jhb" firstAttribute="top" secondItem="yih-j8-uvi" secondAttribute="bottom" constant="20" id="V89-Ya-SP4"/>
+                                    <constraint firstItem="Oq5-7e-2zg" firstAttribute="top" secondItem="b7p-qx-7Qb" secondAttribute="bottom" constant="8" symbolic="YES" id="Vlh-ae-IEi"/>
+                                    <constraint firstItem="AJw-mT-Jhb" firstAttribute="top" secondItem="muf-s0-kJm" secondAttribute="bottom" constant="20" id="Wi6-tm-4dx"/>
+                                    <constraint firstItem="yih-j8-uvi" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" id="ZVf-JM-jGm"/>
+                                    <constraint firstItem="0aV-3h-R9e" firstAttribute="top" secondItem="6PK-wt-TD2" secondAttribute="bottom" constant="8" symbolic="YES" id="Zed-Ae-9PW"/>
+                                    <constraint firstAttribute="trailing" secondItem="b7p-qx-7Qb" secondAttribute="trailing" constant="20" symbolic="YES" id="deZ-DL-KMp"/>
+                                    <constraint firstAttribute="bottom" secondItem="AJw-mT-Jhb" secondAttribute="bottom" constant="20" symbolic="YES" id="fCV-Qf-1UE"/>
+                                    <constraint firstItem="yih-j8-uvi" firstAttribute="top" secondItem="Oq5-7e-2zg" secondAttribute="bottom" constant="20" id="fcC-OO-Dpi"/>
+                                    <constraint firstItem="0aV-3h-R9e" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" constant="20" symbolic="YES" id="hS7-K7-hQR"/>
+                                    <constraint firstItem="AJw-mT-Jhb" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" constant="20" symbolic="YES" id="ieg-Q6-Hbw"/>
+                                    <constraint firstItem="isf-YE-2lb" firstAttribute="top" secondItem="Mt5-zc-VXx" secondAttribute="top" constant="58" id="m3T-38-xlc"/>
+                                    <constraint firstItem="6PK-wt-TD2" firstAttribute="top" secondItem="Mt5-zc-VXx" secondAttribute="top" constant="20" symbolic="YES" id="qCy-Te-i2G"/>
+                                    <constraint firstItem="Oq5-7e-2zg" firstAttribute="leading" secondItem="Mt5-zc-VXx" secondAttribute="leading" constant="20" symbolic="YES" id="swc-m8-lj6"/>
+                                    <constraint firstItem="3bb-gD-FoJ" firstAttribute="top" secondItem="isf-YE-2lb" secondAttribute="bottom" constant="8" symbolic="YES" id="uOi-az-Ix7"/>
+                                    <constraint firstAttribute="trailing" secondItem="isf-YE-2lb" secondAttribute="trailing" constant="20" symbolic="YES" id="wb5-un-1ch"/>
+                                    <constraint firstItem="isf-YE-2lb" firstAttribute="leading" secondItem="6PK-wt-TD2" secondAttribute="trailing" id="xFt-jE-828"/>
+                                    <constraint firstAttribute="trailing" secondItem="muf-s0-kJm" secondAttribute="trailing" constant="20" id="zq4-io-Itf"/>
+                                </constraints>
+                            </view>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BA4-V2-98G">
+                                <rect key="frame" x="0.0" y="20" width="414" height="716"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="RwF-qQ-duz">
+                                        <rect key="frame" x="10" y="211.66666666666666" width="394" height="292.66666666666674"/>
+                                        <subviews>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Congratulations You Have Submitted Your Exam Successfully!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vvk-62-1pS">
+                                                <rect key="frame" x="20" y="176.33333333333334" width="354" height="38.333333333333343"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="14"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="X4j-XJ-Dgi">
+                                                <rect key="frame" x="105.66666666666669" y="222.66666666666666" width="183" height="39.999999999999972"/>
+                                                <color key="backgroundColor" name="AccentColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="40" id="6qT-Pa-I8e"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" title="Close">
+                                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="closeAction:" destination="JRX-qz-6Fp" eventType="touchUpInside" id="0IN-gQ-Kav"/>
+                                                </connections>
+                                            </button>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" image="check-mark" translatesAutoresizingMaskIntoConstraints="NO" id="OxV-LB-LHf">
+                                                <rect key="frame" x="124" y="30.000000000000028" width="146" height="138.33333333333334"/>
+                                            </imageView>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstItem="OxV-LB-LHf" firstAttribute="top" secondItem="RwF-qQ-duz" secondAttribute="top" constant="30" id="3zG-br-KKw"/>
+                                            <constraint firstItem="vvk-62-1pS" firstAttribute="top" secondItem="OxV-LB-LHf" secondAttribute="bottom" constant="8" symbolic="YES" id="54n-NZ-gx9"/>
+                                            <constraint firstAttribute="trailing" secondItem="vvk-62-1pS" secondAttribute="trailing" constant="20" symbolic="YES" id="MrU-GH-pWw"/>
+                                            <constraint firstItem="OxV-LB-LHf" firstAttribute="centerX" secondItem="RwF-qQ-duz" secondAttribute="centerX" id="URc-vf-q6O"/>
+                                            <constraint firstItem="vvk-62-1pS" firstAttribute="leading" secondItem="RwF-qQ-duz" secondAttribute="leading" constant="20" symbolic="YES" id="a4t-eS-zy6"/>
+                                            <constraint firstItem="X4j-XJ-Dgi" firstAttribute="width" secondItem="RwF-qQ-duz" secondAttribute="width" multiplier="0.464467" id="aUF-6L-pGv"/>
+                                            <constraint firstItem="OxV-LB-LHf" firstAttribute="width" secondItem="RwF-qQ-duz" secondAttribute="height" multiplier="1:2" id="ckf-XE-iBl"/>
+                                            <constraint firstItem="X4j-XJ-Dgi" firstAttribute="centerX" secondItem="RwF-qQ-duz" secondAttribute="centerX" id="fzQ-1d-Jf1"/>
+                                            <constraint firstAttribute="bottom" secondItem="X4j-XJ-Dgi" secondAttribute="bottom" constant="30" id="iTz-Eu-ZxK"/>
+                                            <constraint firstItem="X4j-XJ-Dgi" firstAttribute="top" secondItem="vvk-62-1pS" secondAttribute="bottom" constant="8" id="t6f-zU-jTP"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="secondaryLabelColor"/>
+                                <constraints>
+                                    <constraint firstItem="RwF-qQ-duz" firstAttribute="centerY" secondItem="BA4-V2-98G" secondAttribute="centerY" id="GsU-kY-Dma"/>
+                                    <constraint firstItem="RwF-qQ-duz" firstAttribute="width" secondItem="BA4-V2-98G" secondAttribute="width" multiplier="0.951691" id="J7q-7A-Da0"/>
+                                    <constraint firstItem="RwF-qQ-duz" firstAttribute="height" secondItem="BA4-V2-98G" secondAttribute="height" multiplier="0.408514" id="Nnl-eO-pgb"/>
+                                    <constraint firstItem="RwF-qQ-duz" firstAttribute="centerX" secondItem="BA4-V2-98G" secondAttribute="centerX" id="khB-oP-OeS"/>
+                                </constraints>
+                            </view>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JeF-Z1-LZT">
+                                <rect key="frame" x="0.0" y="20" width="414" height="716"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7jS-Sw-QnU">
+                                        <rect key="frame" x="20" y="239.66666666666669" width="374" height="237"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VIz-kd-vWa">
+                                                <rect key="frame" x="10" y="10" width="30" height="30"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="30" id="XrJ-iF-QUt"/>
+                                                    <constraint firstAttribute="width" constant="30" id="tde-gX-m6b"/>
+                                                </constraints>
+                                                <color key="tintColor" name="orange"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" image="x.circle" catalog="system"/>
+                                                <connections>
+                                                    <action selector="cancelAction:" destination="JRX-qz-6Fp" eventType="touchUpInside" id="Ga4-6v-1DL"/>
+                                                </connections>
+                                            </button>
+                                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="BJ8-vO-wNO">
+                                                <rect key="frame" x="20" y="48" width="334" height="169"/>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="169" id="QXp-ud-nc8"/>
+                                                </constraints>
+                                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="4uD-ve-Vj7">
+                                                    <size key="itemSize" width="100" height="100"/>
+                                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                                </collectionViewFlowLayout>
+                                                <cells>
+                                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="QuestionNumberCollectionViewCell" id="xd5-LM-8e3" customClass="QuestionNumberCollectionViewCell" customModule="LMS" customModuleProvider="target">
+                                                        <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                        <collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="m0p-pp-guy">
+                                                            <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                            <autoresizingMask key="autoresizingMask"/>
+                                                            <subviews>
+                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rr2-gf-VcD">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                                    <subviews>
+                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dqF-Pl-Z4T">
+                                                                            <rect key="frame" x="20" y="20" width="60" height="60"/>
+                                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                                            <nil key="textColor"/>
+                                                                            <nil key="highlightedColor"/>
+                                                                        </label>
+                                                                    </subviews>
+                                                                    <color key="backgroundColor" systemColor="systemGray5Color"/>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="trailing" secondItem="dqF-Pl-Z4T" secondAttribute="trailing" constant="20" symbolic="YES" id="CwT-mN-JvI"/>
+                                                                        <constraint firstItem="dqF-Pl-Z4T" firstAttribute="leading" secondItem="Rr2-gf-VcD" secondAttribute="leading" constant="20" symbolic="YES" id="Iic-Xy-zJs"/>
+                                                                        <constraint firstItem="dqF-Pl-Z4T" firstAttribute="top" secondItem="Rr2-gf-VcD" secondAttribute="top" constant="20" symbolic="YES" id="fPh-xx-rdD"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="dqF-Pl-Z4T" secondAttribute="bottom" constant="20" symbolic="YES" id="stR-T3-KmQ"/>
+                                                                    </constraints>
+                                                                </view>
+                                                            </subviews>
+                                                            <constraints>
+                                                                <constraint firstAttribute="bottom" secondItem="Rr2-gf-VcD" secondAttribute="bottom" id="Gm8-9n-jbn"/>
+                                                                <constraint firstAttribute="trailing" secondItem="Rr2-gf-VcD" secondAttribute="trailing" id="Hcp-ec-bgs"/>
+                                                                <constraint firstItem="Rr2-gf-VcD" firstAttribute="top" secondItem="m0p-pp-guy" secondAttribute="top" id="Hh3-ZF-oDz"/>
+                                                                <constraint firstItem="Rr2-gf-VcD" firstAttribute="leading" secondItem="m0p-pp-guy" secondAttribute="leading" id="lgg-4a-vD6"/>
+                                                            </constraints>
+                                                        </collectionViewCellContentView>
+                                                        <connections>
+                                                            <outlet property="customCellView" destination="Rr2-gf-VcD" id="uDk-4r-YCB"/>
+                                                            <outlet property="serialNoLabel" destination="dqF-Pl-Z4T" id="Y3T-Xl-GMl"/>
+                                                        </connections>
+                                                    </collectionViewCell>
+                                                </cells>
+                                            </collectionView>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstItem="VIz-kd-vWa" firstAttribute="leading" secondItem="7jS-Sw-QnU" secondAttribute="leading" constant="10" id="FqA-YJ-rCq"/>
+                                            <constraint firstItem="BJ8-vO-wNO" firstAttribute="top" secondItem="VIz-kd-vWa" secondAttribute="bottom" constant="8" symbolic="YES" id="J4K-RR-Whd"/>
+                                            <constraint firstItem="BJ8-vO-wNO" firstAttribute="leading" secondItem="7jS-Sw-QnU" secondAttribute="leading" constant="20" id="Jjv-2j-Zxi"/>
+                                            <constraint firstAttribute="bottom" secondItem="BJ8-vO-wNO" secondAttribute="bottom" constant="20" id="e0t-Jp-n86"/>
+                                            <constraint firstItem="VIz-kd-vWa" firstAttribute="top" secondItem="7jS-Sw-QnU" secondAttribute="top" constant="10" id="mMG-cK-dK3"/>
+                                            <constraint firstAttribute="trailing" secondItem="BJ8-vO-wNO" secondAttribute="trailing" constant="20" id="tHi-Xi-uhZ"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="secondaryLabelColor"/>
+                                <constraints>
+                                    <constraint firstItem="7jS-Sw-QnU" firstAttribute="centerX" secondItem="JeF-Z1-LZT" secondAttribute="centerX" id="1Nz-FF-Lob"/>
+                                    <constraint firstItem="7jS-Sw-QnU" firstAttribute="height" secondItem="JeF-Z1-LZT" secondAttribute="height" multiplier="0.331006" priority="250" id="IJq-8Y-v5s"/>
+                                    <constraint firstItem="7jS-Sw-QnU" firstAttribute="centerY" secondItem="JeF-Z1-LZT" secondAttribute="centerY" id="Qhv-Hk-uhy"/>
+                                    <constraint firstAttribute="trailing" secondItem="7jS-Sw-QnU" secondAttribute="trailing" constant="20" symbolic="YES" id="nFw-LV-xUx"/>
+                                    <constraint firstItem="7jS-Sw-QnU" firstAttribute="leading" secondItem="JeF-Z1-LZT" secondAttribute="leading" constant="20" symbolic="YES" id="tyI-Pk-TBQ"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="4bN-Un-cON"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="Mt5-zc-VXx" firstAttribute="leading" secondItem="4bN-Un-cON" secondAttribute="leading" id="7w3-v3-YBX"/>
+                            <constraint firstItem="Mt5-zc-VXx" firstAttribute="trailing" secondItem="4bN-Un-cON" secondAttribute="trailing" id="8Pu-Qz-Nhv"/>
+                            <constraint firstItem="BA4-V2-98G" firstAttribute="top" secondItem="4bN-Un-cON" secondAttribute="top" id="8Sg-Q3-djW"/>
+                            <constraint firstItem="vMW-yC-FYt" firstAttribute="top" secondItem="4bN-Un-cON" secondAttribute="top" id="8iQ-3J-Ddc"/>
+                            <constraint firstAttribute="trailing" secondItem="vMW-yC-FYt" secondAttribute="trailing" id="Bde-GN-jXO"/>
+                            <constraint firstItem="Mt5-zc-VXx" firstAttribute="top" secondItem="vMW-yC-FYt" secondAttribute="bottom" id="Jaq-MA-JQB"/>
+                            <constraint firstItem="JeF-Z1-LZT" firstAttribute="leading" secondItem="4bN-Un-cON" secondAttribute="leading" id="NPH-qz-Bjv"/>
+                            <constraint firstItem="BA4-V2-98G" firstAttribute="trailing" secondItem="4bN-Un-cON" secondAttribute="trailing" id="OGb-fa-bBg"/>
+                            <constraint firstItem="4bN-Un-cON" firstAttribute="bottom" secondItem="JeF-Z1-LZT" secondAttribute="bottom" id="U4L-jz-Qa1"/>
+                            <constraint firstItem="BA4-V2-98G" firstAttribute="leading" secondItem="4bN-Un-cON" secondAttribute="leading" id="VKu-CK-M2h"/>
+                            <constraint firstItem="vMW-yC-FYt" firstAttribute="leading" secondItem="4bN-Un-cON" secondAttribute="leading" id="VW3-v2-VTe"/>
+                            <constraint firstItem="BA4-V2-98G" firstAttribute="bottom" secondItem="4bN-Un-cON" secondAttribute="bottom" id="hJW-HE-PJ5"/>
+                            <constraint firstItem="Mt5-zc-VXx" firstAttribute="bottom" secondItem="4bN-Un-cON" secondAttribute="bottom" id="rBn-SV-lMf"/>
+                            <constraint firstItem="JeF-Z1-LZT" firstAttribute="top" secondItem="4bN-Un-cON" secondAttribute="top" id="yoq-8w-TR6"/>
+                            <constraint firstItem="4bN-Un-cON" firstAttribute="trailing" secondItem="JeF-Z1-LZT" secondAttribute="trailing" id="z8T-A9-dZD"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="answerInstructionLabel" destination="Oq5-7e-2zg" id="NRt-bn-FfJ"/>
+                        <outlet property="answerTF" destination="azX-vZ-zOq" id="Igv-lG-ve4"/>
+                        <outlet property="boolTableView" destination="2Ij-tc-qjL" id="tc3-Lv-6Br"/>
+                        <outlet property="checkImageView" destination="OxV-LB-LHf" id="zuz-04-5BA"/>
+                        <outlet property="collectionViewHeightConstraint" destination="QXp-ud-nc8" id="yio-mY-ake"/>
+                        <outlet property="customSubmittedView" destination="RwF-qQ-duz" id="k7T-3b-IVT"/>
+                        <outlet property="dragView" destination="bfu-V6-1cR" id="1tV-lC-ObI"/>
+                        <outlet property="mcqTableView" destination="bg3-PZ-n9V" id="J7R-EX-016"/>
+                        <outlet property="mcqView" destination="5H0-Ej-ump" id="LHw-aZ-v3c"/>
+                        <outlet property="navigationBar" destination="vMW-yC-FYt" id="WxP-RP-Swy"/>
+                        <outlet property="option1TableView" destination="UIj-1n-7au" id="b5u-cT-QmJ"/>
+                        <outlet property="option2TableView" destination="P4u-em-D73" id="JEV-xS-AV0"/>
+                        <outlet property="questionCustomView" destination="7jS-Sw-QnU" id="R7D-R1-j7O"/>
+                        <outlet property="questionLabel" destination="b7p-qx-7Qb" id="hDs-2b-jSC"/>
+                        <outlet property="questionNumberCollectionView" destination="BJ8-vO-wNO" id="Hfh-X9-xWM"/>
+                        <outlet property="questionNumberLabel" destination="6PK-wt-TD2" id="8E0-hk-9Sa"/>
+                        <outlet property="questionNumberView" destination="JeF-Z1-LZT" id="LFH-KZ-75G"/>
+                        <outlet property="questionNumbersButton" destination="muf-s0-kJm" id="Y8U-kH-O8h"/>
+                        <outlet property="questionTypeLabel" destination="0aV-3h-R9e" id="xrm-7Y-9Kg"/>
+                        <outlet property="quizSubmittedView" destination="BA4-V2-98G" id="l3t-rU-7Dw"/>
+                        <outlet property="quizView" destination="yih-j8-uvi" id="D1y-G6-QHc"/>
+                        <outlet property="timerLabel" destination="1tz-JB-2RQ" id="HSM-V5-1Nx"/>
+                        <outlet property="trueFalseView" destination="7Eq-o5-ad4" id="3r2-ib-2J0"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="HUy-YW-u63" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3957" y="2283"/>
+        </scene>
+        <!--Offline Assessment View Controller-->
+        <scene sceneID="cZR-ki-0xf">
+            <objects>
+                <viewController storyboardIdentifier="OfflineAssessmentViewController" id="I9e-39-7Hh" customClass="OfflineAssessmentViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="PF7-um-3EZ">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RaZ-KQ-URm">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title=" Assessment Upload" id="S1w-C9-lVF">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="xwR-MV-qMW">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="I9e-39-7Hh" id="fJ0-Si-G5b"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xWG-1P-pWi">
+                                <rect key="frame" x="67" y="104" width="280" height="240"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Download Question Paper" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5ft-zU-hlo">
+                                        <rect key="frame" x="20" y="155" width="240" height="60"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="20"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icloud.and.arrow.down.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="6wk-u2-AMW">
+                                        <rect key="frame" x="80" y="25.666666666666671" width="120" height="120.33333333333333"/>
+                                        <color key="tintColor" name="AccentColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="120" id="HTn-dB-fxP"/>
+                                            <constraint firstAttribute="width" constant="120" id="Oc1-em-ueb"/>
+                                        </constraints>
+                                    </imageView>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstAttribute="bottom" secondItem="5ft-zU-hlo" secondAttribute="bottom" constant="25" id="7Zf-aR-FWB"/>
+                                    <constraint firstItem="5ft-zU-hlo" firstAttribute="leading" secondItem="xWG-1P-pWi" secondAttribute="leading" constant="20" symbolic="YES" id="8Rw-Pl-Jy5"/>
+                                    <constraint firstItem="6wk-u2-AMW" firstAttribute="top" secondItem="xWG-1P-pWi" secondAttribute="top" constant="25" id="FMg-K7-Wy7"/>
+                                    <constraint firstAttribute="width" constant="280" id="HEt-PZ-z8D"/>
+                                    <constraint firstAttribute="height" constant="240" id="IQr-KG-ZKM"/>
+                                    <constraint firstAttribute="trailing" secondItem="5ft-zU-hlo" secondAttribute="trailing" constant="20" symbolic="YES" id="ObI-z5-fcS"/>
+                                    <constraint firstItem="5ft-zU-hlo" firstAttribute="top" secondItem="6wk-u2-AMW" secondAttribute="bottom" constant="10" id="S2B-Dz-8Vf"/>
+                                    <constraint firstItem="6wk-u2-AMW" firstAttribute="centerX" secondItem="xWG-1P-pWi" secondAttribute="centerX" id="gbI-fT-O1z"/>
+                                </constraints>
+                            </view>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6cf-te-O2e">
+                                <rect key="frame" x="67" y="456" width="280" height="240"/>
+                                <subviews>
+                                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icloud.and.arrow.up.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="quq-Ho-dUx">
+                                        <rect key="frame" x="80" y="30.666666666666664" width="120" height="119.66666666666669"/>
+                                        <color key="tintColor" name="AccentColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="120" id="Lrb-XF-HFU"/>
+                                            <constraint firstAttribute="width" constant="120" id="YSB-jk-Wvr"/>
+                                        </constraints>
+                                    </imageView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Upload Answer" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EVR-Bg-dO7">
+                                        <rect key="frame" x="20" y="160" width="240" height="55"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="20"/>
+                                        <color key="textColor" name="AccentColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="quq-Ho-dUx" firstAttribute="centerX" secondItem="6cf-te-O2e" secondAttribute="centerX" id="5x7-fE-W5L"/>
+                                    <constraint firstAttribute="bottom" secondItem="EVR-Bg-dO7" secondAttribute="bottom" constant="25" id="9il-wE-AEs"/>
+                                    <constraint firstAttribute="width" constant="280" id="LFM-wX-HqH"/>
+                                    <constraint firstAttribute="trailing" secondItem="EVR-Bg-dO7" secondAttribute="trailing" constant="20" symbolic="YES" id="MJO-xt-ld7"/>
+                                    <constraint firstItem="EVR-Bg-dO7" firstAttribute="leading" secondItem="6cf-te-O2e" secondAttribute="leading" constant="20" symbolic="YES" id="OKq-Ih-hAH"/>
+                                    <constraint firstAttribute="height" constant="240" id="VtU-8S-31e"/>
+                                    <constraint firstItem="quq-Ho-dUx" firstAttribute="top" secondItem="6cf-te-O2e" secondAttribute="top" constant="30" id="WSk-Cf-lWp"/>
+                                    <constraint firstItem="EVR-Bg-dO7" firstAttribute="top" secondItem="quq-Ho-dUx" secondAttribute="bottom" constant="10" id="rO4-Oz-3QP"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="vHe-p8-qdC"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="vHe-p8-qdC" firstAttribute="trailing" secondItem="RaZ-KQ-URm" secondAttribute="trailing" id="82g-Rj-51d"/>
+                            <constraint firstItem="xWG-1P-pWi" firstAttribute="centerX" secondItem="PF7-um-3EZ" secondAttribute="centerX" id="9yG-Yz-VqJ"/>
+                            <constraint firstItem="6cf-te-O2e" firstAttribute="centerX" secondItem="PF7-um-3EZ" secondAttribute="centerX" id="QHl-XF-neg"/>
+                            <constraint firstItem="vHe-p8-qdC" firstAttribute="bottom" secondItem="6cf-te-O2e" secondAttribute="bottom" constant="40" id="XKX-Y4-ivR"/>
+                            <constraint firstItem="RaZ-KQ-URm" firstAttribute="leading" secondItem="PF7-um-3EZ" secondAttribute="leading" id="nbF-cK-UIv"/>
+                            <constraint firstItem="RaZ-KQ-URm" firstAttribute="top" secondItem="vHe-p8-qdC" secondAttribute="top" id="qML-Ug-VLF"/>
+                            <constraint firstItem="6cf-te-O2e" firstAttribute="top" secondItem="xWG-1P-pWi" secondAttribute="bottom" priority="250" constant="132" id="tIG-3N-qmH"/>
+                            <constraint firstItem="xWG-1P-pWi" firstAttribute="top" secondItem="RaZ-KQ-URm" secondAttribute="bottom" constant="40" id="yPi-1E-Qtt"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="downloadImageView" destination="6wk-u2-AMW" id="NUv-CC-aF0"/>
+                        <outlet property="downloadLabel" destination="5ft-zU-hlo" id="Nyh-Hm-3f8"/>
+                        <outlet property="downloadView" destination="xWG-1P-pWi" id="u6z-WV-dDP"/>
+                        <outlet property="uploadImageView" destination="quq-Ho-dUx" id="knO-wg-cpW"/>
+                        <outlet property="uploadLabel" destination="EVR-Bg-dO7" id="KOU-q9-Zan"/>
+                        <outlet property="uploadView" destination="6cf-te-O2e" id="FBD-4A-lUa"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="qGg-Hu-SzF" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="4728" y="2283"/>
+        </scene>
+        <!--Assessment Beneficiary View Controller-->
+        <scene sceneID="Zvc-Sa-HMG">
+            <objects>
+                <viewController storyboardIdentifier="AssessmentBeneficiaryViewController" id="Pze-hb-fV2" customClass="AssessmentBeneficiaryViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ZP1-j8-pxj">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K6B-On-SsD">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Final Exam" id="c3K-YX-tri">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="4GX-7z-xO2">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="Pze-hb-fV2" id="7bs-ap-J5O"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="4w6-1r-YcE">
+                                <rect key="frame" x="20" y="84" width="374" height="632"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="AssessmentListTableViewCell" rowHeight="170" id="LPX-KB-dp0" customClass="AssessmentListTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="374" height="170"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="LPX-KB-dp0" id="r2E-GU-rhu">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="170"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iiO-hV-h0F">
+                                                    <rect key="frame" x="0.0" y="5" width="374" height="160"/>
+                                                    <subviews>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="session_background" translatesAutoresizingMaskIntoConstraints="NO" id="gKa-If-3aI">
+                                                            <rect key="frame" x="0.0" y="0.0" width="374" height="70"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="70" id="euX-cn-ECd"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b3E-aO-VnX">
+                                                            <rect key="frame" x="10" y="9.9999999999999982" width="8.3333333333333357" height="20.333333333333329"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                            <color key="textColor" name="AccentColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="3Sd-85-d5P">
+                                                            <rect key="frame" x="294" y="9.9999999999999982" width="65" height="20.333333333333329"/>
+                                                            <subviews>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Online" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="voL-Im-K2h">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="40.333333333333336" height="20.333333333333332"/>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="13"/>
+                                                                    <color key="textColor" name="AccentColor"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="3jd-eF-0Rf">
+                                                                    <rect key="frame" x="45.333333333333314" y="0.99999999999999822" width="19.666666666666671" height="19"/>
+                                                                    <color key="tintColor" red="0.38431372549999998" green="0.64705882349999999" blue="0.26274509800000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                </imageView>
+                                                            </subviews>
+                                                        </stackView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1 Jan" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nSV-Cc-apf">
+                                                            <rect key="frame" x="0.0" y="61" width="34" height="20"/>
+                                                            <color key="backgroundColor" red="0.90980392160000001" green="0.29803921570000003" blue="0.2470588235" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" priority="250" constant="60" id="OyW-oR-OPg"/>
+                                                                <constraint firstAttribute="height" constant="20" id="RF2-j4-9H0"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="14"/>
+                                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <stackView hidden="YES" opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="L2m-CB-1Su">
+                                                            <rect key="frame" x="210.66666666666663" y="80" width="148.33333333333337" height="30"/>
+                                                            <subviews>
+                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="clock" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="cBD-On-tlR">
+                                                                    <rect key="frame" x="0.0" y="0.99999999999999822" width="19.666666666666668" height="28.666666666666664"/>
+                                                                    <color key="tintColor" systemColor="labelColor"/>
+                                                                </imageView>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12:00 PM to 01:00 PM" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gad-6e-ctB">
+                                                                    <rect key="frame" x="24.666666666666693" y="0.0" width="123.66666666666669" height="30"/>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-MediumItalic" family="Avenir Next" pointSize="12"/>
+                                                                    <color key="textColor" name="AccentColor"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                            </subviews>
+                                                        </stackView>
+                                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DO7-Yr-b4C">
+                                                            <rect key="frame" x="259" y="115" width="100" height="30"/>
+                                                            <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="width" constant="100" id="cQN-7i-RXR"/>
+                                                                <constraint firstAttribute="height" constant="30" id="upd-Nx-9lH"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                            <state key="normal" title="Submitted">
+                                                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            </state>
+                                                        </button>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Assessment Name" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fPs-lC-WTH">
+                                                            <rect key="frame" x="10" y="94" width="241" height="51"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                            <color key="textColor" name="AccentColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="trailing" secondItem="L2m-CB-1Su" secondAttribute="trailing" constant="15" id="0xM-pV-Yiw"/>
+                                                        <constraint firstItem="DO7-Yr-b4C" firstAttribute="top" secondItem="L2m-CB-1Su" secondAttribute="bottom" constant="5" id="3cZ-Ma-aa1"/>
+                                                        <constraint firstItem="gKa-If-3aI" firstAttribute="leading" secondItem="iiO-hV-h0F" secondAttribute="leading" id="3hN-h9-DcH"/>
+                                                        <constraint firstItem="3Sd-85-d5P" firstAttribute="top" secondItem="iiO-hV-h0F" secondAttribute="top" constant="10" id="4bB-fM-Sm5"/>
+                                                        <constraint firstItem="b3E-aO-VnX" firstAttribute="top" secondItem="iiO-hV-h0F" secondAttribute="top" constant="10" id="5fH-5E-beE"/>
+                                                        <constraint firstItem="nSV-Cc-apf" firstAttribute="top" secondItem="b3E-aO-VnX" secondAttribute="bottom" constant="30.670000000000002" id="Eb2-pJ-UIZ"/>
+                                                        <constraint firstAttribute="trailing" secondItem="gKa-If-3aI" secondAttribute="trailing" id="G9L-G4-2eB"/>
+                                                        <constraint firstItem="fPs-lC-WTH" firstAttribute="top" secondItem="nSV-Cc-apf" secondAttribute="bottom" constant="13" id="KLj-SC-tUy"/>
+                                                        <constraint firstItem="DO7-Yr-b4C" firstAttribute="leading" secondItem="fPs-lC-WTH" secondAttribute="trailing" constant="8" symbolic="YES" id="Nde-eW-39n"/>
+                                                        <constraint firstItem="b3E-aO-VnX" firstAttribute="leading" secondItem="iiO-hV-h0F" secondAttribute="leading" constant="10" id="RL8-XM-Mja"/>
+                                                        <constraint firstItem="gKa-If-3aI" firstAttribute="top" secondItem="iiO-hV-h0F" secondAttribute="top" id="RnH-IT-bgp"/>
+                                                        <constraint firstAttribute="bottom" secondItem="fPs-lC-WTH" secondAttribute="bottom" constant="15" id="SK8-gy-4nY"/>
+                                                        <constraint firstAttribute="trailing" secondItem="DO7-Yr-b4C" secondAttribute="trailing" constant="15" id="baf-ac-vev"/>
+                                                        <constraint firstItem="L2m-CB-1Su" firstAttribute="top" secondItem="gKa-If-3aI" secondAttribute="bottom" constant="10" id="brA-3H-M58"/>
+                                                        <constraint firstItem="nSV-Cc-apf" firstAttribute="leading" secondItem="iiO-hV-h0F" secondAttribute="leading" id="fCc-Xj-yyh"/>
+                                                        <constraint firstItem="fPs-lC-WTH" firstAttribute="leading" secondItem="iiO-hV-h0F" secondAttribute="leading" constant="10" id="nQu-yz-Bc7"/>
+                                                        <constraint firstAttribute="trailing" secondItem="3Sd-85-d5P" secondAttribute="trailing" constant="15" id="v33-Ij-ed6"/>
+                                                        <constraint firstAttribute="bottom" secondItem="DO7-Yr-b4C" secondAttribute="bottom" constant="15" id="vPQ-Tn-cI2"/>
+                                                        <constraint firstItem="b3E-aO-VnX" firstAttribute="centerY" secondItem="3Sd-85-d5P" secondAttribute="centerY" id="wJe-K6-Wtn"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstAttribute="bottom" secondItem="iiO-hV-h0F" secondAttribute="bottom" constant="5" id="HTR-Pa-KUQ"/>
+                                                <constraint firstAttribute="trailing" secondItem="iiO-hV-h0F" secondAttribute="trailing" id="ajb-vK-4WL"/>
+                                                <constraint firstItem="iiO-hV-h0F" firstAttribute="top" secondItem="r2E-GU-rhu" secondAttribute="top" constant="5" id="yZt-Zy-n8v"/>
+                                                <constraint firstItem="iiO-hV-h0F" firstAttribute="leading" secondItem="r2E-GU-rhu" secondAttribute="leading" id="zoC-K5-Xnh"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="activeStatusImageView" destination="3jd-eF-0Rf" id="xNF-Jl-YGQ"/>
+                                            <outlet property="activeStatusLabel" destination="voL-Im-K2h" id="GCh-lL-N9Q"/>
+                                            <outlet property="assessmentNameLabel" destination="fPs-lC-WTH" id="uvd-7j-2AN"/>
+                                            <outlet property="backgroundImageView" destination="gKa-If-3aI" id="DFb-mJ-iey"/>
+                                            <outlet property="customView" destination="iiO-hV-h0F" id="LDy-Ym-2dQ"/>
+                                            <outlet property="dateLabel" destination="nSV-Cc-apf" id="UQf-QM-4LW"/>
+                                            <outlet property="serialNoLabel" destination="b3E-aO-VnX" id="bJi-5p-DcG"/>
+                                            <outlet property="startButton" destination="DO7-Yr-b4C" id="dOh-55-Rfp"/>
+                                            <outlet property="timeLabel" destination="gad-6e-ctB" id="9CY-S5-d6A"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="0Xh-EM-SMr"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="0Xh-EM-SMr" firstAttribute="bottom" secondItem="4w6-1r-YcE" secondAttribute="bottom" constant="20" id="GOq-r3-eQ4"/>
+                            <constraint firstItem="K6B-On-SsD" firstAttribute="top" secondItem="0Xh-EM-SMr" secondAttribute="top" id="GaQ-P4-q3V"/>
+                            <constraint firstItem="K6B-On-SsD" firstAttribute="trailing" secondItem="0Xh-EM-SMr" secondAttribute="trailing" id="NLM-3B-atv"/>
+                            <constraint firstItem="0Xh-EM-SMr" firstAttribute="trailing" secondItem="4w6-1r-YcE" secondAttribute="trailing" constant="20" id="mbZ-6H-Is5"/>
+                            <constraint firstItem="4w6-1r-YcE" firstAttribute="top" secondItem="K6B-On-SsD" secondAttribute="bottom" constant="20" id="smL-6p-ZBQ"/>
+                            <constraint firstItem="4w6-1r-YcE" firstAttribute="leading" secondItem="0Xh-EM-SMr" secondAttribute="leading" constant="20" id="uCI-6F-UBS"/>
+                            <constraint firstItem="K6B-On-SsD" firstAttribute="leading" secondItem="0Xh-EM-SMr" secondAttribute="leading" id="yp0-1Y-nQE"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="assessmentListTableView" destination="4w6-1r-YcE" id="1Ac-EV-I1b"/>
+                        <outlet property="navigationBar" destination="K6B-On-SsD" id="Blo-xK-vdU"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="bfa-GB-omZ" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3958" y="836"/>
+        </scene>
+        <!--Pdf Reader View Controller-->
+        <scene sceneID="7Ue-4X-prw">
+            <objects>
+                <viewController storyboardIdentifier="PdfReaderViewController" id="FN5-PA-Xh2" customClass="PdfReaderViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Wy5-JA-uZi">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CeU-7I-tmk">
+                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <wkWebViewConfiguration key="configuration">
+                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                    <wkPreferences key="preferences"/>
+                                </wkWebViewConfiguration>
+                            </wkWebView>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NsR-oP-H35">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Topic Name" id="BpO-al-zgL">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="JuC-Q5-ydJ">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="FN5-PA-Xh2" id="sXH-53-14W"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="GGY-Ru-q2v"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="NsR-oP-H35" firstAttribute="leading" secondItem="GGY-Ru-q2v" secondAttribute="leading" id="AzA-V5-sYG"/>
+                            <constraint firstItem="CeU-7I-tmk" firstAttribute="top" secondItem="NsR-oP-H35" secondAttribute="bottom" id="Dbk-f0-Gcc"/>
+                            <constraint firstItem="NsR-oP-H35" firstAttribute="top" secondItem="GGY-Ru-q2v" secondAttribute="top" id="OhO-jT-FYJ"/>
+                            <constraint firstItem="GGY-Ru-q2v" firstAttribute="bottom" secondItem="CeU-7I-tmk" secondAttribute="bottom" id="TU8-RV-dHp"/>
+                            <constraint firstItem="GGY-Ru-q2v" firstAttribute="trailing" secondItem="CeU-7I-tmk" secondAttribute="trailing" id="d7V-tC-em7"/>
+                            <constraint firstItem="CeU-7I-tmk" firstAttribute="leading" secondItem="GGY-Ru-q2v" secondAttribute="leading" id="hKc-hW-QVp"/>
+                            <constraint firstItem="NsR-oP-H35" firstAttribute="trailing" secondItem="GGY-Ru-q2v" secondAttribute="trailing" id="kqh-Ej-sU5"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="navigationBar" destination="NsR-oP-H35" id="DYF-zT-DFY"/>
+                        <outlet property="webView" destination="CeU-7I-tmk" id="d0b-sF-szb"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="MWN-p5-ccv" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2425" y="3011"/>
+        </scene>
+        <!--View Answers View Controller-->
+        <scene sceneID="hTO-kz-IsF">
+            <objects>
+                <viewController storyboardIdentifier="ViewAnswersViewController" id="rqj-DP-qqc" customClass="ViewAnswersViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="P5a-vw-8fC">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MFO-yu-6LS">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="All Answers View" id="wfA-QB-pgz"/>
+                                </items>
+                            </navigationBar>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="lar-rh-aEM">
+                                <rect key="frame" x="20" y="84" width="374" height="572"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ViewAnswerQuestionTableViewCell" rowHeight="60" id="Szb-z9-f66" customClass="ViewAnswerQuestionTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="374" height="60"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Szb-z9-f66" id="rj3-76-F8w">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="60"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="790-x6-8O8">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="60"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Q. Question" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bFS-3d-RdB">
+                                                            <rect key="frame" x="5" y="5" width="364" height="50"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                            <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="bottom" secondItem="bFS-3d-RdB" secondAttribute="bottom" constant="5" id="3OK-SN-uVK"/>
+                                                        <constraint firstItem="bFS-3d-RdB" firstAttribute="leading" secondItem="790-x6-8O8" secondAttribute="leading" constant="5" id="CwU-bI-IE8"/>
+                                                        <constraint firstAttribute="trailing" secondItem="bFS-3d-RdB" secondAttribute="trailing" constant="5" id="MqD-t5-yc6"/>
+                                                        <constraint firstItem="bFS-3d-RdB" firstAttribute="top" secondItem="790-x6-8O8" secondAttribute="top" constant="5" id="W3b-wc-lsU"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstAttribute="bottom" secondItem="790-x6-8O8" secondAttribute="bottom" id="HyJ-ot-COl"/>
+                                                <constraint firstItem="790-x6-8O8" firstAttribute="top" secondItem="rj3-76-F8w" secondAttribute="top" id="JNq-sg-sf0"/>
+                                                <constraint firstItem="790-x6-8O8" firstAttribute="leading" secondItem="rj3-76-F8w" secondAttribute="leading" id="a1V-Il-XI0"/>
+                                                <constraint firstAttribute="trailing" secondItem="790-x6-8O8" secondAttribute="trailing" id="fkZ-bo-f2h"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="questionLabel" destination="bFS-3d-RdB" id="JSn-xU-Xa7"/>
+                                        </connections>
+                                    </tableViewCell>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ViewAnswerOptionsTableViewCell" rowHeight="60" id="K0z-jc-mfU" customClass="ViewAnswerOptionsTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="110" width="374" height="60"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="K0z-jc-mfU" id="XB9-TI-jC7">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="60"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2YG-fs-h7q">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="60"/>
+                                                    <subviews>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="circle.fill" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="oDL-0Y-E07">
+                                                            <rect key="frame" x="5" y="26" width="10" height="8.6666666666666714"/>
+                                                            <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="10" id="cSa-P3-IgD"/>
+                                                                <constraint firstAttribute="width" constant="10" id="fZB-ab-QUG"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Choice" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="I2J-lB-I9s">
+                                                            <rect key="frame" x="23" y="5" width="346" height="50"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                    <constraints>
+                                                        <constraint firstItem="I2J-lB-I9s" firstAttribute="leading" secondItem="oDL-0Y-E07" secondAttribute="trailing" constant="8" symbolic="YES" id="0r6-im-V4o"/>
+                                                        <constraint firstAttribute="bottom" secondItem="I2J-lB-I9s" secondAttribute="bottom" constant="5" id="2Sw-cZ-4KG"/>
+                                                        <constraint firstAttribute="trailing" secondItem="I2J-lB-I9s" secondAttribute="trailing" constant="5" id="6iJ-xu-xgZ"/>
+                                                        <constraint firstItem="oDL-0Y-E07" firstAttribute="leading" secondItem="2YG-fs-h7q" secondAttribute="leading" constant="5" id="NgB-A9-dJd"/>
+                                                        <constraint firstItem="I2J-lB-I9s" firstAttribute="top" secondItem="2YG-fs-h7q" secondAttribute="top" constant="5" id="PFq-yo-ogt"/>
+                                                        <constraint firstItem="oDL-0Y-E07" firstAttribute="centerY" secondItem="2YG-fs-h7q" secondAttribute="centerY" id="xXr-XR-FfP"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="2YG-fs-h7q" firstAttribute="leading" secondItem="XB9-TI-jC7" secondAttribute="leading" id="BWN-D2-jXE"/>
+                                                <constraint firstAttribute="trailing" secondItem="2YG-fs-h7q" secondAttribute="trailing" id="IHm-az-Wep"/>
+                                                <constraint firstItem="2YG-fs-h7q" firstAttribute="top" secondItem="XB9-TI-jC7" secondAttribute="top" id="irb-Vx-LDc"/>
+                                                <constraint firstAttribute="bottom" secondItem="2YG-fs-h7q" secondAttribute="bottom" id="jpX-WZ-s4m"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="choiceLabel" destination="I2J-lB-I9s" id="u3Y-M5-w4h"/>
+                                            <outlet property="dotImageView" destination="oDL-0Y-E07" id="VVb-It-wyt"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                                <sections/>
+                            </tableView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="K7F-eM-N0g">
+                                <rect key="frame" x="20" y="676" width="142" height="40"/>
+                                <color key="backgroundColor" name="AccentColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="k77-Q9-vxa"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="Continue">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </state>
+                                <connections>
+                                    <action selector="continueAction:" destination="rqj-DP-qqc" eventType="touchUpInside" id="wQN-2i-Z20"/>
+                                    <action selector="viewResultAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="Xc3-Js-z1T"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="3cm-IZ-a1s"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="lar-rh-aEM" firstAttribute="top" secondItem="MFO-yu-6LS" secondAttribute="bottom" constant="20" id="Nwk-bt-jUk"/>
+                            <constraint firstItem="MFO-yu-6LS" firstAttribute="leading" secondItem="P5a-vw-8fC" secondAttribute="leading" id="PRF-IC-JBc"/>
+                            <constraint firstItem="3cm-IZ-a1s" firstAttribute="bottom" secondItem="K7F-eM-N0g" secondAttribute="bottom" constant="20" id="ZZH-av-YlF"/>
+                            <constraint firstItem="3cm-IZ-a1s" firstAttribute="trailing" secondItem="lar-rh-aEM" secondAttribute="trailing" constant="20" id="Zut-A5-gvb"/>
+                            <constraint firstItem="3cm-IZ-a1s" firstAttribute="trailing" secondItem="MFO-yu-6LS" secondAttribute="trailing" id="bpc-VP-IDZ"/>
+                            <constraint firstItem="lar-rh-aEM" firstAttribute="leading" secondItem="3cm-IZ-a1s" secondAttribute="leading" constant="20" id="c4Z-yK-dRy"/>
+                            <constraint firstItem="MFO-yu-6LS" firstAttribute="top" secondItem="3cm-IZ-a1s" secondAttribute="top" id="dnu-4i-CnP"/>
+                            <constraint firstItem="K7F-eM-N0g" firstAttribute="width" secondItem="P5a-vw-8fC" secondAttribute="width" multiplier="0.342995" id="fDR-dO-SXD"/>
+                            <constraint firstItem="K7F-eM-N0g" firstAttribute="leading" secondItem="3cm-IZ-a1s" secondAttribute="leading" constant="20" id="gIW-m5-m8b"/>
+                            <constraint firstItem="K7F-eM-N0g" firstAttribute="top" secondItem="lar-rh-aEM" secondAttribute="bottom" constant="20" id="loh-7C-Vut"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="answersTableView" destination="lar-rh-aEM" id="CFF-fX-ST5"/>
+                        <outlet property="continueButton" destination="K7F-eM-N0g" id="SxS-8W-3df"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="r2H-on-jd7" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3186.9565217391305" y="3010.597826086957"/>
+        </scene>
+        <!--Video View Controller-->
+        <scene sceneID="CFT-Ul-gVX">
+            <objects>
+                <viewController storyboardIdentifier="VideoViewController" id="nff-Mu-tYA" customClass="VideoViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="LdU-Nu-T32">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="go6-PW-S6D">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Video Player" id="bQb-bc-9ln">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="88E-z7-hci">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="nff-Mu-tYA" id="7Cd-WC-KKb"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="74t-qF-pCF">
+                                <rect key="frame" x="20" y="253" width="374" height="230"/>
+                            </imageView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pW2-bs-MFI">
+                                <rect key="frame" x="115.66666666666669" y="503" width="183" height="40"/>
+                                <color key="backgroundColor" name="AccentColor"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="40" id="Np8-WJ-KS1"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="Play Video">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </state>
+                                <connections>
+                                    <action selector="playAction:" destination="nff-Mu-tYA" eventType="touchUpInside" id="zfo-oB-nit"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="iLc-gR-f66"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="pW2-bs-MFI" firstAttribute="width" secondItem="LdU-Nu-T32" secondAttribute="width" multiplier="0.442029" id="5O1-nn-gmm"/>
+                            <constraint firstItem="go6-PW-S6D" firstAttribute="top" secondItem="iLc-gR-f66" secondAttribute="top" id="GJq-Ko-vfj"/>
+                            <constraint firstItem="74t-qF-pCF" firstAttribute="centerY" secondItem="LdU-Nu-T32" secondAttribute="centerY" id="HsI-fc-gvO"/>
+                            <constraint firstItem="74t-qF-pCF" firstAttribute="width" secondItem="LdU-Nu-T32" secondAttribute="width" multiplier="0.903382" id="Mr5-EP-x4v"/>
+                            <constraint firstItem="go6-PW-S6D" firstAttribute="leading" secondItem="iLc-gR-f66" secondAttribute="leading" id="NKV-Dg-kHD"/>
+                            <constraint firstItem="pW2-bs-MFI" firstAttribute="top" secondItem="74t-qF-pCF" secondAttribute="bottom" constant="20" id="P4y-4X-UuP"/>
+                            <constraint firstAttribute="trailing" secondItem="go6-PW-S6D" secondAttribute="trailing" id="TJN-YP-6Jj"/>
+                            <constraint firstItem="74t-qF-pCF" firstAttribute="height" secondItem="LdU-Nu-T32" secondAttribute="height" multiplier="0.3125" id="dlj-HF-WpW"/>
+                            <constraint firstItem="74t-qF-pCF" firstAttribute="centerX" secondItem="LdU-Nu-T32" secondAttribute="centerX" id="wew-QE-xVf"/>
+                            <constraint firstItem="pW2-bs-MFI" firstAttribute="centerX" secondItem="LdU-Nu-T32" secondAttribute="centerX" id="xiy-Vs-m87"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="navigationBar" destination="go6-PW-S6D" id="ap2-qe-ghg"/>
+                        <outlet property="playButton" destination="pW2-bs-MFI" id="pbS-yk-TOu"/>
+                        <outlet property="thumbnailImageView" destination="74t-qF-pCF" id="fYk-4e-Prh"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Fwm-7B-Yeu" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2425" y="4496"/>
+        </scene>
+        <!--Audio View Controller-->
+        <scene sceneID="aTT-CH-YzB">
+            <objects>
+                <viewController storyboardIdentifier="AudioViewController" id="pv4-hi-9eA" customClass="AudioViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="gLf-Rb-Mxf">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YkE-Gc-f95">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Audio Player" id="PKQ-e0-nXM">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="ba0-B6-rTt">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="pv4-hi-9eA" id="0U2-0q-fbD"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="0.0" translatesAutoresizingMaskIntoConstraints="NO" id="FJl-C6-wJm">
+                                <rect key="frame" x="18" y="353" width="378" height="31"/>
+                                <color key="tintColor" name="AccentColor"/>
+                                <connections>
+                                    <action selector="progressAction:" destination="pv4-hi-9eA" eventType="valueChanged" id="g5o-EY-czy"/>
+                                </connections>
+                            </slider>
+                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="qjx-mQ-iay">
+                                <rect key="frame" x="20" y="308.33333333333331" width="374" height="24.666666666666686"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KRw-UM-ukd">
+                                        <rect key="frame" x="0.0" y="0.0" width="183" height="24.666666666666668"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                        <nil key="textColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XKO-BK-NYh">
+                                        <rect key="frame" x="191" y="0.0" width="183" height="24.666666666666668"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                        <nil key="textColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                            </stackView>
+                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="50" translatesAutoresizingMaskIntoConstraints="NO" id="SSN-Ks-Av8">
+                                <rect key="frame" x="97" y="413" width="220" height="40"/>
+                                <subviews>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Yvb-9O-yYo">
+                                        <rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="40" id="7bY-gh-rn0"/>
+                                            <constraint firstAttribute="width" constant="40" id="KfD-rL-Sra"/>
+                                        </constraints>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" image="backward-arrows-couple"/>
+                                    </button>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ghy-Ri-ci0">
+                                        <rect key="frame" x="90" y="0.0" width="40" height="40"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="40" id="9Im-qQ-5pP"/>
+                                            <constraint firstAttribute="width" constant="40" id="itb-RL-YWf"/>
+                                        </constraints>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" image="play-button-arrowhead"/>
+                                        <connections>
+                                            <action selector="playAction:" destination="pv4-hi-9eA" eventType="touchUpInside" id="leQ-zS-7ZH"/>
+                                        </connections>
+                                    </button>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f6g-Zl-z8t">
+                                        <rect key="frame" x="180" y="0.0" width="40" height="40"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="40" id="Mwk-tj-eRy"/>
+                                            <constraint firstAttribute="height" constant="40" id="eb0-cG-xHh"/>
+                                        </constraints>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" image="fast-forward"/>
+                                    </button>
+                                </subviews>
+                            </stackView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="W4Y-WD-fRz"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="FJl-C6-wJm" firstAttribute="centerY" secondItem="gLf-Rb-Mxf" secondAttribute="centerY" id="4Jj-MQ-eUP"/>
+                            <constraint firstItem="SSN-Ks-Av8" firstAttribute="top" secondItem="FJl-C6-wJm" secondAttribute="bottom" constant="30" id="6Sg-U6-WSh"/>
+                            <constraint firstItem="FJl-C6-wJm" firstAttribute="centerX" secondItem="gLf-Rb-Mxf" secondAttribute="centerX" id="LCU-0k-alz"/>
+                            <constraint firstItem="FJl-C6-wJm" firstAttribute="top" secondItem="qjx-mQ-iay" secondAttribute="bottom" constant="20" id="Ncv-Re-XVt"/>
+                            <constraint firstItem="FJl-C6-wJm" firstAttribute="leading" secondItem="W4Y-WD-fRz" secondAttribute="leading" constant="20" id="WjC-27-gDP"/>
+                            <constraint firstItem="W4Y-WD-fRz" firstAttribute="trailing" secondItem="FJl-C6-wJm" secondAttribute="trailing" constant="20" id="Ym3-ia-ic0"/>
+                            <constraint firstItem="W4Y-WD-fRz" firstAttribute="trailing" secondItem="qjx-mQ-iay" secondAttribute="trailing" constant="20" id="cSw-ur-4pZ"/>
+                            <constraint firstItem="qjx-mQ-iay" firstAttribute="leading" secondItem="W4Y-WD-fRz" secondAttribute="leading" constant="20" id="j7c-sP-IUO"/>
+                            <constraint firstItem="YkE-Gc-f95" firstAttribute="leading" secondItem="gLf-Rb-Mxf" secondAttribute="leading" id="kLn-kd-is6"/>
+                            <constraint firstItem="SSN-Ks-Av8" firstAttribute="centerX" secondItem="gLf-Rb-Mxf" secondAttribute="centerX" id="ojp-G2-swx"/>
+                            <constraint firstItem="YkE-Gc-f95" firstAttribute="top" secondItem="W4Y-WD-fRz" secondAttribute="top" id="uZ6-U8-a5Y"/>
+                            <constraint firstItem="W4Y-WD-fRz" firstAttribute="trailing" secondItem="YkE-Gc-f95" secondAttribute="trailing" id="vqp-2p-vle"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="backwardButton" destination="Yvb-9O-yYo" id="J4m-VT-Ccb"/>
+                        <outlet property="currentTimeLabel" destination="KRw-UM-ukd" id="1eB-L5-DdW"/>
+                        <outlet property="forwardButton" destination="f6g-Zl-z8t" id="tu4-rg-Ljt"/>
+                        <outlet property="navigationBar" destination="YkE-Gc-f95" id="AMd-Uf-m9A"/>
+                        <outlet property="playButton" destination="ghy-Ri-ci0" id="VMh-26-v9R"/>
+                        <outlet property="progressSlider" destination="FJl-C6-wJm" id="Osq-Mu-m0m"/>
+                        <outlet property="totalTimeLabel" destination="XKO-BK-NYh" id="juR-Cl-U1i"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="cFb-R2-Cb9" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2425" y="3748"/>
+        </scene>
+        <!--Side Menu Navigation Controller-->
+        <scene sceneID="NvB-00-6qZ">
+            <objects>
+                <navigationController storyboardIdentifier="SideMenuNavigationController" navigationBarHidden="YES" id="xiJ-Iu-0mz" customClass="SideMenuNavigationController" customModule="SideMenu" sceneMemberID="viewController">
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="SkI-M9-qzu">
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <userDefinedRuntimeAttributes>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="leftSide" value="YES"/>
+                        <userDefinedRuntimeAttribute type="boolean" keyPath="enableTapToDismissGesture" value="YES"/>
+                    </userDefinedRuntimeAttributes>
+                    <connections>
+                        <segue destination="LNl-ys-EkH" kind="relationship" relationship="rootViewController" id="Nxq-5z-e0V"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="bvk-17-w0H" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2394" y="98"/>
+        </scene>
+        <!--Side Menu View Controller-->
+        <scene sceneID="bdt-5c-Xwe">
+            <objects>
+                <viewController storyboardIdentifier="SideMenuViewController" id="LNl-ys-EkH" customClass="SideMenuViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Iga-eH-v9H">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="cWe-Q1-fNG">
+                                <rect key="frame" x="0.0" y="20" width="414" height="628"/>
+                                <color key="backgroundColor" name="AccentColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MenuHeaderTableViewCell" rowHeight="100" id="1Yo-I5-fXr" customClass="MenuHeaderTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="414" height="100"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="1Yo-I5-fXr" id="uCi-Dd-Biq">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sw1-S1-gMO">
+                                                    <rect key="frame" x="0.0" y="99" width="414" height="1"/>
+                                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="1" id="jsB-f5-yp9"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                                    <nil key="textColor"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="kbP-0K-QWZ">
+                                                    <rect key="frame" x="20" y="51.666666666666664" width="374" height="27.333333333333336"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="User Name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ext-hz-MnM">
+                                                            <rect key="frame" x="0.0" y="0.0" width="342.66666666666669" height="27.333333333333332"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="20"/>
+                                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XFh-xf-UuL">
+                                                            <rect key="frame" x="350.66666666666669" y="0.0" width="23.333333333333314" height="27.333333333333332"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="16"/>
+                                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                </stackView>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4Dn-54-b3x">
+                                                    <rect key="frame" x="10" y="10" width="26" height="26"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="26" id="5ie-bb-Vur"/>
+                                                        <constraint firstAttribute="height" constant="26" id="x3B-xe-3gi"/>
+                                                    </constraints>
+                                                    <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                    <state key="normal" image="multiply.circle.fill" catalog="system">
+                                                        <preferredSymbolConfiguration key="preferredSymbolConfiguration" scale="large"/>
+                                                    </state>
+                                                </button>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="Sw1-S1-gMO" firstAttribute="top" secondItem="kbP-0K-QWZ" secondAttribute="bottom" constant="20" id="85w-HE-ZQK"/>
+                                                <constraint firstAttribute="trailing" secondItem="kbP-0K-QWZ" secondAttribute="trailing" constant="20" symbolic="YES" id="AwH-Rb-r8R"/>
+                                                <constraint firstAttribute="bottom" secondItem="Sw1-S1-gMO" secondAttribute="bottom" id="Noc-06-JPc"/>
+                                                <constraint firstItem="Sw1-S1-gMO" firstAttribute="leading" secondItem="uCi-Dd-Biq" secondAttribute="leading" id="aKy-yE-R0T"/>
+                                                <constraint firstItem="kbP-0K-QWZ" firstAttribute="leading" secondItem="uCi-Dd-Biq" secondAttribute="leading" constant="20" symbolic="YES" id="dgc-s3-jg5"/>
+                                                <constraint firstAttribute="trailing" secondItem="Sw1-S1-gMO" secondAttribute="trailing" id="mpM-PQ-Jxs"/>
+                                                <constraint firstItem="4Dn-54-b3x" firstAttribute="leading" secondItem="uCi-Dd-Biq" secondAttribute="leading" constant="10" id="rxX-YH-sFT"/>
+                                                <constraint firstItem="4Dn-54-b3x" firstAttribute="top" secondItem="uCi-Dd-Biq" secondAttribute="top" constant="10" id="thD-77-6wz"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <connections>
+                                            <outlet property="appVersionLabel" destination="XFh-xf-UuL" id="LmX-7r-VoD"/>
+                                            <outlet property="cancelButton" destination="4Dn-54-b3x" id="SiG-Cz-ShJ"/>
+                                            <outlet property="userNameLabel" destination="ext-hz-MnM" id="Wzr-nL-2tr"/>
+                                        </connections>
+                                    </tableViewCell>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MenuTableViewCell" rowHeight="64" id="5hb-Zv-PJM" customClass="MenuTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="150" width="414" height="64"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="5hb-Zv-PJM" id="dSb-Iy-S9e">
+                                            <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PHm-di-Zli">
+                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="64"/>
+                                                    <subviews>
+                                                        <stackView opaque="NO" contentMode="scaleToFill" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="6o6-4h-Qek">
+                                                            <rect key="frame" x="20" y="20" width="374" height="24"/>
+                                                            <subviews>
+                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="pencil.and.list.clipboard" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="sef-re-gsF">
+                                                                    <rect key="frame" x="0.0" y="-1.3333333333333321" width="31.666666666666668" height="26"/>
+                                                                    <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="width" constant="30" id="Jug-Hy-mSi"/>
+                                                                        <constraint firstAttribute="height" constant="30" id="csr-bt-DI5"/>
+                                                                    </constraints>
+                                                                </imageView>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Name" textAlignment="natural" lineBreakMode="clip" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hdI-Sz-wHa">
+                                                                    <rect key="frame" x="38" y="0.0" width="336" height="24"/>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="16"/>
+                                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                            </subviews>
+                                                        </stackView>
+                                                    </subviews>
+                                                    <color key="backgroundColor" name="secondary"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="bottom" secondItem="6o6-4h-Qek" secondAttribute="bottom" constant="20" symbolic="YES" id="OeP-kP-zxm"/>
+                                                        <constraint firstItem="6o6-4h-Qek" firstAttribute="top" secondItem="PHm-di-Zli" secondAttribute="top" constant="20" symbolic="YES" id="QEw-Xz-pWp"/>
+                                                        <constraint firstAttribute="trailing" secondItem="6o6-4h-Qek" secondAttribute="trailing" constant="20" symbolic="YES" id="Wzf-JU-nNl"/>
+                                                        <constraint firstItem="6o6-4h-Qek" firstAttribute="leading" secondItem="PHm-di-Zli" secondAttribute="leading" constant="20" symbolic="YES" id="kpQ-42-2Bw"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <constraints>
+                                                <constraint firstAttribute="trailing" secondItem="PHm-di-Zli" secondAttribute="trailing" id="BKU-KS-eAp"/>
+                                                <constraint firstItem="PHm-di-Zli" firstAttribute="leading" secondItem="dSb-Iy-S9e" secondAttribute="leading" id="Ee3-gg-K3R"/>
+                                                <constraint firstAttribute="bottom" secondItem="PHm-di-Zli" secondAttribute="bottom" id="aIt-O1-yQJ"/>
+                                                <constraint firstItem="PHm-di-Zli" firstAttribute="top" secondItem="dSb-Iy-S9e" secondAttribute="top" id="qrX-iq-0GE"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <color key="backgroundColor" name="AccentColor"/>
+                                        <connections>
+                                            <outlet property="customView" destination="PHm-di-Zli" id="PW5-m2-UTv"/>
+                                            <outlet property="menuIconImageView" destination="sef-re-gsF" id="qVE-ER-QiS"/>
+                                            <outlet property="menuNameLabel" destination="hdI-Sz-wHa" id="L1J-ea-V8a"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MDY-Yd-cIi">
+                                <rect key="frame" x="20" y="656" width="374" height="50"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="50" id="ITp-az-xfz"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="20"/>
+                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                <state key="normal" title="Logout">
+                                    <color key="titleColor" name="AccentColor"/>
+                                </state>
+                                <connections>
+                                    <action selector="logoutAction:" destination="LNl-ys-EkH" eventType="touchUpInside" id="XhZ-rx-M7D"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="Wfe-vS-0GL"/>
+                        <color key="backgroundColor" name="AccentColor"/>
+                        <constraints>
+                            <constraint firstItem="cWe-Q1-fNG" firstAttribute="leading" secondItem="Wfe-vS-0GL" secondAttribute="leading" id="3Zh-yN-ShK"/>
+                            <constraint firstItem="MDY-Yd-cIi" firstAttribute="top" secondItem="cWe-Q1-fNG" secondAttribute="bottom" constant="8" symbolic="YES" id="An7-X7-y98"/>
+                            <constraint firstItem="Wfe-vS-0GL" firstAttribute="trailing" secondItem="MDY-Yd-cIi" secondAttribute="trailing" constant="20" id="M7M-As-JCQ"/>
+                            <constraint firstItem="cWe-Q1-fNG" firstAttribute="top" secondItem="Wfe-vS-0GL" secondAttribute="top" id="Rsl-KP-dFi"/>
+                            <constraint firstItem="cWe-Q1-fNG" firstAttribute="centerX" secondItem="Iga-eH-v9H" secondAttribute="centerX" id="TRz-gg-aHK"/>
+                            <constraint firstItem="Wfe-vS-0GL" firstAttribute="bottom" secondItem="MDY-Yd-cIi" secondAttribute="bottom" constant="30" id="XZP-9l-7Un"/>
+                            <constraint firstItem="MDY-Yd-cIi" firstAttribute="leading" secondItem="Wfe-vS-0GL" secondAttribute="leading" constant="20" id="uJd-X3-mHW"/>
+                        </constraints>
+                    </view>
+                    <navigationItem key="navigationItem" id="8OU-Kb-n72"/>
+                    <connections>
+                        <outlet property="logoutButton" destination="MDY-Yd-cIi" id="IRH-oG-but"/>
+                        <outlet property="menuTableView" destination="cWe-Q1-fNG" id="wi1-kM-CQs"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="QPE-os-yco" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3186.9565217391305" y="96.195652173913047"/>
+        </scene>
+        <!--Notification View Controller-->
+        <scene sceneID="j8Y-4F-Hat">
+            <objects>
+                <viewController storyboardIdentifier="NotificationViewController" id="g4j-Js-w0C" customClass="NotificationViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="HKp-UW-myA">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" verticalHuggingPriority="252" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7VI-e3-lLy">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Notification" id="y6i-AR-olH">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.left" catalog="system" id="2Bv-sO-T1y">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="MOP-ZK-IIY" id="mCw-G0-s6B"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="SSP-UE-vTH">
+                                <rect key="frame" x="20" y="84" width="374" height="632"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="NotificationTableViewCell" rowHeight="80" id="cNu-sS-BA8" customClass="NotificationTableViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="50" width="374" height="80"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="cNu-sS-BA8" id="M8i-ck-R6V">
+                                            <rect key="frame" x="0.0" y="0.0" width="374" height="80"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wYk-qH-ti6">
+                                                    <rect key="frame" x="0.0" y="0.0" width="374" height="70"/>
+                                                    <subviews>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z2F-a0-aUD">
+                                                            <rect key="frame" x="20" y="20" width="334" height="30"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                            <color key="textColor" red="0.18431372549019609" green="0.35686274509803922" blue="0.28627450980392155" alpha="1" colorSpace="calibratedRGB"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <color key="backgroundColor" red="0.81960784313725488" green="0.90196078431372551" blue="0.8666666666666667" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <constraints>
+                                                        <constraint firstItem="Z2F-a0-aUD" firstAttribute="top" secondItem="wYk-qH-ti6" secondAttribute="top" constant="20" symbolic="YES" id="Cbm-Zr-F5c"/>
+                                                        <constraint firstAttribute="bottom" secondItem="Z2F-a0-aUD" secondAttribute="bottom" constant="20" symbolic="YES" id="CdX-KX-pY0"/>
+                                                        <constraint firstItem="Z2F-a0-aUD" firstAttribute="leading" secondItem="wYk-qH-ti6" secondAttribute="leading" constant="20" symbolic="YES" id="R0a-pp-aFf"/>
+                                                        <constraint firstAttribute="trailing" secondItem="Z2F-a0-aUD" secondAttribute="trailing" constant="20" symbolic="YES" id="n5x-bJ-vjM"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="wYk-qH-ti6" firstAttribute="top" secondItem="M8i-ck-R6V" secondAttribute="top" id="OIN-xj-uZp"/>
+                                                <constraint firstItem="wYk-qH-ti6" firstAttribute="leading" secondItem="M8i-ck-R6V" secondAttribute="leading" id="i5a-Zr-mpO"/>
+                                                <constraint firstAttribute="bottom" secondItem="wYk-qH-ti6" secondAttribute="bottom" constant="10" id="l6K-fu-kNv"/>
+                                                <constraint firstAttribute="trailing" secondItem="wYk-qH-ti6" secondAttribute="trailing" id="v6X-nU-Enx"/>
+                                            </constraints>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="customView" destination="wYk-qH-ti6" id="Mzk-vb-lBh"/>
+                                            <outlet property="messageLabel" destination="Z2F-a0-aUD" id="yOa-ne-QUk"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                            </tableView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="lYb-1j-IoQ"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="lYb-1j-IoQ" firstAttribute="bottom" secondItem="SSP-UE-vTH" secondAttribute="bottom" constant="20" id="1yM-x5-r29"/>
+                            <constraint firstItem="SSP-UE-vTH" firstAttribute="leading" secondItem="lYb-1j-IoQ" secondAttribute="leading" constant="20" id="9IZ-ui-eSw"/>
+                            <constraint firstItem="7VI-e3-lLy" firstAttribute="top" secondItem="lYb-1j-IoQ" secondAttribute="top" id="UOX-ar-ypz"/>
+                            <constraint firstItem="SSP-UE-vTH" firstAttribute="top" secondItem="7VI-e3-lLy" secondAttribute="bottom" constant="20" id="fqh-vT-LYf"/>
+                            <constraint firstItem="lYb-1j-IoQ" firstAttribute="trailing" secondItem="7VI-e3-lLy" secondAttribute="trailing" id="lDR-zG-EXa"/>
+                            <constraint firstItem="7VI-e3-lLy" firstAttribute="leading" secondItem="HKp-UW-myA" secondAttribute="leading" id="t9S-5o-mKK"/>
+                            <constraint firstItem="lYb-1j-IoQ" firstAttribute="trailing" secondItem="SSP-UE-vTH" secondAttribute="trailing" constant="20" id="ylE-tj-l5N"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="navigationBar" destination="7VI-e3-lLy" id="XOv-EA-qaC"/>
+                        <outlet property="notificationTableView" destination="SSP-UE-vTH" id="mMw-FN-EV2"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="eV0-0v-Fhi" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3956.521739130435" y="97.826086956521749"/>
+        </scene>
+        <!--Scrom View Controller-->
+        <scene sceneID="dbb-ra-tIm">
+            <objects>
+                <viewController storyboardIdentifier="ScromViewController" id="JCo-ge-jY8" customClass="ScromViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="3Dx-W4-o60">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cpB-Vk-Vpv">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Scrom" id="4mt-42-bav">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="qXQ-9V-JmL">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="JCo-ge-jY8" id="RIQ-wv-Bnl"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="W2A-hZ-Iq3">
+                                <rect key="frame" x="10" y="74" width="394" height="652"/>
+                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <wkWebViewConfiguration key="configuration">
+                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                    <wkPreferences key="preferences"/>
+                                </wkWebViewConfiguration>
+                            </wkWebView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="Avd-Yz-zcx"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="cpB-Vk-Vpv" firstAttribute="trailing" secondItem="Avd-Yz-zcx" secondAttribute="trailing" id="4lj-pN-Ycc"/>
+                            <constraint firstItem="cpB-Vk-Vpv" firstAttribute="leading" secondItem="Avd-Yz-zcx" secondAttribute="leading" id="6Z8-bY-jdu"/>
+                            <constraint firstItem="W2A-hZ-Iq3" firstAttribute="leading" secondItem="Avd-Yz-zcx" secondAttribute="leading" constant="10" id="AG4-9l-rMZ"/>
+                            <constraint firstItem="W2A-hZ-Iq3" firstAttribute="top" secondItem="cpB-Vk-Vpv" secondAttribute="bottom" constant="10" id="OYq-Jy-Gr9"/>
+                            <constraint firstItem="Avd-Yz-zcx" firstAttribute="trailing" secondItem="W2A-hZ-Iq3" secondAttribute="trailing" constant="10" id="ZVZ-ay-3TE"/>
+                            <constraint firstItem="cpB-Vk-Vpv" firstAttribute="top" secondItem="Avd-Yz-zcx" secondAttribute="top" id="qju-HA-aLY"/>
+                            <constraint firstItem="Avd-Yz-zcx" firstAttribute="bottom" secondItem="W2A-hZ-Iq3" secondAttribute="bottom" constant="10" id="tP2-1q-yZi"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="htmlWebView" destination="W2A-hZ-Iq3" id="pbf-k0-ucL"/>
+                        <outlet property="navigationBar" destination="cpB-Vk-Vpv" id="tYd-SJ-afy"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="leB-qg-jWF" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2425" y="5255"/>
+        </scene>
+        <!--Calendar View Controller-->
+        <scene sceneID="WXq-3M-kVM">
+            <objects>
+                <viewController storyboardIdentifier="CalendarViewController" id="66f-kT-52X" customClass="CalendarViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="kI8-dJ-wHA">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4mk-Ni-OUI">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Calendar" id="cdB-YP-oHA">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="PZT-jD-zSF">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="66f-kT-52X" id="bUL-bU-jMO"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gnk-Nt-ElP" customClass="FSCalendar">
+                                <rect key="frame" x="20" y="84" width="374" height="632"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <color key="tintColor" name="AccentColor"/>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="color" keyPath="titleDefaultColor">
+                                        <color key="value" name="AccentColor"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="boolean" keyPath="allowsSelection" value="YES"/>
+                                    <userDefinedRuntimeAttribute type="boolean" keyPath="allowsMultipleSelection" value="YES"/>
+                                    <userDefinedRuntimeAttribute type="color" keyPath="headerTitleColor">
+                                        <color key="value" name="AccentColor"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="boolean" keyPath="pagingEnabled" value="YES"/>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="titleTextSize">
+                                        <real key="value" value="18"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="color" keyPath="weekdayTextColor">
+                                        <color key="value" name="AccentColor"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="weekdayTextSize">
+                                        <real key="value" value="20"/>
+                                    </userDefinedRuntimeAttribute>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="headerTitleTextSize">
+                                        <real key="value" value="22"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="sUp-cb-j1G"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="sUp-cb-j1G" firstAttribute="bottom" secondItem="gnk-Nt-ElP" secondAttribute="bottom" constant="20" id="9is-Ga-kEN"/>
+                            <constraint firstItem="4mk-Ni-OUI" firstAttribute="top" secondItem="sUp-cb-j1G" secondAttribute="top" id="Ud8-7r-LDM"/>
+                            <constraint firstItem="4mk-Ni-OUI" firstAttribute="leading" secondItem="sUp-cb-j1G" secondAttribute="leading" id="htG-GD-b5O"/>
+                            <constraint firstItem="gnk-Nt-ElP" firstAttribute="leading" secondItem="sUp-cb-j1G" secondAttribute="leading" constant="20" id="mqn-3P-7Ea"/>
+                            <constraint firstItem="gnk-Nt-ElP" firstAttribute="top" secondItem="4mk-Ni-OUI" secondAttribute="bottom" constant="20" id="njp-A9-Zdt"/>
+                            <constraint firstItem="sUp-cb-j1G" firstAttribute="trailing" secondItem="gnk-Nt-ElP" secondAttribute="trailing" constant="20" id="oIh-7C-nQS"/>
+                            <constraint firstAttribute="trailing" secondItem="4mk-Ni-OUI" secondAttribute="trailing" id="qCN-Zf-tzz"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="calendar" destination="gnk-Nt-ElP" id="dK0-9P-Tt0"/>
+                        <outlet property="navigationBar" destination="4mk-Ni-OUI" id="hku-ow-kXT"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Cmy-kI-G6S" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="876.81159420289862" y="835.59782608695662"/>
+        </scene>
+        <!--New Assessment View Controller-->
+        <scene sceneID="C5N-j7-nP7">
+            <objects>
+                <viewController storyboardIdentifier="NewAssessmentViewController" id="h7s-RD-CTj" customClass="NewAssessmentViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="vsa-3M-Oz7">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="itf-Wo-UGR">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title=" Assessment" id="dNs-c0-D8c">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="C05-xV-dIM">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="h7s-RD-CTj" id="bAE-SA-Z8D"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="mtV-wr-oQ6">
+                                <rect key="frame" x="10" y="74" width="394" height="652"/>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="AJL-yq-ciP">
+                                    <size key="itemSize" width="192" height="270"/>
+                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                </collectionViewFlowLayout>
+                                <cells>
+                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="NewAssessmentCollectionViewCell" id="akT-HY-zJL" customClass="NewAssessmentCollectionViewCell" customModule="LMS" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="0.0" width="192" height="270"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="wpL-yO-VAF">
+                                            <rect key="frame" x="0.0" y="0.0" width="192" height="270"/>
+                                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                            <subviews>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dW7-6K-LJL">
+                                                    <rect key="frame" x="0.0" y="0.0" width="192" height="270"/>
+                                                    <subviews>
+                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="newAssessment-image" translatesAutoresizingMaskIntoConstraints="NO" id="nV4-gQ-Pbg" customClass="RoundedTopCornersImageView" customModule="LMS" customModuleProvider="target">
+                                                            <rect key="frame" x="0.0" y="0.0" width="192" height="110"/>
+                                                            <color key="backgroundColor" systemColor="systemGray6Color"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="110" id="KKq-Ra-VNT"/>
+                                                            </constraints>
+                                                        </imageView>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Test Name" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1bR-2W-xZV">
+                                                            <rect key="frame" x="10" y="120.00000000000001" width="172" height="20.666666666666671"/>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="15"/>
+                                                            <color key="textColor" name="AccentColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jRb-Jp-kEi">
+                                                            <rect key="frame" x="162" y="0.0" width="30" height="40"/>
+                                                            <subviews>
+                                                                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_slno_bannar" translatesAutoresizingMaskIntoConstraints="NO" id="ATg-jg-85K">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="30" height="40"/>
+                                                                </imageView>
+                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uf7-JN-Phl">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="30" height="40"/>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="height" constant="40" id="CkP-ys-adc"/>
+                                                                        <constraint firstAttribute="width" constant="30" id="bMh-9q-Etq"/>
+                                                                    </constraints>
+                                                                    <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="15"/>
+                                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                    <nil key="highlightedColor"/>
+                                                                </label>
+                                                            </subviews>
+                                                            <constraints>
+                                                                <constraint firstAttribute="trailing" secondItem="uf7-JN-Phl" secondAttribute="trailing" id="Irk-ad-9RU"/>
+                                                                <constraint firstItem="uf7-JN-Phl" firstAttribute="leading" secondItem="jRb-Jp-kEi" secondAttribute="leading" id="Jkl-2y-YkF"/>
+                                                                <constraint firstItem="ATg-jg-85K" firstAttribute="leading" secondItem="jRb-Jp-kEi" secondAttribute="leading" id="KjU-is-huq"/>
+                                                                <constraint firstAttribute="height" constant="40" id="Kxv-5W-XtA"/>
+                                                                <constraint firstAttribute="bottom" secondItem="ATg-jg-85K" secondAttribute="bottom" id="OI4-J2-2cw"/>
+                                                                <constraint firstAttribute="bottom" secondItem="uf7-JN-Phl" secondAttribute="bottom" id="XcT-MB-3om"/>
+                                                                <constraint firstItem="uf7-JN-Phl" firstAttribute="top" secondItem="jRb-Jp-kEi" secondAttribute="top" id="fwr-iu-NRQ"/>
+                                                                <constraint firstAttribute="width" constant="30" id="jOj-1f-b2S"/>
+                                                                <constraint firstItem="ATg-jg-85K" firstAttribute="top" secondItem="jRb-Jp-kEi" secondAttribute="top" id="lpz-ce-mGW"/>
+                                                                <constraint firstAttribute="trailing" secondItem="uf7-JN-Phl" secondAttribute="trailing" id="nj9-XJ-VLs"/>
+                                                                <constraint firstItem="uf7-JN-Phl" firstAttribute="top" secondItem="jRb-Jp-kEi" secondAttribute="top" id="xUX-5a-byH"/>
+                                                                <constraint firstAttribute="trailing" secondItem="ATg-jg-85K" secondAttribute="trailing" id="y3X-3C-KgM"/>
+                                                            </constraints>
+                                                        </view>
+                                                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TB5-w5-l7U">
+                                                            <rect key="frame" x="10" y="184" width="100" height="25"/>
+                                                            <color key="backgroundColor" name="AccentColor"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="25" id="CR0-L2-erZ"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="14"/>
+                                                            <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                            <state key="normal" title="Take Exam">
+                                                                <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                            </state>
+                                                        </button>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Highest Score: 5/15" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Hr-ez-3O1">
+                                                            <rect key="frame" x="10" y="219" width="172" height="18"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="18" id="NlK-0k-f75"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No. Of Attempts: 1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EQx-kK-rcJ">
+                                                            <rect key="frame" x="10" y="242" width="172" height="18"/>
+                                                            <constraints>
+                                                                <constraint firstAttribute="height" constant="18" id="fBs-hm-XkA"/>
+                                                            </constraints>
+                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="13"/>
+                                                            <nil key="textColor"/>
+                                                            <nil key="highlightedColor"/>
+                                                        </label>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="bottom" secondItem="EQx-kK-rcJ" secondAttribute="bottom" constant="10" id="1FO-at-PVY"/>
+                                                        <constraint firstItem="jRb-Jp-kEi" firstAttribute="top" secondItem="dW7-6K-LJL" secondAttribute="top" id="BGU-mM-F82"/>
+                                                        <constraint firstAttribute="trailing" secondItem="jRb-Jp-kEi" secondAttribute="trailing" id="DCM-al-u4B"/>
+                                                        <constraint firstItem="EQx-kK-rcJ" firstAttribute="top" secondItem="5Hr-ez-3O1" secondAttribute="bottom" constant="5" id="GnG-T3-3et"/>
+                                                        <constraint firstAttribute="trailing" secondItem="5Hr-ez-3O1" secondAttribute="trailing" constant="10" id="J7Q-zF-iCw"/>
+                                                        <constraint firstItem="1bR-2W-xZV" firstAttribute="leading" secondItem="dW7-6K-LJL" secondAttribute="leading" constant="10" id="Nbu-z4-wAW"/>
+                                                        <constraint firstItem="nV4-gQ-Pbg" firstAttribute="top" secondItem="dW7-6K-LJL" secondAttribute="top" id="Nz1-bs-2Gn"/>
+                                                        <constraint firstAttribute="trailing" secondItem="EQx-kK-rcJ" secondAttribute="trailing" constant="10" id="OyC-dj-otT"/>
+                                                        <constraint firstItem="nV4-gQ-Pbg" firstAttribute="leading" secondItem="dW7-6K-LJL" secondAttribute="leading" id="VJK-PT-HmI"/>
+                                                        <constraint firstAttribute="trailing" secondItem="nV4-gQ-Pbg" secondAttribute="trailing" id="YmY-Rw-P62"/>
+                                                        <constraint firstItem="EQx-kK-rcJ" firstAttribute="leading" secondItem="dW7-6K-LJL" secondAttribute="leading" constant="10" id="Z5d-0G-W24"/>
+                                                        <constraint firstItem="TB5-w5-l7U" firstAttribute="top" secondItem="1bR-2W-xZV" secondAttribute="bottom" priority="250" constant="13.33" id="c1V-JR-9hI"/>
+                                                        <constraint firstItem="TB5-w5-l7U" firstAttribute="width" secondItem="dW7-6K-LJL" secondAttribute="width" multiplier="0.520833" id="iiG-PE-oIl"/>
+                                                        <constraint firstItem="5Hr-ez-3O1" firstAttribute="top" secondItem="TB5-w5-l7U" secondAttribute="bottom" constant="10" id="kYP-MH-IaR"/>
+                                                        <constraint firstItem="1bR-2W-xZV" firstAttribute="top" secondItem="nV4-gQ-Pbg" secondAttribute="bottom" constant="10" id="llj-8n-6Pu"/>
+                                                        <constraint firstItem="TB5-w5-l7U" firstAttribute="leading" secondItem="dW7-6K-LJL" secondAttribute="leading" constant="10" id="vpJ-Ho-GGz"/>
+                                                        <constraint firstAttribute="trailing" secondItem="1bR-2W-xZV" secondAttribute="trailing" constant="10" id="y2V-35-To1"/>
+                                                        <constraint firstItem="5Hr-ez-3O1" firstAttribute="leading" secondItem="dW7-6K-LJL" secondAttribute="leading" constant="10" id="zfV-iF-jb9"/>
+                                                    </constraints>
+                                                </view>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="dW7-6K-LJL" firstAttribute="top" secondItem="wpL-yO-VAF" secondAttribute="top" id="MVZ-1j-dsE"/>
+                                                <constraint firstAttribute="bottom" secondItem="dW7-6K-LJL" secondAttribute="bottom" id="ZZK-8S-BvW"/>
+                                                <constraint firstAttribute="trailing" secondItem="dW7-6K-LJL" secondAttribute="trailing" id="l1N-aY-0eV"/>
+                                                <constraint firstItem="dW7-6K-LJL" firstAttribute="leading" secondItem="wpL-yO-VAF" secondAttribute="leading" id="tIm-lx-xgB"/>
+                                            </constraints>
+                                        </collectionViewCellContentView>
+                                        <size key="customSize" width="192" height="270"/>
+                                        <connections>
+                                            <outlet property="attemptsLabel" destination="EQx-kK-rcJ" id="dbR-zy-aBn"/>
+                                            <outlet property="customView" destination="dW7-6K-LJL" id="fZf-dO-At9"/>
+                                            <outlet property="scoreLabel" destination="5Hr-ez-3O1" id="z6c-L9-W4B"/>
+                                            <outlet property="serialNoLabel" destination="uf7-JN-Phl" id="tf9-Sr-TJq"/>
+                                            <outlet property="takeExamButton" destination="TB5-w5-l7U" id="XIG-qj-oQS"/>
+                                            <outlet property="testImageView" destination="nV4-gQ-Pbg" id="K0k-my-Mer"/>
+                                            <outlet property="testNameLabel" destination="1bR-2W-xZV" id="b8w-Bv-IaB"/>
+                                        </connections>
+                                    </collectionViewCell>
+                                </cells>
+                            </collectionView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="LPH-10-SgT"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="LPH-10-SgT" firstAttribute="bottom" secondItem="mtV-wr-oQ6" secondAttribute="bottom" constant="10" id="JAi-rY-tho"/>
+                            <constraint firstItem="itf-Wo-UGR" firstAttribute="trailing" secondItem="LPH-10-SgT" secondAttribute="trailing" id="MzZ-3o-gDx"/>
+                            <constraint firstItem="itf-Wo-UGR" firstAttribute="leading" secondItem="LPH-10-SgT" secondAttribute="leading" id="RJX-dk-kAj"/>
+                            <constraint firstItem="LPH-10-SgT" firstAttribute="trailing" secondItem="mtV-wr-oQ6" secondAttribute="trailing" constant="10" id="eFf-YT-nB0"/>
+                            <constraint firstItem="mtV-wr-oQ6" firstAttribute="leading" secondItem="LPH-10-SgT" secondAttribute="leading" constant="10" id="sns-T5-h9O"/>
+                            <constraint firstItem="mtV-wr-oQ6" firstAttribute="top" secondItem="itf-Wo-UGR" secondAttribute="bottom" constant="10" id="tKK-pz-TpG"/>
+                            <constraint firstItem="itf-Wo-UGR" firstAttribute="top" secondItem="LPH-10-SgT" secondAttribute="top" id="xpb-EN-Smy"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="assessmentListCollectionView" destination="mtV-wr-oQ6" id="G9i-JY-8lg"/>
+                        <outlet property="navigationBar" destination="itf-Wo-UGR" id="aZx-Cx-cnr"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="5L4-O4-dVP" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3186.9565217391305" y="835.59782608695662"/>
+        </scene>
+        <!--New Quiz View Controller-->
+        <scene sceneID="2tz-wD-G5j">
+            <objects>
+                <viewController storyboardIdentifier="NewQuizViewController" id="5NQ-mJ-DHR" customClass="NewQuizViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ZoS-go-uzp">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QsQ-ni-5ad">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Assessment Name" id="2rt-0h-mnk">
+                                        <barButtonItem key="leftBarButtonItem" image="line.3.horizontal.circle" catalog="system" id="BcO-Od-3BA">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="sideMenuAction:" destination="5NQ-mJ-DHR" id="cZa-Le-574"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tvf-PG-bnB">
+                                <rect key="frame" x="0.0" y="64" width="414" height="672"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question No - 0/0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AZT-U5-XmL">
+                                        <rect key="frame" x="20" y="20" width="200" height="40"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" priority="250" constant="200" id="Vyn-Dr-Hbr"/>
+                                            <constraint firstAttribute="height" constant="40" id="pfI-W9-xt2"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="18"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y7R-GD-CfR">
+                                        <rect key="frame" x="220" y="58" width="174" height="2"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="2" id="3yu-0Q-CUa"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                        <nil key="textColor"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question Type : Multiple Select MCQ" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nAO-ky-VUE">
+                                        <rect key="frame" x="20" y="68" width="276" height="22"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <stackView opaque="NO" contentMode="scaleToFill" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="Hfk-Zt-Kdi">
+                                        <rect key="frame" x="304" y="68" width="90" height="22"/>
+                                        <subviews>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="stopwatch" catalog="system" translatesAutoresizingMaskIntoConstraints="NO" id="JjS-l3-y7V">
+                                                <rect key="frame" x="0.0" y="-0.66666666666666785" width="22" height="22.333333333333336"/>
+                                                <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="22" id="Wla-EG-dYr"/>
+                                                    <constraint firstAttribute="height" constant="22" id="z2V-wj-w3O"/>
+                                                </constraints>
+                                            </imageView>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Aq1-m1-wu1">
+                                                <rect key="frame" x="30" y="0.0" width="60" height="22"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="60" id="E1n-1z-8dX"/>
+                                                    <constraint firstAttribute="height" constant="22" id="vgJ-iu-wxc"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                        </subviews>
+                                    </stackView>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Question" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ScL-L9-BfK">
+                                        <rect key="frame" x="20" y="110" width="374" height="30.333333333333343"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="22"/>
+                                        <color key="textColor" red="0.1843137255" green="0.42745098040000001" blue="0.66274509800000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Answer selection instruction" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jt7-1L-bCv">
+                                        <rect key="frame" x="20" y="148.33333333333334" width="374" height="24.666666666666657"/>
+                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                        <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pB0-FE-TR7">
+                                        <rect key="frame" x="0.0" y="193" width="414" height="399"/>
+                                        <subviews>
+                                            <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter your answer" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="vIi-eT-VBF">
+                                                <rect key="frame" x="20" y="20" width="374" height="34"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="15"/>
+                                                <textInputTraits key="textInputTraits"/>
+                                            </textField>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zf4-AM-HrR">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="0fX-TV-SOr">
+                                                        <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                        <prototypes>
+                                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MCQTableViewCell" rowHeight="100" id="26M-y4-MSX" customClass="MCQTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                <rect key="frame" x="0.0" y="50" width="414" height="100"/>
+                                                                <autoresizingMask key="autoresizingMask"/>
+                                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="26M-y4-MSX" id="VMS-UU-e6j">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
+                                                                    <autoresizingMask key="autoresizingMask"/>
+                                                                    <subviews>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="J87-3S-7ld">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="414" height="100"/>
+                                                                            <subviews>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kGO-Ca-exf">
+                                                                                    <rect key="frame" x="20" y="37.666666666666664" width="25" height="25"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="width" constant="25" id="Yjn-BD-llY"/>
+                                                                                        <constraint firstAttribute="height" constant="25" id="xw9-6W-Xmu"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                                                    <state key="normal" image="square" catalog="system"/>
+                                                                                    <state key="selected" image="checkmark.square" catalog="system"/>
+                                                                                </button>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6uV-YR-P3y">
+                                                                                    <rect key="frame" x="53" y="10" width="341" height="80"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="bottom" secondItem="6uV-YR-P3y" secondAttribute="bottom" constant="10" id="BxF-48-JOq"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="6uV-YR-P3y" secondAttribute="trailing" constant="20" symbolic="YES" id="NHA-a3-mr4"/>
+                                                                                <constraint firstItem="kGO-Ca-exf" firstAttribute="centerY" secondItem="J87-3S-7ld" secondAttribute="centerY" id="WXB-N9-f0N"/>
+                                                                                <constraint firstItem="6uV-YR-P3y" firstAttribute="top" secondItem="J87-3S-7ld" secondAttribute="top" constant="10" id="Y21-QZ-U6g"/>
+                                                                                <constraint firstItem="6uV-YR-P3y" firstAttribute="leading" secondItem="kGO-Ca-exf" secondAttribute="trailing" constant="8" symbolic="YES" id="fwq-Fz-Woo"/>
+                                                                                <constraint firstItem="kGO-Ca-exf" firstAttribute="leading" secondItem="J87-3S-7ld" secondAttribute="leading" constant="20" symbolic="YES" id="qI3-6m-UbZ"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="trailing" secondItem="J87-3S-7ld" secondAttribute="trailing" id="9Wo-DW-2jH"/>
+                                                                        <constraint firstItem="J87-3S-7ld" firstAttribute="leading" secondItem="VMS-UU-e6j" secondAttribute="leading" id="Z1e-2y-Ea5"/>
+                                                                        <constraint firstAttribute="bottom" secondItem="J87-3S-7ld" secondAttribute="bottom" id="Zb0-70-ucQ"/>
+                                                                        <constraint firstItem="J87-3S-7ld" firstAttribute="top" secondItem="VMS-UU-e6j" secondAttribute="top" id="gbP-ja-oca"/>
+                                                                    </constraints>
+                                                                </tableViewCellContentView>
+                                                                <connections>
+                                                                    <outlet property="checkButton" destination="kGO-Ca-exf" id="uMJ-w4-dyk"/>
+                                                                    <outlet property="customView" destination="J87-3S-7ld" id="IOE-No-SFE"/>
+                                                                    <outlet property="optionLabel" destination="6uV-YR-P3y" id="oAC-UC-NqK"/>
+                                                                </connections>
+                                                            </tableViewCell>
+                                                        </prototypes>
+                                                    </tableView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="trailing" secondItem="0fX-TV-SOr" secondAttribute="trailing" id="CgV-C9-iXx"/>
+                                                    <constraint firstItem="0fX-TV-SOr" firstAttribute="top" secondItem="zf4-AM-HrR" secondAttribute="top" id="LP1-H1-Cpc"/>
+                                                    <constraint firstItem="0fX-TV-SOr" firstAttribute="leading" secondItem="zf4-AM-HrR" secondAttribute="leading" id="tNS-Px-6HD"/>
+                                                    <constraint firstAttribute="bottom" secondItem="0fX-TV-SOr" secondAttribute="bottom" id="tWS-qg-1xT"/>
+                                                </constraints>
+                                            </view>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0xR-zA-0or">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="oEF-rV-Mbc">
+                                                        <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                        <prototypes>
+                                                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="TrueFalseTableViewCell" rowHeight="45" id="94b-Xn-vb6" customClass="TrueFalseTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                <rect key="frame" x="0.0" y="50" width="414" height="45"/>
+                                                                <autoresizingMask key="autoresizingMask"/>
+                                                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="94b-Xn-vb6" id="ghk-6f-En6">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="414" height="45"/>
+                                                                    <autoresizingMask key="autoresizingMask"/>
+                                                                    <subviews>
+                                                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uuG-68-hbi">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="414" height="45"/>
+                                                                            <subviews>
+                                                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vXE-Bt-9i6">
+                                                                                    <rect key="frame" x="20" y="10" width="25" height="25"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="height" constant="25" id="tlm-q3-AZv"/>
+                                                                                        <constraint firstAttribute="width" constant="25" id="vz4-UL-dCZ"/>
+                                                                                    </constraints>
+                                                                                    <color key="tintColor" systemColor="labelColor"/>
+                                                                                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                                                    <state key="normal" image="circle" catalog="system"/>
+                                                                                </button>
+                                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6bF-Go-lmM">
+                                                                                    <rect key="frame" x="53" y="10" width="341" height="25"/>
+                                                                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                                                                    <nil key="textColor"/>
+                                                                                    <nil key="highlightedColor"/>
+                                                                                </label>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="bottom" secondItem="vXE-Bt-9i6" secondAttribute="bottom" constant="10" id="DhN-yq-045"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="6bF-Go-lmM" secondAttribute="trailing" constant="20" symbolic="YES" id="J5W-dr-xv3"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="6bF-Go-lmM" secondAttribute="bottom" constant="10" id="J9N-tD-dLB"/>
+                                                                                <constraint firstItem="6bF-Go-lmM" firstAttribute="leading" secondItem="vXE-Bt-9i6" secondAttribute="trailing" constant="8" symbolic="YES" id="M6O-GO-Kj6"/>
+                                                                                <constraint firstItem="vXE-Bt-9i6" firstAttribute="leading" secondItem="uuG-68-hbi" secondAttribute="leading" constant="20" symbolic="YES" id="QtZ-6Z-tdG"/>
+                                                                                <constraint firstItem="6bF-Go-lmM" firstAttribute="top" secondItem="uuG-68-hbi" secondAttribute="top" constant="10" id="fQQ-49-gvG"/>
+                                                                                <constraint firstItem="vXE-Bt-9i6" firstAttribute="top" secondItem="uuG-68-hbi" secondAttribute="top" constant="10" id="g8j-Y9-KCU"/>
+                                                                            </constraints>
+                                                                        </view>
+                                                                    </subviews>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="bottom" secondItem="uuG-68-hbi" secondAttribute="bottom" id="EZ9-Yk-B6L"/>
+                                                                        <constraint firstItem="uuG-68-hbi" firstAttribute="leading" secondItem="ghk-6f-En6" secondAttribute="leading" id="G70-li-gF8"/>
+                                                                        <constraint firstItem="uuG-68-hbi" firstAttribute="top" secondItem="ghk-6f-En6" secondAttribute="top" id="Uom-dt-hzz"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="uuG-68-hbi" secondAttribute="trailing" id="hvM-SU-XIK"/>
+                                                                    </constraints>
+                                                                </tableViewCellContentView>
+                                                                <connections>
+                                                                    <outlet property="customView" destination="uuG-68-hbi" id="VOn-zX-Uvp"/>
+                                                                    <outlet property="optionLabel" destination="6bF-Go-lmM" id="VaB-eK-BSo"/>
+                                                                    <outlet property="selectButton" destination="vXE-Bt-9i6" id="qvX-yy-OBq"/>
+                                                                </connections>
+                                                            </tableViewCell>
+                                                        </prototypes>
+                                                    </tableView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstItem="oEF-rV-Mbc" firstAttribute="leading" secondItem="0xR-zA-0or" secondAttribute="leading" id="2hx-X1-Kbu"/>
+                                                    <constraint firstAttribute="bottom" secondItem="oEF-rV-Mbc" secondAttribute="bottom" id="6dq-F6-62c"/>
+                                                    <constraint firstItem="oEF-rV-Mbc" firstAttribute="top" secondItem="0xR-zA-0or" secondAttribute="top" id="Ypc-FG-2yw"/>
+                                                    <constraint firstAttribute="trailing" secondItem="oEF-rV-Mbc" secondAttribute="trailing" id="t3N-Nr-9gN"/>
+                                                </constraints>
+                                            </view>
+                                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="llW-SS-PnM">
+                                                <rect key="frame" x="0.0" y="0.0" width="414" height="399"/>
+                                                <subviews>
+                                                    <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="zCU-hE-aCn">
+                                                        <rect key="frame" x="20" y="0.0" width="374" height="399"/>
+                                                        <subviews>
+                                                            <tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="zYB-b2-jFe">
+                                                                <rect key="frame" x="0.0" y="0.0" width="177" height="399"/>
+                                                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                <prototypes>
+                                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DragTableViewCell" rowHeight="50" id="VPK-zU-KOm" customClass="DragTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                        <rect key="frame" x="0.0" y="50" width="177" height="50"/>
+                                                                        <autoresizingMask key="autoresizingMask"/>
+                                                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="VPK-zU-KOm" id="adI-GH-auU">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                            <autoresizingMask key="autoresizingMask"/>
+                                                                            <subviews>
+                                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m1k-cA-3k7">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option 1" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k8w-KL-9da">
+                                                                                            <rect key="frame" x="10" y="10" width="157" height="30"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                                                            <color key="textColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                    </subviews>
+                                                                                    <color key="backgroundColor" red="0.78039215689999997" green="0.78039215689999997" blue="0.78039215689999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstAttribute="bottom" secondItem="k8w-KL-9da" secondAttribute="bottom" constant="10" id="NCa-8y-DFr"/>
+                                                                                        <constraint firstAttribute="height" constant="50" id="Nma-hO-TBJ"/>
+                                                                                        <constraint firstItem="k8w-KL-9da" firstAttribute="leading" secondItem="m1k-cA-3k7" secondAttribute="leading" constant="10" id="TmA-ft-oMT"/>
+                                                                                        <constraint firstItem="k8w-KL-9da" firstAttribute="top" secondItem="m1k-cA-3k7" secondAttribute="top" constant="10" id="WTo-jl-ozn"/>
+                                                                                        <constraint firstAttribute="trailing" secondItem="k8w-KL-9da" secondAttribute="trailing" constant="10" id="ijS-6h-B1p"/>
+                                                                                    </constraints>
+                                                                                </view>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                            <constraints>
+                                                                                <constraint firstItem="m1k-cA-3k7" firstAttribute="leading" secondItem="adI-GH-auU" secondAttribute="leading" id="2lw-4o-lky"/>
+                                                                                <constraint firstAttribute="bottom" secondItem="m1k-cA-3k7" secondAttribute="bottom" id="Cl1-7E-9SB"/>
+                                                                                <constraint firstItem="m1k-cA-3k7" firstAttribute="top" secondItem="adI-GH-auU" secondAttribute="top" id="KUw-Jf-aRN"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="m1k-cA-3k7" secondAttribute="trailing" id="RNQ-Ap-3Sb"/>
+                                                                            </constraints>
+                                                                        </tableViewCellContentView>
+                                                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                        <connections>
+                                                                            <outlet property="optionLabel" destination="k8w-KL-9da" id="Log-8u-4AU"/>
+                                                                        </connections>
+                                                                    </tableViewCell>
+                                                                </prototypes>
+                                                            </tableView>
+                                                            <tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="r2Z-iD-ScN">
+                                                                <rect key="frame" x="197" y="0.0" width="177" height="399"/>
+                                                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                <prototypes>
+                                                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DragTableViewCell" rowHeight="50" id="WVY-ni-M7k" customClass="DragTableViewCell" customModule="LMS" customModuleProvider="target">
+                                                                        <rect key="frame" x="0.0" y="50" width="177" height="50"/>
+                                                                        <autoresizingMask key="autoresizingMask"/>
+                                                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="WVY-ni-M7k" id="BcL-lM-lVF">
+                                                                            <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                            <autoresizingMask key="autoresizingMask"/>
+                                                                            <subviews>
+                                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="WWB-yu-HWR">
+                                                                                    <rect key="frame" x="0.0" y="0.0" width="177" height="50"/>
+                                                                                    <subviews>
+                                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Option 2" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ugy-CB-QBe">
+                                                                                            <rect key="frame" x="10" y="10" width="157" height="30"/>
+                                                                                            <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="16"/>
+                                                                                            <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                                            <nil key="highlightedColor"/>
+                                                                                        </label>
+                                                                                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_drag_white" translatesAutoresizingMaskIntoConstraints="NO" id="VNf-xU-Vug">
+                                                                                            <rect key="frame" x="142" y="5" width="25" height="40"/>
+                                                                                            <constraints>
+                                                                                                <constraint firstAttribute="width" constant="25" id="1dr-Pl-GWM"/>
+                                                                                                <constraint firstAttribute="height" constant="40" id="hHU-gG-tkJ"/>
+                                                                                            </constraints>
+                                                                                        </imageView>
+                                                                                    </subviews>
+                                                                                    <color key="backgroundColor" red="0.1843137255" green="0.42745098040000001" blue="0.66274509800000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                                                                    <constraints>
+                                                                                        <constraint firstItem="VNf-xU-Vug" firstAttribute="top" secondItem="WWB-yu-HWR" secondAttribute="top" constant="5" id="74b-sp-lbU"/>
+                                                                                        <constraint firstItem="Ugy-CB-QBe" firstAttribute="leading" secondItem="WWB-yu-HWR" secondAttribute="leading" constant="10" id="7JZ-OP-nXx"/>
+                                                                                        <constraint firstAttribute="bottom" secondItem="Ugy-CB-QBe" secondAttribute="bottom" constant="10" id="MXI-sc-6Q9"/>
+                                                                                        <constraint firstAttribute="trailing" secondItem="Ugy-CB-QBe" secondAttribute="trailing" constant="10" id="S4t-R6-nfs"/>
+                                                                                        <constraint firstAttribute="height" constant="50" id="S9q-xD-gwX"/>
+                                                                                        <constraint firstItem="Ugy-CB-QBe" firstAttribute="top" secondItem="WWB-yu-HWR" secondAttribute="top" constant="10" id="iWh-8U-aV8"/>
+                                                                                        <constraint firstItem="VNf-xU-Vug" firstAttribute="trailing" secondItem="Ugy-CB-QBe" secondAttribute="trailing" id="mdc-02-2pT"/>
+                                                                                        <constraint firstAttribute="bottom" secondItem="VNf-xU-Vug" secondAttribute="bottom" constant="5" id="zfn-Nd-rED"/>
+                                                                                    </constraints>
+                                                                                </view>
+                                                                            </subviews>
+                                                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                            <constraints>
+                                                                                <constraint firstAttribute="bottom" secondItem="WWB-yu-HWR" secondAttribute="bottom" id="Ysh-po-7kj"/>
+                                                                                <constraint firstAttribute="trailing" secondItem="WWB-yu-HWR" secondAttribute="trailing" id="dc0-Ux-LJa"/>
+                                                                                <constraint firstItem="WWB-yu-HWR" firstAttribute="leading" secondItem="BcL-lM-lVF" secondAttribute="leading" id="oBX-cS-Z5U"/>
+                                                                                <constraint firstItem="WWB-yu-HWR" firstAttribute="top" secondItem="BcL-lM-lVF" secondAttribute="top" id="skq-C4-Gkn"/>
+                                                                            </constraints>
+                                                                        </tableViewCellContentView>
+                                                                        <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                                        <connections>
+                                                                            <outlet property="optionLabel" destination="Ugy-CB-QBe" id="zQt-YT-gzE"/>
+                                                                        </connections>
+                                                                    </tableViewCell>
+                                                                </prototypes>
+                                                            </tableView>
+                                                        </subviews>
+                                                        <constraints>
+                                                            <constraint firstItem="zYB-b2-jFe" firstAttribute="top" secondItem="zCU-hE-aCn" secondAttribute="top" id="1xn-10-Ygq"/>
+                                                            <constraint firstItem="r2Z-iD-ScN" firstAttribute="leading" secondItem="zYB-b2-jFe" secondAttribute="trailing" constant="20" id="6HG-MZ-PM3"/>
+                                                            <constraint firstAttribute="bottom" secondItem="zYB-b2-jFe" secondAttribute="bottom" id="Pwe-WQ-Lyi"/>
+                                                            <constraint firstItem="zYB-b2-jFe" firstAttribute="leading" secondItem="zCU-hE-aCn" secondAttribute="leading" id="Zmq-T6-xuW"/>
+                                                            <constraint firstAttribute="bottom" secondItem="r2Z-iD-ScN" secondAttribute="bottom" id="fZO-BQ-UJN"/>
+                                                            <constraint firstItem="r2Z-iD-ScN" firstAttribute="top" secondItem="zCU-hE-aCn" secondAttribute="top" id="mc1-Uj-6lj"/>
+                                                            <constraint firstAttribute="trailing" secondItem="r2Z-iD-ScN" secondAttribute="trailing" id="oBq-NG-ydP"/>
+                                                        </constraints>
+                                                    </stackView>
+                                                </subviews>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="trailing" secondItem="zCU-hE-aCn" secondAttribute="trailing" constant="20" symbolic="YES" id="JSn-Ia-cS0"/>
+                                                    <constraint firstItem="zCU-hE-aCn" firstAttribute="leading" secondItem="llW-SS-PnM" secondAttribute="leading" constant="20" symbolic="YES" id="Rkm-F7-etC"/>
+                                                    <constraint firstAttribute="bottom" secondItem="zCU-hE-aCn" secondAttribute="bottom" id="dkv-fw-1jJ"/>
+                                                    <constraint firstItem="zCU-hE-aCn" firstAttribute="top" secondItem="llW-SS-PnM" secondAttribute="top" id="hzA-Wc-qtr"/>
+                                                </constraints>
+                                            </view>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="bottom" secondItem="0xR-zA-0or" secondAttribute="bottom" id="2qE-r1-EGq"/>
+                                            <constraint firstItem="llW-SS-PnM" firstAttribute="leading" secondItem="pB0-FE-TR7" secondAttribute="leading" id="3OU-AP-RNA"/>
+                                            <constraint firstAttribute="trailing" secondItem="zf4-AM-HrR" secondAttribute="trailing" id="7vN-Aq-DpW"/>
+                                            <constraint firstItem="0xR-zA-0or" firstAttribute="top" secondItem="pB0-FE-TR7" secondAttribute="top" id="Baz-Ld-TNs"/>
+                                            <constraint firstItem="vIi-eT-VBF" firstAttribute="leading" secondItem="pB0-FE-TR7" secondAttribute="leading" constant="20" symbolic="YES" id="Lvs-f2-WBu"/>
+                                            <constraint firstAttribute="bottom" secondItem="zf4-AM-HrR" secondAttribute="bottom" id="atZ-CN-l6H"/>
+                                            <constraint firstItem="llW-SS-PnM" firstAttribute="top" secondItem="pB0-FE-TR7" secondAttribute="top" id="cQ2-se-XPF"/>
+                                            <constraint firstAttribute="trailing" secondItem="llW-SS-PnM" secondAttribute="trailing" id="csB-4s-4T0"/>
+                                            <constraint firstAttribute="bottom" secondItem="llW-SS-PnM" secondAttribute="bottom" id="jKu-yT-7PH"/>
+                                            <constraint firstItem="vIi-eT-VBF" firstAttribute="top" secondItem="pB0-FE-TR7" secondAttribute="top" constant="20" symbolic="YES" id="kkv-8g-oaC"/>
+                                            <constraint firstItem="zf4-AM-HrR" firstAttribute="leading" secondItem="pB0-FE-TR7" secondAttribute="leading" id="mnR-or-lo2"/>
+                                            <constraint firstItem="0xR-zA-0or" firstAttribute="leading" secondItem="pB0-FE-TR7" secondAttribute="leading" id="oLd-CT-sRe"/>
+                                            <constraint firstItem="zf4-AM-HrR" firstAttribute="top" secondItem="pB0-FE-TR7" secondAttribute="top" id="tb5-go-tAM"/>
+                                            <constraint firstAttribute="trailing" secondItem="0xR-zA-0or" secondAttribute="trailing" id="uzi-mN-3oe"/>
+                                            <constraint firstAttribute="trailing" secondItem="vIi-eT-VBF" secondAttribute="trailing" constant="20" symbolic="YES" id="w3e-Xf-dza"/>
+                                        </constraints>
+                                    </view>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O0Q-aO-DQf">
+                                        <rect key="frame" x="344" y="542" width="50" height="50"/>
+                                        <color key="backgroundColor" name="orange"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="50" id="QGj-32-T3E"/>
+                                            <constraint firstAttribute="height" constant="50" id="wZr-eH-aMA"/>
+                                        </constraints>
+                                        <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                        <state key="normal" image="circle.grid.3x3.fill" catalog="system">
+                                            <preferredSymbolConfiguration key="preferredSymbolConfiguration"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="filterAction:" destination="Hg3-dp-OsB" eventType="touchUpInside" id="PoY-TV-ACu"/>
+                                            <action selector="quesNumberAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="dmf-fL-WyQ"/>
+                                        </connections>
+                                    </button>
+                                    <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="4wq-Du-wow">
+                                        <rect key="frame" x="20" y="612" width="374" height="40"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GUP-Xn-OPP">
+                                                <rect key="frame" x="0.0" y="0.0" width="183" height="40"/>
+                                                <color key="backgroundColor" name="AccentColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="40" id="lSw-nh-N2A"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" title="Skip">
+                                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="skipAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="aU2-Cj-ygY"/>
+                                                </connections>
+                                            </button>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0AJ-De-JH5">
+                                                <rect key="frame" x="191" y="0.0" width="183" height="40"/>
+                                                <color key="backgroundColor" name="AccentColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="40" id="wLQ-YO-2gU"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" title="Next">
+                                                    <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                </state>
+                                                <connections>
+                                                    <action selector="nextAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="wkM-tz-ASh"/>
+                                                </connections>
+                                            </button>
+                                        </subviews>
+                                    </stackView>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                <constraints>
+                                    <constraint firstItem="Hfk-Zt-Kdi" firstAttribute="trailing" secondItem="Jt7-1L-bCv" secondAttribute="trailing" id="2Pk-as-rJO"/>
+                                    <constraint firstAttribute="trailing" secondItem="ScL-L9-BfK" secondAttribute="trailing" constant="20" symbolic="YES" id="3Rm-es-92n"/>
+                                    <constraint firstItem="Hfk-Zt-Kdi" firstAttribute="leading" secondItem="nAO-ky-VUE" secondAttribute="trailing" constant="8" symbolic="YES" id="45i-3F-EF3"/>
+                                    <constraint firstItem="Jt7-1L-bCv" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" constant="20" symbolic="YES" id="79J-Y2-4mf"/>
+                                    <constraint firstItem="nAO-ky-VUE" firstAttribute="top" secondItem="AZT-U5-XmL" secondAttribute="bottom" constant="8" symbolic="YES" id="8oN-JA-3AU"/>
+                                    <constraint firstItem="4wq-Du-wow" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" constant="20" symbolic="YES" id="8qv-oX-UJ7"/>
+                                    <constraint firstItem="AZT-U5-XmL" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" constant="20" symbolic="YES" id="ABm-5T-Sf2"/>
+                                    <constraint firstItem="nAO-ky-VUE" firstAttribute="leading" secondItem="4wq-Du-wow" secondAttribute="leading" id="AYz-0B-bNM"/>
+                                    <constraint firstItem="4wq-Du-wow" firstAttribute="top" secondItem="O0Q-aO-DQf" secondAttribute="bottom" constant="20" id="Bch-Rh-FHf"/>
+                                    <constraint firstItem="nAO-ky-VUE" firstAttribute="leading" secondItem="Jt7-1L-bCv" secondAttribute="leading" id="C3Y-BP-Ua0"/>
+                                    <constraint firstItem="Hfk-Zt-Kdi" firstAttribute="top" secondItem="Y7R-GD-CfR" secondAttribute="bottom" constant="8" symbolic="YES" id="E78-lO-isE"/>
+                                    <constraint firstItem="Y7R-GD-CfR" firstAttribute="leading" secondItem="AZT-U5-XmL" secondAttribute="trailing" id="E8H-Fn-Qif"/>
+                                    <constraint firstItem="pB0-FE-TR7" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" id="EOD-eF-TPW"/>
+                                    <constraint firstAttribute="trailing" secondItem="4wq-Du-wow" secondAttribute="trailing" constant="20" symbolic="YES" id="III-G2-Ma9"/>
+                                    <constraint firstItem="nAO-ky-VUE" firstAttribute="centerY" secondItem="Hfk-Zt-Kdi" secondAttribute="centerY" id="LNm-o3-DZH"/>
+                                    <constraint firstAttribute="trailing" secondItem="O0Q-aO-DQf" secondAttribute="trailing" constant="20" id="Pfc-KG-W3H"/>
+                                    <constraint firstItem="ScL-L9-BfK" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" constant="20" symbolic="YES" id="TZF-yb-0iD"/>
+                                    <constraint firstAttribute="bottom" secondItem="4wq-Du-wow" secondAttribute="bottom" constant="20" symbolic="YES" id="Tba-Gd-O5m"/>
+                                    <constraint firstAttribute="trailing" secondItem="Jt7-1L-bCv" secondAttribute="trailing" constant="20" symbolic="YES" id="V71-7y-y6G"/>
+                                    <constraint firstItem="AZT-U5-XmL" firstAttribute="top" secondItem="Tvf-PG-bnB" secondAttribute="top" constant="20" symbolic="YES" id="XSl-2K-ELs"/>
+                                    <constraint firstItem="ScL-L9-BfK" firstAttribute="top" secondItem="Hfk-Zt-Kdi" secondAttribute="bottom" constant="20" id="bAg-MP-cfY"/>
+                                    <constraint firstItem="Y7R-GD-CfR" firstAttribute="top" secondItem="Tvf-PG-bnB" secondAttribute="top" constant="58" id="hsM-DY-Dc2"/>
+                                    <constraint firstAttribute="trailing" secondItem="Hfk-Zt-Kdi" secondAttribute="trailing" constant="20" symbolic="YES" id="iC7-QF-Qty"/>
+                                    <constraint firstItem="4wq-Du-wow" firstAttribute="top" secondItem="pB0-FE-TR7" secondAttribute="bottom" constant="20" id="j3I-Q6-M6x"/>
+                                    <constraint firstAttribute="trailing" secondItem="pB0-FE-TR7" secondAttribute="trailing" id="lbx-uS-5TP"/>
+                                    <constraint firstItem="Jt7-1L-bCv" firstAttribute="top" secondItem="ScL-L9-BfK" secondAttribute="bottom" constant="8" symbolic="YES" id="mfX-pZ-4KX"/>
+                                    <constraint firstAttribute="trailing" secondItem="Y7R-GD-CfR" secondAttribute="trailing" constant="20" symbolic="YES" id="nK4-c1-Hhj"/>
+                                    <constraint firstItem="nAO-ky-VUE" firstAttribute="leading" secondItem="Tvf-PG-bnB" secondAttribute="leading" constant="20" symbolic="YES" id="vcE-5d-np5"/>
+                                    <constraint firstItem="pB0-FE-TR7" firstAttribute="top" secondItem="Jt7-1L-bCv" secondAttribute="bottom" constant="20" id="zee-m9-yL3"/>
+                                </constraints>
+                            </view>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wYN-z0-CWx">
+                                <rect key="frame" x="0.0" y="20" width="414" height="716"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cEJ-gi-p1m">
+                                        <rect key="frame" x="10" y="158.66666666666663" width="394" height="399"/>
+                                        <subviews>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Congratulations You Have Submitted Your Exam Successfully!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k0O-ec-5w0">
+                                                <rect key="frame" x="20" y="175.00000000000003" width="354" height="38.333333333333343"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Regular" family="Avenir Next" pointSize="14"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacingType="standard" translatesAutoresizingMaskIntoConstraints="NO" id="9mx-tw-K6V">
+                                                <rect key="frame" x="20" y="329" width="354" height="40"/>
+                                                <subviews>
+                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="43s-n9-J9e">
+                                                        <rect key="frame" x="0.0" y="0.0" width="173" height="40"/>
+                                                        <color key="backgroundColor" name="AccentColor"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="height" constant="40" id="kAr-Rp-50u"/>
+                                                        </constraints>
+                                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                        <state key="normal" title="OK">
+                                                            <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                        </state>
+                                                        <connections>
+                                                            <action selector="closeAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="3aW-0F-aWv"/>
+                                                        </connections>
+                                                    </button>
+                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E3u-Ue-Q0x">
+                                                        <rect key="frame" x="181" y="0.0" width="173" height="40"/>
+                                                        <color key="backgroundColor" name="AccentColor"/>
+                                                        <constraints>
+                                                            <constraint firstAttribute="height" constant="40" id="wvk-Cx-Xuy"/>
+                                                        </constraints>
+                                                        <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="18"/>
+                                                        <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                        <state key="normal" title="View Answers">
+                                                            <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                                        </state>
+                                                        <connections>
+                                                            <action selector="viewResultAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="xuR-10-JRB"/>
+                                                        </connections>
+                                                    </button>
+                                                </subviews>
+                                            </stackView>
+                                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="749" image="check-mark" translatesAutoresizingMaskIntoConstraints="NO" id="pCK-9B-Sih">
+                                                <rect key="frame" x="122" y="30" width="150" height="130"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="width" constant="150" id="Ahd-RH-54R"/>
+                                                    <constraint firstAttribute="height" constant="130" id="cMj-nf-bZx"/>
+                                                </constraints>
+                                            </imageView>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Pass / Fail" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tbU-Bo-Zu9">
+                                                <rect key="frame" x="20" y="233.33333333333334" width="354" height="27.333333333333343"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="20"/>
+                                                <color key="textColor" systemColor="systemRedColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Score: 0/0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h8G-zf-E4g">
+                                                <rect key="frame" x="20" y="275.66666666666663" width="354" height="22"/>
+                                                <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="16"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MMc-FK-Plo">
+                                                <rect key="frame" x="47" y="307.66666666666663" width="300" height="1"/>
+                                                <color key="backgroundColor" systemColor="systemGray3Color"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="1" id="Sz8-o3-GgR"/>
+                                                </constraints>
+                                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                                <nil key="textColor"/>
+                                                <nil key="highlightedColor"/>
+                                            </label>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstItem="MMc-FK-Plo" firstAttribute="width" secondItem="cEJ-gi-p1m" secondAttribute="width" multiplier="0.761421" id="3Jo-CP-iyd"/>
+                                            <constraint firstItem="tbU-Bo-Zu9" firstAttribute="leading" secondItem="cEJ-gi-p1m" secondAttribute="leading" constant="20" symbolic="YES" id="5FR-EM-X22"/>
+                                            <constraint firstAttribute="trailing" secondItem="tbU-Bo-Zu9" secondAttribute="trailing" constant="20" symbolic="YES" id="D6e-24-Fl1"/>
+                                            <constraint firstAttribute="trailing" secondItem="h8G-zf-E4g" secondAttribute="trailing" constant="20" symbolic="YES" id="EAR-kM-aSu"/>
+                                            <constraint firstAttribute="bottom" secondItem="9mx-tw-K6V" secondAttribute="bottom" constant="30" id="Lh6-EJ-1k1"/>
+                                            <constraint firstItem="pCK-9B-Sih" firstAttribute="centerX" secondItem="cEJ-gi-p1m" secondAttribute="centerX" id="MDq-Kn-MJD"/>
+                                            <constraint firstAttribute="trailing" secondItem="k0O-ec-5w0" secondAttribute="trailing" constant="20" symbolic="YES" id="MUj-Td-u6b"/>
+                                            <constraint firstItem="tbU-Bo-Zu9" firstAttribute="top" secondItem="k0O-ec-5w0" secondAttribute="bottom" constant="20" id="Tzo-jq-HcJ"/>
+                                            <constraint firstItem="MMc-FK-Plo" firstAttribute="top" secondItem="h8G-zf-E4g" secondAttribute="bottom" constant="10" id="U9u-WK-xxh"/>
+                                            <constraint firstItem="pCK-9B-Sih" firstAttribute="top" secondItem="cEJ-gi-p1m" secondAttribute="top" constant="30" id="VIU-Hb-erX"/>
+                                            <constraint firstAttribute="trailing" secondItem="9mx-tw-K6V" secondAttribute="trailing" constant="20" symbolic="YES" id="Ye2-Cu-JbM"/>
+                                            <constraint firstItem="h8G-zf-E4g" firstAttribute="top" secondItem="tbU-Bo-Zu9" secondAttribute="bottom" constant="15" id="bDH-CJ-e0e"/>
+                                            <constraint firstItem="9mx-tw-K6V" firstAttribute="leading" secondItem="cEJ-gi-p1m" secondAttribute="leading" constant="20" symbolic="YES" id="ghP-bk-Gn2"/>
+                                            <constraint firstItem="k0O-ec-5w0" firstAttribute="top" secondItem="pCK-9B-Sih" secondAttribute="bottom" constant="15" id="ksm-bd-iJm"/>
+                                            <constraint firstItem="k0O-ec-5w0" firstAttribute="leading" secondItem="cEJ-gi-p1m" secondAttribute="leading" constant="20" symbolic="YES" id="ohL-tG-OPG"/>
+                                            <constraint firstItem="MMc-FK-Plo" firstAttribute="centerX" secondItem="cEJ-gi-p1m" secondAttribute="centerX" id="pVy-AK-lKq"/>
+                                            <constraint firstItem="9mx-tw-K6V" firstAttribute="top" secondItem="MMc-FK-Plo" secondAttribute="bottom" constant="20.329999999999998" id="shq-Wi-ttB"/>
+                                            <constraint firstItem="h8G-zf-E4g" firstAttribute="leading" secondItem="cEJ-gi-p1m" secondAttribute="leading" constant="20" symbolic="YES" id="x2S-oX-mBW"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="secondaryLabelColor"/>
+                                <constraints>
+                                    <constraint firstItem="cEJ-gi-p1m" firstAttribute="centerY" secondItem="wYN-z0-CWx" secondAttribute="centerY" id="5kc-fT-lZE"/>
+                                    <constraint firstItem="cEJ-gi-p1m" firstAttribute="height" secondItem="wYN-z0-CWx" secondAttribute="height" multiplier="0.557263" priority="250" id="GHP-Iq-Fv1"/>
+                                    <constraint firstItem="cEJ-gi-p1m" firstAttribute="width" secondItem="wYN-z0-CWx" secondAttribute="width" multiplier="0.951691" id="Jmh-5D-pbZ"/>
+                                    <constraint firstItem="cEJ-gi-p1m" firstAttribute="centerX" secondItem="wYN-z0-CWx" secondAttribute="centerX" id="bF3-f2-dod"/>
+                                </constraints>
+                            </view>
+                            <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pG6-Zn-0fu">
+                                <rect key="frame" x="0.0" y="20" width="414" height="716"/>
+                                <subviews>
+                                    <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6jc-jx-UuD">
+                                        <rect key="frame" x="20" y="239.66666666666669" width="374" height="237"/>
+                                        <subviews>
+                                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c9o-Hc-O5Q">
+                                                <rect key="frame" x="10" y="10" width="30" height="30"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="30" id="a8b-pR-JE9"/>
+                                                    <constraint firstAttribute="width" constant="30" id="cNa-V6-s1C"/>
+                                                </constraints>
+                                                <color key="tintColor" name="orange"/>
+                                                <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                                                <state key="normal" image="x.circle" catalog="system"/>
+                                                <connections>
+                                                    <action selector="cancelAction:" destination="5NQ-mJ-DHR" eventType="touchUpInside" id="HIi-vB-Pmd"/>
+                                                </connections>
+                                            </button>
+                                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" bouncesZoom="NO" keyboardDismissMode="onDrag" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="r0t-59-ij9">
+                                                <rect key="frame" x="20" y="48" width="334" height="169"/>
+                                                <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="169" id="fba-Ek-H8O"/>
+                                                </constraints>
+                                                <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="rb4-9H-0dW">
+                                                    <size key="itemSize" width="100" height="100"/>
+                                                    <size key="headerReferenceSize" width="0.0" height="0.0"/>
+                                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
+                                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
+                                                </collectionViewFlowLayout>
+                                                <cells>
+                                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="QuestionNumberCollectionViewCell" id="lS3-Py-51j" customClass="QuestionNumberCollectionViewCell" customModule="LMS" customModuleProvider="target">
+                                                        <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                        <collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="HSa-8C-5gv">
+                                                            <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                            <subviews>
+                                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3mE-Ci-mDy">
+                                                                    <rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
+                                                                    <subviews>
+                                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tq2-63-N50">
+                                                                            <rect key="frame" x="20" y="20" width="60" height="60"/>
+                                                                            <fontDescription key="fontDescription" name="AvenirNext-DemiBold" family="Avenir Next" pointSize="16"/>
+                                                                            <nil key="textColor"/>
+                                                                            <nil key="highlightedColor"/>
+                                                                        </label>
+                                                                    </subviews>
+                                                                    <color key="backgroundColor" systemColor="systemGray5Color"/>
+                                                                    <constraints>
+                                                                        <constraint firstAttribute="bottom" secondItem="tq2-63-N50" secondAttribute="bottom" constant="20" symbolic="YES" id="0cw-Z0-QGX"/>
+                                                                        <constraint firstAttribute="trailing" secondItem="tq2-63-N50" secondAttribute="trailing" constant="20" symbolic="YES" id="7Z0-6j-j2X"/>
+                                                                        <constraint firstItem="tq2-63-N50" firstAttribute="top" secondItem="3mE-Ci-mDy" secondAttribute="top" constant="20" symbolic="YES" id="xgc-SM-Len"/>
+                                                                        <constraint firstItem="tq2-63-N50" firstAttribute="leading" secondItem="3mE-Ci-mDy" secondAttribute="leading" constant="20" symbolic="YES" id="zZT-8N-wJc"/>
+                                                                    </constraints>
+                                                                </view>
+                                                            </subviews>
+                                                            <constraints>
+                                                                <constraint firstAttribute="trailing" secondItem="3mE-Ci-mDy" secondAttribute="trailing" id="7h2-Ne-1Fx"/>
+                                                                <constraint firstAttribute="bottom" secondItem="3mE-Ci-mDy" secondAttribute="bottom" id="R6x-z9-mWH"/>
+                                                                <constraint firstItem="3mE-Ci-mDy" firstAttribute="top" secondItem="HSa-8C-5gv" secondAttribute="top" id="aGx-89-MzX"/>
+                                                                <constraint firstItem="3mE-Ci-mDy" firstAttribute="leading" secondItem="HSa-8C-5gv" secondAttribute="leading" id="kBN-nB-kIA"/>
+                                                            </constraints>
+                                                        </collectionViewCellContentView>
+                                                        <connections>
+                                                            <outlet property="customCellView" destination="3mE-Ci-mDy" id="IJm-2I-kUq"/>
+                                                            <outlet property="serialNoLabel" destination="tq2-63-N50" id="c1m-PZ-XYX"/>
+                                                        </connections>
+                                                    </collectionViewCell>
+                                                </cells>
+                                            </collectionView>
+                                        </subviews>
+                                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                                        <constraints>
+                                            <constraint firstAttribute="bottom" secondItem="r0t-59-ij9" secondAttribute="bottom" constant="20" id="75j-We-Af9"/>
+                                            <constraint firstItem="c9o-Hc-O5Q" firstAttribute="leading" secondItem="6jc-jx-UuD" secondAttribute="leading" constant="10" id="7RL-No-hWZ"/>
+                                            <constraint firstItem="r0t-59-ij9" firstAttribute="leading" secondItem="6jc-jx-UuD" secondAttribute="leading" constant="20" id="WiC-g2-puG"/>
+                                            <constraint firstItem="c9o-Hc-O5Q" firstAttribute="top" secondItem="6jc-jx-UuD" secondAttribute="top" constant="10" id="pIB-zZ-9HJ"/>
+                                            <constraint firstItem="r0t-59-ij9" firstAttribute="top" secondItem="c9o-Hc-O5Q" secondAttribute="bottom" constant="8" symbolic="YES" id="pXb-Ud-tSb"/>
+                                            <constraint firstAttribute="trailing" secondItem="r0t-59-ij9" secondAttribute="trailing" constant="20" id="yaO-Lx-ZOC"/>
+                                        </constraints>
+                                    </view>
+                                </subviews>
+                                <color key="backgroundColor" systemColor="secondaryLabelColor"/>
+                                <constraints>
+                                    <constraint firstItem="6jc-jx-UuD" firstAttribute="leading" secondItem="pG6-Zn-0fu" secondAttribute="leading" constant="20" symbolic="YES" id="6wj-8C-bqs"/>
+                                    <constraint firstItem="6jc-jx-UuD" firstAttribute="height" secondItem="pG6-Zn-0fu" secondAttribute="height" multiplier="0.331006" priority="250" id="Dvr-Dc-WKi"/>
+                                    <constraint firstItem="6jc-jx-UuD" firstAttribute="centerX" secondItem="pG6-Zn-0fu" secondAttribute="centerX" id="F0e-8P-jfs"/>
+                                    <constraint firstItem="6jc-jx-UuD" firstAttribute="centerY" secondItem="pG6-Zn-0fu" secondAttribute="centerY" id="ZQN-Bg-Pgo"/>
+                                    <constraint firstAttribute="trailing" secondItem="6jc-jx-UuD" secondAttribute="trailing" constant="20" symbolic="YES" id="kuv-ga-YIW"/>
+                                </constraints>
+                            </view>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="Qrs-IP-Cer"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="wYN-z0-CWx" firstAttribute="trailing" secondItem="Qrs-IP-Cer" secondAttribute="trailing" id="5t4-Yk-gv7"/>
+                            <constraint firstAttribute="trailing" secondItem="QsQ-ni-5ad" secondAttribute="trailing" id="D5C-5S-7yB"/>
+                            <constraint firstItem="Tvf-PG-bnB" firstAttribute="bottom" secondItem="Qrs-IP-Cer" secondAttribute="bottom" id="G8G-hD-YZq"/>
+                            <constraint firstItem="Tvf-PG-bnB" firstAttribute="leading" secondItem="Qrs-IP-Cer" secondAttribute="leading" id="Ip8-Ma-0hA"/>
+                            <constraint firstItem="Tvf-PG-bnB" firstAttribute="top" secondItem="QsQ-ni-5ad" secondAttribute="bottom" id="Pb3-Vs-vQr"/>
+                            <constraint firstItem="QsQ-ni-5ad" firstAttribute="top" secondItem="Qrs-IP-Cer" secondAttribute="top" id="ZR7-dn-9Gh"/>
+                            <constraint firstItem="pG6-Zn-0fu" firstAttribute="top" secondItem="Qrs-IP-Cer" secondAttribute="top" id="fBa-ud-Z7e"/>
+                            <constraint firstItem="QsQ-ni-5ad" firstAttribute="leading" secondItem="Qrs-IP-Cer" secondAttribute="leading" id="fNI-lm-e9b"/>
+                            <constraint firstItem="Qrs-IP-Cer" firstAttribute="trailing" secondItem="pG6-Zn-0fu" secondAttribute="trailing" id="hJV-U3-Knm"/>
+                            <constraint firstItem="wYN-z0-CWx" firstAttribute="bottom" secondItem="Qrs-IP-Cer" secondAttribute="bottom" id="i9L-fE-LsP"/>
+                            <constraint firstItem="Tvf-PG-bnB" firstAttribute="trailing" secondItem="Qrs-IP-Cer" secondAttribute="trailing" id="jwO-6a-cJo"/>
+                            <constraint firstItem="wYN-z0-CWx" firstAttribute="leading" secondItem="Qrs-IP-Cer" secondAttribute="leading" id="klc-S0-uE9"/>
+                            <constraint firstItem="wYN-z0-CWx" firstAttribute="top" secondItem="Qrs-IP-Cer" secondAttribute="top" id="mbT-Oj-M6X"/>
+                            <constraint firstItem="Qrs-IP-Cer" firstAttribute="bottom" secondItem="pG6-Zn-0fu" secondAttribute="bottom" id="wIj-VJ-aOJ"/>
+                            <constraint firstItem="pG6-Zn-0fu" firstAttribute="leading" secondItem="Qrs-IP-Cer" secondAttribute="leading" id="yK3-Xg-dVE"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="answerInstructionLabel" destination="Jt7-1L-bCv" id="Tyq-As-chy"/>
+                        <outlet property="answerTF" destination="vIi-eT-VBF" id="AQu-0c-YgD"/>
+                        <outlet property="boolTableView" destination="oEF-rV-Mbc" id="Io2-5l-L3t"/>
+                        <outlet property="checkImageView" destination="pCK-9B-Sih" id="k0c-p6-PX7"/>
+                        <outlet property="collectionViewHeightConstraint" destination="fba-Ek-H8O" id="F5x-Gu-Hgi"/>
+                        <outlet property="customSubmittedView" destination="cEJ-gi-p1m" id="lYP-a2-zzN"/>
+                        <outlet property="dragView" destination="llW-SS-PnM" id="YSh-wv-T69"/>
+                        <outlet property="mcqTableView" destination="0fX-TV-SOr" id="c9N-ec-EXc"/>
+                        <outlet property="mcqView" destination="zf4-AM-HrR" id="ren-g7-cie"/>
+                        <outlet property="navigationBar" destination="QsQ-ni-5ad" id="8b7-ff-4pA"/>
+                        <outlet property="nextButton" destination="0AJ-De-JH5" id="vQC-DB-4Kp"/>
+                        <outlet property="okButton" destination="43s-n9-J9e" id="cq2-5U-D1Y"/>
+                        <outlet property="option1TableView" destination="zYB-b2-jFe" id="uzS-L2-Hwc"/>
+                        <outlet property="option2TableView" destination="r2Z-iD-ScN" id="a15-JP-eyq"/>
+                        <outlet property="questionCustomView" destination="6jc-jx-UuD" id="EDe-98-2wD"/>
+                        <outlet property="questionLabel" destination="ScL-L9-BfK" id="0E2-1L-gqI"/>
+                        <outlet property="questionNumberCollectionView" destination="r0t-59-ij9" id="ZR1-iS-3UA"/>
+                        <outlet property="questionNumberLabel" destination="AZT-U5-XmL" id="vn7-dU-o9W"/>
+                        <outlet property="questionNumberView" destination="pG6-Zn-0fu" id="FTS-7J-0zP"/>
+                        <outlet property="questionNumbersButton" destination="O0Q-aO-DQf" id="kN0-04-C2s"/>
+                        <outlet property="questionTypeLabel" destination="nAO-ky-VUE" id="sNQ-sp-ZFj"/>
+                        <outlet property="quizSubmittedView" destination="wYN-z0-CWx" id="XSn-Ei-Dt1"/>
+                        <outlet property="quizView" destination="pB0-FE-TR7" id="D7t-6r-SW4"/>
+                        <outlet property="resultStatusLabel" destination="tbU-Bo-Zu9" id="nZv-FC-Qgj"/>
+                        <outlet property="scoreLabel" destination="h8G-zf-E4g" id="fS1-tu-N6V"/>
+                        <outlet property="skipButton" destination="GUP-Xn-OPP" id="Snd-wI-HLM"/>
+                        <outlet property="timerLabel" destination="Aq1-m1-wu1" id="0Co-mp-omq"/>
+                        <outlet property="trueFalseView" destination="0xR-zA-0or" id="qlA-SM-ycE"/>
+                        <outlet property="viewAnswerButton" destination="E3u-Ue-Q0x" id="Yb9-Cq-OjU"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="1Ap-8a-0vc" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="3186.9565217391305" y="2282.608695652174"/>
+        </scene>
+        <!--You Tube View Controller-->
+        <scene sceneID="TYE-mb-iZA">
+            <objects>
+                <viewController storyboardIdentifier="YouTubeViewController" id="WGO-Qh-ghF" customClass="YouTubeViewController" customModule="LMS" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Eb1-9d-2zB">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" translucent="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EHd-JC-Ptt">
+                                <rect key="frame" x="0.0" y="20" width="414" height="44"/>
+                                <color key="barTintColor" name="AccentColor"/>
+                                <textAttributes key="titleTextAttributes">
+                                    <fontDescription key="fontDescription" name="AvenirNext-Medium" family="Avenir Next" pointSize="15"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                </textAttributes>
+                                <items>
+                                    <navigationItem title="Video Player" id="USK-vv-mXd">
+                                        <barButtonItem key="leftBarButtonItem" image="arrow.backward" catalog="system" id="enW-OW-A2q">
+                                            <color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                            <connections>
+                                                <action selector="backAction:" destination="WGO-Qh-ghF" id="TxU-xj-u4V"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IhF-y4-5DX">
+                                <rect key="frame" x="20" y="243" width="374" height="250"/>
+                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="250" id="2ZR-fn-bhv"/>
+                                </constraints>
+                                <wkWebViewConfiguration key="configuration">
+                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                    <wkPreferences key="preferences"/>
+                                </wkWebViewConfiguration>
+                            </wkWebView>
+                        </subviews>
+                        <viewLayoutGuide key="safeArea" id="RTr-C1-AFs"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                        <constraints>
+                            <constraint firstItem="EHd-JC-Ptt" firstAttribute="top" secondItem="RTr-C1-AFs" secondAttribute="top" id="0fW-p9-FQm"/>
+                            <constraint firstItem="EHd-JC-Ptt" firstAttribute="leading" secondItem="RTr-C1-AFs" secondAttribute="leading" id="BPF-lm-vta"/>
+                            <constraint firstItem="IhF-y4-5DX" firstAttribute="leading" secondItem="RTr-C1-AFs" secondAttribute="leading" constant="20" id="CMe-2l-Jzp"/>
+                            <constraint firstItem="RTr-C1-AFs" firstAttribute="trailing" secondItem="IhF-y4-5DX" secondAttribute="trailing" constant="20" id="EGK-ex-LNx"/>
+                            <constraint firstAttribute="trailing" secondItem="EHd-JC-Ptt" secondAttribute="trailing" id="EgO-yy-vdq"/>
+                            <constraint firstItem="IhF-y4-5DX" firstAttribute="centerY" secondItem="Eb1-9d-2zB" secondAttribute="centerY" id="kx7-iv-p8s"/>
+                            <constraint firstItem="IhF-y4-5DX" firstAttribute="centerX" secondItem="Eb1-9d-2zB" secondAttribute="centerX" id="lhK-fx-NXa"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="navigationBar" destination="EHd-JC-Ptt" id="xyY-On-FOu"/>
+                        <outlet property="youtubeWebView" destination="IhF-y4-5DX" id="hU4-e5-J8M"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="4hJ-0A-vAw" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="2424.6376811594205" y="6015.489130434783"/>
         </scene>
     </scenes>
+    <resources>
+        <image name="Finlabs" width="321" height="65"/>
+        <image name="Hinduja College" width="172" height="213"/>
+        <image name="Hinduja Foundation (White)" width="3474" height="1698"/>
+        <image name="arrow.backward" catalog="system" width="128" height="95"/>
+        <image name="arrow.left" catalog="system" width="128" height="95"/>
+        <image name="backward-arrows-couple" width="512" height="512"/>
+        <image name="book.closed.fill" catalog="system" width="115" height="128"/>
+        <image name="check-mark" width="512" height="512"/>
+        <image name="checkmark.square" catalog="system" width="128" height="114"/>
+        <image name="chevron.down" catalog="system" width="128" height="70"/>
+        <image name="chevron.right" catalog="system" width="97" height="128"/>
+        <image name="circle" catalog="system" width="128" height="123"/>
+        <image name="circle.fill" catalog="system" width="128" height="123"/>
+        <image name="circle.grid.3x3.fill" catalog="system" width="128" height="111"/>
+        <image name="clock" catalog="system" width="128" height="123"/>
+        <image name="fast-forward" width="512" height="512"/>
+        <image name="filter" width="21.333333969116211" height="21.333333969116211"/>
+        <image name="graduationcap.fill" catalog="system" width="128" height="108"/>
+        <image name="ic_clock" width="512" height="512"/>
+        <image name="ic_drag_white" width="683" height="683"/>
+        <image name="ic_slno_bannar" width="60" height="66"/>
+        <image name="ic_video_call" width="512" height="512"/>
+        <image name="icloud.and.arrow.down.fill" catalog="system" width="128" height="111"/>
+        <image name="icloud.and.arrow.up.fill" catalog="system" width="128" height="108"/>
+        <image name="line.3.horizontal.circle" catalog="system" width="128" height="123"/>
+        <image name="login-lock" width="131" height="127"/>
+        <image name="multiply.circle.fill" catalog="system" width="128" height="123"/>
+        <image name="newAssessment-image" width="64" height="64"/>
+        <image name="pencil.and.list.clipboard" catalog="system" width="114" height="128"/>
+        <image name="person.fill" catalog="system" width="128" height="120"/>
+        <image name="play-button-arrowhead" width="512" height="512"/>
+        <image name="plus" catalog="system" width="128" height="113"/>
+        <image name="scorn-test" width="60" height="46"/>
+        <image name="session_background" width="362" height="84"/>
+        <image name="square" catalog="system" width="128" height="114"/>
+        <image name="stopwatch" catalog="system" width="121" height="128"/>
+        <image name="study-material" width="800" height="800"/>
+        <image name="x.circle" catalog="system" width="128" height="123"/>
+        <namedColor name="AccentColor">
+            <color red="0.050999999046325684" green="0.29800000786781311" blue="0.53299999237060547" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </namedColor>
+        <namedColor name="orange">
+            <color red="0.98000001907348633" green="0.52899998426437378" blue="0.016000000759959221" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </namedColor>
+        <namedColor name="secondary">
+            <color red="0.10599999874830246" green="0.37599998712539673" blue="0.59600001573562622" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </namedColor>
+        <systemColor name="labelColor">
+            <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+        <systemColor name="secondaryLabelColor">
+            <color red="0.23529411764705882" green="0.23529411764705882" blue="0.2627450980392157" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+        <systemColor name="systemGray3Color">
+            <color red="0.7803921568627451" green="0.7803921568627451" blue="0.80000000000000004" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+        <systemColor name="systemGray5Color">
+            <color red="0.89803921568627454" green="0.89803921568627454" blue="0.91764705882352937" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+        <systemColor name="systemGray6Color">
+            <color red="0.94901960784313721" green="0.94901960784313721" blue="0.96862745098039216" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+        <systemColor name="systemRedColor">
+            <color red="1" green="0.23137254901960785" blue="0.18823529411764706" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </systemColor>
+    </resources>
 </document>

+ 199 - 0
LMS/View Controller/AssessmentBeneficiaryViewController.swift

@@ -6,13 +6,103 @@
 //
 
 import UIKit
+import SideMenu
 
 class AssessmentBeneficiaryViewController: UIViewController {
 
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var assessmentListTableView: UITableView!
+    
+    var viewModel = AssessmentBeneficiaryViewModel()
+    var assessmentListModel = [AssessmentListModel]()
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    var upcomingAssessment = [AssessmentListModel]()
+    var pastAssessment = [AssessmentListModel]()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        assessmentListTableView.delegate = self
+        assessmentListTableView.dataSource = self
+        setupUI()
+    }
+    
+    func setupUI() {
+        navigationBar.topItem?.title = "Final Exam"
+    }
+    
+    override func viewWillAppear(_ animated: Bool) {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getAssessmentList(userId: userData[0].id, month: getCurrentMonth())
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func formattedDateFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func formattedTimeFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            outputFormatter.timeStyle = .short
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func getCurrentMonth() -> String {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "MM-yyyy"
+        let formattedMonth = format.string(from: date)
+        print(formattedMonth)
+        return formattedMonth
+    }
+    
+    private func executeRepeatedly() {
+        // put your code here
+        self.assessmentListTableView.reloadData()
+        DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) { [weak self] in
+            self?.executeRepeatedly()
+        }
+    }
+    
+    func setArrayData(array: [AssessmentListModel]) {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        let time = format.string(from: date)
+
+        
+        for item in array {
+            let assessmentTime = format.date(from: item.startDateTime!)
+            let currentTime = format.date(from: time)
+
+            if assessmentTime?.compare(currentTime!) == .orderedAscending {
+                pastAssessment.append(item)
+            } else {
+                upcomingAssessment.append(item)
+            }
+        }
+        
+        let upcoming = upcomingAssessment.sorted(by: {$0.startDateTime! < $1.startDateTime!})
+        let past = pastAssessment.sorted(by: {$0.startDateTime! > $1.startDateTime!})
+        self.assessmentListModel = upcoming + past
+        executeRepeatedly()
     }
     
 
@@ -25,5 +115,114 @@ class AssessmentBeneficiaryViewController: UIViewController {
         // Pass the selected object to the new view controller.
     }
     */
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+
+}
+
+extension AssessmentBeneficiaryViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return assessmentListModel.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "AssessmentListTableViewCell", for: indexPath) as? AssessmentListTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.selectionStyle = .none
+        cell.customView.layer.cornerRadius = 10
+        cell.customView.layer.borderWidth = 1
+        cell.customView.layer.borderColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
+        cell.serialNoLabel.text = "\(indexPath.row + 1)"
+        cell.activeStatusLabel.text = assessmentListModel[indexPath.row].assessment?.mode
+        if assessmentListModel[indexPath.row].assessment?.mode == "Online" {
+            cell.activeStatusImageView.tintColor = #colorLiteral(red: 0.3843137255, green: 0.6470588235, blue: 0.262745098, alpha: 1)
+        } else {
+            cell.activeStatusImageView.tintColor = #colorLiteral(red: 0.9098039216, green: 0.2980392157, blue: 0.2470588235, alpha: 1)
+        }
+        cell.timeLabel.isHidden = true
+        cell.dateLabel.text = " " + (formattedDateFromString(dateString: assessmentListModel[indexPath.row].startDateTime!, withFormat: "dd MMM hh:mm a") ?? "") + " - " + (formattedDateFromString(dateString: assessmentListModel[indexPath.row].endDateTime!, withFormat: "dd MMM hh:mm a") ?? "") + " "
+        cell.timeLabel.text = (formattedTimeFromString(dateString: assessmentListModel[indexPath.row].startDateTime!, withFormat: "HH:mm") ?? "") + " to " + (formattedTimeFromString(dateString: assessmentListModel[indexPath.row].endDateTime!, withFormat: "HH:mm") ?? "")
+        cell.assessmentNameLabel.text = assessmentListModel[indexPath.row].assessment?.name
+        cell.startButton.layer.cornerRadius = 5
+        if assessmentListModel[indexPath.row].attempted == true {
+            cell.startButton.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
+            cell.startButton.setTitle("Submitted", for: .normal)
+            cell.startButton.isUserInteractionEnabled = false
+        } else {
+            cell.startButton.backgroundColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+            cell.startButton.setTitle("Start", for: .normal)
+            cell.startButton.isUserInteractionEnabled = true
+            cell.startButton.tag = indexPath.row
+            cell.startButton.addTarget(self, action: #selector(startQuiz), for: .touchUpInside)
+        }
+        
+        return cell
+    }
+    
+    @objc func startQuiz(sender: UIButton) {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        let time = format.string(from: date)
+        let currentTime = format.date(from: time)
+        let startTime = format.date(from: assessmentListModel[sender.tag].startDateTime!)
+        let endTime = format.date(from: assessmentListModel[sender.tag].endDateTime!)
+        
+        if currentTime! >= startTime! && currentTime! <= endTime! {
+            if assessmentListModel[sender.tag].assessment?.mode == "Online" {
+                let vc = self.storyboard?.instantiateViewController(withIdentifier: "InstructionViewController") as! InstructionViewController
+                vc.assessmentId = assessmentListModel[sender.tag].assessment?.id ?? 0
+                vc.assessmentName = assessmentListModel[sender.tag].assessment?.name ?? ""
+                vc.quesCount = assessmentListModel[sender.tag].assessment?.totalQuestions ?? 0
+                vc.assessmentType = "Final Exam"
+                self.navigationController?.pushViewController(vc, animated: true)
+            } else {
+                let vc = self.storyboard?.instantiateViewController(withIdentifier: "OfflineAssessmentViewController") as! OfflineAssessmentViewController
+                let fileType = assessmentListModel[sender.tag].assessment?.fileType
+                let fileExtension = fileType!.components(separatedBy: "/")[1]
+                vc.fileExtension = fileExtension
+                vc.assessmentName = assessmentListModel[sender.tag].assessment?.name ?? ""
+                vc.assessmentId = assessmentListModel[sender.tag].assessment?.id ?? 0
+                vc.fileId = assessmentListModel[sender.tag].assessment?.fileId ?? ""
+                self.navigationController?.pushViewController(vc, animated: true)
+            }
+        } else if currentTime! >= startTime! && currentTime! >= endTime! {
+            Alert.showAlert(on: self, with: "Times Up", message: "Exam is already finished!")
+        } else {
+            Alert.showAlert(on: self, with: "Upcoming", message: "Exam will start on \(formattedDateFromString(dateString: assessmentListModel[sender.tag].startDateTime!, withFormat: "dd-MMM-yyyy hh:mm a") ?? "")")
+        }
+    }
+}
 
+extension AssessmentBeneficiaryViewController: AssessmentBeneficiaryProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func assessmentListModel(model: [AssessmentListModel]) {
+        self.setArrayData(array: model)
+    }
+    
+    func quizAttempts(assessmentId: Int, count: Int) {
+        if count < 2 {
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "InstructionViewController") as! InstructionViewController
+            vc.assessmentId = assessmentId
+            self.navigationController?.pushViewController(vc, animated: true)
+        } else {
+            Alert.showAlert(on: self, with: "Attempts Exceed!", message: "You Have Already Attemped Exam 2 Times.")
+        }
+    }
 }

+ 64 - 11
LMS/View Controller/AudioViewController.swift

@@ -6,24 +6,77 @@
 //
 
 import UIKit
+import SideMenu
+import AVFoundation
 
 class AudioViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var currentTimeLabel: UILabel!
+    @IBOutlet var totalTimeLabel: UILabel!
+    @IBOutlet var progressSlider: UISlider!
+    @IBOutlet var backwardButton: UIButton!
+    @IBOutlet var playButton: UIButton!
+    @IBOutlet var forwardButton: UIButton!
+    
+    var pageName = String()
+    var fileId = String()
+    
+    var player:AVPlayer?
+    var playerItem:AVPlayerItem?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        navigationBar.topItem?.title = pageName
     }
     
-
+    override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        
+        let url = URL(string: "http://3.7.239.194:8080/\(fileId).mp3")
+        let playerItem:AVPlayerItem = AVPlayerItem(url: url!)
+        player = AVPlayer(playerItem: playerItem)
+        
+        let playerLayer=AVPlayerLayer(player: player!)
+        playerLayer.frame = CGRect(x:0, y:0, width:10, height:50)
+        self.view.layer.addSublayer(playerLayer)
+    }
+    
+    
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func backAction(_ sender: UIBarButtonItem) {
+        self.navigationController?.popViewController(animated: true)
     }
-    */
-
+    
+    @IBAction func playAction(_ sender: UIButton) {
+        if player?.rate == 0 {
+            player!.play()
+            playButton.setImage(UIImage(named: "pause"), for: .normal)
+        } else {
+            player!.pause()
+            playButton.setImage(UIImage(named: "play-button-arrowhead"), for: .normal)
+        }
+    }
+    
+    @IBAction func progressAction(_ sender: UISlider) {
+        let seconds : Int64 = Int64(sender.value)
+        let targetTime:CMTime = CMTimeMake(value: seconds, timescale: 1)
+        player!.seek(to: targetTime)
+        if player!.rate == 0 {
+            player?.play()
+        }
+    }
+    
+    
 }

+ 122 - 9
LMS/View Controller/CalendarViewController.swift

@@ -6,24 +6,137 @@
 //
 
 import UIKit
+import FSCalendar
+import SideMenu
+import Toast_Swift
 
 class CalendarViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var calendar: FSCalendar!
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    var datesWithEvent = [String]()
+//    var datesWithMultipleEvents = [String]()
+    
+    var viewModel = CalendarViewModel()
+    var calendarData = [CalendarModel]()
+    
+    fileprivate lazy var dateFormatter2: DateFormatter = {
+        let formatter = DateFormatter()
+        formatter.dateFormat = "yyyy-MM-dd"
+        return formatter
+    }()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        setupUI()
+        self.getCalendarData()
+        calendar.dataSource = self
+        calendar.delegate = self
     }
     
-
+    func setupUI() {
+        navigationBar.topItem?.title = "Calendar"
+        calendar.layer.cornerRadius = 10
+        calendar.dropShadow()
+    }
+    
+    func getCurrentMonth() -> String {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "MM-yyyy"
+        let formattedMonth = format.string(from: date)
+        print(formattedMonth)
+        return formattedMonth
+    }
+    
+    func getCalendarData() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getCalendarData(id: userData[0].id, month: getCurrentMonth())
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension CalendarViewController: FSCalendarDataSource, FSCalendarDelegate, FSCalendarDelegateAppearance {
+    func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
+        let dateString = dateFormatter2.string(from: date)
+        if self.datesWithEvent.contains(dateString) {
+            return 1
+        }
+//        if self.datesWithMultipleEvents.contains(dateString) {
+//            return 2
+//        }
+        return 0
+    }
+    
+    
+//    func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
+//
+//        let key = self.dateFormatter2.string(from: date)
+//
+//        if self.datesWithMultipleEvents.contains(key) {
+//            return [UIColor.blue]
+//        }
+//        return nil
+//    }
+    
+    func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "MeetingListViewController") as! MeetingListViewController
+        vc.calendarData = self.calendarData
+        vc.meetingDate = dateFormatter2.string(from: date)
+        vc.selectedDate = date
+        self.present(vc, animated: true, completion: nil)
+    }
+    
+    func minimumDate(for calendar: FSCalendar) -> Date {
+        return Date()
     }
-    */
+}
 
+extension CalendarViewController: CalendarProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func loadData(model: [CalendarModel]) {
+        self.calendarData = model
+        for data in model {
+            let date = data.date
+            datesWithEvent.append(date ?? "")
+        }
+        print(datesWithEvent)
+        self.calendar.reloadData()
+    }
 }

+ 301 - 9
LMS/View Controller/DashboardViewController.swift

@@ -6,24 +6,316 @@
 //
 
 import UIKit
+import SideMenu
+import Toast_Swift
 
 class DashboardViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var usernameLabel: UILabel!
+    @IBOutlet var academicYearLabel: UILabel!
+    @IBOutlet var classLabel: UILabel!
+    @IBOutlet var divisionLabel: UILabel!
+    @IBOutlet var typeSegmentControl: UISegmentedControl!
+    @IBOutlet var upcomingSessionView: UIView!
+    @IBOutlet var sessionListTableView: UITableView!
+    @IBOutlet var viewAllSessionButton: UIButton!
+    @IBOutlet var upcomingAssessmentView: UIView!
+    @IBOutlet var assessmentListTableView: UITableView!
+    @IBOutlet var viewAllAssessmentButton: UIButton!
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    let studentData = DBManager.sharedInstance.database.objects(StudentDetailsModel.self)
+    
+    var viewModel = DashboardViewModel()
+    var sessionListModel = [SessionListModel]()
+    var assessmentListModel = [AssessmentListModel]()
+    var expandedSections = Set<Int>()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        setupData()
+        upcomingSessionView.isHidden = true
+        upcomingAssessmentView.isHidden = true
+        
+        sessionListTableView.delegate = self
+        sessionListTableView.dataSource = self
+        
+        assessmentListTableView.delegate = self
+        assessmentListTableView.dataSource = self
     }
     
-
+    override func viewWillAppear(_ animated: Bool) {
+        viewModel.getSessionList(userId: userData[0].id, interventionId: "", batchId: "", schoolId: "", interventionLevelId: "", month: getCurrentMonth())
+        viewModel.getAssessmentList(userId: userData[0].id, month: getCurrentMonth())
+    }
+    
+    func setupData() {
+        navigationBar.topItem?.title = "Dashboard"
+        usernameLabel.text = "Hi \(userData[0].name),"
+        academicYearLabel.text = studentData[0].academicYear
+        classLabel.text = studentData[0].standard
+        divisionLabel.text = studentData[0].division
+    }
+    
+    func getCurrentMonth() -> String {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "MM-yyyy"
+        let formattedMonth = format.string(from: date)
+        return formattedMonth
+    }
+    
+    private func executeRepeatedly() {
+        // put your code here
+        self.sessionListTableView.reloadData()
+        self.assessmentListTableView.reloadData()
+        DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) { [weak self] in
+            self?.executeRepeatedly()
+        }
+    }
+    
+    func formattedDateFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func formatDate(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func formattedTimeFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            outputFormatter.timeStyle = .short
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+    
+    @IBAction func segmentControllClick(_ sender: Any) {
+        switch typeSegmentControl.selectedSegmentIndex {
+        case 0:
+            upcomingSessionView.isHidden = false
+            upcomingAssessmentView.isHidden = true
+        case 1:
+            upcomingSessionView.isHidden = true
+            upcomingAssessmentView.isHidden = false
+        default:
+            break
+        }
+    }
+    
+    @IBAction func viewAllSessionAction(_ sender: Any) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "SessionListViewController") as! SessionListViewController
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+    @IBAction func viewAllAssessmentAction(_ sender: Any) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "AssessmentBeneficiaryViewController") as! AssessmentBeneficiaryViewController
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension DashboardViewController: DashboardProtocol {
+    func sessionListModel(model: [SessionListModel]) {
+        if model.isEmpty == false {
+            let dateSortedData = model.sorted(by: {$0.date! > $1.date!})
+            let timeSortedData = dateSortedData.sorted(by: {$0.startTime! > $1.startTime!})
+            var i = 0
+            for item in timeSortedData {
+                if i < 4 {
+                    self.sessionListModel.append(item)
+                    i += 1
+                }
+            }
+            self.sessionListTableView.reloadData()
+            self.upcomingSessionView.isHidden = false
+        } else {
+            self.upcomingSessionView.isHidden = true
+        }
+    }
+    
+    func assessmentListModel(model: [AssessmentListModel]) {
+        if model.isEmpty == false {
+            let dateSortedData = model.sorted(by: {$0.startDateTime! > $1.startDateTime!})
+            var i = 0
+            for item in dateSortedData {
+                if i < 4 {
+                    self.assessmentListModel.append(item)
+                    i += 1
+                }
+            }
+            self.assessmentListTableView.reloadData()
+            self.upcomingAssessmentView.isHidden = false
+        } else {
+            self.upcomingAssessmentView.isHidden = true
+        }
     }
-    */
+    
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+}
 
+extension DashboardViewController: UITableViewDelegate, UITableViewDataSource {
+    
+    
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if tableView == sessionListTableView {
+            return sessionListModel.count
+        } else {
+            return assessmentListModel.count
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if tableView == sessionListTableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DashboardSessionListTableViewCell", for: indexPath) as? DashboardSessionListTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.selectionStyle = .none
+            cell.sessionCustomView.layer.cornerRadius = 10
+            cell.sessionNameLabel.text = sessionListModel[indexPath.row].scheduleTitle
+            cell.dayDateLabel.text = formattedDateFromString(dateString: sessionListModel[indexPath.row].date!, withFormat: "EEEE, MMM dd, yyyy")
+            cell.timeLabel.text = "\(formattedTimeFromString(dateString: sessionListModel[indexPath.row].startTime!, withFormat: "HH:mm") ?? "") - \(formattedTimeFromString(dateString: sessionListModel[indexPath.row].endTime!, withFormat: "HH:mm") ?? "")"
+            cell.joinButton.layer.cornerRadius = 5
+            cell.joinButton.addTarget(self, action: #selector(joinClass), for: .touchUpInside)
+            
+            return cell
+        } else {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DashboardAssessmentListTableViewCell", for: indexPath) as? DashboardAssessmentListTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.selectionStyle = .none
+            cell.assessmentCustomView.layer.cornerRadius = 10
+            cell.assessmentNameLabel.text = assessmentListModel[indexPath.row].assessment?.name
+            cell.dayDateLabel.text = " " + (formatDate(dateString: assessmentListModel[indexPath.row].startDateTime!, withFormat: "dd MMM") ?? "") + " "
+            cell.timeLabel.text = (formattedTimeFromString(dateString: assessmentListModel[indexPath.row].startDateTime!, withFormat: "HH:mm") ?? "") + " to " + (formattedTimeFromString(dateString: assessmentListModel[indexPath.row].endDateTime!, withFormat: "HH:mm") ?? "")
+            cell.activeStatusLabel.text = assessmentListModel[indexPath.row].assessment?.mode
+            if assessmentListModel[indexPath.row].assessment?.mode == "Online" {
+                cell.statusIndicatorImageView.tintColor = #colorLiteral(red: 0.3843137255, green: 0.6470588235, blue: 0.262745098, alpha: 1)
+                cell.startButton.backgroundColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+                cell.startButton.isEnabled = true
+            } else {
+                cell.statusIndicatorImageView.tintColor = #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1)
+                cell.startButton.backgroundColor = #colorLiteral(red: 0.6666666865, green: 0.6666666865, blue: 0.6666666865, alpha: 1)
+                cell.startButton.isEnabled = false
+            }
+            cell.startButton.tag = indexPath.row
+            cell.startButton.addTarget(self, action: #selector(startQuiz), for: .touchUpInside)
+            
+            return cell
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if tableView == sessionListTableView {
+            UIView.animate(withDuration: 0.3) {
+                self.sessionListTableView.performBatchUpdates(nil)
+            }
+        } else {
+            UIView.animate(withDuration: 0.3) {
+                self.assessmentListTableView.performBatchUpdates(nil)
+            }
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
+        if tableView == sessionListTableView {
+            if let cell = self.sessionListTableView.cellForRow(at: indexPath) as? DashboardSessionListTableViewCell {
+                cell.hideDetailView()
+            }
+        } else {
+            if let cell = self.assessmentListTableView.cellForRow(at: indexPath) as? DashboardAssessmentListTableViewCell {
+                cell.hideDetailView()
+            }
+        }
+    }
+    
+    @objc func joinClass(sender: UIButton){
+        print(sender.tag)
+        guard let url = URL(string: sessionListModel[sender.tag].link ?? "") else { return }
+        print(sessionListModel[sender.tag].link ?? "")
+        UIApplication.shared.open(url)
+    }
+    
+    @objc func startQuiz(sender: UIButton) {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        let time = format.string(from: date)
+        let currentTime = format.date(from: time)
+        let startTime = format.date(from: assessmentListModel[sender.tag].startDateTime!)
+        let endTime = format.date(from: assessmentListModel[sender.tag].endDateTime!)
+        
+        if currentTime! >= startTime! && currentTime! <= endTime! {
+            if assessmentListModel[sender.tag].assessment?.mode == "Online" {
+                let vc = self.storyboard?.instantiateViewController(withIdentifier: "InstructionViewController") as! InstructionViewController
+                vc.assessmentId = assessmentListModel[sender.tag].assessment?.id ?? 0
+                vc.assessmentName = assessmentListModel[sender.tag].assessment?.name ?? ""
+                self.navigationController?.pushViewController(vc, animated: true)
+            } else {
+                let vc = self.storyboard?.instantiateViewController(withIdentifier: "OfflineAssessmentViewController") as! OfflineAssessmentViewController
+                let fileType = assessmentListModel[sender.tag].assessment?.fileType
+                let fileExtension = fileType!.components(separatedBy: "/")[1]
+                vc.fileExtension = fileExtension
+                vc.assessmentName = assessmentListModel[sender.tag].assessment?.name ?? ""
+                vc.assessmentId = assessmentListModel[sender.tag].assessment?.id ?? 0
+                vc.fileId = assessmentListModel[sender.tag].assessment?.fileId ?? ""
+                self.navigationController?.pushViewController(vc, animated: true)
+            }
+        } else if currentTime! >= startTime! && currentTime! >= endTime! {
+            Alert.showAlert(on: self, with: "Times Up", message: "Exam is already finished!")
+        } else {
+            Alert.showAlert(on: self, with: "Upcoming", message: "Exam will start on \(formattedDateFromString(dateString: assessmentListModel[sender.tag].startDateTime!, withFormat: "dd-MMM-yyyy hh:mm a") ?? "")")
+        }
+    }
 }

+ 87 - 10
LMS/View Controller/InstructionViewController.swift

@@ -8,22 +8,99 @@
 import UIKit
 
 class InstructionViewController: UIViewController {
-
+    
+    @IBOutlet var instructionTableView: UITableView!
+    
+    var assessmentType = String()
+    var assessmentId = Int()
+    var assessmentName = String()
+    
+    var quizInstruction = [String]()
+    var quizTime = Int()
+    var quesCount = Int()
+    
+    var viewModel = InstructionViewModel()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        instructionTableView.delegate = self
+        instructionTableView.dataSource = self
+        setupData()
     }
     
-
+    override func viewWillAppear(_ animated: Bool) {
+        getQuizTime()
+    }
+    
+    func setupData() {
+        quizInstruction = ["There will be \(quesCount) questions for digital literacy assessment.", "For each question only one possible answer can be given.", "You have to choose the correct one by clicking the mouse.", "Exam can be accessed only twice before final submission.", "The time limit will be \(quizTime) minutes."]
+        instructionTableView.reloadData()
+    }
+    
+    func getQuizTime() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getQuizTime(assessmentId: assessmentId) {
+                // Update the UI with the fetched data
+                if let time = self.viewModel.quizTime {
+                    // Update your UI components with the responseData
+                    self.quizTime = time
+                    self.setupData()
+                }
+            }
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    
+    @IBAction func backAction(_ sender: Any) {
+        self.navigationController?.popViewController(animated: true)
+    }
+    
+    @IBAction func continueAction(_ sender: Any) {
+        if assessmentType == "Assessment" {
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "NewQuizViewController") as! NewQuizViewController
+            vc.assessmentId = self.assessmentId
+            vc.assessmentName = self.assessmentName
+            vc.quesCount = quesCount
+            vc.quizTime = quizTime
+            self.navigationController?.pushViewController(vc, animated: true)
+        } else {
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "QuizViewController") as! QuizViewController
+            vc.assessmentId = self.assessmentId
+            vc.assessmentName = self.assessmentName
+            vc.quesNo = quesCount
+            self.navigationController?.pushViewController(vc, animated: true)
+        }
     }
-    */
+    
+}
 
+extension InstructionViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return AppConstant.quizInstruction.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "InstructionTableViewCell", for: indexPath) as? InstructionTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.instructionLabel.text = "\(indexPath.row + 1). \(quizInstruction[indexPath.row])"
+        
+        return cell
+    }
 }

+ 129 - 9
LMS/View Controller/LessonListViewController.swift

@@ -6,24 +6,144 @@
 //
 
 import UIKit
+import SideMenu
+import Toast_Swift
 
 class LessonListViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var contentNameLabel: UILabel!
+    @IBOutlet var contentListTableView: UITableView!
+    
+    var viewModel = LessonListViewModel()
+    var lessonListModel = [LessonListModel]()
+    var lessonId = Int()
+    var contentName = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        contentListTableView.delegate = self
+        contentListTableView.dataSource = self
+        getLessonList()
+        setupData()
     }
     
-
+    func setupData() {
+        contentNameLabel.text = "\(contentName) ->"
+    }
+    
+    func getLessonList() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getLessonsList(id: lessonId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func backAction(_ sender: UIBarButtonItem) {
+        self.navigationController?.popViewController(animated: true)
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension LessonListViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return lessonListModel.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "ContentListTableViewCell", for: indexPath) as? ContentListTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.selectionStyle = .none
+        cell.customView.dropShadow()
+        cell.customView.layer.cornerRadius = 10
+        switch lessonListModel[indexPath.row].type {
+        case "scorm":
+            cell.contentImageView.image = UIImage(named: "scorn-test")
+        case "pdf":
+            cell.contentImageView.image = UIImage(named: "pdf")
+        case "jpeg":
+            cell.contentImageView.image = UIImage(named: "jpg")
+        case "mp4":
+            cell.contentImageView.image = UIImage(named: "video")
+        case "youtube":
+            cell.contentImageView.image = UIImage(named: "video")
+        case "mp3":
+            cell.contentImageView.image = UIImage(named: "mp3")
+        case "docx":
+            cell.contentImageView.image = UIImage(named: "docx")
+        default:
+            cell.contentImageView.image = UIImage(named: "docx")
+        }
+        cell.contentLabel.text = lessonListModel[indexPath.row].name
+        
+        return cell
     }
-    */
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        switch lessonListModel[indexPath.row].type {
+        case "mp4":
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "VideoViewController") as! VideoViewController
+            vc.videoId = lessonListModel[indexPath.row].fileId ?? ""
+            vc.pageName = lessonListModel[indexPath.row].name ?? ""
+            self.navigationController?.pushViewController(vc, animated: true)
+        case "youtube":
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "YouTubeViewController") as! YouTubeViewController
+            vc.youtubeId = lessonListModel[indexPath.row].fileId ?? ""
+            vc.pageName = lessonListModel[indexPath.row].name ?? ""
+            self.navigationController?.pushViewController(vc, animated: true)
+        case "mp3":
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "AudioViewController") as! AudioViewController
+            vc.fileId = lessonListModel[indexPath.row].fileId ?? ""
+            vc.pageName = lessonListModel[indexPath.row].name ?? ""
+            self.navigationController?.pushViewController(vc, animated: true)
+        case "scorm":
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "ScromViewController") as! ScromViewController
+            vc.id = lessonListModel[indexPath.row].fileId ?? ""
+            vc.docType = lessonListModel[indexPath.row].type ?? ""
+            vc.name = lessonListModel[indexPath.row].name ?? ""
+            self.navigationController?.pushViewController(vc, animated: true)
+        default:
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "PdfReaderViewController") as! PdfReaderViewController
+            vc.id = lessonListModel[indexPath.row].fileId ?? ""
+            vc.docType = lessonListModel[indexPath.row].type ?? ""
+            vc.name = lessonListModel[indexPath.row].name ?? ""
+            self.navigationController?.pushViewController(vc, animated: true)
+        }
+    }
+}
 
+extension LessonListViewController: LessonListProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func lessonListModel(model: [LessonListModel]) {
+        self.lessonListModel = model
+        self.contentListTableView.reloadData()
+    }
 }

+ 79 - 0
LMS/View Controller/LessonViewController.swift

@@ -6,13 +6,42 @@
 //
 
 import UIKit
+import Toast_Swift
 
 class LessonViewController: UIViewController {
 
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var lessonNameLabel: UILabel!
+    @IBOutlet var lessonsTableView: UITableView!
+    
+    var viewModel = LessonViewModel()
+    var lessonModel = [LessonModel]()
+    var unitId = Int()
+    var interventionId = Int()
+    var interventionLevelId = Int()
+    var lessonName = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
+        setupData()
+        viewModel.delegate = self
+        lessonsTableView.delegate = self
+        lessonsTableView.dataSource = self
+        getLessons()
+    }
+    
+    func setupData() {
+        lessonNameLabel.text = "\(lessonName) ->"
+    }
+    
+    func getLessons() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getLessons(interventionId: interventionId, interventionLevelId: interventionLevelId, unitId: unitId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
     }
     
 
@@ -25,5 +54,55 @@ class LessonViewController: UIViewController {
         // Pass the selected object to the new view controller.
     }
     */
+    
+    
+    @IBAction func backAction(_ sender: UIBarButtonItem) {
+        self.navigationController?.popViewController(animated: true)
+    }
+    
+}
 
+extension LessonViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return lessonModel.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "LessonTableViewCell", for: indexPath) as? LessonTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.selectionStyle = .none
+        cell.customCellView.layer.cornerRadius = 10
+        cell.customCellView.dropShadow()
+        cell.lessonNameLabel.text = "Lesson \(indexPath.row + 1): \(lessonModel[indexPath.row].name ?? "")"
+        
+        return cell
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "LessonListViewController") as! LessonListViewController
+        vc.lessonId = lessonModel[indexPath.row].id ?? 0
+        vc.contentName = "\(lessonName) : " + "Lesson \(indexPath.row + 1): \(lessonModel[indexPath.row].name ?? "")"
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+}
+
+extension LessonViewController: LessonProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func lessonModel(model: [LessonModel]) {
+        self.lessonModel = model
+        self.lessonsTableView.reloadData()
+    }
 }

+ 113 - 10
LMS/View Controller/LoginViewController.swift

@@ -6,24 +6,127 @@
 //
 
 import UIKit
+import Toast_Swift
 
 class LoginViewController: UIViewController {
-
+    
+    @IBOutlet var lockView: UIView!
+    @IBOutlet var lockImageView: UIImageView!
+    @IBOutlet var signInTitleLabel: UILabel!
+    @IBOutlet var usernameTF: UITextField!
+    @IBOutlet var passwordTF: UITextField!
+    @IBOutlet var signInButton: UIButton!
+    
+    var viewModel = LoginViewModel()
+    var timer = Timer()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        setupUI()
+        
+        // Add a tap gesture recognizer to the view
+        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
+        self.view.addGestureRecognizer(tapGesture)
     }
     
-
+    override func viewDidDisappear(_ animated: Bool) {
+        scheduledTimerWithTimeInterval()
+    }
+    
+    override var preferredStatusBarStyle : UIStatusBarStyle {
+        return .lightContent
+    }
+    
+    func setupUI() {
+        lockView.layer.borderWidth = 1
+        lockView.layer.borderColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1)
+        lockView.layer.cornerRadius = lockView.frame.height / 2
+        
+        let attributes: [NSAttributedString.Key: Any] = [
+            .foregroundColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.69), // Change to your desired color
+        ]
+        
+        usernameTF.attributedPlaceholder = NSAttributedString(string: PlaceHolderText.UserName, attributes: attributes)
+        usernameTF.layer.borderWidth = 2
+        usernameTF.layer.borderColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1)
+        usernameTF.layer.cornerRadius = 10
+        
+        passwordTF.attributedPlaceholder = NSAttributedString(string: PlaceHolderText.Password, attributes: attributes)
+        passwordTF.layer.borderWidth = 2
+        passwordTF.layer.borderColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1)
+        passwordTF.layer.cornerRadius = 10
+        
+        signInButton.layer.cornerRadius = 15
+    }
+    
+    @objc func handleTap(_ sender: UITapGestureRecognizer) {
+        // Call this method when a tap gesture is recognized
+        self.view.endEditing(true) // Resign first responder status for the text field
+    }
+    
+    func login() {
+        if usernameTF.text?.isEmpty == true {
+            self.view.makeToast("Enter username!")
+        } else if passwordTF.text?.isEmpty == true {
+            self.view.makeToast("Enter password!")
+        } else {
+            if Reachability.isConnectedToNetwork() {
+                viewModel.login(email: usernameTF.text!, password: passwordTF.text!)
+            } else {
+                Alert.showInternetFailureAlert(on: self)
+            }
+        }
+    }
+    
+    func scheduledTimerWithTimeInterval() {
+        let time = UserDefaults.standard.value(forKey: "tokenExpire") as! Int
+        timer = Timer.scheduledTimer(timeInterval: TimeInterval(time), target: self, selector: #selector(self.refresh), userInfo: nil, repeats: true)
+    }
+    
+    @objc func refresh() {
+        Dispatch.background {
+            self.viewModel.refreshToken()
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    
+    @IBAction func signInAction(_ sender: Any) {
+        login()
     }
-    */
+    
+}
 
+extension LoginViewController: LoginViewProtocol {
+    func navigate() {
+        UserDefaults.standard.set(1, forKey: "menuActiveIndex")
+        UserDefaults.standard.synchronize()
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "StudyMaterialsViewController") as! StudyMaterialsViewController
+        self.navigationController?.pushViewController(vc, animated: false)
+    }
+    
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
 }

+ 108 - 0
LMS/View Controller/MeetingListViewController.swift

@@ -8,11 +8,61 @@
 import UIKit
 
 class MeetingListViewController: UIViewController {
+    
+    @IBOutlet var meetingListTableView: UITableView!
+    
+    var calendarData = [CalendarModel]()
+    var meetingDate = String()
+    var meetings = [CalendarModel]()
+    var selectedDate = Date()
 
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
+        executeRepeatedly()
+        for data in calendarData {
+            if data.date == meetingDate {
+                meetings.append(data)
+            }
+        }
+//        if let i = calendarData.firstIndex(where: { $0.date == meetingDate }) {
+//            meetings.append(calendarData[i])
+//        }
+        meetingListTableView.delegate = self
+        meetingListTableView.dataSource = self
+        meetingListTableView.reloadData()
+    }
+    
+    func formattedDateFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func formattedTimeFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            outputFormatter.timeStyle = .short
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    private func executeRepeatedly() {
+        // put your code here
+        meetingListTableView.reloadData()
+        DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) { [weak self] in
+            self?.executeRepeatedly()
+        }
     }
     
 
@@ -27,3 +77,61 @@ class MeetingListViewController: UIViewController {
     */
 
 }
+
+extension MeetingListViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return meetings.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if meetings[indexPath.row].offline == true {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MeetingListTableViewCell", for: indexPath) as? MeetingListTableViewCell else {
+                return UITableViewCell()
+            }
+            cell.customView.layer.cornerRadius = 10
+            cell.customView.dropShadow()
+            cell.meetingNameLabel.text = meetings[indexPath.row].scheduleTitle
+            cell.dayDateLabel.text = formattedDateFromString(dateString: meetings[indexPath.row].date!, withFormat: "EEEE, MMM dd, yyyy")
+            cell.timeLabel.text = "\(formattedTimeFromString(dateString: meetings[indexPath.row].startTime!, withFormat: "HH:mm") ?? "") - \(formattedTimeFromString(dateString: meetings[indexPath.row].endTime!, withFormat: "HH:mm") ?? "")"
+            cell.joinClassButton.layer.cornerRadius = 5
+            
+            let date = Date()
+            let format = DateFormatter()
+            format.dateFormat = "yyyy-MM-dd HH:mm:ss"
+            let time = format.string(from: date)
+            let currentTime = format.date(from: time)
+            let startTime = format.date(from: meetings[indexPath.row].startTime!)?.addingTimeInterval(TimeInterval(10.0 * 60.0))
+            let endTime = format.date(from: meetings[indexPath.row].endTime!)?.addingTimeInterval(TimeInterval(20.0 * 60.0))
+            
+            if currentTime! > startTime! && currentTime! < endTime! {
+                cell.joinClassButton.backgroundColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+                cell.joinClassButton.tag = indexPath.row
+                cell.joinClassButton.addTarget(self, action: #selector(joinClass), for: .touchUpInside)
+            } else {
+                cell.joinClassButton.backgroundColor = UIColor.lightGray
+                cell.joinClassButton.isUserInteractionEnabled = false
+            }
+            
+            return cell
+        } else {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "OfflineMeetingTableViewCell", for: indexPath) as? OfflineMeetingTableViewCell else {
+                return UITableViewCell()
+            }
+            cell.customView.layer.cornerRadius = 10
+            cell.customView.dropShadow()
+            cell.meetingNameLabel.text = meetings[indexPath.row].scheduleTitle
+            cell.dateLabel.text = formattedDateFromString(dateString: meetings[indexPath.row].date!, withFormat: "EEEE, MMM dd, yyyy")
+            cell.timeLabel.text = "\(formattedTimeFromString(dateString: meetings[indexPath.row].startTime!, withFormat: "HH:mm") ?? "") - \(formattedTimeFromString(dateString: meetings[indexPath.row].endTime!, withFormat: "HH:mm") ?? "")"
+            
+            return cell
+        }
+    }
+    
+    @objc func joinClass(sender: UIButton){
+        print(sender.tag)
+        guard let url = URL(string: meetings[sender.tag].link ?? "") else { return }
+        print(meetings[sender.tag].link ?? "")
+        UIApplication.shared.open(url)
+    }
+
+}

+ 101 - 0
LMS/View Controller/NewAssessmentViewController.swift

@@ -6,15 +6,42 @@
 //
 
 import UIKit
+import SideMenu
 
 class NewAssessmentViewController: UIViewController {
 
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var assessmentListCollectionView: UICollectionView!
+    
+    var viewModel = NewAssessmentViewModel()
+    
+    var newAssessmentListModel = [NewAssessmentModel]()
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    
+    var upcomingAssessment = [AssessmentListModel]()
+    var pastAssessment = [AssessmentListModel]()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        assessmentListCollectionView.delegate = self
+        assessmentListCollectionView.dataSource = self
+        setupUI()
     }
     
+    func setupUI() {
+        navigationBar.topItem?.title = "Assessment"
+    }
+    
+    override func viewWillAppear(_ animated: Bool) {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getNewAssessmentList(userId: userData[0].id)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
 
     /*
     // MARK: - Navigation
@@ -25,5 +52,79 @@ class NewAssessmentViewController: UIViewController {
         // Pass the selected object to the new view controller.
     }
     */
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
 
 }
+
+extension NewAssessmentViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return newAssessmentListModel.count
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "NewAssessmentCollectionViewCell", for: indexPath as IndexPath) as! NewAssessmentCollectionViewCell
+        
+        cell.customView.layer.borderWidth = 1
+        cell.customView.layer.borderColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
+        cell.customView.layer.cornerRadius = 5
+        cell.serialNoLabel.text = "\(indexPath.row + 1)"
+        cell.testNameLabel.text = newAssessmentListModel[indexPath.row].name
+        cell.scoreLabel.text = "Highest Score:" + "\(newAssessmentListModel[indexPath.row].achievedMarks ?? 0)" + "/" + "\(newAssessmentListModel[indexPath.row].totalMarks ?? 0)"
+        cell.attemptsLabel.text = "No. Of Attempts: \(newAssessmentListModel[indexPath.row].numberofAtmt ?? 0)"
+        cell.takeExamButton.layer.cornerRadius = 5
+        cell.takeExamButton.tag = indexPath.row
+        cell.takeExamButton.addTarget(self, action: #selector(startQuiz), for: .touchUpInside)
+        
+        return cell
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width: (collectionView.frame.size.width-10)/2, height: 280)
+    }
+    
+//    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+//        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "NewAssessmentCollectionViewCell", for: indexPath as IndexPath) as! NewAssessmentCollectionViewCell
+//
+//        cell.testNameLabel.text = newAssessmentListModel[indexPath.row].name
+//
+//        // Calculate the cell size based on the label's content and constraints
+//        let labelSize = cell.testNameLabel.sizeThatFits(CGSize(width: cell.testNameLabel.frame.width, height: .greatestFiniteMagnitude))
+//        let cellHeight = labelSize.height
+//
+//        return CGSize(width: (collectionView.frame.size.width-10)/2, height: cellHeight + 220)
+//    }
+
+    
+    @objc func startQuiz(sender: UIButton) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "InstructionViewController") as! InstructionViewController
+        vc.assessmentId = newAssessmentListModel[sender.tag].id ?? 0
+        vc.assessmentName = newAssessmentListModel[sender.tag].name ?? ""
+        vc.quesCount = newAssessmentListModel[sender.tag].totalQuestions ?? 0
+        vc.assessmentType = "Assessment"
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+}
+
+extension NewAssessmentViewController: NewAssessmentProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func assessmentListModel(model: [NewAssessmentModel]) {
+        self.newAssessmentListModel = model
+        self.assessmentListCollectionView.reloadData()
+    }
+}
+

+ 594 - 9
LMS/View Controller/NewQuizViewController.swift

@@ -6,24 +6,609 @@
 //
 
 import UIKit
+import Toast_Swift
+import SideMenu
 
-class NewQuizViewController: UIViewController {
+struct SubmitAnswers {
+    let questionId: Int
+    var answers: [String]
+}
+
+class AnswerManager {
+    var submittedAnswers = [SubmitAnswers]()
+    
+    func addOrUpdateAnswer(for questionId: Int, with newAnswers: [String]) {
+        if let existingIndex = submittedAnswers.firstIndex(where: { $0.questionId == questionId }) {
+            // Update answers for existing questionId
+            submittedAnswers[existingIndex].answers = newAnswers
+        } else {
+            // Add new SubmitAnswers
+            let newSubmitAnswer = SubmitAnswers(questionId: questionId, answers: newAnswers)
+            submittedAnswers.append(newSubmitAnswer)
+        }
+    }
+}
 
+class NewQuizViewController: UIViewController {
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var questionNumberLabel: UILabel!
+    @IBOutlet var timerLabel: UILabel!
+    @IBOutlet var questionTypeLabel: UILabel!
+    @IBOutlet var questionLabel: UILabel!
+    @IBOutlet var answerInstructionLabel: UILabel!
+    @IBOutlet var quizView: UIView!
+    @IBOutlet var answerTF: UITextField!
+    @IBOutlet var mcqView: UIView!
+    @IBOutlet var mcqTableView: UITableView!
+    @IBOutlet var trueFalseView: UIView!
+    @IBOutlet var boolTableView: UITableView!
+    @IBOutlet var dragView: UIView!
+    @IBOutlet var option1TableView: UITableView!
+    @IBOutlet var option2TableView: UITableView!
+    @IBOutlet var questionNumbersButton: UIButton!
+    @IBOutlet var skipButton: UIButton!
+    @IBOutlet var nextButton: UIButton!
+    //Quiz submit UI outlets
+    @IBOutlet var quizSubmittedView: UIView!
+    @IBOutlet var customSubmittedView: UIView!
+    @IBOutlet var checkImageView: UIImageView!
+    @IBOutlet var resultStatusLabel: UILabel!
+    @IBOutlet var scoreLabel: UILabel!
+    @IBOutlet var okButton: UIButton!
+    @IBOutlet var viewAnswerButton: UIButton!
+    //Question number UI outlets
+    @IBOutlet var questionNumberView: UIView!
+    @IBOutlet var questionCustomView: UIView!
+    @IBOutlet var questionNumberCollectionView: UICollectionView!
+    @IBOutlet var collectionViewHeightConstraint: NSLayoutConstraint!
+    
+    var viewModel = NewQuizViewModel()
+    
+    // Pre-defined values
+    var assessmentId = Int()
+    var assessmentName = String()
+    var quesCount = Int()
+    var quizTime = Int()
+    var sessionId = String()
+    var quesIndex = 0
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    var quizModel = [QuizModel]()
+    var assessmentSubmit: AssessmentSubmitModel?
+    let manager = AnswerManager()
+    var answer = [String]()
+    var timerCount = Int()
+    var isOptionSelected: Bool = false
+    
+    var timer = Timer()
+    var alertController: UIAlertController?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        
+        getQuizData()
+        setupUI()
+        
+        // Question navigator collection view delegate and datasource
+        questionNumberCollectionView.delegate = self
+        questionNumberCollectionView.dataSource = self
+        
+        // Set unique id only once when assessment starts
+        sessionId = generateUniqueID()
+    }
+    
+    override func viewDidDisappear(_ animated: Bool) {
+        timer.invalidate()
+    }
+    
+    func setupUI() {
+        // Set assessment name to navigation bar title
+        navigationBar.topItem?.title = assessmentName
+        // Hide other views from start
+        quizSubmittedView.isHidden = true
+        questionNumberView.isHidden = true
+        
+        // Design question number label
+        questionNumberLabel.clipsToBounds = true
+        questionNumberLabel.layer.cornerRadius = 10
+        questionNumberLabel.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]
+        questionNumbersButton.layer.cornerRadius = questionNumbersButton.frame.size.height / 2
+    }
+    
+    // Function to generate unique id
+    func generateUniqueID() -> String {
+        let dateFormatter = DateFormatter()
+        dateFormatter.dateFormat = "yyyyMMddHHmmssSSS"
+        
+        let currentTimestamp = dateFormatter.string(from: Date())
+        
+        return currentTimestamp
+    }
+    
+    // Function call to get quiz data
+    func getQuizData() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getQuizData(assessmentId: assessmentId) {
+                // Update your UI components with the responseData
+                self.quizModel = self.viewModel.quizModel
+                print("index: \(self.quesIndex)")
+                self.setupQuizUI()
+                self.setupData()
+                // Assuming you've reloaded or updated the data in your UICollectionView
+                self.questionNumberCollectionView.reloadData()
+                // Call the method to adjust the height
+                self.updateCollectionViewHeight()
+                // Set quiz time and start timer
+                self.timerCount = self.quizTime * 60
+                self.startTimer()
+            }
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    // Setup UI for quiz
+    func setupQuizUI() {
+        self.questionCustomView.layer.cornerRadius = 20
+        if quesIndex >= quizModel.count - 1 {
+            skipButton.isHidden = true
+        } else {
+            skipButton.isHidden = false
+        }
+        if quizModel[quesIndex].questionType == AppConstant.MultipleMCQ {
+            answerInstructionLabel.text = "Select [One/More Than One] Options"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = false
+            self.mcqTableView.delegate = self
+            self.mcqTableView.dataSource = self
+            self.mcqTableView.allowsMultipleSelection = true
+            self.mcqTableView.allowsMultipleSelectionDuringEditing = true
+            self.mcqTableView.reloadData()
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex].questionType == AppConstant.SingleMCQ {
+            answerInstructionLabel.text = "Select One Option"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = false
+            self.mcqTableView.delegate = self
+            self.mcqTableView.dataSource = self
+            self.mcqTableView.allowsMultipleSelection = false
+            self.mcqTableView.allowsMultipleSelectionDuringEditing = false
+            self.mcqTableView.reloadData()
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+            self.isOptionSelected = false
+        } else if quizModel[quesIndex].questionType == AppConstant.Fill {
+            answerInstructionLabel.text = "Enter Answer In Input Box"
+            self.answerTF.isHidden = false
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex].questionType == AppConstant.TrueFalse {
+            answerInstructionLabel.text = "Choose One Option"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = false
+            self.boolTableView.delegate = self
+            self.boolTableView.dataSource = self
+            self.boolTableView.reloadData()
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex].questionType == AppConstant.Match {
+            answerInstructionLabel.text = "Drag And Drop Correct Match From Right Hand Side"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = false
+            self.option1TableView.delegate = self
+            self.option1TableView.dataSource = self
+            self.option1TableView.reloadData()
+            self.option2TableView.delegate = self
+            self.option2TableView.dataSource = self
+            self.option2TableView.dragDelegate = self
+            self.option2TableView.dragInteractionEnabled = true
+            self.option2TableView.reloadData()
+        }
+    }
+    
+    func setupData() {
+        answerTF.text = ""
+        answer.removeAll()
+        questionNumberLabel.text = " Question No. - \(quesIndex+1)/\(quizModel.count) "
+        questionTypeLabel.text = quizModel[quesIndex].questionType
+        questionLabel.text = "Q. \(quizModel[quesIndex].question ?? "")"
+        print(quizModel[quesIndex].question ?? "")
+        print("Index: \(quesIndex)")
+    }
+    
+    func startTimer() {
+        // Create a Timer that fires every second and calls the updateTimer function
+        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
+    }
+    
+    @objc func update() {
+        if timerCount > 0 {
+            timerCount -= 1
+            let minutes = timerCount / 60
+            let seconds = timerCount % 60
+            // Format the time as "mm:ss"
+            let timeString = String(format: "%02d:%02d", minutes, seconds)
+            // Update the label with the remaining time
+            timerLabel.text = timeString
+        } else {
+            // Timer has finished, you can handle this event as needed
+            timerLabel.text = "00:00" // Display 00:00 when the timer is done
+            timer.invalidate()
+            
+            // Submit quiz in case of time over
+            self.submitTotalAssessment()
+        }
+    }
+    
+    func submitAnswer() {
+        if quizModel[quesIndex].questionType == AppConstant.Fill {
+            if answerTF.text?.isEmpty == true {
+                self.view.makeToast("Enter your answer first!")
+            } else {
+                answer.append(answerTF.text!)
+                print(answer)
+                if Reachability.isConnectedToNetwork() {
+                    viewModel.submitQuizAnswer(assessmentId: "\(quizModel[quesIndex].assessmentId ?? 0)", userId: "\(userData[0].id)", questionId: quizModel[quesIndex].id ?? 0, quesType: quizModel[quesIndex].questionType ?? "", answers: self.answer, sessionId: sessionId)
+                } else {
+                    Alert.showInternetFailureAlert(on: self)
+                }
+            }
+        } else {
+            if Reachability.isConnectedToNetwork() {
+                if isOptionSelected == true {
+                    viewModel.submitQuizAnswer(assessmentId: "\(quizModel[quesIndex].assessmentId ?? 0)", userId: "\(userData[0].id)", questionId: quizModel[quesIndex].id ?? 0, quesType: quizModel[quesIndex].questionType ?? "", answers: self.answer, sessionId: sessionId)
+                } else {
+                    self.view.makeToast("Select an option first!")
+                }
+            } else {
+                Alert.showInternetFailureAlert(on: self)
+            }
+        }
+    }
+    
+    func submitTotalAssessment() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.submitAssessment(assessmentId: "\(quizModel[quesIndex].assessmentId ?? 0)", userId: userData[0].id, data: manager.submittedAnswers, sessionId: sessionId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
     }
     
-
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+    
+    @IBAction func skipAction(_ sender: Any) {
+        self.quesIndex += 1
+        print("index: \(self.quesIndex)")
+        setupQuizUI()
+        setupData()
+    }
+    
+    @IBAction func nextAction(_ sender: Any) {
+        submitAnswer()
+    }
+    
+    @IBAction func closeAction(_ sender: Any) {
+        timer.invalidate()
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "NewAssessmentViewController") as! NewAssessmentViewController
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+    @IBAction func viewResultAction(_ sender: Any) {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewAnswersViewController") as! ViewAnswersViewController
+        vc.userId = userData[0].id
+        vc.assessmentId = assessmentId
+        vc.sessionId = sessionId
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+    @IBAction func quesNumberAction(_ sender: Any) {
+        questionNumberView.isHidden = false
+    }
+    
+    @IBAction func cancelAction(_ sender: Any) {
+        questionNumberView.isHidden = true
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension NewQuizViewController: NewQuizViewProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func answerSubmitted(model: AnswerSubmitModel) {
+        if quesIndex < quizModel.count - 1 {
+            // Append data to the submitted answers
+            manager.addOrUpdateAnswer(for: model.questionId ?? 0, with: model.answers ?? [""])
+            
+            print(manager.submittedAnswers)
+            self.questionNumberCollectionView.reloadData()
+            
+            self.quesIndex += 1
+            print("index: \(self.quesIndex)")
+            setupQuizUI()
+            setupData()
+        } else {
+            // Append data to the submitted answers
+            manager.addOrUpdateAnswer(for: model.questionId ?? 0, with: model.answers ?? [""])
+            
+            print(manager.submittedAnswers)
+            self.questionNumberCollectionView.reloadData()
+            
+            // Create an alert controller
+            alertController = UIAlertController(title: assessmentName, message: "Are you want to submit your answer?", preferredStyle: .alert)
+            
+            // Create a "Cancel" action
+            let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (action) in
+                // Handle the "Cancel" button action
+                print("Cancel Button Pressed")
+            }
+            
+            // Create an "OK" action
+            let okAction = UIAlertAction(title: "OK", style: .default) { (action) in
+                // Handle the "OK" button action
+                self.submitTotalAssessment()
+            }
+            
+            // Add the actions to the alert controller
+            alertController?.addAction(cancelAction)
+            alertController?.addAction(okAction)
+            
+            // Present the alert controller
+            self.present(alertController!, animated: true, completion: nil)
+        }
     }
-    */
+    
+    func assessmentSubmitted(model: AssessmentSubmitModel) {
+        self.assessmentSubmit = model
+        alertController?.dismiss(animated: true)
+        self.timer.invalidate()
+        quizSubmittedView.isHidden = false
+        resultStatusLabel.text = model.lable
+        scoreLabel.text = "Score: \(model.achievedMarks ?? 0) / \(model.totalMarks ?? 0)"
+        if model.achievedMarks == 0 {
+            self.viewAnswerButton.isHidden = true
+        } else {
+            self.viewAnswerButton.isHidden = false
+        }
+    }
+}
 
+extension NewQuizViewController: UITableViewDelegate, UITableViewDataSource, UITableViewDragDelegate {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if tableView == mcqTableView {
+            return quizModel[quesIndex].options?.count ?? 0
+        } else if tableView == boolTableView {
+            return 2
+        } else if tableView == option1TableView {
+            return quizModel[quesIndex].optionsOne?.count ?? 0
+        } else {
+            return quizModel[quesIndex].optionsTwo?.count ?? 0
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if tableView == mcqTableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MCQTableViewCell", for: indexPath) as? MCQTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex].options?[indexPath.row]
+            cell.checkButton.isSelected = false // Ensure no button is selected initially
+            
+            // Finding the index of the object with the specific value
+            if let index = manager.submittedAnswers.firstIndex(where: { $0.questionId == quizModel[quesIndex].id }) {
+                // Check for answers
+                let storedAnswers = manager.submittedAnswers[index].answers[0]
+                if quizModel[quesIndex].options?[indexPath.row] == storedAnswers {
+                    // Set the button's images for selected and deselected states
+                    cell.checkButton.isSelected = true
+                    self.isOptionSelected = true
+                    self.answer.append(quizModel[quesIndex].options?[indexPath.row] ?? "")
+                } else {
+                    cell.checkButton.isSelected = false
+                }
+            }
+            
+            // Configure the cell with options and update the selected state
+            cell.checkButton.tag = indexPath.row
+            cell.checkButton.addTarget(self, action: #selector(checkButtonTapped), for: .touchUpInside)
+            
+            return cell
+        } else if tableView == boolTableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "TrueFalseTableViewCell", for: indexPath) as? TrueFalseTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = AppConstant.boolOption[indexPath.row]
+            
+            return cell
+        } else if tableView == option1TableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DragTableViewCell", for: indexPath) as? DragTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex].optionsOne?[indexPath.row]
+            
+            return cell
+        } else {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DragTableViewCell", for: indexPath) as? DragTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex].optionsTwo?[indexPath.row]
+            
+            return cell
+        }
+    }
+    
+    @objc func checkButtonTapped(sender: UIButton) {
+        let point = sender.convert(CGPoint.zero, to: mcqTableView)
+        if let indexPath = mcqTableView.indexPathForRow(at: point) {
+            if let cell = mcqTableView.cellForRow(at: indexPath) as? MCQTableViewCell {
+                // Deselect all other buttons in the same section
+                if let section = quizModel[quesIndex].options {
+                    for i in 0..<section.count {
+                        if i != indexPath.row {
+                            let otherIndexPath = IndexPath(row: i, section: indexPath.section)
+                            if let otherCell = mcqTableView.cellForRow(at: otherIndexPath) as? MCQTableViewCell {
+                                otherCell.checkButton.isSelected = false
+                                if let index = answer.firstIndex(of: quizModel[quesIndex].options?[otherIndexPath.row] ?? "") {
+                                    answer.remove(at: index)
+                                }
+                                print(answer)
+                            }
+                        }
+                    }
+                }
+                // Select the tapped button
+                cell.checkButton.isSelected = true
+                self.isOptionSelected = true
+                answer.append(quizModel[quesIndex].options?[indexPath.row] ?? "")
+                print(answer)
+            }
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if tableView == mcqTableView {
+            if quizModel[quesIndex].questionType == AppConstant.MultipleMCQ {
+                if answer.contains(quizModel[quesIndex].options?[indexPath.row] ?? "") {
+                    if let index = answer.firstIndex(of: quizModel[quesIndex].options?[indexPath.row] ?? "") {
+                        answer.remove(at: index)
+                    }
+                    print(answer)
+                } else {
+                    answer.append(quizModel[quesIndex].options?[indexPath.row] ?? "")
+                    print(answer)
+                }
+            } else if quizModel[quesIndex].questionType == AppConstant.SingleMCQ {
+                // Retrieve the cell
+                if let cell = tableView.cellForRow(at: indexPath) as? MCQTableViewCell {
+                    // Programmatically trigger the button tap action
+                    cell.checkButton.sendActions(for: .touchUpInside)
+                }
+            }
+        } else {
+            answer.removeAll()
+            answer.append(AppConstant.boolOption[indexPath.row])
+            print(answer)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
+        if tableView == mcqTableView {
+            if quizModel[quesIndex].questionType == AppConstant.MultipleMCQ {
+                if answer.contains(quizModel[quesIndex].options?[indexPath.row] ?? "") {
+                    if let index = answer.firstIndex(of: quizModel[quesIndex].options?[indexPath.row] ?? "") {
+                        answer.remove(at: index)
+                    }
+                    print(answer)
+                } else {
+                    answer.append(quizModel[quesIndex].options?[indexPath.row] ?? "")
+                    print(answer)
+                }
+            } else if quizModel[quesIndex].questionType == AppConstant.SingleMCQ {
+//                answer.removeAll()
+//                answer.append(quizModel[quesIndex].options?[indexPath.row] ?? "")
+//                print(answer)
+            }
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
+        let dragItem = UIDragItem(itemProvider: NSItemProvider())
+        dragItem.localObject = quizModel[quesIndex].optionsTwo?[indexPath.row]
+        return [ dragItem ]
+    }
+    
+    func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
+        // Update the model
+        let mover = quizModel[quesIndex].optionsTwo?.remove(at: sourceIndexPath.row) ?? ""
+        quizModel[quesIndex].optionsTwo?.insert(mover, at: destinationIndexPath.row)
+        
+        //print("\(quizModel[quesIndex].optionsOne?[destinationIndexPath.row] ?? "") - \(quizModel[quesIndex].optionsTwo?[destinationIndexPath.row] ?? "")")
+        self.answer.removeAll()
+        for i in 0...quizModel[quesIndex].optionsOne!.count-1 {
+            let match = "\(quizModel[quesIndex].optionsOne?[i] ?? "")-\(quizModel[quesIndex].optionsTwo?[i] ?? "")"
+            answer.append(match)
+        }
+        print(answer)
+    }
+    
 }
+
+extension NewQuizViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return quizModel.count
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "QuestionNumberCollectionViewCell", for: indexPath as IndexPath) as! QuestionNumberCollectionViewCell
+        
+        cell.serialNoLabel.text = "\(indexPath.row + 1)"
+        
+        if manager.submittedAnswers.contains(where: { $0.questionId == quizModel[indexPath.row].id }) {
+            cell.customCellView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1)
+            cell.serialNoLabel.textColor = UIColor.white
+            self.mcqTableView.reloadData()
+        } else {
+            cell.customCellView.backgroundColor = UIColor.systemGray5
+            cell.serialNoLabel.textColor = UIColor.black
+        }
+        
+        return cell
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        self.quesIndex = indexPath.row
+        self.questionNumberView.isHidden = true
+        print("index: \(self.quesIndex)")
+        setupQuizUI()
+        setupData()
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        let cellWidth = collectionView.frame.size.width / 5
+        return CGSize(width: cellWidth, height: cellWidth)
+    }
+    
+    func updateCollectionViewHeight() {
+        // Calculate the content size of the UICollectionView based on its content
+        questionNumberCollectionView.layoutIfNeeded()
+        let contentSize = questionNumberCollectionView.collectionViewLayout.collectionViewContentSize
+        
+        // Update the height constraint to match the content size
+        collectionViewHeightConstraint.constant = contentSize.height
+    }
+}
+

+ 22 - 0
LMS/View Controller/NotificationViewController.swift

@@ -9,10 +9,15 @@ import UIKit
 
 class NotificationViewController: UIViewController {
 
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var notificationTableView: UITableView!
+    
     override func viewDidLoad() {
         super.viewDidLoad()
 
         // Do any additional setup after loading the view.
+        notificationTableView.delegate = self
+        notificationTableView.dataSource = self
     }
     
 
@@ -27,3 +32,20 @@ class NotificationViewController: UIViewController {
     */
 
 }
+
+extension NotificationViewController: UITableViewDelegate, UITableViewDataSource {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 1
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "NotificationTableViewCell", for: indexPath) as? NotificationTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.customView.layer.cornerRadius = 10
+        cell.messageLabel.text = "Test notification."
+        
+        return cell
+    }
+}

+ 157 - 9
LMS/View Controller/OfflineAssessmentViewController.swift

@@ -6,24 +6,172 @@
 //
 
 import UIKit
+import Toast_Swift
+import SideMenu
+import MobileCoreServices
+import UniformTypeIdentifiers
 
 class OfflineAssessmentViewController: UIViewController {
-
+    
+    @IBOutlet var downloadView: UIView!
+    @IBOutlet var downloadImageView: UIImageView!
+    @IBOutlet var downloadLabel: UILabel!
+    
+    @IBOutlet var uploadView: UIView!
+    @IBOutlet var uploadImageView: UIImageView!
+    @IBOutlet var uploadLabel: UILabel!
+    
+    var viewModel = OfflineAssessmentViewModel()
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    
+    var assessmentName = String()
+    var assessmentId = Int()
+    var fileExtension = String()
+    var fileId = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        viewModel.delegate = self
+        setupUI()
+        // Add touch gesture to download view
+        let downloadGesture = UITapGestureRecognizer(target: self, action:  #selector(self.downloadPDF(sender:)))
+        self.downloadView.addGestureRecognizer(downloadGesture)
+        
+        // Add touch gesture to upload view
+        let uploadGesture = UITapGestureRecognizer(target: self, action:  #selector(self.upload(sender:)))
+        self.uploadView.addGestureRecognizer(uploadGesture)
     }
     
-
+    func setupUI() {
+        downloadView.layer.cornerRadius = 20
+        downloadView.layer.borderWidth = 3
+        downloadView.layer.borderColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+        
+        uploadView.layer.cornerRadius = 20
+        uploadView.layer.borderWidth = 3
+        uploadView.layer.borderColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+    }
+    
+    @objc func downloadPDF(sender : UITapGestureRecognizer) {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.downloadAssessment(fileId: fileId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    // This will creates a PDF file
+    func createPDF(with base64Info: String) {
+        let base64Data = Data(base64Encoded: base64Info, options: .ignoreUnknownCharacters)
+        let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
+        let docName = "QuestionPaper-\(assessmentName)\(assessmentId).\(fileExtension)"
+        let filePath = "\(documentsPath)/\(docName)"
+        if FileManager.default.fileExists(atPath: filePath) {
+            self.view.makeToast("File already exist!")
+        } else {
+            let url = URL(fileURLWithPath: filePath)
+            do {
+                try base64Data?.write(to: url, options: .atomic)
+                self.view.makeToast("Download successful.")
+            } catch let failedError {
+                print("Failed to write the pdf data due to \(failedError.localizedDescription)")
+            }
+        }
+    }
+    
+    @objc func upload(sender : UITapGestureRecognizer) {
+        var documentPicker: UIDocumentPickerViewController!
+        if #available(iOS 14, *) {
+            // iOS 14 & later
+            let supportedTypes: [UTType] = [UTType.pdf]
+            documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes)
+        } else {
+            // iOS 13 or older code
+            let supportedTypes: [String] = [kUTTypePDF as String]
+            documentPicker = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)
+        }
+        documentPicker.delegate = self
+        documentPicker.allowsMultipleSelection = true
+        documentPicker.modalPresentationStyle = .formSheet
+        self.present(documentPicker, animated: true)
+    }
+    
+    
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension OfflineAssessmentViewController: OfflineAssessmentProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
     }
-    */
+    
+    func getDownloadedFile(base64:String) {
+        self.createPDF(with: base64)
+    }
+    
+    func moveToAssessment() {
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "AssessmentBeneficiaryViewController") as! AssessmentBeneficiaryViewController
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+}
 
+extension OfflineAssessmentViewController: UIDocumentPickerDelegate {
+    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
+        
+        for url in urls {
+            
+            // Start accessing a security-scoped resource.
+            guard url.startAccessingSecurityScopedResource() else {
+                // Handle the failure here.
+                return
+            }
+            
+            do {
+                let data = try Data.init(contentsOf: url)
+                print("url: \(url)")
+                if Reachability.isConnectedToNetwork() {
+                    // You will have data of the selected file
+                    viewModel.uploadAssessment(assessmentId: assessmentId, userId: userData[0].id, fileType: "pdf", docData: data)
+                } else {
+                    Alert.showInternetFailureAlert(on: self)
+                }
+                
+            }
+            catch {
+                print(error.localizedDescription)
+            }
+            
+            // Make sure you release the security-scoped resource when you finish.
+            do { url.stopAccessingSecurityScopedResource() }
+        }
+    }
+    
+    func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
+        controller.dismiss(animated: true, completion: nil)
+    }
 }

+ 78 - 10
LMS/View Controller/PdfReaderViewController.swift

@@ -6,24 +6,92 @@
 //
 
 import UIKit
+import WebKit
+import Toast_Swift
 
 class PdfReaderViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var webView: WKWebView!
+    
+    var viewModel = PdfReaderViewModel()
+    var id = String()
+    var docType = String()
+    var name = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        navigationBar.topItem?.title = name
+        viewModel.delegate = self
+        getPDF()
     }
     
-
+    func getPDF() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getPdfData(fileId: id)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func loadWebView(data:String) {
+        if let decodeData = Data(base64Encoded: data, options: .ignoreUnknownCharacters) {
+            if docType == "pdf" {
+                webView.load(decodeData, mimeType: "application/pdf", characterEncodingName: "utf-8", baseURL: URL(fileURLWithPath: ""))
+            } else if docType == "docx" {
+                let urlStr = "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64," + decodeData.base64EncodedString()
+                let url = URL(string: urlStr)!
+                let request = URLRequest(url: url)
+                self.webView.load(request)
+            } else if docType == "scorm" {
+                let url = URL (string: "http://3.7.239.194/\(id)")
+                let requestObj = URLRequest(url: url!)
+                self.webView.load(requestObj)
+            } else if docType == "jpeg" {
+                let docData = Data(base64Encoded: data, options: .ignoreUnknownCharacters)
+                let jpeg = UIImage(data: docData!)
+                let imageData = jpeg?.jpegData(compressionQuality: 1.0)
+                let base64EncodedImage = imageData?.base64EncodedString()
+                let htmlString = "<html><head><style>img{width:100%; height:100%;}</style></head><body><img src='data:image/jpeg;base64,\(base64EncodedImage!)' /></body></html>"
+                //"<html><body><img src='data:image/jpeg;base64,\(base64EncodedImage!)' /></body></html>"
+                webView.loadHTMLString(htmlString, baseURL: nil)
+            }
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func backAction(_ sender: UIBarButtonItem) {
+        self.navigationController?.popViewController(animated: true)
     }
-    */
+    
+}
 
+extension PdfReaderViewController: PdfReaderProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func pdfBase64(base64: String) {
+        self.loadWebView(data: base64)
+    }
 }

+ 418 - 9
LMS/View Controller/QuizViewController.swift

@@ -6,24 +6,433 @@
 //
 
 import UIKit
+import Toast_Swift
 
 class QuizViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var questionNumberLabel: UILabel!
+    @IBOutlet var timerLabel: UILabel!
+    @IBOutlet var questionTypeLabel: UILabel!
+    @IBOutlet var questionLabel: UILabel!
+    @IBOutlet var answerInstructionLabel: UILabel!
+    @IBOutlet var quizView: UIView!
+    @IBOutlet var answerTF: UITextField!
+    @IBOutlet var mcqView: UIView!
+    @IBOutlet var mcqTableView: UITableView!
+    @IBOutlet var trueFalseView: UIView!
+    @IBOutlet var boolTableView: UITableView!
+    @IBOutlet var dragView: UIView!
+    @IBOutlet var option1TableView: UITableView!
+    @IBOutlet var option2TableView: UITableView!
+    @IBOutlet var questionNumbersButton: UIButton!
+    //Quiz submit UI outlets
+    @IBOutlet var quizSubmittedView: UIView!
+    @IBOutlet var customSubmittedView: UIView!
+    @IBOutlet var checkImageView: UIImageView!
+    //Question number UI outlets
+    @IBOutlet var questionNumberView: UIView!
+    @IBOutlet var questionCustomView: UIView!
+    @IBOutlet var questionNumberCollectionView: UICollectionView!
+    @IBOutlet var collectionViewHeightConstraint: NSLayoutConstraint!
+    
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    var viewModel = QuizViewModel()
+    var quizModel = [QuizModel]()
+    //var answerSubmit = [SubmitAnswerModel]()
+    var timer = Timer()
+    var assessmentId = Int()
+    var assessmentName = String()
+    var quesIndex = 1
+    var count = 1500
+    var answer = [String]()
+    var quesNo = Int()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        print(assessmentName)
+        navigationBar.topItem?.title = assessmentName
+        viewModel.delegate = self
+        quizSubmittedView.isHidden = true
+        questionNumberView.isHidden = true
+        
+        questionNumberLabel.clipsToBounds = true
+        questionNumberLabel.layer.cornerRadius = 10
+        questionNumberLabel.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMinXMinYCorner]
+        questionNumbersButton.layer.cornerRadius = questionNumbersButton.frame.size.height / 2
+        
+        questionNumberCollectionView.delegate = self
+        questionNumberCollectionView.dataSource = self
+        // Assuming you've reloaded or updated the data in your UICollectionView
+        questionNumberCollectionView.reloadData()
+
+        // Call the method to adjust the height
+        updateCollectionViewHeight()
+
+        getQuizData()
+        getQuizTime()
+    }
+    
+    func getQuizData() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getQuizData(assessmentId: assessmentId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func getQuizTime() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getQuizTime(assessmentId: assessmentId)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func setupUI() {
+        self.questionCustomView.layer.cornerRadius = 20
+        if quizModel[quesIndex-1].questionType == AppConstant.MultipleMCQ {
+            answerInstructionLabel.text = "Select [One/More Than One] Options"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = false
+            self.mcqTableView.delegate = self
+            self.mcqTableView.dataSource = self
+            self.mcqTableView.allowsMultipleSelection = true
+            self.mcqTableView.allowsMultipleSelectionDuringEditing = true
+            self.mcqTableView.reloadData()
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex-1].questionType == AppConstant.SingleMCQ {
+            answerInstructionLabel.text = "Select One Option"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = false
+            self.mcqTableView.delegate = self
+            self.mcqTableView.dataSource = self
+            self.mcqTableView.allowsMultipleSelection = false
+            self.mcqTableView.allowsMultipleSelectionDuringEditing = false
+            self.mcqTableView.reloadData()
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex-1].questionType == AppConstant.Fill {
+            answerInstructionLabel.text = "Enter Answer In Input Box"
+            self.answerTF.isHidden = false
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex-1].questionType == AppConstant.TrueFalse {
+            answerInstructionLabel.text = "Choose One Option"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = false
+            self.boolTableView.delegate = self
+            self.boolTableView.dataSource = self
+            self.boolTableView.reloadData()
+            self.dragView.isHidden = true
+        } else if quizModel[quesIndex-1].questionType == AppConstant.Match {
+            answerInstructionLabel.text = "Drag And Drop Correct Match From Right Hand Side"
+            self.answerTF.isHidden = true
+            self.mcqView.isHidden = true
+            self.trueFalseView.isHidden = true
+            self.dragView.isHidden = false
+            self.option1TableView.delegate = self
+            self.option1TableView.dataSource = self
+            self.option1TableView.reloadData()
+            self.option2TableView.delegate = self
+            self.option2TableView.dataSource = self
+            self.option2TableView.dragDelegate = self
+            self.option2TableView.dragInteractionEnabled = true
+            self.option2TableView.reloadData()
+        }
+    }
+    
+    func setupData() {
+        answerTF.text = ""
+        answer.removeAll()
+        questionNumberLabel.text = " Question No. - \(quesIndex)/\(quizModel.count) "
+        questionTypeLabel.text = quizModel[quesIndex-1].questionType
+        questionLabel.text = "Q. \(quizModel[quesIndex-1].question ?? "")"
+    }
+    
+    func startTimer() {
+        // Create a Timer that fires every second and calls the updateTimer function
+        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
+    }
+    
+    @objc func update() {
+        if count > 0 {
+            count -= 1
+            
+            let minutes = count / 60
+            let seconds = count % 60
+            
+            // Format the time as "mm:ss"
+            let timeString = String(format: "%02d:%02d", minutes, seconds)
+            
+            // Update the label with the remaining time
+            timerLabel.text = timeString
+        } else {
+            // Timer has finished, you can handle this event as needed
+            timerLabel.text = "00:00" // Display 00:00 when the timer is done
+            timer.invalidate()
+        }
+    }
+    
+    func submitAnswer() {
+        if quizModel[quesIndex-1].questionType == AppConstant.Fill {
+            if answerTF.text?.isEmpty == true {
+                self.view.makeToast("Enter your answer first!")
+            } else {
+                answer.append(answerTF.text!)
+                print(answer)
+                if Reachability.isConnectedToNetwork() {
+                    viewModel.submitQuizAnswer(quizId: quizModel[quesIndex-1].id ?? 0, userId: userData[0].id, questionId: quizModel[quesIndex-1].assessmentId ?? 0, quesType: quizModel[quesIndex-1].questionType ?? "", answers: self.answer)
+                } else {
+                    Alert.showInternetFailureAlert(on: self)
+                }
+            }
+        } else {
+            if Reachability.isConnectedToNetwork() {
+                viewModel.submitQuizAnswer(quizId: quizModel[quesIndex-1].id ?? 0, userId: userData[0].id, questionId: quizModel[quesIndex-1].assessmentId ?? 0, quesType: quizModel[quesIndex-1].questionType ?? "", answers: self.answer)
+            } else {
+                Alert.showInternetFailureAlert(on: self)
+            }
+        }
     }
     
-
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    
+    @IBAction func skipAction(_ sender: Any) {
+        if quesIndex <= quizModel.count {
+            self.quesIndex += 1
+            setupUI()
+            setupData()
+        } else {
+            self.view.makeToast("Click Next to Submit!")
+        }
+    }
+    
+    @IBAction func nextAction(_ sender: Any) {
+        if self.quesIndex < quizModel.count {
+            submitAnswer()
+        } else {
+            Alert.showAlertWithAction(vc: self, title: assessmentName, message: "Are you want to submit your answer?", alertStyle: .alert, actionTitles: ["Ok"], actionStyles: [.default], actions: [{_ in
+                self.submitAnswer()
+            }])
+        }
+    }
+    
+    @IBAction func closeAction(_ sender: Any) {
+        timer.invalidate()
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "AssessmentBeneficiaryViewController") as! AssessmentBeneficiaryViewController
+        self.navigationController?.pushViewController(vc, animated: true)
+    }
+    
+    @IBAction func quesNumberAction(_ sender: Any) {
+        questionNumberView.isHidden = false
+    }
+    
+    @IBAction func cancelAction(_ sender: Any) {
+        questionNumberView.isHidden = true
+    }
+    
+    
+}
+
+extension QuizViewController: QuizViewProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func quizModel(model: [QuizModel]) {
+        self.quizModel = model
+        self.setupUI()
+        self.setupData()
+    }
+    
+    func setQuizTime(time: Int) {
+        self.count = time * 60
+        self.startTimer()
+    }
+    
+    func answerSubmitted() {
+        if self.quesIndex < quizModel.count {
+            self.quesIndex += 1
+            setupUI()
+            setupData()
+        } else {
+            quizSubmittedView.isHidden = false
+        }
+    }
+}
+
+extension QuizViewController: UITableViewDelegate, UITableViewDataSource, UITableViewDragDelegate {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        if tableView == mcqTableView {
+            return quizModel[quesIndex-1].options?.count ?? 0
+        } else if tableView == boolTableView {
+            return 2
+        } else if tableView == option1TableView {
+            return quizModel[quesIndex-1].optionsOne?.count ?? 0
+        } else {
+            return quizModel[quesIndex-1].optionsTwo?.count ?? 0
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if tableView == mcqTableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MCQTableViewCell", for: indexPath) as? MCQTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex-1].options?[indexPath.row]
+            
+            return cell
+        } else if tableView == boolTableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "TrueFalseTableViewCell", for: indexPath) as? TrueFalseTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = AppConstant.boolOption[indexPath.row]
+            
+            return cell
+        } else if tableView == option1TableView {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DragTableViewCell", for: indexPath) as? DragTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex-1].optionsOne?[indexPath.row]
+            
+            return cell
+        } else {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "DragTableViewCell", for: indexPath) as? DragTableViewCell else {
+                return UITableViewCell()
+            }
+            
+            cell.optionLabel.text = quizModel[quesIndex-1].optionsTwo?[indexPath.row]
+            
+            return cell
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        if tableView == mcqTableView {
+            if quizModel[quesIndex-1].questionType == AppConstant.MultipleMCQ {
+                if answer.contains(quizModel[quesIndex-1].options?[indexPath.row] ?? "") {
+                    if let index = answer.firstIndex(of: quizModel[quesIndex-1].options?[indexPath.row] ?? "") {
+                        answer.remove(at: index)
+                    }
+                    print(answer)
+                } else {
+                    answer.append(quizModel[quesIndex-1].options?[indexPath.row] ?? "")
+                    print(answer)
+                }
+            } else if quizModel[quesIndex-1].questionType == AppConstant.SingleMCQ {
+                answer.removeAll()
+                answer.append(quizModel[quesIndex-1].options?[indexPath.row] ?? "")
+                print(answer)
+            }
+        } else {
+            answer.removeAll()
+            answer.append(AppConstant.boolOption[indexPath.row])
+            print(answer)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
+        if tableView == mcqTableView {
+            if quizModel[quesIndex-1].questionType == AppConstant.MultipleMCQ {
+                if answer.contains(quizModel[quesIndex-1].options?[indexPath.row] ?? "") {
+                    if let index = answer.firstIndex(of: quizModel[quesIndex-1].options?[indexPath.row] ?? "") {
+                        answer.remove(at: index)
+                    }
+                    print(answer)
+                } else {
+                    answer.append(quizModel[quesIndex-1].options?[indexPath.row] ?? "")
+                    print(answer)
+                }
+            } else if quizModel[quesIndex-1].questionType == AppConstant.SingleMCQ {
+                answer.removeAll()
+                answer.append(quizModel[quesIndex-1].options?[indexPath.row] ?? "")
+                print(answer)
+            }
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
+        let dragItem = UIDragItem(itemProvider: NSItemProvider())
+        dragItem.localObject = quizModel[quesIndex-1].optionsTwo?[indexPath.row]
+        return [ dragItem ]
+    }
+    
+    func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
+        // Update the model
+        let mover = quizModel[quesIndex-1].optionsTwo?.remove(at: sourceIndexPath.row) ?? ""
+        quizModel[quesIndex-1].optionsTwo?.insert(mover, at: destinationIndexPath.row)
+        
+        //print("\(quizModel[quesIndex-1].optionsOne?[destinationIndexPath.row] ?? "") - \(quizModel[quesIndex-1].optionsTwo?[destinationIndexPath.row] ?? "")")
+        self.answer.removeAll()
+        for i in 0...quizModel[quesIndex-1].optionsOne!.count-1 {
+            let match = "\(quizModel[quesIndex-1].optionsOne?[i] ?? "")-\(quizModel[quesIndex-1].optionsTwo?[i] ?? "")"
+            answer.append(match)
+        }
+        print(answer)
+    }
+    
+}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+extension QuizViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return quizModel.count
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "QuestionNumberCollectionViewCell", for: indexPath as IndexPath) as! QuestionNumberCollectionViewCell
+        
+        cell.customCellView.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
+        cell.customCellView.layer.cornerRadius = cell.customCellView.frame.height / 2
+        cell.serialNoLabel.text = "\(indexPath.row + 1)"
+        
+        return cell
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        self.quesIndex = indexPath.row + 1
+        self.questionNumberView.isHidden = true
+        setupUI()
+        setupData()
     }
-    */
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        let cellWidth = collectionView.frame.size.width / 5
+        return CGSize(width: cellWidth, height: cellWidth)
+    }
+    
+    func updateCollectionViewHeight() {
+        // Calculate the content size of the UICollectionView based on its content
+        questionNumberCollectionView.layoutIfNeeded()
+        let contentSize = questionNumberCollectionView.collectionViewLayout.collectionViewContentSize
 
+        // Update the height constraint to match the content size
+        collectionViewHeightConstraint.constant = contentSize.height
+    }
 }

+ 94 - 10
LMS/View Controller/ScromViewController.swift

@@ -6,24 +6,108 @@
 //
 
 import UIKit
+import Toast_Swift      
+import WebKit
+import Zip
 
 class ScromViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var htmlWebView: WKWebView!
+    
+    var viewModel = ScromViewModel()
+    var id = String()
+    var docType = String()
+    var name = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        navigationBar.topItem?.title = name
+        viewModel.delegate = self
+        getScromData()
+        
+        let value = UIInterfaceOrientation.landscapeLeft.rawValue
+        UIDevice.current.setValue(value, forKey: "orientation")
     }
     
-
+    override func viewWillDisappear(_ animated: Bool) {
+        super.viewWillDisappear(animated)
+        let value = UIInterfaceOrientation.portrait.rawValue
+        UIDevice.current.setValue(value, forKey: "orientation")
+    }
+    
+    func getScromData() {
+        if Reachability.isConnectedToNetwork() {
+            let stringData = id.description.components(separatedBy: "scrom/unzip/")
+            viewModel.getScromData(fileId: stringData[1])
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func decodeToZip(base64String: String) {
+        let data = Data(base64Encoded: base64String, options: .ignoreUnknownCharacters)
+        if let data = data {
+            let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
+            let docName = "\(name).zip"
+            let filePath = "\(documentsPath)/\(docName)"
+            let url = URL(fileURLWithPath: filePath)
+            try? data.write(to: url)
+            
+            unzipFile()
+        }
+    }
+    
+    func unzipFile() {
+        do {
+            let filePath = URL(string: "\(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])/\(name).zip")!
+            let fileURL = try Zip.quickUnzipFile(filePath)
+            let htmlFileURL = fileURL.appendingPathComponent("index.html")
+            loadHTMLFile(htmlFileURL)
+        } catch {
+            print("Error unzipping file: \(error)")
+        }
+    }
+    
+    func loadHTMLFile(_ fileURL: URL) {
+        let request = URLRequest(url: fileURL)
+        htmlWebView.load(request)
+    }
+    
+    
+    
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func backAction(_ sender: UIBarButtonItem) {
+        self.navigationController?.popViewController(animated: true)
     }
-    */
+    
+}
 
+extension ScromViewController: ScromProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func scromBase64(base64: String) {
+        self.decodeToZip(base64String: base64)
+    }
 }

+ 455 - 8
LMS/View Controller/SessionListViewController.swift

@@ -6,24 +6,471 @@
 //
 
 import UIKit
+import Toast_Swift
+import SideMenu
 
 class SessionListViewController: UIViewController {
-
+    
+    @IBOutlet var navigationBar: UINavigationBar!
+    @IBOutlet var contentScrollView: UIScrollView!
+    @IBOutlet var customView: UIView!
+//    @IBOutlet var interventionLabel: UILabel!
+//    @IBOutlet var interventionTF: UITextField!
+//    @IBOutlet var interventionLevelLabel: UILabel!
+//    @IBOutlet var interventionLevelTF: UITextField!
+//    @IBOutlet var batchLabel: UILabel!
+//    @IBOutlet var batchTF: UITextField!
+    @IBOutlet var monthYearLabel: UILabel!
+    @IBOutlet var monthYearTF: UITextField!
+    @IBOutlet var sessionListTableView: UITableView!
+    @IBOutlet var filterButton: UIButton!
+    @IBOutlet var sessionTableHeightConstraint: NSLayoutConstraint!
+    
+    var viewModel = SessionListViewModel()
+    var sessionListModel = [SessionListModel]()
+    var interventionModel = [SessionInterventionModel]()
+    var interventionLevelModel = [InterventionLevel]()
+    var batchListModel = [BatchListModel]()
+    
+    fileprivate let picker = ToolbarPickerView()
+    var activeTextField = 0
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    var interventionId = Int()
+    var batchId = Int()
+    var interventionLevelId = Int()
+    var monthYear = String()
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        setupUI()
+        viewModel.delegate = self
+        sessionListTableView.delegate = self
+        sessionListTableView.dataSource = self
+        sessionListTableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
+        
+        //getInterventionList()
+        
+        // Set UITableViewAutomaticDimension for automatic cell height calculation.
+        sessionListTableView.rowHeight = UITableView.automaticDimension
+        sessionListTableView.estimatedRowHeight = 240 // Estimated average cell height, adjust as needed.
     }
     
+    override func viewWillAppear(_ animated: Bool) {
+        getSessionList(month: getCurrentMonth())
+        createPickerView()
+    }
 
+    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+        if(keyPath == "contentSize") {
+            if let newvalue = change?[.newKey] {
+                DispatchQueue.main.async {
+                    let newsize  = newvalue as! CGSize
+                    self.sessionTableHeightConstraint.constant = newsize.height
+                }
+            }
+        }
+    }
+    
+    func setupUI() {
+        navigationBar.topItem?.title = "Session List"
+        // Hide unused fields
+//        interventionLabel.isHidden = true
+//        interventionTF.isHidden = true
+//        interventionLevelLabel.isHidden = true
+//        interventionLevelTF.isHidden = true
+//        batchLabel.isHidden = true
+//        batchTF.isHidden = true
+        customView.isHidden = false
+        customView.layer.cornerRadius = 10
+//        interventionTF.isUserInteractionEnabled = true
+//        interventionLevelTF.isUserInteractionEnabled = false
+//        batchTF.isUserInteractionEnabled = false
+        filterButton.layer.cornerRadius = filterButton.frame.size.height / 2
+        
+        let dateFormatter = DateFormatter()
+        dateFormatter.dateFormat = "MM-yyyy"
+        let currentDate = Date()
+        let formattedDate = dateFormatter.string(from: currentDate)
+        // Set the formatted date as the text of the UITextField
+        monthYearTF.text = formattedDate
+    }
+    
+    func createPickerView() {
+        monthYearTF.delegate = self
+        self.monthYearTF.datePicker(target: self,
+                                          doneAction: #selector(doneAction),
+                                          cancelAction: #selector(cancelAction),
+                                          datePickerMode: .date)
+//        //1
+//        self.interventionTF.delegate = self
+//        self.interventionTF.inputView = self.picker
+//        self.interventionTF.inputAccessoryView = self.picker.toolbar
+//        //2
+//        self.interventionLevelTF.delegate = self
+//        self.interventionLevelTF.inputView = self.picker
+//        self.interventionLevelTF.inputAccessoryView = self.picker.toolbar
+//        //3
+//        self.batchTF.delegate = self
+//        self.batchTF.inputView = self.picker
+//        self.batchTF.inputAccessoryView = self.picker.toolbar
+//        
+//        self.picker.delegate = self
+//        self.picker.dataSource = self
+//        self.picker.toolbarDelegate = self
+    }
+    
+    @objc func cancelAction() {
+        self.monthYearTF.resignFirstResponder()
+    }
+    
+    @objc func doneAction() {
+        if let datePickerView = self.monthYearTF.inputView as? UIDatePicker {
+            let dateFormatter = DateFormatter()
+            dateFormatter.dateFormat = "MM-yyyy"
+            let dateString = dateFormatter.string(from: datePickerView.date)
+            self.monthYearTF.text = dateString
+            
+            print(datePickerView.date)
+            print(dateString)
+            self.getSessionList(month: self.monthYearTF.text ?? "")
+            self.monthYearTF.resignFirstResponder()
+        }
+    }
+    
+    func getSessionList(month:String) {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getSessionList(userId: userData[0].id, interventionId: "", batchId: "", schoolId: "", interventionLevelId: "", month: month)
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func getInterventionList() {
+        if Reachability.isConnectedToNetwork() {
+            viewModel.getSessionIntervention()
+        } else {
+            Alert.showInternetFailureAlert(on: self)
+        }
+    }
+    
+    func formattedDateFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func formattedTimeFromString(dateString: String, withFormat format: String) -> String? {
+        let inputFormatter = DateFormatter()
+        inputFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        if let date = inputFormatter.date(from: dateString) {
+            let outputFormatter = DateFormatter()
+            outputFormatter.dateFormat = format
+            outputFormatter.timeStyle = .short
+            return outputFormatter.string(from: date)
+        }
+        return nil
+    }
+    
+    func getCurrentMonth() -> String {
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "MM-yyyy"
+        let formattedMonth = format.string(from: date)
+        return formattedMonth
+    }
+    
+    private func executeRepeatedly() {
+        // put your code here
+        self.sessionListTableView.reloadData()
+        DispatchQueue.main.asyncAfter(deadline: .now() + 60.0) { [weak self] in
+            self?.executeRepeatedly()
+        }
+    }
+    
+    
     /*
-    // MARK: - Navigation
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func sideMenuAction(_ sender: UIBarButtonItem) {
+        let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
+        present(menu, animated: true, completion: nil)
+    }
+    
+    @IBAction func filterAction(_ sender: Any) {
+        if customView.isHidden == true {
+            customView.isHidden = false
+            //contentScrollView.scrollToTop()
+            contentScrollView.scrollViewToTop(customView)
+        } else {
+            customView.isHidden = true
+        }
+    }
+}
+
+extension SessionListViewController: SessionListProtocol {
+    func startLoader() {
+        ActivityIndicator.start()
+    }
+    
+    func stopLoader() {
+        ActivityIndicator.stop()
+    }
+    
+    func showError(error: String) {
+        self.view.makeToast(error)
+    }
+    
+    func sessionListModel(model: [SessionListModel]) {
+        let dateSortedData = model.sorted(by: {$0.date! > $1.date!})
+        let timeSortedData = dateSortedData.sorted(by: {$0.startTime! > $1.startTime!})
+        self.sessionListModel = timeSortedData
+        self.executeRepeatedly()
+    }
+    
+    func interventionModel(model: [SessionInterventionModel]) {
+        self.interventionModel = model
+        //interventionLevelTF.isUserInteractionEnabled = true
+    }
+    
+    func interventionLevelModel(model: [InterventionLevel]) {
+        self.interventionLevelModel = model
+        //batchTF.isUserInteractionEnabled = true
+    }
+    
+    func batchListModel(model: [BatchListModel]) {
+        self.batchListModel = model
+    }
+}
+
+//extension SessionListViewController: UIPickerViewDelegate, UIPickerViewDataSource {
+//    // MARK: UIPickerView Delegation
+//    
+//    func numberOfComponents(in pickerView: UIPickerView) -> Int {
+//        return 1
+//    }
+//    
+//    func pickerView( _ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
+//        switch activeTextField
+//        {
+//        case 1:
+//            return interventionModel.count
+//        case 2:
+//            return interventionLevelModel.count
+//        case 3:
+//            return batchListModel.count
+//        default:
+//            return 0
+//            
+//        }
+//    }
+//    
+//    func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
+//        switch activeTextField{
+//        case 1:
+//            return interventionModel[row].interventionName
+//        case 2:
+//            return interventionLevelModel[row].interventionLevels
+//        case 3:
+//            return batchListModel[row].batchName
+//        default:
+//            return ""
+//        }
+//    }
+//    
+//    func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
+//        switch activeTextField{
+//        case 1:
+//            //interventionTF.text = interventionModel[row].interventionName
+//            break
+//        case 2:
+//            //interventionLevelTF.text = interventionLevelModel[row].interventionLevels
+//            break
+//        case 3:
+//            //batchTF.text = batchListModel[row].batchName
+//            break
+//        default:
+//            break
+//        }
+//    }
+//}
+
+//extension SessionListViewController: UITextFieldDelegate {
+//    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
+//        switch textField {
+//        case interventionTF:
+//            return false
+//        case interventionLevelTF:
+//            return false
+//        case batchTF:
+//            return false
+//        default:
+//            return true
+//        }
+//    }
+//    
+//    // when user select a textfield, this method will be called
+//    func textFieldDidBeginEditing(_ textField: UITextField) {
+//        switch textField {
+//        case interventionTF:
+//            activeTextField = 1
+//            picker.reloadAllComponents()
+//        case interventionLevelTF:
+//            activeTextField = 2
+//            picker.reloadAllComponents()
+//        case batchTF:
+//            activeTextField = 3
+//            picker.reloadAllComponents()
+//        default:
+//            activeTextField = 0
+//        }
+//    }
+//}
 
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+//extension SessionListViewController: ToolbarPickerViewDelegate {
+//    func didTapDone() {
+//        switch activeTextField {
+//        case 1:
+//            let row = self.picker.selectedRow(inComponent: 0)
+//            self.picker.selectRow(row, inComponent: 0, animated: false)
+//            self.interventionTF.text = interventionModel[row].interventionName
+//            self.interventionId = interventionModel[row].id ?? 0
+//            if Reachability.isConnectedToNetwork() {
+//                viewModel.getSessionList(userId: userData[0].id, interventionId: self.interventionId, batchId: "", schoolId: "", interventionLevelId: "", month: getCurrentMonth())
+//            }
+//            self.interventionTF.resignFirstResponder()
+//            if Reachability.isConnectedToNetwork() {
+//                self.viewModel.getInterventionLevel(id: interventionModel[row].id ?? 0)
+//            }
+//        case 2:
+//            let row = self.picker.selectedRow(inComponent: 0)
+//            self.picker.selectRow(row, inComponent: 0, animated: false)
+//            self.interventionLevelTF.text = interventionLevelModel[row].interventionLevels
+//            self.interventionLevelId = interventionLevelModel[row].id ?? 0
+//            if Reachability.isConnectedToNetwork() {
+//                viewModel.getSessionList(userId: userData[0].id, interventionId: self.interventionId, batchId: "", schoolId: "", interventionLevelId: self.interventionLevelId, month: getCurrentMonth())
+//            }
+//            self.interventionLevelTF.resignFirstResponder()
+//            if Reachability.isConnectedToNetwork() {
+//                self.viewModel.getBatchList()
+//            }
+//        case 3:
+//            let row = self.picker.selectedRow(inComponent: 0)
+//            self.picker.selectRow(row, inComponent: 0, animated: false)
+//            self.batchTF.text = batchListModel[row].batchName ?? ""
+//            self.batchId = batchListModel[row].id ?? 0
+//            if Reachability.isConnectedToNetwork() {
+//                viewModel.getSessionList(userId: userData[0].id, interventionId: self.interventionId, batchId: self.batchId, schoolId: "", interventionLevelId: self.interventionLevelId, month: getCurrentMonth())
+//            }
+//            self.batchTF.resignFirstResponder()
+//        default:
+//            return
+//        }
+//    }
+    
+//    func didTapCancel() {
+//        switch activeTextField {
+//        case 1:
+//            self.interventionTF.text = nil
+//            self.interventionTF.resignFirstResponder()
+//        case 2:
+//            self.interventionLevelTF.text = nil
+//            self.interventionLevelTF.resignFirstResponder()
+//        case 3:
+//            self.batchTF.text = nil
+//            self.batchTF.resignFirstResponder()
+//        default:
+//            return
+//        }
+//    }
+//}
+
+extension SessionListViewController: UITableViewDelegate, UITableViewDataSource, UICollectionViewDelegateFlowLayout {
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return sessionListModel.count
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        guard let cell = tableView.dequeueReusableCell(withIdentifier: "SessionListTableViewCell", for: indexPath) as? SessionListTableViewCell else {
+            return UITableViewCell()
+        }
+        
+        cell.listCustomView.layer.cornerRadius = 10
+        cell.listCustomView.layer.borderWidth = 1
+        cell.listCustomView.layer.borderColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
+        cell.serialNumberLabel.text = "\(indexPath.row + 1)"
+        cell.meetingNameLabel.text = sessionListModel[indexPath.row].scheduleTitle
+        cell.batchLabel.text = sessionListModel[indexPath.row].batchName
+        cell.teacherLabel.text = "Teacher: \(sessionListModel[indexPath.row].teacherFirstName ?? "") \(sessionListModel[indexPath.row].teacherLastName ?? "")"
+        cell.interventionNameLabel.text = "Intervention Name: \(sessionListModel[indexPath.row].interventionName ?? "")"
+        cell.dateLabel.text = " " + (formattedDateFromString(dateString: sessionListModel[indexPath.row].date!, withFormat: "dd MMM") ?? "") + " "
+        cell.timeLabel.text = (formattedTimeFromString(dateString: sessionListModel[indexPath.row].startTime!, withFormat: "HH:mm") ?? "") + " to " + (formattedTimeFromString(dateString: sessionListModel[indexPath.row].endTime!, withFormat: "HH:mm") ?? "")
+        cell.joinClassButton.layer.cornerRadius = 5
+        if sessionListModel[indexPath.row].offline == true {
+            cell.activeStatusLabel.text = "Online"
+            cell.activeIndicatorImageView.tintColor = #colorLiteral(red: 0.3843137255, green: 0.6470588235, blue: 0.262745098, alpha: 1)
+            cell.joinClassButton.isHidden = false
+        } else {
+            cell.activeStatusLabel.text = "Offline"
+            cell.activeIndicatorImageView.tintColor = #colorLiteral(red: 0.9098039216, green: 0.2980392157, blue: 0.2470588235, alpha: 1)
+            cell.joinClassButton.isHidden = true
+        }
+        
+        let date = Date()
+        let format = DateFormatter()
+        format.dateFormat = "yyyy-MM-dd HH:mm:ss"
+        let time = format.string(from: date)
+        let currentTime = format.date(from: time)
+        let startTime = format.date(from: sessionListModel[indexPath.row].startTime!)?.addingTimeInterval(TimeInterval(10.0 * 60.0))
+        let endTime = format.date(from: sessionListModel[indexPath.row].endTime!)?.addingTimeInterval(TimeInterval(20.0 * 60.0))
+        
+        if currentTime! > startTime! && currentTime! < endTime! {
+            cell.joinClassButton.backgroundColor = #colorLiteral(red: 0.00400000019, green: 0.200000003, blue: 0.3919999897, alpha: 1)
+            cell.joinClassButton.tag = indexPath.row
+            cell.joinClassButton.addTarget(self, action: #selector(joinClass), for: .touchUpInside)
+        } else {
+            cell.joinClassButton.backgroundColor = UIColor.lightGray
+            cell.joinClassButton.isUserInteractionEnabled = false
+        }
+        
+        return cell
     }
-    */
+    
+    @objc func joinClass(sender: UIButton){
+        print(sender.tag)
+        guard let url = URL(string: sessionListModel[sender.tag].link ?? "") else { return }
+        print(sessionListModel[sender.tag].link ?? "")
+        UIApplication.shared.open(url)
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return UITableView.automaticDimension
+    }
+    
+}
 
+extension SessionListViewController: UITextFieldDelegate {
+    // MARK: - UITextFieldDelegate methods
+    
+    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
+        switch textField {
+        case monthYearTF:
+            return false
+        default:
+            return true
+        }
+    }
 }

+ 205 - 10
LMS/View Controller/SideMenuViewController.swift

@@ -8,22 +8,217 @@
 import UIKit
 
 class SideMenuViewController: UIViewController {
-
+    
+    @IBOutlet weak var menuTableView: UITableView!
+    @IBOutlet var logoutButton: UIButton!
+    
+    let userData = DBManager.sharedInstance.database.objects(UserDetailsModel.self)
+    
+    var activeIndexPath: Int?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
-
+        
         // Do any additional setup after loading the view.
+        setupUI()
+        if let retrievedValue = UserDefaults.standard.value(forKey: "menuActiveIndex") {
+            // Use the retrieved value
+            print("Retrieved value: \(retrievedValue)")
+            activeIndexPath = retrievedValue as? Int
+        } else {
+            // The key "myKey" does not exist in UserDefaults
+            print("Value not found in UserDefaults")
+        }
+        menuTableView.delegate = self
+        menuTableView.dataSource = self
+        menuTableView.tableFooterView = UIView()
+    }
+    
+    func setupUI() {
+        logoutButton.layer.cornerRadius = 15
+    }
+    
+    @objc func dismissMenu(sender: UIButton) {
+        dismiss(animated: true, completion: nil)
     }
     
-
     /*
-    // MARK: - Navigation
-
-    // In a storyboard-based application, you will often want to do a little preparation before navigation
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-        // Get the new view controller using segue.destination.
-        // Pass the selected object to the new view controller.
+     // MARK: - Navigation
+     
+     // In a storyboard-based application, you will often want to do a little preparation before navigation
+     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
+     // Get the new view controller using segue.destination.
+     // Pass the selected object to the new view controller.
+     }
+     */
+    
+    @IBAction func logoutAction(_ sender: Any) {
+        UserDefaults.standard.set(false, forKey: "isLogin")
+        UserDefaults.standard.synchronize()
+        let vc = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
+        
+        self.navigationController?.pushViewController(vc, animated: false)
     }
-    */
+    
+}
 
+extension SideMenuViewController: UITableViewDelegate, UITableViewDataSource {
+    // MARK: - Table View Data Source
+    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return 3
+    }
+    
+    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if indexPath.row == 0 {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuHeaderTableViewCell", for: indexPath) as? MenuHeaderTableViewCell else {
+                return UITableViewCell()
+            }
+            cell.userNameLabel.text = userData[0].name
+            cell.appVersionLabel.text = "v\(UIApplication.version)"
+            cell.cancelButton.addTarget(self, action: #selector(dismissMenu(sender:)), for: .touchUpInside)
+            return cell
+        }
+        //        else if indexPath.row == 1 {
+        //            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+        //                return UITableViewCell()
+        //            }
+        //            cell.menuIconImageView.image = UIImage(systemName: "house")
+        //            cell.menuNameLabel.text = "Dashboard"
+        //            return cell
+        //        }
+        //        else if indexPath.row == 1 {
+        //            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+        //                return UITableViewCell()
+        //            }
+        //            if activeIndexPath == 1 {
+        //                cell.customView.backgroundColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1) // Set the background color for the active cell
+        //            } else {
+        //                cell.customView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1) // Set the default background color for other cells
+        //            }
+        //            cell.menuIconImageView.image = UIImage(systemName: "calendar")
+        //            cell.menuNameLabel.text = "Calendar"
+        //            return cell
+        //        } else if indexPath.row == 2 {
+        //            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+        //                return UITableViewCell()
+        //            }
+        //            if activeIndexPath == 2 {
+        //                cell.customView.backgroundColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1) // Set the background color for the active cell
+        //            } else {
+        //                cell.customView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1) // Set the default background color for other cells
+        //            }
+        //            cell.menuIconImageView.image = UIImage(systemName: "list.bullet.rectangle.portrait")
+        //            cell.menuNameLabel.text = "Session List"
+        //            return cell
+        //        }
+        else if indexPath.row == 1 {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+                return UITableViewCell()
+            }
+            if activeIndexPath == 1 {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1) // Set the background color for the active cell
+            } else {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1) // Set the default background color for other cells
+            }
+            cell.menuIconImageView.image = UIImage(systemName: "book")
+            cell.menuNameLabel.text = " Study Materials"
+            return cell
+        }
+        else if indexPath.row == 2 {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+                return UITableViewCell()
+            }
+            if activeIndexPath == 2 {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1) // Set the background color for the active cell
+            } else {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1) // Set the default background color for other cells
+            }
+            cell.menuIconImageView.image = UIImage(systemName: "chart.bar.xaxis")
+            cell.menuNameLabel.text = " Assessment"
+            return cell
+        }
+        else {
+            guard let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell", for: indexPath) as? MenuTableViewCell else {
+                return UITableViewCell()
+            }
+            if activeIndexPath == 3 {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.1058823529, green: 0.3764705882, blue: 0.5960784314, alpha: 1) // Set the background color for the active cell
+            } else {
+                cell.customView.backgroundColor = #colorLiteral(red: 0.05099999905, green: 0.2980000079, blue: 0.5329999924, alpha: 1) // Set the default background color for other cells
+            }
+            cell.menuIconImageView.image = UIImage(systemName: "pencil.and.list.clipboard")
+            cell.menuNameLabel.text = " Final Exam"
+            return cell
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        tableView.reloadData()
+        if indexPath.row == 0 {
+            tableView.deselectRow(at: indexPath, animated: true)
+        }
+        //        else if indexPath.row == 1 {
+        //            let vc = self.storyboard?.instantiateViewController(withIdentifier: "DashboardViewController") as! DashboardViewController
+        //
+        //            self.navigationController?.pushViewController(vc, animated: false)
+        //        }
+        //        else if indexPath.row == 1 {
+        //            UserDefaults.standard.set(1, forKey: "menuActiveIndex")
+        //            UserDefaults.standard.synchronize()
+        //            let vc = self.storyboard?.instantiateViewController(withIdentifier: "CalendarViewController") as! CalendarViewController
+        //
+        //            self.navigationController?.pushViewController(vc, animated: false)
+        //        }
+        //        else if indexPath.row == 2 {
+        //            UserDefaults.standard.set(2, forKey: "menuActiveIndex")
+        //            UserDefaults.standard.synchronize()
+        //            let vc = self.storyboard?.instantiateViewController(withIdentifier: "SessionListViewController") as! SessionListViewController
+        //
+        //            self.navigationController?.pushViewController(vc, animated: false)
+        //        }
+        else if indexPath.row == 1 {
+            UserDefaults.standard.set(1, forKey: "menuActiveIndex")
+            UserDefaults.standard.synchronize()
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "StudyMaterialsViewController") as! StudyMaterialsViewController
+            
+            self.navigationController?.pushViewController(vc, animated: false)
+        }
+        else if indexPath.row == 2 {
+            UserDefaults.standard.set(2, forKey: "menuActiveIndex")
+            UserDefaults.standard.synchronize()
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "NewAssessmentViewController") as! NewAssessmentViewController
+            
+            self.navigationController?.pushViewController(vc, animated: false)
+        }
+        else {
+            UserDefaults.standard.set(3, forKey: "menuActiveIndex")
+            UserDefaults.standard.synchronize()
+            let vc = self.storyboard?.instantiateViewController(withIdentifier: "AssessmentBeneficiaryViewController") as! AssessmentBeneficiaryViewController
+            
+            self.navigationController?.pushViewController(vc, animated: false)
+        }
+    }
+    
+    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        if indexPath.row == 0 {
+            return 100
+        }
+        //        else if indexPath.row == 1 {
+        //            return 64
+        //        }
+        //        else if indexPath.row == 1 {
+        //            return 64
+        //        } else if indexPath.row == 2 {
+        //            return 64
+        //        }
+        else if indexPath.row == 1 {
+            return 64
+        }
+        else if indexPath.row == 2 {
+            return 64
+        }
+        else {
+            return 64
+        }
+    }
 }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio