pagseguro/magento2

View on GitHub
view/frontend/web/js/bootstrap.min.js

Summary

Maintainability
F
1 wk
Test Coverage
/*!
 * 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 && j < i.length - 1 && j++, ~j || (j = 0),
                        i.eq(j).trigger('focus');
                }
            }
        }
    });
    var h = a.fn.dropdown;
    (a.fn.dropdown = d),
    (a.fn.dropdown.Constructor = g),
    (a.fn.dropdown.noConflict = function() {
        return (a.fn.dropdown = h), this;
    }),
    a(document)
        .on('click.bs.dropdown.data-api', c)
        .on('click.bs.dropdown.data-api', '.dropdown form', function(a) {
            a.stopPropagation();
        })
        .on('click.bs.dropdown.data-api', f, g.prototype.toggle)
        .on('keydown.bs.dropdown.data-api', f, g.prototype.keydown)
        .on(
            'keydown.bs.dropdown.data-api',
            '.dropdown-menu',
            g.prototype.keydown
        );
})(jQuery), +(function(a) {
    'use strict';

    function b(b, d) {
        return this.each(function() {
            var e = a(this),
                f = e.data('bs.modal'),
                g = a.extend({}, c.DEFAULTS, e.data(), 'object' === typeof b && b);
            f || e.data('bs.modal', (f = new c(this, g))),
                'string' === typeof b ? f[b](d) : g.show && f.show(d);
        });
    }
    var c = function(b, c) {
        (this.options = c),
        (this.$body = a(document.body)),
        (this.$element = a(b)),
        (this.$dialog = this.$element.find('.modal-dialog')),
        (this.$backdrop = null),
        (this.isShown = null),
        (this.originalBodyPad = null),
        (this.scrollbarWidth = 0),
        (this.ignoreBackdropClick = !1),
        this.options.remote &&
            this.$element.find('.modal-content').load(
                this.options.remote,
                a.proxy(function() {
                    this.$element.trigger('loaded.bs.modal');
                }, this)
            );
    };
    (c.VERSION = '3.3.7'),
    (c.TRANSITION_DURATION = 300),
    (c.BACKDROP_TRANSITION_DURATION = 150),
    (c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
    (c.prototype.toggle = function(a) {
        return this.isShown ? this.hide() : this.show(a);
    }),
    (c.prototype.show = function(b) {
        var d = this,
            e = a.Event('show.bs.modal', { relatedTarget: b });
        this.$element.trigger(e),
            this.isShown ||
            e.isDefaultPrevented() ||
            ((this.isShown = !0),
                this.checkScrollbar(),
                this.setScrollbar(),
                this.$body.addClass('modal-open'),
                this.escape(),
                this.resize(),
                this.$element.on(
                    'click.dismiss.bs.modal',
                    '[data-dismiss="modal"]',
                    a.proxy(this.hide, this)
                ),
                this.$dialog.on('mousedown.dismiss.bs.modal', function() {
                    d.$element.one('mouseup.dismiss.bs.modal', function(b) {
                        a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0);
                    });
                }),
                this.backdrop(function() {
                    var e = a.support.transition && d.$element.hasClass('fade');
                    d.$element.parent().length || d.$element.appendTo(d.$body),
                        d.$element.show().scrollTop(0),
                        d.adjustDialog(),
                        e && d.$element[0].offsetWidth,
                        d.$element.addClass('in'),
                        d.enforceFocus();
                    var f = a.Event('shown.bs.modal', { relatedTarget: b });
                    e
                        ?
                        d.$dialog
                        .one('bsTransitionEnd', function() {
                            d.$element.trigger('focus').trigger(f);
                        })
                        .emulateTransitionEnd(c.TRANSITION_DURATION) :
                        d.$element.trigger('focus').trigger(f);
                }));
    }),
    (c.prototype.hide = function(b) {
        b && b.preventDefault(),
            (b = a.Event('hide.bs.modal')),
            this.$element.trigger(b),
            this.isShown &&
            !b.isDefaultPrevented() &&
            ((this.isShown = !1),
                this.escape(),
                this.resize(),
                a(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'),
                a.support.transition && this.$element.hasClass('fade') ?
                this.$element
                .one('bsTransitionEnd', a.proxy(this.hideModal, this))
                .emulateTransitionEnd(c.TRANSITION_DURATION) :
                this.hideModal());
    }),
    (c.prototype.enforceFocus = function() {
        a(document)
            .off('focusin.bs.modal')
            .on(
                'focusin.bs.modal',
                a.proxy(function(a) {
                    document === a.target ||
                        this.$element[0] === a.target ||
                        this.$element.has(a.target).length ||
                        this.$element.trigger('focus');
                }, this)
            );
    }),
    (c.prototype.escape = function() {
        this.isShown && this.options.keyboard ?
            this.$element.on(
                'keydown.dismiss.bs.modal',
                a.proxy(function(a) {
                    27 === a.which && this.hide();
                }, this)
            ) :
            this.isShown || this.$element.off('keydown.dismiss.bs.modal');
    }),
    (c.prototype.resize = function() {
        this.isShown ?
            a(window).on('resize.bs.modal', a.proxy(this.handleUpdate, this)) :
            a(window).off('resize.bs.modal');
    }),
    (c.prototype.hideModal = function() {
        var a = this;
        this.$element.hide(),
            this.backdrop(function() {
                a.$body.removeClass('modal-open'),
                    a.resetAdjustments(),
                    a.resetScrollbar(),
                    a.$element.trigger('hidden.bs.modal');
            });
    }),
    (c.prototype.removeBackdrop = function() {
        this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
    }),
    (c.prototype.backdrop = function(b) {
        var d = this,
            e = this.$element.hasClass('fade') ? 'fade' : '';
        if (this.isShown && this.options.backdrop) {
            var f = a.support.transition && e;
            if (
                ((this.$backdrop = a(document.createElement('div'))
                        .addClass('modal-backdrop ' + e)
                        .appendTo(this.$body)),
                    this.$element.on(
                        'click.dismiss.bs.modal',
                        a.proxy(function(a) {
                            return this.ignoreBackdropClick ?
                                void(this.ignoreBackdropClick = !1) :
                                void(
                                    a.target === a.currentTarget &&
                                    ('static' === this.options.backdrop ?
                                        this.$element[0].focus() :
                                        this.hide())
                                );
                        }, this)
                    ),
                    f && this.$backdrop[0].offsetWidth,
                    this.$backdrop.addClass('in'), !b)
            )
                return;
            f
                ?
                this.$backdrop
                .one('bsTransitionEnd', b)
                .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) :
                b();
        } else if (!this.isShown && this.$backdrop) {
            this.$backdrop.removeClass('in');
            var g = function() {
                d.removeBackdrop(), b && b();
            };
            a.support.transition && this.$element.hasClass('fade') ?
                this.$backdrop
                .one('bsTransitionEnd', g)
                .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) :
                g();
        } else b && b();
    }),
    (c.prototype.handleUpdate = function() {
        this.adjustDialog();
    }),
    (c.prototype.adjustDialog = function() {
        var a =
            this.$element[0].scrollHeight > document.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 < a),
        (this.scrollbarWidth = this.measureScrollbar());
    }),
    (c.prototype.setScrollbar = function() {
        var a = parseInt(this.$body.css('padding-right') || 0, 10);
        (this.originalBodyPad = document.body.style.paddingRight || ''),
        this.bodyIsOverflowing &&
            this.$body.css('padding-right', a + this.scrollbarWidth);
    }),
    (c.prototype.resetScrollbar = function() {
        this.$body.css('padding-right', this.originalBodyPad);
    }),
    (c.prototype.measureScrollbar = function() {
        var a = document.createElement('div');
        (a.className = 'modal-scrollbar-measure'), this.$body.append(a);
        var b = a.offsetWidth - a.clientWidth;
        return this.$body[0].removeChild(a), b;
    });
    var d = a.fn.modal;
    (a.fn.modal = b),
    (a.fn.modal.Constructor = c),
    (a.fn.modal.noConflict = function() {
        return (a.fn.modal = d), this;
    }),
    a(document).on(
        'click.bs.modal.data-api',
        '[data-toggle="modal"]',
        function(c) {
            var d = a(this),
                e = d.attr('href'),
                f = a(
                    d.attr('data-target') || (e && e.replace(/.*(?=#[^\s]+$)/, ''))
                ),
                g = f.data('bs.modal') ?
                'toggle' :
                a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data());
            d.is('a') && c.preventDefault(),
                f.one('show.bs.modal', function(a) {
                    a.isDefaultPrevented() ||
                        f.one('hidden.bs.modal', function() {
                            d.is(':visible') && d.trigger('focus');
                        });
                }),
                b.call(f, g, this);
        }
    );
})(jQuery), +(function(a) {
    'use strict';

    function b(b) {
        return this.each(function() {
            var d = a(this),
                e = d.data('bs.tooltip'),
                f = 'object' === typeof b && b;
            (!e && /destroy|hide/.test(b)) ||
            (e || d.data('bs.tooltip', (e = new c(this, f))),
                'string' === typeof b && e[b]());
        });
    }
    var c = function(a, b) {
        (this.type = null),
        (this.options = null),
        (this.enabled = null),
        (this.timeout = null),
        (this.hoverState = null),
        (this.$element = null),
        (this.inState = null),
        this.init('tooltip', a, b);
    };
    (c.VERSION = '3.3.7'),
    (c.TRANSITION_DURATION = 150),
    (c.DEFAULTS = {
        animation: !0,
        placement: 'top',
        selector: !1,
        template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
        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 - m < o.top ?
                    'bottom' :
                    'right' === h && k.right + l > o.width ?
                    'left' :
                    'left' === h && k.left - l < o.left ?
                    'right' :
                    h),
                f.removeClass(n).addClass(h);
            }
            var p = this.getCalculatedOffset(h, k, l, m);
            this.applyPlacement(p, h);
            var q = function() {
                var a = e.hoverState;
                e.$element.trigger('shown.bs.' + e.type),
                    (e.hoverState = null),
                    'out' === a && e.leave(e);
            };
            a.support.transition && this.$tip.hasClass('fade') ?
                f
                .one('bsTransitionEnd', q)
                .emulateTransitionEnd(c.TRANSITION_DURATION) :
                q();
        }
    }),
    (c.prototype.applyPlacement = function(b, c) {
        var d = this.tip(),
            e = d[0].offsetWidth,
            f = d[0].offsetHeight,
            g = parseInt(d.css('margin-top'), 10),
            h = parseInt(d.css('margin-left'), 10);
        isNaN(g) && (g = 0),
            isNaN(h) && (h = 0),
            (b.top += g),
            (b.left += h),
            a.offset.setOffset(
                d[0],
                a.extend({
                        using: function(a) {
                            d.css({ top: Math.round(a.top), left: Math.round(a.left) });
                        },
                    },
                    b
                ),
                0
            ),
            d.addClass('in');
        var i = d[0].offsetWidth,
            j = d[0].offsetHeight;
        'top' === c && j !== f && (b.top = b.top + f - j);
        var k = this.getViewportAdjustedDelta(c, b, i, j);
        k.left ? (b.left += k.left) : (b.top += k.top);
        var l = /top|bottom/.test(c),
            m = l ? 2 * k.left - e + i : 2 * k.top - f + j,
            n = l ? 'offsetWidth' : 'offsetHeight';
        d.offset(b), this.replaceArrow(m, d[0][n], l);
    }),
    (c.prototype.replaceArrow = function(a, b, c) {
        this.arrow()
            .css(c ? 'left' : 'top', 50 * (1 - a / b) + '%')
            .css(c ? 'top' : 'left', '');
    }),
    (c.prototype.setContent = function() {
        var a = this.tip(),
            b = this.getTitle();
        a.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](b),
            a.removeClass('fade in top bottom left right');
    }),
    (c.prototype.hide = function(b) {
        function d() {
            'in' !== e.hoverState && f.detach(),
                e.$element &&
                e.$element
                .removeAttr('aria-describedby')
                .trigger('hidden.bs.' + e.type),
                b && b();
        }
        var e = this,
            f = a(this.$tip),
            g = a.Event('hide.bs.' + this.type);
        if ((this.$element.trigger(g), !g.isDefaultPrevented()))
            return (
                f.removeClass('in'),
                a.support.transition && f.hasClass('fade') ?
                f
                .one('bsTransitionEnd', d)
                .emulateTransitionEnd(c.TRANSITION_DURATION) :
                d(),
                (this.hoverState = null),
                this
            );
    }),
    (c.prototype.fixTitle = function() {
        var a = this.$element;
        (a.attr('title') || 'string' !== typeof a.attr('data-original-title')) &&
        a
            .attr('data-original-title', a.attr('title') || '')
            .attr('title', '');
    }),
    (c.prototype.hasContent = function() {
        return this.getTitle();
    }),
    (c.prototype.getPosition = function(b) {
        b = b || this.$element;
        var c = b[0],
            d = 'BODY' === c.tagName,
            e = c.getBoundingClientRect();
        null === e.width &&
            (e = a.extend({}, e, {
                width: e.right - e.left,
                height: e.bottom - e.top,
            }));
        var f = window.SVGElement && c instanceof window.SVGElement,
            g = d ? { top: 0, left: 0 } : f ? null : b.offset(),
            h = {
                scroll: d ?
                    document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop(),
            },
            i = d ? { width: a(window).width(), height: a(window).height() } :
            null;
        return a.extend({}, e, h, i, g);
    }),
    (c.prototype.getCalculatedOffset = function(a, b, c, d) {
        return 'bottom' === a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } :
            'top' === a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } :
            'left' === a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
    }),
    (c.prototype.getViewportAdjustedDelta = function(a, b, c, d) {
        var e = { top: 0, left: 0 };
        if (!this.$viewport) return e;
        var f = (this.options.viewport && this.options.viewport.padding) || 0,
            g = this.getPosition(this.$viewport);
        if (/right|left/.test(a)) {
            var h = b.top - f - g.scroll,
                i = b.top + f - g.scroll + d;
            h < g.top ?
                (e.top = g.top - h) :
                i > g.top + g.height && (e.top = g.top + g.height - i);
        } else {
            var j = b.left - f,
                k = b.left + f + c;
            j < g.left ?
                (e.left = g.left - j) :
                k > g.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: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
    })),
    (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[0]) return (this.activeTarget = null), this.clear();
        for (a = e.length; a--;)
            g !== f[a] &&
            b >= e[a] &&
            (void 0 === e[a + 1] || b < e[a + 1]) &&
            this.activate(f[a]);
    }),
    (b.prototype.activate = function(b) {
        (this.activeTarget = b), this.clear();
        var c =
            this.selector +
            '[data-target="' +
            b +
            '"],' +
            this.selector +
            '[href="' +
            b +
            '"]',
            d = a(c).parents('li').addClass('active');
        d.parent('.dropdown-menu').length &&
            (d = d.closest('li.dropdown').addClass('active')),
            d.trigger('activate.bs.scrollspy');
    }),
    (b.prototype.clear = function() {
        a(this.selector)
            .parentsUntil(this.options.target, '.active')
            .removeClass('active');
    });
    var d = a.fn.scrollspy;
    (a.fn.scrollspy = c),
    (a.fn.scrollspy.Constructor = b),
    (a.fn.scrollspy.noConflict = function() {
        return (a.fn.scrollspy = d), this;
    }),
    a(window).on('load.bs.scrollspy.data-api', function() {
        a('[data-spy="scroll"]').each(function() {
            var b = a(this);
            c.call(b, b.data());
        });
    });
})(jQuery), +(function(a) {
    'use strict';

    function b(b) {
        return this.each(function() {
            var d = a(this),
                e = d.data('bs.tab');
            e || d.data('bs.tab', (e = new c(this))),
                'string' === typeof b && e[b]();
        });
    }
    var c = function(b) {
        this.element = a(b);
    };
    (c.VERSION = '3.3.7'),
    (c.TRANSITION_DURATION = 150),
    (c.prototype.show = function() {
        var b = this.element,
            c = b.closest('ul:not(.dropdown-menu)'),
            d = b.data('target');
        if (
            (d ||
                ((d = b.attr('href')), (d = d && d.replace(/.*(?=#[^\s]*$)/, ''))), !b.parent('li').hasClass('active'))
        ) {
            var e = c.find('.active:last a'),
                f = a.Event('hide.bs.tab', { relatedTarget: b[0] }),
                g = a.Event('show.bs.tab', { relatedTarget: e[0] });
            if (
                (e.trigger(f),
                    b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented())
            ) {
                var h = a(d);
                this.activate(b.closest('li'), c),
                    this.activate(h, h.parent(), function() {
                        e.trigger({ type: 'hidden.bs.tab', relatedTarget: b[0] }),
                            b.trigger({ type: 'shown.bs.tab', relatedTarget: e[0] });
                    });
            }
        }
    }),
    (c.prototype.activate = function(b, d, e) {
        function f() {
            g
                .removeClass('active')
                .find('> .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 < c && 'top';
        if ('bottom' === this.affixed)
            return null !== c ?
                !(e + this.unpin <= f.top) && 'bottom' :
                !(e + g <= a - d) && 'bottom';
        var h = null === this.affixed,
            i = h ? e : f.top,
            j = h ? g : b;
        return null !== c && e <= c ?
            'top' :
            null !== d && i + j >= 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);