     
     The stack view ensures that the arrangedSubviews array is always a subset of its subviews array. This method automatically adds the provided view as a subview of the stack view, if it is not already. If the view is already a subview, this operation does not alter the subview ordering.
     */
-    public func addArrangedSubview(_ view: UIView) {
+    open func addArrangedSubview(_ view: UIView) {
         insertArrangedSubview(view, atIndex: arrangedSubviews.count)
     }
     

     
     The stack view also ensures that the arrangedSubviews array is always a subset of its subviews array. This method automatically adds the provided view as a subview of the stack view, if it is not already. When adding subviews, the stack view appends the view to the end of its subviews array. The index only affects the order of views in the arrangedSubviews array. It does not affect the ordering of views in the subviews array.
     */
    public func insertArrangedSubview(_ view: UIView, atIndex stackIndex: Int) {
        if let idx = arrangedSubviews.index(of: view) {
            arrangedSubviews.remove(at: idx)
        }


    /// Returns first arranged view for vertical axis and self for horizontal axis.
    #if !os(tvOS)
    open override func forBaselineLayout() -> UIView {
        return _viewForFirstBaselineLayout
    }

    /// Returns first arranged view for vertical axis and self for horizontal axis.
    open override var forFirstBaselineLayout: UIView {
        return _viewForFirstBaselineLayout
    }
    
