[
  {
    "path": ".classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry including=\"**/*.java\" kind=\"src\" output=\"target/classes\" path=\"src/main/java\">\n\t\t<attributes>\n\t\t\t<attribute name=\"optional\" value=\"true\"/>\n\t\t\t<attribute name=\"maven.pomderived\" value=\"true\"/>\n\t\t</attributes>\n\t</classpathentry>\n\t<classpathentry kind=\"src\" path=\"src/main/resources\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8\">\n\t\t<attributes>\n\t\t\t<attribute name=\"maven.pomderived\" value=\"true\"/>\n\t\t</attributes>\n\t</classpathentry>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER\">\n\t\t<attributes>\n\t\t\t<attribute name=\"maven.pomderived\" value=\"true\"/>\n\t\t\t<attribute name=\"org.eclipse.jst.component.dependency\" value=\"/WEB-INF/lib\"/>\n\t\t</attributes>\n\t</classpathentry>\n\t<classpathentry kind=\"src\" output=\"target/test-classes\" path=\"src/test/java\">\n\t\t<attributes>\n\t\t\t<attribute name=\"optional\" value=\"true\"/>\n\t\t\t<attribute name=\"maven.pomderived\" value=\"true\"/>\n\t\t</attributes>\n\t</classpathentry>\n\t<classpathentry kind=\"output\" path=\"target/classes\"/>\n</classpath>\n"
  },
  {
    "path": ".project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>Examination_System</name>\n\t<comment></comment>\n\t<projects>\n\t</projects>\n\t<buildSpec>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.wst.common.project.facet.core.builder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.wst.validation.validationbuilder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t\t<buildCommand>\n\t\t\t<name>org.eclipse.m2e.core.maven2Builder</name>\n\t\t\t<arguments>\n\t\t\t</arguments>\n\t\t</buildCommand>\n\t</buildSpec>\n\t<natures>\n\t\t<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>\n\t\t<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\n\t\t<nature>org.eclipse.m2e.core.maven2Nature</nature>\n\t\t<nature>org.eclipse.wst.common.project.facet.core.nature</nature>\n\t\t<nature>org.eclipse.wst.jsdt.core.jsNature</nature>\n\t</natures>\n</projectDescription>\n"
  },
  {
    "path": ".settings/.jsdtscope",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry excluding=\"**/bower_components/*|**/node_modules/*|**/*.min.js\" kind=\"src\" path=\"src/main/webapp\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.JRE_CONTAINER\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.WebProject\">\n\t\t<attributes>\n\t\t\t<attribute name=\"hide\" value=\"true\"/>\n\t\t</attributes>\n\t</classpathentry>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.baseBrowserLibrary\"/>\n\t<classpathentry kind=\"output\" path=\"\"/>\n</classpath>\n"
  },
  {
    "path": ".settings/org.eclipse.jdt.core.prefs",
    "content": "eclipse.preferences.version=1\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\norg.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\norg.eclipse.jdt.core.compiler.compliance=1.8\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\norg.eclipse.jdt.core.compiler.problem.forbiddenReference=warning\norg.eclipse.jdt.core.compiler.source=1.8\n"
  },
  {
    "path": ".settings/org.eclipse.m2e.core.prefs",
    "content": "activeProfiles=\neclipse.preferences.version=1\nresolveWorkspaceProjects=true\nversion=1\n"
  },
  {
    "path": ".settings/org.eclipse.wst.common.component",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><project-modules id=\"moduleCoreId\" project-version=\"1.5.0\">\n    <wb-module deploy-name=\"Examination_System\">\n        <wb-resource deploy-path=\"/\" source-path=\"/target/m2e-wtp/web-resources\"/>\n        <wb-resource deploy-path=\"/\" source-path=\"/src/main/webapp\" tag=\"defaultRootSource\"/>\n        <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/java\"/>\n        <wb-resource deploy-path=\"/WEB-INF/classes\" source-path=\"/src/main/resources\"/>\n        <property name=\"context-root\" value=\"Examination_System\"/>\n        <property name=\"java-output-path\" value=\"/Examination_System/target/classes\"/>\n    </wb-module>\n</project-modules>\n"
  },
  {
    "path": ".settings/org.eclipse.wst.common.project.facet.core.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<faceted-project>\n  <fixed facet=\"wst.jsdt.web\"/>\n  <installed facet=\"java\" version=\"1.8\"/>\n  <installed facet=\"jst.web\" version=\"3.1\"/>\n  <installed facet=\"wst.jsdt.web\" version=\"1.0\"/>\n</faceted-project>\n"
  },
  {
    "path": ".settings/org.eclipse.wst.jsdt.ui.superType.container",
    "content": "org.eclipse.wst.jsdt.launching.baseBrowserLibrary"
  },
  {
    "path": ".settings/org.eclipse.wst.jsdt.ui.superType.name",
    "content": "Window"
  },
  {
    "path": ".settings/org.eclipse.wst.validation.prefs",
    "content": "disabled=06target\neclipse.preferences.version=1\n"
  },
  {
    "path": "README.md",
    "content": "# examination_system 教务管理系统\n这是个基于SSM+Bootstrap的教务查询系统，是一个教务查询系统.\n做了关于数据库的增删改查练习。\n用来熟悉SSM的整合开发。\n\n## 使用技术 \nIOC容器：Spring Web框架：SpringMVC \nORM框架：Mybatis \n数据源：C3P0 \n日志：log4j \n前端框架：Bootstrap \n运行环境 jdk8+tomcat8+mysql+Eclipse+maven\n项目技术： spring+spring mvc+mybatis+bootstrap+jquery\n前人栽树后人乘凉，最开始系统是IDEA开发，目前该版本修改为了eclipse版本，增加和删除了某些功能。\n欢迎下载。\n\n## 具体页面：\n登录页：\n![Alt text](https://github.com/IsZouTao/examination_system-/raw/master/images/1.png)\n\n管理员页：管理员账户：admin+123\n！[替代文字] （https://github.com/IsZouTao/examination_system-/raw/master/images/2.png）\n\n学生页：学生登录：10001 + 123\n![Alt text](https://github.com/IsZouTao/examination_system-/raw/master/images/3.png)\n\n老师页：教师登录：1001+123\n![Alt text](https://github.com/IsZouTao/examination_system-/raw/master/images/4.png)\n\n一些功能：\n![Alt text](https://github.com/IsZouTao/examination_system-/raw/master/images/5.png)\n\n\n\n"
  },
  {
    "path": "pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">\n\t<modelVersion>4.0.0</modelVersion>\n\t<groupId>com.jacey</groupId>\n\t<artifactId>Examination_System</artifactId>\n\t<packaging>war</packaging>\n\t<version>1.0-SNAPSHOT</version>\n\t<name>Examination_System Maven Webapp</name>\n\t<url>http://maven.apache.org</url>\n\t<dependencies>\n\n\t\t<dependency>\n\t\t\t<groupId>junit</groupId>\n\t\t\t<artifactId>junit</artifactId>\n\t\t\t<version>4.12</version>\n\t\t\t<scope>test</scope>\n\t\t</dependency>\n\n\t\t<!--servletAPI -->\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>javax.servlet-api</artifactId>\n\t\t\t<version>3.1.0</version>\n\t\t\t<scope>provided</scope>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>jsp-api</artifactId>\n\t\t\t<version>2.0</version>\n\t\t\t<scope>provided</scope>\n\t\t</dependency>\n\n\t\t<!--shiro依赖 -->\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-core</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-web</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-spring</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\n\t\t<!--spring -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-context</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--springWEB -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-web</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--springMVC -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-webmvc</artifactId>\n\t\t\t<version>4.3.7.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--spring tx 事务处理 -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-tx</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--spring aop -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-aop</artifactId>\n\t\t\t<version>4.3.9.RELEASE</version>\n\t\t</dependency>\n\n\t\t<dependency>\n\t\t\t<groupId>org.aspectj</groupId>\n\t\t\t<artifactId>aspectjweaver</artifactId>\n\t\t\t<version>1.8.10</version>\n\t\t</dependency>\n\n\t\t<!--spring-jdbc -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-jdbc</artifactId>\n\t\t\t<version>4.2.5.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--jstl -->\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>jstl</artifactId>\n\t\t\t<version>1.2</version>\n\t\t</dependency>\n\n\t\t<!--log4j -->\n\t\t<dependency>\n\t\t\t<groupId>log4j</groupId>\n\t\t\t<artifactId>log4j</artifactId>\n\t\t\t<version>1.2.17</version>\n\t\t</dependency>\n\n\t\t<!--mybatis -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis</groupId>\n\t\t\t<artifactId>mybatis</artifactId>\n\t\t\t<version>3.4.1</version>\n\t\t</dependency>\n\n\t\t<!--mybatis逆向工程 -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis.generator</groupId>\n\t\t\t<artifactId>mybatis-generator-core</artifactId>\n\t\t\t<version>1.3.5</version>\n\t\t</dependency>\n\n\t\t<!--mybatis spring整合包 -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis</groupId>\n\t\t\t<artifactId>mybatis-spring</artifactId>\n\t\t\t<version>1.3.0</version>\n\t\t</dependency>\n\n\t\t<!--hibernate 数据校验器包 -->\n\t\t<dependency>\n\t\t\t<groupId>org.hibernate</groupId>\n\t\t\t<artifactId>hibernate-validator</artifactId>\n\t\t\t<version>5.4.1.Final</version>\n\t\t</dependency>\n\n\t\t<!--c3p0链接池 -->\n\t\t<dependency>\n\t\t\t<groupId>com.mchange</groupId>\n\t\t\t<artifactId>c3p0</artifactId>\n\t\t\t<version>0.9.5.2</version>\n\t\t</dependency>\n\n\t\t<!--Mysql数据库驱动 -->\n\t\t<dependency>\n\t\t\t<groupId>mysql</groupId>\n\t\t\t<artifactId>mysql-connector-java</artifactId>\n\t\t\t<version>5.1.41</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.jetbrains</groupId>\n\t\t\t<artifactId>annotations-java5</artifactId>\n\t\t\t<version>RELEASE</version>\n\t\t</dependency>\n\n\t</dependencies>\n\n\n\t<build>\n\t\t<finalName>Examination_System</finalName>\n\t\t<plugins>\n\t\t\t<plugin>\n\t\t\t\t<groupId>org.apache.maven.plugins</groupId>\n\t\t\t\t<artifactId>maven-compiler-plugin</artifactId>\n\t\t\t\t<version>3.1</version>\n\t\t\t\t<configuration>\n\t\t\t\t\t<source>1.8</source>\n\t\t\t\t\t<target>1.8</target>\n\t\t\t\t</configuration>\n\t\t\t</plugin>\n\t\t</plugins>\n\t</build>\n\n\n\n</project>\n"
  },
  {
    "path": "sql/examination_system.sql",
    "content": "/*\nNavicat MySQL Data Transfer\n\nSource Server         : MySQL\nSource Server Version : 50716\nSource Host           : localhost:3306\nSource Database       : examination_system\n\nTarget Server Type    : MYSQL\nTarget Server Version : 50716\nFile Encoding         : 65001\n\nDate: 2017-07-08 00:03:38\n*/\n\nSET FOREIGN_KEY_CHECKS=0;\n\n-- ----------------------------\n-- Table structure for college\n-- ----------------------------\nDROP TABLE IF EXISTS `college`;\nCREATE TABLE `college` (\n  `collegeID` int(11) NOT NULL,\n  `collegeName` varchar(200) NOT NULL COMMENT '课程名',\n  PRIMARY KEY (`collegeID`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of college\n-- ----------------------------\nINSERT INTO `college` VALUES ('1', '计算机系');\nINSERT INTO `college` VALUES ('2', '设计系');\nINSERT INTO `college` VALUES ('3', '财经系');\n\n-- ----------------------------\n-- Table structure for course\n-- ----------------------------\nDROP TABLE IF EXISTS `course`;\nCREATE TABLE `course` (\n  `courseID` int(11) NOT NULL,\n  `courseName` varchar(200) NOT NULL COMMENT '课程名称',\n  `teacherID` int(11) NOT NULL,\n  `courseTime` varchar(200) DEFAULT NULL COMMENT '开课时间',\n  `classRoom` varchar(200) DEFAULT NULL COMMENT '开课地点',\n  `courseWeek` int(200) DEFAULT NULL COMMENT '学时',\n  `courseType` varchar(20) DEFAULT NULL COMMENT '课程类型',\n  `collegeID` int(11) NOT NULL COMMENT '所属院系',\n  `score` int(11) NOT NULL COMMENT '学分',\n  PRIMARY KEY (`courseID`),\n  KEY `collegeID` (`collegeID`),\n  KEY `teacherID` (`teacherID`),\n  CONSTRAINT `course_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`),\n  CONSTRAINT `course_ibfk_2` FOREIGN KEY (`teacherID`) REFERENCES `teacher` (`userID`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of course\n-- ----------------------------\nINSERT INTO `course` VALUES ('1', 'C语言程序设计', '1001', '周二', '科401', '18', '必修课', '1', '3');\nINSERT INTO `course` VALUES ('2', 'Python爬虫技巧', '1001', '周四', 'X402', '18', '必修课', '1', '3');\nINSERT INTO `course` VALUES ('3', '数据结构', '1001', '周四', '科401', '18', '必修课', '1', '2');\nINSERT INTO `course` VALUES ('4', 'Java程序设计', '1002', '周五', '科401', '18', '必修课', '1', '2');\nINSERT INTO `course` VALUES ('5', '英语', '1002', '周四', 'X302', '18', '必修课', '2', '2');\nINSERT INTO `course` VALUES ('6', '服装设计', '1003', '周一', '科401', '18', '选修课', '2', '2');\n\n-- ----------------------------\n-- Table structure for role\n-- ----------------------------\nDROP TABLE IF EXISTS `role`;\nCREATE TABLE `role` (\n  `roleID` int(11) NOT NULL,\n  `roleName` varchar(20) NOT NULL,\n  `permissions` varchar(255) DEFAULT NULL COMMENT '权限',\n  PRIMARY KEY (`roleID`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of role\n-- ----------------------------\nINSERT INTO `role` VALUES ('0', 'admin', null);\nINSERT INTO `role` VALUES ('1', 'teacher', null);\nINSERT INTO `role` VALUES ('2', 'student', null);\n\n-- ----------------------------\n-- Table structure for selectedcourse\n-- ----------------------------\nDROP TABLE IF EXISTS `selectedcourse`;\nCREATE TABLE `selectedcourse` (\n  `courseID` int(11) NOT NULL,\n  `studentID` int(11) NOT NULL,\n  `mark` int(11) DEFAULT NULL COMMENT '成绩',\n  KEY `courseID` (`courseID`),\n  KEY `studentID` (`studentID`),\n  CONSTRAINT `selectedcourse_ibfk_1` FOREIGN KEY (`courseID`) REFERENCES `course` (`courseID`),\n  CONSTRAINT `selectedcourse_ibfk_2` FOREIGN KEY (`studentID`) REFERENCES `student` (`userID`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of selectedcourse\n-- ----------------------------\nINSERT INTO `selectedcourse` VALUES ('2', '10001', '12');\nINSERT INTO `selectedcourse` VALUES ('1', '10001', '95');\nINSERT INTO `selectedcourse` VALUES ('1', '10002', '66');\nINSERT INTO `selectedcourse` VALUES ('1', '10003', null);\nINSERT INTO `selectedcourse` VALUES ('2', '10003', '99');\nINSERT INTO `selectedcourse` VALUES ('5', '10001', null);\nINSERT INTO `selectedcourse` VALUES ('3', '10001', null);\n\n-- ----------------------------\n-- Table structure for student\n-- ----------------------------\nDROP TABLE IF EXISTS `student`;\nCREATE TABLE `student` (\n  `userID` int(11) NOT NULL AUTO_INCREMENT,\n  `userName` varchar(200) NOT NULL,\n  `sex` varchar(20) DEFAULT NULL,\n  `birthYear` date DEFAULT NULL COMMENT '出生日期',\n  `grade` date DEFAULT NULL COMMENT '入学时间',\n  `collegeID` int(11) NOT NULL COMMENT '院系id',\n  PRIMARY KEY (`userID`),\n  KEY `collegeID` (`collegeID`),\n  CONSTRAINT `student_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`)\n) ENGINE=InnoDB AUTO_INCREMENT=10007 DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of student\n-- ----------------------------\nINSERT INTO `student` VALUES ('10001', '小黄', '男', '1996-09-02', '2015-09-02', '1');\nINSERT INTO `student` VALUES ('10002', '小米', '女', '1995-09-14', '2015-09-02', '3');\nINSERT INTO `student` VALUES ('10003', '小陈', '女', '1996-09-02', '2015-09-02', '2');\nINSERT INTO `student` VALUES ('10004', '小华', '男', '1996-09-02', '2015-09-02', '2');\nINSERT INTO `student` VALUES ('10005', '小左', '女', '1996-09-02', '2015-09-02', '2');\nINSERT INTO `student` VALUES ('10006', '小拉', '女', '1996-09-02', '2015-09-02', '1');\n\n-- ----------------------------\n-- Table structure for teacher\n-- ----------------------------\nDROP TABLE IF EXISTS `teacher`;\nCREATE TABLE `teacher` (\n  `userID` int(11) NOT NULL AUTO_INCREMENT,\n  `userName` varchar(200) NOT NULL,\n  `sex` varchar(20) DEFAULT NULL,\n  `birthYear` date NOT NULL,\n  `degree` varchar(20) DEFAULT NULL COMMENT '学历',\n  `title` varchar(255) DEFAULT NULL COMMENT '职称',\n  `grade` date DEFAULT NULL COMMENT '入职时间',\n  `collegeID` int(11) NOT NULL COMMENT '院系',\n  PRIMARY KEY (`userID`),\n  KEY `collegeID` (`collegeID`),\n  CONSTRAINT `teacher_ibfk_1` FOREIGN KEY (`collegeID`) REFERENCES `college` (`collegeID`)\n) ENGINE=InnoDB AUTO_INCREMENT=1004 DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of teacher\n-- ----------------------------\nINSERT INTO `teacher` VALUES ('1001', '刘老师', '女', '1990-03-08', '硕士', '副教授', '2015-09-02', '2');\nINSERT INTO `teacher` VALUES ('1002', '张老师', '男', '1996-09-02', '本科', '普通教师', '2015-09-02', '1');\nINSERT INTO `teacher` VALUES ('1003', '软老师', '男', '1996-09-02', '硕士', '助教', '2017-07-07', '1');\n\n-- ----------------------------\n-- Table structure for userlogin\n-- ----------------------------\nDROP TABLE IF EXISTS `userlogin`;\nCREATE TABLE `userlogin` (\n  `userID` int(11) NOT NULL AUTO_INCREMENT,\n  `userName` varchar(200) NOT NULL,\n  `password` varchar(200) NOT NULL,\n  `role` int(11) NOT NULL DEFAULT '2' COMMENT '角色权限',\n  PRIMARY KEY (`userID`),\n  KEY `role` (`role`),\n  CONSTRAINT `userlogin_ibfk_1` FOREIGN KEY (`role`) REFERENCES `role` (`roleID`)\n) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;\n\n-- ----------------------------\n-- Records of userlogin\n-- ----------------------------\nINSERT INTO `userlogin` VALUES ('1', 'admin', '123', '0');\nINSERT INTO `userlogin` VALUES ('8', '10001', '123', '2');\nINSERT INTO `userlogin` VALUES ('9', '10002', '123', '2');\nINSERT INTO `userlogin` VALUES ('10', '10003', '123', '2');\nINSERT INTO `userlogin` VALUES ('11', '10005', '123', '2');\nINSERT INTO `userlogin` VALUES ('12', '10004', '123', '2');\nINSERT INTO `userlogin` VALUES ('13', '10006', '123', '2');\nINSERT INTO `userlogin` VALUES ('14', '1001', '123', '1');\nINSERT INTO `userlogin` VALUES ('15', '1002', '123', '1');\nINSERT INTO `userlogin` VALUES ('16', '1003', '123', '1');\nSET FOREIGN_KEY_CHECKS=1;\n"
  },
  {
    "path": "src/main/java/com/system/controller/AdminController.java",
    "content": "package com.system.controller;\n\nimport com.system.exception.CustomException;\nimport com.system.po.*;\nimport com.system.service.*;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.ui.Model;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\n\nimport javax.annotation.Resource;\nimport java.util.List;\n\n\n/**\n * Created by Jacey on 2017/6/30.\n */\n@Controller\n@RequestMapping(\"/admin\")\npublic class AdminController {\n\n    @Resource(name = \"studentServiceImpl\")\n    private StudentService studentService;\n\n    @Resource(name = \"teacherServiceImpl\")\n    private TeacherService teacherService;\n\n    @Resource(name = \"courseServiceImpl\")\n    private CourseService courseService;\n\n    @Resource(name = \"collegeServiceImpl\")\n    private CollegeService collegeService;\n\n    @Resource(name = \"userloginServiceImpl\")\n    private UserloginService userloginService;\n\n    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<学生操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/\n\n    //  学生信息显示\n    @RequestMapping(\"/showStudent\")\n    public String showStudent(Model model, Integer page) throws Exception {\n\n        List<StudentCustom> list = null;\n        //页码对象\n        PagingVO pagingVO = new PagingVO();\n        //设置总页数\n        pagingVO.setTotalCount(studentService.getCountStudent());\n        if (page == null || page == 0) {\n            pagingVO.setToPageNo(1);\n            list = studentService.findByPaging(1);\n        } else {\n            pagingVO.setToPageNo(page);\n            list = studentService.findByPaging(page);\n        }\n\n        model.addAttribute(\"studentList\", list);\n        model.addAttribute(\"pagingVO\", pagingVO);\n\n        return \"admin/showStudent\";\n\n    }\n\n    //  添加学生信息页面显示\n    @RequestMapping(value = \"/addStudent\", method = {RequestMethod.GET})\n    public String addStudentUI(Model model) throws Exception {\n\n        List<College> list = collegeService.finAll();\n\n        model.addAttribute(\"collegeList\", list);\n\n        return \"admin/addStudent\";\n    }\n\n     // 添加学生信息操作\n    @RequestMapping(value = \"/addStudent\", method = {RequestMethod.POST})\n    public String addStudent(StudentCustom studentCustom, Model model) throws Exception {\n\n        Boolean result = studentService.save(studentCustom);\n\n        if (!result) {\n            model.addAttribute(\"message\", \"学号重复\");\n            return \"error\";\n        }\n        //添加成功后，也添加到登录表\n        Userlogin userlogin = new Userlogin();\n        userlogin.setUsername(studentCustom.getUserid().toString());\n        userlogin.setPassword(\"123\");\n        userlogin.setRole(2);\n        userloginService.save(userlogin);\n\n        //重定向\n        return \"redirect:/admin/showStudent\";\n    }\n\n    // 修改学生信息页面显示\n    @RequestMapping(value = \"/editStudent\", method = {RequestMethod.GET})\n    public String editStudentUI(Integer id, Model model) throws Exception {\n        if (id == null) {\n            //加入没有带学生id就进来的话就返回学生显示页面\n            return \"redirect:/admin/showStudent\";\n        }\n        StudentCustom studentCustom = studentService.findById(id);\n        if (studentCustom == null) {\n            throw new CustomException(\"未找到该名学生\");\n        }\n        List<College> list = collegeService.finAll();\n\n        model.addAttribute(\"collegeList\", list);\n        model.addAttribute(\"student\", studentCustom);\n\n\n        return \"admin/editStudent\";\n    }\n\n    // 修改学生信息处理\n    @RequestMapping(value = \"/editStudent\", method = {RequestMethod.POST})\n    public String editStudent(StudentCustom studentCustom) throws Exception {\n\n        studentService.updataById(studentCustom.getUserid(), studentCustom);\n\n        //重定向\n        return \"redirect:/admin/showStudent\";\n    }\n\n    // 删除学生\n    @RequestMapping(value = \"/removeStudent\", method = {RequestMethod.GET} )\n    private String removeStudent(Integer id) throws Exception {\n        if (id == null) {\n            //加入没有带学生id就进来的话就返回学生显示页面\n            return \"admin/showStudent\";\n        }\n        studentService.removeById(id);\n        userloginService.removeByName(id.toString());\n\n        return \"redirect:/admin/showStudent\";\n    }\n\n    // 搜索学生\n    @RequestMapping(value = \"selectStudent\", method = {RequestMethod.POST})\n    private String selectStudent(String findByName, Model model) throws Exception {\n\n        List<StudentCustom> list = studentService.findByName(findByName);\n\n        model.addAttribute(\"studentList\", list);\n        return \"admin/showStudent\";\n    }\n\n    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教师操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/\n\n    // 教师页面显示\n    @RequestMapping(\"/showTeacher\")\n    public String showTeacher(Model model, Integer page) throws Exception {\n\n        List<TeacherCustom> list = null;\n        //页码对象\n        PagingVO pagingVO = new PagingVO();\n        //设置总页数\n        pagingVO.setTotalCount(teacherService.getCountTeacher());\n        if (page == null || page == 0) {\n            pagingVO.setToPageNo(1);\n            list = teacherService.findByPaging(1);\n        } else {\n            pagingVO.setToPageNo(page);\n            list = teacherService.findByPaging(page);\n        }\n\n        model.addAttribute(\"teacherList\", list);\n        model.addAttribute(\"pagingVO\", pagingVO);\n\n        return \"admin/showTeacher\";\n\n    }\n\n    // 添加教师信息\n    @RequestMapping(value = \"/addTeacher\", method = {RequestMethod.GET})\n    public String addTeacherUI(Model model) throws Exception {\n\n        List<College> list = collegeService.finAll();\n\n        model.addAttribute(\"collegeList\", list);\n\n        return \"admin/addTeacher\";\n    }\n\n    // 添加教师信息处理\n    @RequestMapping(value = \"/addTeacher\", method = {RequestMethod.POST})\n    public String addTeacher(TeacherCustom teacherCustom, Model model) throws Exception {\n\n        Boolean result = teacherService.save(teacherCustom);\n\n        if (!result) {\n            model.addAttribute(\"message\", \"工号重复\");\n            return \"error\";\n        }\n        //添加成功后，也添加到登录表\n        Userlogin userlogin = new Userlogin();\n        userlogin.setUsername(teacherCustom.getUserid().toString());\n        userlogin.setPassword(\"123\");\n        userlogin.setRole(1);\n        userloginService.save(userlogin);\n\n        //重定向\n        return \"redirect:/admin/showTeacher\";\n    }\n\n    // 修改教师信息页面显示\n    @RequestMapping(value = \"/editTeacher\", method = {RequestMethod.GET})\n    public String editTeacherUI(Integer id, Model model) throws Exception {\n        if (id == null) {\n            return \"redirect:/admin/showTeacher\";\n        }\n        TeacherCustom teacherCustom = teacherService.findById(id);\n        if (teacherCustom == null) {\n            throw new CustomException(\"未找到该名学生\");\n        }\n        List<College> list = collegeService.finAll();\n\n        model.addAttribute(\"collegeList\", list);\n        model.addAttribute(\"teacher\", teacherCustom);\n\n\n        return \"admin/editTeacher\";\n    }\n\n    // 修改教师信息页面处理\n    @RequestMapping(value = \"/editTeacher\", method = {RequestMethod.POST})\n    public String editTeacher(TeacherCustom teacherCustom) throws Exception {\n\n        teacherService.updateById(teacherCustom.getUserid(), teacherCustom);\n\n        //重定向\n        return \"redirect:/admin/showTeacher\";\n    }\n\n    //删除教师\n    @RequestMapping(\"/removeTeacher\")\n    public String removeTeacher(Integer id) throws Exception {\n        if (id == null) {\n            //加入没有带教师id就进来的话就返回教师显示页面\n            return \"admin/showTeacher\";\n        }\n        teacherService.removeById(id);\n        userloginService.removeByName(id.toString());\n\n        return \"redirect:/admin/showTeacher\";\n    }\n\n    //搜索教师\n    @RequestMapping(value = \"selectTeacher\", method = {RequestMethod.POST})\n    private String selectTeacher(String findByName, Model model) throws Exception {\n\n        List<TeacherCustom> list = teacherService.findByName(findByName);\n\n        model.addAttribute(\"teacherList\", list);\n        return \"admin/showTeacher\";\n    }\n\n    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<课程操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/\n\n    // 课程信息显示\n    @RequestMapping(\"/showCourse\")\n    public String showCourse(Model model, Integer page) throws Exception {\n\n        List<CourseCustom> list = null;\n        //页码对象\n        PagingVO pagingVO = new PagingVO();\n        //设置总页数\n        pagingVO.setTotalCount(courseService.getCountCouse());\n        if (page == null || page == 0) {\n            pagingVO.setToPageNo(1);\n            list = courseService.findByPaging(1);\n        } else {\n            pagingVO.setToPageNo(page);\n            list = courseService.findByPaging(page);\n        }\n\n        model.addAttribute(\"courseList\", list);\n        model.addAttribute(\"pagingVO\", pagingVO);\n\n        return \"admin/showCourse\";\n\n    }\n\n    //添加课程\n    @RequestMapping(value = \"/addCourse\", method = {RequestMethod.GET})\n    public String addCourseUI(Model model) throws Exception {\n\n        List<TeacherCustom> list = teacherService.findAll();\n        List<College> collegeList = collegeService.finAll();\n\n        model.addAttribute(\"collegeList\", collegeList);\n        model.addAttribute(\"teacherList\", list);\n\n        return \"admin/addCourse\";\n    }\n\n    // 添加课程信息处理\n    @RequestMapping(value = \"/addCourse\", method = {RequestMethod.POST})\n    public String addCourse(CourseCustom courseCustom, Model model) throws Exception {\n\n        Boolean result = courseService.save(courseCustom);\n\n        if (!result) {\n            model.addAttribute(\"message\", \"课程号重复\");\n            return \"error\";\n        }\n\n\n        //重定向\n        return \"redirect:/admin/showCourse\";\n    }\n\n    // 修改教师信息页面显示\n    @RequestMapping(value = \"/editCourse\", method = {RequestMethod.GET})\n    public String editCourseUI(Integer id, Model model) throws Exception {\n        if (id == null) {\n            return \"redirect:/admin/showCourse\";\n        }\n        CourseCustom courseCustom = courseService.findById(id);\n        if (courseCustom == null) {\n            throw new CustomException(\"未找到该课程\");\n        }\n        List<TeacherCustom> list = teacherService.findAll();\n        List<College> collegeList = collegeService.finAll();\n\n        model.addAttribute(\"teacherList\", list);\n        model.addAttribute(\"collegeList\", collegeList);\n        model.addAttribute(\"course\", courseCustom);\n\n\n        return \"admin/editCourse\";\n    }\n\n    // 修改教师信息页面处理\n    @RequestMapping(value = \"/editCourse\", method = {RequestMethod.POST})\n    public String editCourse(CourseCustom courseCustom) throws Exception {\n\n        courseService.upadteById(courseCustom.getCourseid(), courseCustom);\n\n        //重定向\n        return \"redirect:/admin/showCourse\";\n    }\n\n    // 删除课程信息\n    @RequestMapping(\"/removeCourse\")\n    public String removeCourse(Integer id) throws Exception {\n        if (id == null) {\n            //加入没有带教师id就进来的话就返回教师显示页面\n            return \"admin/showCourse\";\n        }\n        courseService.removeById(id);\n\n        return \"redirect:/admin/showCourse\";\n    }\n\n    //搜索课程\n    @RequestMapping(value = \"selectCourse\", method = {RequestMethod.POST})\n    private String selectCourse(String findByName, Model model) throws Exception {\n\n        List<CourseCustom> list = courseService.findByName(findByName);\n\n        model.addAttribute(\"courseList\", list);\n        return \"admin/showCourse\";\n    }\n\n    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<其他操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/\n\n    // 普通用户账号密码重置\n    @RequestMapping(\"/userPasswordRest\")\n    public String userPasswordRestUI() throws Exception {\n        return \"admin/userPasswordRest\";\n    }\n\n    // 普通用户账号密码重置处理\n    @RequestMapping(value = \"/userPasswordRest\", method = {RequestMethod.POST})\n    public String userPasswordRest(Userlogin userlogin) throws Exception {\n\n        Userlogin u = userloginService.findByName(userlogin.getUsername());\n\n        if (u != null) {\n            if (u.getRole() == 0) {\n                throw new CustomException(\"该账户为管理员账户，没法修改\");\n            }\n            u.setPassword(userlogin.getPassword());\n            userloginService.updateByName(userlogin.getUsername(), u);\n        } else {\n            throw new CustomException(\"没找到该用户\");\n        }\n\n        return \"admin/userPasswordRest\";\n    }\n\n    // 本账户密码重置\n    @RequestMapping(\"/passwordRest\")\n    public String passwordRestUI() throws Exception {\n        return \"admin/passwordRest\";\n    }\n\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/controller/LoginController.java",
    "content": "package com.system.controller;\n\nimport com.system.po.Userlogin;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.authc.UsernamePasswordToken;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\n\n/**\n * Created by Jacey on 2017/6/30.\n */\n@Controller\npublic class LoginController {\n\n    //登录跳转\n    @RequestMapping(value = \"/login\", method = {RequestMethod.GET})\n    public String loginUI() throws Exception {\n        return \"../../login\";\n    }\n\n    //登录表单处理\n    @RequestMapping(value = \"/login\", method = {RequestMethod.POST})\n    public String login(Userlogin userlogin) throws Exception {\n\n        //Shiro实现登录\n        UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),\n                userlogin.getPassword());\n        Subject subject = SecurityUtils.getSubject();\n\n        //如果获取不到用户名就是登录失败，但登录失败的话，会直接抛出异常\n        subject.login(token);\n\n        if (subject.hasRole(\"admin\")) {\n            return \"redirect:/admin/showStudent\";\n        } else if (subject.hasRole(\"teacher\")) {\n            return \"redirect:/teacher/showCourse\";\n        } else if (subject.hasRole(\"student\")) {\n            return \"redirect:/student/showCourse\";\n        }\n\n        return \"/login\";\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/controller/RestPasswordController.java",
    "content": "package com.system.controller;\n\nimport com.system.exception.CustomException;\nimport com.system.po.Userlogin;\nimport com.system.service.UserloginService;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\n\nimport javax.annotation.Resource;\n\n/**\n * Created by Jacey on 2017/7/6.\n */\n@Controller\npublic class RestPasswordController {\n\n    @Resource(name = \"userloginServiceImpl\")\n    private UserloginService userloginService;\n\n    // 本账户密码重置\n    @RequestMapping(value = \"/passwordRest\", method = {RequestMethod.POST})\n    public String passwordRest(String oldPassword, String password1) throws Exception {\n        Subject subject = SecurityUtils.getSubject();\n        String username = (String) subject.getPrincipal();\n\n        Userlogin userlogin = userloginService.findByName(username);\n\n        if (!oldPassword.equals(userlogin.getPassword())) {\n            throw new CustomException(\"旧密码不正确\");\n        } else {\n            userlogin.setPassword(password1);\n            userloginService.updateByName(username, userlogin);\n        }\n\n        return \"redirect:/logout\";\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/controller/StudentController.java",
    "content": "package com.system.controller;\n\nimport com.system.exception.CustomException;\nimport com.system.po.*;\nimport com.system.service.CourseService;\nimport com.system.service.SelectedCourseService;\nimport com.system.service.StudentService;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.ui.Model;\nimport org.springframework.web.bind.annotation.RequestMapping;\n\nimport javax.annotation.Resource;\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/7/5.\n */\n@Controller\n@RequestMapping(value = \"/student\")\npublic class StudentController {\n\n    @Resource(name = \"courseServiceImpl\")\n    private CourseService courseService;\n\n    @Resource(name = \"studentServiceImpl\")\n    private StudentService studentService;\n\n    @Resource(name = \"selectedCourseServiceImpl\")\n    private SelectedCourseService selectedCourseService;\n\n    @RequestMapping(value = \"/showCourse\")\n    public String stuCourseShow(Model model, Integer page) throws Exception {\n\n        List<CourseCustom> list = null;\n        //页码对象\n        PagingVO pagingVO = new PagingVO();\n        //设置总页数\n        pagingVO.setTotalCount(courseService.getCountCouse());\n        if (page == null || page == 0) {\n            pagingVO.setToPageNo(1);\n            list = courseService.findByPaging(1);\n        } else {\n            pagingVO.setToPageNo(page);\n            list = courseService.findByPaging(page);\n        }\n\n        model.addAttribute(\"courseList\", list);\n        model.addAttribute(\"pagingVO\", pagingVO);\n\n        return \"student/showCourse\";\n    }\n\n    // 选课操作\n    @RequestMapping(value = \"/stuSelectedCourse\")\n    public String stuSelectedCourse(int id) throws Exception {\n        //获取当前用户名\n        Subject subject = SecurityUtils.getSubject();\n        String username = (String) subject.getPrincipal();\n\n        SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();\n        selectedCourseCustom.setCourseid(id);\n        selectedCourseCustom.setStudentid(Integer.parseInt(username));\n\n        SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom);\n\n        if (s == null) {\n            selectedCourseService.save(selectedCourseCustom);\n        } else {\n            throw new CustomException(\"该门课程你已经选了，不能再选\");\n        }\n\n        return \"redirect:/student/selectedCourse\";\n    }\n\n    // 退课操作\n    @RequestMapping(value = \"/outCourse\")\n    public String outCourse(int id) throws Exception {\n        Subject subject = SecurityUtils.getSubject();\n        String username = (String) subject.getPrincipal();\n\n        SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom();\n        selectedCourseCustom.setCourseid(id);\n        selectedCourseCustom.setStudentid(Integer.parseInt(username));\n\n        selectedCourseService.remove(selectedCourseCustom);\n\n        return \"redirect:/student/selectedCourse\";\n    }\n\n    // 已选课程\n    @RequestMapping(value = \"/selectedCourse\")\n    public String selectedCourse(Model model) throws Exception {\n        //获取当前用户名\n        Subject subject = SecurityUtils.getSubject();\n        StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());\n\n        List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();\n\n        model.addAttribute(\"selectedCourseList\", list);\n\n        return \"student/selectCourse\";\n    }\n\n    // 已修课程\n    @RequestMapping(value = \"/overCourse\")\n    public String overCourse(Model model) throws Exception {\n\n        //获取当前用户名\n        Subject subject = SecurityUtils.getSubject();\n        StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal());\n\n        List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();\n\n        model.addAttribute(\"selectedCourseList\", list);\n\n        return \"student/overCourse\";\n    }\n\n    //修改密码\n    @RequestMapping(value = \"/passwordRest\")\n    public String passwordRest() throws Exception {\n        return \"student/passwordRest\";\n    }\n\n\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/controller/TeacherController.java",
    "content": "package com.system.controller;\n\nimport com.system.exception.CustomException;\nimport com.system.po.*;\nimport com.system.service.CourseService;\nimport com.system.service.SelectedCourseService;\nimport com.system.service.StudentService;\nimport com.system.service.TeacherService;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.ui.Model;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\n\nimport javax.annotation.Resource;\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/7/6.\n */\n\n@Controller\n@RequestMapping(value = \"/teacher\")\npublic class TeacherController {\n\n    @Resource(name = \"teacherServiceImpl\")\n    private TeacherService teacherService;\n\n    @Resource(name = \"courseServiceImpl\")\n    private CourseService courseService;\n\n    @Resource(name = \"selectedCourseServiceImpl\")\n    private SelectedCourseService selectedCourseService;\n\n    // 显示我的课程\n    @RequestMapping(value = \"/showCourse\")\n    public String stuCourseShow(Model model) throws Exception {\n\n        Subject subject = SecurityUtils.getSubject();\n        String username = (String) subject.getPrincipal();\n\n        List<CourseCustom> list = courseService.findByTeacherID(Integer.parseInt(username));\n        model.addAttribute(\"courseList\", list);\n\n        return \"teacher/showCourse\";\n    }\n\n    // 显示成绩\n    @RequestMapping(value = \"/gradeCourse\")\n    public String gradeCourse(Integer id, Model model) throws Exception {\n        if (id == null) {\n            return \"\";\n        }\n        List<SelectedCourseCustom> list = selectedCourseService.findByCourseID(id);\n        model.addAttribute(\"selectedCourseList\", list);\n        return \"teacher/showGrade\";\n    }\n\n    // 打分\n    @RequestMapping(value = \"/mark\", method = {RequestMethod.GET})\n    public String markUI(SelectedCourseCustom scc, Model model) throws Exception {\n\n        SelectedCourseCustom selectedCourseCustom = selectedCourseService.findOne(scc);\n\n        model.addAttribute(\"selectedCourse\", selectedCourseCustom);\n\n        return \"teacher/mark\";\n    }\n\n    // 打分\n    @RequestMapping(value = \"/mark\", method = {RequestMethod.POST})\n    public String mark(SelectedCourseCustom scc) throws Exception {\n\n        selectedCourseService.updataOne(scc);\n\n        return \"redirect:/teacher/gradeCourse?id=\"+scc.getCourseid();\n    }\n\n    //修改密码\n    @RequestMapping(value = \"/passwordRest\")\n    public String passwordRest() throws Exception {\n        return \"teacher/passwordRest\";\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/controller/converter/CustomDateConverter.java",
    "content": "package com.system.controller.converter;\n\nimport org.springframework.core.convert.converter.Converter;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/**\n * 参数绑定 字符串日期转换器\n */\npublic class CustomDateConverter implements Converter<String, Date> {\n\n\n    public Date convert(String s) {\n        //实现 将日期串转成日期类型(格式是yyyy-MM-dd)\n        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(\"yyyy-MM-dd\");\n\n        try {\n            //转成直接返回\n            return simpleDateFormat.parse(s);\n        } catch (ParseException e) {\n            // TODO Auto-generated catch block\n            e.printStackTrace();\n        }\n\n        //如果参数绑定失败返回null\n        return null;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/exception/CustomException.java",
    "content": "package com.system.exception;\n\n/**\n *  系统自定义异常类，针对预期异常，需要在程序中抛出此类的异常\n */\npublic class CustomException extends Exception {\n\n    //异常信息\n    public String message;\n\n    public CustomException(String message) {\n        super(message);\n        this.message=message;\n    }\n\n    public String getMessage() {\n        return message;\n    }\n\n    public void setMessage(String message) {\n        this.message = message;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/exception/CustomExceptionResolver.java",
    "content": "package com.system.exception;\n\nimport org.apache.shiro.authc.IncorrectCredentialsException;\nimport org.apache.shiro.authc.UnknownAccountException;\nimport org.springframework.web.servlet.HandlerExceptionResolver;\nimport org.springframework.web.servlet.ModelAndView;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\n\n/**\n *    全局异常处理器\n *    springmvc提供一个HandlerExceptionResolver接口\n *      只要实现该接口，并配置到spring 容器里，该类就能\n *      成为默认全局异常处理类\n *\n *   全局异常处理器只有一个，配置多个也没用。\n */\npublic class CustomExceptionResolver implements HandlerExceptionResolver {\n\n    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {\n\n        ModelAndView modelAndView = new ModelAndView();\n\n        CustomException customException;\n        if (e instanceof CustomException) {\n            customException = (CustomException)e;\n        } else if (e instanceof UnknownAccountException) {\n            //用户名错误异常\n            modelAndView.addObject(\"message\", \"没有该用户\");\n            modelAndView.setViewName(\"error\");\n            return modelAndView;\n        } else if (e instanceof IncorrectCredentialsException) {\n            //用户名错误异常\n            modelAndView.addObject(\"message\", \"密码错误\");\n            modelAndView.setViewName(\"error\");\n            return modelAndView;\n        } else {\n            customException = new CustomException(\"未知错误\");\n        }\n\n        //错误信息\n        String message = customException.getMessage();\n\n\n\n        //错误信息传递和错误页面跳转\n        modelAndView.addObject(\"message\", message);\n        modelAndView.setViewName(\"error\");\n\n\n        return modelAndView;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/mapper/CollegeMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.College;\nimport com.system.po.CollegeExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface CollegeMapper {\n    int countByExample(CollegeExample example);\n\n    int deleteByExample(CollegeExample example);\n\n    int deleteByPrimaryKey(Integer collegeid);\n\n    int insert(College record);\n\n    int insertSelective(College record);\n\n    List<College> selectByExample(CollegeExample example);\n\n    College selectByPrimaryKey(Integer collegeid);\n\n    int updateByExampleSelective(@Param(\"record\") College record, @Param(\"example\") CollegeExample example);\n\n    int updateByExample(@Param(\"record\") College record, @Param(\"example\") CollegeExample example);\n\n    int updateByPrimaryKeySelective(College record);\n\n    int updateByPrimaryKey(College record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/CollegeMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.CollegeMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.College\" >\n    <id column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n    <result column=\"collegeName\" property=\"collegename\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    collegeID, collegeName\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.CollegeExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from college\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from college\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.CollegeExample\" >\n    delete from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.College\" >\n    insert into college (collegeID, collegeName)\n    values (#{collegeid,jdbcType=INTEGER}, #{collegename,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.College\" >\n    insert into college\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n      <if test=\"collegename != null\" >\n        collegeName,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"collegename != null\" >\n        #{collegename,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.CollegeExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update college\n    <set >\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.collegename != null\" >\n        collegeName = #{record.collegename,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update college\n    set collegeID = #{record.collegeid,jdbcType=INTEGER},\n      collegeName = #{record.collegename,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.College\" >\n    update college\n    <set >\n      <if test=\"collegename != null\" >\n        collegeName = #{collegename,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.College\" >\n    update college\n    set collegeName = #{collegename,jdbcType=VARCHAR}\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/CourseMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Course;\nimport com.system.po.CourseExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface CourseMapper {\n    int countByExample(CourseExample example);\n\n    int deleteByExample(CourseExample example);\n\n    int deleteByPrimaryKey(Integer courseid);\n\n    int insert(Course record);\n\n    int insertSelective(Course record);\n\n    List<Course> selectByExample(CourseExample example);\n\n    Course selectByPrimaryKey(Integer courseid);\n\n    int updateByExampleSelective(@Param(\"record\") Course record, @Param(\"example\") CourseExample example);\n\n    int updateByExample(@Param(\"record\") Course record, @Param(\"example\") CourseExample example);\n\n    int updateByPrimaryKeySelective(Course record);\n\n    int updateByPrimaryKey(Course record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/CourseMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.CourseMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Course\" >\n    <id column=\"courseID\" property=\"courseid\" jdbcType=\"INTEGER\" />\n    <result column=\"courseName\" property=\"coursename\" jdbcType=\"VARCHAR\" />\n    <result column=\"teacherID\" property=\"teacherid\" jdbcType=\"INTEGER\" />\n    <result column=\"courseTime\" property=\"coursetime\" jdbcType=\"VARCHAR\" />\n    <result column=\"classRoom\" property=\"classroom\" jdbcType=\"VARCHAR\" />\n    <result column=\"courseWeek\" property=\"courseweek\" jdbcType=\"INTEGER\" />\n    <result column=\"courseType\" property=\"coursetype\" jdbcType=\"VARCHAR\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n    <result column=\"score\" property=\"score\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    courseID, courseName, teacherID, courseTime, classRoom, courseWeek, courseType, collegeID, \n    score\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.CourseExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from course\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from course\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.CourseExample\" >\n    delete from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Course\" >\n    insert into course (courseID, courseName, teacherID, \n      courseTime, classRoom, courseWeek, \n      courseType, collegeID, score\n      )\n    values (#{courseid,jdbcType=INTEGER}, #{coursename,jdbcType=VARCHAR}, #{teacherid,jdbcType=INTEGER}, \n      #{coursetime,jdbcType=VARCHAR}, #{classroom,jdbcType=VARCHAR}, #{courseweek,jdbcType=INTEGER}, \n      #{coursetype,jdbcType=VARCHAR}, #{collegeid,jdbcType=INTEGER}, #{score,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Course\" >\n    insert into course\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        courseID,\n      </if>\n      <if test=\"coursename != null\" >\n        courseName,\n      </if>\n      <if test=\"teacherid != null\" >\n        teacherID,\n      </if>\n      <if test=\"coursetime != null\" >\n        courseTime,\n      </if>\n      <if test=\"classroom != null\" >\n        classRoom,\n      </if>\n      <if test=\"courseweek != null\" >\n        courseWeek,\n      </if>\n      <if test=\"coursetype != null\" >\n        courseType,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n      <if test=\"score != null\" >\n        score,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        #{courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursename != null\" >\n        #{coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"teacherid != null\" >\n        #{teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetime != null\" >\n        #{coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"classroom != null\" >\n        #{classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"courseweek != null\" >\n        #{courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetype != null\" >\n        #{coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"score != null\" >\n        #{score,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.CourseExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update course\n    <set >\n      <if test=\"record.courseid != null\" >\n        courseID = #{record.courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursename != null\" >\n        courseName = #{record.coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.teacherid != null\" >\n        teacherID = #{record.teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursetime != null\" >\n        courseTime = #{record.coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.classroom != null\" >\n        classRoom = #{record.classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.courseweek != null\" >\n        courseWeek = #{record.courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursetype != null\" >\n        courseType = #{record.coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.score != null\" >\n        score = #{record.score,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update course\n    set courseID = #{record.courseid,jdbcType=INTEGER},\n      courseName = #{record.coursename,jdbcType=VARCHAR},\n      teacherID = #{record.teacherid,jdbcType=INTEGER},\n      courseTime = #{record.coursetime,jdbcType=VARCHAR},\n      classRoom = #{record.classroom,jdbcType=VARCHAR},\n      courseWeek = #{record.courseweek,jdbcType=INTEGER},\n      courseType = #{record.coursetype,jdbcType=VARCHAR},\n      collegeID = #{record.collegeid,jdbcType=INTEGER},\n      score = #{record.score,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Course\" >\n    update course\n    <set >\n      <if test=\"coursename != null\" >\n        courseName = #{coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"teacherid != null\" >\n        teacherID = #{teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetime != null\" >\n        courseTime = #{coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"classroom != null\" >\n        classRoom = #{classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"courseweek != null\" >\n        courseWeek = #{courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetype != null\" >\n        courseType = #{coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"score != null\" >\n        score = #{score,jdbcType=INTEGER},\n      </if>\n    </set>\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Course\" >\n    update course\n    set courseName = #{coursename,jdbcType=VARCHAR},\n      teacherID = #{teacherid,jdbcType=INTEGER},\n      courseTime = #{coursetime,jdbcType=VARCHAR},\n      classRoom = #{classroom,jdbcType=VARCHAR},\n      courseWeek = #{courseweek,jdbcType=INTEGER},\n      courseType = #{coursetype,jdbcType=VARCHAR},\n      collegeID = #{collegeid,jdbcType=INTEGER},\n      score = #{score,jdbcType=INTEGER}\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/CourseMapperCustom.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.CourseCustom;\nimport com.system.po.PagingVO;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic interface CourseMapperCustom {\n\n    //分页查询学生信息\n    List<CourseCustom> findByPaging(PagingVO pagingVO) throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/mapper/CourseMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.CourseMapperCustom\">\n\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"CourseCustom\">\n        select course.*, college.collegeName\n        from course, college\n        WHERE course.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/RoleMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Role;\nimport com.system.po.RoleExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface RoleMapper {\n    int countByExample(RoleExample example);\n\n    int deleteByExample(RoleExample example);\n\n    int deleteByPrimaryKey(Integer roleid);\n\n    int insert(Role record);\n\n    int insertSelective(Role record);\n\n    List<Role> selectByExample(RoleExample example);\n\n    Role selectByPrimaryKey(Integer roleid);\n\n    int updateByExampleSelective(@Param(\"record\") Role record, @Param(\"example\") RoleExample example);\n\n    int updateByExample(@Param(\"record\") Role record, @Param(\"example\") RoleExample example);\n\n    int updateByPrimaryKeySelective(Role record);\n\n    int updateByPrimaryKey(Role record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/RoleMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.RoleMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Role\" >\n    <id column=\"roleID\" property=\"roleid\" jdbcType=\"INTEGER\" />\n    <result column=\"roleName\" property=\"rolename\" jdbcType=\"VARCHAR\" />\n    <result column=\"permissions\" property=\"permissions\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    roleID, roleName, permissions\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.RoleExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from role\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from role\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.RoleExample\" >\n    delete from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Role\" >\n    insert into role (roleID, roleName, permissions\n      )\n    values (#{roleid,jdbcType=INTEGER}, #{rolename,jdbcType=VARCHAR}, #{permissions,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Role\" >\n    insert into role\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"roleid != null\" >\n        roleID,\n      </if>\n      <if test=\"rolename != null\" >\n        roleName,\n      </if>\n      <if test=\"permissions != null\" >\n        permissions,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"roleid != null\" >\n        #{roleid,jdbcType=INTEGER},\n      </if>\n      <if test=\"rolename != null\" >\n        #{rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"permissions != null\" >\n        #{permissions,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.RoleExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update role\n    <set >\n      <if test=\"record.roleid != null\" >\n        roleID = #{record.roleid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.rolename != null\" >\n        roleName = #{record.rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.permissions != null\" >\n        permissions = #{record.permissions,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update role\n    set roleID = #{record.roleid,jdbcType=INTEGER},\n      roleName = #{record.rolename,jdbcType=VARCHAR},\n      permissions = #{record.permissions,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Role\" >\n    update role\n    <set >\n      <if test=\"rolename != null\" >\n        roleName = #{rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"permissions != null\" >\n        permissions = #{permissions,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Role\" >\n    update role\n    set roleName = #{rolename,jdbcType=VARCHAR},\n      permissions = #{permissions,jdbcType=VARCHAR}\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/SelectedcourseMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Selectedcourse;\nimport com.system.po.SelectedcourseExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface SelectedcourseMapper {\n    int countByExample(SelectedcourseExample example);\n\n    int deleteByExample(SelectedcourseExample example);\n\n    int insert(Selectedcourse record);\n\n    int insertSelective(Selectedcourse record);\n\n    List<Selectedcourse> selectByExample(SelectedcourseExample example);\n\n    int updateByExampleSelective(@Param(\"record\") Selectedcourse record, @Param(\"example\") SelectedcourseExample example);\n\n    int updateByExample(@Param(\"record\") Selectedcourse record, @Param(\"example\") SelectedcourseExample example);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/SelectedcourseMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.SelectedcourseMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Selectedcourse\" >\n    <result column=\"courseID\" property=\"courseid\" jdbcType=\"INTEGER\" />\n    <result column=\"studentID\" property=\"studentid\" jdbcType=\"INTEGER\" />\n    <result column=\"mark\" property=\"mark\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    courseID, studentID, mark\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.SelectedcourseExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.SelectedcourseExample\" >\n    delete from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Selectedcourse\" >\n    insert into selectedcourse (courseID, studentID, mark\n      )\n    values (#{courseid,jdbcType=INTEGER}, #{studentid,jdbcType=INTEGER}, #{mark,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Selectedcourse\" >\n    insert into selectedcourse\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        courseID,\n      </if>\n      <if test=\"studentid != null\" >\n        studentID,\n      </if>\n      <if test=\"mark != null\" >\n        mark,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        #{courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"studentid != null\" >\n        #{studentid,jdbcType=INTEGER},\n      </if>\n      <if test=\"mark != null\" >\n        #{mark,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.SelectedcourseExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update selectedcourse\n    <set >\n      <if test=\"record.courseid != null\" >\n        courseID = #{record.courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.studentid != null\" >\n        studentID = #{record.studentid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.mark != null\" >\n        mark = #{record.mark,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update selectedcourse\n    set courseID = #{record.courseid,jdbcType=INTEGER},\n      studentID = #{record.studentid,jdbcType=INTEGER},\n      mark = #{record.mark,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/StudentMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Student;\nimport com.system.po.StudentExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface StudentMapper {\n    int countByExample(StudentExample example);\n\n    int deleteByExample(StudentExample example);\n\n    int deleteByPrimaryKey(Integer userid);\n\n    int insert(Student record);\n\n    int insertSelective(Student record);\n\n    List<Student> selectByExample(StudentExample example);\n\n    Student selectByPrimaryKey(Integer userid);\n\n    int updateByExampleSelective(@Param(\"record\") Student record, @Param(\"example\") StudentExample example);\n\n    int updateByExample(@Param(\"record\") Student record, @Param(\"example\") StudentExample example);\n\n    int updateByPrimaryKeySelective(Student record);\n\n    int updateByPrimaryKey(Student record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/StudentMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.StudentMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Student\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"sex\" property=\"sex\" jdbcType=\"VARCHAR\" />\n    <result column=\"birthYear\" property=\"birthyear\" jdbcType=\"DATE\" />\n    <result column=\"grade\" property=\"grade\" jdbcType=\"DATE\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, sex, birthYear, grade, collegeID\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.StudentExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from student\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from student\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.StudentExample\" >\n    delete from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Student\" >\n    insert into student (userID, userName, sex, \n      birthYear, grade, collegeID\n      )\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, \n      #{birthyear,jdbcType=DATE}, #{grade,jdbcType=DATE}, #{collegeid,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Student\" >\n    insert into student\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"sex != null\" >\n        sex,\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear,\n      </if>\n      <if test=\"grade != null\" >\n        grade,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"grade != null\" >\n        #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.StudentExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update student\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.sex != null\" >\n        sex = #{record.sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.birthyear != null\" >\n        birthYear = #{record.birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"record.grade != null\" >\n        grade = #{record.grade,jdbcType=DATE},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update student\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      sex = #{record.sex,jdbcType=VARCHAR},\n      birthYear = #{record.birthyear,jdbcType=DATE},\n      grade = #{record.grade,jdbcType=DATE},\n      collegeID = #{record.collegeid,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Student\" >\n    update student\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        sex = #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear = #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"grade != null\" >\n        grade = #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Student\" >\n    update student\n    set userName = #{username,jdbcType=VARCHAR},\n      sex = #{sex,jdbcType=VARCHAR},\n      birthYear = #{birthyear,jdbcType=DATE},\n      grade = #{grade,jdbcType=DATE},\n      collegeID = #{collegeid,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/StudentMapperCustom.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.PagingVO;\nimport com.system.po.StudentCustom;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/28.\n */\npublic interface StudentMapperCustom {\n\n    //分页查询学生信息\n    List<StudentCustom> findByPaging(PagingVO pagingVO) throws Exception;\n\n    //查询学生信息，和其选课信息\n    StudentCustom findStudentAndSelectCourseListById(Integer id) throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/mapper/StudentMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.StudentMapperCustom\">\n\n    <!--一对多查询-->\n    <resultMap id=\"StudentAndSelectCourseResultMap\" type=\"StudentCustom\">\n        <!--配置映射的订单信息\n            property 的值应跟 该vo 的变量名相同\n            column 的值，应与对应的数据库 表字段名相同\n        -->\n        <id column=\"userID\" property=\"userid\"/>\n        <result column=\"userName\" property=\"username\" />\n        <result column=\"sex\" property=\"sex\" />\n        <result column=\"birthYear\" property=\"birthyear\" />\n        <result column=\"grade\" property=\"grade\" />\n        <result column=\"collegeID\" property=\"collegeid\" />\n\n        <!--collection 对关联查询到的多条记录映射到集合对象中\n            property： 将关联查询到的多条信息映射到 vo 哪个属性\n            ofType：映射到集合属性中 pojo 的类型\n        -->\n        <collection property=\"selectedCourseList\" ofType=\"SelectedCourseCustom\">\n            <result column=\"courseID\" property=\"courseid\"/>\n            <result column=\"studentID\" property=\"studentid\"/>\n            <result column=\"mark\" property=\"mark\"/>\n            <!--配置映射的关系的课程信息-->\n            <association property=\"courseCustom\" javaType=\"CourseCustom\">\n                <id column=\"courseID\" property=\"courseid\"/>\n                <result column=\"courseName\" property=\"coursename\"/>\n                <result column=\"teacherID\" property=\"teacherid\"/>\n                <result column=\"courseTime\" property=\"coursetime\"/>\n                <result column=\"classRoom\" property=\"classroom\"/>\n                <result column=\"courseWeek\" property=\"courseweek\"/>\n                <result column=\"courseType\" property=\"coursetype\"/>\n                <result column=\"collegeID\" property=\"collegeid\"/>\n                <result column=\"score\" property=\"score\"/>\n            </association>\n        </collection>\n    </resultMap>\n\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"StudentCustom\">\n        select student.*, college.collegeName\n        from student, college\n        WHERE student.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n\n    <select id=\"findStudentAndSelectCourseListById\" parameterType=\"int\" resultMap=\"StudentAndSelectCourseResultMap\">\n        SELECT\n          student.*,\n          selectedcourse.*,\n          course.*\n        FROM\n          student,\n          selectedcourse,\n          course\n        WHERE\n          student.userID = #{id}\n        AND\n          student.userID = selectedcourse.studentID\n        AND\n          selectedcourse.courseID = course.courseID\n    </select>\n\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/TeacherMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Teacher;\nimport com.system.po.TeacherExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface TeacherMapper {\n    int countByExample(TeacherExample example);\n\n    int deleteByExample(TeacherExample example);\n\n    int deleteByPrimaryKey(Integer userid);\n\n    int insert(Teacher record);\n\n    int insertSelective(Teacher record);\n\n    List<Teacher> selectByExample(TeacherExample example);\n\n    Teacher selectByPrimaryKey(Integer userid);\n\n    int updateByExampleSelective(@Param(\"record\") Teacher record, @Param(\"example\") TeacherExample example);\n\n    int updateByExample(@Param(\"record\") Teacher record, @Param(\"example\") TeacherExample example);\n\n    int updateByPrimaryKeySelective(Teacher record);\n\n    int updateByPrimaryKey(Teacher record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/TeacherMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.TeacherMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Teacher\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"sex\" property=\"sex\" jdbcType=\"VARCHAR\" />\n    <result column=\"birthYear\" property=\"birthyear\" jdbcType=\"DATE\" />\n    <result column=\"degree\" property=\"degree\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"grade\" property=\"grade\" jdbcType=\"DATE\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, sex, birthYear, degree, title, grade, collegeID\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.TeacherExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from teacher\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from teacher\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.TeacherExample\" >\n    delete from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Teacher\" >\n    insert into teacher (userID, userName, sex, \n      birthYear, degree, title, \n      grade, collegeID)\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, \n      #{birthyear,jdbcType=DATE}, #{degree,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, \n      #{grade,jdbcType=DATE}, #{collegeid,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Teacher\" >\n    insert into teacher\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"sex != null\" >\n        sex,\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear,\n      </if>\n      <if test=\"degree != null\" >\n        degree,\n      </if>\n      <if test=\"title != null\" >\n        title,\n      </if>\n      <if test=\"grade != null\" >\n        grade,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"degree != null\" >\n        #{degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"grade != null\" >\n        #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.TeacherExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update teacher\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.sex != null\" >\n        sex = #{record.sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.birthyear != null\" >\n        birthYear = #{record.birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"record.degree != null\" >\n        degree = #{record.degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.title != null\" >\n        title = #{record.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.grade != null\" >\n        grade = #{record.grade,jdbcType=DATE},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update teacher\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      sex = #{record.sex,jdbcType=VARCHAR},\n      birthYear = #{record.birthyear,jdbcType=DATE},\n      degree = #{record.degree,jdbcType=VARCHAR},\n      title = #{record.title,jdbcType=VARCHAR},\n      grade = #{record.grade,jdbcType=DATE},\n      collegeID = #{record.collegeid,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Teacher\" >\n    update teacher\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        sex = #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear = #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"degree != null\" >\n        degree = #{degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"grade != null\" >\n        grade = #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Teacher\" >\n    update teacher\n    set userName = #{username,jdbcType=VARCHAR},\n      sex = #{sex,jdbcType=VARCHAR},\n      birthYear = #{birthyear,jdbcType=DATE},\n      degree = #{degree,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      grade = #{grade,jdbcType=DATE},\n      collegeID = #{collegeid,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/TeacherMapperCustom.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.PagingVO;\nimport com.system.po.TeacherCustom;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic interface TeacherMapperCustom {\n\n    //分页查询老师信息\n    List<TeacherCustom> findByPaging(PagingVO pagingVO) throws Exception;\n\n    //获取\n}\n"
  },
  {
    "path": "src/main/java/com/system/mapper/TeacherMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n\n<!--teacherMapper-->\n\n<mapper namespace=\"com.system.mapper.TeacherMapperCustom\">\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"TeacherCustom\">\n        select teacher.*, college.collegeName\n        from teacher, college\n        WHERE teacher.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/UserloginMapper.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Userlogin;\nimport com.system.po.UserloginExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface UserloginMapper {\n    int countByExample(UserloginExample example);\n\n    int deleteByExample(UserloginExample example);\n\n    int deleteByPrimaryKey(Integer userid);\n\n    int insert(Userlogin record);\n\n    int insertSelective(Userlogin record);\n\n    List<Userlogin> selectByExample(UserloginExample example);\n\n    Userlogin selectByPrimaryKey(Integer userid);\n\n    int updateByExampleSelective(@Param(\"record\") Userlogin record, @Param(\"example\") UserloginExample example);\n\n    int updateByExample(@Param(\"record\") Userlogin record, @Param(\"example\") UserloginExample example);\n\n    int updateByPrimaryKeySelective(Userlogin record);\n\n    int updateByPrimaryKey(Userlogin record);\n}"
  },
  {
    "path": "src/main/java/com/system/mapper/UserloginMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.UserloginMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Userlogin\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"role\" property=\"role\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, password, role\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.UserloginExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from userlogin\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from userlogin\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.UserloginExample\" >\n    delete from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Userlogin\" >\n    insert into userlogin (userID, userName, password, \n      role)\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, \n      #{role,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Userlogin\" >\n    insert into userlogin\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"password != null\" >\n        password,\n      </if>\n      <if test=\"role != null\" >\n        role,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"role != null\" >\n        #{role,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.UserloginExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update userlogin\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.password != null\" >\n        password = #{record.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.role != null\" >\n        role = #{record.role,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update userlogin\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      password = #{record.password,jdbcType=VARCHAR},\n      role = #{record.role,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Userlogin\" >\n    update userlogin\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"role != null\" >\n        role = #{role,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Userlogin\" >\n    update userlogin\n    set userName = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      role = #{role,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/mapper/UserloginMapperCustom.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.UserloginCustom;\n\n/**\n *  UserloginMapper扩展类\n */\npublic interface UserloginMapperCustom {\n\n    UserloginCustom findOneByName(String name) throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/mapper/UserloginMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.UserloginMapperCustom\" >\n\n\n    <resultMap id=\"UserloginResultMap\" type=\"UserloginCustom\">\n        <id column=\"userID\" property=\"userid\"></id>\n\n        <result column=\"userName\" property=\"username\" />\n        <result column=\"password\" property=\"password\" />\n        <result column=\"role\" property=\"role\" />\n\n        <!--对象关联查询-->\n        <association property=\"role_ob\" javaType=\"Role\">\n            <id column=\"roleID\" property=\"roleid\"/>\n            <result column=\"roleName\"   property=\"rolename\"/>\n            <result column=\"permissions\" property=\"permissions\"/>\n        </association>\n\n    </resultMap>\n\n    <select id=\"findOne\" parameterType=\"String\" resultMap=\"UserloginResultMap\">\n        SELECT\n          userlogin.*,\n          role.*,\n        FROM\n          userlogin,\n          role\n        WHERE\n          userlogin.role = role.roleID\n    </select>\n\n</mapper>"
  },
  {
    "path": "src/main/java/com/system/po/College.java",
    "content": "package com.system.po;\n\npublic class College {\n    private Integer collegeid;\n\n    private String collegename;\n\n    public Integer getCollegeid() {\n        return collegeid;\n    }\n\n    public void setCollegeid(Integer collegeid) {\n        this.collegeid = collegeid;\n    }\n\n    public String getCollegename() {\n        return collegename;\n    }\n\n    public void setCollegename(String collegename) {\n        this.collegename = collegename == null ? null : collegename.trim();\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/CollegeCustom.java",
    "content": "package com.system.po;\n\n/**\n * College扩展类\n */\npublic class CollegeCustom extends College {\n\n\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/CollegeExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CollegeExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CollegeExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andCollegeidIsNull() {\n            addCriterion(\"collegeID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNotNull() {\n            addCriterion(\"collegeID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidEqualTo(Integer value) {\n            addCriterion(\"collegeID =\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotEqualTo(Integer value) {\n            addCriterion(\"collegeID <>\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThan(Integer value) {\n            addCriterion(\"collegeID >\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID >=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThan(Integer value) {\n            addCriterion(\"collegeID <\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID <=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIn(List<Integer> values) {\n            addCriterion(\"collegeID in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotIn(List<Integer> values) {\n            addCriterion(\"collegeID not in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID not between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameIsNull() {\n            addCriterion(\"collegeName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameIsNotNull() {\n            addCriterion(\"collegeName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameEqualTo(String value) {\n            addCriterion(\"collegeName =\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameNotEqualTo(String value) {\n            addCriterion(\"collegeName <>\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameGreaterThan(String value) {\n            addCriterion(\"collegeName >\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"collegeName >=\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameLessThan(String value) {\n            addCriterion(\"collegeName <\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameLessThanOrEqualTo(String value) {\n            addCriterion(\"collegeName <=\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameLike(String value) {\n            addCriterion(\"collegeName like\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameNotLike(String value) {\n            addCriterion(\"collegeName not like\", value, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameIn(List<String> values) {\n            addCriterion(\"collegeName in\", values, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameNotIn(List<String> values) {\n            addCriterion(\"collegeName not in\", values, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameBetween(String value1, String value2) {\n            addCriterion(\"collegeName between\", value1, value2, \"collegename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegenameNotBetween(String value1, String value2) {\n            addCriterion(\"collegeName not between\", value1, value2, \"collegename\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/Course.java",
    "content": "package com.system.po;\n\npublic class Course {\n    private Integer courseid;\n\n    private String coursename;\n\n    private Integer teacherid;\n\n    private String coursetime;\n\n    private String classroom;\n\n    private Integer courseweek;\n\n    private String coursetype;\n\n    private Integer collegeid;\n\n    private Integer score;\n\n    public Integer getCourseid() {\n        return courseid;\n    }\n\n    public void setCourseid(Integer courseid) {\n        this.courseid = courseid;\n    }\n\n    public String getCoursename() {\n        return coursename;\n    }\n\n    public void setCoursename(String coursename) {\n        this.coursename = coursename == null ? null : coursename.trim();\n    }\n\n    public Integer getTeacherid() {\n        return teacherid;\n    }\n\n    public void setTeacherid(Integer teacherid) {\n        this.teacherid = teacherid;\n    }\n\n    public String getCoursetime() {\n        return coursetime;\n    }\n\n    public void setCoursetime(String coursetime) {\n        this.coursetime = coursetime == null ? null : coursetime.trim();\n    }\n\n    public String getClassroom() {\n        return classroom;\n    }\n\n    public void setClassroom(String classroom) {\n        this.classroom = classroom == null ? null : classroom.trim();\n    }\n\n    public Integer getCourseweek() {\n        return courseweek;\n    }\n\n    public void setCourseweek(Integer courseweek) {\n        this.courseweek = courseweek;\n    }\n\n    public String getCoursetype() {\n        return coursetype;\n    }\n\n    public void setCoursetype(String coursetype) {\n        this.coursetype = coursetype == null ? null : coursetype.trim();\n    }\n\n    public Integer getCollegeid() {\n        return collegeid;\n    }\n\n    public void setCollegeid(Integer collegeid) {\n        this.collegeid = collegeid;\n    }\n\n    public Integer getScore() {\n        return score;\n    }\n\n    public void setScore(Integer score) {\n        this.score = score;\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/CourseCustom.java",
    "content": "package com.system.po;\n\n/**\n * Course扩展类    课程\n */\npublic class CourseCustom extends Course {\n\n    //所属院系名\n    private String collegeName;\n\n    public void setcollegeName(String collegeName) {\n        this.collegeName = collegeName;\n    }\n\n    public String getcollegeName() {\n        return collegeName;\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/CourseExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CourseExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CourseExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andCourseidIsNull() {\n            addCriterion(\"courseID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidIsNotNull() {\n            addCriterion(\"courseID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidEqualTo(Integer value) {\n            addCriterion(\"courseID =\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotEqualTo(Integer value) {\n            addCriterion(\"courseID <>\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidGreaterThan(Integer value) {\n            addCriterion(\"courseID >\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"courseID >=\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidLessThan(Integer value) {\n            addCriterion(\"courseID <\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"courseID <=\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidIn(List<Integer> values) {\n            addCriterion(\"courseID in\", values, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotIn(List<Integer> values) {\n            addCriterion(\"courseID not in\", values, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseID between\", value1, value2, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseID not between\", value1, value2, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameIsNull() {\n            addCriterion(\"courseName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameIsNotNull() {\n            addCriterion(\"courseName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameEqualTo(String value) {\n            addCriterion(\"courseName =\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameNotEqualTo(String value) {\n            addCriterion(\"courseName <>\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameGreaterThan(String value) {\n            addCriterion(\"courseName >\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"courseName >=\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameLessThan(String value) {\n            addCriterion(\"courseName <\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameLessThanOrEqualTo(String value) {\n            addCriterion(\"courseName <=\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameLike(String value) {\n            addCriterion(\"courseName like\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameNotLike(String value) {\n            addCriterion(\"courseName not like\", value, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameIn(List<String> values) {\n            addCriterion(\"courseName in\", values, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameNotIn(List<String> values) {\n            addCriterion(\"courseName not in\", values, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameBetween(String value1, String value2) {\n            addCriterion(\"courseName between\", value1, value2, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursenameNotBetween(String value1, String value2) {\n            addCriterion(\"courseName not between\", value1, value2, \"coursename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridIsNull() {\n            addCriterion(\"teacherID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridIsNotNull() {\n            addCriterion(\"teacherID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridEqualTo(Integer value) {\n            addCriterion(\"teacherID =\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridNotEqualTo(Integer value) {\n            addCriterion(\"teacherID <>\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridGreaterThan(Integer value) {\n            addCriterion(\"teacherID >\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"teacherID >=\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridLessThan(Integer value) {\n            addCriterion(\"teacherID <\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridLessThanOrEqualTo(Integer value) {\n            addCriterion(\"teacherID <=\", value, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridIn(List<Integer> values) {\n            addCriterion(\"teacherID in\", values, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridNotIn(List<Integer> values) {\n            addCriterion(\"teacherID not in\", values, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridBetween(Integer value1, Integer value2) {\n            addCriterion(\"teacherID between\", value1, value2, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTeacheridNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"teacherID not between\", value1, value2, \"teacherid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeIsNull() {\n            addCriterion(\"courseTime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeIsNotNull() {\n            addCriterion(\"courseTime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeEqualTo(String value) {\n            addCriterion(\"courseTime =\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeNotEqualTo(String value) {\n            addCriterion(\"courseTime <>\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeGreaterThan(String value) {\n            addCriterion(\"courseTime >\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"courseTime >=\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeLessThan(String value) {\n            addCriterion(\"courseTime <\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeLessThanOrEqualTo(String value) {\n            addCriterion(\"courseTime <=\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeLike(String value) {\n            addCriterion(\"courseTime like\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeNotLike(String value) {\n            addCriterion(\"courseTime not like\", value, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeIn(List<String> values) {\n            addCriterion(\"courseTime in\", values, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeNotIn(List<String> values) {\n            addCriterion(\"courseTime not in\", values, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeBetween(String value1, String value2) {\n            addCriterion(\"courseTime between\", value1, value2, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetimeNotBetween(String value1, String value2) {\n            addCriterion(\"courseTime not between\", value1, value2, \"coursetime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomIsNull() {\n            addCriterion(\"classRoom is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomIsNotNull() {\n            addCriterion(\"classRoom is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomEqualTo(String value) {\n            addCriterion(\"classRoom =\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomNotEqualTo(String value) {\n            addCriterion(\"classRoom <>\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomGreaterThan(String value) {\n            addCriterion(\"classRoom >\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomGreaterThanOrEqualTo(String value) {\n            addCriterion(\"classRoom >=\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomLessThan(String value) {\n            addCriterion(\"classRoom <\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomLessThanOrEqualTo(String value) {\n            addCriterion(\"classRoom <=\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomLike(String value) {\n            addCriterion(\"classRoom like\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomNotLike(String value) {\n            addCriterion(\"classRoom not like\", value, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomIn(List<String> values) {\n            addCriterion(\"classRoom in\", values, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomNotIn(List<String> values) {\n            addCriterion(\"classRoom not in\", values, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomBetween(String value1, String value2) {\n            addCriterion(\"classRoom between\", value1, value2, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClassroomNotBetween(String value1, String value2) {\n            addCriterion(\"classRoom not between\", value1, value2, \"classroom\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekIsNull() {\n            addCriterion(\"courseWeek is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekIsNotNull() {\n            addCriterion(\"courseWeek is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekEqualTo(Integer value) {\n            addCriterion(\"courseWeek =\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekNotEqualTo(Integer value) {\n            addCriterion(\"courseWeek <>\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekGreaterThan(Integer value) {\n            addCriterion(\"courseWeek >\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"courseWeek >=\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekLessThan(Integer value) {\n            addCriterion(\"courseWeek <\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekLessThanOrEqualTo(Integer value) {\n            addCriterion(\"courseWeek <=\", value, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekIn(List<Integer> values) {\n            addCriterion(\"courseWeek in\", values, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekNotIn(List<Integer> values) {\n            addCriterion(\"courseWeek not in\", values, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseWeek between\", value1, value2, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseweekNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseWeek not between\", value1, value2, \"courseweek\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeIsNull() {\n            addCriterion(\"courseType is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeIsNotNull() {\n            addCriterion(\"courseType is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeEqualTo(String value) {\n            addCriterion(\"courseType =\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeNotEqualTo(String value) {\n            addCriterion(\"courseType <>\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeGreaterThan(String value) {\n            addCriterion(\"courseType >\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"courseType >=\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeLessThan(String value) {\n            addCriterion(\"courseType <\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeLessThanOrEqualTo(String value) {\n            addCriterion(\"courseType <=\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeLike(String value) {\n            addCriterion(\"courseType like\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeNotLike(String value) {\n            addCriterion(\"courseType not like\", value, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeIn(List<String> values) {\n            addCriterion(\"courseType in\", values, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeNotIn(List<String> values) {\n            addCriterion(\"courseType not in\", values, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeBetween(String value1, String value2) {\n            addCriterion(\"courseType between\", value1, value2, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoursetypeNotBetween(String value1, String value2) {\n            addCriterion(\"courseType not between\", value1, value2, \"coursetype\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNull() {\n            addCriterion(\"collegeID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNotNull() {\n            addCriterion(\"collegeID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidEqualTo(Integer value) {\n            addCriterion(\"collegeID =\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotEqualTo(Integer value) {\n            addCriterion(\"collegeID <>\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThan(Integer value) {\n            addCriterion(\"collegeID >\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID >=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThan(Integer value) {\n            addCriterion(\"collegeID <\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID <=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIn(List<Integer> values) {\n            addCriterion(\"collegeID in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotIn(List<Integer> values) {\n            addCriterion(\"collegeID not in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID not between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreIsNull() {\n            addCriterion(\"score is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreIsNotNull() {\n            addCriterion(\"score is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreEqualTo(Integer value) {\n            addCriterion(\"score =\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreNotEqualTo(Integer value) {\n            addCriterion(\"score <>\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreGreaterThan(Integer value) {\n            addCriterion(\"score >\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"score >=\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreLessThan(Integer value) {\n            addCriterion(\"score <\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreLessThanOrEqualTo(Integer value) {\n            addCriterion(\"score <=\", value, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreIn(List<Integer> values) {\n            addCriterion(\"score in\", values, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreNotIn(List<Integer> values) {\n            addCriterion(\"score not in\", values, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreBetween(Integer value1, Integer value2) {\n            addCriterion(\"score between\", value1, value2, \"score\");\n            return (Criteria) this;\n        }\n\n        public Criteria andScoreNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"score not between\", value1, value2, \"score\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/PagingVO.java",
    "content": "package com.system.po;\n\n/**\n *  分页信息 pojo类\n */\npublic class PagingVO {\n\n    //当前页码,默认第一页\n    private int curentPageNo = 1;\n    //总页数\n    private int totalCount;\n    //页面容量\n    private int pageSize=5;\n    //上一页\n    private int upPageNo;\n    //下一页\n    private int nextPageNo;\n    //要前往的页码,默认0\n    private int toPageNo = 0;\n\n    public void setToPageNo(Integer toPageNo) {\n        //新一页\n        this.toPageNo = (toPageNo-1) * pageSize ;\n        //设置跳转后当前的页码\n        setCurentPageNo(toPageNo);\n    }\n\n    public Integer getTopageNo() {\n        return toPageNo;\n    }\n\n    public int getCurentPageNo() {\n        return curentPageNo;\n    }\n\n    //设置当前页码\n    public void setCurentPageNo(int curentPageNo) {\n        if (curentPageNo != 1) {\n            this.upPageNo = curentPageNo - 1;\n        }\n        this.nextPageNo = curentPageNo + 1;\n\n        this.curentPageNo = curentPageNo;\n    }\n\n    public int getTotalCount() {\n        return totalCount;\n    }\n\n    public void setTotalCount(int totalCount) {\n        if (totalCount%pageSize > 0) {\n            this.totalCount = (totalCount/pageSize)+1;\n        } else {\n            this.totalCount = totalCount/pageSize;\n        }\n\n    }\n\n    public int getPageSize() {\n        return pageSize;\n    }\n\n    public void setPageSize(int pageSize) {\n        this.pageSize = pageSize;\n    }\n\n    public int getUpPageNo() {\n        return upPageNo;\n    }\n\n    public void setUpPageNo(int upPageNo) {\n        this.upPageNo = upPageNo;\n    }\n\n    public int getNextPageNo() {\n        return nextPageNo;\n    }\n\n    public void setNextPageNo(int nextPageNo) {\n        this.nextPageNo = nextPageNo;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/Role.java",
    "content": "package com.system.po;\n\npublic class Role {\n    private Integer roleid;\n\n    private String rolename;\n\n    private String permissions;\n\n    public Integer getRoleid() {\n        return roleid;\n    }\n\n    public void setRoleid(Integer roleid) {\n        this.roleid = roleid;\n    }\n\n    public String getRolename() {\n        return rolename;\n    }\n\n    public void setRolename(String rolename) {\n        this.rolename = rolename == null ? null : rolename.trim();\n    }\n\n    public String getPermissions() {\n        return permissions;\n    }\n\n    public void setPermissions(String permissions) {\n        this.permissions = permissions == null ? null : permissions.trim();\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/RoleExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class RoleExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public RoleExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andRoleidIsNull() {\n            addCriterion(\"roleID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidIsNotNull() {\n            addCriterion(\"roleID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidEqualTo(Integer value) {\n            addCriterion(\"roleID =\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidNotEqualTo(Integer value) {\n            addCriterion(\"roleID <>\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidGreaterThan(Integer value) {\n            addCriterion(\"roleID >\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"roleID >=\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidLessThan(Integer value) {\n            addCriterion(\"roleID <\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"roleID <=\", value, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidIn(List<Integer> values) {\n            addCriterion(\"roleID in\", values, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidNotIn(List<Integer> values) {\n            addCriterion(\"roleID not in\", values, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidBetween(Integer value1, Integer value2) {\n            addCriterion(\"roleID between\", value1, value2, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"roleID not between\", value1, value2, \"roleid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameIsNull() {\n            addCriterion(\"roleName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameIsNotNull() {\n            addCriterion(\"roleName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameEqualTo(String value) {\n            addCriterion(\"roleName =\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameNotEqualTo(String value) {\n            addCriterion(\"roleName <>\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameGreaterThan(String value) {\n            addCriterion(\"roleName >\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"roleName >=\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameLessThan(String value) {\n            addCriterion(\"roleName <\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameLessThanOrEqualTo(String value) {\n            addCriterion(\"roleName <=\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameLike(String value) {\n            addCriterion(\"roleName like\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameNotLike(String value) {\n            addCriterion(\"roleName not like\", value, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameIn(List<String> values) {\n            addCriterion(\"roleName in\", values, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameNotIn(List<String> values) {\n            addCriterion(\"roleName not in\", values, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameBetween(String value1, String value2) {\n            addCriterion(\"roleName between\", value1, value2, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRolenameNotBetween(String value1, String value2) {\n            addCriterion(\"roleName not between\", value1, value2, \"rolename\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsIsNull() {\n            addCriterion(\"permissions is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsIsNotNull() {\n            addCriterion(\"permissions is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsEqualTo(String value) {\n            addCriterion(\"permissions =\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsNotEqualTo(String value) {\n            addCriterion(\"permissions <>\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsGreaterThan(String value) {\n            addCriterion(\"permissions >\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"permissions >=\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsLessThan(String value) {\n            addCriterion(\"permissions <\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsLessThanOrEqualTo(String value) {\n            addCriterion(\"permissions <=\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsLike(String value) {\n            addCriterion(\"permissions like\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsNotLike(String value) {\n            addCriterion(\"permissions not like\", value, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsIn(List<String> values) {\n            addCriterion(\"permissions in\", values, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsNotIn(List<String> values) {\n            addCriterion(\"permissions not in\", values, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsBetween(String value1, String value2) {\n            addCriterion(\"permissions between\", value1, value2, \"permissions\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionsNotBetween(String value1, String value2) {\n            addCriterion(\"permissions not between\", value1, value2, \"permissions\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/SelectedCourseCustom.java",
    "content": "package com.system.po;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic class SelectedCourseCustom extends Selectedcourse {\n    //新增Student 对象字段\n    private StudentCustom studentCustom;\n\n    //扩展课程信息对象\n    private CourseCustom courseCustom;\n\n    //判断该学生是否已经完成该课程\n    private Boolean over = false;\n\n\n    public Boolean getOver() {\n        return over;\n    }\n\n    public void setOver(Boolean over) {\n        this.over = over;\n    }\n\n    public StudentCustom getStudentCustom() {\n        return studentCustom;\n    }\n\n    public void setStudentCustom(StudentCustom studentCustom) {\n        this.studentCustom = studentCustom;\n    }\n\n    public CourseCustom getCouseCustom() {\n        return courseCustom;\n    }\n\n    public void setCouseCustom(CourseCustom couseCustom) {\n        this.courseCustom = couseCustom;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/Selectedcourse.java",
    "content": "package com.system.po;\n\npublic class Selectedcourse {\n    private Integer courseid;\n\n    private Integer studentid;\n\n    private Integer mark;\n\n    public Integer getCourseid() {\n        return courseid;\n    }\n\n    public void setCourseid(Integer courseid) {\n        this.courseid = courseid;\n    }\n\n    public Integer getStudentid() {\n        return studentid;\n    }\n\n    public void setStudentid(Integer studentid) {\n        this.studentid = studentid;\n    }\n\n    public Integer getMark() {\n        return mark;\n    }\n\n    public void setMark(Integer mark) {\n        this.mark = mark;\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/SelectedcourseExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SelectedcourseExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SelectedcourseExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andCourseidIsNull() {\n            addCriterion(\"courseID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidIsNotNull() {\n            addCriterion(\"courseID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidEqualTo(Integer value) {\n            addCriterion(\"courseID =\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotEqualTo(Integer value) {\n            addCriterion(\"courseID <>\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidGreaterThan(Integer value) {\n            addCriterion(\"courseID >\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"courseID >=\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidLessThan(Integer value) {\n            addCriterion(\"courseID <\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"courseID <=\", value, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidIn(List<Integer> values) {\n            addCriterion(\"courseID in\", values, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotIn(List<Integer> values) {\n            addCriterion(\"courseID not in\", values, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseID between\", value1, value2, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCourseidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"courseID not between\", value1, value2, \"courseid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidIsNull() {\n            addCriterion(\"studentID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidIsNotNull() {\n            addCriterion(\"studentID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidEqualTo(Integer value) {\n            addCriterion(\"studentID =\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidNotEqualTo(Integer value) {\n            addCriterion(\"studentID <>\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidGreaterThan(Integer value) {\n            addCriterion(\"studentID >\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"studentID >=\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidLessThan(Integer value) {\n            addCriterion(\"studentID <\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"studentID <=\", value, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidIn(List<Integer> values) {\n            addCriterion(\"studentID in\", values, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidNotIn(List<Integer> values) {\n            addCriterion(\"studentID not in\", values, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidBetween(Integer value1, Integer value2) {\n            addCriterion(\"studentID between\", value1, value2, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStudentidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"studentID not between\", value1, value2, \"studentid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkIsNull() {\n            addCriterion(\"mark is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkIsNotNull() {\n            addCriterion(\"mark is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkEqualTo(Integer value) {\n            addCriterion(\"mark =\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkNotEqualTo(Integer value) {\n            addCriterion(\"mark <>\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkGreaterThan(Integer value) {\n            addCriterion(\"mark >\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"mark >=\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkLessThan(Integer value) {\n            addCriterion(\"mark <\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkLessThanOrEqualTo(Integer value) {\n            addCriterion(\"mark <=\", value, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkIn(List<Integer> values) {\n            addCriterion(\"mark in\", values, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkNotIn(List<Integer> values) {\n            addCriterion(\"mark not in\", values, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkBetween(Integer value1, Integer value2) {\n            addCriterion(\"mark between\", value1, value2, \"mark\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMarkNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"mark not between\", value1, value2, \"mark\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/Student.java",
    "content": "package com.system.po;\n\nimport java.util.Date;\n\npublic class Student {\n    private Integer userid;\n\n    private String username;\n\n    private String sex;\n\n    private Date birthyear;\n\n    private Date grade;\n\n    private Integer collegeid;\n\n    public Integer getUserid() {\n        return userid;\n    }\n\n    public void setUserid(Integer userid) {\n        this.userid = userid;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username == null ? null : username.trim();\n    }\n\n    public String getSex() {\n        return sex;\n    }\n\n    public void setSex(String sex) {\n        this.sex = sex == null ? null : sex.trim();\n    }\n\n    public Date getBirthyear() {\n        return birthyear;\n    }\n\n    public void setBirthyear(Date birthyear) {\n        this.birthyear = birthyear;\n    }\n\n    public Date getGrade() {\n        return grade;\n    }\n\n    public void setGrade(Date grade) {\n        this.grade = grade;\n    }\n\n    public Integer getCollegeid() {\n        return collegeid;\n    }\n\n    public void setCollegeid(Integer collegeid) {\n        this.collegeid = collegeid;\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/StudentCustom.java",
    "content": "package com.system.po;\n\nimport java.util.List;\n\n/**\n * Student的扩展类\n */\npublic class StudentCustom extends Student {\n    //所属院系名\n    private String collegeName;\n\n    //选课列表\n    private List<SelectedCourseCustom> selectedCourseList;\n\n\n    public void setcollegeName(String collegeName) {\n        this.collegeName = collegeName;\n    }\n\n    public String getcollegeName() {\n        return collegeName;\n    }\n\n    public void setSelectedCourseList(List<SelectedCourseCustom> selectedCourseList) {\n        this.selectedCourseList = selectedCourseList;\n    }\n\n    public List<SelectedCourseCustom> getSelectedCourseList() {\n        return selectedCourseList;\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/StudentExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.Iterator;\nimport java.util.List;\n\npublic class StudentExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public StudentExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value.getTime()), property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {\n            if (values == null || values.size() == 0) {\n                throw new RuntimeException(\"Value list for \" + property + \" cannot be null or empty\");\n            }\n            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();\n            Iterator<Date> iter = values.iterator();\n            while (iter.hasNext()) {\n                dateList.add(new java.sql.Date(iter.next().getTime()));\n            }\n            addCriterion(condition, dateList, property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);\n        }\n\n        public Criteria andUseridIsNull() {\n            addCriterion(\"userID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIsNotNull() {\n            addCriterion(\"userID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridEqualTo(Integer value) {\n            addCriterion(\"userID =\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotEqualTo(Integer value) {\n            addCriterion(\"userID <>\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThan(Integer value) {\n            addCriterion(\"userID >\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"userID >=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThan(Integer value) {\n            addCriterion(\"userID <\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThanOrEqualTo(Integer value) {\n            addCriterion(\"userID <=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIn(List<Integer> values) {\n            addCriterion(\"userID in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotIn(List<Integer> values) {\n            addCriterion(\"userID not in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID not between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"userName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"userName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"userName =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"userName <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"userName >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"userName >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"userName <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"userName <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"userName like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"userName not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"userName in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"userName not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"userName between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"userName not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIsNull() {\n            addCriterion(\"sex is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIsNotNull() {\n            addCriterion(\"sex is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexEqualTo(String value) {\n            addCriterion(\"sex =\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotEqualTo(String value) {\n            addCriterion(\"sex <>\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexGreaterThan(String value) {\n            addCriterion(\"sex >\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sex >=\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLessThan(String value) {\n            addCriterion(\"sex <\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLessThanOrEqualTo(String value) {\n            addCriterion(\"sex <=\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLike(String value) {\n            addCriterion(\"sex like\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotLike(String value) {\n            addCriterion(\"sex not like\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIn(List<String> values) {\n            addCriterion(\"sex in\", values, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotIn(List<String> values) {\n            addCriterion(\"sex not in\", values, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexBetween(String value1, String value2) {\n            addCriterion(\"sex between\", value1, value2, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotBetween(String value1, String value2) {\n            addCriterion(\"sex not between\", value1, value2, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIsNull() {\n            addCriterion(\"birthYear is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIsNotNull() {\n            addCriterion(\"birthYear is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear =\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear <>\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"birthYear >\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear >=\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearLessThan(Date value) {\n            addCriterionForJDBCDate(\"birthYear <\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear <=\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthYear in\", values, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthYear not in\", values, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthYear between\", value1, value2, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthYear not between\", value1, value2, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIsNull() {\n            addCriterion(\"grade is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIsNotNull() {\n            addCriterion(\"grade is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade =\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade <>\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"grade >\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade >=\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeLessThan(Date value) {\n            addCriterionForJDBCDate(\"grade <\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade <=\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIn(List<Date> values) {\n            addCriterionForJDBCDate(\"grade in\", values, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"grade not in\", values, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"grade between\", value1, value2, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"grade not between\", value1, value2, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNull() {\n            addCriterion(\"collegeID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNotNull() {\n            addCriterion(\"collegeID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidEqualTo(Integer value) {\n            addCriterion(\"collegeID =\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotEqualTo(Integer value) {\n            addCriterion(\"collegeID <>\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThan(Integer value) {\n            addCriterion(\"collegeID >\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID >=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThan(Integer value) {\n            addCriterion(\"collegeID <\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID <=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIn(List<Integer> values) {\n            addCriterion(\"collegeID in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotIn(List<Integer> values) {\n            addCriterion(\"collegeID not in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID not between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/Teacher.java",
    "content": "package com.system.po;\n\nimport java.util.Date;\n\npublic class Teacher {\n    private Integer userid;\n\n    private String username;\n\n    private String sex;\n\n    private Date birthyear;\n\n    private String degree;\n\n    private String title;\n\n    private Date grade;\n\n    private Integer collegeid;\n\n    public Integer getUserid() {\n        return userid;\n    }\n\n    public void setUserid(Integer userid) {\n        this.userid = userid;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username == null ? null : username.trim();\n    }\n\n    public String getSex() {\n        return sex;\n    }\n\n    public void setSex(String sex) {\n        this.sex = sex == null ? null : sex.trim();\n    }\n\n    public Date getBirthyear() {\n        return birthyear;\n    }\n\n    public void setBirthyear(Date birthyear) {\n        this.birthyear = birthyear;\n    }\n\n    public String getDegree() {\n        return degree;\n    }\n\n    public void setDegree(String degree) {\n        this.degree = degree == null ? null : degree.trim();\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title == null ? null : title.trim();\n    }\n\n    public Date getGrade() {\n        return grade;\n    }\n\n    public void setGrade(Date grade) {\n        this.grade = grade;\n    }\n\n    public Integer getCollegeid() {\n        return collegeid;\n    }\n\n    public void setCollegeid(Integer collegeid) {\n        this.collegeid = collegeid;\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/TeacherCustom.java",
    "content": "package com.system.po;\n\n/**\n * teacher扩展类\n */\npublic class TeacherCustom extends Teacher {\n    //所属院系名\n    private String collegeName;\n\n    public void setcollegeName(String collegeName) {\n        this.collegeName = collegeName;\n    }\n\n    public String getcollegeName() {\n        return collegeName;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/TeacherExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.Iterator;\nimport java.util.List;\n\npublic class TeacherExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public TeacherExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value.getTime()), property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {\n            if (values == null || values.size() == 0) {\n                throw new RuntimeException(\"Value list for \" + property + \" cannot be null or empty\");\n            }\n            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();\n            Iterator<Date> iter = values.iterator();\n            while (iter.hasNext()) {\n                dateList.add(new java.sql.Date(iter.next().getTime()));\n            }\n            addCriterion(condition, dateList, property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);\n        }\n\n        public Criteria andUseridIsNull() {\n            addCriterion(\"userID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIsNotNull() {\n            addCriterion(\"userID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridEqualTo(Integer value) {\n            addCriterion(\"userID =\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotEqualTo(Integer value) {\n            addCriterion(\"userID <>\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThan(Integer value) {\n            addCriterion(\"userID >\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"userID >=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThan(Integer value) {\n            addCriterion(\"userID <\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThanOrEqualTo(Integer value) {\n            addCriterion(\"userID <=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIn(List<Integer> values) {\n            addCriterion(\"userID in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotIn(List<Integer> values) {\n            addCriterion(\"userID not in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID not between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"userName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"userName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"userName =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"userName <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"userName >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"userName >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"userName <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"userName <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"userName like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"userName not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"userName in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"userName not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"userName between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"userName not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIsNull() {\n            addCriterion(\"sex is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIsNotNull() {\n            addCriterion(\"sex is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexEqualTo(String value) {\n            addCriterion(\"sex =\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotEqualTo(String value) {\n            addCriterion(\"sex <>\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexGreaterThan(String value) {\n            addCriterion(\"sex >\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sex >=\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLessThan(String value) {\n            addCriterion(\"sex <\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLessThanOrEqualTo(String value) {\n            addCriterion(\"sex <=\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexLike(String value) {\n            addCriterion(\"sex like\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotLike(String value) {\n            addCriterion(\"sex not like\", value, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexIn(List<String> values) {\n            addCriterion(\"sex in\", values, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotIn(List<String> values) {\n            addCriterion(\"sex not in\", values, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexBetween(String value1, String value2) {\n            addCriterion(\"sex between\", value1, value2, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSexNotBetween(String value1, String value2) {\n            addCriterion(\"sex not between\", value1, value2, \"sex\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIsNull() {\n            addCriterion(\"birthYear is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIsNotNull() {\n            addCriterion(\"birthYear is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear =\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear <>\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"birthYear >\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear >=\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearLessThan(Date value) {\n            addCriterionForJDBCDate(\"birthYear <\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthYear <=\", value, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthYear in\", values, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthYear not in\", values, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthYear between\", value1, value2, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthyearNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthYear not between\", value1, value2, \"birthyear\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeIsNull() {\n            addCriterion(\"degree is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeIsNotNull() {\n            addCriterion(\"degree is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeEqualTo(String value) {\n            addCriterion(\"degree =\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeNotEqualTo(String value) {\n            addCriterion(\"degree <>\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeGreaterThan(String value) {\n            addCriterion(\"degree >\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"degree >=\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeLessThan(String value) {\n            addCriterion(\"degree <\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeLessThanOrEqualTo(String value) {\n            addCriterion(\"degree <=\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeLike(String value) {\n            addCriterion(\"degree like\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeNotLike(String value) {\n            addCriterion(\"degree not like\", value, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeIn(List<String> values) {\n            addCriterion(\"degree in\", values, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeNotIn(List<String> values) {\n            addCriterion(\"degree not in\", values, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeBetween(String value1, String value2) {\n            addCriterion(\"degree between\", value1, value2, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDegreeNotBetween(String value1, String value2) {\n            addCriterion(\"degree not between\", value1, value2, \"degree\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIsNull() {\n            addCriterion(\"grade is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIsNotNull() {\n            addCriterion(\"grade is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade =\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade <>\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"grade >\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade >=\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeLessThan(Date value) {\n            addCriterionForJDBCDate(\"grade <\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"grade <=\", value, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeIn(List<Date> values) {\n            addCriterionForJDBCDate(\"grade in\", values, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"grade not in\", values, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"grade between\", value1, value2, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGradeNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"grade not between\", value1, value2, \"grade\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNull() {\n            addCriterion(\"collegeID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIsNotNull() {\n            addCriterion(\"collegeID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidEqualTo(Integer value) {\n            addCriterion(\"collegeID =\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotEqualTo(Integer value) {\n            addCriterion(\"collegeID <>\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThan(Integer value) {\n            addCriterion(\"collegeID >\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID >=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThan(Integer value) {\n            addCriterion(\"collegeID <\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collegeID <=\", value, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidIn(List<Integer> values) {\n            addCriterion(\"collegeID in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotIn(List<Integer> values) {\n            addCriterion(\"collegeID not in\", values, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollegeidNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collegeID not between\", value1, value2, \"collegeid\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/Userlogin.java",
    "content": "package com.system.po;\n\npublic class Userlogin {\n    private Integer userid;\n\n    private String username;\n\n    private String password;\n\n    private Integer role;\n\n    public Integer getUserid() {\n        return userid;\n    }\n\n    public void setUserid(Integer userid) {\n        this.userid = userid;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username == null ? null : username.trim();\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public void setPassword(String password) {\n        this.password = password == null ? null : password.trim();\n    }\n\n    public Integer getRole() {\n        return role;\n    }\n\n    public void setRole(Integer role) {\n        this.role = role;\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/po/UserloginCustom.java",
    "content": "package com.system.po;\n\n/**\n * Userlogin扩展类\n */\npublic class UserloginCustom extends Userlogin {\n\n    private Role role_ob;\n\n    public void setRole(Role role) {\n        this.role_ob = role_ob;\n    }\n\n    public Role getRole_ob() {\n        return role_ob;\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/po/UserloginExample.java",
    "content": "package com.system.po;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UserloginExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UserloginExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andUseridIsNull() {\n            addCriterion(\"userID is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIsNotNull() {\n            addCriterion(\"userID is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridEqualTo(Integer value) {\n            addCriterion(\"userID =\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotEqualTo(Integer value) {\n            addCriterion(\"userID <>\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThan(Integer value) {\n            addCriterion(\"userID >\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"userID >=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThan(Integer value) {\n            addCriterion(\"userID <\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThanOrEqualTo(Integer value) {\n            addCriterion(\"userID <=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIn(List<Integer> values) {\n            addCriterion(\"userID in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotIn(List<Integer> values) {\n            addCriterion(\"userID not in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"userID not between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"userName is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"userName is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"userName =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"userName <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"userName >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"userName >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"userName <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"userName <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"userName like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"userName not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"userName in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"userName not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"userName between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"userName not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNull() {\n            addCriterion(\"password is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNotNull() {\n            addCriterion(\"password is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordEqualTo(String value) {\n            addCriterion(\"password =\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotEqualTo(String value) {\n            addCriterion(\"password <>\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThan(String value) {\n            addCriterion(\"password >\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThanOrEqualTo(String value) {\n            addCriterion(\"password >=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThan(String value) {\n            addCriterion(\"password <\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThanOrEqualTo(String value) {\n            addCriterion(\"password <=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLike(String value) {\n            addCriterion(\"password like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotLike(String value) {\n            addCriterion(\"password not like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIn(List<String> values) {\n            addCriterion(\"password in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotIn(List<String> values) {\n            addCriterion(\"password not in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordBetween(String value1, String value2) {\n            addCriterion(\"password between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotBetween(String value1, String value2) {\n            addCriterion(\"password not between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIsNull() {\n            addCriterion(\"role is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIsNotNull() {\n            addCriterion(\"role is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleEqualTo(Integer value) {\n            addCriterion(\"role =\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleNotEqualTo(Integer value) {\n            addCriterion(\"role <>\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleGreaterThan(Integer value) {\n            addCriterion(\"role >\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"role >=\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleLessThan(Integer value) {\n            addCriterion(\"role <\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleLessThanOrEqualTo(Integer value) {\n            addCriterion(\"role <=\", value, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIn(List<Integer> values) {\n            addCriterion(\"role in\", values, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleNotIn(List<Integer> values) {\n            addCriterion(\"role not in\", values, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleBetween(Integer value1, Integer value2) {\n            addCriterion(\"role between\", value1, value2, \"role\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"role not between\", value1, value2, \"role\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "src/main/java/com/system/realm/LoginRealm.java",
    "content": "package com.system.realm;\n\nimport com.system.mapper.UserloginMapper;\nimport com.system.po.Role;\nimport com.system.po.Userlogin;\nimport com.system.service.RoleService;\nimport com.system.service.UserloginService;\nimport org.apache.shiro.authc.*;\nimport org.apache.shiro.authz.AuthorizationInfo;\nimport org.apache.shiro.authz.SimpleAuthorizationInfo;\nimport org.apache.shiro.realm.AuthorizingRealm;\nimport org.apache.shiro.subject.PrincipalCollection;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Component;\n\nimport javax.annotation.Resource;\nimport java.util.HashSet;\nimport java.util.Set;\n\n/**\n * Created by Jacey on 2017/6/30.\n */\n\n@Component\npublic class LoginRealm extends AuthorizingRealm{\n\n    @Resource(name = \"userloginServiceImpl\")\n    private UserloginService userloginService;\n\n    @Resource(name = \"roleServiceImpl\")\n    private RoleService roleService;\n\n    /**\n     * 获取身份信息，我们可以在这个方法中，从数据库获取该用户的权限和角色信息\n     *     当调用权限验证时，就会调用此方法\n     */\n    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {\n\n        String username = (String) getAvailablePrincipal(principalCollection);\n\n        Role role = null;\n\n        try {\n            Userlogin userlogin = userloginService.findByName(username);\n            //获取角色对象\n            role = roleService.findByid(userlogin.getRole());\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n        //通过用户名从数据库获取权限/角色信息\n        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();\n        Set<String> r = new HashSet<String>();\n        if (role != null) {\n            r.add(role.getRolename());\n            info.setRoles(r);\n        }\n\n        return info;\n    }\n\n    /**\n     * 在这个方法中，进行身份验证\n     *         login时调用\n     */\n    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {\n        //用户名\n        String username = (String) token.getPrincipal();\n        //密码\n        String password = new String((char[])token.getCredentials());\n\n        Userlogin userlogin = null;\n        try {\n            userlogin = userloginService.findByName(username);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n\n        if (userlogin == null) {\n            //没有该用户名\n            throw new UnknownAccountException();\n        } else if (!password.equals(userlogin.getPassword())) {\n            //密码错误\n            throw new IncorrectCredentialsException();\n        }\n\n        //身份验证通过,返回一个身份信息\n        AuthenticationInfo aInfo = new SimpleAuthenticationInfo(username,password,getName());\n\n        return aInfo;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/CollegeService.java",
    "content": "package com.system.service;\n\nimport com.system.po.College;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/30.\n */\npublic interface CollegeService {\n\n    List<College> finAll() throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/CourseService.java",
    "content": "package com.system.service;\n\nimport com.system.po.CourseCustom;\n\nimport java.util.List;\n\n/**\n * CourseService课程信息.\n */\npublic interface CourseService {\n    //根据id更新课程信息\n    void upadteById(Integer id, CourseCustom courseCustom) throws Exception;\n\n    //根据id删除课程信息\n    Boolean removeById(Integer id) throws Exception;\n\n    //获取分页查询课程信息\n    List<CourseCustom> findByPaging(Integer toPageNo) throws Exception;\n\n    //插入课程信息\n    Boolean save(CourseCustom couseCustom) throws Exception;\n\n    //获取课程总数\n    int getCountCouse() throws Exception;\n\n    //根据id查询\n    CourseCustom findById(Integer id) throws Exception;\n\n    //根据名字查询\n    List<CourseCustom> findByName(String name) throws Exception;\n\n    //根据教师id查找课程\n    List<CourseCustom> findByTeacherID(Integer id) throws Exception;\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/RoleService.java",
    "content": "package com.system.service;\n\nimport com.system.po.Role;\n\n/**\n *  Role 权限表Service层\n */\npublic interface RoleService {\n\n    Role findByid(Integer id) throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/SelectedCourseService.java",
    "content": "package com.system.service;\n\nimport com.system.po.SelectedCourseCustom;\nimport com.system.po.StudentCustom;\n\nimport java.util.List;\n\n/**\n * 选课表servic层\n */\npublic interface SelectedCourseService {\n\n    //根据课程ID查询课程\n    List<SelectedCourseCustom> findByCourseID(Integer id) throws Exception;\n\n    //根据课程id分页查询课程\n    List<SelectedCourseCustom> findByCourseIDPaging(Integer page, Integer id) throws Exception;\n\n    //获取该课程学生数\n    Integer countByCourseID(Integer id) throws Exception;\n\n    //查询指定学生成绩\n    SelectedCourseCustom findOne(SelectedCourseCustom selectedCourseCustom) throws Exception;\n\n    //打分\n    void updataOne(SelectedCourseCustom selectedCourseCustom) throws Exception;\n\n    //选课\n    void save(SelectedCourseCustom selectedCourseCustom) throws Exception;\n\n    //根据学生id查找课程\n    List<SelectedCourseCustom> findByStudentID(Integer id) throws Exception;\n\n    //退课\n    void remove(SelectedCourseCustom selectedCourseCustom) throws Exception;\n\n\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/StudentService.java",
    "content": "package com.system.service;\n\nimport com.system.po.StudentCustom;\n\nimport java.util.List;\n\n/**\n * Student学生Service层\n */\npublic interface StudentService {\n\n    //根据id个更新学生信息\n    void updataById(Integer id, StudentCustom studentCustom) throws Exception;\n\n    //根据id删除学生信息\n    void removeById(Integer id) throws Exception;\n\n    //获取分页查询学生信息\n    List<StudentCustom> findByPaging(Integer toPageNo) throws Exception;\n\n    //保存学生信息\n    Boolean save(StudentCustom studentCustoms) throws Exception;\n\n    //获取学生总数\n    int getCountStudent() throws Exception;\n\n    //根据id获取学生信息\n    StudentCustom findById(Integer id) throws Exception;\n\n    //根据名字模糊查询\n    List<StudentCustom> findByName(String name) throws Exception;\n\n    // 一对多查询，查询该学生的选课信息\n    StudentCustom findStudentAndSelectCourseListByName(String name) throws Exception;\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/TeacherService.java",
    "content": "package com.system.service;\n\nimport com.system.mapper.TeacherMapper;\nimport com.system.po.TeacherCustom;\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport java.util.List;\n\n/**\n * Teacher老师Service层\n */\npublic interface TeacherService {\n\n    //根据id更新老师信息\n    void updateById(Integer id, TeacherCustom teacherCustom) throws Exception;\n\n    //根据id删除老师信息\n    void removeById(Integer id) throws Exception;\n\n    //获取分页查询老师信息\n    List<TeacherCustom> findByPaging(Integer toPageNo) throws Exception;\n\n    //保存老师信息\n    Boolean save(TeacherCustom teacherCustom) throws Exception;\n\n    //获取老师总数\n    int getCountTeacher() throws Exception;\n\n    //根据id查询\n    TeacherCustom findById(Integer id) throws Exception;\n\n    //根据名字查询\n    List<TeacherCustom> findByName(String name) throws Exception;\n\n    //获取全部教师\n    List<TeacherCustom> findAll() throws Exception;\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/UserloginService.java",
    "content": "package com.system.service;\n\nimport com.system.po.Userlogin;\n\n/**\n *\n *\n */\npublic interface UserloginService {\n\n    //根据名字查找用户\n    Userlogin findByName(String name) throws Exception;\n\n    //保存用户登录信息\n    void save(Userlogin userlogin) throws Exception;\n\n    //根据姓名删除\n    void removeByName(String name) throws Exception;\n\n    //根据用户名更新\n    void updateByName(String name, Userlogin userlogin);\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/CollegeServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.CollegeMapper;\nimport com.system.po.College;\nimport com.system.po.CollegeExample;\nimport com.system.service.CollegeService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/30.\n */\n@Service\npublic class CollegeServiceImpl implements CollegeService {\n\n    @Autowired\n    private CollegeMapper collegeMapper;\n\n    public List<College> finAll() throws Exception {\n        CollegeExample collegeExample = new CollegeExample();\n        CollegeExample.Criteria criteria = collegeExample.createCriteria();\n\n        criteria.andCollegeidIsNotNull();\n\n\n        return collegeMapper.selectByExample(collegeExample);\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/CourseServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.CollegeMapper;\nimport com.system.mapper.CourseMapper;\nimport com.system.mapper.CourseMapperCustom;\nimport com.system.mapper.SelectedcourseMapper;\nimport com.system.po.*;\nimport com.system.service.CourseService;\nimport org.apache.commons.beanutils.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\n@Service\npublic class CourseServiceImpl implements CourseService {\n\n    @Autowired\n    private CourseMapper courseMapper;\n\n    @Autowired\n    private CourseMapperCustom courseMapperCustom;\n\n    @Autowired\n    private CollegeMapper collegeMapper;\n\n    @Autowired\n    private SelectedcourseMapper selectedcourseMapper;\n\n    public void upadteById(Integer id, CourseCustom courseCustom) throws Exception {\n        courseMapper.updateByPrimaryKey(courseCustom);\n    }\n\n    public Boolean removeById(Integer id) throws Exception {\n        //自定义查询条件\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n        criteria.andCourseidEqualTo(id);\n        List<Selectedcourse> list = selectedcourseMapper.selectByExample(example);\n\n        if (list.size() == 0) {\n            courseMapper.deleteByPrimaryKey(id);\n            return true;\n        }\n\n        return false;\n    }\n\n    public List<CourseCustom> findByPaging(Integer toPageNo) throws Exception {\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(toPageNo);\n\n        List<CourseCustom> list = courseMapperCustom.findByPaging(pagingVO);\n        return list;\n    }\n\n    public Boolean save(CourseCustom couseCustom) throws Exception {\n        Course course = courseMapper.selectByPrimaryKey(couseCustom.getCourseid());\n        if (course == null) {\n            courseMapper.insert(couseCustom);\n            return true;\n        }\n        return false;\n    }\n\n    public int getCountCouse() throws Exception {\n        //自定义查询对象\n        CourseExample courseExample = new CourseExample();\n        //通过criteria构造查询条件\n        CourseExample.Criteria criteria = courseExample.createCriteria();\n        criteria.andCoursenameIsNotNull();\n\n        return courseMapper.countByExample(courseExample);\n    }\n\n    public CourseCustom findById(Integer id) throws Exception {\n        Course course = courseMapper.selectByPrimaryKey(id);\n        CourseCustom courseCustom = null;\n        if (course != null) {\n            courseCustom = new CourseCustom();\n            BeanUtils.copyProperties(courseCustom, course);\n        }\n\n        return courseCustom;\n    }\n\n    public List<CourseCustom> findByName(String name) throws Exception {\n        CourseExample courseExample = new CourseExample();\n        //自定义查询条件\n        CourseExample.Criteria criteria = courseExample.createCriteria();\n\n        criteria.andCoursenameLike(\"%\" + name + \"%\");\n\n        List<Course> list = courseMapper.selectByExample(courseExample);\n\n        List<CourseCustom> courseCustomList = null;\n\n        if (list != null) {\n            courseCustomList = new ArrayList<CourseCustom>();\n            for (Course c : list) {\n                CourseCustom courseCustom = new CourseCustom();\n                //类拷贝\n                org.springframework.beans.BeanUtils.copyProperties(c, courseCustom);\n                //获取课程名\n                College college = collegeMapper.selectByPrimaryKey(c.getCollegeid());\n                courseCustom.setcollegeName(college.getCollegename());\n\n                courseCustomList.add(courseCustom);\n            }\n        }\n\n        return courseCustomList;\n    }\n\n    public List<CourseCustom> findByTeacherID(Integer id) throws Exception {\n        CourseExample courseExample = new CourseExample();\n        //自定义查询条件\n        CourseExample.Criteria criteria = courseExample.createCriteria();\n        //根据教师id查课程\n        criteria.andTeacheridEqualTo(id);\n\n        List<Course> list = courseMapper.selectByExample(courseExample);\n        List<CourseCustom> courseCustomList = null;\n\n        if (list.size() > 0) {\n            courseCustomList = new ArrayList<CourseCustom>();\n            for (Course c : list) {\n                CourseCustom courseCustom = new CourseCustom();\n                //类拷贝\n                BeanUtils.copyProperties(courseCustom, c);\n                //获取课程名\n                College college = collegeMapper.selectByPrimaryKey(c.getCollegeid());\n                courseCustom.setcollegeName(college.getCollegename());\n\n                courseCustomList.add(courseCustom);\n            }\n        }\n\n        return courseCustomList;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/RoleServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.RoleMapper;\nimport com.system.po.Role;\nimport com.system.service.RoleService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\n@Service\npublic class RoleServiceImpl implements RoleService {\n\n    @Autowired\n    private RoleMapper roleMapper;\n\n    public Role findByid(Integer id) throws Exception {\n        return roleMapper.selectByPrimaryKey(id);\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/SelectedCourseServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.SelectedcourseMapper;\nimport com.system.mapper.StudentMapper;\nimport com.system.po.*;\nimport com.system.service.CourseService;\nimport com.system.service.SelectedCourseService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport javax.annotation.Resource;\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\n@Service\npublic class SelectedCourseServiceImpl implements SelectedCourseService {\n\n    @Autowired\n    private SelectedcourseMapper selectedcourseMapper;\n\n    @Autowired\n    private StudentMapper studentMapper;\n\n//    @Resource(name = \"courseServiceImpl\")\n//    private CourseService courseService;\n\n\n    public List<SelectedCourseCustom> findByCourseID(Integer id) throws Exception {\n\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n        criteria.andCourseidEqualTo(id);\n\n        List<Selectedcourse> list = selectedcourseMapper.selectByExample(example);\n        List<SelectedCourseCustom> secList = new ArrayList<SelectedCourseCustom>();\n        for (Selectedcourse s: list) {\n            SelectedCourseCustom sec = new SelectedCourseCustom();\n            BeanUtils.copyProperties(s, sec);\n            //判断是否完成类该课程\n            if (sec.getMark() != null) {\n                sec.setOver(true);\n            }\n            Student student = studentMapper.selectByPrimaryKey(sec.getStudentid());\n            StudentCustom studentCustom = new StudentCustom();\n            BeanUtils.copyProperties(student, studentCustom);\n\n            sec.setStudentCustom(studentCustom);\n\n            secList.add(sec);\n        }\n\n        return secList;\n    }\n\n    public List<SelectedCourseCustom> findByCourseIDPaging(Integer page, Integer id) throws Exception {\n        return null;\n    }\n\n    //获取该课程学生数\n    public Integer countByCourseID(Integer id) throws Exception {\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n        criteria.andCourseidEqualTo(id);\n\n        return selectedcourseMapper.countByExample(example);\n    }\n\n    //查询指定学生成绩\n    public SelectedCourseCustom findOne(SelectedCourseCustom selectedCourseCustom) throws Exception {\n\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n\n        criteria.andCourseidEqualTo(selectedCourseCustom.getCourseid());\n        criteria.andStudentidEqualTo(selectedCourseCustom.getStudentid());\n\n        List<Selectedcourse> list = selectedcourseMapper.selectByExample(example);\n\n\n        if (list.size() > 0) {\n            SelectedCourseCustom sc = new SelectedCourseCustom();\n            BeanUtils.copyProperties(list.get(0), sc);\n\n            Student student = studentMapper.selectByPrimaryKey(selectedCourseCustom.getStudentid());\n            StudentCustom studentCustom = new StudentCustom();\n            BeanUtils.copyProperties(student, studentCustom);\n\n            sc.setStudentCustom(studentCustom);\n\n            return sc;\n        }\n\n        return null;\n    }\n\n    public void updataOne(SelectedCourseCustom selectedCourseCustom) throws Exception {\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n\n        criteria.andCourseidEqualTo(selectedCourseCustom.getCourseid());\n        criteria.andStudentidEqualTo(selectedCourseCustom.getStudentid());\n\n        selectedcourseMapper.updateByExample(selectedCourseCustom, example);\n\n    }\n\n    public void save(SelectedCourseCustom selectedCourseCustom) throws Exception {\n        selectedcourseMapper.insert(selectedCourseCustom);\n    }\n\n    public List<SelectedCourseCustom> findByStudentID(Integer id) throws Exception {\n        return null;\n    }\n\n    public void remove(SelectedCourseCustom selectedCourseCustom) throws Exception {\n        SelectedcourseExample example = new SelectedcourseExample();\n        SelectedcourseExample.Criteria criteria = example.createCriteria();\n\n        criteria.andCourseidEqualTo(selectedCourseCustom.getCourseid());\n        criteria.andStudentidEqualTo(selectedCourseCustom.getStudentid());\n\n        selectedcourseMapper.deleteByExample(example);\n    }\n\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/StudentServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.CollegeMapper;\nimport com.system.mapper.StudentMapper;\nimport com.system.mapper.StudentMapperCustom;\nimport com.system.po.*;\nimport com.system.service.StudentService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Student\n */\n@Service\npublic class StudentServiceImpl implements StudentService {\n\n    //使用spring 自动注入\n    @Autowired\n    private StudentMapperCustom studentMapperCustom;\n\n    @Autowired\n    private StudentMapper studentMapper;\n\n    @Autowired\n    private CollegeMapper collegeMapper;\n\n    public void updataById(Integer id, StudentCustom studentCustom) throws Exception {\n        studentMapper.updateByPrimaryKey(studentCustom);\n    }\n\n    public void removeById(Integer id) throws Exception {\n        studentMapper.deleteByPrimaryKey(id);\n    }\n\n    public List<StudentCustom> findByPaging(Integer toPageNo) throws Exception {\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(toPageNo);\n\n        List<StudentCustom> list = studentMapperCustom.findByPaging(pagingVO);\n\n        return list;\n    }\n\n    public Boolean save(StudentCustom studentCustoms) throws Exception {\n        Student stu = studentMapper.selectByPrimaryKey(studentCustoms.getUserid());\n        if (stu == null) {\n            studentMapper.insert(studentCustoms);\n            return true;\n        }\n\n        return false;\n    }\n\n    //返回学生总数\n    public int getCountStudent() throws Exception {\n        //自定义查询对象\n        StudentExample studentExample = new StudentExample();\n        //通过criteria构造查询条件\n        StudentExample.Criteria criteria = studentExample.createCriteria();\n        criteria.andUseridIsNotNull();\n\n        return studentMapper.countByExample(studentExample);\n    }\n\n    public StudentCustom findById(Integer id) throws Exception {\n\n        Student student  = studentMapper.selectByPrimaryKey(id);\n        StudentCustom studentCustom = null;\n        if (student != null) {\n            studentCustom = new StudentCustom();\n            //类拷贝\n            BeanUtils.copyProperties(student, studentCustom);\n        }\n\n        return studentCustom;\n    }\n\n    //模糊查询\n    public List<StudentCustom> findByName(String name) throws Exception {\n\n        StudentExample studentExample = new StudentExample();\n        //自定义查询条件\n        StudentExample.Criteria criteria = studentExample.createCriteria();\n\n        criteria.andUsernameLike(\"%\" + name + \"%\");\n\n        List<Student> list = studentMapper.selectByExample(studentExample);\n\n        List<StudentCustom> studentCustomList = null;\n\n        if (list != null) {\n            studentCustomList = new ArrayList<StudentCustom>();\n            for (Student s : list) {\n                StudentCustom studentCustom = new StudentCustom();\n                //类拷贝\n                BeanUtils.copyProperties(s, studentCustom);\n                //获取课程名\n                College college = collegeMapper.selectByPrimaryKey(s.getCollegeid());\n                studentCustom.setcollegeName(college.getCollegename());\n\n                studentCustomList.add(studentCustom);\n            }\n        }\n\n        return studentCustomList;\n    }\n\n    public StudentCustom findStudentAndSelectCourseListByName(String name) throws Exception {\n\n        StudentCustom studentCustom = studentMapperCustom.findStudentAndSelectCourseListById(Integer.parseInt(name));\n\n        List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();\n\n        // 判断该课程是否修完\n        for (SelectedCourseCustom s : list) {\n            if (s.getMark() != null) {\n                s.setOver(true);\n            }\n        }\n        return studentCustom;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/TeacherServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.exception.CustomException;\nimport com.system.mapper.CollegeMapper;\nimport com.system.mapper.CourseMapper;\nimport com.system.mapper.TeacherMapper;\nimport com.system.mapper.TeacherMapperCustom;\nimport com.system.po.*;\nimport com.system.service.TeacherService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\n@Service\npublic class TeacherServiceImpl implements TeacherService {\n\n    @Autowired\n    private TeacherMapper teacherMapper;\n\n    @Autowired\n    private TeacherMapperCustom teacherMapperCustom;\n\n    @Autowired\n    private CollegeMapper collegeMapper;\n\n    @Autowired\n    private CourseMapper courseMapper;\n\n    public void updateById(Integer id, TeacherCustom teacherCustom) throws Exception {\n        teacherMapper.updateByPrimaryKey(teacherCustom);\n    }\n\n    public void removeById(Integer id) throws Exception {\n        CourseExample courseExample = new CourseExample();\n\n        CourseExample.Criteria criteria = courseExample.createCriteria();\n        criteria.andTeacheridEqualTo(id);\n        List<Course> list = courseMapper.selectByExample(courseExample);\n\n        if (list.size() != 0) {\n            throw new CustomException(\"请先删除该名老师所教授的课程\");\n        }\n\n        teacherMapper.deleteByPrimaryKey(id);\n    }\n\n    public List<TeacherCustom> findByPaging(Integer toPageNo) throws Exception {\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(toPageNo);\n\n        List<TeacherCustom> list = teacherMapperCustom.findByPaging(pagingVO);\n\n        return list;\n    }\n\n    public Boolean save(TeacherCustom teacherCustom) throws Exception {\n\n        Teacher tea = teacherMapper.selectByPrimaryKey(teacherCustom.getUserid());\n        if (tea == null) {\n            teacherMapper.insert(teacherCustom);\n            return true;\n        }\n        return false;\n    }\n\n    public int getCountTeacher() throws Exception {\n        //自定义查询对象\n        TeacherExample teacherExample = new TeacherExample();\n        //通过criteria构造查询条件\n        TeacherExample.Criteria criteria = teacherExample.createCriteria();\n        criteria.andUseridIsNotNull();\n\n        return teacherMapper.countByExample(teacherExample);\n    }\n\n    public TeacherCustom findById(Integer id) throws Exception {\n        Teacher teacher = teacherMapper.selectByPrimaryKey(id);\n        TeacherCustom teacherCustom = null;\n        if (teacher != null) {\n            teacherCustom = new TeacherCustom();\n            BeanUtils.copyProperties(teacher, teacherCustom);\n        }\n\n        return teacherCustom;\n    }\n\n    public List<TeacherCustom> findByName(String name) throws Exception {\n        TeacherExample teacherExample = new TeacherExample();\n        //自定义查询条件\n        TeacherExample.Criteria criteria = teacherExample.createCriteria();\n\n        criteria.andUsernameLike(\"%\" + name + \"%\");\n\n        List<Teacher> list = teacherMapper.selectByExample(teacherExample);\n\n        List<TeacherCustom> teacherCustomList = null;\n\n        if (list != null) {\n            teacherCustomList = new ArrayList<TeacherCustom>();\n            for (Teacher t : list) {\n                TeacherCustom teacherCustom = new TeacherCustom();\n                //类拷贝\n                BeanUtils.copyProperties(t, teacherCustom);\n                //获取课程名\n                College college = collegeMapper.selectByPrimaryKey(t.getCollegeid());\n                teacherCustom.setcollegeName(college.getCollegename());\n\n                teacherCustomList.add(teacherCustom);\n            }\n        }\n\n        return teacherCustomList;\n    }\n\n    public List<TeacherCustom> findAll() throws Exception {\n\n        TeacherExample teacherExample = new TeacherExample();\n        TeacherExample.Criteria criteria = teacherExample.createCriteria();\n\n        criteria.andUsernameIsNotNull();\n\n        List<Teacher> list = teacherMapper.selectByExample(teacherExample);\n        List<TeacherCustom> teacherCustomsList = null;\n        if (list != null) {\n            teacherCustomsList = new ArrayList<TeacherCustom>();\n            for (Teacher t: list) {\n                TeacherCustom teacherCustom = new TeacherCustom();\n                BeanUtils.copyProperties(t, teacherCustom);\n                teacherCustomsList.add(teacherCustom);\n            }\n        }\n        return teacherCustomsList;\n    }\n}\n"
  },
  {
    "path": "src/main/java/com/system/service/impl/UserloginServiceImpl.java",
    "content": "package com.system.service.impl;\n\nimport com.system.mapper.UserloginMapper;\nimport com.system.po.Userlogin;\nimport com.system.po.UserloginExample;\nimport com.system.service.UserloginService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\n@Service\npublic class UserloginServiceImpl implements UserloginService {\n\n    @Autowired\n    private UserloginMapper userloginMapper;\n\n\n    public Userlogin findByName(String name) throws Exception {\n        UserloginExample userloginExample = new UserloginExample();\n\n        UserloginExample.Criteria criteria = userloginExample.createCriteria();\n        criteria.andUsernameEqualTo(name);\n\n        List<Userlogin> list = userloginMapper.selectByExample(userloginExample);\n\n        return list.get(0);\n    }\n\n    public void save(Userlogin userlogin) throws Exception {\n        userloginMapper.insert(userlogin);\n    }\n\n    public void removeByName(String name) throws Exception {\n        UserloginExample userloginExample = new UserloginExample();\n\n        UserloginExample.Criteria criteria = userloginExample.createCriteria();\n        criteria.andUsernameEqualTo(name);\n\n        userloginMapper.deleteByExample(userloginExample);\n    }\n\n    public void updateByName(String name, Userlogin userlogin) {\n        UserloginExample userloginExample = new UserloginExample();\n\n        UserloginExample.Criteria criteria = userloginExample.createCriteria();\n        criteria.andUsernameEqualTo(name);\n\n        userloginMapper.updateByExample(userlogin, userloginExample);\n    }\n\n}\n"
  },
  {
    "path": "src/main/resources/log4j.properties",
    "content": "### direct log messages to stdout ###\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.Target=System.err\nlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout\nlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\n\n### direct messages to file mylog.log ###\nlog4j.appender.file=org.apache.log4j.FileAppender\nlog4j.appender.file.File=c:\\mylog.log\nlog4j.appender.file.layout=org.apache.log4j.PatternLayout\nlog4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\n\n### set log levels - for more verbose logging change 'info' to 'debug' ###\n\nlog4j.rootLogger=info, stdout"
  },
  {
    "path": "src/main/resources/mybatis/mybatis.cfg.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!DOCTYPE configuration PUBLIC \"-//mybatis.org//DTD Config 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n\n<!--\n    MyBatis 主配置文件\n-->\n<configuration>\n\n\n\n    <!-- 为JAVA PO类起类别名 -->\n    <typeAliases>\n        <!-- 别名方式2，自动扫描，将JAVA类的类名作为类的类别名 -->\n        <package name=\"com.system.po\" />\n    </typeAliases>\n\n\n    <!--<mappers>-->\n        <!--由于使用了spring与mybati整合包进行，mapper扫描，这里不需要配置-->\n    <!--</mappers>-->\n\n\n\n</configuration>\n"
  },
  {
    "path": "src/main/resources/mysql.properties",
    "content": "jdbc.driver = com.mysql.jdbc.Driver\njdbc.url = jdbc:mysql://localhost:3306/examination_system\njdbc.username = root\njdbc.password = root"
  },
  {
    "path": "src/main/resources/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--加载数据库配置文件-->\n    <context:property-placeholder location=\"classpath:mysql.properties\" />\n\n    <!--配置数据源 c3p0l连接池-->\n    <bean id=\"dataSource\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\" >\n        <property name=\"driverClass\" value=\"${jdbc.driver}\" />\n        <property name=\"jdbcUrl\" value=\"${jdbc.url}\" />\n        <property name=\"user\" value=\"${jdbc.username}\" />\n        <property name=\"password\" value=\"${jdbc.password}\" />\n    </bean>\n\n    <!--配置SqlSessionFactory-->\n    <bean id=\"sessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n        <!--加载mybatis配置文件-->\n        <property name=\"configLocation\" value=\"classpath:mybatis/mybatis.cfg.xml\"/>\n        <!--数据源-->\n        <property name=\"dataSource\" ref=\"dataSource\"/>\n    </bean>\n\n    <!--Mapper批量扫描，从Mapper包扫描接口，自动创建代理对象，并在Spring容器中自动注册\n    使用 Mybatis与Spring整合包的这个 Mapper 扫描器后， Mybatis 配置文件里的扫描器，就可以取消掉了\n    遵循的规范 不变\n    自动扫描出来的Mapper的bean的id为Mapper类名（首字母小写）\n    -->\n    <bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n        <!--如果需要扫描多个报下的mapper,每个包中间使用半角逗号分开-->\n        <property name=\"basePackage\" value=\"com.system.mapper\" />\n        <property name=\"sqlSessionFactoryBeanName\" value=\"sessionFactory\" />\n    </bean>\n\n\n\n</beans>"
  },
  {
    "path": "src/main/resources/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n               xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n               xmlns:context=\"http://www.springframework.org/schema/context\"\n               xmlns:aop=\"http://www.springframework.org/schema/aop\"\n               xmlns:tx=\"http://www.springframework.org/schema/tx\"\n               xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n\n    <!--组件扫描，如果想要类被组件扫描，扫描到，并在Spring容器中注册的话\n    必须在类名上添加上注解 @Repository、@Service、@Controller、@Component （这四个注解功能一样，名字不同只是为了区分不同功能）\n    @Component 是通用组件\n    -->\n    <context:component-scan base-package=\"com.system.service.impl\"/>\n    <!--<bean id=\"studentService\" class=\"com.system.service.impl.StudentServiceImpl\"></bean>-->\n    <!--<bean id=\"teacherServiceImpl\" class=\"com.system.service.impl.TeacherServiceImpl\"></bean>-->\n    <!--<bean id=\"courseServiceImpl\" class=\"com.system.service.impl.CourseServiceImpl\"></bean>-->\n    <!--<bean id=\"SelectedCourseServiceImpl\" class=\"com.system.service.impl.SelectedCourseServiceImpl\"></bean>-->\n\n</beans>"
  },
  {
    "path": "src/main/resources/spring/applicationContext-shiro.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--组件扫描器-->\n    <context:component-scan base-package=\"com.system.realm\" />\n\n    <!-- shiro过滤器bean，id要和web.xml中filter-name一致 -->\n    <bean id=\"shiroFilter\" class=\"org.apache.shiro.spring.web.ShiroFilterFactoryBean\">\n        <property name=\"securityManager\" ref=\"securityManager\" />\n\n        <!-- 要求登录时的链接(登录页面地址)，非必须的属性，默认会自动寻找Web工程根目录下的\"/login.jsp\"页面 -->\n        <!--<property name=\"loginUrl\" value=\"/admin/show\"></property>-->\n\n        <property name=\"filterChainDefinitions\">\n            <value>\n                #这里相当于ini配置文件中的[urls]\n                #url=拦截器[参数]，拦截器\n                # /techer/** = authc, perms[document:read]\n                # 如果用户没有该角色，然后访问该 路径 会报 401错误\n\n                /admin/** = authc, roles[admin]\n                /techer/** = authc, roles[teacher]\n                /student/** = authc, roles[student]\n\n                # 当访问login时，不用进行认证（anon表示匿名）\n                /login = anon\n\n                /logout = logout\n\n                # 配置静态资源可以匿名访问\n                /css/** = anon\n                /js/** = anon\n                /images/** = anon\n                /fonts/** = anon\n\n                # 除了上面额 /login 可以匿名访问，其他路径都需要登录访问\n                # 如果没登录，就访问其他路径会跳转到 /login 登录\n\n                /** = authc\n            </value>\n        </property>\n    </bean>\n\n\n    <!-- 配置securityManager -->\n    <bean id=\"securityManager\" class=\"org.apache.shiro.web.mgt.DefaultWebSecurityManager\">\n        <!--配置自定义Realm-->\n        <!--loginRealm 使用扫描器扫描注册成功了-->\n        <property name=\"realm\" ref=\"loginRealm\" />\n        <!-- <property name=\"sessionMode\" value=\"native\"/> -->\n    </bean>\n    <!-- 生命周期 -->\n    <bean id=\"lifecycleBeanPostProcessor\" class=\"org.apache.shiro.spring.LifecycleBeanPostProcessor\" />\n\n\n    <!-- 启用shiro注解 -->\n    <bean class=\"org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator\" depends-on=\"lifecycleBeanPostProcessor\"/>\n    <bean class=\"org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor\">\n        <property name=\"securityManager\" ref=\"securityManager\"/>\n    </bean>\n\n\n</beans>"
  },
  {
    "path": "src/main/resources/spring/applicationContext-trsaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--事务控制器\n        对mybatis操作数据库事务控制，spring使用jdbc的事务控制类\n    -->\n    <bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n        <!--配置数据源\n        dataSource在applicationContext-dao.xml中配置了\n        -->\n        <property name=\"dataSource\" ref=\"dataSource\" />\n    </bean>\n\n    <!--通知-->\n    <tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n        <tx:attributes>\n            <!--传播行为-->\n            <tx:method name=\"save*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"delete*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"insert*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"update*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"select*\" propagation=\"REQUIRED\"/>\n        </tx:attributes>\n    </tx:advice>\n\n    <!--AOP-->\n    <aop:config>\n        <!--设置切入点-->\n        <aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* com.system.service.impl.*.*(..))\"/>\n    </aop:config>\n\n</beans>"
  },
  {
    "path": "src/main/resources/spring/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd\">\n\n\t<!--静态资源解析包括 ：js、css、img、.. -->\n\t<!-- <mvc:resources mapping=\"/js/\" location=\"/js/**\" />\n\t<mvc:resources mapping=\"/css/\" location=\"/css/**\" />\n\t<mvc:resources mapping=\"/fonts/\" location=\"/fonts/**\" />\n\t<mvc:resources mapping=\"/images/\" location=\"/images/**\"/>  -->\n\t<!--加载静态资源 -->\n\t<mvc:default-servlet-handler />\n\n\t<!--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<开启注解方式：配置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -->\n\n\t<!--使用annotation-driven 注解驱动，就可以代替 注解映射器 和 注解适配器 的配置 -->\n\t<!--conversion-service 向处理器适配器中注入【自定义的参数绑定组件】。 -->\n\t<!--validator 向处理器适配器，注入 校验器 -->\n\t<mvc:annotation-driven conversion-service=\"conversionService\">\n\t</mvc:annotation-driven>\n\n\t<!--自定义参数绑定组件 -->\n\t<bean id=\"conversionService\"\n\t\tclass=\"org.springframework.format.support.FormattingConversionServiceFactoryBean\">\n\t\t<!-- 转换器 -->\n\t\t<property name=\"converters\">\n\t\t\t<set>\n\t\t\t\t<!-- 日期类型转换 -->\n\t\t\t\t<bean class=\"com.system.controller.converter.CustomDateConverter\" />\n\t\t\t</set>\n\t\t</property>\n\t</bean>\n\n\t<!--组件扫描，可以扫描 controller、Service、... 并注册添加到 spring 容器中 这里扫描 controller，指定controller的包 -->\n\t<context:component-scan base-package=\"com.system.controller\" />\n\n\t<!--全局错误信息处理器 只要实现HandlerExceptionResolver接口就是全局异常处理器 -->\n\t<bean class=\"com.system.exception.CustomExceptionResolver\" />\n\n\t<!--视图解析器 -->\n\t<!-- 需要配置解析jsp的视图解析器 jsp解析，默认使用jstl标签解析 -->\n\t<bean\n\t\tclass=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n\t\t<!--拼接视图地址的前缀和后缀 -->\n\t\t<property name=\"prefix\" value=\"/WEB-INF/jsp/\" />\n\t\t<property name=\"suffix\" value=\".jsp\" />\n\t</bean>\n\n</beans>"
  },
  {
    "path": "src/main/webapp/WEB-INF/classes/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--加载数据库配置文件-->\n    <context:property-placeholder location=\"classpath:mysql.properties\" />\n\n    <!--配置数据源 c3p0l连接池-->\n    <bean id=\"dataSource\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\" >\n        <property name=\"driverClass\" value=\"${jdbc.driver}\" />\n        <property name=\"jdbcUrl\" value=\"${jdbc.url}\" />\n        <property name=\"user\" value=\"${jdbc.username}\" />\n        <property name=\"password\" value=\"${jdbc.password}\" />\n    </bean>\n\n    <!--配置SqlSessionFactory-->\n    <bean id=\"sessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n        <!--加载mybatis配置文件-->\n        <property name=\"configLocation\" value=\"classpath:mybatis/mybatis.cfg.xml\"/>\n        <!--数据源-->\n        <property name=\"dataSource\" ref=\"dataSource\"/>\n    </bean>\n\n    <!--Mapper批量扫描，从Mapper包扫描接口，自动创建代理对象，并在Spring容器中自动注册\n    使用 Mybatis与Spring整合包的这个 Mapper 扫描器后， Mybatis 配置文件里的扫描器，就可以取消掉了\n    遵循的规范 不变\n    自动扫描出来的Mapper的bean的id为Mapper类名（首字母小写）\n    -->\n    <bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n        <!--如果需要扫描多个报下的mapper,每个包中间使用半角逗号分开-->\n        <property name=\"basePackage\" value=\"com.system.mapper\" />\n        <property name=\"sqlSessionFactoryBeanName\" value=\"sessionFactory\" />\n    </bean>\n\n\n\n</beans>"
  },
  {
    "path": "src/main/webapp/WEB-INF/classes/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n               xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n               xmlns:context=\"http://www.springframework.org/schema/context\"\n               xmlns:aop=\"http://www.springframework.org/schema/aop\"\n               xmlns:tx=\"http://www.springframework.org/schema/tx\"\n               xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n\n    <!--组件扫描，如果想要类被组件扫描，扫描到，并在Spring容器中注册的话\n    必须在类名上添加上注解 @Repository、@Service、@Controller、@Component （这四个注解功能一样，名字不同只是为了区分不同功能）\n    @Component 是通用组件\n    -->\n    <context:component-scan base-package=\"com.system.service.impl\"/>\n    <!--<bean id=\"studentService\" class=\"com.system.service.impl.StudentServiceImpl\"></bean>-->\n    <!--<bean id=\"teacherServiceImpl\" class=\"com.system.service.impl.TeacherServiceImpl\"></bean>-->\n    <!--<bean id=\"courseServiceImpl\" class=\"com.system.service.impl.CourseServiceImpl\"></bean>-->\n    <!--<bean id=\"SelectedCourseServiceImpl\" class=\"com.system.service.impl.SelectedCourseServiceImpl\"></bean>-->\n\n</beans>"
  },
  {
    "path": "src/main/webapp/WEB-INF/classes/spring/applicationContext-shiro.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--组件扫描器-->\n    <context:component-scan base-package=\"com.system.realm\" />\n\n    <!-- shiro过滤器bean，id要和web.xml中filter-name一致 -->\n    <bean id=\"shiroFilter\" class=\"org.apache.shiro.spring.web.ShiroFilterFactoryBean\">\n        <property name=\"securityManager\" ref=\"securityManager\" />\n\n        <!-- 要求登录时的链接(登录页面地址)，非必须的属性，默认会自动寻找Web工程根目录下的\"/login.jsp\"页面 -->\n        <!--<property name=\"loginUrl\" value=\"/admin/show\"></property>-->\n\n        <property name=\"filterChainDefinitions\">\n            <value>\n                #这里相当于ini配置文件中的[urls]\n                #url=拦截器[参数]，拦截器\n                # /techer/** = authc, perms[document:read]\n                # 如果用户没有该角色，然后访问该 路径 会报 401错误\n\n                /admin/** = authc, roles[admin]\n                /techer/** = authc, roles[teacher]\n                /student/** = authc, roles[student]\n\n                # 当访问login时，不用进行认证（anon表示匿名）\n                /login = anon\n\n                /logout = logout\n\n                # 配置静态资源可以匿名访问\n                /css/** = anon\n                /js/** = anon\n                /images/** = anon\n                /fonts/** = anon\n\n                # 除了上面额 /login 可以匿名访问，其他路径都需要登录访问\n                # 如果没登录，就访问其他路径会跳转到 /login 登录\n\n                /** = authc\n            </value>\n        </property>\n    </bean>\n\n\n    <!-- 配置securityManager -->\n    <bean id=\"securityManager\" class=\"org.apache.shiro.web.mgt.DefaultWebSecurityManager\">\n        <!--配置自定义Realm-->\n        <!--loginRealm 使用扫描器扫描注册成功了-->\n        <property name=\"realm\" ref=\"loginRealm\" />\n        <!-- <property name=\"sessionMode\" value=\"native\"/> -->\n    </bean>\n    <!-- 生命周期 -->\n    <bean id=\"lifecycleBeanPostProcessor\" class=\"org.apache.shiro.spring.LifecycleBeanPostProcessor\" />\n\n\n    <!-- 启用shiro注解 -->\n    <bean class=\"org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator\" depends-on=\"lifecycleBeanPostProcessor\"/>\n    <bean class=\"org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor\">\n        <property name=\"securityManager\" ref=\"securityManager\"/>\n    </bean>\n\n\n</beans>"
  },
  {
    "path": "src/main/webapp/WEB-INF/classes/spring/applicationContext-trsaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--事务控制器\n        对mybatis操作数据库事务控制，spring使用jdbc的事务控制类\n    -->\n    <bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n        <!--配置数据源\n        dataSource在applicationContext-dao.xml中配置了\n        -->\n        <property name=\"dataSource\" ref=\"dataSource\" />\n    </bean>\n\n    <!--通知-->\n    <tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n        <tx:attributes>\n            <!--传播行为-->\n            <tx:method name=\"save*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"delete*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"insert*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"update*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"select*\" propagation=\"REQUIRED\"/>\n        </tx:attributes>\n    </tx:advice>\n\n    <!--AOP-->\n    <aop:config>\n        <!--设置切入点-->\n        <aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* com.system.service.impl.*.*(..))\"/>\n    </aop:config>\n\n</beans>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/addCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n<!-- 顶栏 -->\n<jsp:include page=\"top.jsp\"></jsp:include>\n<!-- 中间主体 -->\n<div class=\"container\" id=\"content\">\n\t<div class=\"row\">\n\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t<div class=\"col-md-10\">\n\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t<div class=\"panel-heading\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<h1 style=\"text-align: center;\">添加课程信息</h1>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"panel-body\">\n\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/addCourse\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">课程号</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"number\" class=\"form-control\" id=\"inputEmail3\" name=\"courseid\" placeholder=\"请输入课程号\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\">课程名称</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"coursename\" placeholder=\"请输入课程名称\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">授课老师编号</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"teacherid\">\n\t\t\t\t\t\t\t\t\t<c:forEach items=\"${teacherList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"${item.userid}\">${item.username}</option>\n\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\">上课时间</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"coursetime\" placeholder=\"请输入上课时间\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\">上课地点</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"classroom\" placeholder=\"上课地点\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">周数</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"number\" class=\"form-control\" name=\"courseweek\" placeholder=\"请输入周数\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"coursetype\">课程的类型：</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"coursetype\">\n\t\t\t\t\t\t\t\t\t<option value=\"必修课\">必修课</option>\n\t\t\t\t\t\t\t\t\t<option value=\"选修课\">选修课</option>\n\t\t\t\t\t\t\t\t\t<option value=\"公共课\">公共课</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"collegeid\">\n\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">学分：</label>\n\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t<input type=\"number\" class=\"form-control\" name=\"score\" placeholder=\"请输入学分\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\n\t\t</div>\n\t</div>\n</div>\n<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n</div>\n</body>\n<script type=\"text/javascript\">\n    $(\"#nav li:nth-child(1)\").addClass(\"active\")\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/addStudent.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">添加学生信息</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/addStudent\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">学号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"number\" class=\"form-control\" id=\"inputEmail3\" name=\"userid\" placeholder=\"请输入学号\"\n\t\t\t\t\t\t\t\t  <c:if test='${student!=null}'>\n\t\t\t\t\t\t\t\t\t\t value=\"${student.userid}\"\n\t\t\t\t\t\t\t\t  </c:if>>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">姓名</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"username\" placeholder=\"请输入姓名\"\n\t\t\t\t\t\t\t\t  <c:if test='${student!=null}'>\n\t\t\t\t\t\t\t\t\t\t value=\"${student.username}\"\n\t\t\t\t\t\t\t\t  </c:if>>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">性别</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t   \t<input type=\"radio\" name=\"sex\" value=\"男\" checked>男\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t\t<input type=\"radio\" name=\"sex\" value=\"女\">女\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">出生年份</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"1996-09-02\" name=\"birthyear\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">入学时间</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"2015-09-02\" name=\"grade\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <select class=\"form-control\" name=\"collegeid\">\n\t\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t    </select>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(2)\").addClass(\"active\")\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/addTeacher.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">添加教师信息</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/addTeacher\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">工号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"number\" class=\"form-control\" id=\"inputEmail3\" name=\"userid\" placeholder=\"请输入学号\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">姓名</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"username\" placeholder=\"请输入姓名\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">性别</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t   \t<input type=\"radio\" name=\"sex\" value=\"男\" checked>男\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t\t<input type=\"radio\" name=\"sex\" value=\"女\">女\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">出生年份</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"1996-09-02\" name=\"birthyear\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"degree\">学历：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"degree\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"本科\">本科</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"硕士\">硕士</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"博士\">博士</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"title\">职称：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"title\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"普通教师\">普通教师</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"助教\">助教</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"讲师\">讲师</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"副教授\">副教授</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"教授\">教授</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">入职时间</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"2015-09-02\" name=\"grade\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <select class=\"form-control\" name=\"collegeid\">\n\t\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t    </select>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(3)\").addClass(\"active\")\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/editCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">修改课程信息</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/editCourse\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">课程号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input readonly=\"readonly\"  type=\"number\" class=\"form-control\" id=\"inputEmail3\" value=\"${course.courseid}\" name=\"courseid\" placeholder=\"请输入课程号\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">课程名称</label>\n\t\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"coursename\" value=\"${course.coursename}\" placeholder=\"请输入课程名称\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t\t  <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">授课老师编号</label>\n\t\t\t\t\t\t\t\t  <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t  <select class=\"form-control\" name=\"teacherid\" id=\"teacherid\">\n\t\t\t\t\t\t\t\t\t\t  <c:forEach items=\"${teacherList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t  <option value=\"${item.userid}\">${item.username}</option>\n\t\t\t\t\t\t\t\t\t\t  </c:forEach>\n\t\t\t\t\t\t\t\t\t  </select>\n\t\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\">上课时间</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"coursetime\" value=\"${course.coursetime}\" placeholder=\"请输入上课时间\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\">上课地点</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" name=\"classroom\" value=\"${course.classroom}\" placeholder=\"上课地点\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">周数</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<input type=\"number\" class=\"form-control\" name=\"courseweek\" value=\"${course.courseweek}\" placeholder=\"请输入周数\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"coursetype\">课程的类型：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"coursetype\" id=\"coursetype\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"必修课\">必修课</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"选修课\">选修课</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"公共课\">公共课</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"collegeid\">\n\t\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputEmail3\" class=\"col-sm-2 control-label\">学分：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<input type=\"number\" class=\"form-control\" name=\"score\" value=\"${course.score}\" placeholder=\"请输入学分\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(1)\").addClass(\"active\")\n\n        var collegeSelect = $(\"#college option\");\n        for (var i=0; i<collegeSelect.length; i++) {\n            if (collegeSelect[i].value == '${course.collegeid}') {\n                collegeSelect[i].selected = true;\n            }\n        }\n\n        var degreeSelect = $(\"#coursetype option\");\n        for (var i=0; i<coursetypeSelect.length; i++) {\n            if (coursetypeSelect[i].value == '${course.coursetype}') {\n                coursetypeSelect[i].selected = true;\n            }\n        }\n\n        var teacheridSelect = $(\"#teacherid option\");\n        for (var i=0; i<teacheridSelect.length; i++) {\n            if (teacheridSelect[i].value == '${course.teacherid}') {\n                teacheridSelect[i].selected = true;\n            }\n        }\n\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/editStudent.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">修改学生信息</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/editStudent\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t\t  <div class=\"form-group \">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\" >学号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input readonly=\"readonly\" type=\"number\" class=\"form-control\" id=\"inputEmail3\" name=\"userid\" placeholder=\"请输入学号\"\n\t\t\t\t\t\t\t\t  <c:if test='${student!=null}'>\n\t\t\t\t\t\t\t\t\t\t value=\"${student.userid}\"\n\t\t\t\t\t\t\t\t  </c:if>>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">姓名</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"username\" placeholder=\"请输入姓名\" value=\"${student.username}\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">性别</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t   \t<input type=\"radio\" name=\"sex\" value=\"男\" checked>男\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t\t<input type=\"radio\" name=\"sex\" value=\"女\">女\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">出生年份</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"<fmt:formatDate value=\"${student.birthyear}\" dateStyle=\"medium\" pattern=\"yyyy-MM-dd\" />\" name=\"birthyear\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">入学时间</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"<fmt:formatDate value=\"${student.grade}\" dateStyle=\"medium\" pattern=\"yyyy-MM-dd\" />\" name=\"grade\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <select class=\"form-control\" name=\"collegeid\" id=\"college\">\n\t\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t    </select>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(2)\").addClass(\"active\")\n\n        var collegeSelect = $(\"#college option\");\n        for (var i=0; i<collegeSelect.length; i++) {\n            if (collegeSelect[i].value == '${student.collegeid}') {\n                collegeSelect[i].selected = true;\n            }\n        }\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/editTeacher.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">修改教师信息</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/editTeacher\" id=\"editfrom\" method=\"post\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">工号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input readonly=\"readonly\" type=\"number\" class=\"form-control\" id=\"inputEmail3\" name=\"userid\" placeholder=\"请输入工号\" value=\"${teacher.userid}\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">姓名</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"inputPassword3\" name=\"username\" placeholder=\"请输入姓名\" value=\"${teacher.username}\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">性别</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t   \t<input type=\"radio\" name=\"sex\" value=\"男\" checked>男\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<label class=\"checkbox-inline\">\n\t\t\t\t\t\t\t\t\t\t<input type=\"radio\" name=\"sex\" value=\"女\">女\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">出生年份</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"<fmt:formatDate value=\"${teacher.birthyear}\" dateStyle=\"medium\" pattern=\"yyyy-MM-dd\" />\" name=\"birthyear\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"degree\">学历：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"degree\" id=\"degree\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"本科\">本科</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"硕士\">硕士</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"博士\">博士</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"title\" >职称：</label>\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<select class=\"form-control\" name=\"title\" id=\"title\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"普通教师\">普通教师</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"助教\">助教</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"讲师\">讲师</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"副教授\">副教授</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"教授\">教授</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">入职时间</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <input type=\"date\" value=\"<fmt:formatDate value=\"${teacher.grade}\" dateStyle=\"medium\" pattern=\"yyyy-MM-dd\" />\" name=\"grade\"/>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\" name=\"grade\">所属院系</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t    <select class=\"form-control\" name=\"collegeid\" id=\"college\">\n\t\t\t\t\t\t\t\t\t\t<c:forEach items=\"${collegeList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t\t\t<option value=\"${item.collegeid}\">${item.collegename}</option>\n\t\t\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t\t\t\t    </select>\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"reset\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(3)\").addClass(\"active\");\n\n        var collegeSelect = $(\"#college option\");\n        for (var i=0; i<collegeSelect.length; i++) {\n            if (collegeSelect[i].value == '${teacher.collegeid}') {\n                collegeSelect[i].selected = true;\n            }\n        }\n\n        var degreeSelect = $(\"#degree option\");\n        var titleSelect = $(\"#title option\");\n\n        for (var i=0; i<degreeSelect.length; i++) {\n            if (degreeSelect[i].value == '${teacher.degree}') {\n                degreeSelect[i].selected = true;\n            }\n        }\n        for (var i=0; i<titleSelect.length; i++) {\n            if (titleSelect[i].value == '${teacher.title}') {\n                titleSelect[i].selected = true;\n            }\n        }\n\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/menu.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n\n<div class=\"col-md-2\">\n    <ul class=\"nav nav-pills nav-stacked\" id=\"nav\">\n        <li><a href=\"${pageContext.request.contextPath}/admin/showCourse\">课程管理<span class=\"badge pull-right\">8</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/admin/showStudent\">学生管理<span class=\"badge pull-right\">59</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/admin/showTeacher\">教师管理<span class=\"badge pull-right\">10</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/admin/userPasswordRest\">账号密码重置<sapn class=\"glyphicon glyphicon-repeat pull-right\" /></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/admin/passwordRest\">修改密码<sapn class=\"glyphicon glyphicon-pencil pull-right\" /></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/logout\">退出系统<sapn class=\"glyphicon glyphicon-log-out pull-right\" /></a></li>\n        <li class=\"disabled\"><a href=\"##\">Responsive</a></li>\n    </ul>\n</div>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/passwordRest.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">重置密码</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form name=\"reset\" class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/passwordRest\" id=\"editfrom\" method=\"post\" onsubmit=\"return check()\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">旧密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" name=\"oldPassword\" id=\"inputEmail3\" placeholder=\"请输入旧密码\" >\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">新密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password1\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">确认密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password2\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请再次输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n<script>\n    $(\"#nav li:nth-child(5)\").addClass(\"active\")\n    function check() {\n        if(reset.oldPassword.value==\"\"||reset.oldPassword.value==null)\n        {alert(\"请输入旧账户密码\");return false;}\n        if(reset.password1.value==\"\"||reset.password1.value==null)\n        {alert(\"请输入重置密码\");return false;}\n        if(reset.password2.value==\"\"||reset.password2.value==null)\n        {alert(\"请输入再次输入密码\");return false;}\n        if(reset.password1.value != reset.password2.value)\n        {alert(\"两次密码不正确\");return false;}\n    }\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/showCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">课程名单管理</h1>\n\t\t\t\t\t\t\t<form class=\"bs-example bs-example-form col-md-5\" role=\"form\" style=\"margin: 20px 0 10px 0;\" action=\"${pageContext.request.contextPath}/admin/selectCourse\" id=\"form1\" method=\"post\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" placeholder=\"请输入姓名\" name=\"findByName\">\n\t\t\t\t\t\t\t\t\t<span class=\"input-group-addon btn\" onclick=\"document.getElementById('form1').submit\" id=\"sub\">搜索</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t<button class=\"btn btn-default col-md-2\" style=\"margin-top: 20px\" onClick=\"location.href='/admin/addCourse'\">\n\t\t\t\t\t\t\t\t添加课程信息\n\t\t\t\t\t\t\t\t<sapn class=\"glyphicon glyphicon-plus\"/>\n\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>课程号</th>\n\t\t\t\t\t\t\t\t\t<th>课程名称</th>\n\t\t\t\t\t\t\t\t\t<th>授课老师编号</th>\n\t\t\t\t\t\t\t\t\t<th>上课时间</th>\n\t\t\t\t\t\t\t\t\t<th>上课地点</th>\n\t\t\t\t\t\t\t\t\t<th>周数</th>\n\t\t\t\t\t\t\t\t\t<th>课程类型</th>\n\t\t\t\t\t\t\t\t\t<th>学分</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${courseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>${item.courseid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursename}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.teacherid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetime}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.classroom}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.courseweek}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetype}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.score}</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='${pageContext.request.contextPath}/admin/editCourse?id=${item.courseid}'\">修改</button>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-danger btn-primary\" onClick=\"location.href='${pageContext.request.contextPath}/admin/removeCourse?id=${item.courseid}'\">删除</button>\n\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(1)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/showStudent.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>学生信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">学生名单管理</h1>\n\t\t\t\t\t\t\t<form class=\"bs-example bs-example-form col-md-5\" role=\"form\" style=\"margin: 20px 0 10px 0;\" action=\"${pageContext.request.contextPath}/admin/selectStudent\" id=\"form1\" method=\"post\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" placeholder=\"请输入姓名\" name=\"findByName\">\n\t\t\t\t\t\t\t\t\t<span class=\"input-group-addon btn\" id=\"sub\">搜索</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t<button class=\"btn btn-default col-md-2\" style=\"margin-top: 20px\" onClick=\"location.href='/admin/addStudent'\">\n\t\t\t\t\t\t\t\t添加用户信息\n\t\t\t\t\t\t\t\t<sapn class=\"glyphicon glyphicon-plus\"/>\n\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t                <th>学号</th>\n\t\t\t\t  \t\t\t\t\t<th>姓名</th>\n\t\t\t\t  \t\t\t\t\t<th>性别</th>\n\t\t\t\t  \t\t\t\t\t<th>出生年份</th>\n\t\t\t\t  \t\t\t\t\t<th>入学时间</th>\n\t\t\t\t  \t\t\t\t\t<th>学院</th>\n\t\t\t\t  \t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${studentList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>${item.userid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.username}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.sex}</td>\n\t\t\t\t\t\t\t\t\t<td><fmt:formatDate value=\"${item.birthyear}\" dateStyle=\"medium\" /></td>\n\t\t\t\t\t\t\t\t\t<td><fmt:formatDate value=\"${item.grade}\" dateStyle=\"medium\" /></td>\n\t\t\t\t\t\t\t\t\t<td>${item.collegeName}</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='/admin/editStudent?id=${item.userid}'\">修改</button>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-danger btn-primary\" onClick=\"location.href='/admin/removeStudent?id=${item.userid}'\">删除</button>\n\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showStudent?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(2)\").addClass(\"active\");\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        };\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\n        <c:if test=\"${pagingVO != null}\">\n\t\t\tif (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n\t\t\t\t$(\".pagination li:last-child\").addClass(\"disabled\")\n\t\t\t};\n\n\t\t\tif (${pagingVO.curentPageNo} == ${1}) {\n\t\t\t\t$(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n\t\t\t};\n        </c:if>\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/showTeacher.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>教师信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\n\t<!-- 中间主体 --><jsp:include page=\"top.jsp\"></jsp:include>\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">教师名单管理</h1>\n\t\t\t\t\t\t\t<form class=\"bs-example bs-example-form col-md-5\" role=\"form\" style=\"margin: 20px 0 10px 0;\" action=\"${pageContext.request.contextPath}/admin/selectTeacher\" id=\"form1\" method=\"post\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" placeholder=\"请输入姓名\" name=\"findByName\">\n\t\t\t\t\t\t\t\t\t<span class=\"input-group-addon btn\" onclick=\"document.getElementById('form1').submit\" id=\"sub\">搜索</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t<button class=\"btn btn-default col-md-2\" style=\"margin-top: 20px\" onClick=\"location.href='/admin/addTeacher'\">\n\t\t\t\t\t\t\t\t添加教师信息\n\t\t\t\t\t\t\t\t<sapn class=\"glyphicon glyphicon-plus\"/>\n\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>教师编号</th>\n\t\t\t\t\t\t\t\t\t<th>姓名</th>\n\t\t\t\t\t\t\t\t\t<th>性别</th>\n\t\t\t\t\t\t\t\t\t<th>出生年份</th>\n\t\t\t\t\t\t\t\t\t<th>学历</th>\n\t\t\t\t\t\t\t\t\t<th>职称</th>\n\t\t\t\t\t\t\t\t\t<th>入职年份</th>\n\t\t\t\t\t\t\t\t\t<th>学院</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${teacherList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>${item.userid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.username}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.sex}</td>\n\t\t\t\t\t\t\t\t\t<td><fmt:formatDate value=\"${item.birthyear}\" dateStyle=\"medium\" /></td>\n\t\t\t\t\t\t\t\t\t<td>${item.degree}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.title}</td>\n\t\t\t\t\t\t\t\t\t<td><fmt:formatDate value=\"${item.grade}\" dateStyle=\"medium\" /></td>\n\t\t\t\t\t\t\t\t\t<td>${item.collegeName}</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='/admin/editTeacher?id=${item.userid}'\">修改</button>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-danger btn-primary\" onClick=\"location.href='/admin/removeTeacher?id=${item.userid}'\">删除</button>\n\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/admin/showTeacher?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t$(\"#nav li:nth-child(3)\").addClass(\"active\")\n\n        <c:if test=\"${pagingVO != null}\">\n\t\t\tif (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n\t\t\t\t$(\".pagination li:last-child\").addClass(\"disabled\")\n\t\t\t};\n\n\t\t\tif (${pagingVO.curentPageNo} == ${1}) {\n\t\t\t\t$(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n\t\t\t};\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/top.jsp",
    "content": "<%--\n  Created by IntelliJ IDEA.\n  User: Jacey\n  Date: 2017/6/30\n  Time: 9:30\n  To change this template use File | Settings | File Templates.\n--%>\n<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%--shiro标签--%>\n<%@taglib prefix=\"shiro\" uri=\"http://shiro.apache.org/tags\" %>\n<!-- 顶栏 -->\n<div class=\"container\" id=\"top\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!--加入导航条标题-->\n            <div class=\"navbar navbar-default\" role=\"navigation\">\n                　<div class=\"navbar-header\">\n                　    <a href=\"##\" class=\"navbar-brand\">教务信息查询系统(管理员)</a>\n                　</div>\n                <form action=\"##\" class=\"navbar-form navbar-right\" rol=\"search\">\n                    <div class=\"dropdown\">\n                        <button class=\"btn btn-default dropdown-toggle\" type=\"button\" id=\"dropdownMenu1\" data-toggle=\"dropdown\" style=\"margin-right: 20px; \">\n                            <%--登录用户名--%>\n                            <span class=\"glyphicon glyphicon-user\"><shiro:principal/></span>\n                            <span class=\"caret\"></span>\n                        </button>\n                        <ul class=\"dropdown-menu\" role=\"menu\" aria-labelledby=\"dropdownMenu1\">\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"#\">\n                                    <span class=\"glyphicon glyphicon-cog pull-right\"></span>\n                                    修改个人信息\n                                </a>\n                            </li>\n                            <!-分割线--->\n                            <li role=\"presentation\" class=\"divider\"></li>\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"${pageContext.request.contextPath}/logout\">\n                                    <span class=\"glyphicon glyphicon-off pull-right\"></span>\n                                    注销\n                                </a>\n                            </li>\n                        </ul>\n                    </div>\n\n                </form>\n            </div>\n\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/admin/userPasswordRest.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">重置其他用户密码</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form class=\"form-horizontal\" name=\"reset\" role=\"form\" action=\"${pageContext.request.contextPath}/admin/userPasswordRest\" id=\"editfrom\" method=\"post\" onsubmit=\"return check()\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">账号(非管理员账号)</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" name=\"username\" id=\"inputEmail3\" placeholder=\"请输入用户名\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请输入密码\" name=\"password\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">确认密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" class=\"form-control\" name=\"password2\" id=\"inputPassword3\" placeholder=\"请再次输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n<script>\n    $(\"#nav li:nth-child(4)\").addClass(\"active\")\n\n    function check() {\n        if(reset.username.value==\"\"||reset.username.value==null)\n        {alert(\"请输入账户名称\");return false;}\n        if(reset.password.value==\"\"||reset.password.value==null)\n        {alert(\"请输入重置密码\");return false;}\n        if(reset.password2.value==\"\"||reset.password2.value==null)\n        {alert(\"请输入再次输入密码\");return false;}\n        if(reset.password.value != reset.password2.value)\n        {alert(\"两次密码不正确\");return false;}\n    }\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/error.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%--开启el表达式--%>\n<%@ page  isELIgnored=\"false\"%>\n\n<html>\n<head>\n    <title>错误提示</title>\n</head>\n<body>\n    <h1>${message}</h1>\n    <a href=\"javascript:history.back(-1)\">返回上一页</a>\n</body>\n</html>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/menu.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n\n<div class=\"col-md-2\">\n    <ul class=\"nav nav-pills nav-stacked\" id=\"nav\">\n        <li><a href=\"${pageContext.request.contextPath}/student/showCourse\">所有课程<span class=\"badge pull-right\">26</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/student/selectedCourse\">已选课程<span class=\"badge pull-right\">5</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/student/overCourse\">已修课程<span class=\"badge pull-right\">8</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/student/passwordRest\">修改密码<sapn class=\"glyphicon glyphicon-pencil pull-right\" /></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/logout\">退出系统<sapn class=\"glyphicon glyphicon-log-out pull-right\" /></a></li>\n        <li class=\"disabled\"><a href=\"##\">Responsive</a></li>\n    </ul>\n</div>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/overCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">已修课程</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>课程号</th>\n\t\t\t\t\t\t\t\t\t<th>课程名称</th>\n\t\t\t\t\t\t\t\t\t<th>授课老师编号</th>\n\t\t\t\t\t\t\t\t\t<th>上课时间</th>\n\t\t\t\t\t\t\t\t\t<th>上课地点</th>\n\t\t\t\t\t\t\t\t\t<th>周数</th>\n\t\t\t\t\t\t\t\t\t<th>课程类型</th>\n\t\t\t\t\t\t\t\t\t<th>学分</th>\n\t\t\t\t\t\t\t\t\t<th>成绩</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${selectedCourseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<%--输出已修完的课程--%>\n\t\t\t\t\t\t\t\t<c:if test=\"${item.over}\">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.courseid}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursename}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.teacherid}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursetime}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.classroom}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.courseweek}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursetype}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.score}</td>\n\t\t\t\t\t\t\t\t\t\t<td style=\"color: red\">${item.mark}</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(3)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/passwordRest.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">修改密码</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form name=\"reset\" class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/passwordRest\" id=\"editfrom\" method=\"post\" onsubmit=\"return check()\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">旧密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" name=\"oldPassword\" id=\"inputEmail3\" placeholder=\"请输入旧密码\" >\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">新密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password1\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">确认密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password2\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请再次输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n<script>\n    $(\"#nav li:nth-child(4)\").addClass(\"active\")\n    function check() {\n        if(reset.oldPassword.value==\"\"||reset.oldPassword.value==null)\n        {alert(\"请输入旧账户密码\");return false;}\n        if(reset.password1.value==\"\"||reset.password1.value==null)\n        {alert(\"请输入重置密码\");return false;}\n        if(reset.password2.value==\"\"||reset.password2.value==null)\n        {alert(\"请输入再次输入密码\");return false;}\n        if(reset.password1.value != reset.password2.value)\n        {alert(\"两次密码不正确\");return false;}\n    }\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/selectCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">已选课程</h1>\n\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>课程号</th>\n\t\t\t\t\t\t\t\t\t<th>课程名称</th>\n\t\t\t\t\t\t\t\t\t<th>授课老师编号</th>\n\t\t\t\t\t\t\t\t\t<th>上课时间</th>\n\t\t\t\t\t\t\t\t\t<th>上课地点</th>\n\t\t\t\t\t\t\t\t\t<th>周数</th>\n\t\t\t\t\t\t\t\t\t<th>课程类型</th>\n\t\t\t\t\t\t\t\t\t<th>学分</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${selectedCourseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<%--输出还没修完的课程--%>\n\t\t\t\t\t\t\t\t<c:if test=\"${!item.over}\">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.courseid}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursename}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.teacherid}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursetime}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.classroom}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.courseweek}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.coursetype}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.couseCustom.score}</td>\n\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='/student/outCourse?id=${item.courseid}'\">退课</button>\n\t\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(2)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/showCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">课程列表</h1>\n\t\t\t\t\t\t\t<form class=\"bs-example bs-example-form col-md-5\" role=\"form\" style=\"margin: 20px 0 10px 0;\" action=\"${pageContext.request.contextPath}/admin/selectCourse\" id=\"form1\" method=\"post\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" placeholder=\"请输入课程名\" name=\"findByName\">\n\t\t\t\t\t\t\t\t\t<span class=\"input-group-addon btn\" onclick=\"document.getElementById('form1').submit\" id=\"sub\">搜索</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</form>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>课程号</th>\n\t\t\t\t\t\t\t\t\t<th>课程名称</th>\n\t\t\t\t\t\t\t\t\t<th>授课老师编号</th>\n\t\t\t\t\t\t\t\t\t<th>上课时间</th>\n\t\t\t\t\t\t\t\t\t<th>上课地点</th>\n\t\t\t\t\t\t\t\t\t<th>周数</th>\n\t\t\t\t\t\t\t\t\t<th>课程类型</th>\n\t\t\t\t\t\t\t\t\t<th>学分</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${courseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>${item.courseid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursename}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.teacherid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetime}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.classroom}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.courseweek}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetype}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.score}</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='/student/stuSelectedCourse?id=${item.courseid}'\">选课</button>\n\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(1)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/student/top.jsp",
    "content": "<%--\n  Created by IntelliJ IDEA.\n  User: Jacey\n  Date: 2017/6/30\n  Time: 9:30\n  To change this template use File | Settings | File Templates.\n--%>\n<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%--shiro标签--%>\n<%@taglib prefix=\"shiro\" uri=\"http://shiro.apache.org/tags\" %>\n<!-- 顶栏 -->\n<div class=\"container\" id=\"top\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!--加入导航条标题-->\n            <div class=\"navbar navbar-default\" role=\"navigation\">\n                　<div class=\"navbar-header\">\n                　    <a href=\"##\" class=\"navbar-brand\">教务信息查询系统(学生)</a>\n                　</div>\n                <form action=\"##\" class=\"navbar-form navbar-right\" rol=\"search\">\n                    <div class=\"dropdown\">\n                        <button class=\"btn btn-default dropdown-toggle\" type=\"button\" id=\"dropdownMenu1\" data-toggle=\"dropdown\" style=\"margin-right: 20px; \">\n                            <%--登录用户名--%>\n                            <span class=\"glyphicon glyphicon-user\"><shiro:principal/></span>\n                            <span class=\"caret\"></span>\n                        </button>\n                        <ul class=\"dropdown-menu\" role=\"menu\" aria-labelledby=\"dropdownMenu1\">\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"#\">\n                                    <span class=\"glyphicon glyphicon-cog pull-right\"></span>\n                                    修改个人信息\n                                </a>\n                            </li>\n                            <!-分割线--->\n                            <li role=\"presentation\" class=\"divider\"></li>\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"/logout\">\n                                    <span class=\"glyphicon glyphicon-off pull-right\"></span>\n                                    注销\n                                </a>\n                            </li>\n                        </ul>\n                    </div>\n\n                </form>\n            </div>\n\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/success.jsp",
    "content": "<%--\n  Created by IntelliJ IDEA.\n  User: Jacey\n  Date: 2017/6/11\n  Time: 20:23\n  To change this template use File | Settings | File Templates.\n--%>\n<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<html>\n<head>\n    <title>成功页面</title>\n</head>\n<body>\n    <h1>操作成功</h1>\n</body>\n</html>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/mark.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">学生打分</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form name=\"reset\" class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/teacher/mark\" id=\"editfrom\" method=\"post\" onsubmit=\"return check()\">\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t<div class=\"col-sm-10\">\n\t\t\t\t\t\t\t\t\t<input  readonly=\"readonly\" type=\"hidden\" class=\"form-control\" name=\"courseid\" id=\"inputEmail3\" value=\"${selectedCourse.courseid}\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">学号</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input  readonly=\"readonly\" type=\"text\" class=\"form-control\" name=\"studentid\" id=\"inputEmail3\" value=\"${selectedCourse.studentid}\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">姓名</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input  readonly=\"readonly\" type=\"text\" name=\"name\" class=\"form-control\" id=\"inputPassword3\" value=\"${selectedCourse.studentCustom.username}\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">成绩</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"number\" name=\"mark\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请输入成绩\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n<script>\n    $(\"#nav li:nth-child(1)\").addClass(\"active\")\n    function check() {\n        if(reset.mark.value==\"\"||reset.mark.value==null)\n        {alert(\"请输入成绩\");return false;}\n    }\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/menu.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n\n<div class=\"col-md-2\">\n    <ul class=\"nav nav-pills nav-stacked\" id=\"nav\">\n        <li><a href=\"${pageContext.request.contextPath}/teacher/showCourse\">我的课程<span class=\"badge pull-right\">8</span></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/teacher/passwordRest\">修改密码<sapn class=\"glyphicon glyphicon-pencil pull-right\" /></a></li>\n        <li><a href=\"${pageContext.request.contextPath}/logout\">退出系统<sapn class=\"glyphicon glyphicon-log-out pull-right\" /></a></li>\n        <li class=\"disabled\"><a href=\"##\">Responsive</a></li>\n    </ul>\n</div>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/passwordRest.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 style=\"text-align: center;\">修改密码</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <div class=\"panel-body\">\n\t\t\t\t\t\t<form name=\"reset\" class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/passwordRest\" id=\"editfrom\" method=\"post\" onsubmit=\"return check()\">\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputEmail3\" class=\"col-sm-2 control-label\">旧密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"text\" class=\"form-control\" name=\"oldPassword\" id=\"inputEmail3\" placeholder=\"请输入旧密码\" >\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">新密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password1\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t\t\t\t    <label for=\"inputPassword3\" class=\"col-sm-2 control-label\">确认密码</label>\n\t\t\t\t\t\t\t    <div class=\"col-sm-10\">\n\t\t\t\t\t\t\t      <input type=\"password\" name=\"password2\" class=\"form-control\" id=\"inputPassword3\" placeholder=\"请再次输入密码\">\n\t\t\t\t\t\t\t    </div>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t\t  <div class=\"form-group\" style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"submit\">提交</button>\n\t\t\t\t\t\t\t\t<button class=\"btn btn-default\">重置</button>\n\t\t\t\t\t\t\t  </div>\n\t\t\t\t\t\t</form>\n\t\t\t\t    </div>\n\t\t\t\t    \n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\"></div>\n\t</div>\n\t</div>\n</body>\n<script>\n    $(\"#nav li:nth-child(2)\").addClass(\"active\")\n    function check() {\n        if(reset.oldPassword.value==\"\"||reset.oldPassword.value==null)\n        {alert(\"请输入旧账户密码\");return false;}\n        if(reset.password1.value==\"\"||reset.password1.value==null)\n        {alert(\"请输入重置密码\");return false;}\n        if(reset.password2.value==\"\"||reset.password2.value==null)\n        {alert(\"请输入再次输入密码\");return false;}\n        if(reset.password1.value != reset.password2.value)\n        {alert(\"两次密码不正确\");return false;}\n    }\n</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/showCourse.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">我教授的课程</h1>\n\t\t\t\t\t\t\t<form class=\"bs-example bs-example-form col-md-5\" role=\"form\" style=\"margin: 20px 0 10px 0;\" action=\"${pageContext.request.contextPath}/admin/selectCourse\" id=\"form1\" method=\"post\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" placeholder=\"请输入课程名\" name=\"findByName\">\n\t\t\t\t\t\t\t\t\t<span class=\"input-group-addon btn\" onclick=\"document.getElementById('form1').submit\" id=\"sub\">搜索</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</form>\n\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>课程号</th>\n\t\t\t\t\t\t\t\t\t<th>课程名称</th>\n\t\t\t\t\t\t\t\t\t<th>授课老师编号</th>\n\t\t\t\t\t\t\t\t\t<th>上课时间</th>\n\t\t\t\t\t\t\t\t\t<th>上课地点</th>\n\t\t\t\t\t\t\t\t\t<th>周数</th>\n\t\t\t\t\t\t\t\t\t<th>课程类型</th>\n\t\t\t\t\t\t\t\t\t<th>学分</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t<c:forEach  items=\"${courseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>${item.courseid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursename}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.teacherid}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetime}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.classroom}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.courseweek}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.coursetype}</td>\n\t\t\t\t\t\t\t\t\t<td>${item.score}</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='${pageContext.request.contextPath}/teacher/gradeCourse?id=${item.courseid}'\">成绩</button>\n\t\t\t\t\t\t\t\t\t\t<!--弹出框-->\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(1)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/showGrade.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\"%>\n<%@ taglib uri=\"http://java.sun.com/jsp/jstl/fmt\"  prefix=\"fmt\" %>\n\n<!DOCTYPE html>\n<html>\n<head>\n\t<title>课程信息显示</title>\n\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\n\t<%--<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">--%>\n\n</head>\n<body>\n\t<!-- 顶栏 -->\n\t<jsp:include page=\"top.jsp\"></jsp:include>\n\t<!-- 中间主体 -->\n\t<div class=\"container\" id=\"content\">\n\t\t<div class=\"row\">\n\t\t\t<jsp:include page=\"menu.jsp\"></jsp:include>\n\t\t\t<div class=\"col-md-10\">\n\t\t\t\t<div class=\"panel panel-default\">\n\t\t\t\t    <div class=\"panel-heading\">\n\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t    \t<h1 class=\"col-md-5\">已选该课程学生名单</h1>\n\t\t\t\t\t\t</div>\n\t\t\t\t    </div>\n\t\t\t\t    <table class=\"table table-bordered\">\n\t\t\t\t\t        <thead>\n\t\t\t\t\t            <tr>\n\t\t\t\t\t\t\t\t\t<th>学号</th>\n\t\t\t\t\t\t\t\t\t<th>姓名</th>\n\t\t\t\t\t\t\t\t\t<th>分数</th>\n\t\t\t\t\t\t\t\t\t<th>操作</th>\n\t\t\t\t\t            </tr>\n\t\t\t\t\t        </thead>\n\t\t\t\t\t        <tbody>\n\t\t\t\t\t\t\t\t<c:forEach items=\"${selectedCourseList}\" var=\"item\">\n\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t<td>${item.studentCustom.userid}</td>\n\t\t\t\t\t\t\t\t\t\t<td>${item.studentCustom.username}</td>\n\t\t\t\t\t\t\t\t\t\t<c:if test=\"${!item.over}\">\n\t\t\t\t\t\t\t\t\t\t\t<td>未打分</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default btn-xs btn-info\" onClick=\"location.href='/teacher/mark?studentid=${item.studentid}&courseid=${item.courseid}'\">打分</button>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t\t<c:if test=\"${item.over}\">\n\t\t\t\t\t\t\t\t\t\t\t<td>${item.mark}</td>\n\t\t\t\t\t\t\t\t\t\t\t<td>已打分</td>\n\t\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</c:forEach>\n\t\t\t\t\t        </tbody>\n\t\t\t\t    </table>\n\t\t\t\t    <div class=\"panel-footer\">\n\t\t\t\t\t\t<c:if test=\"${pagingVO != null}\">\n\t\t\t\t\t\t\t<nav style=\"text-align: center\">\n\t\t\t\t\t\t\t\t<ul class=\"pagination\">\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.upPageNo}\">&laquo;上一页</a></li>\n\t\t\t\t\t\t\t\t\t<li class=\"active\"><a href=\"\">${pagingVO.curentPageNo}</a></li>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+1 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+1}\">${pagingVO.curentPageNo+1}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+2 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+2}\">${pagingVO.curentPageNo+2}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+3 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+3}\">${pagingVO.curentPageNo+3}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<c:if test=\"${pagingVO.curentPageNo+4 <= pagingVO.totalCount}\">\n\t\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.curentPageNo+4}\">${pagingVO.curentPageNo+4}</a></li>\n\t\t\t\t\t\t\t\t\t</c:if>\n\t\t\t\t\t\t\t\t\t<li><a href=\"${pageContext.request.contextPath}/student/showCourse?page=${pagingVO.totalCount}\">最后一页&raquo;</a></li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</nav>\n\t\t\t\t\t\t</c:if>\n\t\t\t\t    </div>\n\t\t\t\t</div>\n\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"container\" id=\"footer\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\"></div>\n\t\t</div>\n\t</div>\n</body>\n\t<script type=\"text/javascript\">\n\t\t<%--设置菜单中--%>\n\t\t$(\"#nav li:nth-child(1)\").addClass(\"active\")\n        <c:if test=\"${pagingVO != null}\">\n        if (${pagingVO.curentPageNo} == ${pagingVO.totalCount}) {\n            $(\".pagination li:last-child\").addClass(\"disabled\")\n        };\n\n        if (${pagingVO.curentPageNo} == ${1}) {\n            $(\".pagination li:nth-child(1)\").addClass(\"disabled\")\n        };\n        </c:if>\n\n        function confirmd() {\n            var msg = \"您真的确定要删除吗？！\";\n            if (confirm(msg)==true){\n                return true;\n            }else{\n                return false;\n            }\n        }\n\n        $(\"#sub\").click(function () {\n            $(\"#form1\").submit();\n        });\n\t</script>\n</html>"
  },
  {
    "path": "src/main/webapp/WEB-INF/jsp/teacher/top.jsp",
    "content": "<%--\n  Created by IntelliJ IDEA.\n  User: Jacey\n  Date: 2017/6/30\n  Time: 9:30\n  To change this template use File | Settings | File Templates.\n--%>\n<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<%--shiro标签--%>\n<%@taglib prefix=\"shiro\" uri=\"http://shiro.apache.org/tags\" %>\n<!-- 顶栏 -->\n<div class=\"container\" id=\"top\">\n    <div class=\"row\">\n        <div class=\"col-md-12\">\n            <!--加入导航条标题-->\n            <div class=\"navbar navbar-default\" role=\"navigation\">\n                　<div class=\"navbar-header\">\n                　    <a href=\"##\" class=\"navbar-brand\">教务信息查询系统(教师)</a>\n                　</div>\n                <form action=\"##\" class=\"navbar-form navbar-right\" rol=\"search\">\n                    <div class=\"dropdown\">\n                        <button class=\"btn btn-default dropdown-toggle\" type=\"button\" id=\"dropdownMenu1\" data-toggle=\"dropdown\" style=\"margin-right: 20px; \">\n                            <%--登录用户名--%>\n                            <span class=\"glyphicon glyphicon-user\"><shiro:principal/></span>\n                            <span class=\"caret\"></span>\n                        </button>\n                        <ul class=\"dropdown-menu\" role=\"menu\" aria-labelledby=\"dropdownMenu1\">\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"#\">\n                                    <span class=\"glyphicon glyphicon-cog pull-right\"></span>\n                                    修改个人信息\n                                </a>\n                            </li>\n                            <!-分割线--->\n                            <li role=\"presentation\" class=\"divider\"></li>\n                            <li role=\"presentation\">\n                                <a role=\"menuitem\" tabindex=\"-1\" href=\"/logout\">\n                                    <span class=\"glyphicon glyphicon-off pull-right\"></span>\n                                    注销\n                                </a>\n                            </li>\n                        </ul>\n                    </div>\n\n                </form>\n            </div>\n\n        </div>\n    </div>\n</div>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/web.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd\"\n         version=\"3.1\">\n\n  <!--加载spring容器-->\n  <context-param>\n    <param-name>contextConfigLocation</param-name>\n    <param-value>/WEB-INF/classes/spring/applicationContext-*.xml</param-value>\n  </context-param>\n  <listener>\n    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n  </listener>\n\n  <!--springMVC前端控制器加载-->\n  <servlet>\n    <servlet-name>springmvc</servlet-name>\n    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n    <!--contextConfigLocation配置SpringMVC加载的配置文件（配置处理器，映射器等等）\n    如果不配置contextConfigLocation，默认加载的是：/WEB-INF/servlet名称-servlet.xml(springmvc-servlet.xml)\n    -->\n    <init-param>\n      <param-name>contextConfigLocation</param-name>\n      <param-value>classpath:spring/springmvc.xml</param-value>\n    </init-param>\n  </servlet>\n\n  <servlet-mapping>\n    <servlet-name>springmvc</servlet-name>\n    <url-pattern>/</url-pattern>\n  </servlet-mapping>\n\n\n  <!--spring为我们提供的乱码过滤器-->\n  <filter>\n    <filter-name>CharacterEncodingFilter</filter-name>\n    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n    <init-param>\n      <param-name>encoding</param-name>\n      <param-value>utf-8</param-value>\n    </init-param>\n  </filter>\n  <filter-mapping>\n    <filter-name>CharacterEncodingFilter</filter-name>\n    <url-pattern>/*</url-pattern>\n  </filter-mapping>\n\n  <!-- name要和 applicationContext.xml中的对应的bean的id一致 -->\n  <!--Shiro拦截器 shiro入口-->\n  <filter>\n    <filter-name>shiroFilter</filter-name>\n    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>\n    <init-param>\n      <param-name>targetFilterLifecycle</param-name>\n      <param-value>true</param-value>\n    </init-param>\n  </filter>\n\n  <filter-mapping>\n    <filter-name>shiroFilter</filter-name>\n    <url-pattern>/*</url-pattern>\n  </filter-mapping>\n\n\n  <welcome-file-list>\n    <welcome-file>login.jsp</welcome-file>\n  </welcome-file-list>\n\n</web-app>\n"
  },
  {
    "path": "src/main/webapp/css/bootstrap-theme.css",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n  text-shadow: none;\n}\n.btn:active,\n.btn.active {\n  background-image: none;\n}\n.btn-default {\n  text-shadow: 0 1px 0 #fff;\n  background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n  background-image:      -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));\n  background-image:         linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #dbdbdb;\n  border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n  background-color: #e0e0e0;\n  background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n  background-color: #e0e0e0;\n  border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n  background-color: #e0e0e0;\n  background-image: none;\n}\n.btn-primary {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n  background-color: #265a88;\n  background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n  background-color: #265a88;\n  border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #265a88;\n  background-image: none;\n}\n.btn-success {\n  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n  background-image:      -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));\n  background-image:         linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n  background-color: #419641;\n  background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n  background-color: #419641;\n  border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n  background-color: #419641;\n  background-image: none;\n}\n.btn-info {\n  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n  background-image:      -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));\n  background-image:         linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n  background-color: #2aabd2;\n  background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n  background-color: #2aabd2;\n  border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n  background-color: #2aabd2;\n  background-image: none;\n}\n.btn-warning {\n  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));\n  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n  background-color: #eb9316;\n  background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n  background-color: #eb9316;\n  border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #eb9316;\n  background-image: none;\n}\n.btn-danger {\n  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n  background-image:      -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));\n  background-image:         linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n  background-color: #c12e2a;\n  background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n  background-color: #c12e2a;\n  border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #c12e2a;\n  background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  background-color: #e8e8e8;\n  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n  background-repeat: repeat-x;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  background-color: #2e6da4;\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n  background-repeat: repeat-x;\n}\n.navbar-default {\n  background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);\n  background-image:      -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));\n  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n  background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n  background-image:      -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));\n  background-image:         linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n  background-repeat: repeat-x;\n  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n.navbar-inverse {\n  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n  background-image:      -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));\n  background-image:         linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n  background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n  background-image:      -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));\n  background-image:         linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n  background-repeat: repeat-x;\n  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);\n          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n@media (max-width: 767px) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n    background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n    background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n    background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n    background-repeat: repeat-x;\n  }\n}\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n}\n.alert-success {\n  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n  background-image:      -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));\n  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #b2dba1;\n}\n.alert-info {\n  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n  background-image:      -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));\n  background-image:         linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #9acfea;\n}\n.alert-warning {\n  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));\n  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #f5e79e;\n}\n.alert-danger {\n  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n  background-image:      -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));\n  background-image:         linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #dca7a7;\n}\n.progress {\n  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n  background-image:      -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));\n  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-success {\n  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n  background-image:      -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));\n  background-image:         linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-info {\n  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n  background-image:      -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));\n  background-image:         linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-warning {\n  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));\n  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-danger {\n  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n  background-image:      -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));\n  background-image:         linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.list-group {\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 #286090;\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n  text-shadow: none;\n}\n.panel {\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .05);\n}\n.panel-default > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n  background-image:      -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));\n  background-image:         linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n  background-image:      -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));\n  background-image:         linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));\n  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n  background-image:      -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));\n  background-image:         linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n  background-repeat: repeat-x;\n}\n.well {\n  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n  background-image:      -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));\n  background-image:         linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #dcdcdc;\n  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */\n"
  },
  {
    "path": "src/main/webapp/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  margin: .67em 0;\n  font-size: 2em;\n}\nmark {\n  color: #000;\n  background: #ff0;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\nsup {\n  top: -.5em;\n}\nsub {\n  bottom: -.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  height: 0;\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  margin: 0;\n  font: inherit;\n  color: inherit;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  padding: .35em .625em .75em;\n  margin: 0 2px;\n  border: 1px solid #c0c0c0;\n}\nlegend {\n  padding: 0;\n  border: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\ntd,\nth {\n  padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important;\n    text-shadow: none !important;\n    background: transparent !important;\n    -webkit-box-shadow: none !important;\n            box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\\002a\";\n}\n.glyphicon-plus:before {\n  content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n.glyphicon-cd:before {\n  content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n  content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n  content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n  content: \"\\e204\";\n}\n.glyphicon-copy:before {\n  content: \"\\e205\";\n}\n.glyphicon-paste:before {\n  content: \"\\e206\";\n}\n.glyphicon-alert:before {\n  content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n  content: \"\\e210\";\n}\n.glyphicon-king:before {\n  content: \"\\e211\";\n}\n.glyphicon-queen:before {\n  content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n  content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n  content: \"\\e214\";\n}\n.glyphicon-knight:before {\n  content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n  content: \"\\e216\";\n}\n.glyphicon-tent:before {\n  content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n  content: \"\\e218\";\n}\n.glyphicon-bed:before {\n  content: \"\\e219\";\n}\n.glyphicon-apple:before {\n  content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n  content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n  content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n  content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n  content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n  content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n  content: \"\\e227\";\n}\n.glyphicon-btc:before {\n  content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n  content: \"\\e227\";\n}\n.glyphicon-yen:before {\n  content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n  content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n  content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n  content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n  content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\";\n}\n.glyphicon-education:before {\n  content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n  content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n  content: \"\\e237\";\n}\n.glyphicon-oil:before {\n  content: \"\\e238\";\n}\n.glyphicon-grain:before {\n  content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n  content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n  content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n  content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n  content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n  content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n  content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n  content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n  content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n  content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n  content: \"\\e253\";\n}\n.glyphicon-console:before {\n  content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n  content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n  content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n  content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n  content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n  content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n  content: \"\\e260\";\n}\n* {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #333;\n  background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 6px;\n}\n.img-thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: all .2s ease-in-out;\n       -o-transition: all .2s ease-in-out;\n          transition: all .2s ease-in-out;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n[role=\"button\"] {\n  cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 36px;\n}\nh2,\n.h2 {\n  font-size: 30px;\n}\nh3,\n.h3 {\n  font-size: 24px;\n}\nh4,\n.h4 {\n  font-size: 18px;\n}\nh5,\n.h5 {\n  font-size: 14px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 10px;\n}\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\nsmall,\n.small {\n  font-size: 85%;\n}\nmark,\n.mark {\n  padding: .2em;\n  background-color: #fcf8e3;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  margin-left: -5px;\n  list-style: none;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-right: 5px;\n  padding-left: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    overflow: hidden;\n    clear: left;\n    text-align: right;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid #eee;\n  border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #fff;\n  background-color: #333;\n  border-radius: 3px;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #333;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n}\n.container-fluid {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n.row {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0;\n  }\n}\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0;\n  }\n}\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #ddd;\n}\n.table .table {\n  background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  display: table-column;\n  float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  display: table-cell;\n  float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  min-height: .01%;\n  overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #ddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n}\n.form-control::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999;\n}\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  background-color: #eee;\n  opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm,\n  .input-group-sm input[type=\"date\"],\n  .input-group-sm input[type=\"time\"],\n  .input-group-sm input[type=\"datetime-local\"],\n  .input-group-sm input[type=\"month\"] {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg,\n  .input-group-lg input[type=\"date\"],\n  .input-group-lg input[type=\"time\"],\n  .input-group-lg input[type=\"datetime-local\"],\n  .input-group-lg input[type=\"month\"] {\n    line-height: 46px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  vertical-align: middle;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  min-height: 34px;\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-right: 0;\n  padding-left: 0;\n}\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n  height: auto;\n}\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto;\n}\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.input-lg {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-lg {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n  height: auto;\n}\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto;\n}\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 42.5px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #a94442;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  padding-top: 7px;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px;\n}\n.form-horizontal .form-group {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    padding-top: 7px;\n    margin-bottom: 0;\n    text-align: right;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.btn {\n  display: inline-block;\n  padding: 6px 12px;\n  margin-bottom: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  -ms-touch-action: manipulation;\n      touch-action: manipulation;\n  cursor: pointer;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  background-image: none;\n  outline: 0;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n          box-shadow: none;\n  opacity: .65;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.btn-default:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default .badge {\n  color: #fff;\n  background-color: #333;\n}\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n  color: #fff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.btn-primary:hover {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n  color: #fff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.btn-success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.btn-success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.btn-info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.btn-info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.btn-warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.btn-warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.btn-danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\n.btn-link {\n  font-weight: normal;\n  color: #337ab7;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity .15s linear;\n       -o-transition: opacity .15s linear;\n          transition: opacity .15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n}\n.collapse.in {\n  display: block;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-timing-function: ease;\n       -o-transition-timing-function: ease;\n          transition-timing-function: ease;\n  -webkit-transition-duration: .35s;\n       -o-transition-duration: .35s;\n          transition-duration: .35s;\n  -webkit-transition-property: height, visibility;\n       -o-transition-property: height, visibility;\n          transition-property: height, visibility;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  font-size: 14px;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, .15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  color: #262626;\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #337ab7;\n  outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  content: \"\";\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    right: 0;\n    left: auto;\n  }\n  .navbar-right .dropdown-menu-left {\n    right: auto;\n    left: 0;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  display: table-cell;\n  float: none;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-right: 0;\n  padding-left: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group .form-control:focus {\n  z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555;\n  text-align: center;\n  background-color: #eee;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.nav {\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eee;\n}\n.nav > li.disabled > a {\n  color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777;\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555;\n  cursor: default;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #fff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n}\n.tab-content > .active {\n  display: block;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  padding-right: 15px;\n  padding-left: 15px;\n  overflow-x: visible;\n  -webkit-overflow-scrolling: touch;\n  border-top: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  height: 50px;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: -15px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-right: 15px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n.navbar-form {\n  padding: 10px 15px;\n  margin-top: 8px;\n  margin-right: -15px;\n  margin-bottom: 8px;\n  margin-left: -15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 14px;\n  margin-bottom: 14px;\n}\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n  .navbar-text {\n    float: left;\n    margin-right: 15px;\n    margin-left: 15px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #ccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333;\n}\n.navbar-default .btn-link {\n  color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #ccc;\n}\n.navbar-inverse {\n  background-color: #222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #fff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #fff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  padding: 0 5px;\n  color: #ccc;\n  content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n  color: #777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  margin-left: -1px;\n  line-height: 1.42857143;\n  color: #337ab7;\n  text-decoration: none;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  z-index: 2;\n  color: #23527c;\n  background-color: #eee;\n  border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 3;\n  color: #fff;\n  cursor: default;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #fff;\n  border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-top-left-radius: 6px;\n  border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-top-right-radius: 6px;\n  border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  text-align: center;\n  list-style: none;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #fff;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: #777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 21px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  padding-right: 15px;\n  padding-left: 15px;\n  border-radius: 6px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-right: 60px;\n    padding-left: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 63px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: border .2s ease-in-out;\n       -o-transition: border .2s ease-in-out;\n          transition: border .2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-right: auto;\n  margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #333;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@-o-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  height: 20px;\n  margin-bottom: 20px;\n  overflow: hidden;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n}\n.progress-bar {\n  float: left;\n  width: 0;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n  -webkit-transition: width .6s ease;\n       -o-transition: width .6s ease;\n          transition: width .6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  -webkit-background-size: 40px 40px;\n          background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n.media-body {\n  width: 10000px;\n}\n.media-object {\n  display: block;\n}\n.media-object.img-thumbnail {\n  max-width: none;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  padding-left: 0;\n  margin-bottom: 20px;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n  color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n  color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n  color: #555;\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 20px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-right: 15px;\n  padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  margin-bottom: 0;\n  border: 0;\n}\n.panel-group {\n  margin-bottom: 20px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 4px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #ddd;\n}\n.panel-default {\n  border-color: #ddd;\n}\n.panel-default > .panel-heading {\n  color: #333;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, .15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  filter: alpha(opacity=20);\n  opacity: .2;\n}\n.close:hover,\n.close:focus {\n  color: #000;\n  text-decoration: none;\n  cursor: pointer;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\nbutton.close {\n  -webkit-appearance: none;\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transition: -webkit-transform .3s ease-out;\n       -o-transition:      -o-transform .3s ease-out;\n          transition:         transform .3s ease-out;\n  -webkit-transform: translate(0, -25%);\n      -ms-transform: translate(0, -25%);\n       -o-transform: translate(0, -25%);\n          transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n      -ms-transform: translate(0, 0);\n       -o-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, .2);\n  border-radius: 6px;\n  outline: 0;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n}\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n.modal-backdrop.fade {\n  filter: alpha(opacity=0);\n  opacity: 0;\n}\n.modal-backdrop.in {\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-bottom: 0;\n  margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 12px;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n  filter: alpha(opacity=0);\n  opacity: 0;\n\n  line-break: auto;\n}\n.tooltip.in {\n  filter: alpha(opacity=90);\n  opacity: .9;\n}\n.tooltip.top {\n  padding: 5px 0;\n  margin-top: -3px;\n}\n.tooltip.right {\n  padding: 0 5px;\n  margin-left: 3px;\n}\n.tooltip.bottom {\n  padding: 5px 0;\n  margin-top: 3px;\n}\n.tooltip.left {\n  padding: 0 5px;\n  margin-left: -3px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 4px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n  right: 5px;\n  bottom: 0;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, .2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n\n  line-break: auto;\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  padding: 8px 14px;\n  margin: 0;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  content: \"\";\n  border-width: 10px;\n}\n.popover.top > .arrow {\n  bottom: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-color: #999;\n  border-top-color: rgba(0, 0, 0, .25);\n  border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n  bottom: 1px;\n  margin-left: -10px;\n  content: \" \";\n  border-top-color: #fff;\n  border-bottom-width: 0;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-right-color: #999;\n  border-right-color: rgba(0, 0, 0, .25);\n  border-left-width: 0;\n}\n.popover.right > .arrow:after {\n  bottom: -10px;\n  left: 1px;\n  content: \" \";\n  border-right-color: #fff;\n  border-left-width: 0;\n}\n.popover.bottom > .arrow {\n  top: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999;\n  border-bottom-color: rgba(0, 0, 0, .25);\n}\n.popover.bottom > .arrow:after {\n  top: 1px;\n  margin-left: -10px;\n  content: \" \";\n  border-top-width: 0;\n  border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999;\n  border-left-color: rgba(0, 0, 0, .25);\n}\n.popover.left > .arrow:after {\n  right: 1px;\n  bottom: -10px;\n  content: \" \";\n  border-right-width: 0;\n  border-left-color: #fff;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n.carousel-inner > .item {\n  position: relative;\n  display: none;\n  -webkit-transition: .6s ease-in-out left;\n       -o-transition: .6s ease-in-out left;\n          transition: .6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    -webkit-transition: -webkit-transform .6s ease-in-out;\n         -o-transition:      -o-transform .6s ease-in-out;\n            transition:         transform .6s ease-in-out;\n\n    -webkit-backface-visibility: hidden;\n            backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n            perspective: 1000px;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    left: 0;\n    -webkit-transform: translate3d(100%, 0, 0);\n            transform: translate3d(100%, 0, 0);\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    left: 0;\n    -webkit-transform: translate3d(-100%, 0, 0);\n            transform: translate3d(-100%, 0, 0);\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    left: 0;\n    -webkit-transform: translate3d(0, 0, 0);\n            transform: translate3d(0, 0, 0);\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 15%;\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n  background-color: rgba(0, 0, 0, 0);\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\n  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n  background-repeat: repeat-x;\n}\n.carousel-control.right {\n  right: 0;\n  left: auto;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\n  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n  background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  color: #fff;\n  text-decoration: none;\n  filter: alpha(opacity=90);\n  outline: 0;\n  opacity: .9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n  display: inline-block;\n  margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  font-family: serif;\n  line-height: 1;\n}\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n  border: 1px solid #fff;\n  border-radius: 10px;\n}\n.carousel-indicators .active {\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  background-color: #fff;\n}\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px;\n  }\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */\n"
  },
  {
    "path": "src/main/webapp/js/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.7'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector === '#' ? [] : selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.7'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d).prop(d, true)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d).prop(d, false)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target).closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n        // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n        e.preventDefault()\n        // The target component still receive the focus\n        if ($btn.is('input,button')) $btn.trigger('focus')\n        else $btn.find('input:visible,button:visible').first().trigger('focus')\n      }\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.7'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.7'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.7'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger($.Event('shown.bs.dropdown', relatedTarget))\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.7'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (document !== e.target &&\n            this.$element[0] !== e.target &&\n            !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.7'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n        that.$element\n          .removeAttr('aria-describedby')\n          .trigger('hidden.bs.' + that.type)\n      }\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var isSvg = window.SVGElement && el instanceof window.SVGElement\n    // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n    // See https://github.com/twbs/bootstrap/issues/20280\n    var elOffset  = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n      that.$element = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.7'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.7'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.7'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.7'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "src/main/webapp/js/npm.js",
    "content": "// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')"
  },
  {
    "path": "src/main/webapp/login.jsp",
    "content": "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>\n<!DOCTYPE html>\n<html>\n<head>\n\t<title></title>\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<!-- 引入bootstrap -->\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"${pageContext.request.contextPath}/css/bootstrap.min.css\">\n\t<!-- 引入JQuery  bootstrap.js-->\n\t<script src=\"${pageContext.request.contextPath}/js/jquery-3.2.1.min.js\"></script>\n\t<script src=\"${pageContext.request.contextPath}/js/bootstrap.min.js\"></script>\n\t<style type=\"text/css\">\n\tbody{\n\t   background: url(\"${pageContext.request.contextPath}/images/a.jpg\")repeat;\n\t}\n\t#login-box {\n\t\t/*border:1px solid #F00;*/\n\t\tpadding: 35px;\n\t\tborder-radius:15px;\n\t\tbackground: #56666B;\n\t\tcolor: #fff;\n\t}\n\n\t</style>\n</head>\n<body>\n\t<div class=\"container\" id=\"top\">\n\t\t<div class=\"row\" style=\"margin-top: 280px; \">\n\t\t\t<div class=\"col-md-4\"></div>\n\t\t\t<div class=\"col-md-4\" id=\"login-box\">\n\t\t\t\t<form class=\"form-horizontal\" role=\"form\" action=\"${pageContext.request.contextPath}/login\" id=\"from1\" method=\"post\">\n\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t    <label for=\"firstname\" class=\"col-sm-3 control-label\">用户id</label>\n\t\t\t\t    <div class=\"col-sm-9\">\n\t\t\t\t      <input type=\"text\" class=\"form-control\" id=\"userID\" placeholder=\"请输入名字\" name=\"username\">\n\t\t\t\t    </div>\n\t\t\t\t  </div>\n\t\t\t\t  <div class=\"form-group\">\n\t\t\t\t    <label for=\"lastname\" class=\"col-sm-3 control-label\">密码</label>\n\t\t\t\t    <div class=\"col-sm-9\">\n\t\t\t\t      <input type=\"password\" class=\"form-control\" id=\"password\" placeholder=\"请输入密码\" name=\"password\">\n\t\t\t\t    </div>\n\t\t\t\t  </div>\n\t\t\t\t  <%--<div class=\"form-group\">--%>\n\t\t\t\t    <%--<div class=\"col-sm-offset-2 col-sm-10\">--%>\n\t\t\t\t      <%--<div class=\"checkbox\">--%>\n\t\t\t\t        <%--<label class=\"checkbox-inline\">--%>\n\t\t\t\t\t\t\t<%--<input type=\"radio\" name=\"role\" value=\"1\" checked>管理员--%>\n\t\t\t\t\t\t<%--</label>--%>\n\t\t\t\t\t\t<%--<label class=\"checkbox-inline\">--%>\n\t\t\t\t\t\t\t<%--<input type=\"radio\" name=\"role\" value=\"2\">老师--%>\n\t\t\t\t\t\t<%--</label>--%>\n\t\t\t\t\t\t<%--<label class=\"checkbox-inline\">--%>\n\t\t\t\t\t\t\t<%--<input type=\"radio\" name=\"role\" value=\"3\">学生--%>\n\t\t\t\t\t\t<%--</label>--%>\n\t\t\t\t      <%--</div>--%>\n\t\t\t\t    <%--</div>--%>\n\t\t\t\t  <%--</div>--%>\n\t\t\t\t  <div class=\"form-group pull-right\" style=\"margin-right: 15px;\">\n\t\t\t\t    <div class=\"col-sm-offset-2 col-sm-10\">\n\t\t\t\t      <button type=\"submit\" class=\"btn btn-default btn-info\">登录</button>\n\t\t\t\t    </div>\n\t\t\t\t  </div>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\t\t<div class=\"col-md-4\"></div>\n\t\t</div>\t\t\n\t</div>\n</body>\n</html>"
  },
  {
    "path": "src/test/test/com/system/mapper/CourseMapperCustomTest.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.CourseCustom;\nimport com.system.po.PagingVO;\nimport com.system.po.TeacherCustom;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic class CourseMapperCustomTest {\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(\"spring/applicationContext-dao.xml\");\n    }\n\n    @Test\n    public void findByPaging() throws Exception {\n        CourseMapperCustom courseMapperCustom = (CourseMapperCustom) applicationContext.getBean(\"courseMapperCustom\");\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(1);\n        List<CourseCustom> list = courseMapperCustom.findByPaging(pagingVO);\n        System.out.println();\n    }\n}"
  },
  {
    "path": "src/test/test/com/system/mapper/StudentMapperCustomTest.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.PagingVO;\nimport com.system.po.Student;\nimport com.system.po.StudentCustom;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/28.\n */\npublic class StudentMapperCustomTest {\n\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(\"spring/applicationContext-dao.xml\");\n    }\n\n    @Test\n    public void findByPaging() throws Exception {\n        StudentMapperCustom studentMapperCustom = (StudentMapperCustom) applicationContext.getBean(\"studentMapperCustom\");\n        StudentMapper studentMapper = (StudentMapper) applicationContext.getBean(\"studentMapper\");\n\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(1);\n        List<StudentCustom> list =  studentMapperCustom.findByPaging(pagingVO);\n//        Student student = studentMapper.selectByPrimaryKey(10001);\n        System.out.println();\n\n    }\n\n    @Test\n    public void findStudentAndSelectCourseListByName() throws Exception {\n        StudentMapperCustom studentMapperCustom = (StudentMapperCustom) applicationContext.getBean(\"studentMapperCustom\");\n        StudentCustom studentCustom = studentMapperCustom.findStudentAndSelectCourseListById(10001);\n        System.out.println();\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/mapper/StudentMapperTest.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.Student;\nimport com.system.po.StudentExample;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n *\n *\n */\npublic class StudentMapperTest {\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(\"spring/applicationContext-dao.xml\");\n    }\n\n\n    @Test\n    public void selectByExample() throws Exception {\n        StudentMapper studentMapper = (StudentMapper) applicationContext.getBean(\"studentMapper\");\n\n        //自定义条件查询对象\n        StudentExample studentExample = new StudentExample();\n        StudentExample.Criteria criteria = studentExample.createCriteria();\n\n        //自定义查询条件\n        criteria.andUsernameLike(\"%小%\");\n        List<Student> list = studentMapper.selectByExample(studentExample);\n\n        System.out.println();\n\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/mapper/TeacherMapperCustomTest.java",
    "content": "package com.system.mapper;\n\nimport com.system.po.PagingVO;\nimport com.system.po.StudentCustom;\nimport com.system.po.TeacherCustom;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic class TeacherMapperCustomTest {\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(\"spring/applicationContext-dao.xml\");\n    }\n\n    @Test\n    public void findByPaging() throws Exception {\n        TeacherMapperCustom teacherMapperCustom = (TeacherMapperCustom) applicationContext.getBean(\"teacherMapperCustom\");\n        PagingVO pagingVO = new PagingVO();\n        pagingVO.setToPageNo(1);\n        List<TeacherCustom> list =  teacherMapperCustom.findByPaging(pagingVO);\n        System.out.println();\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/mapper/UserloginMapperCustomTest.java",
    "content": "package com.system.mapper;\n\n\nimport com.system.po.UserloginCustom;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\n/**\n * Created by Jacey on 2017/6/28.\n */\npublic class UserloginMapperCustomTest {\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(\"spring/applicationContext.xml\");\n    }\n\n    @Test\n    public void testFindOne() throws Exception {\n        UserloginMapperCustom userloginMapperCustom = (UserloginMapperCustom) applicationContext.getBean(\"userloginMapperCustom\");\n\n\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/service/impl/CourseServiceImplTest.java",
    "content": "package com.system.service.impl;\n\nimport com.system.po.CourseCustom;\nimport com.system.service.CourseService;\nimport com.system.service.StudentService;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/7/5.\n */\npublic class CourseServiceImplTest {\n\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(new String[]{\"spring/applicationContext-dao.xml\",\n                \"spring/applicationContext-service.xml\"});\n    }\n\n    @Test\n    public void findById() throws Exception {\n\n        CourseService courseService = (CourseService) applicationContext.getBean(\"courseServiceImpl\");\n\n        CourseCustom courseCustom = courseService.findById(1);\n\n        System.out.println();\n    }\n\n    @Test\n    public void findByTeacherID() throws Exception {\n\n        CourseService courseService = (CourseService) applicationContext.getBean(\"courseServiceImpl\");\n\n        courseService.findByTeacherID(1001);\n\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/service/impl/SelectedCourseServiceImplTest.java",
    "content": "package com.system.service.impl;\n\nimport com.system.po.SelectedCourseCustom;\nimport com.system.service.CourseService;\nimport com.system.service.SelectedCourseService;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/7/6.\n */\npublic class SelectedCourseServiceImplTest {\n\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(new String[]{\"spring/applicationContext-dao.xml\",\n                \"spring/applicationContext-service.xml\"});\n    }\n\n    @Test\n    public void findByCourseID() throws Exception {\n\n        SelectedCourseService service = (SelectedCourseService) applicationContext.getBean(\"selectedCourseServiceImpl\");\n\n        List<SelectedCourseCustom> list = service.findByCourseID(1);\n\n        System.out.println();\n\n    }\n\n\n}"
  },
  {
    "path": "src/test/test/com/system/service/impl/StudentServiceImplTest.java",
    "content": "package com.system.service.impl;\n\nimport com.system.po.PagingVO;\nimport com.system.po.Student;\nimport com.system.po.StudentCustom;\nimport com.system.service.StudentService;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic class StudentServiceImplTest {\n\n\n    private ApplicationContext applicationContext;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(new String[]{\"spring/applicationContext-dao.xml\",\n                \"spring/applicationContext-service.xml\"});\n    }\n\n    @Test\n    public void updataById() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n\n        StudentCustom studentCustom = new StudentCustom();\n        studentCustom.setUserid(10004);\n        studentCustom.setUsername(\"小拉\");\n//        studentCustom.setBirthyear(new Date(1996, 9, 2));\n\n        //指定时间格式\n        SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-M-d\");\n        // 指定一个日期\n        Date date = dateFormat.parse(\"1990-09-06\");\n        studentCustom.setBirthyear(date);\n\n        studentCustom.setCollegeid(1);\n        studentCustom.setSex(\"男\");\n        studentCustom.setGrade(new Date());\n        studentService.updataById(10004, studentCustom);\n    }\n\n    @Test\n    public void removeById() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n        studentService.removeById(10004);\n    }\n\n    @Test\n    public void findByPaging() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n        List<StudentCustom> list =  studentService.findByPaging(1);\n        System.out.println();\n    }\n\n    @Test\n    public void save() throws Exception {\n        StudentCustom studentCustom = new StudentCustom();\n        studentCustom.setUserid(10004);\n        studentCustom.setUsername(\"小花\");\n//        studentCustom.setBirthyear(new Date(1996, 9, 2));\n\n        //指定时间格式\n        SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-M-d\");\n        // 指定一个日期\n        Date date = dateFormat.parse(\"1996-09-02\");\n        studentCustom.setBirthyear(date);\n\n        studentCustom.setCollegeid(1);\n        studentCustom.setSex(\"男\");\n        studentCustom.setGrade(new Date());\n\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n        studentService.save(studentCustom);\n    }\n\n    @Test\n    public void getCountStudent() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n        int i = studentService.getCountStudent();\n        System.out.println();\n    }\n\n    @Test\n    public void findById() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n\n        Student student = studentService.findById(10001);\n        System.out.println();\n    }\n\n    @Test\n    public void findByName() throws Exception {\n        StudentService studentService = (StudentService) applicationContext.getBean(\"studentService\");\n        List<StudentCustom> list = studentService.findByName(\"小\");\n        System.out.println();\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/service/impl/TeacherServiceImplTest.java",
    "content": "package com.system.service.impl;\n\nimport com.system.po.Teacher;\nimport com.system.po.TeacherCustom;\nimport com.system.service.TeacherService;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.List;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/29.\n */\npublic class TeacherServiceImplTest {\n    private ApplicationContext applicationContext;\n    TeacherService teacherService;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(new String[]{\"spring/applicationContext-dao.xml\",\n                \"spring/applicationContext-service.xml\"});\n        teacherService = (TeacherService) applicationContext.getBean(\"teacherServiceImpl\");\n    }\n\n    @Test\n    public void updateById() throws Exception {\n        TeacherCustom teacherCustom = new TeacherCustom();\n        teacherCustom.setUserid(1003);\n        teacherCustom.setUsername(\"软老师\");\n\n        //指定时间格式\n        SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-M-d\");\n        // 指定一个日期\n        Date date = dateFormat.parse(\"1996-09-02\");\n        teacherCustom.setBirthyear(date);\n\n        teacherCustom.setCollegeid(1);\n        teacherCustom.setSex(\"男\");\n        teacherCustom.setGrade(new Date());\n        teacherCustom.setTitle(\"助教\");\n        teacherCustom.setDegree(\"硕士\");\n\n        teacherService.updateById(1003, teacherCustom);\n    }\n\n    @Test\n    public void removeById() throws Exception {\n        teacherService.removeById(1003);\n    }\n\n    @Test\n    public void findByPaging() throws Exception {\n        List<TeacherCustom> list = teacherService.findByPaging(1);\n        System.out.println();\n    }\n\n    @Test\n    public void save() throws Exception {\n        TeacherCustom teacherCustom = new TeacherCustom();\n        teacherCustom.setUserid(1003);\n        teacherCustom.setUsername(\"软老师\");\n\n        //指定时间格式\n        SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-M-d\");\n        // 指定一个日期\n        Date date = dateFormat.parse(\"1996-09-02\");\n        teacherCustom.setBirthyear(date);\n\n        teacherCustom.setCollegeid(1);\n        teacherCustom.setSex(\"男\");\n        teacherCustom.setGrade(new Date());\n        teacherCustom.setTitle(\"助教\");\n\n        teacherService.save(teacherCustom);\n    }\n\n    @Test\n    public void getCountTeacher() throws Exception {\n        int i = teacherService.getCountTeacher();\n        System.out.println(i);\n    }\n\n    @Test\n    public void findById() throws Exception {\n\n        TeacherCustom teacherCustom = teacherService.findById(1001);\n        System.out.println();\n    }\n\n    @Test\n    public void findByName() throws Exception {\n        List<TeacherCustom> list = teacherService.findByName(\"老师\");\n        System.out.println();\n    }\n\n    @Test\n    public void findAll() throws Exception {\n        List<TeacherCustom> list = teacherService.findAll();\n        System.out.println();\n    }\n\n}"
  },
  {
    "path": "src/test/test/com/system/service/impl/UserloginServiceImplTest.java",
    "content": "package com.system.service.impl;\n\nimport com.system.po.Userlogin;\nimport com.system.service.TeacherService;\nimport com.system.service.UserloginService;\nimport org.junit.Before;\nimport org.junit.Test;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\nimport static org.junit.Assert.*;\n\n/**\n * Created by Jacey on 2017/6/30.\n */\npublic class UserloginServiceImplTest {\n\n    private ApplicationContext applicationContext;\n    UserloginService userloginService;\n\n    @Before\n    public void setUp() throws Exception {\n        applicationContext = new ClassPathXmlApplicationContext(new String[]{\"spring/applicationContext-dao.xml\",\n                \"spring/applicationContext-service.xml\"});\n        userloginService = (UserloginService) applicationContext.getBean(\"userloginServiceImpl\");\n    }\n\n    @Test\n    public void findByName() throws Exception {\n        Userlogin u = userloginService.findByName(\"123\");\n        System.out.println();\n    }\n\n}"
  },
  {
    "path": "target/classes/com/system/mapper/CollegeMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.CollegeMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.College\" >\n    <id column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n    <result column=\"collegeName\" property=\"collegename\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    collegeID, collegeName\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.CollegeExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from college\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from college\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.CollegeExample\" >\n    delete from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.College\" >\n    insert into college (collegeID, collegeName)\n    values (#{collegeid,jdbcType=INTEGER}, #{collegename,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.College\" >\n    insert into college\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n      <if test=\"collegename != null\" >\n        collegeName,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"collegename != null\" >\n        #{collegename,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.CollegeExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from college\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update college\n    <set >\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.collegename != null\" >\n        collegeName = #{record.collegename,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update college\n    set collegeID = #{record.collegeid,jdbcType=INTEGER},\n      collegeName = #{record.collegename,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.College\" >\n    update college\n    <set >\n      <if test=\"collegename != null\" >\n        collegeName = #{collegename,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.College\" >\n    update college\n    set collegeName = #{collegename,jdbcType=VARCHAR}\n    where collegeID = #{collegeid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/CourseMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.CourseMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Course\" >\n    <id column=\"courseID\" property=\"courseid\" jdbcType=\"INTEGER\" />\n    <result column=\"courseName\" property=\"coursename\" jdbcType=\"VARCHAR\" />\n    <result column=\"teacherID\" property=\"teacherid\" jdbcType=\"INTEGER\" />\n    <result column=\"courseTime\" property=\"coursetime\" jdbcType=\"VARCHAR\" />\n    <result column=\"classRoom\" property=\"classroom\" jdbcType=\"VARCHAR\" />\n    <result column=\"courseWeek\" property=\"courseweek\" jdbcType=\"INTEGER\" />\n    <result column=\"courseType\" property=\"coursetype\" jdbcType=\"VARCHAR\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n    <result column=\"score\" property=\"score\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    courseID, courseName, teacherID, courseTime, classRoom, courseWeek, courseType, collegeID, \n    score\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.CourseExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from course\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from course\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.CourseExample\" >\n    delete from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Course\" >\n    insert into course (courseID, courseName, teacherID, \n      courseTime, classRoom, courseWeek, \n      courseType, collegeID, score\n      )\n    values (#{courseid,jdbcType=INTEGER}, #{coursename,jdbcType=VARCHAR}, #{teacherid,jdbcType=INTEGER}, \n      #{coursetime,jdbcType=VARCHAR}, #{classroom,jdbcType=VARCHAR}, #{courseweek,jdbcType=INTEGER}, \n      #{coursetype,jdbcType=VARCHAR}, #{collegeid,jdbcType=INTEGER}, #{score,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Course\" >\n    insert into course\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        courseID,\n      </if>\n      <if test=\"coursename != null\" >\n        courseName,\n      </if>\n      <if test=\"teacherid != null\" >\n        teacherID,\n      </if>\n      <if test=\"coursetime != null\" >\n        courseTime,\n      </if>\n      <if test=\"classroom != null\" >\n        classRoom,\n      </if>\n      <if test=\"courseweek != null\" >\n        courseWeek,\n      </if>\n      <if test=\"coursetype != null\" >\n        courseType,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n      <if test=\"score != null\" >\n        score,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        #{courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursename != null\" >\n        #{coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"teacherid != null\" >\n        #{teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetime != null\" >\n        #{coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"classroom != null\" >\n        #{classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"courseweek != null\" >\n        #{courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetype != null\" >\n        #{coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"score != null\" >\n        #{score,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.CourseExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from course\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update course\n    <set >\n      <if test=\"record.courseid != null\" >\n        courseID = #{record.courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursename != null\" >\n        courseName = #{record.coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.teacherid != null\" >\n        teacherID = #{record.teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursetime != null\" >\n        courseTime = #{record.coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.classroom != null\" >\n        classRoom = #{record.classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.courseweek != null\" >\n        courseWeek = #{record.courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coursetype != null\" >\n        courseType = #{record.coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.score != null\" >\n        score = #{record.score,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update course\n    set courseID = #{record.courseid,jdbcType=INTEGER},\n      courseName = #{record.coursename,jdbcType=VARCHAR},\n      teacherID = #{record.teacherid,jdbcType=INTEGER},\n      courseTime = #{record.coursetime,jdbcType=VARCHAR},\n      classRoom = #{record.classroom,jdbcType=VARCHAR},\n      courseWeek = #{record.courseweek,jdbcType=INTEGER},\n      courseType = #{record.coursetype,jdbcType=VARCHAR},\n      collegeID = #{record.collegeid,jdbcType=INTEGER},\n      score = #{record.score,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Course\" >\n    update course\n    <set >\n      <if test=\"coursename != null\" >\n        courseName = #{coursename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"teacherid != null\" >\n        teacherID = #{teacherid,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetime != null\" >\n        courseTime = #{coursetime,jdbcType=VARCHAR},\n      </if>\n      <if test=\"classroom != null\" >\n        classRoom = #{classroom,jdbcType=VARCHAR},\n      </if>\n      <if test=\"courseweek != null\" >\n        courseWeek = #{courseweek,jdbcType=INTEGER},\n      </if>\n      <if test=\"coursetype != null\" >\n        courseType = #{coursetype,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n      <if test=\"score != null\" >\n        score = #{score,jdbcType=INTEGER},\n      </if>\n    </set>\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Course\" >\n    update course\n    set courseName = #{coursename,jdbcType=VARCHAR},\n      teacherID = #{teacherid,jdbcType=INTEGER},\n      courseTime = #{coursetime,jdbcType=VARCHAR},\n      classRoom = #{classroom,jdbcType=VARCHAR},\n      courseWeek = #{courseweek,jdbcType=INTEGER},\n      courseType = #{coursetype,jdbcType=VARCHAR},\n      collegeID = #{collegeid,jdbcType=INTEGER},\n      score = #{score,jdbcType=INTEGER}\n    where courseID = #{courseid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/CourseMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.CourseMapperCustom\">\n\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"CourseCustom\">\n        select course.*, college.collegeName\n        from course, college\n        WHERE course.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/RoleMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.RoleMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Role\" >\n    <id column=\"roleID\" property=\"roleid\" jdbcType=\"INTEGER\" />\n    <result column=\"roleName\" property=\"rolename\" jdbcType=\"VARCHAR\" />\n    <result column=\"permissions\" property=\"permissions\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    roleID, roleName, permissions\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.RoleExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from role\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from role\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.RoleExample\" >\n    delete from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Role\" >\n    insert into role (roleID, roleName, permissions\n      )\n    values (#{roleid,jdbcType=INTEGER}, #{rolename,jdbcType=VARCHAR}, #{permissions,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Role\" >\n    insert into role\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"roleid != null\" >\n        roleID,\n      </if>\n      <if test=\"rolename != null\" >\n        roleName,\n      </if>\n      <if test=\"permissions != null\" >\n        permissions,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"roleid != null\" >\n        #{roleid,jdbcType=INTEGER},\n      </if>\n      <if test=\"rolename != null\" >\n        #{rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"permissions != null\" >\n        #{permissions,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.RoleExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from role\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update role\n    <set >\n      <if test=\"record.roleid != null\" >\n        roleID = #{record.roleid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.rolename != null\" >\n        roleName = #{record.rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.permissions != null\" >\n        permissions = #{record.permissions,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update role\n    set roleID = #{record.roleid,jdbcType=INTEGER},\n      roleName = #{record.rolename,jdbcType=VARCHAR},\n      permissions = #{record.permissions,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Role\" >\n    update role\n    <set >\n      <if test=\"rolename != null\" >\n        roleName = #{rolename,jdbcType=VARCHAR},\n      </if>\n      <if test=\"permissions != null\" >\n        permissions = #{permissions,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Role\" >\n    update role\n    set roleName = #{rolename,jdbcType=VARCHAR},\n      permissions = #{permissions,jdbcType=VARCHAR}\n    where roleID = #{roleid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/SelectedcourseMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.SelectedcourseMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Selectedcourse\" >\n    <result column=\"courseID\" property=\"courseid\" jdbcType=\"INTEGER\" />\n    <result column=\"studentID\" property=\"studentid\" jdbcType=\"INTEGER\" />\n    <result column=\"mark\" property=\"mark\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    courseID, studentID, mark\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.SelectedcourseExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.SelectedcourseExample\" >\n    delete from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Selectedcourse\" >\n    insert into selectedcourse (courseID, studentID, mark\n      )\n    values (#{courseid,jdbcType=INTEGER}, #{studentid,jdbcType=INTEGER}, #{mark,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Selectedcourse\" >\n    insert into selectedcourse\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        courseID,\n      </if>\n      <if test=\"studentid != null\" >\n        studentID,\n      </if>\n      <if test=\"mark != null\" >\n        mark,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"courseid != null\" >\n        #{courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"studentid != null\" >\n        #{studentid,jdbcType=INTEGER},\n      </if>\n      <if test=\"mark != null\" >\n        #{mark,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.SelectedcourseExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from selectedcourse\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update selectedcourse\n    <set >\n      <if test=\"record.courseid != null\" >\n        courseID = #{record.courseid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.studentid != null\" >\n        studentID = #{record.studentid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.mark != null\" >\n        mark = #{record.mark,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update selectedcourse\n    set courseID = #{record.courseid,jdbcType=INTEGER},\n      studentID = #{record.studentid,jdbcType=INTEGER},\n      mark = #{record.mark,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/StudentMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.StudentMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Student\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"sex\" property=\"sex\" jdbcType=\"VARCHAR\" />\n    <result column=\"birthYear\" property=\"birthyear\" jdbcType=\"DATE\" />\n    <result column=\"grade\" property=\"grade\" jdbcType=\"DATE\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, sex, birthYear, grade, collegeID\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.StudentExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from student\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from student\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.StudentExample\" >\n    delete from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Student\" >\n    insert into student (userID, userName, sex, \n      birthYear, grade, collegeID\n      )\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, \n      #{birthyear,jdbcType=DATE}, #{grade,jdbcType=DATE}, #{collegeid,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Student\" >\n    insert into student\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"sex != null\" >\n        sex,\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear,\n      </if>\n      <if test=\"grade != null\" >\n        grade,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"grade != null\" >\n        #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.StudentExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from student\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update student\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.sex != null\" >\n        sex = #{record.sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.birthyear != null\" >\n        birthYear = #{record.birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"record.grade != null\" >\n        grade = #{record.grade,jdbcType=DATE},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update student\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      sex = #{record.sex,jdbcType=VARCHAR},\n      birthYear = #{record.birthyear,jdbcType=DATE},\n      grade = #{record.grade,jdbcType=DATE},\n      collegeID = #{record.collegeid,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Student\" >\n    update student\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        sex = #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear = #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"grade != null\" >\n        grade = #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Student\" >\n    update student\n    set userName = #{username,jdbcType=VARCHAR},\n      sex = #{sex,jdbcType=VARCHAR},\n      birthYear = #{birthyear,jdbcType=DATE},\n      grade = #{grade,jdbcType=DATE},\n      collegeID = #{collegeid,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/StudentMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.StudentMapperCustom\">\n\n    <!--一对多查询-->\n    <resultMap id=\"StudentAndSelectCourseResultMap\" type=\"StudentCustom\">\n        <!--配置映射的订单信息\n            property 的值应跟 该vo 的变量名相同\n            column 的值，应与对应的数据库 表字段名相同\n        -->\n        <id column=\"userID\" property=\"userid\"/>\n        <result column=\"userName\" property=\"username\" />\n        <result column=\"sex\" property=\"sex\" />\n        <result column=\"birthYear\" property=\"birthyear\" />\n        <result column=\"grade\" property=\"grade\" />\n        <result column=\"collegeID\" property=\"collegeid\" />\n\n        <!--collection 对关联查询到的多条记录映射到集合对象中\n            property： 将关联查询到的多条信息映射到 vo 哪个属性\n            ofType：映射到集合属性中 pojo 的类型\n        -->\n        <collection property=\"selectedCourseList\" ofType=\"SelectedCourseCustom\">\n            <result column=\"courseID\" property=\"courseid\"/>\n            <result column=\"studentID\" property=\"studentid\"/>\n            <result column=\"mark\" property=\"mark\"/>\n            <!--配置映射的关系的课程信息-->\n            <association property=\"courseCustom\" javaType=\"CourseCustom\">\n                <id column=\"courseID\" property=\"courseid\"/>\n                <result column=\"courseName\" property=\"coursename\"/>\n                <result column=\"teacherID\" property=\"teacherid\"/>\n                <result column=\"courseTime\" property=\"coursetime\"/>\n                <result column=\"classRoom\" property=\"classroom\"/>\n                <result column=\"courseWeek\" property=\"courseweek\"/>\n                <result column=\"courseType\" property=\"coursetype\"/>\n                <result column=\"collegeID\" property=\"collegeid\"/>\n                <result column=\"score\" property=\"score\"/>\n            </association>\n        </collection>\n    </resultMap>\n\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"StudentCustom\">\n        select student.*, college.collegeName\n        from student, college\n        WHERE student.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n\n    <select id=\"findStudentAndSelectCourseListById\" parameterType=\"int\" resultMap=\"StudentAndSelectCourseResultMap\">\n        SELECT\n          student.*,\n          selectedcourse.*,\n          course.*\n        FROM\n          student,\n          selectedcourse,\n          course\n        WHERE\n          student.userID = #{id}\n        AND\n          student.userID = selectedcourse.studentID\n        AND\n          selectedcourse.courseID = course.courseID\n    </select>\n\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/TeacherMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.TeacherMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Teacher\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"sex\" property=\"sex\" jdbcType=\"VARCHAR\" />\n    <result column=\"birthYear\" property=\"birthyear\" jdbcType=\"DATE\" />\n    <result column=\"degree\" property=\"degree\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"grade\" property=\"grade\" jdbcType=\"DATE\" />\n    <result column=\"collegeID\" property=\"collegeid\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, sex, birthYear, degree, title, grade, collegeID\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.TeacherExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from teacher\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from teacher\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.TeacherExample\" >\n    delete from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Teacher\" >\n    insert into teacher (userID, userName, sex, \n      birthYear, degree, title, \n      grade, collegeID)\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, \n      #{birthyear,jdbcType=DATE}, #{degree,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, \n      #{grade,jdbcType=DATE}, #{collegeid,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Teacher\" >\n    insert into teacher\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"sex != null\" >\n        sex,\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear,\n      </if>\n      <if test=\"degree != null\" >\n        degree,\n      </if>\n      <if test=\"title != null\" >\n        title,\n      </if>\n      <if test=\"grade != null\" >\n        grade,\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"degree != null\" >\n        #{degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"grade != null\" >\n        #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        #{collegeid,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.TeacherExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from teacher\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update teacher\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.sex != null\" >\n        sex = #{record.sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.birthyear != null\" >\n        birthYear = #{record.birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"record.degree != null\" >\n        degree = #{record.degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.title != null\" >\n        title = #{record.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.grade != null\" >\n        grade = #{record.grade,jdbcType=DATE},\n      </if>\n      <if test=\"record.collegeid != null\" >\n        collegeID = #{record.collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update teacher\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      sex = #{record.sex,jdbcType=VARCHAR},\n      birthYear = #{record.birthyear,jdbcType=DATE},\n      degree = #{record.degree,jdbcType=VARCHAR},\n      title = #{record.title,jdbcType=VARCHAR},\n      grade = #{record.grade,jdbcType=DATE},\n      collegeID = #{record.collegeid,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Teacher\" >\n    update teacher\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sex != null\" >\n        sex = #{sex,jdbcType=VARCHAR},\n      </if>\n      <if test=\"birthyear != null\" >\n        birthYear = #{birthyear,jdbcType=DATE},\n      </if>\n      <if test=\"degree != null\" >\n        degree = #{degree,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"grade != null\" >\n        grade = #{grade,jdbcType=DATE},\n      </if>\n      <if test=\"collegeid != null\" >\n        collegeID = #{collegeid,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Teacher\" >\n    update teacher\n    set userName = #{username,jdbcType=VARCHAR},\n      sex = #{sex,jdbcType=VARCHAR},\n      birthYear = #{birthyear,jdbcType=DATE},\n      degree = #{degree,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      grade = #{grade,jdbcType=DATE},\n      collegeID = #{collegeid,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/TeacherMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n\n<!--teacherMapper-->\n\n<mapper namespace=\"com.system.mapper.TeacherMapperCustom\">\n    <select id=\"findByPaging\" parameterType=\"PagingVO\" resultType=\"TeacherCustom\">\n        select teacher.*, college.collegeName\n        from teacher, college\n        WHERE teacher.collegeID = college.collegeID\n        limit #{toPageNo}, #{pageSize}\n    </select>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/UserloginMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.system.mapper.UserloginMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.system.po.Userlogin\" >\n    <id column=\"userID\" property=\"userid\" jdbcType=\"INTEGER\" />\n    <result column=\"userName\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"role\" property=\"role\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    userID, userName, password, role\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"com.system.po.UserloginExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.Integer\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from userlogin\n    where userID = #{userid,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\" >\n    delete from userlogin\n    where userID = #{userid,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.system.po.UserloginExample\" >\n    delete from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.system.po.Userlogin\" >\n    insert into userlogin (userID, userName, password, \n      role)\n    values (#{userid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, \n      #{role,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.system.po.Userlogin\" >\n    insert into userlogin\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        userID,\n      </if>\n      <if test=\"username != null\" >\n        userName,\n      </if>\n      <if test=\"password != null\" >\n        password,\n      </if>\n      <if test=\"role != null\" >\n        role,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"role != null\" >\n        #{role,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.system.po.UserloginExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from userlogin\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update userlogin\n    <set >\n      <if test=\"record.userid != null\" >\n        userID = #{record.userid,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.username != null\" >\n        userName = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.password != null\" >\n        password = #{record.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.role != null\" >\n        role = #{record.role,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update userlogin\n    set userID = #{record.userid,jdbcType=INTEGER},\n      userName = #{record.username,jdbcType=VARCHAR},\n      password = #{record.password,jdbcType=VARCHAR},\n      role = #{record.role,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.system.po.Userlogin\" >\n    update userlogin\n    <set >\n      <if test=\"username != null\" >\n        userName = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"role != null\" >\n        role = #{role,jdbcType=INTEGER},\n      </if>\n    </set>\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.system.po.Userlogin\" >\n    update userlogin\n    set userName = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      role = #{role,jdbcType=INTEGER}\n    where userID = #{userid,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "target/classes/com/system/mapper/UserloginMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n\n<mapper namespace=\"com.system.mapper.UserloginMapperCustom\" >\n\n\n    <resultMap id=\"UserloginResultMap\" type=\"UserloginCustom\">\n        <id column=\"userID\" property=\"userid\"></id>\n\n        <result column=\"userName\" property=\"username\" />\n        <result column=\"password\" property=\"password\" />\n        <result column=\"role\" property=\"role\" />\n\n        <!--对象关联查询-->\n        <association property=\"role_ob\" javaType=\"Role\">\n            <id column=\"roleID\" property=\"roleid\"/>\n            <result column=\"roleName\"   property=\"rolename\"/>\n            <result column=\"permissions\" property=\"permissions\"/>\n        </association>\n\n    </resultMap>\n\n    <select id=\"findOne\" parameterType=\"String\" resultMap=\"UserloginResultMap\">\n        SELECT\n          userlogin.*,\n          role.*,\n        FROM\n          userlogin,\n          role\n        WHERE\n          userlogin.role = role.roleID\n    </select>\n\n</mapper>"
  },
  {
    "path": "target/classes/log4j.properties",
    "content": "### direct log messages to stdout ###\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.Target=System.err\nlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout\nlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\n\n### direct messages to file mylog.log ###\nlog4j.appender.file=org.apache.log4j.FileAppender\nlog4j.appender.file.File=c:\\mylog.log\nlog4j.appender.file.layout=org.apache.log4j.PatternLayout\nlog4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\n\n### set log levels - for more verbose logging change 'info' to 'debug' ###\n\nlog4j.rootLogger=info, stdout"
  },
  {
    "path": "target/classes/mybatis/mybatis.cfg.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!DOCTYPE configuration PUBLIC \"-//mybatis.org//DTD Config 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n\n<!--\n    MyBatis 主配置文件\n-->\n<configuration>\n\n\n\n    <!-- 为JAVA PO类起类别名 -->\n    <typeAliases>\n        <!-- 别名方式2，自动扫描，将JAVA类的类名作为类的类别名 -->\n        <package name=\"com.system.po\" />\n    </typeAliases>\n\n\n    <!--<mappers>-->\n        <!--由于使用了spring与mybati整合包进行，mapper扫描，这里不需要配置-->\n    <!--</mappers>-->\n\n\n\n</configuration>\n"
  },
  {
    "path": "target/classes/mysql.properties",
    "content": "jdbc.driver = com.mysql.jdbc.Driver\njdbc.url = jdbc:mysql://localhost:3306/examination_system\njdbc.username = root\njdbc.password = root"
  },
  {
    "path": "target/classes/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--加载数据库配置文件-->\n    <context:property-placeholder location=\"classpath:mysql.properties\" />\n\n    <!--配置数据源 c3p0l连接池-->\n    <bean id=\"dataSource\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\" >\n        <property name=\"driverClass\" value=\"${jdbc.driver}\" />\n        <property name=\"jdbcUrl\" value=\"${jdbc.url}\" />\n        <property name=\"user\" value=\"${jdbc.username}\" />\n        <property name=\"password\" value=\"${jdbc.password}\" />\n    </bean>\n\n    <!--配置SqlSessionFactory-->\n    <bean id=\"sessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n        <!--加载mybatis配置文件-->\n        <property name=\"configLocation\" value=\"classpath:mybatis/mybatis.cfg.xml\"/>\n        <!--数据源-->\n        <property name=\"dataSource\" ref=\"dataSource\"/>\n    </bean>\n\n    <!--Mapper批量扫描，从Mapper包扫描接口，自动创建代理对象，并在Spring容器中自动注册\n    使用 Mybatis与Spring整合包的这个 Mapper 扫描器后， Mybatis 配置文件里的扫描器，就可以取消掉了\n    遵循的规范 不变\n    自动扫描出来的Mapper的bean的id为Mapper类名（首字母小写）\n    -->\n    <bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n        <!--如果需要扫描多个报下的mapper,每个包中间使用半角逗号分开-->\n        <property name=\"basePackage\" value=\"com.system.mapper\" />\n        <property name=\"sqlSessionFactoryBeanName\" value=\"sessionFactory\" />\n    </bean>\n\n\n\n</beans>"
  },
  {
    "path": "target/classes/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n               xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n               xmlns:context=\"http://www.springframework.org/schema/context\"\n               xmlns:aop=\"http://www.springframework.org/schema/aop\"\n               xmlns:tx=\"http://www.springframework.org/schema/tx\"\n               xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n\n    <!--组件扫描，如果想要类被组件扫描，扫描到，并在Spring容器中注册的话\n    必须在类名上添加上注解 @Repository、@Service、@Controller、@Component （这四个注解功能一样，名字不同只是为了区分不同功能）\n    @Component 是通用组件\n    -->\n    <context:component-scan base-package=\"com.system.service.impl\"/>\n    <!--<bean id=\"studentService\" class=\"com.system.service.impl.StudentServiceImpl\"></bean>-->\n    <!--<bean id=\"teacherServiceImpl\" class=\"com.system.service.impl.TeacherServiceImpl\"></bean>-->\n    <!--<bean id=\"courseServiceImpl\" class=\"com.system.service.impl.CourseServiceImpl\"></bean>-->\n    <!--<bean id=\"SelectedCourseServiceImpl\" class=\"com.system.service.impl.SelectedCourseServiceImpl\"></bean>-->\n\n</beans>"
  },
  {
    "path": "target/classes/spring/applicationContext-shiro.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--组件扫描器-->\n    <context:component-scan base-package=\"com.system.realm\" />\n\n    <!-- shiro过滤器bean，id要和web.xml中filter-name一致 -->\n    <bean id=\"shiroFilter\" class=\"org.apache.shiro.spring.web.ShiroFilterFactoryBean\">\n        <property name=\"securityManager\" ref=\"securityManager\" />\n\n        <!-- 要求登录时的链接(登录页面地址)，非必须的属性，默认会自动寻找Web工程根目录下的\"/login.jsp\"页面 -->\n        <!--<property name=\"loginUrl\" value=\"/admin/show\"></property>-->\n\n        <property name=\"filterChainDefinitions\">\n            <value>\n                #这里相当于ini配置文件中的[urls]\n                #url=拦截器[参数]，拦截器\n                # /techer/** = authc, perms[document:read]\n                # 如果用户没有该角色，然后访问该 路径 会报 401错误\n\n                /admin/** = authc, roles[admin]\n                /techer/** = authc, roles[teacher]\n                /student/** = authc, roles[student]\n\n                # 当访问login时，不用进行认证（anon表示匿名）\n                /login = anon\n\n                /logout = logout\n\n                # 配置静态资源可以匿名访问\n                /css/** = anon\n                /js/** = anon\n                /images/** = anon\n                /fonts/** = anon\n\n                # 除了上面额 /login 可以匿名访问，其他路径都需要登录访问\n                # 如果没登录，就访问其他路径会跳转到 /login 登录\n\n                /** = authc\n            </value>\n        </property>\n    </bean>\n\n\n    <!-- 配置securityManager -->\n    <bean id=\"securityManager\" class=\"org.apache.shiro.web.mgt.DefaultWebSecurityManager\">\n        <!--配置自定义Realm-->\n        <!--loginRealm 使用扫描器扫描注册成功了-->\n        <property name=\"realm\" ref=\"loginRealm\" />\n        <!-- <property name=\"sessionMode\" value=\"native\"/> -->\n    </bean>\n    <!-- 生命周期 -->\n    <bean id=\"lifecycleBeanPostProcessor\" class=\"org.apache.shiro.spring.LifecycleBeanPostProcessor\" />\n\n\n    <!-- 启用shiro注解 -->\n    <bean class=\"org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator\" depends-on=\"lifecycleBeanPostProcessor\"/>\n    <bean class=\"org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor\">\n        <property name=\"securityManager\" ref=\"securityManager\"/>\n    </bean>\n\n\n</beans>"
  },
  {
    "path": "target/classes/spring/applicationContext-trsaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:aop=\"http://www.springframework.org/schema/aop\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd\">\n\n    <!--事务控制器\n        对mybatis操作数据库事务控制，spring使用jdbc的事务控制类\n    -->\n    <bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n        <!--配置数据源\n        dataSource在applicationContext-dao.xml中配置了\n        -->\n        <property name=\"dataSource\" ref=\"dataSource\" />\n    </bean>\n\n    <!--通知-->\n    <tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n        <tx:attributes>\n            <!--传播行为-->\n            <tx:method name=\"save*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"delete*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"insert*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"update*\" propagation=\"REQUIRED\"/>\n            <tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\"/>\n            <tx:method name=\"select*\" propagation=\"REQUIRED\"/>\n        </tx:attributes>\n    </tx:advice>\n\n    <!--AOP-->\n    <aop:config>\n        <!--设置切入点-->\n        <aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* com.system.service.impl.*.*(..))\"/>\n    </aop:config>\n\n</beans>"
  },
  {
    "path": "target/classes/spring/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\thttp://www.springframework.org/schema/beans/spring-beans.xsd\n\thttp://www.springframework.org/schema/context\n\thttp://www.springframework.org/schema/context/spring-context.xsd\n\thttp://www.springframework.org/schema/aop\n\thttp://www.springframework.org/schema/aop/spring-aop.xsd\n\thttp://www.springframework.org/schema/tx\n\thttp://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd\">\n\n\t<!--静态资源解析包括 ：js、css、img、.. -->\n\t<!-- <mvc:resources mapping=\"/js/\" location=\"/js/**\" />\n\t<mvc:resources mapping=\"/css/\" location=\"/css/**\" />\n\t<mvc:resources mapping=\"/fonts/\" location=\"/fonts/**\" />\n\t<mvc:resources mapping=\"/images/\" location=\"/images/**\"/>  -->\n\t<!--加载静态资源 -->\n\t<mvc:default-servlet-handler />\n\n\t<!--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<开启注解方式：配置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -->\n\n\t<!--使用annotation-driven 注解驱动，就可以代替 注解映射器 和 注解适配器 的配置 -->\n\t<!--conversion-service 向处理器适配器中注入【自定义的参数绑定组件】。 -->\n\t<!--validator 向处理器适配器，注入 校验器 -->\n\t<mvc:annotation-driven conversion-service=\"conversionService\">\n\t</mvc:annotation-driven>\n\n\t<!--自定义参数绑定组件 -->\n\t<bean id=\"conversionService\"\n\t\tclass=\"org.springframework.format.support.FormattingConversionServiceFactoryBean\">\n\t\t<!-- 转换器 -->\n\t\t<property name=\"converters\">\n\t\t\t<set>\n\t\t\t\t<!-- 日期类型转换 -->\n\t\t\t\t<bean class=\"com.system.controller.converter.CustomDateConverter\" />\n\t\t\t</set>\n\t\t</property>\n\t</bean>\n\n\t<!--组件扫描，可以扫描 controller、Service、... 并注册添加到 spring 容器中 这里扫描 controller，指定controller的包 -->\n\t<context:component-scan base-package=\"com.system.controller\" />\n\n\t<!--全局错误信息处理器 只要实现HandlerExceptionResolver接口就是全局异常处理器 -->\n\t<bean class=\"com.system.exception.CustomExceptionResolver\" />\n\n\t<!--视图解析器 -->\n\t<!-- 需要配置解析jsp的视图解析器 jsp解析，默认使用jstl标签解析 -->\n\t<bean\n\t\tclass=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n\t\t<!--拼接视图地址的前缀和后缀 -->\n\t\t<property name=\"prefix\" value=\"/WEB-INF/jsp/\" />\n\t\t<property name=\"suffix\" value=\".jsp\" />\n\t</bean>\n\n</beans>"
  },
  {
    "path": "target/m2e-wtp/web-resources/META-INF/MANIFEST.MF",
    "content": "Manifest-Version: 1.0\nBuilt-By: Administrator\nBuild-Jdk: 1.8.0_77\nCreated-By: Maven Integration for Eclipse\n\n"
  },
  {
    "path": "target/m2e-wtp/web-resources/META-INF/maven/com.jacey/Examination_System/pom.properties",
    "content": "#Generated by Maven Integration for Eclipse\n#Mon Mar 19 17:05:22 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jacey\nm2e.projectName=Examination_System\nm2e.projectLocation=F\\:\\\\Web\\u9879\\u76EE_\\u5B9E\\u6218+\\u6A21\\u677F\\\\\\u5DF2\\u5B8C\\u6210\\u9879\\u76EE\\\\26ssm\\u5B66\\u6821\\u6559\\u52A1\\u67E5\\u8BE2\\u7CFB\\u7EDF\\\\eclipse\\u6D4B\\u8BD5\\\\eclipse\\\\Examination_System\\\\Examination_System\nartifactId=Examination_System\n"
  },
  {
    "path": "target/m2e-wtp/web-resources/META-INF/maven/com.jacey/Examination_System/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">\n\t<modelVersion>4.0.0</modelVersion>\n\t<groupId>com.jacey</groupId>\n\t<artifactId>Examination_System</artifactId>\n\t<packaging>war</packaging>\n\t<version>1.0-SNAPSHOT</version>\n\t<name>Examination_System Maven Webapp</name>\n\t<url>http://maven.apache.org</url>\n\t<dependencies>\n\n\t\t<dependency>\n\t\t\t<groupId>junit</groupId>\n\t\t\t<artifactId>junit</artifactId>\n\t\t\t<version>4.12</version>\n\t\t\t<scope>test</scope>\n\t\t</dependency>\n\n\t\t<!--servletAPI -->\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>javax.servlet-api</artifactId>\n\t\t\t<version>3.1.0</version>\n\t\t\t<scope>provided</scope>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>jsp-api</artifactId>\n\t\t\t<version>2.0</version>\n\t\t\t<scope>provided</scope>\n\t\t</dependency>\n\n\t\t<!--shiro依赖 -->\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-core</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-web</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.apache.shiro</groupId>\n\t\t\t<artifactId>shiro-spring</artifactId>\n\t\t\t<version>1.2.3</version>\n\t\t</dependency>\n\n\t\t<!--spring -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-context</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--springWEB -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-web</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--springMVC -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-webmvc</artifactId>\n\t\t\t<version>4.3.7.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--spring tx 事务处理 -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-tx</artifactId>\n\t\t\t<version>4.3.8.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--spring aop -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-aop</artifactId>\n\t\t\t<version>4.3.9.RELEASE</version>\n\t\t</dependency>\n\n\t\t<dependency>\n\t\t\t<groupId>org.aspectj</groupId>\n\t\t\t<artifactId>aspectjweaver</artifactId>\n\t\t\t<version>1.8.10</version>\n\t\t</dependency>\n\n\t\t<!--spring-jdbc -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-jdbc</artifactId>\n\t\t\t<version>4.2.5.RELEASE</version>\n\t\t</dependency>\n\n\t\t<!--jstl -->\n\t\t<dependency>\n\t\t\t<groupId>javax.servlet</groupId>\n\t\t\t<artifactId>jstl</artifactId>\n\t\t\t<version>1.2</version>\n\t\t</dependency>\n\n\t\t<!--log4j -->\n\t\t<dependency>\n\t\t\t<groupId>log4j</groupId>\n\t\t\t<artifactId>log4j</artifactId>\n\t\t\t<version>1.2.17</version>\n\t\t</dependency>\n\n\t\t<!--mybatis -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis</groupId>\n\t\t\t<artifactId>mybatis</artifactId>\n\t\t\t<version>3.4.1</version>\n\t\t</dependency>\n\n\t\t<!--mybatis逆向工程 -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis.generator</groupId>\n\t\t\t<artifactId>mybatis-generator-core</artifactId>\n\t\t\t<version>1.3.5</version>\n\t\t</dependency>\n\n\t\t<!--mybatis spring整合包 -->\n\t\t<dependency>\n\t\t\t<groupId>org.mybatis</groupId>\n\t\t\t<artifactId>mybatis-spring</artifactId>\n\t\t\t<version>1.3.0</version>\n\t\t</dependency>\n\n\t\t<!--hibernate 数据校验器包 -->\n\t\t<dependency>\n\t\t\t<groupId>org.hibernate</groupId>\n\t\t\t<artifactId>hibernate-validator</artifactId>\n\t\t\t<version>5.4.1.Final</version>\n\t\t</dependency>\n\n\t\t<!--c3p0链接池 -->\n\t\t<dependency>\n\t\t\t<groupId>com.mchange</groupId>\n\t\t\t<artifactId>c3p0</artifactId>\n\t\t\t<version>0.9.5.2</version>\n\t\t</dependency>\n\n\t\t<!--Mysql数据库驱动 -->\n\t\t<dependency>\n\t\t\t<groupId>mysql</groupId>\n\t\t\t<artifactId>mysql-connector-java</artifactId>\n\t\t\t<version>5.1.41</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.jetbrains</groupId>\n\t\t\t<artifactId>annotations-java5</artifactId>\n\t\t\t<version>RELEASE</version>\n\t\t</dependency>\n\n\t</dependencies>\n\n\n\t<build>\n\t\t<finalName>Examination_System</finalName>\n\t\t<plugins>\n\t\t\t<plugin>\n\t\t\t\t<groupId>org.apache.maven.plugins</groupId>\n\t\t\t\t<artifactId>maven-compiler-plugin</artifactId>\n\t\t\t\t<version>3.1</version>\n\t\t\t\t<configuration>\n\t\t\t\t\t<source>1.8</source>\n\t\t\t\t\t<target>1.8</target>\n\t\t\t\t</configuration>\n\t\t\t</plugin>\n\t\t</plugins>\n\t</build>\n\n\n\n</project>\n"
  }
]