 /**
  Scale a value for a vertical constraint constant depending on the current device. Works for iPhone apps only. All coefficients have reasonable default values for vertical constraints
 
- - parameter value: Desired value for iPhone XS Max and XR device type (or any other with the same size)
- - parameter qx:   iPhone X coefficient
+ - parameter value: Desired value for iPhone XS Max, iPhone XR, iPhone 11, iPhone 11 Pro Max device type (or any other with the same size)
+ - parameter q12Plus:   iPhone 12 Pro Max coefficient
+ - parameter q12:   iPhone 12  and iPhone 12  Pro coefficient
+ - parameter qx:   iPhone X, iPhone Xs, iPhone 11 Pro and iPhone 12 Mini coefficient
  - parameter qPlus:   iPhone6 Plus and iPhone7 Plus coefficient
  - parameter q6:   iPhone6 and iPhone7 coefficient
  - parameter q5:   iPhone5 coefficient

/**
 Scale a value for a horizontal constraint constant depending on the current device. Works for iPhone apps only. All coefficients have reasonable default values for horizontal constraints

 - parameter value: Desired value for iPhone XS Max and XR device type (or any other with the same size)
 - parameter qx:   iPhone X coefficient
 - parameter qPlus:   iPhone6 Plus and iPhone7 Plus coefficient
 - parameter q6:   iPhone6 and iPhone7 coefficient
 - parameter q5:   iPhone5 coefficient

 
 - returns: The correctly resized constraint value
 */
public func suggestedVerticalConstraint(_ value: CGFloat, q12ProMax: CGFloat = 1.033, q12: CGFloat = 0.94, qx: CGFloat = 0.906, qPlus: CGFloat = 0.83, q6: CGFloat = 0.75, q5: CGFloat = 0.64, q4: CGFloat = 0.54) -> CGFloat {
    if UIDevice.current.iPhone4() {
        return ceil(value * q4)
    } else if UIDevice.current.iPhone5() {
