From 7731aad38980bfec73c3684e0f6d8a03a7d03bcf Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Thu, 11 Jun 2020 06:53:23 +0530 Subject: [PATCH 01/24] created hello world --- pom.xml | 4 ++-- .../banking/controllers/HomeController.java | 19 +++++++++++++++++++ src/main/resources/templates/index.html | 10 ++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/main/java/xyz/subho/retail/banking/controllers/HomeController.java create mode 100644 src/main/resources/templates/index.html diff --git a/pom.xml b/pom.xml index 9a528f3..b93faeb 100644 --- a/pom.xml +++ b/pom.xml @@ -23,11 +23,11 @@ org.springframework.boot spring-boot-starter-jdbc - --> + org.springframework.boot spring-boot-starter-security - + --> org.springframework.boot spring-boot-starter-thymeleaf diff --git a/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java b/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java new file mode 100644 index 0000000..4087d2d --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java @@ -0,0 +1,19 @@ +package xyz.subho.retail.banking.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class HomeController { + + @RequestMapping("/") + public String home() { + return "redirect:/index"; + } + + @RequestMapping("/index") + public String index() { + return "index"; + } + +} diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 0000000..bf4b385 --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,10 @@ + + + + +Index Page + + +

Hello World

+ + \ No newline at end of file From e6234f2a96cbcf2aa79515c0fa6419877411e505 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Fri, 12 Jun 2020 16:06:20 +0530 Subject: [PATCH 02/24] WIP: service module completed --- .../retail/banking/security/Authority.java | 17 +++++ .../subho/retail/banking/security/Role.java | 51 +++++++++++++++ .../retail/banking/security/UserRole.java | 62 +++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 src/main/java/xyz/subho/retail/banking/security/Authority.java create mode 100644 src/main/java/xyz/subho/retail/banking/security/Role.java create mode 100644 src/main/java/xyz/subho/retail/banking/security/UserRole.java diff --git a/src/main/java/xyz/subho/retail/banking/security/Authority.java b/src/main/java/xyz/subho/retail/banking/security/Authority.java new file mode 100644 index 0000000..ebe62fa --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/Authority.java @@ -0,0 +1,17 @@ +package xyz.subho.retail.banking.security; + +import org.springframework.security.core.GrantedAuthority; + +public class Authority implements GrantedAuthority { + + private final String authority; + + public Authority(String authority) { + this.authority = authority; + } + + @Override + public String getAuthority() { + return authority; + } +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/security/Role.java b/src/main/java/xyz/subho/retail/banking/security/Role.java new file mode 100644 index 0000000..daadfea --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/Role.java @@ -0,0 +1,51 @@ +package xyz.subho.retail.banking.security; + +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +@Entity +public class Role { + + @Id + private int roleId; + + private String name; + + @OneToMany(mappedBy = "role", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Set userRoles = new HashSet<>(); + + public Role() { + + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getUserRoles() { + return userRoles; + } + + public void setUserRoles(Set userRoles) { + this.userRoles = userRoles; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/security/UserRole.java b/src/main/java/xyz/subho/retail/banking/security/UserRole.java new file mode 100644 index 0000000..35b4eea --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/UserRole.java @@ -0,0 +1,62 @@ +package xyz.subho.retail.banking.security; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import xyz.subho.retail.banking.entity.User; + +@Entity +@Table(name = "user_role") +public class UserRole { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long userRoleId; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "role_id") + private Role role; + + public UserRole(User user, Role role) { + this.user = user; + this.role = role; + } + + public UserRole() { + } + + public long getUserRoleId() { + return userRoleId; + } + + public void setUserRoleId(long userRoleId) { + this.userRoleId = userRoleId; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + +} From d8e1c27fcc1b704274613f1ac7bd50d0b5145a70 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Fri, 12 Jun 2020 16:06:20 +0530 Subject: [PATCH 03/24] WIP: security module completed --- .../retail/banking/security/Authority.java | 17 +++++ .../subho/retail/banking/security/Role.java | 51 +++++++++++++++ .../retail/banking/security/UserRole.java | 62 +++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 src/main/java/xyz/subho/retail/banking/security/Authority.java create mode 100644 src/main/java/xyz/subho/retail/banking/security/Role.java create mode 100644 src/main/java/xyz/subho/retail/banking/security/UserRole.java diff --git a/src/main/java/xyz/subho/retail/banking/security/Authority.java b/src/main/java/xyz/subho/retail/banking/security/Authority.java new file mode 100644 index 0000000..ebe62fa --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/Authority.java @@ -0,0 +1,17 @@ +package xyz.subho.retail.banking.security; + +import org.springframework.security.core.GrantedAuthority; + +public class Authority implements GrantedAuthority { + + private final String authority; + + public Authority(String authority) { + this.authority = authority; + } + + @Override + public String getAuthority() { + return authority; + } +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/security/Role.java b/src/main/java/xyz/subho/retail/banking/security/Role.java new file mode 100644 index 0000000..daadfea --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/Role.java @@ -0,0 +1,51 @@ +package xyz.subho.retail.banking.security; + +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +@Entity +public class Role { + + @Id + private int roleId; + + private String name; + + @OneToMany(mappedBy = "role", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private Set userRoles = new HashSet<>(); + + public Role() { + + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getUserRoles() { + return userRoles; + } + + public void setUserRoles(Set userRoles) { + this.userRoles = userRoles; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/security/UserRole.java b/src/main/java/xyz/subho/retail/banking/security/UserRole.java new file mode 100644 index 0000000..35b4eea --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/security/UserRole.java @@ -0,0 +1,62 @@ +package xyz.subho.retail.banking.security; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import xyz.subho.retail.banking.entity.User; + +@Entity +@Table(name = "user_role") +public class UserRole { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long userRoleId; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "user_id") + private User user; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "role_id") + private Role role; + + public UserRole(User user, Role role) { + this.user = user; + this.role = role; + } + + public UserRole() { + } + + public long getUserRoleId() { + return userRoleId; + } + + public void setUserRoleId(long userRoleId) { + this.userRoleId = userRoleId; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + +} From b833b823a31608cb8a89be84019b73580d9f3f19 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Fri, 12 Jun 2020 16:12:53 +0530 Subject: [PATCH 04/24] WIP: entities completed --- pom.xml | 40 +++- .../banking/controller/HomeController.java | 32 +++ .../banking/controllers/HomeController.java | 19 -- .../retail/banking/entity/CurrentAccount.java | 61 ++++++ .../banking/entity/CurrentTransaction.java | 107 ++++++++++ .../retail/banking/entity/Recipient.java | 85 ++++++++ .../retail/banking/entity/SavingsAccount.java | 61 ++++++ .../banking/entity/SavingsTransaction.java | 107 ++++++++++ .../xyz/subho/retail/banking/entity/User.java | 190 ++++++++++++++++++ .../retail/banking/service/UserService.java | 35 ++++ src/main/resources/application.properties | 33 +++ 11 files changed, 741 insertions(+), 29 deletions(-) create mode 100644 src/main/java/xyz/subho/retail/banking/controller/HomeController.java delete mode 100644 src/main/java/xyz/subho/retail/banking/controllers/HomeController.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/Recipient.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java create mode 100644 src/main/java/xyz/subho/retail/banking/entity/User.java create mode 100644 src/main/java/xyz/subho/retail/banking/service/UserService.java diff --git a/pom.xml b/pom.xml index b93faeb..c8d5f11 100644 --- a/pom.xml +++ b/pom.xml @@ -10,28 +10,44 @@ xyz.subho retail.banking - 0.0.1-SNAPSHOT + 0.0.1 retail.banking Retail banking project using MVC for TCS Case Study using Agile Methodologies + + + + github + GitHub Subhrodip Apache Maven Packages + https://maven.pkg.github.com/ohbus/Retail-Banking + + 11 - + + + org.springframework.boot + spring-boot-starter-jdbc + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.springframework.boot + spring-boot-starter-security + + org.springframework.boot spring-boot-starter-thymeleaf + org.springframework.boot spring-boot-starter-web @@ -43,11 +59,13 @@ runtime true + mysql mysql-connector-java runtime + org.springframework.boot spring-boot-starter-test @@ -59,11 +77,13 @@ + org.springframework.security spring-security-test test + diff --git a/src/main/java/xyz/subho/retail/banking/controller/HomeController.java b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java new file mode 100644 index 0000000..6842d79 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java @@ -0,0 +1,32 @@ +package xyz.subho.retail.banking.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import xyz.subho.retail.banking.entity.User; + +@Controller +public class HomeController { + + @RequestMapping("/") + public String home() { + return "redirect:/index"; + } + + @RequestMapping("/index") + public String index() { + return "index"; + } + + @GetMapping("/signup") + public String signup(Model model) { + User user = new User(); + + model.addAttribute("user", user); + + return "signup"; + } + +} diff --git a/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java b/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java deleted file mode 100644 index 4087d2d..0000000 --- a/src/main/java/xyz/subho/retail/banking/controllers/HomeController.java +++ /dev/null @@ -1,19 +0,0 @@ -package xyz.subho.retail.banking.controllers; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -@Controller -public class HomeController { - - @RequestMapping("/") - public String home() { - return "redirect:/index"; - } - - @RequestMapping("/index") - public String index() { - return "index"; - } - -} diff --git a/src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java b/src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java new file mode 100644 index 0000000..0cdafbb --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java @@ -0,0 +1,61 @@ +package xyz.subho.retail.banking.entity; + +import java.math.BigDecimal; +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +@Entity +public class CurrentAccount { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private int accountNumber; + private BigDecimal accountBalance; + + @OneToMany(mappedBy = "currentAccount", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JsonIgnore + private List currentTransactionList; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public int getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(int accountNumber) { + this.accountNumber = accountNumber; + } + + public BigDecimal getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(BigDecimal accountBalance) { + this.accountBalance = accountBalance; + } + + public List getCurrentTransactionList() { + return currentTransactionList; + } + + public void setPrimaryTransactionList(List currentTransactionList) { + this.currentTransactionList = currentTransactionList; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java b/src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java new file mode 100644 index 0000000..a961c0b --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java @@ -0,0 +1,107 @@ +package xyz.subho.retail.banking.entity; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@Entity +public class CurrentTransaction { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private Date date; + private String description; + private String type; + private String status; + private double amount; + private BigDecimal availableBalance; + @ManyToOne + @JoinColumn(name = "primary_account_id") + private CurrentAccount currentAccount; + + + public CurrentTransaction() { + } + + public CurrentTransaction(Date date, String description, String type, String status, double amount, BigDecimal availableBalance, CurrentAccount currentAccount) { + this.date = date; + this.description = description; + this.type = type; + this.status = status; + this.amount = amount; + this.availableBalance = availableBalance; + this.currentAccount = currentAccount; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public double getAmount() { + return amount; + } + + public void setAmount(double amount) { + this.amount = amount; + } + + public BigDecimal getAvailableBalance() { + return availableBalance; + } + + public void setAvailableBalance(BigDecimal availableBalance) { + this.availableBalance = availableBalance; + } + + public CurrentAccount getCurrentAccount() { + return currentAccount; + } + + public void setCurrentAccount(CurrentAccount currentAccount) { + this.currentAccount = currentAccount; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/entity/Recipient.java b/src/main/java/xyz/subho/retail/banking/entity/Recipient.java new file mode 100644 index 0000000..a60f4eb --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/Recipient.java @@ -0,0 +1,85 @@ +package xyz.subho.retail.banking.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +@Entity +public class Recipient { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + private String email; + private String phone; + private String accountNumber; + private String description; + + @ManyToOne + @JoinColumn(name = "user_id") + @JsonIgnore + private User user; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + +} diff --git a/src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java b/src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java new file mode 100644 index 0000000..1a3ac65 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java @@ -0,0 +1,61 @@ +package xyz.subho.retail.banking.entity; + +import java.math.BigDecimal; +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +@Entity +public class SavingsAccount { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private int accountNumber; + private BigDecimal accountBalance; + + @OneToMany(mappedBy = "savingsAccount", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JsonIgnore + private List savingsTransactionList; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public int getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(int accountNumber) { + this.accountNumber = accountNumber; + } + + public BigDecimal getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(BigDecimal accountBalance) { + this.accountBalance = accountBalance; + } + + public List getSavingsTransactionList() { + return savingsTransactionList; + } + + public void setSavingsTransactionList(List savingsTransactionList) { + this.savingsTransactionList = savingsTransactionList; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java b/src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java new file mode 100644 index 0000000..c5c8d88 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java @@ -0,0 +1,107 @@ +package xyz.subho.retail.banking.entity; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@Entity +public class SavingsTransaction { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private Date date; + private String description; + private String type; + private String status; + private double amount; + private BigDecimal availableBalance; + + @ManyToOne + @JoinColumn(name = "savings_account_id") + private SavingsAccount savingsAccount; + + public SavingsTransaction() { + } + + public SavingsTransaction(Date date, String description, String type, String status, double amount, BigDecimal availableBalance, SavingsAccount savingsAccount) { + this.date = date; + this.description = description; + this.type = type; + this.status = status; + this.amount = amount; + this.availableBalance = availableBalance; + this.savingsAccount = savingsAccount; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public double getAmount() { + return amount; + } + + public void setAmount(double amount) { + this.amount = amount; + } + + public BigDecimal getAvailableBalance() { + return availableBalance; + } + + public void setAvailableBalance(BigDecimal availableBalance) { + this.availableBalance = availableBalance; + } + + public SavingsAccount getSavingsAccount() { + return savingsAccount; + } + + public void setSavingsAccount(SavingsAccount savingsAccount) { + this.savingsAccount = savingsAccount; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/entity/User.java b/src/main/java/xyz/subho/retail/banking/entity/User.java new file mode 100644 index 0000000..1886f49 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/entity/User.java @@ -0,0 +1,190 @@ +package xyz.subho.retail.banking.entity; + +import xyz.subho.retail.banking.security.Authority; +import xyz.subho.retail.banking.security.UserRole; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +@Entity +public class User implements UserDetails { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "userId", nullable = false, updatable = false) + private Long userId; + private String username; + private String password; + private String firstName; + private String lastName; + + @Column(name = "email", nullable = false, unique = true) + private String email; + private String phone; + + private boolean enabled = true; + + @OneToOne + private CurrentAccount currentAccount; + + @OneToOne + private SavingsAccount savingsAccount; + + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private List recipientList; + + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JsonIgnore + private Set userRoles = new HashSet<>(); + + public Set getUserRoles() { + return userRoles; + } + + public void setUserRoles(Set userRoles) { + this.userRoles = userRoles; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getRecipientList() { + return recipientList; + } + + public void setRecipientList(List recipientList) { + this.recipientList = recipientList; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public CurrentAccount getCurrentAccount() { + return currentAccount; + } + + public void setPrimaryAccount(CurrentAccount currentAccount) { + this.currentAccount = currentAccount; + } + + public SavingsAccount getSavingsAccount() { + return savingsAccount; + } + + public void setSavingsAccount(SavingsAccount savingsAccount) { + this.savingsAccount = savingsAccount; + } + + @Override + public String toString() { + return "User{" + + "userId=" + userId + + ", username='" + username + '\'' + + ", password='" + password + '\'' + + ", firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", email='" + email + '\'' + + ", phone='" + phone + '\'' + + ", recipientList=" + recipientList + + ", userRoles=" + userRoles + + '}'; + } + + @Override + public Collection getAuthorities() { + Set authorities = new HashSet<>(); + userRoles.forEach(ur -> authorities.add(new Authority(ur.getRole().getName()))); + return authorities; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/UserService.java b/src/main/java/xyz/subho/retail/banking/service/UserService.java new file mode 100644 index 0000000..00a6244 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/UserService.java @@ -0,0 +1,35 @@ +package xyz.subho.retail.banking.service; + +import java.util.List; +import java.util.Set; + +import org.springframework.stereotype.Service; + +import xyz.subho.retail.banking.entity.User; + +@Service("userDetailsService") +public interface UserService { + + User findByUsername(String username); + + User findByEmail(String email); + + boolean checkUserExists(String username, String email); + + boolean checkUsernameExists(String username); + + boolean checkEmailExists(String email); + + void save(User user); + + User createUser(User user, Set userRoles); + + User saveUser(User user); + + List findUserList(); + + void enableUser(String username); + + void disableUser(String username); + +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..b3029d3 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,34 @@ +# =============================== +# = DATA SOURCE +# =============================== +# Set here configurations for the database connection +spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking2?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=true + +# Username and secret +spring.datasource.username=subho +spring.datasource.password=subho + +# Keep the connection alive if idle for a long time (needed in production) +spring.datasource.testWhileIdle=true +spring.datasource.validationQuery=SELECT 1 + + +# =============================== +# = JPA / HIBERNATE +# =============================== + +# Use spring.jpa.properties.* for Hibernate native properties (the prefix is +# stripped before adding them to the entity manager). +# Show or not log for each sql query +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true + +# Hibernate ddl auto (create, create-drop, update): with "update" the database +# schema will be automatically updated accordingly to java entities found in +# the project +spring.jpa.hibernate.ddl-auto=validate + +# Allows Hibernate to generate SQL optimized for a particular DBMS +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect +spring.jpa.properties.hibernate.id.new_generator_mappings=false From 77cd70bc1ff1a06b8c89e3233f54599cb5875994 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Fri, 12 Jun 2020 21:06:29 +0530 Subject: [PATCH 05/24] WIP: Error in security Configuration --- .../retail/banking/config/RequestFilter.java | 54 ++++++++++++++++ .../retail/banking/config/SecurityConfig.java | 63 +++++++++++++++++++ .../banking/controller/HomeController.java | 2 +- .../{entity => model}/CurrentAccount.java | 2 +- .../{entity => model}/CurrentTransaction.java | 2 +- .../banking/{entity => model}/Recipient.java | 2 +- .../{entity => model}/SavingsAccount.java | 2 +- .../{entity => model}/SavingsTransaction.java | 2 +- .../banking/{entity => model}/User.java | 11 +++- .../retail/banking/security/UserRole.java | 2 +- .../banking/service/TransactionService.java | 10 +++ .../retail/banking/service/UserService.java | 2 +- .../serviceImpl/AccountServiceImpl.java | 8 +++ .../serviceImpl/TransactionServiceImpl.java | 5 ++ .../serviceImpl/UserSecurityServiceImpl.java | 5 ++ .../service/serviceImpl/UserServiceImpl.java | 5 ++ src/main/resources/application.properties | 2 +- 17 files changed, 169 insertions(+), 10 deletions(-) create mode 100644 src/main/java/xyz/subho/retail/banking/config/RequestFilter.java create mode 100644 src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java rename src/main/java/xyz/subho/retail/banking/{entity => model}/CurrentAccount.java (97%) rename src/main/java/xyz/subho/retail/banking/{entity => model}/CurrentTransaction.java (98%) rename src/main/java/xyz/subho/retail/banking/{entity => model}/Recipient.java (97%) rename src/main/java/xyz/subho/retail/banking/{entity => model}/SavingsAccount.java (97%) rename src/main/java/xyz/subho/retail/banking/{entity => model}/SavingsTransaction.java (98%) rename src/main/java/xyz/subho/retail/banking/{entity => model}/User.java (95%) create mode 100644 src/main/java/xyz/subho/retail/banking/service/TransactionService.java create mode 100644 src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java create mode 100644 src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java create mode 100644 src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java create mode 100644 src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java diff --git a/src/main/java/xyz/subho/retail/banking/config/RequestFilter.java b/src/main/java/xyz/subho/retail/banking/config/RequestFilter.java new file mode 100644 index 0000000..8805b3d --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/config/RequestFilter.java @@ -0,0 +1,54 @@ +package xyz.subho.retail.banking.config; + +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Component +@Order(Ordered.HIGHEST_PRECEDENCE) +public class RequestFilter implements Filter { + + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) { + HttpServletResponse response = (HttpServletResponse) res; + HttpServletRequest request = (HttpServletRequest) req; + + response.setHeader("Access-Control-Allow-Origin", "http://localhost:4200"); + response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); + response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Credentials", "true"); + + if (!(request.getMethod().equalsIgnoreCase("OPTIONS"))) { + try { + chain.doFilter(req, res); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + System.out.println("Pre-flight"); + response.setHeader("Access-Control-Allow-Methods", "POST,GET,DELETE"); + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Headers", "authorization, content-type," + + "access-control-request-headers,access-control-request-method,accept,origin,authorization,x-requested-with"); + response.setStatus(HttpServletResponse.SC_OK); + } + + } + + public void init(FilterConfig filterConfig) { + //System.out.println("Filter init Method Executed"); + } + + public void destroy() { + //System.out.println("Filter destroy Method Executed"); + } + +} diff --git a/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java b/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java new file mode 100644 index 0000000..1b45048 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java @@ -0,0 +1,63 @@ +package xyz.subho.retail.banking.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.security.core.userdetails.UserDetailsService; + +import java.security.SecureRandom; + +@Configuration +@EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) +public class SecurityConfig extends WebSecurityConfigurerAdapter { + + /* + * @Autowired private Environment env; + */ + + private static final String SALT = "salt"; // Salt should be protected carefully + + private static final String[] PUBLIC_MATCHERS = { "/webjars/**", "/css/**", "/js/**", "/images/**", "/", + "/about/**", "/contact/**", "/error/**/*", "/console/**", "/signup" }; + + /* + * @Autowired private UserSecurityServiceImpl userSecurityService; + */ + + @Bean + public BCryptPasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(12, new SecureRandom(SALT.getBytes())); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests() + // .antMatchers("/**") + .antMatchers(PUBLIC_MATCHERS).permitAll().anyRequest().authenticated(); + + http.csrf().disable().cors().disable().formLogin().failureUrl("/index?error").defaultSuccessUrl("/userFront") + .loginPage("/index").permitAll().and().logout() + .logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/index?logout") + .deleteCookies("remember-me").permitAll().and().rememberMe(); + } + + /* + * @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) + * throws Exception { + * + * auth.inMemoryAuthentication().withUser("user").password("password").roles( + * "USER"); //This is in-memory authentication + * + * auth.userDetailsService(userSecurityService).passwordEncoder(passwordEncoder( + * )); } + */ + +} diff --git a/src/main/java/xyz/subho/retail/banking/controller/HomeController.java b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java index 6842d79..0abeaa1 100644 --- a/src/main/java/xyz/subho/retail/banking/controller/HomeController.java +++ b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import xyz.subho.retail.banking.entity.User; +import xyz.subho.retail.banking.model.User; @Controller public class HomeController { diff --git a/src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java b/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java similarity index 97% rename from src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java rename to src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java index 0cdafbb..8210ebc 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/CurrentAccount.java +++ b/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java b/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java similarity index 98% rename from src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java rename to src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java index a961c0b..9916251 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/CurrentTransaction.java +++ b/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/xyz/subho/retail/banking/entity/Recipient.java b/src/main/java/xyz/subho/retail/banking/model/Recipient.java similarity index 97% rename from src/main/java/xyz/subho/retail/banking/entity/Recipient.java rename to src/main/java/xyz/subho/retail/banking/model/Recipient.java index a60f4eb..74ba02d 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/Recipient.java +++ b/src/main/java/xyz/subho/retail/banking/model/Recipient.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; diff --git a/src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java b/src/main/java/xyz/subho/retail/banking/model/SavingsAccount.java similarity index 97% rename from src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java rename to src/main/java/xyz/subho/retail/banking/model/SavingsAccount.java index 1a3ac65..3bf6ce6 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/SavingsAccount.java +++ b/src/main/java/xyz/subho/retail/banking/model/SavingsAccount.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java b/src/main/java/xyz/subho/retail/banking/model/SavingsTransaction.java similarity index 98% rename from src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java rename to src/main/java/xyz/subho/retail/banking/model/SavingsTransaction.java index c5c8d88..cc74d9c 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/SavingsTransaction.java +++ b/src/main/java/xyz/subho/retail/banking/model/SavingsTransaction.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import java.math.BigDecimal; import java.util.Date; diff --git a/src/main/java/xyz/subho/retail/banking/entity/User.java b/src/main/java/xyz/subho/retail/banking/model/User.java similarity index 95% rename from src/main/java/xyz/subho/retail/banking/entity/User.java rename to src/main/java/xyz/subho/retail/banking/model/User.java index 1886f49..4bda648 100644 --- a/src/main/java/xyz/subho/retail/banking/entity/User.java +++ b/src/main/java/xyz/subho/retail/banking/model/User.java @@ -1,4 +1,4 @@ -package xyz.subho.retail.banking.entity; +package xyz.subho.retail.banking.model; import xyz.subho.retail.banking.security.Authority; import xyz.subho.retail.banking.security.UserRole; @@ -33,6 +33,7 @@ public class User implements UserDetails { private String password; private String firstName; private String lastName; + private String aadhaarId; @Column(name = "email", nullable = false, unique = true) private String email; @@ -187,4 +188,12 @@ public void setEnabled(boolean enabled) { this.enabled = enabled; } + public String getAadhaarId() { + return aadhaarId; + } + + public void setAadhaarId(String aadhaarId) { + this.aadhaarId = aadhaarId; + } + } \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/security/UserRole.java b/src/main/java/xyz/subho/retail/banking/security/UserRole.java index 35b4eea..d53caa4 100644 --- a/src/main/java/xyz/subho/retail/banking/security/UserRole.java +++ b/src/main/java/xyz/subho/retail/banking/security/UserRole.java @@ -9,7 +9,7 @@ import javax.persistence.ManyToOne; import javax.persistence.Table; -import xyz.subho.retail.banking.entity.User; +import xyz.subho.retail.banking.model.User; @Entity @Table(name = "user_role") diff --git a/src/main/java/xyz/subho/retail/banking/service/TransactionService.java b/src/main/java/xyz/subho/retail/banking/service/TransactionService.java new file mode 100644 index 0000000..bff6eac --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/TransactionService.java @@ -0,0 +1,10 @@ +package xyz.subho.retail.banking.service; + +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.Recipient; +import xyz.subho.retail.banking.model.SavingsAccount; + +public interface TransactionService { + + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/UserService.java b/src/main/java/xyz/subho/retail/banking/service/UserService.java index 00a6244..2360842 100644 --- a/src/main/java/xyz/subho/retail/banking/service/UserService.java +++ b/src/main/java/xyz/subho/retail/banking/service/UserService.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Service; -import xyz.subho.retail.banking.entity.User; +import xyz.subho.retail.banking.model.User; @Service("userDetailsService") public interface UserService { diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java new file mode 100644 index 0000000..fbeafcb --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java @@ -0,0 +1,8 @@ +package xyz.subho.retail.banking.service.serviceImpl; + +import org.springframework.stereotype.Service; + +@Service +public class AccountServiceImpl { + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java new file mode 100644 index 0000000..d85195e --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java @@ -0,0 +1,5 @@ +package xyz.subho.retail.banking.service.serviceImpl; + +public class TransactionServiceImpl { + +} diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java new file mode 100644 index 0000000..0cda129 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java @@ -0,0 +1,5 @@ +package xyz.subho.retail.banking.service.serviceImpl; + +public class UserSecurityServiceImpl { + +} diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java new file mode 100644 index 0000000..e88e314 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java @@ -0,0 +1,5 @@ +package xyz.subho.retail.banking.service.serviceImpl; + +public class UserServiceImpl { + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b3029d3..5ea5890 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ # =============================== # Set here configurations for the database connection -spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking2?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=true +spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking2?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=false # Username and secret spring.datasource.username=subho From 7f88f307cb10b7cffa9e1060364663c407cc1a71 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Sat, 13 Jun 2020 15:19:36 +0530 Subject: [PATCH 06/24] WIP: DAO methods completed --- .../retail/banking/dao/CurrentAccountDao.java | 11 +++++++++++ .../banking/dao/CurrentTransactionDao.java | 13 +++++++++++++ .../subho/retail/banking/dao/RecipientDao.java | 16 ++++++++++++++++ .../xyz/subho/retail/banking/dao/RoleDao.java | 11 +++++++++++ .../retail/banking/dao/SavingsAccountDao.java | 11 +++++++++++ .../banking/dao/SavingsTransactionDao.java | 13 +++++++++++++ .../xyz/subho/retail/banking/dao/UserDao.java | 17 +++++++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 src/main/java/xyz/subho/retail/banking/dao/CurrentAccountDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/CurrentTransactionDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/RecipientDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/RoleDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/SavingsAccountDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/SavingsTransactionDao.java create mode 100644 src/main/java/xyz/subho/retail/banking/dao/UserDao.java diff --git a/src/main/java/xyz/subho/retail/banking/dao/CurrentAccountDao.java b/src/main/java/xyz/subho/retail/banking/dao/CurrentAccountDao.java new file mode 100644 index 0000000..130884b --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/CurrentAccountDao.java @@ -0,0 +1,11 @@ +package xyz.subho.retail.banking.dao; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.CurrentAccount; + +public interface CurrentAccountDao extends CrudRepository { + + CurrentAccount findByAccountNumber(int accountNumber); + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/dao/CurrentTransactionDao.java b/src/main/java/xyz/subho/retail/banking/dao/CurrentTransactionDao.java new file mode 100644 index 0000000..cc46346 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/CurrentTransactionDao.java @@ -0,0 +1,13 @@ +package xyz.subho.retail.banking.dao; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.CurrentTransaction; + +public interface CurrentTransactionDao extends CrudRepository { + + List findAll(); + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/dao/RecipientDao.java b/src/main/java/xyz/subho/retail/banking/dao/RecipientDao.java new file mode 100644 index 0000000..a89c2e4 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/RecipientDao.java @@ -0,0 +1,16 @@ +package xyz.subho.retail.banking.dao; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.Recipient; + +public interface RecipientDao extends CrudRepository { + + List findAll(); + + Recipient findByName(String recipientName); + + void deleteByName(String recipientName); +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/dao/RoleDao.java b/src/main/java/xyz/subho/retail/banking/dao/RoleDao.java new file mode 100644 index 0000000..ab43e04 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/RoleDao.java @@ -0,0 +1,11 @@ +package xyz.subho.retail.banking.dao; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.security.Role; + +public interface RoleDao extends CrudRepository { + + Role findByName(String name); + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/dao/SavingsAccountDao.java b/src/main/java/xyz/subho/retail/banking/dao/SavingsAccountDao.java new file mode 100644 index 0000000..74fe6c8 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/SavingsAccountDao.java @@ -0,0 +1,11 @@ +package xyz.subho.retail.banking.dao; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.SavingsAccount; + +public interface SavingsAccountDao extends CrudRepository { + + SavingsAccount findByAccountNumber(int accountNumber); + +} diff --git a/src/main/java/xyz/subho/retail/banking/dao/SavingsTransactionDao.java b/src/main/java/xyz/subho/retail/banking/dao/SavingsTransactionDao.java new file mode 100644 index 0000000..546854d --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/SavingsTransactionDao.java @@ -0,0 +1,13 @@ +package xyz.subho.retail.banking.dao; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.SavingsTransaction; + +public interface SavingsTransactionDao extends CrudRepository { + + List findAll(); + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/dao/UserDao.java b/src/main/java/xyz/subho/retail/banking/dao/UserDao.java new file mode 100644 index 0000000..835e057 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/dao/UserDao.java @@ -0,0 +1,17 @@ +package xyz.subho.retail.banking.dao; + +import java.util.List; + +import org.springframework.data.repository.CrudRepository; + +import xyz.subho.retail.banking.model.User; + +public interface UserDao extends CrudRepository { + + User findByUsername(String username); + + User findByEmail(String email); + + List findAll(); + +} \ No newline at end of file From 9e8e7c58ee2e8d4b6a3a9eaaa7c0c41a9efa4a29 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Sat, 13 Jun 2020 16:30:20 +0530 Subject: [PATCH 07/24] WIP: Backend Resources First Draft controllers and thymeleaf resources left to import --- pom.xml | 2 +- .../xyz/subho/retail/banking/Application.java | 2 + .../retail/banking/config/SecurityConfig.java | 33 ++-- .../retail/banking/model/CurrentAccount.java | 2 +- .../banking/model/CurrentTransaction.java | 2 +- .../xyz/subho/retail/banking/model/User.java | 8 +- .../retail/banking/security/Authority.java | 4 + .../banking/service/AccountService.java | 18 ++ .../banking/service/TransactionService.java | 28 +++ .../retail/banking/service/UserService.java | 3 +- .../serviceImpl/AccountServiceImpl.java | 119 +++++++++++- .../serviceImpl/TransactionServiceImpl.java | 173 +++++++++++++++++- .../serviceImpl/UserSecurityServiceImpl.java | 35 +++- .../service/serviceImpl/UserServiceImpl.java | 133 +++++++++++++- src/main/resources/application.properties | 2 +- src/main/resources/templates/index.html | 10 - .../banking/security/AuthorityTest.java | 14 ++ 17 files changed, 551 insertions(+), 37 deletions(-) create mode 100644 src/main/java/xyz/subho/retail/banking/service/AccountService.java delete mode 100644 src/main/resources/templates/index.html create mode 100644 src/test/java/xyz/subho/retail/banking/security/AuthorityTest.java diff --git a/pom.xml b/pom.xml index c8d5f11..403fbd0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ xyz.subho retail.banking - 0.0.1 + 0.0.2 retail.banking Retail banking project using MVC for TCS Case Study using Agile Methodologies diff --git a/src/main/java/xyz/subho/retail/banking/Application.java b/src/main/java/xyz/subho/retail/banking/Application.java index bbce1fe..70319c1 100644 --- a/src/main/java/xyz/subho/retail/banking/Application.java +++ b/src/main/java/xyz/subho/retail/banking/Application.java @@ -7,7 +7,9 @@ public class Application { public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } } diff --git a/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java b/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java index 1b45048..edc7d50 100644 --- a/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java +++ b/src/main/java/xyz/subho/retail/banking/config/SecurityConfig.java @@ -10,7 +10,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; -import org.springframework.security.core.userdetails.UserDetailsService; + +import xyz.subho.retail.banking.service.serviceImpl.UserSecurityServiceImpl; import java.security.SecureRandom; @@ -28,17 +29,21 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { private static final String[] PUBLIC_MATCHERS = { "/webjars/**", "/css/**", "/js/**", "/images/**", "/", "/about/**", "/contact/**", "/error/**/*", "/console/**", "/signup" }; - /* - * @Autowired private UserSecurityServiceImpl userSecurityService; - */ + + @Autowired + private UserSecurityServiceImpl userSecurityService; + @Bean public BCryptPasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(12, new SecureRandom(SALT.getBytes())); + } @Override protected void configure(HttpSecurity http) throws Exception { + http.authorizeRequests() // .antMatchers("/**") .antMatchers(PUBLIC_MATCHERS).permitAll().anyRequest().authenticated(); @@ -47,17 +52,17 @@ protected void configure(HttpSecurity http) throws Exception { .loginPage("/index").permitAll().and().logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/index?logout") .deleteCookies("remember-me").permitAll().and().rememberMe(); + } - /* - * @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) - * throws Exception { - * - * auth.inMemoryAuthentication().withUser("user").password("password").roles( - * "USER"); //This is in-memory authentication - * - * auth.userDetailsService(userSecurityService).passwordEncoder(passwordEncoder( - * )); } - */ + @Autowired + public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { + + // auth.inMemoryAuthentication().withUser("user").password("password").roles("USER"); + // //This is in-memory authentication + + auth.userDetailsService(userSecurityService).passwordEncoder(passwordEncoder()); + + } } diff --git a/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java b/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java index 8210ebc..e3716f5 100644 --- a/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java +++ b/src/main/java/xyz/subho/retail/banking/model/CurrentAccount.java @@ -54,7 +54,7 @@ public List getCurrentTransactionList() { return currentTransactionList; } - public void setPrimaryTransactionList(List currentTransactionList) { + public void setCurrentTransactionList(List currentTransactionList) { this.currentTransactionList = currentTransactionList; } diff --git a/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java b/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java index 9916251..d30e2f0 100644 --- a/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java +++ b/src/main/java/xyz/subho/retail/banking/model/CurrentTransaction.java @@ -23,7 +23,7 @@ public class CurrentTransaction { private double amount; private BigDecimal availableBalance; @ManyToOne - @JoinColumn(name = "primary_account_id") + @JoinColumn(name = "current_account_id") private CurrentAccount currentAccount; diff --git a/src/main/java/xyz/subho/retail/banking/model/User.java b/src/main/java/xyz/subho/retail/banking/model/User.java index 4bda648..f301891 100644 --- a/src/main/java/xyz/subho/retail/banking/model/User.java +++ b/src/main/java/xyz/subho/retail/banking/model/User.java @@ -25,7 +25,11 @@ @Entity public class User implements UserDetails { - @Id + /** + * + */ + private static final long serialVersionUID = 1L; + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "userId", nullable = false, updatable = false) private Long userId; @@ -130,7 +134,7 @@ public CurrentAccount getCurrentAccount() { return currentAccount; } - public void setPrimaryAccount(CurrentAccount currentAccount) { + public void setCurrentAccount(CurrentAccount currentAccount) { this.currentAccount = currentAccount; } diff --git a/src/main/java/xyz/subho/retail/banking/security/Authority.java b/src/main/java/xyz/subho/retail/banking/security/Authority.java index ebe62fa..66d29fc 100644 --- a/src/main/java/xyz/subho/retail/banking/security/Authority.java +++ b/src/main/java/xyz/subho/retail/banking/security/Authority.java @@ -4,6 +4,10 @@ public class Authority implements GrantedAuthority { + /** + * + */ + private static final long serialVersionUID = 1L; private final String authority; public Authority(String authority) { diff --git a/src/main/java/xyz/subho/retail/banking/service/AccountService.java b/src/main/java/xyz/subho/retail/banking/service/AccountService.java new file mode 100644 index 0000000..7dc8303 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/service/AccountService.java @@ -0,0 +1,18 @@ +package xyz.subho.retail.banking.service; + +import java.security.Principal; + +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.SavingsAccount; + +public interface AccountService { + + CurrentAccount createCurrentAccount(); + + SavingsAccount createSavingsAccount(); + + void deposit(String accountType, double amount, Principal principal); + + void withdraw(String accountType, double amount, Principal principal); + +} diff --git a/src/main/java/xyz/subho/retail/banking/service/TransactionService.java b/src/main/java/xyz/subho/retail/banking/service/TransactionService.java index bff6eac..6c0a663 100644 --- a/src/main/java/xyz/subho/retail/banking/service/TransactionService.java +++ b/src/main/java/xyz/subho/retail/banking/service/TransactionService.java @@ -1,10 +1,38 @@ package xyz.subho.retail.banking.service; +import java.security.Principal; +import java.util.List; + import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.CurrentTransaction; import xyz.subho.retail.banking.model.Recipient; import xyz.subho.retail.banking.model.SavingsAccount; +import xyz.subho.retail.banking.model.SavingsTransaction; public interface TransactionService { + List findCurrentTransactionList(String username); + + List findSavingsTransactionList(String username); + + void saveCurrentDepositTransaction(CurrentTransaction currentTransaction); + + void saveSavingsDepositTransaction(SavingsTransaction savingsTransaction); + + void saveCurrentWithdrawTransaction(CurrentTransaction currentTransaction); + + void saveSavingsWithdrawTransaction(SavingsTransaction savingsTransaction); + + void betweenAccountsTransfer(String transferFrom, String transferTo, String amount, CurrentAccount currentAccount, SavingsAccount savingsAccount) throws Exception; + + List findRecipientList(Principal principal); + + Recipient saveRecipient(Recipient recipient); + + Recipient findRecipientByName(String recipientName); + + void deleteRecipientByName(String recipientName); + + void toSomeoneElseTransfer(Recipient recipient, String accountType, String amount, CurrentAccount currentAccount, SavingsAccount savingsAccount); } \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/UserService.java b/src/main/java/xyz/subho/retail/banking/service/UserService.java index 2360842..efca43f 100644 --- a/src/main/java/xyz/subho/retail/banking/service/UserService.java +++ b/src/main/java/xyz/subho/retail/banking/service/UserService.java @@ -6,6 +6,7 @@ import org.springframework.stereotype.Service; import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.security.UserRole; @Service("userDetailsService") public interface UserService { @@ -22,7 +23,7 @@ public interface UserService { void save(User user); - User createUser(User user, Set userRoles); + User createUser(User user, Set userRoles); User saveUser(User user); diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java index fbeafcb..ed74244 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java @@ -1,8 +1,123 @@ package xyz.subho.retail.banking.service.serviceImpl; +import java.math.BigDecimal; +import java.security.Principal; +import java.util.Date; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import xyz.subho.retail.banking.dao.CurrentAccountDao; +import xyz.subho.retail.banking.dao.SavingsAccountDao; +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.CurrentTransaction; +import xyz.subho.retail.banking.model.SavingsAccount; +import xyz.subho.retail.banking.model.SavingsTransaction; +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.service.AccountService; +import xyz.subho.retail.banking.service.TransactionService; +import xyz.subho.retail.banking.service.UserService; + @Service -public class AccountServiceImpl { - +public class AccountServiceImpl implements AccountService { + + private static int nextAccountNumber = 11223300; + + @Autowired + private CurrentAccountDao currentAccountDao; + + @Autowired + private SavingsAccountDao savingsAccountDao; + + @Autowired + private UserService userService; + + @Autowired + private TransactionService transactionService; + + public CurrentAccount createCurrentAccount() { + + CurrentAccount currentAccount = new CurrentAccount(); + currentAccount.setAccountBalance(new BigDecimal(0.0)); + currentAccount.setAccountNumber(accountGen()); + + currentAccountDao.save(currentAccount); + + return currentAccountDao.findByAccountNumber(currentAccount.getAccountNumber()); + + } + + public SavingsAccount createSavingsAccount() { + + SavingsAccount savingsAccount = new SavingsAccount(); + savingsAccount.setAccountBalance(new BigDecimal(0.0)); + savingsAccount.setAccountNumber(accountGen()); + + savingsAccountDao.save(savingsAccount); + + return savingsAccountDao.findByAccountNumber(savingsAccount.getAccountNumber()); + + } + + public void deposit(String accountType, double amount, Principal principal) { + + User user = userService.findByUsername(principal.getName()); + + if (accountType.equalsIgnoreCase("Current")) { + CurrentAccount currentAccount = user.getCurrentAccount(); + currentAccount.setAccountBalance(currentAccount.getAccountBalance().add(new BigDecimal(amount))); + currentAccountDao.save(currentAccount); + + Date date = new Date(); + + CurrentTransaction currentTransaction = new CurrentTransaction(date, "Deposit to Current Account", "Account", "Finished", amount, currentAccount.getAccountBalance(), currentAccount); + transactionService.saveCurrentDepositTransaction(currentTransaction); + + } else if (accountType.equalsIgnoreCase("Savings")) { + + SavingsAccount savingsAccount = user.getSavingsAccount(); + savingsAccount.setAccountBalance(savingsAccount.getAccountBalance().add(new BigDecimal(amount))); + savingsAccountDao.save(savingsAccount); + + Date date = new Date(); + SavingsTransaction savingsTransaction = new SavingsTransaction(date, "Deposit to savings Account", "Account", "Finished", amount, savingsAccount.getAccountBalance(), savingsAccount); + transactionService.saveSavingsDepositTransaction(savingsTransaction); + + } + + } + + public void withdraw(String accountType, double amount, Principal principal) { + + User user = userService.findByUsername(principal.getName()); + + if (accountType.equalsIgnoreCase("Current")) { + CurrentAccount currentAccount = user.getCurrentAccount(); + currentAccount.setAccountBalance(currentAccount.getAccountBalance().subtract(new BigDecimal(amount))); + currentAccountDao.save(currentAccount); + + Date date = new Date(); + + CurrentTransaction currentTransaction = new CurrentTransaction(date, "Withdraw from Current Account", "Account", "Finished", amount, currentAccount.getAccountBalance(), currentAccount); + transactionService.saveCurrentWithdrawTransaction(currentTransaction); + + } else if (accountType.equalsIgnoreCase("Savings")) { + SavingsAccount savingsAccount = user.getSavingsAccount(); + savingsAccount.setAccountBalance(savingsAccount.getAccountBalance().subtract(new BigDecimal(amount))); + savingsAccountDao.save(savingsAccount); + + Date date = new Date(); + SavingsTransaction savingsTransaction = new SavingsTransaction(date, "Withdraw from savings Account", "Account", "Finished", amount, savingsAccount.getAccountBalance(), savingsAccount); + transactionService.saveSavingsWithdrawTransaction(savingsTransaction); + + } + + } + + private int accountGen() { + + return ++nextAccountNumber; + + } + } \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java index d85195e..52e588c 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java @@ -1,5 +1,174 @@ package xyz.subho.retail.banking.service.serviceImpl; -public class TransactionServiceImpl { +import java.math.BigDecimal; +import java.security.Principal; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; -} +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import xyz.subho.retail.banking.dao.CurrentAccountDao; +import xyz.subho.retail.banking.dao.CurrentTransactionDao; +import xyz.subho.retail.banking.dao.RecipientDao; +import xyz.subho.retail.banking.dao.SavingsAccountDao; +import xyz.subho.retail.banking.dao.SavingsTransactionDao; +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.CurrentTransaction; +import xyz.subho.retail.banking.model.Recipient; +import xyz.subho.retail.banking.model.SavingsAccount; +import xyz.subho.retail.banking.model.SavingsTransaction; +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.service.TransactionService; +import xyz.subho.retail.banking.service.UserService; + +@Service +public class TransactionServiceImpl implements TransactionService { + + @Autowired + private UserService userService; + + @Autowired + private CurrentTransactionDao currentTransactionDao; + + @Autowired + private SavingsTransactionDao savingsTransactionDao; + + @Autowired + private CurrentAccountDao currentAccountDao; + + @Autowired + private SavingsAccountDao savingsAccountDao; + + @Autowired + private RecipientDao recipientDao; + + + public List findCurrentTransactionList(String username) { + + User user = userService.findByUsername(username); + List currentTransactionList = user.getCurrentAccount().getCurrentTransactionList(); + + return currentTransactionList; + } + + public List findSavingsTransactionList(String username) { + + User user = userService.findByUsername(username); + List savingsTransactionList = user.getSavingsAccount().getSavingsTransactionList(); + + return savingsTransactionList; + } + + public void saveCurrentDepositTransaction(CurrentTransaction currentTransaction) { + + currentTransactionDao.save(currentTransaction); + + } + + public void saveSavingsDepositTransaction(SavingsTransaction savingsTransaction) { + + savingsTransactionDao.save(savingsTransaction); + + } + + public void saveCurrentWithdrawTransaction(CurrentTransaction currentTransaction) { + + currentTransactionDao.save(currentTransaction); + + } + + public void saveSavingsWithdrawTransaction(SavingsTransaction savingsTransaction) { + + savingsTransactionDao.save(savingsTransaction); + + } + + public void betweenAccountsTransfer(String transferFrom, String transferTo, String amount, CurrentAccount currentAccount, SavingsAccount savingsAccount) throws Exception { + + if (transferFrom.equalsIgnoreCase("Current") && transferTo.equalsIgnoreCase("Savings")) { + currentAccount.setAccountBalance(currentAccount.getAccountBalance().subtract(new BigDecimal(amount))); + savingsAccount.setAccountBalance(savingsAccount.getAccountBalance().add(new BigDecimal(amount))); + currentAccountDao.save(currentAccount); + savingsAccountDao.save(savingsAccount); + + Date date = new Date(); + + CurrentTransaction currentTransaction = new CurrentTransaction(date, "Between account transfer from " + transferFrom + " to " + transferTo, "Account", "Finished", Double.parseDouble(amount), currentAccount.getAccountBalance(), currentAccount); + currentTransactionDao.save(currentTransaction); + + } else if (transferFrom.equalsIgnoreCase("Savings") && transferTo.equalsIgnoreCase("Current")) { + + currentAccount.setAccountBalance(currentAccount.getAccountBalance().add(new BigDecimal(amount))); + savingsAccount.setAccountBalance(savingsAccount.getAccountBalance().subtract(new BigDecimal(amount))); + currentAccountDao.save(currentAccount); + savingsAccountDao.save(savingsAccount); + + Date date = new Date(); + + SavingsTransaction savingsTransaction = new SavingsTransaction(date, "Between account transfer from " + transferFrom + " to " + transferTo, "Transfer", "Finished", Double.parseDouble(amount), savingsAccount.getAccountBalance(), savingsAccount); + savingsTransactionDao.save(savingsTransaction); + + } else { + + throw new Exception("Invalid Transfer"); + + } + + } + + public List findRecipientList(Principal principal) { + + String username = principal.getName(); + List recipientList = recipientDao.findAll().stream() + .filter(recipient -> username.equals(recipient.getUser().getUsername())) + .collect(Collectors.toList()); + + return recipientList; + + } + + public Recipient saveRecipient(Recipient recipient) { + + return recipientDao.save(recipient); + + } + + public Recipient findRecipientByName(String recipientName) { + + return recipientDao.findByName(recipientName); + + } + + public void deleteRecipientByName(String recipientName) { + + recipientDao.deleteByName(recipientName); + + } + + public void toSomeoneElseTransfer(Recipient recipient, String accountType, String amount, CurrentAccount currentAccount, SavingsAccount savingsAccount) { + + if (accountType.equalsIgnoreCase("Current")) { + currentAccount.setAccountBalance(currentAccount.getAccountBalance().subtract(new BigDecimal(amount))); + currentAccountDao.save(currentAccount); + + Date date = new Date(); + + CurrentTransaction currentTransaction = new CurrentTransaction(date, "Transfer to recipient " + recipient.getName(), "Transfer", "Finished", Double.parseDouble(amount), currentAccount.getAccountBalance(), currentAccount); + currentTransactionDao.save(currentTransaction); + + } else if (accountType.equalsIgnoreCase("Savings")) { + savingsAccount.setAccountBalance(savingsAccount.getAccountBalance().subtract(new BigDecimal(amount))); + savingsAccountDao.save(savingsAccount); + + Date date = new Date(); + + SavingsTransaction savingsTransaction = new SavingsTransaction(date, "Transfer to recipient " + recipient.getName(), "Transfer", "Finished", Double.parseDouble(amount), savingsAccount.getAccountBalance(), savingsAccount); + savingsTransactionDao.save(savingsTransaction); + + } + + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java index 0cda129..878b191 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserSecurityServiceImpl.java @@ -1,5 +1,38 @@ package xyz.subho.retail.banking.service.serviceImpl; -public class UserSecurityServiceImpl { +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; +import xyz.subho.retail.banking.dao.UserDao; +import xyz.subho.retail.banking.model.User; + +@Service +public class UserSecurityServiceImpl implements UserDetailsService { + + private static final Logger logger = LoggerFactory.getLogger(UserSecurityServiceImpl.class); + + @Autowired + private UserDao userDao; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + + User user = userDao.findByUsername(username); + + if (user == null) { + + logger.warn("Username {} not found", username); + throw new UsernameNotFoundException("Username " + username + " not found"); + + } + + return user; + + } + } diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java index e88e314..4a7092e 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/UserServiceImpl.java @@ -1,5 +1,136 @@ package xyz.subho.retail.banking.service.serviceImpl; -public class UserServiceImpl { +import java.util.List; +import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import xyz.subho.retail.banking.dao.RoleDao; +import xyz.subho.retail.banking.dao.UserDao; +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.security.UserRole; +import xyz.subho.retail.banking.service.AccountService; +import xyz.subho.retail.banking.service.UserService; + +@Service +@Transactional +public class UserServiceImpl implements UserService { + + private static final Logger logger = LoggerFactory.getLogger(UserService.class); + + @Autowired + private UserDao userDao; + + @Autowired + private RoleDao roleDao; + + @Autowired + private BCryptPasswordEncoder passwordEncoder; + + @Autowired + private AccountService accountService; + + public void save(User user) { + + userDao.save(user); + + } + + public User findByUsername(String username) { + + return userDao.findByUsername(username); + + } + + public User findByEmail(String email) { + + return userDao.findByEmail(email); + } + + + public User createUser(User user, Set userRoles) { + + User localUser = userDao.findByUsername(user.getUsername()); + + if (localUser != null) { + + logger.info("User with username {} already exist. Nothing will be done. ", user.getUsername()); + + } else { + + String encryptedPassword = passwordEncoder.encode(user.getPassword()); + user.setPassword(encryptedPassword); + + for (UserRole ur : userRoles) { + + roleDao.save(ur.getRole()); + + } + + user.getUserRoles().addAll(userRoles); + + user.setCurrentAccount(accountService.createCurrentAccount()); + user.setSavingsAccount(accountService.createSavingsAccount()); + + localUser = userDao.save(user); + } + + return localUser; + + } + + public boolean checkUserExists(String username, String email) { + + return checkUsernameExists(username) || checkEmailExists(username); + + } + + public boolean checkUsernameExists(String username) { + + return null != findByUsername(username); + + } + + public boolean checkEmailExists(String email) { + + return null != findByEmail(email); + + + } + + public User saveUser(User user) { + + return userDao.save(user); + + } + + public List findUserList() { + + return userDao.findAll(); + + } + + public void enableUser(String username) { + + User user = findByUsername(username); + user.setEnabled(true); + userDao.save(user); + + } + + public void disableUser(String username) { + + User user = findByUsername(username); + user.setEnabled(false); + logger.info("user status : {}", user.isEnabled()); + userDao.save(user); + logger.info(username, "{}, is disabled."); + + } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5ea5890..92891a1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ # =============================== # Set here configurations for the database connection -spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking2?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=false +spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=false # Username and secret spring.datasource.username=subho diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html deleted file mode 100644 index bf4b385..0000000 --- a/src/main/resources/templates/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - -Index Page - - -

Hello World

- - \ No newline at end of file diff --git a/src/test/java/xyz/subho/retail/banking/security/AuthorityTest.java b/src/test/java/xyz/subho/retail/banking/security/AuthorityTest.java new file mode 100644 index 0000000..71a6949 --- /dev/null +++ b/src/test/java/xyz/subho/retail/banking/security/AuthorityTest.java @@ -0,0 +1,14 @@ +package xyz.subho.retail.banking.security; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class AuthorityTest { + + @Test + void test() { + assertTrue(true); + } + +} From 6def682f2a72f575f03e87604b0cf31637a76522 Mon Sep 17 00:00:00 2001 From: Subhrodip Mohanta Date: Sun, 14 Jun 2020 15:15:34 +0530 Subject: [PATCH 08/24] WIP: Integrations --- .../banking/controller/AccountController.java | 102 + .../banking/controller/HomeController.java | 92 +- .../controller/TransferController.java | 137 + .../banking/controller/UserController.java | 52 + .../serviceImpl/AccountServiceImpl.java | 2 +- .../serviceImpl/TransactionServiceImpl.java | 1 + src/main/resources/application.properties | 2 +- .../static/css/bootstrap-datetimepicker.css | 418 + .../css/bootstrap-datetimepicker.min.css | 9 + src/main/resources/static/css/bootstrap.css | 8198 +++++++++++++++++ .../resources/static/css/bootstrap.min.css | 6 + .../static/css/dataTables.bootstrap.min.css | 1 + .../static/css/dataTables.jqueryui.min.css | 1 + .../static/css/dataTables.uikit.min.css | 1 + .../static/css/jquery.dataTables.min.css | 1 + .../css/jquery.dataTables_themeroller.css | 494 + src/main/resources/static/css/main.css | 302 + src/main/resources/static/images/banner.png | Bin 0 -> 24395 bytes src/main/resources/static/images/banner2.png | Bin 0 -> 32701 bytes src/main/resources/static/images/bg.png | Bin 0 -> 226143 bytes src/main/resources/static/js/bootbox.min.js | 6 + .../static/js/bootstrap-datetimepicker.min.js | 1 + src/main/resources/static/js/bootstrap.js | 2395 +++++ src/main/resources/static/js/bootstrap.min.js | 7 + .../static/js/dataTables.bootstrap.min.js | 8 + .../static/js/dataTables.jqueryui.min.js | 9 + .../static/js/dataTables.uikit.min.js | 8 + .../static/js/jquery.dataTables.min.js | 166 + .../resources/static/js/jquery.easing.min.js | 44 + src/main/resources/static/js/jquery.js | 4 + src/main/resources/static/js/main.js | 87 + .../resources/templates/betweenAccounts.html | 60 + .../resources/templates/common/header.html | 125 + .../resources/templates/common/index.html | 10 + src/main/resources/templates/deposit.html | 45 + src/main/resources/templates/index.html | 57 + .../resources/templates/primaryAccount.html | 76 + src/main/resources/templates/profile.html | 108 + src/main/resources/templates/recipient.html | 86 + .../resources/templates/savingsAccount.html | 71 + src/main/resources/templates/signup.html | 122 + .../resources/templates/toSomeoneElse.html | 56 + src/main/resources/templates/userFront.html | 110 + src/main/resources/templates/withdraw.html | 45 + 44 files changed, 13512 insertions(+), 13 deletions(-) create mode 100644 src/main/java/xyz/subho/retail/banking/controller/AccountController.java create mode 100644 src/main/java/xyz/subho/retail/banking/controller/TransferController.java create mode 100644 src/main/java/xyz/subho/retail/banking/controller/UserController.java create mode 100644 src/main/resources/static/css/bootstrap-datetimepicker.css create mode 100644 src/main/resources/static/css/bootstrap-datetimepicker.min.css create mode 100644 src/main/resources/static/css/bootstrap.css create mode 100644 src/main/resources/static/css/bootstrap.min.css create mode 100644 src/main/resources/static/css/dataTables.bootstrap.min.css create mode 100644 src/main/resources/static/css/dataTables.jqueryui.min.css create mode 100644 src/main/resources/static/css/dataTables.uikit.min.css create mode 100644 src/main/resources/static/css/jquery.dataTables.min.css create mode 100644 src/main/resources/static/css/jquery.dataTables_themeroller.css create mode 100644 src/main/resources/static/css/main.css create mode 100644 src/main/resources/static/images/banner.png create mode 100644 src/main/resources/static/images/banner2.png create mode 100644 src/main/resources/static/images/bg.png create mode 100644 src/main/resources/static/js/bootbox.min.js create mode 100644 src/main/resources/static/js/bootstrap-datetimepicker.min.js create mode 100644 src/main/resources/static/js/bootstrap.js create mode 100644 src/main/resources/static/js/bootstrap.min.js create mode 100644 src/main/resources/static/js/dataTables.bootstrap.min.js create mode 100644 src/main/resources/static/js/dataTables.jqueryui.min.js create mode 100644 src/main/resources/static/js/dataTables.uikit.min.js create mode 100644 src/main/resources/static/js/jquery.dataTables.min.js create mode 100644 src/main/resources/static/js/jquery.easing.min.js create mode 100644 src/main/resources/static/js/jquery.js create mode 100644 src/main/resources/static/js/main.js create mode 100644 src/main/resources/templates/betweenAccounts.html create mode 100644 src/main/resources/templates/common/header.html create mode 100644 src/main/resources/templates/common/index.html create mode 100644 src/main/resources/templates/deposit.html create mode 100644 src/main/resources/templates/index.html create mode 100644 src/main/resources/templates/primaryAccount.html create mode 100644 src/main/resources/templates/profile.html create mode 100644 src/main/resources/templates/recipient.html create mode 100644 src/main/resources/templates/savingsAccount.html create mode 100644 src/main/resources/templates/signup.html create mode 100644 src/main/resources/templates/toSomeoneElse.html create mode 100644 src/main/resources/templates/userFront.html create mode 100644 src/main/resources/templates/withdraw.html diff --git a/src/main/java/xyz/subho/retail/banking/controller/AccountController.java b/src/main/java/xyz/subho/retail/banking/controller/AccountController.java new file mode 100644 index 0000000..3347c68 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/controller/AccountController.java @@ -0,0 +1,102 @@ +package xyz.subho.retail.banking.controller; + +import java.security.Principal; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.CurrentTransaction; +import xyz.subho.retail.banking.model.SavingsAccount; +import xyz.subho.retail.banking.model.SavingsTransaction; +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.service.AccountService; +import xyz.subho.retail.banking.service.TransactionService; +import xyz.subho.retail.banking.service.UserService; + +@Controller +@RequestMapping("/account") +public class AccountController { + + @Autowired + private UserService userService; + + @Autowired + private AccountService accountService; + + @Autowired + private TransactionService transactionService; + + @RequestMapping("/currentAccount") + public String currentAccount(Model model, Principal principal) { + + List currentTransactionList = transactionService.findCurrentTransactionList(principal.getName()); + + User user = userService.findByUsername(principal.getName()); + CurrentAccount currentAccount = user.getCurrentAccount(); + + model.addAttribute("currentAccount", currentAccount); + model.addAttribute("currentTransactionList", currentTransactionList); + + return "currentAccount"; + + } + + @RequestMapping("/savingsAccount") + public String savingsAccount(Model model, Principal principal) { + + List savingsTransactionList = transactionService.findSavingsTransactionList(principal.getName()); + User user = userService.findByUsername(principal.getName()); + SavingsAccount savingsAccount = user.getSavingsAccount(); + + model.addAttribute("savingsAccount", savingsAccount); + model.addAttribute("savingsTransactionList", savingsTransactionList); + + return "savingsAccount"; + + } + + @RequestMapping(value = "/deposit", method = RequestMethod.GET) + public String deposit(Model model) { + + model.addAttribute("accountType", ""); + model.addAttribute("amount", ""); + + return "deposit"; + + } + + @RequestMapping(value = "/deposit", method = RequestMethod.POST) + public String depositPOST(@ModelAttribute("amount") String amount, @ModelAttribute("accountType") String accountType, Principal principal) { + + accountService.deposit(accountType, Double.parseDouble(amount), principal); + + return "redirect:/userFront"; + + } + + @RequestMapping(value = "/withdraw", method = RequestMethod.GET) + public String withdraw(Model model) { + + model.addAttribute("accountType", ""); + model.addAttribute("amount", ""); + + return "withdraw"; + + } + + @RequestMapping(value = "/withdraw", method = RequestMethod.POST) + public String withdrawPOST(@ModelAttribute("amount") String amount, @ModelAttribute("accountType") String accountType, Principal principal) { + + accountService.withdraw(accountType, Double.parseDouble(amount), principal); + + return "redirect:/userFront"; + + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/controller/HomeController.java b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java index 0abeaa1..3289938 100644 --- a/src/main/java/xyz/subho/retail/banking/controller/HomeController.java +++ b/src/main/java/xyz/subho/retail/banking/controller/HomeController.java @@ -1,32 +1,102 @@ package xyz.subho.retail.banking.controller; +import java.security.Principal; +import java.util.HashSet; +import java.util.Set; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import xyz.subho.retail.banking.dao.RoleDao; +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.SavingsAccount; import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.security.UserRole; +import xyz.subho.retail.banking.service.UserService; @Controller public class HomeController { - - @RequestMapping("/") - public String home() { - return "redirect:/index"; - } - - @RequestMapping("/index") - public String index() { - return "index"; - } - + + @Autowired + private UserService userService; + + @Autowired + private RoleDao roleDao; + + @RequestMapping("/") + public String home() { + + return "redirect:/index"; + + } + + @RequestMapping("/index") + public String index() { + + return "index"; + + } + @GetMapping("/signup") public String signup(Model model) { + User user = new User(); model.addAttribute("user", user); return "signup"; + } + @PostMapping("/signup") + public String signupPost(@ModelAttribute("user") User user, Model model) { + + if (userService.checkUserExists(user.getUsername(), user.getEmail())) { + + if (userService.checkEmailExists(user.getEmail())) { + + model.addAttribute("emailExists", true); + + } + + if (userService.checkUsernameExists(user.getUsername())) { + + model.addAttribute("usernameExists", true); + + } + + return "signup"; + + } else { + + Set userRoles = new HashSet<>(); + userRoles.add(new UserRole(user, roleDao.findByName("ROLE_USER"))); + + userService.createUser(user, userRoles); + + return "redirect:/"; + + } + + } + + @GetMapping("/userFront") + public String userFront(Principal principal, Model model) { + + User user = userService.findByUsername(principal.getName()); + CurrentAccount currentAccount = user.getCurrentAccount(); + SavingsAccount savingsAccount = user.getSavingsAccount(); + + model.addAttribute("currentAccount", currentAccount); + model.addAttribute("savingsAccount", savingsAccount); + + return "userFront"; + + } + } diff --git a/src/main/java/xyz/subho/retail/banking/controller/TransferController.java b/src/main/java/xyz/subho/retail/banking/controller/TransferController.java new file mode 100644 index 0000000..05b01c4 --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/controller/TransferController.java @@ -0,0 +1,137 @@ +package xyz.subho.retail.banking.controller; + +import java.security.Principal; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +import xyz.subho.retail.banking.model.CurrentAccount; +import xyz.subho.retail.banking.model.Recipient; +import xyz.subho.retail.banking.model.SavingsAccount; +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.service.TransactionService; +import xyz.subho.retail.banking.service.UserService; + +@Controller +@RequestMapping("/transfer") +public class TransferController { + + @Autowired + private TransactionService transactionService; + + @Autowired + private UserService userService; + + @RequestMapping(value = "/betweenAccounts", method = RequestMethod.GET) + public String betweenAccounts(Model model) { + + model.addAttribute("transferFrom", ""); + model.addAttribute("transferTo", ""); + model.addAttribute("amount", ""); + + return "betweenAccounts"; + + } + + @RequestMapping(value = "/betweenAccounts", method = RequestMethod.POST) + public String betweenAccountsPost( + @ModelAttribute("transferFrom") String transferFrom, + @ModelAttribute("transferTo") String transferTo, + @ModelAttribute("amount") String amount, + Principal principal + ) throws Exception { + + User user = userService.findByUsername(principal.getName()); + CurrentAccount currentAccount = user.getCurrentAccount(); + SavingsAccount savingsAccount = user.getSavingsAccount(); + transactionService.betweenAccountsTransfer(transferFrom, transferTo, amount, currentAccount, savingsAccount); + + return "redirect:/userFront"; + + } + + @RequestMapping(value = "/recipient", method = RequestMethod.GET) + public String recipient(Model model, Principal principal) { + + List recipientList = transactionService.findRecipientList(principal); + + Recipient recipient = new Recipient(); + + model.addAttribute("recipientList", recipientList); + model.addAttribute("recipient", recipient); + + return "recipient"; + + } + + @RequestMapping(value = "/recipient/save", method = RequestMethod.POST) + public String recipientPost(@ModelAttribute("recipient") Recipient recipient, Principal principal) { + + User user = userService.findByUsername(principal.getName()); + recipient.setUser(user); + transactionService.saveRecipient(recipient); + + return "redirect:/transfer/recipient"; + + } + + @RequestMapping(value = "/recipient/edit", method = RequestMethod.GET) + public String recipientEdit(@RequestParam(value = "recipientName") String recipientName, Model model, Principal principal) { + + Recipient recipient = transactionService.findRecipientByName(recipientName); + List recipientList = transactionService.findRecipientList(principal); + + model.addAttribute("recipientList", recipientList); + model.addAttribute("recipient", recipient); + + return "recipient"; + + } + + @RequestMapping(value = "/recipient/delete", method = RequestMethod.GET) + @Transactional + public String recipientDelete(@RequestParam(value = "recipientName") String recipientName, Model model, Principal principal) { + + transactionService.deleteRecipientByName(recipientName); + + List recipientList = transactionService.findRecipientList(principal); + + Recipient recipient = new Recipient(); + model.addAttribute("recipient", recipient); + model.addAttribute("recipientList", recipientList); + + return "recipient"; + + } + + @RequestMapping(value = "/toSomeoneElse", method = RequestMethod.GET) + public String toSomeoneElse(Model model, Principal principal) { + + List recipientList = transactionService.findRecipientList(principal); + + model.addAttribute("recipientList", recipientList); + model.addAttribute("accountType", ""); + + return "toSomeoneElse"; + + } + + @RequestMapping(value = "/toSomeoneElse", method = RequestMethod.POST) + public String toSomeoneElsePost(@ModelAttribute("recipientName") String recipientName, @ModelAttribute("accountType") String accountType, @ModelAttribute("amount") String amount, Principal principal) { + + User user = userService.findByUsername(principal.getName()); + Recipient recipient = transactionService.findRecipientByName(recipientName); + transactionService.toSomeoneElseTransfer(recipient, accountType, amount, user.getCurrentAccount(), user.getSavingsAccount()); + + return "redirect:/userFront"; + + } + +} \ No newline at end of file diff --git a/src/main/java/xyz/subho/retail/banking/controller/UserController.java b/src/main/java/xyz/subho/retail/banking/controller/UserController.java new file mode 100644 index 0000000..3bc1bfe --- /dev/null +++ b/src/main/java/xyz/subho/retail/banking/controller/UserController.java @@ -0,0 +1,52 @@ +package xyz.subho.retail.banking.controller; + +import java.security.Principal; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import xyz.subho.retail.banking.model.User; +import xyz.subho.retail.banking.service.UserService; + +@Controller +@RequestMapping("/user") +public class UserController { + + @Autowired + private UserService userService; + + @GetMapping("/profile") + public String profile(Principal principal, Model model) { + + User user = userService.findByUsername(principal.getName()); + + model.addAttribute("user", user); + + return "profile"; + + } + + @PostMapping("/profile") + public String profilePost(@ModelAttribute("user") User newUser, Model model) { + + User user = userService.findByUsername(newUser.getUsername()); + user.setUsername(newUser.getUsername()); + user.setFirstName(newUser.getFirstName()); + user.setLastName(newUser.getLastName()); + user.setEmail(newUser.getEmail()); + user.setPhone(newUser.getPhone()); + + model.addAttribute("user", user); + + userService.saveUser(user); + + return "profile"; + + } + +} diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java index ed74244..a7fa065 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/AccountServiceImpl.java @@ -116,7 +116,7 @@ public void withdraw(String accountType, double amount, Principal principal) { private int accountGen() { - return ++nextAccountNumber; + return (int)Math.random()*1000000; } diff --git a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java index 52e588c..69af365 100644 --- a/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java +++ b/src/main/java/xyz/subho/retail/banking/service/serviceImpl/TransactionServiceImpl.java @@ -51,6 +51,7 @@ public List findCurrentTransactionList(String username) { List currentTransactionList = user.getCurrentAccount().getCurrentTransactionList(); return currentTransactionList; + } public List findSavingsTransactionList(String username) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 92891a1..5ea5890 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,7 +3,7 @@ # =============================== # Set here configurations for the database connection -spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=false +spring.datasource.url=jdbc:mysql://demo.subho.xyz:3315/banking2?createDatabaseIfNotExist=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Kolkata&useSSL=false # Username and secret spring.datasource.username=subho diff --git a/src/main/resources/static/css/bootstrap-datetimepicker.css b/src/main/resources/static/css/bootstrap-datetimepicker.css new file mode 100644 index 0000000..600e666 --- /dev/null +++ b/src/main/resources/static/css/bootstrap-datetimepicker.css @@ -0,0 +1,418 @@ +/*! + * Datetimepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ +.datetimepicker { + padding: 4px; + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + direction: ltr; +} + +.datetimepicker-inline { + width: 220px; +} + +.datetimepicker.datetimepicker-rtl { + direction: rtl; +} + +.datetimepicker.datetimepicker-rtl table tr td span { + float: right; +} + +.datetimepicker-dropdown, .datetimepicker-dropdown-left { + top: 0; + left: 0; +} + +[class*=" datetimepicker-dropdown"]:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #cccccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} + +[class*=" datetimepicker-dropdown"]:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; +} + +[class*=" datetimepicker-dropdown-top"]:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-top: 7px solid #cccccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; +} + +[class*=" datetimepicker-dropdown-top"]:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.datetimepicker-dropdown-bottom-left:before { + top: -7px; + right: 6px; +} + +.datetimepicker-dropdown-bottom-left:after { + top: -6px; + right: 7px; +} + +.datetimepicker-dropdown-bottom-right:before { + top: -7px; + left: 6px; +} + +.datetimepicker-dropdown-bottom-right:after { + top: -6px; + left: 7px; +} + +.datetimepicker-dropdown-top-left:before { + bottom: -7px; + right: 6px; +} + +.datetimepicker-dropdown-top-left:after { + bottom: -6px; + right: 7px; +} + +.datetimepicker-dropdown-top-right:before { + bottom: -7px; + left: 6px; +} + +.datetimepicker-dropdown-top-right:after { + bottom: -6px; + left: 7px; +} + +.datetimepicker > div { + display: none; +} + +.datetimepicker.minutes div.datetimepicker-minutes { + display: block; +} + +.datetimepicker.hours div.datetimepicker-hours { + display: block; +} + +.datetimepicker.days div.datetimepicker-days { + display: block; +} + +.datetimepicker.months div.datetimepicker-months { + display: block; +} + +.datetimepicker.years div.datetimepicker-years { + display: block; +} + +.datetimepicker table { + margin: 0; +} + +.datetimepicker td, +.datetimepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: none; +} + +.table-striped .datetimepicker table tr td, +.table-striped .datetimepicker table tr th { + background-color: transparent; +} + +.datetimepicker table tr td.minute:hover { + background: #eeeeee; + cursor: pointer; +} + +.datetimepicker table tr td.hour:hover { + background: #eeeeee; + cursor: pointer; +} + +.datetimepicker table tr td.day:hover { + background: #eeeeee; + cursor: pointer; +} + +.datetimepicker table tr td.old, +.datetimepicker table tr td.new { + color: #999999; +} + +.datetimepicker table tr td.disabled, +.datetimepicker table tr td.disabled:hover { + background: none; + color: #999999; + cursor: default; +} + +.datetimepicker table tr td.today, +.datetimepicker table tr td.today:hover, +.datetimepicker table tr td.today.disabled, +.datetimepicker table tr td.today.disabled:hover { + background-color: #fde19a; + background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); + background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); + background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); + background-image: linear-gradient(top, #fdd49a, #fdf59a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); + border-color: #fdf59a #fdf59a #fbed50; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.datetimepicker table tr td.today:hover, +.datetimepicker table tr td.today:hover:hover, +.datetimepicker table tr td.today.disabled:hover, +.datetimepicker table tr td.today.disabled:hover:hover, +.datetimepicker table tr td.today:active, +.datetimepicker table tr td.today:hover:active, +.datetimepicker table tr td.today.disabled:active, +.datetimepicker table tr td.today.disabled:hover:active, +.datetimepicker table tr td.today.active, +.datetimepicker table tr td.today:hover.active, +.datetimepicker table tr td.today.disabled.active, +.datetimepicker table tr td.today.disabled:hover.active, +.datetimepicker table tr td.today.disabled, +.datetimepicker table tr td.today:hover.disabled, +.datetimepicker table tr td.today.disabled.disabled, +.datetimepicker table tr td.today.disabled:hover.disabled, +.datetimepicker table tr td.today[disabled], +.datetimepicker table tr td.today:hover[disabled], +.datetimepicker table tr td.today.disabled[disabled], +.datetimepicker table tr td.today.disabled:hover[disabled] { + background-color: #fdf59a; +} + +.datetimepicker table tr td.today:active, +.datetimepicker table tr td.today:hover:active, +.datetimepicker table tr td.today.disabled:active, +.datetimepicker table tr td.today.disabled:hover:active, +.datetimepicker table tr td.today.active, +.datetimepicker table tr td.today:hover.active, +.datetimepicker table tr td.today.disabled.active, +.datetimepicker table tr td.today.disabled:hover.active { + background-color: #fbf069; +} + +.datetimepicker table tr td.active, +.datetimepicker table tr td.active:hover, +.datetimepicker table tr td.active.disabled, +.datetimepicker table tr td.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.datetimepicker table tr td.active:hover, +.datetimepicker table tr td.active:hover:hover, +.datetimepicker table tr td.active.disabled:hover, +.datetimepicker table tr td.active.disabled:hover:hover, +.datetimepicker table tr td.active:active, +.datetimepicker table tr td.active:hover:active, +.datetimepicker table tr td.active.disabled:active, +.datetimepicker table tr td.active.disabled:hover:active, +.datetimepicker table tr td.active.active, +.datetimepicker table tr td.active:hover.active, +.datetimepicker table tr td.active.disabled.active, +.datetimepicker table tr td.active.disabled:hover.active, +.datetimepicker table tr td.active.disabled, +.datetimepicker table tr td.active:hover.disabled, +.datetimepicker table tr td.active.disabled.disabled, +.datetimepicker table tr td.active.disabled:hover.disabled, +.datetimepicker table tr td.active[disabled], +.datetimepicker table tr td.active:hover[disabled], +.datetimepicker table tr td.active.disabled[disabled], +.datetimepicker table tr td.active.disabled:hover[disabled] { + background-color: #0044cc; +} + +.datetimepicker table tr td.active:active, +.datetimepicker table tr td.active:hover:active, +.datetimepicker table tr td.active.disabled:active, +.datetimepicker table tr td.active.disabled:hover:active, +.datetimepicker table tr td.active.active, +.datetimepicker table tr td.active:hover.active, +.datetimepicker table tr td.active.disabled.active, +.datetimepicker table tr td.active.disabled:hover.active { + background-color: #003399; +} + +.datetimepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.datetimepicker .datetimepicker-hours span { + height: 26px; + line-height: 26px; +} + +.datetimepicker .datetimepicker-hours table tr td span.hour_am, +.datetimepicker .datetimepicker-hours table tr td span.hour_pm { + width: 14.6%; +} + +.datetimepicker .datetimepicker-hours fieldset legend, +.datetimepicker .datetimepicker-minutes fieldset legend { + margin-bottom: inherit; + line-height: 30px; +} + +.datetimepicker .datetimepicker-minutes span { + height: 26px; + line-height: 26px; +} + +.datetimepicker table tr td span:hover { + background: #eeeeee; +} + +.datetimepicker table tr td span.disabled, +.datetimepicker table tr td span.disabled:hover { + background: none; + color: #999999; + cursor: default; +} + +.datetimepicker table tr td span.active, +.datetimepicker table tr td span.active:hover, +.datetimepicker table tr td span.active.disabled, +.datetimepicker table tr td span.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.datetimepicker table tr td span.active:hover, +.datetimepicker table tr td span.active:hover:hover, +.datetimepicker table tr td span.active.disabled:hover, +.datetimepicker table tr td span.active.disabled:hover:hover, +.datetimepicker table tr td span.active:active, +.datetimepicker table tr td span.active:hover:active, +.datetimepicker table tr td span.active.disabled:active, +.datetimepicker table tr td span.active.disabled:hover:active, +.datetimepicker table tr td span.active.active, +.datetimepicker table tr td span.active:hover.active, +.datetimepicker table tr td span.active.disabled.active, +.datetimepicker table tr td span.active.disabled:hover.active, +.datetimepicker table tr td span.active.disabled, +.datetimepicker table tr td span.active:hover.disabled, +.datetimepicker table tr td span.active.disabled.disabled, +.datetimepicker table tr td span.active.disabled:hover.disabled, +.datetimepicker table tr td span.active[disabled], +.datetimepicker table tr td span.active:hover[disabled], +.datetimepicker table tr td span.active.disabled[disabled], +.datetimepicker table tr td span.active.disabled:hover[disabled] { + background-color: #0044cc; +} + +.datetimepicker table tr td span.active:active, +.datetimepicker table tr td span.active:hover:active, +.datetimepicker table tr td span.active.disabled:active, +.datetimepicker table tr td span.active.disabled:hover:active, +.datetimepicker table tr td span.active.active, +.datetimepicker table tr td span.active:hover.active, +.datetimepicker table tr td span.active.disabled.active, +.datetimepicker table tr td span.active.disabled:hover.active { + background-color: #003399; +} + +.datetimepicker table tr td span.old { + color: #999999; +} + +.datetimepicker th.switch { + width: 145px; +} + +.datetimepicker th span.glyphicon { + pointer-events: none; +} + +.datetimepicker thead tr:first-child th, +.datetimepicker tfoot th { + cursor: pointer; +} + +.datetimepicker thead tr:first-child th:hover, +.datetimepicker tfoot th:hover { + background: #eeeeee; +} + +.input-append.date .add-on i, +.input-prepend.date .add-on i, +.input-group.date .input-group-addon span { + cursor: pointer; + width: 14px; + height: 14px; +} diff --git a/src/main/resources/static/css/bootstrap-datetimepicker.min.css b/src/main/resources/static/css/bootstrap-datetimepicker.min.css new file mode 100644 index 0000000..d0f3dff --- /dev/null +++ b/src/main/resources/static/css/bootstrap-datetimepicker.min.css @@ -0,0 +1,9 @@ +/*! + * Datetimepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */.datetimepicker{padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datetimepicker-inline{width:220px}.datetimepicker.datetimepicker-rtl{direction:rtl}.datetimepicker.datetimepicker-rtl table tr td span{float:right}.datetimepicker-dropdown,.datetimepicker-dropdown-left{top:0;left:0}[class*=" datetimepicker-dropdown"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute}[class*=" datetimepicker-dropdown"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute}[class*=" datetimepicker-dropdown-top"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0}[class*=" datetimepicker-dropdown-top"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;border-bottom:0}.datetimepicker-dropdown-bottom-left:before{top:-7px;right:6px}.datetimepicker-dropdown-bottom-left:after{top:-6px;right:7px}.datetimepicker-dropdown-bottom-right:before{top:-7px;left:6px}.datetimepicker-dropdown-bottom-right:after{top:-6px;left:7px}.datetimepicker-dropdown-top-left:before{bottom:-7px;right:6px}.datetimepicker-dropdown-top-left:after{bottom:-6px;right:7px}.datetimepicker-dropdown-top-right:before{bottom:-7px;left:6px}.datetimepicker-dropdown-top-right:after{bottom:-6px;left:7px}.datetimepicker>div{display:none}.datetimepicker.minutes div.datetimepicker-minutes{display:block}.datetimepicker.hours div.datetimepicker-hours{display:block}.datetimepicker.days div.datetimepicker-days{display:block}.datetimepicker.months div.datetimepicker-months{display:block}.datetimepicker.years div.datetimepicker-years{display:block}.datetimepicker table{margin:0}.datetimepicker td,.datetimepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0}.table-striped .datetimepicker table tr td,.table-striped .datetimepicker table tr th{background-color:transparent}.datetimepicker table tr td.minute:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.hour:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.day:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.old,.datetimepicker table tr td.new{color:#999}.datetimepicker table tr td.disabled,.datetimepicker table tr td.disabled:hover{background:0;color:#999;cursor:default}.datetimepicker table tr td.today,.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(top,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a',endColorstr='#fdf59a',GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today:hover:hover,.datetimepicker table tr td.today.disabled:hover,.datetimepicker table tr td.today.disabled:hover:hover,.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.active,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today:hover.disabled,.datetimepicker table tr td.today.disabled.disabled,.datetimepicker table tr td.today.disabled:hover.disabled,.datetimepicker table tr td.today[disabled],.datetimepicker table tr td.today:hover[disabled],.datetimepicker table tr td.today.disabled[disabled],.datetimepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.active{background-color:#fbf069}.datetimepicker table tr td.active,.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active:hover:hover,.datetimepicker table tr td.active.disabled:hover,.datetimepicker table tr td.active.disabled:hover:hover,.datetimepicker table tr td.active:active,.datetimepicker table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active:hover.disabled,.datetimepicker table tr td.active.disabled.disabled,.datetimepicker table tr td.active.disabled:hover.disabled,.datetimepicker table tr td.active[disabled],.datetimepicker table tr td.active:hover[disabled],.datetimepicker table tr td.active.disabled[disabled],.datetimepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}.datetimepicker table tr td.active:active,.datetimepicker table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active{background-color:#039}.datetimepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datetimepicker .datetimepicker-hours span{height:26px;line-height:26px}.datetimepicker .datetimepicker-hours table tr td span.hour_am,.datetimepicker .datetimepicker-hours table tr td span.hour_pm{width:14.6%}.datetimepicker .datetimepicker-hours fieldset legend,.datetimepicker .datetimepicker-minutes fieldset legend{margin-bottom:inherit;line-height:30px}.datetimepicker .datetimepicker-minutes span{height:26px;line-height:26px}.datetimepicker table tr td span:hover{background:#eee}.datetimepicker table tr td span.disabled,.datetimepicker table tr td span.disabled:hover{background:0;color:#999;cursor:default}.datetimepicker table tr td span.active,.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active:hover:hover,.datetimepicker table tr td span.active.disabled:hover,.datetimepicker table tr td span.active.disabled:hover:hover,.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active:hover.disabled,.datetimepicker table tr td span.active.disabled.disabled,.datetimepicker table tr td span.active.disabled:hover.disabled,.datetimepicker table tr td span.active[disabled],.datetimepicker table tr td span.active:hover[disabled],.datetimepicker table tr td span.active.disabled[disabled],.datetimepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active{background-color:#039}.datetimepicker table tr td span.old{color:#999}.datetimepicker th.switch{width:145px}.datetimepicker th span.glyphicon{pointer-events:none}.datetimepicker thead tr:first-child th,.datetimepicker tfoot th{cursor:pointer}.datetimepicker thead tr:first-child th:hover,.datetimepicker tfoot th:hover{background:#eee}.input-append.date .add-on i,.input-prepend.date .add-on i,.input-group.date .input-group-addon span{cursor:pointer;width:14px;height:14px} \ No newline at end of file diff --git a/src/main/resources/static/css/bootstrap.css b/src/main/resources/static/css/bootstrap.css new file mode 100644 index 0000000..33b6ac7 --- /dev/null +++ b/src/main/resources/static/css/bootstrap.css @@ -0,0 +1,8198 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background-color: transparent; +} + +a:active, +a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + margin: .67em 0; + font-size: 2em; +} + +mark { + color: #000; + background: #ff0; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -.5em; +} + +sub { + bottom: -.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +pre { + overflow: auto; +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +td, +th { + padding: 0; +} + +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + .navbar { + display: none; + } + + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + 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'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-asterisk:before { + content: "\002a"; +} + +.glyphicon-plus:before { + content: "\002b"; +} + +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-cd:before { + content: "\e201"; +} + +.glyphicon-save-file:before { + content: "\e202"; +} + +.glyphicon-open-file:before { + content: "\e203"; +} + +.glyphicon-level-up:before { + content: "\e204"; +} + +.glyphicon-copy:before { + content: "\e205"; +} + +.glyphicon-paste:before { + content: "\e206"; +} + +.glyphicon-alert:before { + content: "\e209"; +} + +.glyphicon-equalizer:before { + content: "\e210"; +} + +.glyphicon-king:before { + content: "\e211"; +} + +.glyphicon-queen:before { + content: "\e212"; +} + +.glyphicon-pawn:before { + content: "\e213"; +} + +.glyphicon-bishop:before { + content: "\e214"; +} + +.glyphicon-knight:before { + content: "\e215"; +} + +.glyphicon-baby-formula:before { + content: "\e216"; +} + +.glyphicon-tent:before { + content: "\26fa"; +} + +.glyphicon-blackboard:before { + content: "\e218"; +} + +.glyphicon-bed:before { + content: "\e219"; +} + +.glyphicon-apple:before { + content: "\f8ff"; +} + +.glyphicon-erase:before { + content: "\e221"; +} + +.glyphicon-hourglass:before { + content: "\231b"; +} + +.glyphicon-lamp:before { + content: "\e223"; +} + +.glyphicon-duplicate:before { + content: "\e224"; +} + +.glyphicon-piggy-bank:before { + content: "\e225"; +} + +.glyphicon-scissors:before { + content: "\e226"; +} + +.glyphicon-bitcoin:before { + content: "\e227"; +} + +.glyphicon-btc:before { + content: "\e227"; +} + +.glyphicon-xbt:before { + content: "\e227"; +} + +.glyphicon-yen:before { + content: "\00a5"; +} + +.glyphicon-jpy:before { + content: "\00a5"; +} + +.glyphicon-ruble:before { + content: "\20bd"; +} + +.glyphicon-rub:before { + content: "\20bd"; +} + +.glyphicon-scale:before { + content: "\e230"; +} + +.glyphicon-ice-lolly:before { + content: "\e231"; +} + +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} + +.glyphicon-education:before { + content: "\e233"; +} + +.glyphicon-option-horizontal:before { + content: "\e234"; +} + +.glyphicon-option-vertical:before { + content: "\e235"; +} + +.glyphicon-menu-hamburger:before { + content: "\e236"; +} + +.glyphicon-modal-window:before { + content: "\e237"; +} + +.glyphicon-oil:before { + content: "\e238"; +} + +.glyphicon-grain:before { + content: "\e239"; +} + +.glyphicon-sunglasses:before { + content: "\e240"; +} + +.glyphicon-text-size:before { + content: "\e241"; +} + +.glyphicon-text-color:before { + content: "\e242"; +} + +.glyphicon-text-background:before { + content: "\e243"; +} + +.glyphicon-object-align-top:before { + content: "\e244"; +} + +.glyphicon-object-align-bottom:before { + content: "\e245"; +} + +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} + +.glyphicon-object-align-left:before { + content: "\e247"; +} + +.glyphicon-object-align-vertical:before { + content: "\e248"; +} + +.glyphicon-object-align-right:before { + content: "\e249"; +} + +.glyphicon-triangle-right:before { + content: "\e250"; +} + +.glyphicon-triangle-left:before { + content: "\e251"; +} + +.glyphicon-triangle-bottom:before { + content: "\e252"; +} + +.glyphicon-triangle-top:before { + content: "\e253"; +} + +.glyphicon-console:before { + content: "\e254"; +} + +.glyphicon-superscript:before { + content: "\e255"; +} + +.glyphicon-subscript:before { + content: "\e256"; +} + +.glyphicon-menu-left:before { + content: "\e257"; +} + +.glyphicon-menu-right:before { + content: "\e258"; +} + +.glyphicon-menu-down:before { + content: "\e259"; +} + +.glyphicon-menu-up:before { + content: "\e260"; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #337ab7; + text-decoration: none; +} + +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} + +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; +} + +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +[role="button"] { + cursor: pointer; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} + +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small, +.small { + font-size: 85%; +} + +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-muted { + color: #777; +} + +.text-primary { + color: #337ab7; +} + +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} + +.text-success { + color: #3c763d; +} + +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} + +.text-info { + color: #31708f; +} + +a.text-info:hover, +a.text-info:focus { + color: #245269; +} + +.text-warning { + color: #8a6d3b; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} + +.text-danger { + color: #a94442; +} + +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} + +.bg-primary { + color: #fff; + background-color: #337ab7; +} + +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} + +.bg-success { + background-color: #dff0d8; +} + +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} + +.bg-info { + background-color: #d9edf7; +} + +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} + +.bg-warning { + background-color: #fcf8e3; +} + +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} + +.bg-danger { + background-color: #f2dede; +} + +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.42857143; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + + .dl-horizontal dd { + margin-left: 180px; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} + +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} + +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} + +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} + +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} + +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.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 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.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 { + float: left; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-11 { + width: 91.66666667%; +} + +.col-xs-10 { + width: 83.33333333%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666667%; +} + +.col-xs-7 { + width: 58.33333333%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666667%; +} + +.col-xs-4 { + width: 33.33333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.66666667%; +} + +.col-xs-1 { + width: 8.33333333%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666667%; +} + +.col-xs-pull-10 { + right: 83.33333333%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666667%; +} + +.col-xs-pull-7 { + right: 58.33333333%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666667%; +} + +.col-xs-pull-4 { + right: 33.33333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.66666667%; +} + +.col-xs-pull-1 { + right: 8.33333333%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666667%; +} + +.col-xs-push-10 { + left: 83.33333333%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666667%; +} + +.col-xs-push-7 { + left: 58.33333333%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666667%; +} + +.col-xs-push-4 { + left: 33.33333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.66666667%; +} + +.col-xs-push-1 { + left: 8.33333333%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +@media (min-width: 768px) { + .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 { + float: left; + } + + .col-sm-12 { + width: 100%; + } + + .col-sm-11 { + width: 91.66666667%; + } + + .col-sm-10 { + width: 83.33333333%; + } + + .col-sm-9 { + width: 75%; + } + + .col-sm-8 { + width: 66.66666667%; + } + + .col-sm-7 { + width: 58.33333333%; + } + + .col-sm-6 { + width: 50%; + } + + .col-sm-5 { + width: 41.66666667%; + } + + .col-sm-4 { + width: 33.33333333%; + } + + .col-sm-3 { + width: 25%; + } + + .col-sm-2 { + width: 16.66666667%; + } + + .col-sm-1 { + width: 8.33333333%; + } + + .col-sm-pull-12 { + right: 100%; + } + + .col-sm-pull-11 { + right: 91.66666667%; + } + + .col-sm-pull-10 { + right: 83.33333333%; + } + + .col-sm-pull-9 { + right: 75%; + } + + .col-sm-pull-8 { + right: 66.66666667%; + } + + .col-sm-pull-7 { + right: 58.33333333%; + } + + .col-sm-pull-6 { + right: 50%; + } + + .col-sm-pull-5 { + right: 41.66666667%; + } + + .col-sm-pull-4 { + right: 33.33333333%; + } + + .col-sm-pull-3 { + right: 25%; + } + + .col-sm-pull-2 { + right: 16.66666667%; + } + + .col-sm-pull-1 { + right: 8.33333333%; + } + + .col-sm-pull-0 { + right: auto; + } + + .col-sm-push-12 { + left: 100%; + } + + .col-sm-push-11 { + left: 91.66666667%; + } + + .col-sm-push-10 { + left: 83.33333333%; + } + + .col-sm-push-9 { + left: 75%; + } + + .col-sm-push-8 { + left: 66.66666667%; + } + + .col-sm-push-7 { + left: 58.33333333%; + } + + .col-sm-push-6 { + left: 50%; + } + + .col-sm-push-5 { + left: 41.66666667%; + } + + .col-sm-push-4 { + left: 33.33333333%; + } + + .col-sm-push-3 { + left: 25%; + } + + .col-sm-push-2 { + left: 16.66666667%; + } + + .col-sm-push-1 { + left: 8.33333333%; + } + + .col-sm-push-0 { + left: auto; + } + + .col-sm-offset-12 { + margin-left: 100%; + } + + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + + .col-sm-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 992px) { + .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 { + float: left; + } + + .col-md-12 { + width: 100%; + } + + .col-md-11 { + width: 91.66666667%; + } + + .col-md-10 { + width: 83.33333333%; + } + + .col-md-9 { + width: 75%; + } + + .col-md-8 { + width: 66.66666667%; + } + + .col-md-7 { + width: 58.33333333%; + } + + .col-md-6 { + width: 50%; + } + + .col-md-5 { + width: 41.66666667%; + } + + .col-md-4 { + width: 33.33333333%; + } + + .col-md-3 { + width: 25%; + } + + .col-md-2 { + width: 16.66666667%; + } + + .col-md-1 { + width: 8.33333333%; + } + + .col-md-pull-12 { + right: 100%; + } + + .col-md-pull-11 { + right: 91.66666667%; + } + + .col-md-pull-10 { + right: 83.33333333%; + } + + .col-md-pull-9 { + right: 75%; + } + + .col-md-pull-8 { + right: 66.66666667%; + } + + .col-md-pull-7 { + right: 58.33333333%; + } + + .col-md-pull-6 { + right: 50%; + } + + .col-md-pull-5 { + right: 41.66666667%; + } + + .col-md-pull-4 { + right: 33.33333333%; + } + + .col-md-pull-3 { + right: 25%; + } + + .col-md-pull-2 { + right: 16.66666667%; + } + + .col-md-pull-1 { + right: 8.33333333%; + } + + .col-md-pull-0 { + right: auto; + } + + .col-md-push-12 { + left: 100%; + } + + .col-md-push-11 { + left: 91.66666667%; + } + + .col-md-push-10 { + left: 83.33333333%; + } + + .col-md-push-9 { + left: 75%; + } + + .col-md-push-8 { + left: 66.66666667%; + } + + .col-md-push-7 { + left: 58.33333333%; + } + + .col-md-push-6 { + left: 50%; + } + + .col-md-push-5 { + left: 41.66666667%; + } + + .col-md-push-4 { + left: 33.33333333%; + } + + .col-md-push-3 { + left: 25%; + } + + .col-md-push-2 { + left: 16.66666667%; + } + + .col-md-push-1 { + left: 8.33333333%; + } + + .col-md-push-0 { + left: auto; + } + + .col-md-offset-12 { + margin-left: 100%; + } + + .col-md-offset-11 { + margin-left: 91.66666667%; + } + + .col-md-offset-10 { + margin-left: 83.33333333%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-8 { + margin-left: 66.66666667%; + } + + .col-md-offset-7 { + margin-left: 58.33333333%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-5 { + margin-left: 41.66666667%; + } + + .col-md-offset-4 { + margin-left: 33.33333333%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-2 { + margin-left: 16.66666667%; + } + + .col-md-offset-1 { + margin-left: 8.33333333%; + } + + .col-md-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .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 { + float: left; + } + + .col-lg-12 { + width: 100%; + } + + .col-lg-11 { + width: 91.66666667%; + } + + .col-lg-10 { + width: 83.33333333%; + } + + .col-lg-9 { + width: 75%; + } + + .col-lg-8 { + width: 66.66666667%; + } + + .col-lg-7 { + width: 58.33333333%; + } + + .col-lg-6 { + width: 50%; + } + + .col-lg-5 { + width: 41.66666667%; + } + + .col-lg-4 { + width: 33.33333333%; + } + + .col-lg-3 { + width: 25%; + } + + .col-lg-2 { + width: 16.66666667%; + } + + .col-lg-1 { + width: 8.33333333%; + } + + .col-lg-pull-12 { + right: 100%; + } + + .col-lg-pull-11 { + right: 91.66666667%; + } + + .col-lg-pull-10 { + right: 83.33333333%; + } + + .col-lg-pull-9 { + right: 75%; + } + + .col-lg-pull-8 { + right: 66.66666667%; + } + + .col-lg-pull-7 { + right: 58.33333333%; + } + + .col-lg-pull-6 { + right: 50%; + } + + .col-lg-pull-5 { + right: 41.66666667%; + } + + .col-lg-pull-4 { + right: 33.33333333%; + } + + .col-lg-pull-3 { + right: 25%; + } + + .col-lg-pull-2 { + right: 16.66666667%; + } + + .col-lg-pull-1 { + right: 8.33333333%; + } + + .col-lg-pull-0 { + right: auto; + } + + .col-lg-push-12 { + left: 100%; + } + + .col-lg-push-11 { + left: 91.66666667%; + } + + .col-lg-push-10 { + left: 83.33333333%; + } + + .col-lg-push-9 { + left: 75%; + } + + .col-lg-push-8 { + left: 66.66666667%; + } + + .col-lg-push-7 { + left: 58.33333333%; + } + + .col-lg-push-6 { + left: 50%; + } + + .col-lg-push-5 { + left: 41.66666667%; + } + + .col-lg-push-4 { + left: 33.33333333%; + } + + .col-lg-push-3 { + left: 25%; + } + + .col-lg-push-2 { + left: 16.66666667%; + } + + .col-lg-push-1 { + left: 8.33333333%; + } + + .col-lg-push-0 { + left: auto; + } + + .col-lg-offset-12 { + margin-left: 100%; + } + + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + + .col-lg-offset-0 { + margin-left: 0; + } +} + +table { + background-color: transparent; +} + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} + +th { + text-align: left; +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} + +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} + +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} + +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +.table > tbody + tbody { + border-top: 2px solid #ddd; +} + +.table .table { + background-color: #fff; +} + +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #ddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} + +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} + +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} + +.table-responsive { + min-height: .01%; + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + + .table-responsive > .table { + margin-bottom: 0; + } + + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + + .table-responsive > .table-bordered { + border: 0; + } + + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} + +input[type="file"] { + display: block; +} + +input[type="range"] { + display: block; + width: 100%; +} + +select[multiple], +select[size] { + height: auto; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); +} + +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #999; +} + +.form-control::-webkit-input-placeholder { + color: #999; +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} + +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} + +textarea.form-control { + height: auto; +} + +input[type="search"] { + -webkit-appearance: none; +} + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} + +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} + +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} + +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} + +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} + +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} + +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +select.input-lg { + height: 46px; + line-height: 46px; +} + +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} + +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} + +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} + +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} + +.has-feedback { + position: relative; +} + +.has-feedback .form-control { + padding-right: 42.5px; +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} + +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} + +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} + +.has-success .form-control-feedback { + color: #3c763d; +} + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} + +.has-warning .form-control-feedback { + color: #8a6d3b; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} + +.has-error .form-control-feedback { + color: #a94442; +} + +.has-feedback label ~ .form-control-feedback { + top: 25px; +} + +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .form-control-static { + display: inline-block; + } + + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + + .form-inline .input-group > .form-control { + width: 100%; + } + + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} + +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} + +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} + +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} + +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} + +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} + +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} + +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} + +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} + +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} + +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} + +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} + +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} + +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} + +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} + +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} + +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} + +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} + +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +tr.collapse.in { + display: table-row; +} + +tbody.collapse.in { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar { + margin-left: -5px; +} + +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} + +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} + +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} + +.btn-group-justified > .btn-group .btn { + width: 100%; +} + +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} + +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group .form-control:focus { + z-index: 3; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -1px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} + +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} + +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eee; +} + +.nav > li.disabled > a { + color: #777; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 4px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + + .nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} + +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + + .navbar-collapse.in { + overflow-y: visible; + } + + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} + +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} + +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} + +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} + +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +.navbar-brand > img { + display: block; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle:focus { + outline: 0; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + + .navbar-nav > li { + float: left; + } + + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .navbar-form .form-control-static { + display: inline-block; + } + + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + + .navbar-form .input-group > .form-control { + width: 100%; + } + + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + + .navbar-right { + float: right !important; + margin-right: -15px; + } + + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777; +} + +.navbar-default .navbar-nav > li > a { + color: #777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #ddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777; +} + +.navbar-default .navbar-link:hover { + color: #333; +} + +.navbar-default .btn-link { + color: #777; +} + +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} + +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} + +.navbar-inverse { + background-color: #222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #9d9d9d; +} + +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #9d9d9d; +} + +.navbar-inverse .navbar-link:hover { + color: #fff; +} + +.navbar-inverse .btn-link { + color: #9d9d9d; +} + +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} + +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #777; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eee; + border-color: #ddd; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} + +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +.label-default { + background-color: #777; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} + +.label-primary { + background-color: #337ab7; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} + +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} + +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} + +.jumbotron > hr { + border-top-color: #d5d5d5; +} + +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; +} + +.jumbotron .container { + max-width: 100%; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} + +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} + +.thumbnail .caption { + padding: 9px; + color: #333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} + +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #2b542c; +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #245269; +} + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.alert-warning hr { + border-top-color: #f7e1b5; +} + +.alert-warning .alert-link { + color: #66512c; +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.alert-danger hr { + border-top-color: #e4b9c0; +} + +.alert-danger .alert-link { + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} + +.progress-striped .progress-bar, +.progress-bar-striped { + 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); + 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); + 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); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + 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); + 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); + 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); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + 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); + 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); + 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); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + 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); + 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); + 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); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + 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); + 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); + 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); +} + +.media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media-body { + width: 10000px; +} + +.media-object { + display: block; +} + +.media-object.img-thumbnail { + max-width: none; +} + +.media-right, +.media > .pull-right { + padding-left: 10px; +} + +.media-left, +.media > .pull-left { + padding-right: 10px; +} + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} + +.media-middle { + vertical-align: middle; +} + +.media-bottom { + vertical-align: bottom; +} + +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} + +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +a.list-group-item, +button.list-group-item { + color: #555; +} + +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} + +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} + +button.list-group-item { + width: 100%; + text-align: left; +} + +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} + +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} + +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} + +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} + +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} + +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} + +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} + +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} + +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} + +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} + +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} + +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} + +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} + +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} + +.panel-body { + padding: 15px; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} + +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} + +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.list-group + .panel-footer { + border-top-width: 0; +} + +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} + +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} + +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} + +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} + +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} + +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} + +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} + +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} + +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} + +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} + +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} + +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} + +.panel-group { + margin-bottom: 20px; +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} + +.panel-default { + border-color: #ddd; +} + +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} + +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} + +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} + +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} + +.panel-primary { + border-color: #337ab7; +} + +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} + +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} + +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} + +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} + +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} + +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} + +.panel-warning { + border-color: #faebcc; +} + +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} + +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} + +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} + +.panel-danger { + border-color: #ebccd1; +} + +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} + +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} + +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +.embed-responsive-4by3 { + padding-bottom: 75%; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} + +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} + +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 15px; +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + + .modal-sm { + width: 300px; + } +} + +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + + line-break: auto; +} + +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover > .arrow { + border-width: 11px; +} + +.popover > .arrow:after { + content: ""; + border-width: 10px; +} + +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} + +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} + +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} + +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} + +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} + +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} + +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} + +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} + +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: .5; +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} + +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} + +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.hidden { + display: none !important; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} + +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + + table.visible-xs { + display: table !important; + } + + tr.visible-xs { + display: table-row !important; + } + + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} + +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + + table.visible-sm { + display: table !important; + } + + tr.visible-sm { + display: table-row !important; + } + + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + + table.visible-md { + display: table !important; + } + + tr.visible-md { + display: table-row !important; + } + + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + + table.visible-lg { + display: table !important; + } + + tr.visible-lg { + display: table-row !important; + } + + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} + +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + + table.visible-print { + display: table !important; + } + + tr.visible-print { + display: table-row !important; + } + + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} + +.visible-print-block { + display: none !important; +} + +@media print { + .visible-print-block { + display: block !important; + } +} + +.visible-print-inline { + display: none !important; +} + +@media print { + .visible-print-inline { + display: inline !important; + } +} + +.visible-print-inline-block { + display: none !important; +} + +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} + +@media print { + .hidden-print { + display: none !important; + } +} + +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/src/main/resources/static/css/bootstrap.min.css b/src/main/resources/static/css/bootstrap.min.css new file mode 100644 index 0000000..ed3905e --- /dev/null +++ b/src/main/resources/static/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);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')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{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);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);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);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{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);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);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)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{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);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);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)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{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);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);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)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{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);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);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)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/css/dataTables.bootstrap.min.css b/src/main/resources/static/css/dataTables.bootstrap.min.css new file mode 100644 index 0000000..16ed637 --- /dev/null +++ b/src/main/resources/static/css/dataTables.bootstrap.min.css @@ -0,0 +1 @@ +table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0} diff --git a/src/main/resources/static/css/dataTables.jqueryui.min.css b/src/main/resources/static/css/dataTables.jqueryui.min.css new file mode 100644 index 0000000..a1ec199 --- /dev/null +++ b/src/main/resources/static/css/dataTables.jqueryui.min.css @@ -0,0 +1 @@ +table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}table.dataTable thead th div.DataTables_sort_wrapper{position:relative}table.dataTable thead th div.DataTables_sort_wrapper span{position:absolute;top:50%;margin-top:-8px;right:-18px}table.dataTable thead th.ui-state-default,table.dataTable tfoot th.ui-state-default{border-left-width:0}table.dataTable thead th.ui-state-default:first-child,table.dataTable tfoot th.ui-state-default:first-child{border-left-width:1px}.dataTables_wrapper .dataTables_paginate .fg-button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;border:1px solid transparent}.dataTables_wrapper .dataTables_paginate .fg-button:active{outline:none}.dataTables_wrapper .dataTables_paginate .fg-button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.dataTables_wrapper .dataTables_paginate .fg-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.dataTables_wrapper .ui-widget-header{font-weight:normal}.dataTables_wrapper .ui-toolbar{padding:8px}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:inherit} diff --git a/src/main/resources/static/css/dataTables.uikit.min.css b/src/main/resources/static/css/dataTables.uikit.min.css new file mode 100644 index 0000000..0818eed --- /dev/null +++ b/src/main/resources/static/css/dataTables.uikit.min.css @@ -0,0 +1 @@ +table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.row.uk-grid.dt-merge-grid{margin-top:5px}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th,table.dataTable thead>tr>td{position:relative}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after{position:absolute;top:7px;right:8px;display:block;font-family:'FontAwesome'}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>td.sorting:after{content:"\f0dc";color:#ddd;font-size:0.8em;padding-top:0.12em}table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>td.sorting_asc:after{content:"\f0de"}table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_desc:after{content:"\f0dd"}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.uk-table-condensed>thead>tr>th{padding-right:20px}table.dataTable.uk-table-condensed .sorting:after,table.dataTable.uk-table-condensed .sorting_asc:after,table.dataTable.uk-table-condensed .sorting_desc:after{top:6px;right:6px} diff --git a/src/main/resources/static/css/jquery.dataTables.min.css b/src/main/resources/static/css/jquery.dataTables.min.css new file mode 100644 index 0000000..781de6b --- /dev/null +++ b/src/main/resources/static/css/jquery.dataTables.min.css @@ -0,0 +1 @@ +table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}} diff --git a/src/main/resources/static/css/jquery.dataTables_themeroller.css b/src/main/resources/static/css/jquery.dataTables_themeroller.css new file mode 100644 index 0000000..da0218a --- /dev/null +++ b/src/main/resources/static/css/jquery.dataTables_themeroller.css @@ -0,0 +1,494 @@ +/* + * Table styles + */ +table.dataTable { + width: 100%; + margin: 0 auto; + clear: both; + border-collapse: separate; + border-spacing: 0; + /* + * Header and footer styles + */ + /* + * Body styles + */ +} + +table.dataTable thead th, +table.dataTable thead td, +table.dataTable tfoot th, +table.dataTable tfoot td { + padding: 4px 10px; +} + +table.dataTable thead th, +table.dataTable tfoot th { + font-weight: bold; +} + +table.dataTable thead th:active, +table.dataTable thead td:active { + outline: none; +} + +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting { + cursor: pointer; + *cursor: hand; +} + +table.dataTable thead th div.DataTables_sort_wrapper { + position: relative; + padding-right: 10px; +} + +table.dataTable thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: -5px; +} + +table.dataTable thead th.ui-state-default { + border-right-width: 0; +} + +table.dataTable thead th.ui-state-default:last-child { + border-right-width: 1px; +} + +table.dataTable tbody tr { + background-color: #ffffff; +} + +table.dataTable tbody tr.selected { + background-color: #B0BED9; +} + +table.dataTable tbody th, +table.dataTable tbody td { + padding: 8px 10px; +} + +table.dataTable th.center, +table.dataTable td.center, +table.dataTable td.dataTables_empty { + text-align: center; +} + +table.dataTable th.right, +table.dataTable td.right { + text-align: right; +} + +table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td { + border-top: 1px solid #ddd; +} + +table.dataTable.row-border tbody tr:first-child th, +table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th, +table.dataTable.display tbody tr:first-child td { + border-top: none; +} + +table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; +} + +table.dataTable.cell-border tbody tr th:first-child, +table.dataTable.cell-border tbody tr td:first-child { + border-left: 1px solid #ddd; +} + +table.dataTable.cell-border tbody tr:first-child th, +table.dataTable.cell-border tbody tr:first-child td { + border-top: none; +} + +table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd { + background-color: #f9f9f9; +} + +table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected { + background-color: #abb9d3; +} + +table.dataTable.hover tbody tr:hover, +table.dataTable.hover tbody tr.odd:hover, +table.dataTable.hover tbody tr.even:hover, table.dataTable.display tbody tr:hover, +table.dataTable.display tbody tr.odd:hover, +table.dataTable.display tbody tr.even:hover { + background-color: whitesmoke; +} + +table.dataTable.hover tbody tr:hover.selected, +table.dataTable.hover tbody tr.odd:hover.selected, +table.dataTable.hover tbody tr.even:hover.selected, table.dataTable.display tbody tr:hover.selected, +table.dataTable.display tbody tr.odd:hover.selected, +table.dataTable.display tbody tr.even:hover.selected { + background-color: #a9b7d1; +} + +table.dataTable.order-column tbody tr > .sorting_1, +table.dataTable.order-column tbody tr > .sorting_2, +table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1, +table.dataTable.display tbody tr > .sorting_2, +table.dataTable.display tbody tr > .sorting_3 { + background-color: #f9f9f9; +} + +table.dataTable.order-column tbody tr.selected > .sorting_1, +table.dataTable.order-column tbody tr.selected > .sorting_2, +table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1, +table.dataTable.display tbody tr.selected > .sorting_2, +table.dataTable.display tbody tr.selected > .sorting_3 { + background-color: #acbad4; +} + +table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { + background-color: #f1f1f1; +} + +table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { + background-color: #f3f3f3; +} + +table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { + background-color: whitesmoke; +} + +table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { + background-color: #a6b3cd; +} + +table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { + background-color: #a7b5ce; +} + +table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { + background-color: #a9b6d0; +} + +table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { + background-color: #f9f9f9; +} + +table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { + background-color: #fbfbfb; +} + +table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { + background-color: #fdfdfd; +} + +table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { + background-color: #acbad4; +} + +table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { + background-color: #adbbd6; +} + +table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { + background-color: #afbdd8; +} + +table.dataTable.display tbody tr:hover > .sorting_1, +table.dataTable.display tbody tr.odd:hover > .sorting_1, +table.dataTable.display tbody tr.even:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1, +table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_1, +table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1 { + background-color: #eaeaea; +} + +table.dataTable.display tbody tr:hover > .sorting_2, +table.dataTable.display tbody tr.odd:hover > .sorting_2, +table.dataTable.display tbody tr.even:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2, +table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_2, +table.dataTable.order-column.hover tbody tr.even:hover > .sorting_2 { + background-color: #ebebeb; +} + +table.dataTable.display tbody tr:hover > .sorting_3, +table.dataTable.display tbody tr.odd:hover > .sorting_3, +table.dataTable.display tbody tr.even:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3, +table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_3, +table.dataTable.order-column.hover tbody tr.even:hover > .sorting_3 { + background-color: #eeeeee; +} + +table.dataTable.display tbody tr:hover.selected > .sorting_1, +table.dataTable.display tbody tr.odd:hover.selected > .sorting_1, +table.dataTable.display tbody tr.even:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1, +table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_1, +table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_1 { + background-color: #a1aec7; +} + +table.dataTable.display tbody tr:hover.selected > .sorting_2, +table.dataTable.display tbody tr.odd:hover.selected > .sorting_2, +table.dataTable.display tbody tr.even:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2, +table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_2, +table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_2 { + background-color: #a2afc8; +} + +table.dataTable.display tbody tr:hover.selected > .sorting_3, +table.dataTable.display tbody tr.odd:hover.selected > .sorting_3, +table.dataTable.display tbody tr.even:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3, +table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_3, +table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_3 { + background-color: #a4b2cb; +} + +table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; +} + +table.dataTable.compact thead th, +table.dataTable.compact thead td { + padding: 5px 9px; +} + +table.dataTable.compact tfoot th, +table.dataTable.compact tfoot td { + padding: 5px 9px 3px 9px; +} + +table.dataTable.compact tbody th, +table.dataTable.compact tbody td { + padding: 4px 5px; +} + +table.dataTable th.dt-left, +table.dataTable td.dt-left { + text-align: left; +} + +table.dataTable th.dt-center, +table.dataTable td.dt-center, +table.dataTable td.dataTables_empty { + text-align: center; +} + +table.dataTable th.dt-right, +table.dataTable td.dt-right { + text-align: right; +} + +table.dataTable th.dt-justify, +table.dataTable td.dt-justify { + text-align: justify; +} + +table.dataTable th.dt-nowrap, +table.dataTable td.dt-nowrap { + white-space: nowrap; +} + +table.dataTable thead th.dt-head-left, +table.dataTable thead td.dt-head-left, +table.dataTable tfoot th.dt-head-left, +table.dataTable tfoot td.dt-head-left { + text-align: left; +} + +table.dataTable thead th.dt-head-center, +table.dataTable thead td.dt-head-center, +table.dataTable tfoot th.dt-head-center, +table.dataTable tfoot td.dt-head-center { + text-align: center; +} + +table.dataTable thead th.dt-head-right, +table.dataTable thead td.dt-head-right, +table.dataTable tfoot th.dt-head-right, +table.dataTable tfoot td.dt-head-right { + text-align: right; +} + +table.dataTable thead th.dt-head-justify, +table.dataTable thead td.dt-head-justify, +table.dataTable tfoot th.dt-head-justify, +table.dataTable tfoot td.dt-head-justify { + text-align: justify; +} + +table.dataTable thead th.dt-head-nowrap, +table.dataTable thead td.dt-head-nowrap, +table.dataTable tfoot th.dt-head-nowrap, +table.dataTable tfoot td.dt-head-nowrap { + white-space: nowrap; +} + +table.dataTable tbody th.dt-body-left, +table.dataTable tbody td.dt-body-left { + text-align: left; +} + +table.dataTable tbody th.dt-body-center, +table.dataTable tbody td.dt-body-center { + text-align: center; +} + +table.dataTable tbody th.dt-body-right, +table.dataTable tbody td.dt-body-right { + text-align: right; +} + +table.dataTable tbody th.dt-body-justify, +table.dataTable tbody td.dt-body-justify { + text-align: justify; +} + +table.dataTable tbody th.dt-body-nowrap, +table.dataTable tbody td.dt-body-nowrap { + white-space: nowrap; +} + +table.dataTable, +table.dataTable th, +table.dataTable td { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* + * Control feature layout + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; + zoom: 1; +} + +.dataTables_wrapper .dataTables_length { + float: left; +} + +.dataTables_wrapper .dataTables_filter { + float: right; + text-align: right; +} + +.dataTables_wrapper .dataTables_filter input { + margin-left: 0.5em; +} + +.dataTables_wrapper .dataTables_info { + clear: both; + float: left; + padding-top: 0.55em; +} + +.dataTables_wrapper .dataTables_paginate { + float: right; + text-align: right; +} + +.dataTables_wrapper .dataTables_paginate .fg-button { + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + *cursor: hand; + color: #333 !important; + border: 1px solid transparent; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:active { + outline: none; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.dataTables_wrapper .dataTables_paginate .fg-button:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.dataTables_wrapper .dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 40px; + margin-left: -50%; + margin-top: -25px; + padding-top: 20px; + text-align: center; + font-size: 1.2em; + background-color: white; + background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0))); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + /* FF3.6+ */ + background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + /* IE10+ */ + background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + /* Opera 11.10+ */ + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + /* W3C */ +} + +.dataTables_wrapper .dataTables_length, +.dataTables_wrapper .dataTables_filter, +.dataTables_wrapper .dataTables_info, +.dataTables_wrapper .dataTables_processing, +.dataTables_wrapper .dataTables_paginate { + color: #333; +} + +.dataTables_wrapper .dataTables_scroll { + clear: both; +} + +.dataTables_wrapper .dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} + +.dataTables_wrapper .ui-widget-header { + font-weight: normal; +} + +.dataTables_wrapper .ui-toolbar { + padding: 8px; +} + +.dataTables_wrapper:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; +} + +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter, + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_paginate { + float: none; + text-align: center; + } + + .dataTables_wrapper .dataTables_filter, + .dataTables_wrapper .dataTables_paginate { + margin-top: 0.5em; + } +} diff --git a/src/main/resources/static/css/main.css b/src/main/resources/static/css/main.css new file mode 100644 index 0000000..4f226aa --- /dev/null +++ b/src/main/resources/static/css/main.css @@ -0,0 +1,302 @@ +body { + background-color: transparent; +} + +html { + background: url("/images/bg.png") no-repeat center center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +img { + display: block; + margin-left: auto; + margin-right: auto; +} + +.form-basic { + max-width: 640px; + margin: 0 auto; + padding: 55px; + box-sizing: border-box; + background-color: #ffffff; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); + font: bold 14px sans-serif; + text-align: center; +} + +.form-basic .form-row { + text-align: left; + margin-bottom: 22px; +} + +.form-basic .form-title-row { + text-align: center; + margin-bottom: 55px; +} + +/* The form title */ +.form-basic h1 { + display: inline-block; + box-sizing: border-box; + color: #4c565e; + font-size: 24px; + padding: 0 10px 15px; + border-bottom: 2px solid #6caee0; + margin: 0; +} + +.form-basic .form-row > label span { + display: inline-block; + box-sizing: border-box; + color: #5F5F5F; + width: 180px; + text-align: right; + vertical-align: top; + padding: 12px 25px; +} + +.form-basic input { + color: #5f5f5f; + box-sizing: border-box; + width: 240px; + box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.08); + padding: 12px; + border: 1px solid #dbdbdb; +} + +.form-basic input[type=radio], .form-basic input[type=checkbox] { + box-shadow: none; + width: auto; +} + +.form-basic input[type=checkbox] { + margin-top: 13px; +} + +.form-basic select { + background-color: #ffffff; + color: #5f5f5f; + box-sizing: border-box; + max-width: 240px; + box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.08); + padding: 12px 8px; + border: 1px solid #dbdbdb; +} + +.form-basic textarea { + color: #5f5f5f; + box-sizing: border-box; + width: 240px; + height: 80px; + box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.08); + font: normal 13px sans-serif; + padding: 12px; + border: 1px solid #dbdbdb; + resize: vertical; +} + +.form-basic .form-radio-buttons { + display: inline-block; + vertical-align: top; +} + +.form-basic .form-radio-buttons > div { + margin-top: 10px; +} + +.form-basic .form-radio-buttons label span { + margin-left: 8px; + color: #5f5f5f; + font-weight: normal; +} + +.form-basic .form-radio-buttons input { + width: auto; +} + +.form-basic button { + display: block; + border-radius: 2px; + background-color: #6caee0; + color: #ffffff; + font-weight: bold; + box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.08); + padding: 14px 22px; + border: 0; + margin: 40px 183px 0; +} + +/* Making the form responsive. Remove this media query + if you don't need the form to work on mobile devices. */ +@media ( max-width: 600px) { + .form-basic { + padding: 30px; + max-width: 480px; + } + + .form-basic .form-row { + max-width: 300px; + margin: 25px auto; + text-align: left; + } + + .form-basic .form-title-row { + margin-bottom: 50px; + } + + .form-basic .form-row > label span { + display: block; + text-align: left; + padding: 0 0 15px; + } + + .form-basic select { + width: 240px; + } + + .form-basic input[type=checkbox] { + margin-top: 0; + } + + .form-basic .form-radio-buttons > div { + margin: 0 0 10px; + } + + .form-basic button { + margin: 0; + } +} + +.main { + margin-top: 70px; +} + +.main-center { + margin-top: 30px; + margin: 0 auto; + max-width: 330px; + padding: 40px 40px; +} + +.responstable { + margin: 1em 0; + width: 100%; + overflow: hidden; + background: #FFF; + color: #024457; + border-radius: 10px; + border: 1px solid #167F92; +} + +.responstable tr { + border: 1px solid #D9E4E6; +} + +.responstable tr:nth-child(odd) { + background-color: #EAF3F3; +} + +.responstable th { + display: none; + border: 1px solid #FFF; + background-color: #167F92; + color: #FFF; + padding: 1em; +} + +.responstable th:first-child { + display: table-cell; + text-align: center; +} + +.responstable th:nth-child(2) { + display: table-cell; +} + +.responstable th:nth-child(2) span { + display: none; +} + +.responstable th:nth-child(2):after { + content: attr(data-th); +} + +@media ( min-width: 480px) { + .responstable th:nth-child(2) span { + display: block; + } + + .responstable th:nth-child(2):after { + display: none; + } +} + +.responstable td { + display: block; + word-wrap: break-word; + max-width: 7em; +} + +.responstable td:first-child { + display: table-cell; + text-align: center; + border-right: 1px solid #D9E4E6; +} + +@media ( min-width: 480px) { + .responstable td { + border: 1px solid #D9E4E6; + } +} + +.responstable th, .responstable td { + text-align: left; + margin: .5em 1em; +} + +@media ( min-width: 480px) { + .responstable th, .responstable td { + display: table-cell; + padding: 1em; + } +} + +body { + padding: 0 2em; + font-family: Arial, sans-serif; + color: #024457; + /*background: #f2f2f2;*/ +} + +h1 { + font-family: Verdana; + font-weight: normal; + /*color: #024457;*/ +} + +h1 span { + color: #167F92; +} + +.box { + border: 2px solid red; +} + +hr { + -moz-border-bottom-colors: none; + -moz-border-image: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + border-color: #EEEEEE -moz-use-text-color #FFFFFF; + border-style: solid none; + border-width: 1px 0; + margin: 18px 0; + border: 0; + height: 1px; + background: #333; + background-image: linear-gradient(to right, #ccc, #333, #ccc); +} \ No newline at end of file diff --git a/src/main/resources/static/images/banner.png b/src/main/resources/static/images/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..78ed33f09e91a1093e5f3adddac4e34bc99a4fe2 GIT binary patch literal 24395 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 U*k~4|f00u7SciG*7<4@KAO5ZLRR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/js/bootbox.min.js b/src/main/resources/static/js/bootbox.min.js new file mode 100644 index 0000000..0dc0cbd --- /dev/null +++ b/src/main/resources/static/js/bootbox.min.js @@ -0,0 +1,6 @@ +/** + * bootbox.js v4.4.0 + * + * http://bootboxjs.com/license.txt + */ +!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"

",header:"",footer:"",closeButton:"",form:"
",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/src/main/resources/static/js/bootstrap-datetimepicker.min.js b/src/main/resources/static/js/bootstrap-datetimepicker.min.js new file mode 100644 index 0000000..00fd8d3 --- /dev/null +++ b/src/main/resources/static/js/bootstrap-datetimepicker.min.js @@ -0,0 +1 @@ +(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof exports==="object"){a(require("jquery"))}else{a(jQuery)}}}(function(f,c){if(!("indexOf" in Array.prototype)){Array.prototype.indexOf=function(k,j){if(j===c){j=0}if(j<0){j+=this.length}if(j<0){j=0}for(var l=this.length;j=this.startDate&&j<=this.endDate){this.date=j;this.setValue();this.viewDate=this.date;this.fill()}else{this.element.trigger({type:"outOfRange",date:j,startDate:this.startDate,endDate:this.endDate})}},setFormat:function(k){this.format=g.parseFormat(k,this.formatType);var j;if(this.isInput){j=this.element}else{if(this.component){j=this.element.find("input")}}if(j&&j.val()){this.setValue()}},setValue:function(){var j=this.getFormattedDate();if(!this.isInput){if(this.component){this.element.find("input").val(j)}this.element.data("date",j)}else{this.element.val(j)}if(this.linkField){f("#"+this.linkField).val(this.getFormattedDate(this.linkFormat))}},getFormattedDate:function(j){if(j==c){j=this.format}return g.formatDate(this.date,j,this.language,this.formatType,this.timezone)},setStartDate:function(j){this.startDate=j||-Infinity;if(this.startDate!==-Infinity){this.startDate=g.parseDate(this.startDate,this.format,this.language,this.formatType,this.timezone)}this.update();this.updateNavArrows()},setEndDate:function(j){this.endDate=j||Infinity;if(this.endDate!==Infinity){this.endDate=g.parseDate(this.endDate,this.format,this.language,this.formatType,this.timezone)}this.update();this.updateNavArrows()},setDatesDisabled:function(j){this.datesDisabled=j||[];if(!f.isArray(this.datesDisabled)){this.datesDisabled=this.datesDisabled.split(/,\s*/)}this.datesDisabled=f.map(this.datesDisabled,function(k){return g.parseDate(k,this.format,this.language,this.formatType,this.timezone).toDateString()});this.update();this.updateNavArrows()},setTitle:function(j,k){return this.picker.find(j).find("th:eq(1)").text(this.title===false?k:this.title)},setDaysOfWeekDisabled:function(j){this.daysOfWeekDisabled=j||[];if(!f.isArray(this.daysOfWeekDisabled)){this.daysOfWeekDisabled=this.daysOfWeekDisabled.split(/,\s*/)}this.daysOfWeekDisabled=f.map(this.daysOfWeekDisabled,function(k){return parseInt(k,10)});this.update();this.updateNavArrows()},setMinutesDisabled:function(j){this.minutesDisabled=j||[];if(!f.isArray(this.minutesDisabled)){this.minutesDisabled=this.minutesDisabled.split(/,\s*/)}this.minutesDisabled=f.map(this.minutesDisabled,function(k){return parseInt(k,10)});this.update();this.updateNavArrows()},setHoursDisabled:function(j){this.hoursDisabled=j||[];if(!f.isArray(this.hoursDisabled)){this.hoursDisabled=this.hoursDisabled.split(/,\s*/)}this.hoursDisabled=f.map(this.hoursDisabled,function(k){return parseInt(k,10)});this.update();this.updateNavArrows()},place:function(){if(this.isInline){return}if(!this.zIndex){var k=0;f("div").each(function(){var p=parseInt(f(this).css("zIndex"),10);if(p>k){k=p}});this.zIndex=k+10}var o,n,m,l;if(this.container instanceof f){l=this.container.offset()}else{l=f(this.container).offset()}if(this.component){o=this.component.offset();m=o.left;if(this.pickerPosition=="bottom-left"||this.pickerPosition=="top-left"){m+=this.component.outerWidth()-this.picker.outerWidth()}}else{o=this.element.offset();m=o.left;if(this.pickerPosition=="bottom-left"||this.pickerPosition=="top-left"){m+=this.element.outerWidth()-this.picker.outerWidth()}}var j=document.body.clientWidth||window.innerWidth;if(m+220>j){m=j-220}if(this.pickerPosition=="top-left"||this.pickerPosition=="top-right"){n=o.top-this.picker.outerHeight()}else{n=o.top+this.height}n=n-l.top;m=m-l.left;this.picker.css({top:n,left:m,zIndex:this.zIndex})},update:function(){var j,k=false;if(arguments&&arguments.length&&(typeof arguments[0]==="string"||arguments[0] instanceof Date)){j=arguments[0];k=true}else{j=(this.isInput?this.element.val():this.element.find("input").val())||this.element.data("date")||this.initialDate;if(typeof j=="string"||j instanceof String){j=j.replace(/^\s+|\s+$/g,"")}}if(!j){j=new Date();k=false}this.date=g.parseDate(j,this.format,this.language,this.formatType,this.timezone);if(k){this.setValue()}if(this.datethis.endDate){this.viewDate=new Date(this.endDate)}else{this.viewDate=new Date(this.date)}}this.fill()},fillDow:function(){var j=this.weekStart,k="";while(j'+a[this.language].daysMin[(j++)%7]+""}k+="";this.picker.find(".datetimepicker-days thead").append(k)},fillMonths:function(){var k="",j=0;while(j<12){k+=''+a[this.language].monthsShort[j++]+""}this.picker.find(".datetimepicker-months td").html(k)},fill:function(){if(this.date==null||this.viewDate==null){return}var H=new Date(this.viewDate),u=H.getUTCFullYear(),I=H.getUTCMonth(),n=H.getUTCDate(),D=H.getUTCHours(),y=H.getUTCMinutes(),z=this.startDate!==-Infinity?this.startDate.getUTCFullYear():-Infinity,E=this.startDate!==-Infinity?this.startDate.getUTCMonth():-Infinity,q=this.endDate!==Infinity?this.endDate.getUTCFullYear():Infinity,A=this.endDate!==Infinity?this.endDate.getUTCMonth()+1:Infinity,r=(new h(this.date.getUTCFullYear(),this.date.getUTCMonth(),this.date.getUTCDate())).valueOf(),G=new Date();this.setTitle(".datetimepicker-days",a[this.language].months[I]+" "+u);if(this.formatViewType=="time"){var k=this.getFormattedDate();this.setTitle(".datetimepicker-hours",k);this.setTitle(".datetimepicker-minutes",k)}else{this.setTitle(".datetimepicker-hours",n+" "+a[this.language].months[I]+" "+u);this.setTitle(".datetimepicker-minutes",n+" "+a[this.language].months[I]+" "+u)}this.picker.find("tfoot th.today").text(a[this.language].today||a.en.today).toggle(this.todayBtn!==false);this.picker.find("tfoot th.clear").text(a[this.language].clear||a.en.clear).toggle(this.clearBtn!==false);this.updateNavArrows();this.fillMonths();var K=h(u,I-1,28,0,0,0,0),C=g.getDaysInMonth(K.getUTCFullYear(),K.getUTCMonth());K.setUTCDate(C);K.setUTCDate(C-(K.getUTCDay()-this.weekStart+7)%7);var j=new Date(K);j.setUTCDate(j.getUTCDate()+42);j=j.valueOf();var s=[];var v;while(K.valueOf()")}v="";if(K.getUTCFullYear()u||(K.getUTCFullYear()==u&&K.getUTCMonth()>I)){v+=" new"}}if(this.todayHighlight&&K.getUTCFullYear()==G.getFullYear()&&K.getUTCMonth()==G.getMonth()&&K.getUTCDate()==G.getDate()){v+=" today"}if(K.valueOf()==r){v+=" active"}if((K.valueOf()+86400000)<=this.startDate||K.valueOf()>this.endDate||f.inArray(K.getUTCDay(),this.daysOfWeekDisabled)!==-1||f.inArray(K.toDateString(),this.datesDisabled)!==-1){v+=" disabled"}s.push(''+K.getUTCDate()+"");if(K.getUTCDay()==this.weekEnd){s.push("")}K.setUTCDate(K.getUTCDate()+1)}this.picker.find(".datetimepicker-days tbody").empty().append(s.join(""));s=[];var w="",F="",t="";var l=this.hoursDisabled||[];for(var B=0;B<24;B++){if(l.indexOf(B)!==-1){continue}var x=h(u,I,n,B);v="";if((x.valueOf()+3600000)<=this.startDate||x.valueOf()>this.endDate){v+=" disabled"}else{if(D==B){v+=" active"}}if(this.showMeridian&&a[this.language].meridiem.length==2){F=(B<12?a[this.language].meridiem[0]:a[this.language].meridiem[1]);if(F!=t){if(t!=""){s.push("")}s.push('
'+F.toUpperCase()+"")}t=F;w=(B%12?B%12:12);s.push(''+w+"");if(B==23){s.push("
")}}else{w=B+":00";s.push(''+w+"")}}this.picker.find(".datetimepicker-hours td").html(s.join(""));s=[];w="",F="",t="";var m=this.minutesDisabled||[];for(var B=0;B<60;B+=this.minuteStep){if(m.indexOf(B)!==-1){continue}var x=h(u,I,n,D,B,0);v="";if(x.valueOf()this.endDate){v+=" disabled"}else{if(Math.floor(y/this.minuteStep)==Math.floor(B/this.minuteStep)){v+=" active"}}if(this.showMeridian&&a[this.language].meridiem.length==2){F=(D<12?a[this.language].meridiem[0]:a[this.language].meridiem[1]);if(F!=t){if(t!=""){s.push("")}s.push('
'+F.toUpperCase()+"")}t=F;w=(D%12?D%12:12);s.push(''+w+":"+(B<10?"0"+B:B)+"");if(B==59){s.push("
")}}else{w=B+":00";s.push(''+D+":"+(B<10?"0"+B:B)+"")}}this.picker.find(".datetimepicker-minutes td").html(s.join(""));var L=this.date.getUTCFullYear();var p=this.setTitle(".datetimepicker-months",u).end().find("span").removeClass("active");if(L==u){var o=p.length-12;p.eq(this.date.getUTCMonth()+o).addClass("active")}if(uq){p.addClass("disabled")}if(u==z){p.slice(0,E).addClass("disabled")}if(u==q){p.slice(A).addClass("disabled")}s="";u=parseInt(u/10,10)*10;var J=this.setTitle(".datetimepicker-years",u+"-"+(u+9)).end().find("td");u-=1;for(var B=-1;B<11;B++){s+='q?" disabled":"")+'">'+u+"";u+=1}J.html(s);this.place()},updateNavArrows:function(){var n=new Date(this.viewDate),l=n.getUTCFullYear(),m=n.getUTCMonth(),k=n.getUTCDate(),j=n.getUTCHours();switch(this.viewMode){case 0:if(this.startDate!==-Infinity&&l<=this.startDate.getUTCFullYear()&&m<=this.startDate.getUTCMonth()&&k<=this.startDate.getUTCDate()&&j<=this.startDate.getUTCHours()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(this.endDate!==Infinity&&l>=this.endDate.getUTCFullYear()&&m>=this.endDate.getUTCMonth()&&k>=this.endDate.getUTCDate()&&j>=this.endDate.getUTCHours()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 1:if(this.startDate!==-Infinity&&l<=this.startDate.getUTCFullYear()&&m<=this.startDate.getUTCMonth()&&k<=this.startDate.getUTCDate()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(this.endDate!==Infinity&&l>=this.endDate.getUTCFullYear()&&m>=this.endDate.getUTCMonth()&&k>=this.endDate.getUTCDate()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 2:if(this.startDate!==-Infinity&&l<=this.startDate.getUTCFullYear()&&m<=this.startDate.getUTCMonth()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(this.endDate!==Infinity&&l>=this.endDate.getUTCFullYear()&&m>=this.endDate.getUTCMonth()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 3:case 4:if(this.startDate!==-Infinity&&l<=this.startDate.getUTCFullYear()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(this.endDate!==Infinity&&l>=this.endDate.getUTCFullYear()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break}},mousewheel:function(k){k.preventDefault();k.stopPropagation();if(this.wheelPause){return}this.wheelPause=true;var j=k.originalEvent;var m=j.wheelDelta;var l=m>0?1:(m===0)?0:-1;if(this.wheelViewModeNavigationInverseDirection){l=-l}this.showMode(l);setTimeout(f.proxy(function(){this.wheelPause=false},this),this.wheelViewModeNavigationDelay)},click:function(n){n.stopPropagation();n.preventDefault();var o=f(n.target).closest("span, td, th, legend");if(o.is("."+this.icontype)){o=f(o).parent().closest("span, td, th, legend")}if(o.length==1){if(o.is(".disabled")){this.element.trigger({type:"outOfRange",date:this.viewDate,startDate:this.startDate,endDate:this.endDate});return}switch(o[0].nodeName.toLowerCase()){case"th":switch(o[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var j=g.modes[this.viewMode].navStep*(o[0].className=="prev"?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveHour(this.viewDate,j);break;case 1:this.viewDate=this.moveDate(this.viewDate,j);break;case 2:this.viewDate=this.moveMonth(this.viewDate,j);break;case 3:case 4:this.viewDate=this.moveYear(this.viewDate,j);break}this.fill();this.element.trigger({type:o[0].className+":"+this.convertViewModeText(this.viewMode),date:this.viewDate,startDate:this.startDate,endDate:this.endDate});break;case"clear":this.reset();if(this.autoclose){this.hide()}break;case"today":var k=new Date();k=h(k.getFullYear(),k.getMonth(),k.getDate(),k.getHours(),k.getMinutes(),k.getSeconds(),0);if(kthis.endDate){k=this.endDate}}this.viewMode=this.startViewMode;this.showMode(0);this._setDate(k);this.fill();if(this.autoclose){this.hide()}break}break;case"span":if(!o.is(".disabled")){var q=this.viewDate.getUTCFullYear(),p=this.viewDate.getUTCMonth(),r=this.viewDate.getUTCDate(),s=this.viewDate.getUTCHours(),l=this.viewDate.getUTCMinutes(),t=this.viewDate.getUTCSeconds();if(o.is(".month")){this.viewDate.setUTCDate(1);p=o.parent().find("span").index(o);r=this.viewDate.getUTCDate();this.viewDate.setUTCMonth(p);this.element.trigger({type:"changeMonth",date:this.viewDate});if(this.viewSelect>=3){this._setDate(h(q,p,r,s,l,t,0))}}else{if(o.is(".year")){this.viewDate.setUTCDate(1);q=parseInt(o.text(),10)||0;this.viewDate.setUTCFullYear(q);this.element.trigger({type:"changeYear",date:this.viewDate});if(this.viewSelect>=4){this._setDate(h(q,p,r,s,l,t,0))}}else{if(o.is(".hour")){s=parseInt(o.text(),10)||0;if(o.hasClass("hour_am")||o.hasClass("hour_pm")){if(s==12&&o.hasClass("hour_am")){s=0}else{if(s!=12&&o.hasClass("hour_pm")){s+=12}}}this.viewDate.setUTCHours(s);this.element.trigger({type:"changeHour",date:this.viewDate});if(this.viewSelect>=1){this._setDate(h(q,p,r,s,l,t,0))}}else{if(o.is(".minute")){l=parseInt(o.text().substr(o.text().indexOf(":")+1),10)||0;this.viewDate.setUTCMinutes(l);this.element.trigger({type:"changeMinute",date:this.viewDate});if(this.viewSelect>=0){this._setDate(h(q,p,r,s,l,t,0))}}}}}if(this.viewMode!=0){var m=this.viewMode;this.showMode(-1);this.fill();if(m==this.viewMode&&this.autoclose){this.hide()}}else{this.fill();if(this.autoclose){this.hide()}}}break;case"td":if(o.is(".day")&&!o.is(".disabled")){var r=parseInt(o.text(),10)||1;var q=this.viewDate.getUTCFullYear(),p=this.viewDate.getUTCMonth(),s=this.viewDate.getUTCHours(),l=this.viewDate.getUTCMinutes(),t=this.viewDate.getUTCSeconds();if(o.is(".old")){if(p===0){p=11;q-=1}else{p-=1}}else{if(o.is(".new")){if(p==11){p=0;q+=1}else{p+=1}}}this.viewDate.setUTCFullYear(q);this.viewDate.setUTCMonth(p,r);this.element.trigger({type:"changeDay",date:this.viewDate});if(this.viewSelect>=2){this._setDate(h(q,p,r,s,l,t,0))}}var m=this.viewMode;this.showMode(-1);this.fill();if(m==this.viewMode&&this.autoclose){this.hide()}break}}},_setDate:function(j,l){if(!l||l=="date"){this.date=j}if(!l||l=="view"){this.viewDate=j}this.fill();this.setValue();var k;if(this.isInput){k=this.element}else{if(this.component){k=this.element.find("input")}}if(k){k.change();if(this.autoclose&&(!l||l=="date")){}}this.element.trigger({type:"changeDate",date:this.getDate()});if(j==null){this.date=this.viewDate}},moveMinute:function(k,j){if(!j){return k}var l=new Date(k.valueOf());l.setUTCMinutes(l.getUTCMinutes()+(j*this.minuteStep));return l},moveHour:function(k,j){if(!j){return k}var l=new Date(k.valueOf());l.setUTCHours(l.getUTCHours()+j);return l},moveDate:function(k,j){if(!j){return k}var l=new Date(k.valueOf());l.setUTCDate(l.getUTCDate()+j);return l},moveMonth:function(j,k){if(!k){return j}var n=new Date(j.valueOf()),r=n.getUTCDate(),o=n.getUTCMonth(),m=Math.abs(k),q,p;k=k>0?1:-1;if(m==1){p=k==-1?function(){return n.getUTCMonth()==o}:function(){return n.getUTCMonth()!=q};q=o+k;n.setUTCMonth(q);if(q<0||q>11){q=(q+12)%12}}else{for(var l=0;l=this.startDate&&j<=this.endDate},keydown:function(n){if(this.picker.is(":not(:visible)")){if(n.keyCode==27){this.show()}return}var p=false,k,q,o,r,j;switch(n.keyCode){case 27:this.hide();n.preventDefault();break;case 37:case 39:if(!this.keyboardNavigation){break}k=n.keyCode==37?-1:1;viewMode=this.viewMode;if(n.ctrlKey){viewMode+=2}else{if(n.shiftKey){viewMode+=1}}if(viewMode==4){r=this.moveYear(this.date,k);j=this.moveYear(this.viewDate,k)}else{if(viewMode==3){r=this.moveMonth(this.date,k);j=this.moveMonth(this.viewDate,k)}else{if(viewMode==2){r=this.moveDate(this.date,k);j=this.moveDate(this.viewDate,k)}else{if(viewMode==1){r=this.moveHour(this.date,k);j=this.moveHour(this.viewDate,k)}else{if(viewMode==0){r=this.moveMinute(this.date,k);j=this.moveMinute(this.viewDate,k)}}}}}if(this.dateWithinRange(r)){this.date=r;this.viewDate=j;this.setValue();this.update();n.preventDefault();p=true}break;case 38:case 40:if(!this.keyboardNavigation){break}k=n.keyCode==38?-1:1;viewMode=this.viewMode;if(n.ctrlKey){viewMode+=2}else{if(n.shiftKey){viewMode+=1}}if(viewMode==4){r=this.moveYear(this.date,k);j=this.moveYear(this.viewDate,k)}else{if(viewMode==3){r=this.moveMonth(this.date,k);j=this.moveMonth(this.viewDate,k)}else{if(viewMode==2){r=this.moveDate(this.date,k*7);j=this.moveDate(this.viewDate,k*7)}else{if(viewMode==1){if(this.showMeridian){r=this.moveHour(this.date,k*6);j=this.moveHour(this.viewDate,k*6)}else{r=this.moveHour(this.date,k*4);j=this.moveHour(this.viewDate,k*4)}}else{if(viewMode==0){r=this.moveMinute(this.date,k*4);j=this.moveMinute(this.viewDate,k*4)}}}}}if(this.dateWithinRange(r)){this.date=r;this.viewDate=j;this.setValue();this.update();n.preventDefault();p=true}break;case 13:if(this.viewMode!=0){var m=this.viewMode;this.showMode(-1);this.fill();if(m==this.viewMode&&this.autoclose){this.hide()}}else{this.fill();if(this.autoclose){this.hide()}}n.preventDefault();break;case 9:this.hide();break}if(p){var l;if(this.isInput){l=this.element}else{if(this.component){l=this.element.find("input")}}if(l){l.change()}this.element.trigger({type:"changeDate",date:this.getDate()})}},showMode:function(j){if(j){var k=Math.max(0,Math.min(g.modes.length-1,this.viewMode+j));if(k>=this.minView&&k<=this.maxView){this.element.trigger({type:"changeMode",date:this.viewDate,oldViewMode:this.viewMode,newViewMode:k});this.viewMode=k}}this.picker.find(">div").hide().filter(".datetimepicker-"+g.modes[this.viewMode].clsName).css("display","block");this.updateNavArrows()},reset:function(j){this._setDate(null,"date")},convertViewModeText:function(j){switch(j){case 4:return"decade";case 3:return"year";case 2:return"month";case 1:return"day";case 0:return"hour"}}};var b=f.fn.datetimepicker;f.fn.datetimepicker=function(l){var j=Array.apply(null,arguments);j.shift();var k;this.each(function(){var o=f(this),n=o.data("datetimepicker"),m=typeof l=="object"&&l;if(!n){o.data("datetimepicker",(n=new i(this,f.extend({},f.fn.datetimepicker.defaults,m))))}if(typeof l=="string"&&typeof n[l]=="function"){k=n[l].apply(n,j);if(k!==c){return false}}});if(k!==c){return k}else{return this}};f.fn.datetimepicker.defaults={};f.fn.datetimepicker.Constructor=i;var a=f.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["am","pm"],suffix:["st","nd","rd","th"],today:"Today",clear:"Clear"}};var g={modes:[{clsName:"minutes",navFnc:"Hours",navStep:1},{clsName:"hours",navFnc:"Date",navStep:1},{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(j){return(((j%4===0)&&(j%100!==0))||(j%400===0))},getDaysInMonth:function(j,k){return[31,(g.isLeapYear(j)?29:28),31,30,31,30,31,31,30,31,30,31][k]},getDefaultFormat:function(j,k){if(j=="standard"){if(k=="input"){return"yyyy-mm-dd hh:ii"}else{return"yyyy-mm-dd hh:ii:ss"}}else{if(j=="php"){if(k=="input"){return"Y-m-d H:i"}else{return"Y-m-d H:i:s"}}else{throw new Error("Invalid format type.")}}},validParts:function(j){if(j=="standard"){return/t|hh?|HH?|p|P|z|Z|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g}else{if(j=="php"){return/[dDjlNwzFmMnStyYaABgGhHis]/g}else{throw new Error("Invalid format type.")}}},nonpunctuation:/[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,parseFormat:function(m,k){var j=m.replace(this.validParts(k),"\0").split("\0"),l=m.match(this.validParts(k));if(!j||!j.length||!l||l.length==0){throw new Error("Invalid date format.")}return{separators:j,parts:l}},parseDate:function(A,y,v,j,r){if(A instanceof Date){var u=new Date(A.valueOf()-A.getTimezoneOffset()*60000);u.setMilliseconds(0);return u}if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(A)){y=this.parseFormat("yyyy-mm-dd",j)}if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(A)){y=this.parseFormat("yyyy-mm-dd hh:ii",j)}if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(A)){y=this.parseFormat("yyyy-mm-dd hh:ii:ss",j)}if(/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(A)){var l=/([-+]\d+)([dmwy])/,q=A.match(/([-+]\d+)([dmwy])/g),t,p;A=new Date();for(var x=0;x',headTemplateV3:' ',contTemplate:'',footTemplate:''};g.template='
'+g.headTemplate+g.contTemplate+g.footTemplate+'
'+g.headTemplate+g.contTemplate+g.footTemplate+'
'+g.headTemplate+""+g.footTemplate+'
'+g.headTemplate+g.contTemplate+g.footTemplate+'
'+g.headTemplate+g.contTemplate+g.footTemplate+"
";g.templateV3='
'+g.headTemplateV3+g.contTemplate+g.footTemplate+'
'+g.headTemplateV3+g.contTemplate+g.footTemplate+'
'+g.headTemplateV3+""+g.footTemplate+'
'+g.headTemplateV3+g.contTemplate+g.footTemplate+'
'+g.headTemplateV3+g.contTemplate+g.footTemplate+"
";f.fn.datetimepicker.DPGlobal=g;f.fn.datetimepicker.noConflict=function(){f.fn.datetimepicker=b;return this};f(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api",'[data-provide="datetimepicker"]',function(k){var j=f(this);if(j.data("datetimepicker")){return}k.preventDefault();j.datetimepicker("show")});f(function(){f('[data-provide="datetimepicker-inline"]').datetimepicker()})})); \ No newline at end of file diff --git a/src/main/resources/static/js/bootstrap.js b/src/main/resources/static/js/bootstrap.js new file mode 100644 index 0000000..399af5d --- /dev/null +++ b/src/main/resources/static/js/bootstrap.js @@ -0,0 +1,2395 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ + +if (typeof jQuery === 'undefined') { + throw new Error('Bootstrap\'s JavaScript requires jQuery') +} + ++function ($) { + 'use strict'; + var version = $.fn.jquery.split(' ')[0].split('.'); + if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') + } +}(jQuery); + +/* ======================================================================== + * Bootstrap: transition.js v3.3.7 + * http://getbootstrap.com/javascript/#transitions + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap'); + + var transEndEventNames = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return {end: transEndEventNames[name]} + } + } + + return false // explicit for ie8 ( ._.) + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false; + var $el = this; + $(this).one('bsTransitionEnd', function () { + called = true + }); + var callback = function () { + if (!called) $($el).trigger($.support.transition.end) + }; + setTimeout(callback, duration); + return this + }; + + $(function () { + $.support.transition = transitionEnd(); + + if (!$.support.transition) return; + + $.event.special.bsTransitionEnd = { + bindType: $.support.transition.end, + delegateType: $.support.transition.end, + handle: function (e) { + if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + } + } + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.3.7 + * http://getbootstrap.com/javascript/#alerts + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]'; + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + }; + + Alert.VERSION = '3.3.7'; + + Alert.TRANSITION_DURATION = 150; + + Alert.prototype.close = function (e) { + var $this = $(this); + var selector = $this.attr('data-target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector === '#' ? [] : selector); + + if (e) e.preventDefault(); + + if (!$parent.length) { + $parent = $this.closest('.alert') + } + + $parent.trigger(e = $.Event('close.bs.alert')); + + if (e.isDefaultPrevented()) return; + + $parent.removeClass('in'); + + function removeElement() { + // detach from parent, fire event then clean up data + $parent.detach().trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one('bsTransitionEnd', removeElement) + .emulateTransitionEnd(Alert.TRANSITION_DURATION) : + removeElement() + }; + + + // ALERT PLUGIN DEFINITION + // ======================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.alert'); + + if (!data) $this.data('bs.alert', (data = new Alert(this))); + if (typeof option == 'string') data[option].call($this) + }) + } + + var old = $.fn.alert; + + $.fn.alert = Plugin; + $.fn.alert.Constructor = Alert; + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old; + return this + }; + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.3.7 + * http://getbootstrap.com/javascript/#buttons + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, Button.DEFAULTS, options); + this.isLoading = false + }; + + Button.VERSION = '3.3.7'; + + Button.DEFAULTS = { + loadingText: 'loading...' + }; + + Button.prototype.setState = function (state) { + var d = 'disabled'; + var $el = this.$element; + var val = $el.is('input') ? 'val' : 'html'; + var data = $el.data(); + + state += 'Text'; + + if (data.resetText == null) $el.data('resetText', $el[val]()); + + // push to event loop to allow forms to submit + setTimeout($.proxy(function () { + $el[val](data[state] == null ? this.options[state] : data[state]); + + if (state == 'loadingText') { + this.isLoading = true; + $el.addClass(d).attr(d, d).prop(d, true) + } else if (this.isLoading) { + this.isLoading = false; + $el.removeClass(d).removeAttr(d).prop(d, false) + } + }, this), 0) + }; + + Button.prototype.toggle = function () { + var changed = true; + var $parent = this.$element.closest('[data-toggle="buttons"]'); + + if ($parent.length) { + var $input = this.$element.find('input'); + if ($input.prop('type') == 'radio') { + if ($input.prop('checked')) changed = false; + $parent.find('.active').removeClass('active'); + this.$element.addClass('active') + } else if ($input.prop('type') == 'checkbox') { + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false; + this.$element.toggleClass('active') + } + $input.prop('checked', this.$element.hasClass('active')); + if (changed) $input.trigger('change') + } else { + this.$element.attr('aria-pressed', !this.$element.hasClass('active')); + this.$element.toggleClass('active') + } + }; + + + // BUTTON PLUGIN DEFINITION + // ======================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.button'); + var options = typeof option == 'object' && option; + + if (!data) $this.data('bs.button', (data = new Button(this, options))); + + if (option == 'toggle') data.toggle(); + else if (option) data.setState(option) + }) + } + + var old = $.fn.button; + + $.fn.button = Plugin; + $.fn.button.Constructor = Button; + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old; + return this + }; + + + // BUTTON DATA-API + // =============== + + $(document) + .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { + var $btn = $(e.target).closest('.btn'); + Plugin.call($btn, 'toggle'); + if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { + // Prevent double click on radios, and the double selections (so cancellation) on checkboxes + e.preventDefault(); + // The target component still receive the focus + if ($btn.is('input,button')) $btn.trigger('focus'); + else $btn.find('input:visible,button:visible').first().trigger('focus') + } + }) + .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { + $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.3.7 + * http://getbootstrap.com/javascript/#carousel + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element); + this.$indicators = this.$element.find('.carousel-indicators'); + this.options = options; + this.paused = null; + this.sliding = null; + this.interval = null; + this.$active = null; + this.$items = null; + + this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)); + + this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element + .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) + .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) + }; + + Carousel.VERSION = '3.3.7'; + + Carousel.TRANSITION_DURATION = 600; + + Carousel.DEFAULTS = { + interval: 5000, + pause: 'hover', + wrap: true, + keyboard: true + }; + + Carousel.prototype.keydown = function (e) { + if (/input|textarea/i.test(e.target.tagName)) return; + switch (e.which) { + case 37: + this.prev(); + break; + case 39: + this.next(); + break; + default: + return + } + + e.preventDefault() + }; + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false); + + this.interval && clearInterval(this.interval); + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)); + + return this + }; + + Carousel.prototype.getItemIndex = function (item) { + this.$items = item.parent().children('.item'); + return this.$items.index(item || this.$active) + }; + + Carousel.prototype.getItemForDirection = function (direction, active) { + var activeIndex = this.getItemIndex(active); + var willWrap = (direction == 'prev' && activeIndex === 0) + || (direction == 'next' && activeIndex == (this.$items.length - 1)); + if (willWrap && !this.options.wrap) return active; + var delta = direction == 'prev' ? -1 : 1; + var itemIndex = (activeIndex + delta) % this.$items.length; + return this.$items.eq(itemIndex) + }; + + Carousel.prototype.to = function (pos) { + var that = this; + var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')); + + if (pos > (this.$items.length - 1) || pos < 0) return; + + if (this.sliding) return this.$element.one('slid.bs.carousel', function () { + that.to(pos) + }); // yes, "slid" + if (activeIndex == pos) return this.pause().cycle(); + + return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) + }; + + Carousel.prototype.pause = function (e) { + e || (this.paused = true); + + if (this.$element.find('.next, .prev').length && $.support.transition) { + this.$element.trigger($.support.transition.end); + this.cycle(true) + } + + this.interval = clearInterval(this.interval); + + return this + }; + + Carousel.prototype.next = function () { + if (this.sliding) return; + return this.slide('next') + }; + + Carousel.prototype.prev = function () { + if (this.sliding) return; + return this.slide('prev') + }; + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active'); + var $next = next || this.getItemForDirection(type, $active); + var isCycling = this.interval; + var direction = type == 'next' ? 'left' : 'right'; + var that = this; + + if ($next.hasClass('active')) return (this.sliding = false); + + var relatedTarget = $next[0]; + var slideEvent = $.Event('slide.bs.carousel', { + relatedTarget: relatedTarget, + direction: direction + }); + this.$element.trigger(slideEvent); + if (slideEvent.isDefaultPrevented()) return; + + this.sliding = true; + + isCycling && this.pause(); + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active'); + var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]); + $nextIndicator && $nextIndicator.addClass('active') + } + + var slidEvent = $.Event('slid.bs.carousel', {relatedTarget: relatedTarget, direction: direction}); // yes, "slid" + if ($.support.transition && this.$element.hasClass('slide')) { + $next.addClass(type); + $next[0].offsetWidth; // force reflow + $active.addClass(direction); + $next.addClass(direction); + $active + .one('bsTransitionEnd', function () { + $next.removeClass([type, direction].join(' ')).addClass('active'); + $active.removeClass(['active', direction].join(' ')); + that.sliding = false; + setTimeout(function () { + that.$element.trigger(slidEvent) + }, 0) + }) + .emulateTransitionEnd(Carousel.TRANSITION_DURATION) + } else { + $active.removeClass('active'); + $next.addClass('active'); + this.sliding = false; + this.$element.trigger(slidEvent) + } + + isCycling && this.cycle(); + + return this + }; + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.carousel'); + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option); + var action = typeof option == 'string' ? option : options.slide; + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))); + if (typeof option == 'number') data.to(option); + else if (action) data[action](); + else if (options.interval) data.pause().cycle() + }) + } + + var old = $.fn.carousel; + + $.fn.carousel = Plugin; + $.fn.carousel.Constructor = Carousel; + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old; + return this + }; + + + // CAROUSEL DATA-API + // ================= + + var clickHandler = function (e) { + var href; + var $this = $(this); + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7 + if (!$target.hasClass('carousel')) return; + var options = $.extend({}, $target.data(), $this.data()); + var slideIndex = $this.attr('data-slide-to'); + if (slideIndex) options.interval = false; + + Plugin.call($target, options); + + if (slideIndex) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + }; + + $(document) + .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) + .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler); + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this); + Plugin.call($carousel, $carousel.data()) + }) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.3.7 + * http://getbootstrap.com/javascript/#collapse + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + +/* jshint latedef: false */ + ++function ($) { + 'use strict'; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, Collapse.DEFAULTS, options); + this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + + '[data-toggle="collapse"][data-target="#' + element.id + '"]'); + this.transitioning = null; + + if (this.options.parent) { + this.$parent = this.getParent() + } else { + this.addAriaAndCollapsedClass(this.$element, this.$trigger) + } + + if (this.options.toggle) this.toggle() + }; + + Collapse.VERSION = '3.3.7'; + + Collapse.TRANSITION_DURATION = 350; + + Collapse.DEFAULTS = { + toggle: true + }; + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width'); + return hasWidth ? 'width' : 'height' + }; + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return; + + var activesData; + var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing'); + + if (actives && actives.length) { + activesData = actives.data('bs.collapse'); + if (activesData && activesData.transitioning) return + } + + var startEvent = $.Event('show.bs.collapse'); + this.$element.trigger(startEvent); + if (startEvent.isDefaultPrevented()) return; + + if (actives && actives.length) { + Plugin.call(actives, 'hide'); + activesData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension(); + + this.$element + .removeClass('collapse') + .addClass('collapsing')[dimension](0) + .attr('aria-expanded', true); + + this.$trigger + .removeClass('collapsed') + .attr('aria-expanded', true); + + this.transitioning = 1; + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('collapse in')[dimension](''); + this.transitioning = 0; + this.$element + .trigger('shown.bs.collapse') + }; + + if (!$.support.transition) return complete.call(this); + + var scrollSize = $.camelCase(['scroll', dimension].join('-')); + + this.$element + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) + }; + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return; + + var startEvent = $.Event('hide.bs.collapse'); + this.$element.trigger(startEvent); + if (startEvent.isDefaultPrevented()) return; + + var dimension = this.dimension(); + + this.$element[dimension](this.$element[dimension]())[0].offsetHeight; + + this.$element + .addClass('collapsing') + .removeClass('collapse in') + .attr('aria-expanded', false); + + this.$trigger + .addClass('collapsed') + .attr('aria-expanded', false); + + this.transitioning = 1; + + var complete = function () { + this.transitioning = 0; + this.$element + .removeClass('collapsing') + .addClass('collapse') + .trigger('hidden.bs.collapse') + }; + + if (!$.support.transition) return complete.call(this); + + this.$element + [dimension](0) + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION) + }; + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + }; + + Collapse.prototype.getParent = function () { + return $(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each($.proxy(function (i, element) { + var $element = $(element); + this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) + }, this)) + .end() + }; + + Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { + var isOpen = $element.hasClass('in'); + + $element.attr('aria-expanded', isOpen); + $trigger + .toggleClass('collapsed', !isOpen) + .attr('aria-expanded', isOpen) + }; + + function getTargetFromTrigger($trigger) { + var href; + var target = $trigger.attr('data-target') + || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); // strip for ie7 + + return $(target) + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.collapse'); + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option); + + if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false; + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.collapse; + + $.fn.collapse = Plugin; + $.fn.collapse.Constructor = Collapse; + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old; + return this + }; + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { + var $this = $(this); + + if (!$this.attr('data-target')) e.preventDefault(); + + var $target = getTargetFromTrigger($this); + var data = $target.data('bs.collapse'); + var option = data ? 'toggle' : $this.data(); + + Plugin.call($target, option) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.3.7 + * http://getbootstrap.com/javascript/#dropdowns + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop'; + var toggle = '[data-toggle="dropdown"]'; + var Dropdown = function (element) { + $(element).on('click.bs.dropdown', this.toggle) + }; + + Dropdown.VERSION = '3.3.7'; + + function getParent($this) { + var selector = $this.attr('data-target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = selector && $(selector); + + return $parent && $parent.length ? $parent : $this.parent() + } + + function clearMenus(e) { + if (e && e.which === 3) return; + $(backdrop).remove(); + $(toggle).each(function () { + var $this = $(this); + var $parent = getParent($this); + var relatedTarget = {relatedTarget: this}; + + if (!$parent.hasClass('open')) return; + + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return; + + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)); + + if (e.isDefaultPrevented()) return; + + $this.attr('aria-expanded', 'false'); + $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) + }) + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this); + + if ($this.is('.disabled, :disabled')) return; + + var $parent = getParent($this); + var isActive = $parent.hasClass('open'); + + clearMenus(); + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we use a backdrop because click events don't delegate + $(document.createElement('div')) + .addClass('dropdown-backdrop') + .insertAfter($(this)) + .on('click', clearMenus) + } + + var relatedTarget = {relatedTarget: this}; + $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)); + + if (e.isDefaultPrevented()) return; + + $this + .trigger('focus') + .attr('aria-expanded', 'true'); + + $parent + .toggleClass('open') + .trigger($.Event('shown.bs.dropdown', relatedTarget)) + } + + return false + }; + + Dropdown.prototype.keydown = function (e) { + if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return; + + var $this = $(this); + + e.preventDefault(); + e.stopPropagation(); + + if ($this.is('.disabled, :disabled')) return; + + var $parent = getParent($this); + var isActive = $parent.hasClass('open'); + + if (!isActive && e.which != 27 || isActive && e.which == 27) { + if (e.which == 27) $parent.find(toggle).trigger('focus'); + return $this.trigger('click') + } + + var desc = ' li:not(.disabled):visible a'; + var $items = $parent.find('.dropdown-menu' + desc); + + if (!$items.length) return; + + var index = $items.index(e.target); + + if (e.which == 38 && index > 0) index--; // up + if (e.which == 40 && index < $items.length - 1) index++; // down + if (!~index) index = 0; + + $items.eq(index).trigger('focus') + }; + + + // DROPDOWN PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.dropdown'); + + if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))); + if (typeof option == 'string') data[option].call($this) + }) + } + + var old = $.fn.dropdown; + + $.fn.dropdown = Plugin; + $.fn.dropdown.Constructor = Dropdown; + + + // DROPDOWN NO CONFLICT + // ==================== + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old; + return this + }; + + + // APPLY TO STANDARD DROPDOWN ELEMENTS + // =================================== + + $(document) + .on('click.bs.dropdown.data-api', clearMenus) + .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { + e.stopPropagation() + }) + .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) + .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) + .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: modal.js v3.3.7 + * http://getbootstrap.com/javascript/#modals + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // MODAL CLASS DEFINITION + // ====================== + + var Modal = function (element, options) { + this.options = options; + this.$body = $(document.body); + this.$element = $(element); + this.$dialog = this.$element.find('.modal-dialog'); + this.$backdrop = null; + this.isShown = null; + this.originalBodyPad = null; + this.scrollbarWidth = 0; + this.ignoreBackdropClick = false; + + if (this.options.remote) { + this.$element + .find('.modal-content') + .load(this.options.remote, $.proxy(function () { + this.$element.trigger('loaded.bs.modal') + }, this)) + } + }; + + Modal.VERSION = '3.3.7'; + + Modal.TRANSITION_DURATION = 300; + Modal.BACKDROP_TRANSITION_DURATION = 150; + + Modal.DEFAULTS = { + backdrop: true, + keyboard: true, + show: true + }; + + Modal.prototype.toggle = function (_relatedTarget) { + return this.isShown ? this.hide() : this.show(_relatedTarget) + }; + + Modal.prototype.show = function (_relatedTarget) { + var that = this; + var e = $.Event('show.bs.modal', {relatedTarget: _relatedTarget}); + + this.$element.trigger(e); + + if (this.isShown || e.isDefaultPrevented()) return; + + this.isShown = true; + + this.checkScrollbar(); + this.setScrollbar(); + this.$body.addClass('modal-open'); + + this.escape(); + this.resize(); + + this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)); + + this.$dialog.on('mousedown.dismiss.bs.modal', function () { + that.$element.one('mouseup.dismiss.bs.modal', function (e) { + if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true + }) + }); + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade'); + + if (!that.$element.parent().length) { + that.$element.appendTo(that.$body) // don't move modals dom position + } + + that.$element + .show() + .scrollTop(0); + + that.adjustDialog(); + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in'); + + that.enforceFocus(); + + var e = $.Event('shown.bs.modal', {relatedTarget: _relatedTarget}); + + transition ? + that.$dialog // wait for modal to slide in + .one('bsTransitionEnd', function () { + that.$element.trigger('focus').trigger(e) + }) + .emulateTransitionEnd(Modal.TRANSITION_DURATION) : + that.$element.trigger('focus').trigger(e) + }) + }; + + Modal.prototype.hide = function (e) { + if (e) e.preventDefault(); + + e = $.Event('hide.bs.modal'); + + this.$element.trigger(e); + + if (!this.isShown || e.isDefaultPrevented()) return; + + this.isShown = false; + + this.escape(); + this.resize(); + + $(document).off('focusin.bs.modal'); + + this.$element + .removeClass('in') + .off('click.dismiss.bs.modal') + .off('mouseup.dismiss.bs.modal'); + + this.$dialog.off('mousedown.dismiss.bs.modal'); + + $.support.transition && this.$element.hasClass('fade') ? + this.$element + .one('bsTransitionEnd', $.proxy(this.hideModal, this)) + .emulateTransitionEnd(Modal.TRANSITION_DURATION) : + this.hideModal() + }; + + Modal.prototype.enforceFocus = function () { + $(document) + .off('focusin.bs.modal') // guard against infinite focus loop + .on('focusin.bs.modal', $.proxy(function (e) { + if (document !== e.target && + this.$element[0] !== e.target && + !this.$element.has(e.target).length) { + this.$element.trigger('focus') + } + }, this)) + }; + + Modal.prototype.escape = function () { + if (this.isShown && this.options.keyboard) { + this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { + e.which == 27 && this.hide() + }, this)) + } else if (!this.isShown) { + this.$element.off('keydown.dismiss.bs.modal') + } + }; + + Modal.prototype.resize = function () { + if (this.isShown) { + $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) + } else { + $(window).off('resize.bs.modal') + } + }; + + Modal.prototype.hideModal = function () { + var that = this; + this.$element.hide(); + this.backdrop(function () { + that.$body.removeClass('modal-open'); + that.resetAdjustments(); + that.resetScrollbar(); + that.$element.trigger('hidden.bs.modal') + }) + }; + + Modal.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove(); + this.$backdrop = null + }; + + Modal.prototype.backdrop = function (callback) { + var that = this; + var animate = this.$element.hasClass('fade') ? 'fade' : ''; + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate; + + this.$backdrop = $(document.createElement('div')) + .addClass('modal-backdrop ' + animate) + .appendTo(this.$body); + + this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { + if (this.ignoreBackdropClick) { + this.ignoreBackdropClick = false; + return + } + if (e.target !== e.currentTarget) return; + this.options.backdrop == 'static' + ? this.$element[0].focus() + : this.hide() + }, this)); + + if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow + + this.$backdrop.addClass('in'); + + if (!callback) return; + + doAnimate ? + this.$backdrop + .one('bsTransitionEnd', callback) + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : + callback() + + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in'); + + var callbackRemove = function () { + that.removeBackdrop(); + callback && callback() + }; + $.support.transition && this.$element.hasClass('fade') ? + this.$backdrop + .one('bsTransitionEnd', callbackRemove) + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : + callbackRemove() + + } else if (callback) { + callback() + } + }; + + // these following methods are used to handle overflowing modals + + Modal.prototype.handleUpdate = function () { + this.adjustDialog() + }; + + Modal.prototype.adjustDialog = function () { + var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight; + + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', + paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' + }) + }; + + Modal.prototype.resetAdjustments = function () { + this.$element.css({ + paddingLeft: '', + paddingRight: '' + }) + }; + + Modal.prototype.checkScrollbar = function () { + var fullWindowWidth = window.innerWidth; + if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect(); + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) + } + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth; + this.scrollbarWidth = this.measureScrollbar() + }; + + Modal.prototype.setScrollbar = function () { + var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10); + this.originalBodyPad = document.body.style.paddingRight || ''; + if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) + }; + + Modal.prototype.resetScrollbar = function () { + this.$body.css('padding-right', this.originalBodyPad) + }; + + Modal.prototype.measureScrollbar = function () { // thx walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = 'modal-scrollbar-measure'; + this.$body.append(scrollDiv); + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; + this.$body[0].removeChild(scrollDiv); + return scrollbarWidth + }; + + + // MODAL PLUGIN DEFINITION + // ======================= + + function Plugin(option, _relatedTarget) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.modal'); + var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option); + + if (!data) $this.data('bs.modal', (data = new Modal(this, options))); + if (typeof option == 'string') data[option](_relatedTarget); + else if (options.show) data.show(_relatedTarget) + }) + } + + var old = $.fn.modal; + + $.fn.modal = Plugin; + $.fn.modal.Constructor = Modal; + + + // MODAL NO CONFLICT + // ================= + + $.fn.modal.noConflict = function () { + $.fn.modal = old; + return this + }; + + + // MODAL DATA-API + // ============== + + $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { + var $this = $(this); + var href = $this.attr('href'); + var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))); // strip for ie7 + var option = $target.data('bs.modal') ? 'toggle' : $.extend({remote: !/#/.test(href) && href}, $target.data(), $this.data()); + + if ($this.is('a')) e.preventDefault(); + + $target.one('show.bs.modal', function (showEvent) { + if (showEvent.isDefaultPrevented()) return; // only register focus restorer if modal will actually get shown + $target.one('hidden.bs.modal', function () { + $this.is(':visible') && $this.trigger('focus') + }) + }); + Plugin.call($target, option, this) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: tooltip.js v3.3.7 + * http://getbootstrap.com/javascript/#tooltip + * Inspired by the original jQuery.tipsy by Jason Frame + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // TOOLTIP PUBLIC CLASS DEFINITION + // =============================== + + var Tooltip = function (element, options) { + this.type = null; + this.options = null; + this.enabled = null; + this.timeout = null; + this.hoverState = null; + this.$element = null; + this.inState = null; + + this.init('tooltip', element, options) + }; + + Tooltip.VERSION = '3.3.7'; + + Tooltip.TRANSITION_DURATION = 150; + + Tooltip.DEFAULTS = { + animation: true, + placement: 'top', + selector: false, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + container: false, + viewport: { + selector: 'body', + padding: 0 + } + }; + + Tooltip.prototype.init = function (type, element, options) { + this.enabled = true; + this.type = type; + this.$element = $(element); + this.options = this.getOptions(options); + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)); + this.inState = {click: false, hover: false, focus: false}; + + if (this.$element[0] instanceof document.constructor && !this.options.selector) { + throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') + } + + var triggers = this.options.trigger.split(' '); + + for (var i = triggers.length; i--;) { + var trigger = triggers[i]; + + if (trigger == 'click') { + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) + } else if (trigger != 'manual') { + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'; + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'; + + this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)); + this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) + } + } + + this.options.selector ? + (this._options = $.extend({}, this.options, {trigger: 'manual', selector: ''})) : + this.fixTitle() + }; + + Tooltip.prototype.getDefaults = function () { + return Tooltip.DEFAULTS + }; + + Tooltip.prototype.getOptions = function (options) { + options = $.extend({}, this.getDefaults(), this.$element.data(), options); + + if (options.delay && typeof options.delay == 'number') { + options.delay = { + show: options.delay, + hide: options.delay + } + } + + return options + }; + + Tooltip.prototype.getDelegateOptions = function () { + var options = {}; + var defaults = this.getDefaults(); + + this._options && $.each(this._options, function (key, value) { + if (defaults[key] != value) options[key] = value + }); + + return options + }; + + Tooltip.prototype.enter = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget).data('bs.' + this.type); + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()); + $(obj.currentTarget).data('bs.' + this.type, self) + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true + } + + if (self.tip().hasClass('in') || self.hoverState == 'in') { + self.hoverState = 'in'; + return + } + + clearTimeout(self.timeout); + + self.hoverState = 'in'; + + if (!self.options.delay || !self.options.delay.show) return self.show(); + + self.timeout = setTimeout(function () { + if (self.hoverState == 'in') self.show() + }, self.options.delay.show) + }; + + Tooltip.prototype.isInStateTrue = function () { + for (var key in this.inState) { + if (this.inState[key]) return true + } + + return false + }; + + Tooltip.prototype.leave = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget).data('bs.' + this.type); + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()); + $(obj.currentTarget).data('bs.' + this.type, self) + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false + } + + if (self.isInStateTrue()) return; + + clearTimeout(self.timeout); + + self.hoverState = 'out'; + + if (!self.options.delay || !self.options.delay.hide) return self.hide(); + + self.timeout = setTimeout(function () { + if (self.hoverState == 'out') self.hide() + }, self.options.delay.hide) + }; + + Tooltip.prototype.show = function () { + var e = $.Event('show.bs.' + this.type); + + if (this.hasContent() && this.enabled) { + this.$element.trigger(e); + + var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (e.isDefaultPrevented() || !inDom) return; + var that = this; + + var $tip = this.tip(); + + var tipId = this.getUID(this.type); + + this.setContent(); + $tip.attr('id', tipId); + this.$element.attr('aria-describedby', tipId); + + if (this.options.animation) $tip.addClass('fade'); + + var placement = typeof this.options.placement == 'function' ? + this.options.placement.call(this, $tip[0], this.$element[0]) : + this.options.placement; + + var autoToken = /\s?auto?\s?/i; + var autoPlace = autoToken.test(placement); + if (autoPlace) placement = placement.replace(autoToken, '') || 'top'; + + $tip + .detach() + .css({top: 0, left: 0, display: 'block'}) + .addClass(placement) + .data('bs.' + this.type, this); + + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element); + this.$element.trigger('inserted.bs.' + this.type); + + var pos = this.getPosition(); + var actualWidth = $tip[0].offsetWidth; + var actualHeight = $tip[0].offsetHeight; + + if (autoPlace) { + var orgPlacement = placement; + var viewportDim = this.getPosition(this.$viewport); + + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : + placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : + placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : + placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : + placement; + + $tip + .removeClass(orgPlacement) + .addClass(placement) + } + + var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight); + + this.applyPlacement(calculatedOffset, placement); + + var complete = function () { + var prevHoverState = that.hoverState; + that.$element.trigger('shown.bs.' + that.type); + that.hoverState = null; + + if (prevHoverState == 'out') that.leave(that) + }; + + $.support.transition && this.$tip.hasClass('fade') ? + $tip + .one('bsTransitionEnd', complete) + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : + complete() + } + }; + + Tooltip.prototype.applyPlacement = function (offset, placement) { + var $tip = this.tip(); + var width = $tip[0].offsetWidth; + var height = $tip[0].offsetHeight; + + // manually read margins because getBoundingClientRect includes difference + var marginTop = parseInt($tip.css('margin-top'), 10); + var marginLeft = parseInt($tip.css('margin-left'), 10); + + // we must check for NaN for ie 8/9 + if (isNaN(marginTop)) marginTop = 0; + if (isNaN(marginLeft)) marginLeft = 0; + + offset.top += marginTop; + offset.left += marginLeft; + + // $.fn.offset doesn't round pixel values + // so we use setOffset directly with our own function B-0 + $.offset.setOffset($tip[0], $.extend({ + using: function (props) { + $tip.css({ + top: Math.round(props.top), + left: Math.round(props.left) + }) + } + }, offset), 0); + + $tip.addClass('in'); + + // check to see if placing tip in new offset caused the tip to resize itself + var actualWidth = $tip[0].offsetWidth; + var actualHeight = $tip[0].offsetHeight; + + if (placement == 'top' && actualHeight != height) { + offset.top = offset.top + height - actualHeight + } + + var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight); + + if (delta.left) offset.left += delta.left; + else offset.top += delta.top; + + var isVertical = /top|bottom/.test(placement); + var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight; + var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'; + + $tip.offset(offset); + this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) + }; + + Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { + this.arrow() + .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') + .css(isVertical ? 'top' : 'left', '') + }; + + Tooltip.prototype.setContent = function () { + var $tip = this.tip(); + var title = this.getTitle(); + + $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title); + $tip.removeClass('fade in top bottom left right') + }; + + Tooltip.prototype.hide = function (callback) { + var that = this; + var $tip = $(this.$tip); + var e = $.Event('hide.bs.' + this.type); + + function complete() { + if (that.hoverState != 'in') $tip.detach(); + if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. + that.$element + .removeAttr('aria-describedby') + .trigger('hidden.bs.' + that.type) + } + callback && callback() + } + + this.$element.trigger(e); + + if (e.isDefaultPrevented()) return; + + $tip.removeClass('in'); + + $.support.transition && $tip.hasClass('fade') ? + $tip + .one('bsTransitionEnd', complete) + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : + complete(); + + this.hoverState = null; + + return this + }; + + Tooltip.prototype.fixTitle = function () { + var $e = this.$element; + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') + } + }; + + Tooltip.prototype.hasContent = function () { + return this.getTitle() + }; + + Tooltip.prototype.getPosition = function ($element) { + $element = $element || this.$element; + + var el = $element[0]; + var isBody = el.tagName == 'BODY'; + + var elRect = el.getBoundingClientRect(); + if (elRect.width == null) { + // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 + elRect = $.extend({}, elRect, {width: elRect.right - elRect.left, height: elRect.bottom - elRect.top}) + } + var isSvg = window.SVGElement && el instanceof window.SVGElement; + // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. + // See https://github.com/twbs/bootstrap/issues/20280 + var elOffset = isBody ? {top: 0, left: 0} : (isSvg ? null : $element.offset()); + var scroll = {scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop()}; + var outerDims = isBody ? {width: $(window).width(), height: $(window).height()} : null; + + return $.extend({}, elRect, scroll, outerDims, elOffset) + }; + + Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { + return placement == 'bottom' ? {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} : + placement == 'top' ? {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2} : + placement == 'left' ? {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth} : + /* placement == 'right' */ { + top: pos.top + pos.height / 2 - actualHeight / 2, + left: pos.left + pos.width + } + + }; + + Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { + var delta = {top: 0, left: 0}; + if (!this.$viewport) return delta; + + var viewportPadding = this.options.viewport && this.options.viewport.padding || 0; + var viewportDimensions = this.getPosition(this.$viewport); + + if (/right|left/.test(placement)) { + var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll; + var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight; + if (topEdgeOffset < viewportDimensions.top) { // top overflow + delta.top = viewportDimensions.top - topEdgeOffset + } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow + delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset + } + } else { + var leftEdgeOffset = pos.left - viewportPadding; + var rightEdgeOffset = pos.left + viewportPadding + actualWidth; + if (leftEdgeOffset < viewportDimensions.left) { // left overflow + delta.left = viewportDimensions.left - leftEdgeOffset + } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow + delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset + } + } + + return delta + }; + + Tooltip.prototype.getTitle = function () { + var title; + var $e = this.$element; + var o = this.options; + + title = $e.attr('data-original-title') + || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title); + + return title + }; + + Tooltip.prototype.getUID = function (prefix) { + do prefix += ~~(Math.random() * 1000000); + while (document.getElementById(prefix)); + return prefix + }; + + Tooltip.prototype.tip = function () { + if (!this.$tip) { + this.$tip = $(this.options.template); + if (this.$tip.length != 1) { + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') + } + } + return this.$tip + }; + + Tooltip.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) + }; + + Tooltip.prototype.enable = function () { + this.enabled = true + }; + + Tooltip.prototype.disable = function () { + this.enabled = false + }; + + Tooltip.prototype.toggleEnabled = function () { + this.enabled = !this.enabled + }; + + Tooltip.prototype.toggle = function (e) { + var self = this; + if (e) { + self = $(e.currentTarget).data('bs.' + this.type); + if (!self) { + self = new this.constructor(e.currentTarget, this.getDelegateOptions()); + $(e.currentTarget).data('bs.' + this.type, self) + } + } + + if (e) { + self.inState.click = !self.inState.click; + if (self.isInStateTrue()) self.enter(self); + else self.leave(self) + } else { + self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + } + }; + + Tooltip.prototype.destroy = function () { + var that = this; + clearTimeout(this.timeout); + this.hide(function () { + that.$element.off('.' + that.type).removeData('bs.' + that.type); + if (that.$tip) { + that.$tip.detach() + } + that.$tip = null; + that.$arrow = null; + that.$viewport = null; + that.$element = null + }) + }; + + + // TOOLTIP PLUGIN DEFINITION + // ========================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.tooltip'); + var options = typeof option == 'object' && option; + + if (!data && /destroy|hide/.test(option)) return; + if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.tooltip; + + $.fn.tooltip = Plugin; + $.fn.tooltip.Constructor = Tooltip; + + + // TOOLTIP NO CONFLICT + // =================== + + $.fn.tooltip.noConflict = function () { + $.fn.tooltip = old; + return this + } + +}(jQuery); + +/* ======================================================================== + * Bootstrap: popover.js v3.3.7 + * http://getbootstrap.com/javascript/#popovers + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // POPOVER PUBLIC CLASS DEFINITION + // =============================== + + var Popover = function (element, options) { + this.init('popover', element, options) + }; + + if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js'); + + Popover.VERSION = '3.3.7'; + + Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }); + + + // NOTE: POPOVER EXTENDS tooltip.js + // ================================ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype); + + Popover.prototype.constructor = Popover; + + Popover.prototype.getDefaults = function () { + return Popover.DEFAULTS + }; + + Popover.prototype.setContent = function () { + var $tip = this.tip(); + var title = this.getTitle(); + var content = this.getContent(); + + $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title); + $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events + this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' + ](content); + + $tip.removeClass('fade top bottom left right in'); + + // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do + // this manually by checking the contents. + if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() + }; + + Popover.prototype.hasContent = function () { + return this.getTitle() || this.getContent() + }; + + Popover.prototype.getContent = function () { + var $e = this.$element; + var o = this.options; + + return $e.attr('data-content') + || (typeof o.content == 'function' ? + o.content.call($e[0]) : + o.content) + }; + + Popover.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find('.arrow')) + }; + + + // POPOVER PLUGIN DEFINITION + // ========================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.popover'); + var options = typeof option == 'object' && option; + + if (!data && /destroy|hide/.test(option)) return; + if (!data) $this.data('bs.popover', (data = new Popover(this, options))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.popover; + + $.fn.popover = Plugin; + $.fn.popover.Constructor = Popover; + + + // POPOVER NO CONFLICT + // =================== + + $.fn.popover.noConflict = function () { + $.fn.popover = old; + return this + } + +}(jQuery); + +/* ======================================================================== + * Bootstrap: scrollspy.js v3.3.7 + * http://getbootstrap.com/javascript/#scrollspy + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // SCROLLSPY CLASS DEFINITION + // ========================== + + function ScrollSpy(element, options) { + this.$body = $(document.body); + this.$scrollElement = $(element).is(document.body) ? $(window) : $(element); + this.options = $.extend({}, ScrollSpy.DEFAULTS, options); + this.selector = (this.options.target || '') + ' .nav li > a'; + this.offsets = []; + this.targets = []; + this.activeTarget = null; + this.scrollHeight = 0; + + this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)); + this.refresh(); + this.process() + } + + ScrollSpy.VERSION = '3.3.7'; + + ScrollSpy.DEFAULTS = { + offset: 10 + }; + + ScrollSpy.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) + }; + + ScrollSpy.prototype.refresh = function () { + var that = this; + var offsetMethod = 'offset'; + var offsetBase = 0; + + this.offsets = []; + this.targets = []; + this.scrollHeight = this.getScrollHeight(); + + if (!$.isWindow(this.$scrollElement[0])) { + offsetMethod = 'position'; + offsetBase = this.$scrollElement.scrollTop() + } + + this.$body + .find(this.selector) + .map(function () { + var $el = $(this); + var href = $el.data('target') || $el.attr('href'); + var $href = /^#./.test(href) && $(href); + + return ($href + && $href.length + && $href.is(':visible') + && [[$href[offsetMethod]().top + offsetBase, href]]) || null + }) + .sort(function (a, b) { + return a[0] - b[0] + }) + .each(function () { + that.offsets.push(this[0]); + that.targets.push(this[1]) + }) + }; + + ScrollSpy.prototype.process = function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset; + var scrollHeight = this.getScrollHeight(); + var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height(); + var offsets = this.offsets; + var targets = this.targets; + var activeTarget = this.activeTarget; + var i; + + if (this.scrollHeight != scrollHeight) { + this.refresh() + } + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) + } + + if (activeTarget && scrollTop < offsets[0]) { + this.activeTarget = null; + return this.clear() + } + + for (i = offsets.length; i--;) { + activeTarget != targets[i] + && scrollTop >= offsets[i] + && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) + && this.activate(targets[i]) + } + }; + + ScrollSpy.prototype.activate = function (target) { + this.activeTarget = target; + + this.clear(); + + var selector = this.selector + + '[data-target="' + target + '"],' + + this.selector + '[href="' + target + '"]'; + + var active = $(selector) + .parents('li') + .addClass('active'); + + if (active.parent('.dropdown-menu').length) { + active = active + .closest('li.dropdown') + .addClass('active') + } + + active.trigger('activate.bs.scrollspy') + }; + + ScrollSpy.prototype.clear = function () { + $(this.selector) + .parentsUntil(this.options.target, '.active') + .removeClass('active') + }; + + + // SCROLLSPY PLUGIN DEFINITION + // =========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.scrollspy'); + var options = typeof option == 'object' && option; + + if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.scrollspy; + + $.fn.scrollspy = Plugin; + $.fn.scrollspy.Constructor = ScrollSpy; + + + // SCROLLSPY NO CONFLICT + // ===================== + + $.fn.scrollspy.noConflict = function () { + $.fn.scrollspy = old; + return this + }; + + + // SCROLLSPY DATA-API + // ================== + + $(window).on('load.bs.scrollspy.data-api', function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this); + Plugin.call($spy, $spy.data()) + }) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: tab.js v3.3.7 + * http://getbootstrap.com/javascript/#tabs + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // TAB CLASS DEFINITION + // ==================== + + var Tab = function (element) { + // jscs:disable requireDollarBeforejQueryAssignment + this.element = $(element) + // jscs:enable requireDollarBeforejQueryAssignment + }; + + Tab.VERSION = '3.3.7'; + + Tab.TRANSITION_DURATION = 150; + + Tab.prototype.show = function () { + var $this = this.element; + var $ul = $this.closest('ul:not(.dropdown-menu)'); + var selector = $this.data('target'); + + if (!selector) { + selector = $this.attr('href'); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + if ($this.parent('li').hasClass('active')) return; + + var $previous = $ul.find('.active:last a'); + var hideEvent = $.Event('hide.bs.tab', { + relatedTarget: $this[0] + }); + var showEvent = $.Event('show.bs.tab', { + relatedTarget: $previous[0] + }); + + $previous.trigger(hideEvent); + $this.trigger(showEvent); + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return; + + var $target = $(selector); + + this.activate($this.closest('li'), $ul); + this.activate($target, $target.parent(), function () { + $previous.trigger({ + type: 'hidden.bs.tab', + relatedTarget: $this[0] + }); + $this.trigger({ + type: 'shown.bs.tab', + relatedTarget: $previous[0] + }) + }) + }; + + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active'); + var transition = callback + && $.support.transition + && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length); + + function next() { + $active + .removeClass('active') + .find('> .dropdown-menu > .active') + .removeClass('active') + .end() + .find('[data-toggle="tab"]') + .attr('aria-expanded', false); + + element + .addClass('active') + .find('[data-toggle="tab"]') + .attr('aria-expanded', true); + + if (transition) { + element[0].offsetWidth; // reflow for transition + element.addClass('in') + } else { + element.removeClass('fade') + } + + if (element.parent('.dropdown-menu').length) { + element + .closest('li.dropdown') + .addClass('active') + .end() + .find('[data-toggle="tab"]') + .attr('aria-expanded', true) + } + + callback && callback() + } + + $active.length && transition ? + $active + .one('bsTransitionEnd', next) + .emulateTransitionEnd(Tab.TRANSITION_DURATION) : + next(); + + $active.removeClass('in') + }; + + + // TAB PLUGIN DEFINITION + // ===================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.tab'); + + if (!data) $this.data('bs.tab', (data = new Tab(this))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.tab; + + $.fn.tab = Plugin; + $.fn.tab.Constructor = Tab; + + + // TAB NO CONFLICT + // =============== + + $.fn.tab.noConflict = function () { + $.fn.tab = old; + return this + }; + + + // TAB DATA-API + // ============ + + var clickHandler = function (e) { + e.preventDefault(); + Plugin.call($(this), 'show') + }; + + $(document) + .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) + .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: affix.js v3.3.7 + * http://getbootstrap.com/javascript/#affix + * ======================================================================== + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // AFFIX CLASS DEFINITION + // ====================== + + var Affix = function (element, options) { + this.options = $.extend({}, Affix.DEFAULTS, options); + + this.$target = $(this.options.target) + .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) + .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)); + + this.$element = $(element); + this.affixed = null; + this.unpin = null; + this.pinnedOffset = null; + + this.checkPosition() + }; + + Affix.VERSION = '3.3.7'; + + Affix.RESET = 'affix affix-top affix-bottom'; + + Affix.DEFAULTS = { + offset: 0, + target: window + }; + + Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { + var scrollTop = this.$target.scrollTop(); + var position = this.$element.offset(); + var targetHeight = this.$target.height(); + + if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false; + + if (this.affixed == 'bottom') { + if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'; + return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' + } + + var initializing = this.affixed == null; + var colliderTop = initializing ? scrollTop : position.top; + var colliderHeight = initializing ? targetHeight : height; + + if (offsetTop != null && scrollTop <= offsetTop) return 'top'; + if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'; + + return false + }; + + Affix.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) return this.pinnedOffset; + this.$element.removeClass(Affix.RESET).addClass('affix'); + var scrollTop = this.$target.scrollTop(); + var position = this.$element.offset(); + return (this.pinnedOffset = position.top - scrollTop) + }; + + Affix.prototype.checkPositionWithEventLoop = function () { + setTimeout($.proxy(this.checkPosition, this), 1) + }; + + Affix.prototype.checkPosition = function () { + if (!this.$element.is(':visible')) return; + + var height = this.$element.height(); + var offset = this.options.offset; + var offsetTop = offset.top; + var offsetBottom = offset.bottom; + var scrollHeight = Math.max($(document).height(), $(document.body).height()); + + if (typeof offset != 'object') offsetBottom = offsetTop = offset; + if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element); + if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element); + + var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom); + + if (this.affixed != affix) { + if (this.unpin != null) this.$element.css('top', ''); + + var affixType = 'affix' + (affix ? '-' + affix : ''); + var e = $.Event(affixType + '.bs.affix'); + + this.$element.trigger(e); + + if (e.isDefaultPrevented()) return; + + this.affixed = affix; + this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null; + + this.$element + .removeClass(Affix.RESET) + .addClass(affixType) + .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') + } + + if (affix == 'bottom') { + this.$element.offset({ + top: scrollHeight - height - offsetBottom + }) + } + }; + + + // AFFIX PLUGIN DEFINITION + // ======================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data('bs.affix'); + var options = typeof option == 'object' && option; + + if (!data) $this.data('bs.affix', (data = new Affix(this, options))); + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.affix; + + $.fn.affix = Plugin; + $.fn.affix.Constructor = Affix; + + + // AFFIX NO CONFLICT + // ================= + + $.fn.affix.noConflict = function () { + $.fn.affix = old; + return this + }; + + + // AFFIX DATA-API + // ============== + + $(window).on('load', function () { + $('[data-spy="affix"]').each(function () { + var $spy = $(this); + var data = $spy.data(); + + data.offset = data.offset || {}; + + if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom; + if (data.offsetTop != null) data.offset.top = data.offsetTop; + + Plugin.call($spy, data) + }) + }) + +}(jQuery); diff --git a/src/main/resources/static/js/bootstrap.min.js b/src/main/resources/static/js/bootstrap.min.js new file mode 100644 index 0000000..9bcd2fc --- /dev/null +++ b/src/main/resources/static/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/src/main/resources/static/js/dataTables.bootstrap.min.js b/src/main/resources/static/js/dataTables.bootstrap.min.js new file mode 100644 index 0000000..2d824c8 --- /dev/null +++ b/src/main/resources/static/js/dataTables.bootstrap.min.js @@ -0,0 +1,8 @@ +/*! + DataTables Bootstrap 3 integration + ©2011-2015 SpryMedia Ltd - datatables.net/license +*/ +(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, +{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,m,j,n){var o=new f.Api(a),s=a.oClasses,k=a.oLanguage.oPaginate,t=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; +l=0;for(h=f.length;l",{"class":s.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", +"aria-controls":a.sTableId,"aria-label":t[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(u){}q(b(h).empty().html('
    ').children("ul"),m);i&&b(h).find("[data-dt-idx="+i+"]").focus()};return f}); diff --git a/src/main/resources/static/js/dataTables.jqueryui.min.js b/src/main/resources/static/js/dataTables.jqueryui.min.js new file mode 100644 index 0000000..782d10f --- /dev/null +++ b/src/main/resources/static/js/dataTables.jqueryui.min.js @@ -0,0 +1,9 @@ +/*! + DataTables jQuery UI integration + ©2011-2014 SpryMedia Ltd - datatables.net/license +*/ +(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(b){return a(b,window,document)}):"object"===typeof exports?module.exports=function(b,d){b||(b=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(b,d).$;return a(d,b,b.document)}:a(jQuery,window,document)})(function(a){var b=a.fn.dataTable;a.extend(!0,b.defaults,{dom:'<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr"lfr>t<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br"ip>', +renderer:"jqueryui"});a.extend(b.ext.classes,{sWrapper:"dataTables_wrapper dt-jqueryui",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:"ui-state-default sorting_asc",sSortDesc:"ui-state-default sorting_desc",sSortable:"ui-state-default sorting",sSortableAsc:"ui-state-default sorting_asc_disabled",sSortableDesc:"ui-state-default sorting_desc_disabled", +sSortableNone:"ui-state-default sorting_disabled",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sHeaderTH:"ui-state-default",sFooterTH:"ui-state-default"});b.ext.renderer.header.jqueryui=function(b,h,e,c){var f="css_right ui-icon ui-icon-carat-2-n-s",g=-1!==a.inArray("asc",e.asSorting),i=-1!==a.inArray("desc",e.asSorting);!e.bSortable||!g&&!i?f="":g&&!i?f="css_right ui-icon ui-icon-carat-1-n":!g&&i&&(f="css_right ui-icon ui-icon-carat-1-s"); +a("
    ").addClass("DataTables_sort_wrapper").append(h.contents()).append(a("").addClass(c.sSortIcon+" "+f)).appendTo(h);a(b.nTable).on("order.dt",function(a,g,i,j){b===g&&(a=e.idx,h.removeClass(c.sSortAsc+" "+c.sSortDesc).addClass("asc"==j[a]?c.sSortAsc:"desc"==j[a]?c.sSortDesc:e.sSortingClass),h.find("span."+c.sSortIcon).removeClass("css_right ui-icon ui-icon-triangle-1-n css_right ui-icon ui-icon-triangle-1-s css_right ui-icon ui-icon-carat-2-n-s css_right ui-icon ui-icon-carat-1-n css_right ui-icon ui-icon-carat-1-s").addClass("asc"== +j[a]?"css_right ui-icon ui-icon-triangle-1-n":"desc"==j[a]?"css_right ui-icon ui-icon-triangle-1-s":f))})};b.TableTools&&a.extend(!0,b.TableTools.classes,{container:"DTTT_container ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button ui-state-default"},collection:{container:"DTTT_collection ui-buttonset ui-buttonset-multi"}});return b}); diff --git a/src/main/resources/static/js/dataTables.uikit.min.js b/src/main/resources/static/js/dataTables.uikit.min.js new file mode 100644 index 0000000..5bbe651 --- /dev/null +++ b/src/main/resources/static/js/dataTables.uikit.min.js @@ -0,0 +1,8 @@ +/*! + DataTables UIkit 3 integration +*/ +(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);if(!c||!c.fn.dataTable)c=require("datatables.net")(a,c).$;return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c){var g=b.fn.dataTable;b.extend(!0,g.defaults,{dom:"<'row uk-grid'<'uk-width-1-2'l><'uk-width-1-2'f>><'row uk-grid dt-merge-grid'<'uk-width-1-1'tr>><'row uk-grid dt-merge-grid'<'uk-width-2-5'i><'uk-width-3-5'p>>", +renderer:"uikit"});b.extend(g.ext.classes,{sWrapper:"dataTables_wrapper uk-form dt-uikit",sFilterInput:"uk-form-small",sLengthSelect:"uk-form-small",sProcessing:"dataTables_processing uk-panel"});g.ext.renderer.pageButton.uikit=function(a,h,r,m,j,n){var o=new g.Api(a),s=a.oClasses,k=a.oLanguage.oPaginate,t=a.oLanguage.oAria.paginate||{},f,d,p=0,q=function(c,g){var l,h,i,e,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; +l=0;for(h=g.length;l';d=j';d=j",{"class":s.sPageButton+" "+d,id:0===r&&"string"===typeof e?a.sTableId+"_"+e:null}).append(b(-1!=d.indexOf("disabled")||-1!=d.indexOf("active")?"":"",{href:"#","aria-controls":a.sTableId,"aria-label":t[e],"data-dt-idx":p,tabindex:a.iTabIndex}).html(f)).appendTo(c),a.oApi._fnBindAction(i,{action:e},m),p++)}},i;try{i=b(h).find(c.activeElement).data("dt-idx")}catch(u){}q(b(h).empty().html('
      ').children("ul"), +m);i&&b(h).find("[data-dt-idx="+i+"]").focus()};return g}); diff --git a/src/main/resources/static/js/jquery.dataTables.min.js b/src/main/resources/static/js/jquery.dataTables.min.js new file mode 100644 index 0000000..f127725 --- /dev/null +++ b/src/main/resources/static/js/jquery.dataTables.min.js @@ -0,0 +1,166 @@ +/*! + DataTables 1.10.12 + ©2008-2015 SpryMedia Ltd - datatables.net/license +*/ +(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(D){return h(D,window,document)}):"object"===typeof exports?module.exports=function(D,I){D||(D=window);I||(I="undefined"!==typeof window?require("jquery"):require("jquery")(D));return h(I,D,D.document)}:h(jQuery,window,document)})(function(h,D,I,k){function X(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()), +d[c]=e,"o"===b[1]&&X(a[e])});a._hungarianMap=d}function K(a,b,c){a._hungarianMap||X(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),K(a[d],b[d],c)):b[d]=b[e]})}function Da(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&E(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&E(a,a,"sZeroRecords","sLoadingRecords"); +a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&db(a)}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX= +a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(h("
      ").css({position:"absolute",top:1,left:1, +width:100,overflow:"scroll"}).append(h("
      ").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&& +(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:I.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);ja(a,d,h(b).data())}function ja(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f= +(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),K(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),E(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),E(b,c,"aDataSort"));var g=b.mData,j=Q(g),i=b.mRender?Q(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&& +(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return R(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed): +!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Y(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;cq[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;jb&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function ca(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild); +c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c").appendTo(g));b=0;for(c=l.length;btr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH); +if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart= +-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j",{"class":e?d[0]:""}).append(h("",{valign:"top",colSpan:aa(a),"class":a.oClasses.sRowEmpty}).html(c))[0];u(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,n,i]);u(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));u(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter; +c.bSort&&mb(a);d?fa(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("
      ").insertBefore(c),d=a.oFeatures,e=h("
      ",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,t=0;t")[0]; +n=f[t+1];if("'"==n||'"'==n){l="";for(q=2;f[t+q]!=n;)l+=f[t+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;t+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"== +j&&d.bPaginate)g=tb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("
      ",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("
      ").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).bind("change.DT",function(){Ra(a,h(this).val());O(a)});h(a.nTable).bind("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("
      ").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures; +d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;lf&&(d=0)):"first"==b?d=0: +"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");u(a,null,"processing", +[a,b])}function rb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("
      ",{"class":f.sScrollWrapper}).append(h("
      ",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:x(d):"100%"}).append(h("
      ",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box", +width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("
      ",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:x(d)}).append(b));l&&i.append(h("
      ",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:x(d):"100%"}).append(h("
      ",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot"))))); +var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:ka,sName:"scrolling"});return i[0]}function ka(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"), +m=t.children("table"),o=h(a.nTHead),F=h(a.nTable),p=F[0],r=p.style,u=a.nTFoot?h(a.nTFoot):null,Eb=a.oBrowser,Ua=Eb.bScrollOversize,s=G(a.aoColumns,"nTh"),P,v,w,y,z=[],A=[],B=[],C=[],D,E=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};v=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==v&&a.scrollBarVis!==k)a.scrollBarVis=v,Y(a);else{a.scrollBarVis=v;F.children("thead, tfoot").remove();u&&(w=u.clone().prependTo(F),P=u.find("tr"),w= +w.find("tr"));y=o.clone().prependTo(F);o=o.find("tr");v=y.find("tr");y.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(qa(a,y),function(b,c){D=Z(a,b);c.style.width=a.aoColumns[D].sWidth});u&&J(function(a){a.style.width=""},w);f=F.outerWidth();if(""===c){r.width="100%";if(Ua&&(F.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=x(F.outerWidth()-b);f=F.outerWidth()}else""!==d&&(r.width=x(d),f=F.outerWidth());J(E,v);J(function(a){B.push(a.innerHTML); +z.push(x(h(a).css("width")))},v);J(function(a,b){if(h.inArray(a,s)!==-1)a.style.width=z[b]},o);h(v).height(0);u&&(J(E,w),J(function(a){C.push(a.innerHTML);A.push(x(h(a).css("width")))},w),J(function(a,b){a.style.width=A[b]},P),h(w).height(0));J(function(a,b){a.innerHTML='
      '+B[b]+"
      ";a.style.width=z[b]},v);u&&J(function(a,b){a.innerHTML='
      '+C[b]+"
      ";a.style.width= +A[b]},w);if(F.outerWidth()j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(Ua&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=x(P-b);(""===c||""!==d)&&L(a,1,"Possible column misalignment",6)}else P="100%";q.width=x(P);g.width=x(P);u&&(a.nScrollFoot.style.width=x(P));!e&&Ua&&(q.height=x(p.offsetHeight+b));c=F.outerWidth();n[0].style.width=x(c);i.width=x(c);d=F.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(Eb.bScrollbarLeft?"Left": +"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=x(c),t[0].style.width=x(c),t[0].style[e]=d?b+"px":"0px");F.children("colgroup").insertBefore(F.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function J(a,b,c){for(var d=0,e=0,f=b.length,g,j;e").appendTo(j.find("tbody")); +j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=qa(a,j.find("thead")[0]);for(m=0;m").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()").css("width",x(a)).appendTo(b||I.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;fd&&(d=c.length,e=f);return e}function x(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function V(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;ae?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return ce?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;jg?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=V(a),a=a.oLanguage.oAria,f=0,g=d.length;f/g, +"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0e?e+1:3));e=0;for(f=d.length;ee?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,$(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j= +d.length?[0,c[1]]:c)}));e.search!==k&&h.extend(a.oPreviousSearch,Bb(e.search));b=0;for(c=e.columns.length;b=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ya(a,b){var c=[],c=Mb.numbers_length,d=Math.floor(c/2);b<=c?c=W(0,b):a<=d?(c=W(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=W(b-(c-2),b):(c=W(a-d+2,a+d-1),c.push("ellipsis"), +c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function db(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Xa)},"html-num":function(b){return za(b,a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Xa)}},function(b,c){v.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(v.type.search[b+a]=v.type.search.html)})}function Nb(a){return function(){var b=[xa(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this, +b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new r(xa(this[v.iApiIndex])):new r(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1): +(""!==d.sX||""!==d.sY)&&ka(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a, +c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(), +[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return xa(this[v.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener= +function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=v.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=v.internal;for(var e in m.ext.internal)e&&(this[e]=Nb(e));this.each(function(){var e={},e=1t<"F"ip>'),o.renderer)?h.isPlainObject(o.renderer)&&!o.renderer.header&&(o.renderer.header="jqueryui"): +o.renderer="jqueryui":h.extend(i,m.ext.classes,e.oClasses);q.addClass(i.sTable);o.iInitDisplayStart===k&&(o.iInitDisplayStart=e.iDisplayStart,o._iDisplayStart=e.iDisplayStart);null!==e.iDeferLoading&&(o.bDeferLoading=!0,g=h.isArray(e.iDeferLoading),o._iRecordsDisplay=g?e.iDeferLoading[0]:e.iDeferLoading,o._iRecordsTotal=g?e.iDeferLoading[1]:e.iDeferLoading);var r=o.oLanguage;h.extend(!0,r,e.oLanguage);""!==r.sUrl&&(h.ajax({dataType:"json",url:r.sUrl,success:function(a){Da(a);K(l.oLanguage,a);h.extend(true, +r,a);ga(o)},error:function(){ga(o)}}),n=!0);null===e.asStripeClasses&&(o.asStripeClasses=[i.sStripeOdd,i.sStripeEven]);var g=o.asStripeClasses,v=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(g,function(a){return v.hasClass(a)}))&&(h("tbody tr",this).removeClass(g.join(" ")),o.asDestroyStripes=g.slice());t=[];g=this.getElementsByTagName("thead");0!==g.length&&(da(o.aoHeader,g[0]),t=qa(o));if(null===e.aoColumns){p=[];g=0;for(j=t.length;g").appendTo(this));o.nTHead=j[0];j=q.children("tbody");0===j.length&&(j=h("").appendTo(this));o.nTBody=j[0];j=q.children("tfoot");if(0===j.length&&0").appendTo(this);0===j.length||0===j.children().length?q.addClass(i.sNoFooter):0/g,ac=/^[\w\+\-]/,bc=/[\w\+\-]$/,cc=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Xa=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Pb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Qb=function(a,b){Ya[b]||(Ya[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g, +"").replace(Ya[b],"."):a},Za=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Qb(a,b));c&&d&&(a=a.replace(Xa,""));return!isNaN(parseFloat(a))&&isFinite(a)},Rb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:Za(a.replace(Aa,""),b,c)?!0:null},G=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e")[0],Zb=ua.textContent!==k,$b=/<.*?>/g,Oa=m.util.throttle,Tb=[],w=Array.prototype,dc=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]: +null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};r=function(a,b){if(!(this instanceof r))return new r(a,b);var c=[],d=function(a){(a=dc(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;ea?new r(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=aa(d),e.push(c[0]))};f(a,b);c._details&&c._details.remove();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this}); +p(["row().child.show()","row().child().show()"],function(){Vb(this,!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Vb(this,!1);return this});p(["row().child.remove()","row().child().remove()"],function(){cb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var ec=/^(.+):(name|visIdx|visible)$/,Wb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Wb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(ec):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1], +10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[Z(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});s("columns().header()", +"column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});s("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});s("columns().data()","column().data()",function(){return this.iterator("column-rows",Wb,1)});s("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});s("columns().cache()","column().cache()", +function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ha(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});s("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ha(a.aoData,e,"anCells",b)},1)});s("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m= +h.inArray(!0,G(f,"bVisible"),c+1);i=0;for(n=j.length;id;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]: +null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new r(c):c};m.camelToHungarian=K;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0].match(/\.dt\b/)|| +(a[0]+=".dt");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",function(a){na(a)})});p("settings()",function(){return new r(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return G(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode, +d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;u(b,"aoDestroyCallback","destroy",[b]);a||(new r(b)).columns().visible(!0);k.unbind(".DT").find(":not(tbody *)").unbind(".DT");h(D).unbind(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];va(b);h(l).removeClass(b.asStripeClasses.join(" ")); +h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a% +p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,n){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,n)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=Q(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.12";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0, +sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null, +sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null, +fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1=== +a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries", +sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET", +renderer:null,rowId:"DT_RowId"};X(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};X(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null, +bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[], +aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k, +fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a= +this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=v={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{}, +header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(v,{afnFiltering:v.search,aTypes:v.type.detect,ofnSearch:v.type.search,oSort:v.type.order,afnSortData:v.order,aoFeatures:v.feature,oApi:v.internal,oStdClasses:v.classes,oPagination:v.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd", +sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead", +sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Ca="",Ca="",H=Ca+"ui-state-default",ia=Ca+"css_right ui-icon ui-icon-",Xb=Ca+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses, +m.ext.classes,{sPageButton:"fg-button ui-button "+H,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:H+" sorting_asc",sSortDesc:H+" sorting_desc",sSortable:H+" sorting",sSortableAsc:H+" sorting_asc_disabled",sSortableDesc:H+" sorting_desc_disabled",sSortableNone:H+" sorting_disabled",sSortJUIAsc:ia+"triangle-1-n",sSortJUIDesc:ia+"triangle-1-s",sSortJUI:ia+"carat-2-n-s", +sSortJUIAscAllowed:ia+"carat-1-n",sSortJUIDescAllowed:ia+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+H,sScrollFoot:"dataTables_scrollFoot "+H,sHeaderTH:H,sFooterTH:H,sJUIHeader:Xb+" ui-corner-tl ui-corner-tr",sJUIFooter:Xb+" ui-corner-bl ui-corner-br"});var Mb=m.ext.pager;h.extend(Mb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ya(a, +b)]},simple_numbers:function(a,b){return["previous",ya(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ya(a,b),"next","last"]},_numbers:ya,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},k,l,m=0,p=function(b,d){var o,r,u,s,v=function(b){Ta(a,b.data.action,true)};o=0;for(r=d.length;o").appendTo(b);p(u,s)}else{k=null; +l="";switch(s){case "ellipsis":b.append('');break;case "first":k=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":k=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":k=j.sNext;l=s+(e",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[s], +"data-dt-idx":m,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(k).appendTo(b);Wa(u,{action:s},v);m++}}}},r;try{r=h(b).find(I.activeElement).data("dt-idx")}catch(o){}p(h(b).empty(),d);r&&h(b).find("[data-dt-idx="+r+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&(!ac.test(a)||!bc.test(a)))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date": +null},function(a,b){var c=b.oLanguage.sDecimal;return Za(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Rb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Ob, +" "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Qb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(v.type.order,{"date-pre":function(a){return Date.parse(a)||0},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a, +b){return ab?-1:0}});db("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("
      ").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e, +f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Yb=function(a){return"string"===typeof a?a.replace(//g,">").replace(/"/g,"""):a};m.render={number:function(a, +b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Yb(f);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Yb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Nb,_fnBuildAjax:ra,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:sa,_fnAddColumn:Ea,_fnColumnOptions:ja, +_fnAdjustColumnSizing:Y,_fnVisibleToColumnIndex:Z,_fnColumnIndexToVisible:$,_fnVisbleColumns:aa,_fnGetColumns:la,_fnColumnTypes:Ga,_fnApplyColumnDefs:ib,_fnHungarianMap:X,_fnCamelToHungarian:K,_fnLanguageCompat:Da,_fnBrowserDetect:gb,_fnAddData:N,_fnAddTr:ma,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:R, +_fnGetDataMaster:Ka,_fnClearTable:na,_fnDeleteIndex:oa,_fnInvalidate:ca,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:kb,_fnDrawHead:ea,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:da,_fnGetUniqueThs:qa,_fnFeatureHtmlFilter:pb,_fnFilterComplete:fa,_fnFilterCustom:yb,_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ga,_fnInitComplete:ta,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob, +_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:ka,_fnApplyToChildren:J,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:x,_fnSortFlatten:V,_fnSort:mb,_fnSortAria:Jb,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:va,_fnSortData:Ib,_fnSaveState:wa,_fnLoadState:Kb,_fnSettingsFromNode:xa,_fnLog:L,_fnMap:E,_fnBindAction:Wa,_fnCallbackReg:z, +_fnCallbackFire:u,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable}); diff --git a/src/main/resources/static/js/jquery.easing.min.js b/src/main/resources/static/js/jquery.easing.min.js new file mode 100644 index 0000000..6cf5f20 --- /dev/null +++ b/src/main/resources/static/js/jquery.easing.min.js @@ -0,0 +1,44 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ +jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(ga?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
      ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
      a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:k.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("