/*!
 * Fotorama 4.6.4 | http://fotorama.io/license/
 */
fotoramaVersion = "4.6.4",
    function(a, b, c, d, e) {
        "use strict";

        function f(a) {
            var b = "bez_" + d.makeArray(arguments).join("_").replace(".", "p");
            if ("function" != typeof d.easing[b]) {
                var c = function(a, b) {
                    var c = [null, null],
                        d = [null, null],
                        e = [null, null],
                        f = function(f, g) {
                            return e[g] = 3 * a[g], d[g] = 3 * (b[g] - a[g]) - e[g], c[g] = 1 - e[g] - d[g], f * (e[g] + f * (d[g] + f * c[g]))
                        },
                        g = function(a) {
                            return e[0] + a * (2 * d[0] + 3 * c[0] * a)
                        },
                        h = function(a) {
                            for (var b, c = a, d = 0; ++d < 14 && (b = f(c, 0) - a, !(Math.abs(b) < .001));) c -= b / g(c);
                            return c
                        };
                    return function(a) {
                        return f(h(a), 1)
                    }
                };
                d.easing[b] = function(b, d, e, f, g) {
                    return f * c([a[0], a[1]], [a[2], a[3]])(d / g) + e
                }
            }
            return b
        }

        function g() {}

        function h(a, b, c) {
            return Math.max(isNaN(b) ? -1 / 0 : b, Math.min(isNaN(c) ? 1 / 0 : c, a))
        }

        function i(a) {
            return a.match(/ma/) && a.match(/-?\d+(?!d)/g)[a.match(/3d/) ? 12 : 4]
        }

        function j(a) {
            return Ic ? +i(a.css("transform")) : +a.css("left").replace("px", "")
        }

        function k(a) {
            var b = {};
            return Ic ? b.transform = "translate3d(" + a + "px,0,0)" : b.left = a, b
        }

        function l(a) {
            return {
                "transition-duration": a + "ms"
            }
        }

        function m(a, b) {
            return isNaN(a) ? b : a
        }

        function n(a, b) {
            return m(+String(a).replace(b || "px", ""))
        }

        function o(a) {
            return /%$/.test(a) ? n(a, "%") : e
        }

        function p(a, b) {
            return m(o(a) / 100 * b, n(a))
        }

        function q(a) {
            return (!isNaN(n(a)) || !isNaN(n(a, "%"))) && a
        }

        function r(a, b, c, d) {
            return (a - (d || 0)) * (b + (c || 0))
        }

        function s(a, b, c, d) {
            return -Math.round(a / (b + (c || 0)) - (d || 0))
        }

        function t(a) {
            var b = a.data();
            if (!b.tEnd) {
                var c = a[0],
                    d = {
                        WebkitTransition: "webkitTransitionEnd",
                        MozTransition: "transitionend",
                        OTransition: "oTransitionEnd otransitionend",
                        msTransition: "MSTransitionEnd",
                        transition: "transitionend"
                    };
                T(c, d[uc.prefixed("transition")], function(a) {
                    b.tProp && a.propertyName.match(b.tProp) && b.onEndFn()
                }), b.tEnd = !0
            }
        }

        function u(a, b, c, d) {
            var e, f = a.data();
            f && (f.onEndFn = function() {
                e || (e = !0, clearTimeout(f.tT), c())
            }, f.tProp = b, clearTimeout(f.tT), f.tT = setTimeout(function() {
                f.onEndFn()
            }, 1.5 * d), t(a))
        }

        function v(a, b) {
            if (a.length) {
                var c = a.data();
                Ic ? (a.css(l(0)), c.onEndFn = g, clearTimeout(c.tT)) : a.stop();
                var d = w(b, function() {
                    return j(a)
                });
                return a.css(k(d)), d
            }
        }

        function w() {
            for (var a, b = 0, c = arguments.length; c > b && (a = b ? arguments[b]() : arguments[b], "number" != typeof a); b++);
            return a
        }

        function x(a, b) {
            return Math.round(a + (b - a) / 1.5)
        }

        function y() {
            return y.p = y.p || ("https:" === c.protocol ? "https://" : "http://"), y.p
        }

        function z(a) {
            var c = b.createElement("a");
            return c.href = a, c
        }

        function A(a, b) {
            if ("string" != typeof a) return a;
            a = z(a);
            var c, d;
            if (a.host.match(/youtube\.com/) && a.search) {
                if (c = a.search.split("v=")[1]) {
                    var e = c.indexOf("&"); - 1 !== e && (c = c.substring(0, e)), d = "youtube"
                }
            } else a.host.match(/youtube\.com|youtu\.be/) ? (c = a.pathname.replace(/^\/(embed\/|v\/)?/, "").replace(/\/.*/, ""), d = "youtube") : a.host.match(/vimeo\.com/) && (d = "vimeo", c = a.pathname.replace(/^\/(video\/)?/, "").replace(/\/.*/, ""));
            return c && d || !b || (c = a.href, d = "custom"), c ? {
                id: c,
                type: d,
                s: a.search.replace(/^\?/, ""),
                p: y()
            } : !1
        }

        function B(a, b, c) {
            var e, f, g = a.video;
            return "youtube" === g.type ? (f = y() + "img.youtube.com/vi/" + g.id + "/default.jpg", e = f.replace(/\/default.jpg$/, "/hqdefault.jpg"), a.thumbsReady = !0) : "vimeo" === g.type ? d.ajax({
                url: y() + "vimeo.com/api/v2/video/" + g.id + ".json",
                dataType: "jsonp",
                success: function(d) {
                    a.thumbsReady = !0, C(b, {
                        img: d[0].thumbnail_large,
                        thumb: d[0].thumbnail_small
                    }, a.i, c)
                }
            }) : a.thumbsReady = !0, {
                img: e,
                thumb: f
            }
        }

        function C(a, b, c, e) {
            for (var f = 0, g = a.length; g > f; f++) {
                var h = a[f];
                if (h.i === c && h.thumbsReady) {
                    var i = {
                        videoReady: !0
                    };
                    i[Xc] = i[Zc] = i[Yc] = !1, e.splice(f, 1, d.extend({}, h, i, b));
                    break
                }
            }
        }

        function D(a) {
            function b(a, b, e) {
                var f = a.children("img").eq(0),
                    g = a.attr("href"),
                    h = a.attr("src"),
                    i = f.attr("src"),
                    j = b.video,
                    k = e ? A(g, j === !0) : !1;
                k ? g = !1 : k = j, c(a, f, d.extend(b, {
                    video: k,
                    img: b.img || g || h || i,
                    thumb: b.thumb || i || h || g
                }))
            }

            function c(a, b, c) {
                var e = c.thumb && c.img !== c.thumb,
                    f = n(c.width || a.attr("width")),
                    g = n(c.height || a.attr("height"));
                d.extend(c, {
                    width: f,
                    height: g,
                    thumbratio: S(c.thumbratio || n(c.thumbwidth || b && b.attr("width") || e || f) / n(c.thumbheight || b && b.attr("height") || e || g))
                })
            }
            var e = [];
            return a.children().each(function() {
                var a = d(this),
                    f = R(d.extend(a.data(), {
                        id: a.attr("id")
                    }));
                if (a.is("a, img")) b(a, f, !0);
                else {
                    if (a.is(":empty")) return;
                    c(a, null, d.extend(f, {
                        html: this,
                        _html: a.html()
                    }))
                }
                e.push(f)
            }), e
        }

        function E(a) {
            return 0 === a.offsetWidth && 0 === a.offsetHeight
        }

        function F(a) {
            return !d.contains(b.documentElement, a)
        }

        function G(a, b, c, d) {
            return G.i || (G.i = 1, G.ii = [!0]), d = d || G.i, "undefined" == typeof G.ii[d] && (G.ii[d] = !0), a() ? b() : G.ii[d] && setTimeout(function() {
                    G.ii[d] && G(a, b, c, d)
                }, c || 100), G.i++
        }

        function H(a) {
            c.replace(c.protocol + "//" + c.host + c.pathname.replace(/^\/?/, "/") + c.search + "#" + a)
        }

        function I(a, b, c, d) {
            var e = a.data(),
                f = e.measures;
            if (f && (!e.l || e.l.W !== f.width || e.l.H !== f.height || e.l.r !== f.ratio || e.l.w !== b.w || e.l.h !== b.h || e.l.m !== c || e.l.p !== d)) {
                var g = f.width,
                    i = f.height,
                    j = b.w / b.h,
                    k = f.ratio >= j,
                    l = "scaledown" === c,
                    m = "contain" === c,
                    n = "cover" === c,
                    o = $(d);
                k && (l || m) || !k && n ? (g = h(b.w, 0, l ? g : 1 / 0), i = g / f.ratio) : (k && n || !k && (l || m)) && (i = h(b.h, 0, l ? i : 1 / 0), g = i * f.ratio), a.css({
                    width: g,
                    height: i,
                    left: p(o.x, b.w - g),
                    top: p(o.y, b.h - i)
                }), e.l = {
                    W: f.width,
                    H: f.height,
                    r: f.ratio,
                    w: b.w,
                    h: b.h,
                    m: c,
                    p: d
                }
            }
            return !0
        }

        function J(a, b) {
            var c = a[0];
            c.styleSheet ? c.styleSheet.cssText = b : a.html(b)
        }

        function K(a, b, c) {
            return b === c ? !1 : b >= a ? "left" : a >= c ? "right" : "left right"
        }

        function L(a, b, c, d) {
            if (!c) return !1;
            if (!isNaN(a)) return a - (d ? 0 : 1);
            for (var e, f = 0, g = b.length; g > f; f++) {
                var h = b[f];
                if (h.id === a) {
                    e = f;
                    break
                }
            }
            return e
        }

        function M(a, b, c) {
            c = c || {}, a.each(function() {
                var a, e = d(this),
                    f = e.data();
                f.clickOn || (f.clickOn = !0, d.extend(cb(e, {
                    onStart: function(b) {
                        a = b, (c.onStart || g).call(this, b)
                    },
                    onMove: c.onMove || g,
                    onTouchEnd: c.onTouchEnd || g,
                    onEnd: function(c) {
                        c.moved || b.call(this, a)
                    }
                }), {
                    noMove: !0
                }))
            })
        }

        function N(a, b) {
            return '<div class="' + a + '">' + (b || "") + "</div>"
        }

        function O(a) {
            for (var b = a.length; b;) {
                var c = Math.floor(Math.random() * b--),
                    d = a[b];
                a[b] = a[c], a[c] = d
            }
            return a
        }

        function P(a) {
            return "[object Array]" == Object.prototype.toString.call(a) && d.map(a, function(a) {
                    return d.extend({}, a)
                })
        }

        function Q(a, b, c) {
            a.scrollLeft(b || 0).scrollTop(c || 0)
        }

        function R(a) {
            if (a) {
                var b = {};
                return d.each(a, function(a, c) {
                    b[a.toLowerCase()] = c
                }), b
            }
        }

        function S(a) {
            if (a) {
                var b = +a;
                return isNaN(b) ? (b = a.split("/"), +b[0] / +b[1] || e) : b
            }
        }

        function T(a, b, c, d) {
            b && (a.addEventListener ? a.addEventListener(b, c, !!d) : a.attachEvent("on" + b, c))
        }

        function U(a) {
            return !!a.getAttribute("disabled")
        }

        function V(a) {
            return {
                tabindex: -1 * a + "",
                disabled: a
            }
        }

        function W(a, b) {
            T(a, "keyup", function(c) {
                U(a) || 13 == c.keyCode && b.call(a, c)
            })
        }

        function X(a, b) {
            T(a, "focus", a.onfocusin = function(c) {
                b.call(a, c)
            }, !0)
        }

        function Y(a, b) {
            a.preventDefault ? a.preventDefault() : a.returnValue = !1, b && a.stopPropagation && a.stopPropagation()
        }

        function Z(a) {
            return a ? ">" : "<"
        }

        function $(a) {
            return a = (a + "").split(/\s+/), {
                x: q(a[0]) || bd,
                y: q(a[1]) || bd
            }
        }

        function _(a, b) {
            var c = a.data(),
                e = Math.round(b.pos),
                f = function() {
                    c.sliding = !1, (b.onEnd || g)()
                };
            "undefined" != typeof b.overPos && b.overPos !== b.pos && (e = b.overPos, f = function() {
                _(a, d.extend({}, b, {
                    overPos: b.pos,
                    time: Math.max(Qc, b.time / 2)
                }))
            });
            var h = d.extend(k(e), b.width && {
                    width: b.width
                });
            c.sliding = !0, Ic ? (a.css(d.extend(l(b.time), h)), b.time > 10 ? u(a, "transform", f, b.time) : f()) : a.stop().animate(h, b.time, _c, f)
        }

        function ab(a, b, c, e, f, h) {
            var i = "undefined" != typeof h;
            if (i || (f.push(arguments), Array.prototype.push.call(arguments, f.length), !(f.length > 1))) {
                a = a || d(a), b = b || d(b);
                var j = a[0],
                    k = b[0],
                    l = "crossfade" === e.method,
                    m = function() {
                        if (!m.done) {
                            m.done = !0;
                            var a = (i || f.shift()) && f.shift();
                            a && ab.apply(this, a), (e.onEnd || g)(!!a)
                        }
                    },
                    n = e.time / (h || 1);
                c.removeClass(Rb + " " + Qb), a.stop().addClass(Rb), b.stop().addClass(Qb), l && k && a.fadeTo(0, 0), a.fadeTo(l ? n : 0, 1, l && m), b.fadeTo(n, 0, m), j && l || k || m()
            }
        }

        function bb(a) {
            var b = (a.touches || [])[0] || a;
            a._x = b.pageX, a._y = b.clientY, a._now = d.now()
        }

        function cb(a, c) {
            function e(a) {
                return m = d(a.target), u.checked = p = q = s = !1, k || u.flow || a.touches && a.touches.length > 1 || a.which > 1 || ed && ed.type !== a.type && gd || (p = c.select && m.is(c.select, t)) ? p : (o = "touchstart" === a.type, q = m.is("a, a *", t), n = u.control, r = u.noMove || u.noSwipe || n ? 16 : u.snap ? 0 : 4, bb(a), l = ed = a, fd = a.type.replace(/down|start/, "move").replace(/Down/, "Move"), (c.onStart || g).call(t, a, {
                    control: n,
                    $target: m
                }), k = u.flow = !0, void((!o || u.go) && Y(a)))
            }

            function f(a) {
                if (a.touches && a.touches.length > 1 || Nc && !a.isPrimary || fd !== a.type || !k) return k && h(), void(c.onTouchEnd || g)();
                bb(a);
                var b = Math.abs(a._x - l._x),
                    d = Math.abs(a._y - l._y),
                    e = b - d,
                    f = (u.go || u.x || e >= 0) && !u.noSwipe,
                    i = 0 > e;
                o && !u.checked ? (k = f) && Y(a) : (Y(a), (c.onMove || g).call(t, a, {
                    touch: o
                })), !s && Math.sqrt(Math.pow(b, 2) + Math.pow(d, 2)) > r && (s = !0), u.checked = u.checked || f || i
            }

            function h(a) {
                (c.onTouchEnd || g)();
                var b = k;
                u.control = k = !1, b && (u.flow = !1), !b || q && !u.checked || (a && Y(a), gd = !0, clearTimeout(hd), hd = setTimeout(function() {
                    gd = !1
                }, 1e3), (c.onEnd || g).call(t, {
                    moved: s,
                    $target: m,
                    control: n,
                    touch: o,
                    startEvent: l,
                    aborted: !a || "MSPointerCancel" === a.type
                }))
            }

            function i() {
                u.flow || setTimeout(function() {
                    u.flow = !0
                }, 10)
            }

            function j() {
                u.flow && setTimeout(function() {
                    u.flow = !1
                }, Pc)
            }
            var k, l, m, n, o, p, q, r, s, t = a[0],
                u = {};
            return Nc ? (T(t, "MSPointerDown", e), T(b, "MSPointerMove", f), T(b, "MSPointerCancel", h), T(b, "MSPointerUp", h)) : (T(t, "touchstart", e), T(t, "touchmove", f), T(t, "touchend", h), T(b, "touchstart", i), T(b, "touchend", j), T(b, "touchcancel", j), Ec.on("scroll", j), a.on("mousedown", e), Fc.on("mousemove", f).on("mouseup", h)), a.on("click", "a", function(a) {
                u.checked && Y(a)
            }), u
        }

        function db(a, b) {
            function c(c, d) {
                A = !0, j = l = c._x, q = c._now, p = [
                    [q, j]
                ], m = n = D.noMove || d ? 0 : v(a, (b.getPos || g)()), (b.onStart || g).call(B, c)
            }

            function e(a, b) {
                s = D.min, t = D.max, u = D.snap, w = a.altKey, A = z = !1, y = b.control, y || C.sliding || c(a)
            }

            function f(d, e) {
                D.noSwipe || (A || c(d), l = d._x, p.push([d._now, l]), n = m - (j - l), o = K(n, s, t), s >= n ? n = x(n, s) : n >= t && (n = x(n, t)), D.noMove || (a.css(k(n)), z || (z = !0, e.touch || Nc || a.addClass(ec)), (b.onMove || g).call(B, d, {
                    pos: n,
                    edge: o
                })))
            }

            function i(e) {
                if (!D.noSwipe || !e.moved) {
                    A || c(e.startEvent, !0), e.touch || Nc || a.removeClass(ec), r = d.now();
                    for (var f, i, j, k, o, q, v, x, y, z = r - Pc, C = null, E = Qc, F = b.friction, G = p.length - 1; G >= 0; G--) {
                        if (f = p[G][0], i = Math.abs(f - z), null === C || j > i) C = f, k = p[G][1];
                        else if (C === z || i > j) break;
                        j = i
                    }
                    v = h(n, s, t);
                    var H = k - l,
                        I = H >= 0,
                        J = r - C,
                        K = J > Pc,
                        L = !K && n !== m && v === n;
                    u && (v = h(Math[L ? I ? "floor" : "ceil" : "round"](n / u) * u, s, t), s = t = v), L && (u || v === n) && (y = -(H / J), E *= h(Math.abs(y), b.timeLow, b.timeHigh), o = Math.round(n + y * E / F), u || (v = o), (!I && o > t || I && s > o) && (q = I ? s : t, x = o - q, u || (v = q), x = h(v + .03 * x, q - 50, q + 50), E = Math.abs((n - x) / (y / F)))), E *= w ? 10 : 1, (b.onEnd || g).call(B, d.extend(e, {
                        moved: e.moved || K && u,
                        pos: n,
                        newPos: v,
                        overPos: x,
                        time: E
                    }))
                }
            }
            var j, l, m, n, o, p, q, r, s, t, u, w, y, z, A, B = a[0],
                C = a.data(),
                D = {};
            return D = d.extend(cb(b.$wrap, d.extend({}, b, {
                onStart: e,
                onMove: f,
                onEnd: i
            })), D)
        }

        function eb(a, b) {
            var c, e, f, h = a[0],
                i = {
                    prevent: {}
                };
            return T(h, Oc, function(a) {
                var h = a.wheelDeltaY || -1 * a.deltaY || 0,
                    j = a.wheelDeltaX || -1 * a.deltaX || 0,
                    k = Math.abs(j) && !Math.abs(h),
                    l = Z(0 > j),
                    m = e === l,
                    n = d.now(),
                    o = Pc > n - f;
                e = l, f = n, k && i.ok && (!i.prevent[l] || c) && (Y(a, !0), c && m && o || (b.shift && (c = !0, clearTimeout(i.t), i.t = setTimeout(function() {
                    c = !1
                }, Rc)), (b.onEnd || g)(a, b.shift ? l : j)))
            }), i
        }

        function fb() {
            d.each(d.Fotorama.instances, function(a, b) {
                b.index = a
            })
        }

        function gb(a) {
            d.Fotorama.instances.push(a), fb()
        }

        function hb(a) {
            d.Fotorama.instances.splice(a.index, 1), fb()
        }
        var ib = "fotorama",
            jb = "fullscreen",
            kb = ib + "__wrap",
            lb = kb + "--css2",
            mb = kb + "--css3",
            nb = kb + "--video",
            ob = kb + "--fade",
            pb = kb + "--slide",
            qb = kb + "--no-controls",
            rb = kb + "--no-shadows",
            sb = kb + "--pan-y",
            tb = kb + "--rtl",
            ub = kb + "--only-active",
            vb = kb + "--no-captions",
            wb = kb + "--toggle-arrows",
            xb = ib + "__stage",
            yb = xb + "__frame",
            zb = yb + "--video",
            Ab = xb + "__shaft",
            Bb = ib + "__grab",
            Cb = ib + "__pointer",
            Db = ib + "__arr",
            Eb = Db + "--disabled",
            Fb = Db + "--prev",
            Gb = Db + "--next",
            Hb = ib + "__nav",
            Ib = Hb + "-wrap",
            Jb = Hb + "__shaft",
            Kb = Hb + "--dots",
            Lb = Hb + "--thumbs",
            Mb = Hb + "__frame",
            Nb = Mb + "--dot",
            Ob = Mb + "--thumb",
            Pb = ib + "__fade",
            Qb = Pb + "-front",
            Rb = Pb + "-rear",
            Sb = ib + "__shadow",
            Tb = Sb + "s",
            Ub = Tb + "--left",
            Vb = Tb + "--right",
            Wb = ib + "__active",
            Xb = ib + "__select",
            Yb = ib + "--hidden",
            Zb = ib + "--fullscreen",
            $b = ib + "__fullscreen-icon",
            _b = ib + "__error",
            ac = ib + "__loading",
            bc = ib + "__loaded",
            cc = bc + "--full",
            dc = bc + "--img",
            ec = ib + "__grabbing",
            fc = ib + "__img",
            gc = fc + "--full",
            hc = ib + "__dot",
            ic = ib + "__thumb",
            jc = ic + "-border",
            kc = ib + "__html",
            lc = ib + "__video",
            mc = lc + "-play",
            nc = lc + "-close",
            oc = ib + "__caption",
            pc = ib + "__caption__wrap",
            qc = ib + "__spinner",
            rc = '" tabindex="0" role="button',
            sc = d && d.fn.jquery.split(".");
        if (!sc || sc[0] < 1 || 1 == sc[0] && sc[1] < 8) throw "Fotorama requires jQuery 1.8 or later and will not run without it.";
        var tc = {},
            uc = function(a, b, c) {
                function d(a) {
                    r.cssText = a
                }

                function e(a, b) {
                    return typeof a === b
                }

                function f(a, b) {
                    return !!~("" + a).indexOf(b)
                }

                function g(a, b) {
                    for (var d in a) {
                        var e = a[d];
                        if (!f(e, "-") && r[e] !== c) return "pfx" == b ? e : !0
                    }
                    return !1
                }

                function h(a, b, d) {
                    for (var f in a) {
                        var g = b[a[f]];
                        if (g !== c) return d === !1 ? a[f] : e(g, "function") ? g.bind(d || b) : g
                    }
                    return !1
                }

                function i(a, b, c) {
                    var d = a.charAt(0).toUpperCase() + a.slice(1),
                        f = (a + " " + u.join(d + " ") + d).split(" ");
                    return e(b, "string") || e(b, "undefined") ? g(f, b) : (f = (a + " " + v.join(d + " ") + d).split(" "), h(f, b, c))
                }
                var j, k, l, m = "2.6.2",
                    n = {},
                    o = b.documentElement,
                    p = "modernizr",
                    q = b.createElement(p),
                    r = q.style,
                    s = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")),
                    t = "Webkit Moz O ms",
                    u = t.split(" "),
                    v = t.toLowerCase().split(" "),
                    w = {},
                    x = [],
                    y = x.slice,
                    z = function(a, c, d, e) {
                        var f, g, h, i, j = b.createElement("div"),
                            k = b.body,
                            l = k || b.createElement("body");
                        if (parseInt(d, 10))
                            for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : p + (d + 1), j.appendChild(h);
                        return f = ["&#173;", '<style id="s', p, '">', a, "</style>"].join(""), j.id = p, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = o.style.overflow, o.style.overflow = "hidden", o.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), o.style.overflow = i), !!g
                    },
                    A = {}.hasOwnProperty;
                l = e(A, "undefined") || e(A.call, "undefined") ? function(a, b) {
                    return b in a && e(a.constructor.prototype[b], "undefined")
                } : function(a, b) {
                    return A.call(a, b)
                }, Function.prototype.bind || (Function.prototype.bind = function(a) {
                    var b = this;
                    if ("function" != typeof b) throw new TypeError;
                    var c = y.call(arguments, 1),
                        d = function() {
                            if (this instanceof d) {
                                var e = function() {};
                                e.prototype = b.prototype;
                                var f = new e,
                                    g = b.apply(f, c.concat(y.call(arguments)));
                                return Object(g) === g ? g : f
                            }
                            return b.apply(a, c.concat(y.call(arguments)))
                        };
                    return d
                }), w.csstransforms3d = function() {
                    var a = !!i("perspective");
                    return a
                };
                for (var B in w) l(w, B) && (k = B.toLowerCase(), n[k] = w[B](), x.push((n[k] ? "" : "no-") + k));
                return n.addTest = function(a, b) {
                    if ("object" == typeof a)
                        for (var d in a) l(a, d) && n.addTest(d, a[d]);
                    else {
                        if (a = a.toLowerCase(), n[a] !== c) return n;
                        b = "function" == typeof b ? b() : b, "undefined" != typeof enableClasses && enableClasses && (o.className += " " + (b ? "" : "no-") + a), n[a] = b
                    }
                    return n
                }, d(""), q = j = null, n._version = m, n._prefixes = s, n._domPrefixes = v, n._cssomPrefixes = u, n.testProp = function(a) {
                    return g([a])
                }, n.testAllProps = i, n.testStyles = z, n.prefixed = function(a, b, c) {
                    return b ? i(a, b, c) : i(a, "pfx")
                }, n
            }(a, b),
            vc = {
                ok: !1,
                is: function() {
                    return !1
                },
                request: function() {},
                cancel: function() {},
                event: "",
                prefix: ""
            },
            wc = "webkit moz o ms khtml".split(" ");
        if ("undefined" != typeof b.cancelFullScreen) vc.ok = !0;
        else
            for (var xc = 0, yc = wc.length; yc > xc; xc++)
                if (vc.prefix = wc[xc], "undefined" != typeof b[vc.prefix + "CancelFullScreen"]) {
                    vc.ok = !0;
                    break
                }
        vc.ok && (vc.event = vc.prefix + "fullscreenchange", vc.is = function() {
            switch (this.prefix) {
                case "":
                    return b.fullScreen;
                case "webkit":
                    return b.webkitIsFullScreen;
                default:
                    return b[this.prefix + "FullScreen"]
            }
        }, vc.request = function(a) {
            return "" === this.prefix ? a.requestFullScreen() : a[this.prefix + "RequestFullScreen"]()
        }, vc.cancel = function() {
            return "" === this.prefix ? b.cancelFullScreen() : b[this.prefix + "CancelFullScreen"]()
        });
        var zc, Ac = {
                lines: 12,
                length: 5,
                width: 2,
                radius: 7,
                corners: 1,
                rotate: 15,
                color: "rgba(128, 128, 128, .75)",
                hwaccel: !0
            },
            Bc = {
                top: "auto",
                left: "auto",
                className: ""
            };
        ! function(a, b) {
            zc = b()
        }(this, function() {
            function a(a, c) {
                var d, e = b.createElement(a || "div");
                for (d in c) e[d] = c[d];
                return e
            }

            function c(a) {
                for (var b = 1, c = arguments.length; c > b; b++) a.appendChild(arguments[b]);
                return a
            }

            function d(a, b, c, d) {
                var e = ["opacity", b, ~~(100 * a), c, d].join("-"),
                    f = .01 + c / d * 100,
                    g = Math.max(1 - (1 - a) / b * (100 - f), a),
                    h = m.substring(0, m.indexOf("Animation")).toLowerCase(),
                    i = h && "-" + h + "-" || "";
                return o[e] || (p.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", p.cssRules.length), o[e] = 1), e
            }

            function f(a, b) {
                var c, d, f = a.style;
                for (b = b.charAt(0).toUpperCase() + b.slice(1), d = 0; d < n.length; d++)
                    if (c = n[d] + b, f[c] !== e) return c;
                return f[b] !== e ? b : void 0
            }

            function g(a, b) {
                for (var c in b) a.style[f(a, c) || c] = b[c];
                return a
            }

            function h(a) {
                for (var b = 1; b < arguments.length; b++) {
                    var c = arguments[b];
                    for (var d in c) a[d] === e && (a[d] = c[d])
                }
                return a
            }

            function i(a) {
                for (var b = {
                    x: a.offsetLeft,
                    y: a.offsetTop
                }; a = a.offsetParent;) b.x += a.offsetLeft, b.y += a.offsetTop;
                return b
            }

            function j(a, b) {
                return "string" == typeof a ? a : a[b % a.length]
            }

            function k(a) {
                return "undefined" == typeof this ? new k(a) : void(this.opts = h(a || {}, k.defaults, q))
            }

            function l() {
                function b(b, c) {
                    return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c)
                }
                p.addRule(".spin-vml", "behavior:url(#default#VML)"), k.prototype.lines = function(a, d) {
                    function e() {
                        return g(b("group", {
                            coordsize: k + " " + k,
                            coordorigin: -i + " " + -i
                        }), {
                            width: k,
                            height: k
                        })
                    }

                    function f(a, f, h) {
                        c(m, c(g(e(), {
                            rotation: 360 / d.lines * a + "deg",
                            left: ~~f
                        }), c(g(b("roundrect", {
                            arcsize: d.corners
                        }), {
                            width: i,
                            height: d.width,
                            left: d.radius,
                            top: -d.width >> 1,
                            filter: h
                        }), b("fill", {
                            color: j(d.color, a),
                            opacity: d.opacity
                        }), b("stroke", {
                            opacity: 0
                        }))))
                    }
                    var h, i = d.length + d.width,
                        k = 2 * i,
                        l = 2 * -(d.width + d.length) + "px",
                        m = g(e(), {
                            position: "absolute",
                            top: l,
                            left: l
                        });
                    if (d.shadow)
                        for (h = 1; h <= d.lines; h++) f(h, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
                    for (h = 1; h <= d.lines; h++) f(h);
                    return c(a, m)
                }, k.prototype.opacity = function(a, b, c, d) {
                    var e = a.firstChild;
                    d = d.shadow && d.lines || 0, e && b + d < e.childNodes.length && (e = e.childNodes[b + d], e = e && e.firstChild, e = e && e.firstChild, e && (e.opacity = c))
                }
            }
            var m, n = ["webkit", "Moz", "ms", "O"],
                o = {},
                p = function() {
                    var d = a("style", {
                        type: "text/css"
                    });
                    return c(b.getElementsByTagName("head")[0], d), d.sheet || d.styleSheet
                }(),
                q = {
                    lines: 12,
                    length: 7,
                    width: 5,
                    radius: 10,
                    rotate: 0,
                    corners: 1,
                    color: "#000",
                    direction: 1,
                    speed: 1,
                    trail: 100,
                    opacity: .25,
                    fps: 20,
                    zIndex: 2e9,
                    className: "spinner",
                    top: "auto",
                    left: "auto",
                    position: "relative"
                };
            k.defaults = {}, h(k.prototype, {
                spin: function(b) {
                    this.stop();
                    var c, d, e = this,
                        f = e.opts,
                        h = e.el = g(a(0, {
                            className: f.className
                        }), {
                            position: f.position,
                            width: 0,
                            zIndex: f.zIndex
                        }),
                        j = f.radius + f.length + f.width;
                    if (b && (b.insertBefore(h, b.firstChild || null), d = i(b), c = i(h), g(h, {
                            left: ("auto" == f.left ? d.x - c.x + (b.offsetWidth >> 1) : parseInt(f.left, 10) + j) + "px",
                            top: ("auto" == f.top ? d.y - c.y + (b.offsetHeight >> 1) : parseInt(f.top, 10) + j) + "px"
                        })), h.setAttribute("role", "progressbar"), e.lines(h, e.opts), !m) {
                        var k, l = 0,
                            n = (f.lines - 1) * (1 - f.direction) / 2,
                            o = f.fps,
                            p = o / f.speed,
                            q = (1 - f.opacity) / (p * f.trail / 100),
                            r = p / f.lines;
                        ! function s() {
                            l++;
                            for (var a = 0; a < f.lines; a++) k = Math.max(1 - (l + (f.lines - a) * r) % p * q, f.opacity), e.opacity(h, a * f.direction + n, k, f);
                            e.timeout = e.el && setTimeout(s, ~~(1e3 / o))
                        }()
                    }
                    return e
                },
                stop: function() {
                    var a = this.el;
                    return a && (clearTimeout(this.timeout), a.parentNode && a.parentNode.removeChild(a), this.el = e), this
                },
                lines: function(b, e) {
                    function f(b, c) {
                        return g(a(), {
                            position: "absolute",
                            width: e.length + e.width + "px",
                            height: e.width + "px",
                            background: b,
                            boxShadow: c,
                            transformOrigin: "left",
                            transform: "rotate(" + ~~(360 / e.lines * i + e.rotate) + "deg) translate(" + e.radius + "px,0)",
                            borderRadius: (e.corners * e.width >> 1) + "px"
                        })
                    }
                    for (var h, i = 0, k = (e.lines - 1) * (1 - e.direction) / 2; i < e.lines; i++) h = g(a(), {
                        position: "absolute",
                        top: 1 + ~(e.width / 2) + "px",
                        transform: e.hwaccel ? "translate3d(0,0,0)" : "",
                        opacity: e.opacity,
                        animation: m && d(e.opacity, e.trail, k + i * e.direction, e.lines) + " " + 1 / e.speed + "s linear infinite"
                    }), e.shadow && c(h, g(f("#000", "0 0 4px #000"), {
                        top: "2px"
                    })), c(b, c(h, f(j(e.color, i), "0 0 1px rgba(0,0,0,.1)")));
                    return b
                },
                opacity: function(a, b, c) {
                    b < a.childNodes.length && (a.childNodes[b].style.opacity = c)
                }
            });
            var r = g(a("group"), {
                behavior: "url(#default#VML)"
            });
            return !f(r, "transform") && r.adj ? l() : m = f(r, "animation"), k
        });
        var Cc, Dc, Ec = d(a),
            Fc = d(b),
            Gc = "quirks" === c.hash.replace("#", ""),
            Hc = uc.csstransforms3d,
            Ic = Hc && !Gc,
            Jc = Hc || "CSS1Compat" === b.compatMode,
            Kc = vc.ok,
            Lc = navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i),
            Mc = !Ic || Lc,
            Nc = navigator.msPointerEnabled,
            Oc = "onwheel" in b.createElement("div") ? "wheel" : b.onmousewheel !== e ? "mousewheel" : "DOMMouseScroll",
            Pc = 250,
            Qc = 300,
            Rc = 1400,
            Sc = 5e3,
            Tc = 2,
            Uc = 64,
            Vc = 500,
            Wc = 333,
            Xc = "$stageFrame",
            Yc = "$navDotFrame",
            Zc = "$navThumbFrame",
            $c = "auto",
            _c = f([.1, 0, .25, 1]),
            ad = 99999,
            bd = "50%",
            cd = {
                width: null,
                minwidth: null,
                maxwidth: "100%",
                height: null,
                minheight: null,
                maxheight: null,
                ratio: null,
                margin: Tc,
                glimpse: 0,
                fit: "contain",
                position: bd,
                thumbposition: bd,
                nav: "dots",
                navposition: "bottom",
                navwidth: null,
                thumbwidth: Uc,
                thumbheight: Uc,
                thumbmargin: Tc,
                thumbborderwidth: Tc,
                thumbfit: "cover",
                allowfullscreen: !1,
                transition: "slide",
                clicktransition: null,
                transitionduration: Qc,
                captions: !0,
                hash: !1,
                startindex: 0,
                loop: !1,
                autoplay: !1,
                stopautoplayontouch: !0,
                keyboard: !1,
                arrows: !0,
                click: !0,
                swipe: !0,
                trackpad: !1,
                enableifsingleframe: !1,
                controlsonstart: !0,
                shuffle: !1,
                direction: "ltr",
                shadows: !0,
                spinner: null
            },
            dd = {
                left: !0,
                right: !0,
                down: !1,
                up: !1,
                space: !1,
                home: !1,
                end: !1
            };
        G.stop = function(a) {
            G.ii[a] = !1
        };
        var ed, fd, gd, hd;
        jQuery.Fotorama = function(a, e) {
            function f() {
                d.each(yd, function(a, b) {
                    if (!b.i) {
                        b.i = me++;
                        var c = A(b.video, !0);
                        if (c) {
                            var d = {};
                            b.video = c, b.img || b.thumb ? b.thumbsReady = !0 : d = B(b, yd, ie), C(yd, {
                                img: d.img,
                                thumb: d.thumb
                            }, b.i, ie)
                        }
                    }
                })
            }

            function g(a) {
                return Zd[a] || ie.fullScreen
            }

            function i(a) {
                var b = "keydown." + ib,
                    c = ib + je,
                    d = "keydown." + c,
                    f = "resize." + c + " orientationchange." + c;
                a ? (Fc.on(d, function(a) {
                    var b, c;
                    Cd && 27 === a.keyCode ? (b = !0, md(Cd, !0, !0)) : (ie.fullScreen || e.keyboard && !ie.index) && (27 === a.keyCode ? (b = !0, ie.cancelFullScreen()) : a.shiftKey && 32 === a.keyCode && g("space") || 37 === a.keyCode && g("left") || 38 === a.keyCode && g("up") ? c = "<" : 32 === a.keyCode && g("space") || 39 === a.keyCode && g("right") || 40 === a.keyCode && g("down") ? c = ">" : 36 === a.keyCode && g("home") ? c = "<<" : 35 === a.keyCode && g("end") && (c = ">>")), (b || c) && Y(a), c && ie.show({
                        index: c,
                        slow: a.altKey,
                        user: !0
                    })
                }), ie.index || Fc.off(b).on(b, "textarea, input, select", function(a) {
                    !Dc.hasClass(jb) && a.stopPropagation()
                }), Ec.on(f, ie.resize)) : (Fc.off(d), Ec.off(f))
            }

            function j(b) {
                b !== j.f && (b ? (a.html("").addClass(ib + " " + ke).append(qe).before(oe).before(pe), gb(ie)) : (qe.detach(), oe.detach(), pe.detach(), a.html(ne.urtext).removeClass(ke), hb(ie)), i(b), j.f = b)
            }

            function m() {
                yd = ie.data = yd || P(e.data) || D(a), zd = ie.size = yd.length, !xd.ok && e.shuffle && O(yd), f(), Je = y(Je), zd && j(!0)
            }

            function o() {
                var a = 2 > zd && !e.enableifsingleframe || Cd;
                Me.noMove = a || Sd, Me.noSwipe = a || !e.swipe, !Wd && se.toggleClass(Bb, !e.click && !Me.noMove && !Me.noSwipe), Nc && qe.toggleClass(sb, !Me.noSwipe)
            }

            function t(a) {
                a === !0 && (a = ""), e.autoplay = Math.max(+a || Sc, 1.5 * Vd)
            }

            function u() {
                function a(a, c) {
                    b[a ? "add" : "remove"].push(c)
                }
                ie.options = e = R(e), Sd = "crossfade" === e.transition || "dissolve" === e.transition, Md = e.loop && (zd > 2 || Sd && (!Wd || "slide" !== Wd)), Vd = +e.transitionduration || Qc, Yd = "rtl" === e.direction, Zd = d.extend({}, e.keyboard && dd, e.keyboard);
                var b = {
                    add: [],
                    remove: []
                };
                zd > 1 || e.enableifsingleframe ? (Nd = e.nav, Pd = "top" === e.navposition, b.remove.push(Xb), we.toggle(!!e.arrows)) : (Nd = !1, we.hide()), Rb(), Bd = new zc(d.extend(Ac, e.spinner, Bc, {
                    direction: Yd ? -1 : 1
                })), Gc(), Hc(), e.autoplay && t(e.autoplay), Td = n(e.thumbwidth) || Uc, Ud = n(e.thumbheight) || Uc, Ne.ok = Pe.ok = e.trackpad && !Mc, o(), ed(e, [Le]), Od = "thumbs" === Nd, Od ? (lc(zd, "navThumb"), Ad = Be, he = Zc, J(oe, d.Fotorama.jst.style({
                    w: Td,
                    h: Ud,
                    b: e.thumbborderwidth,
                    m: e.thumbmargin,
                    s: je,
                    q: !Jc
                })), ye.addClass(Lb).removeClass(Kb)) : "dots" === Nd ? (lc(zd, "navDot"), Ad = Ae, he = Yc, ye.addClass(Kb).removeClass(Lb)) : (Nd = !1, ye.removeClass(Lb + " " + Kb)), Nd && (Pd ? xe.insertBefore(re) : xe.insertAfter(re), wc.nav = !1, wc(Ad, ze, "nav")), Qd = e.allowfullscreen, Qd ? (De.prependTo(re), Rd = Kc && "native" === Qd) : (De.detach(), Rd = !1), a(Sd, ob), a(!Sd, pb), a(!e.captions, vb), a(Yd, tb), a("always" !== e.arrows, wb), Xd = e.shadows && !Mc, a(!Xd, rb), qe.addClass(b.add.join(" ")).removeClass(b.remove.join(" ")), Ke = d.extend({}, e)
            }

            function x(a) {
                return 0 > a ? (zd + a % zd) % zd : a >= zd ? a % zd : a
            }

            function y(a) {
                return h(a, 0, zd - 1)
            }

            function z(a) {
                return Md ? x(a) : y(a)
            }

            function E(a) {
                return a > 0 || Md ? a - 1 : !1
            }

            function U(a) {
                return zd - 1 > a || Md ? a + 1 : !1
            }

            function $() {
                Me.min = Md ? -1 / 0 : -r(zd - 1, Le.w, e.margin, Fd), Me.max = Md ? 1 / 0 : -r(0, Le.w, e.margin, Fd), Me.snap = Le.w + e.margin
            }

            function bb() {
                Oe.min = Math.min(0, Le.nw - ze.width()), Oe.max = 0, ze.toggleClass(Bb, !(Oe.noMove = Oe.min === Oe.max))
            }

            function cb(a, b, c) {
                if ("number" == typeof a) {
                    a = new Array(a);
                    var e = !0
                }
                return d.each(a, function(a, d) {
                    if (e && (d = a), "number" == typeof d) {
                        var f = yd[x(d)];
                        if (f) {
                            var g = "$" + b + "Frame",
                                h = f[g];
                            c.call(this, a, d, f, h, g, h && h.data())
                        }
                    }
                })
            }

            function fb(a, b, c, d) {
                (!$d || "*" === $d && d === Ld) && (a = q(e.width) || q(a) || Vc, b = q(e.height) || q(b) || Wc, ie.resize({
                    width: a,
                    ratio: e.ratio || c || a / b
                }, 0, d !== Ld && "*"))
            }

            function Pb(a, b, c, f, g, h) {
                cb(a, b, function(a, i, j, k, l, m) {
                    function n(a) {
                        var b = x(i);
                        fd(a, {
                            index: b,
                            src: w,
                            frame: yd[b]
                        })
                    }

                    function o() {
                        t.remove(), d.Fotorama.cache[w] = "error", j.html && "stage" === b || !y || y === w ? (!w || j.html || r ? "stage" === b && (k.trigger("f:load").removeClass(ac + " " + _b).addClass(bc), n("load"), fb()) : (k.trigger("f:error").removeClass(ac).addClass(_b), n("error")), m.state = "error", !(zd > 1 && yd[i] === j) || j.html || j.deleted || j.video || r || (j.deleted = !0, ie.splice(i, 1))) : (j[v] = w = y, Pb([i], b, c, f, g, !0))
                    }

                    function p() {
                        d.Fotorama.measures[w] = u.measures = d.Fotorama.measures[w] || {
                                width: s.width,
                                height: s.height,
                                ratio: s.width / s.height
                            }, fb(u.measures.width, u.measures.height, u.measures.ratio, i), t.off("load error").addClass(fc + (r ? " " + gc : "")).prependTo(k), I(t, (d.isFunction(c) ? c() : c) || Le, f || j.fit || e.fit, g || j.position || e.position), d.Fotorama.cache[w] = m.state = "loaded", setTimeout(function() {
                            k.trigger("f:load").removeClass(ac + " " + _b).addClass(bc + " " + (r ? cc : dc)), "stage" === b ? n("load") : (j.thumbratio === $c || !j.thumbratio && e.thumbratio === $c) && (j.thumbratio = u.measures.ratio, vd())
                        }, 0)
                    }

                    function q() {
                        var a = 10;
                        G(function() {
                            return !fe || !a-- && !Mc
                        }, function() {
                            p()
                        })
                    }
                    if (k) {
                        var r = ie.fullScreen && j.full && j.full !== j.img && !m.$full && "stage" === b;
                        if (!m.$img || h || r) {
                            var s = new Image,
                                t = d(s),
                                u = t.data();
                            m[r ? "$full" : "$img"] = t;
                            var v = "stage" === b ? r ? "full" : "img" : "thumb",
                                w = j[v],
                                y = r ? null : j["stage" === b ? "thumb" : "img"];
                            if ("navThumb" === b && (k = m.$wrap), !w) return void o();
                            d.Fotorama.cache[w] ? ! function z() {
                                "error" === d.Fotorama.cache[w] ? o() : "loaded" === d.Fotorama.cache[w] ? setTimeout(q, 0) : setTimeout(z, 100)
                            }() : (d.Fotorama.cache[w] = "*", t.on("load", q).on("error", o)), m.state = "", s.src = w
                        }
                    }
                })
            }

            function Qb(a) {
                Ie.append(Bd.spin().el).appendTo(a)
            }

            function Rb() {
                Ie.detach(), Bd && Bd.stop()
            }

            function Sb() {
                var a = Dd[Xc];
                a && !a.data().state && (Qb(a), a.on("f:load f:error", function() {
                    a.off("f:load f:error"), Rb()
                }))
            }

            function ec(a) {
                W(a, sd), X(a, function() {
                    setTimeout(function() {
                        Q(ye)
                    }, 0), Rc({
                        time: Vd,
                        guessIndex: d(this).data().eq,
                        minMax: Oe
                    })
                })
            }

            function lc(a, b) {
                cb(a, b, function(a, c, e, f, g, h) {
                    if (!f) {
                        f = e[g] = qe[g].clone(), h = f.data(), h.data = e;
                        var i = f[0];
                        "stage" === b ? (e.html && d('<div class="' + kc + '"></div>').append(e._html ? d(e.html).removeAttr("id").html(e._html) : e.html).appendTo(f), e.caption && d(N(oc, N(pc, e.caption))).appendTo(f), e.video && f.addClass(zb).append(Fe.clone()), X(i, function() {
                            setTimeout(function() {
                                Q(re)
                            }, 0), pd({
                                index: h.eq,
                                user: !0
                            })
                        }), te = te.add(f)) : "navDot" === b ? (ec(i), Ae = Ae.add(f)) : "navThumb" === b && (ec(i), h.$wrap = f.children(":first"), Be = Be.add(f), e.video && h.$wrap.append(Fe.clone()))
                    }
                })
            }

            function sc(a, b, c, d) {
                return a && a.length && I(a, b, c, d)
            }

            function tc(a) {
                cb(a, "stage", function(a, b, c, f, g, h) {
                    if (f) {
                        var i = x(b),
                            j = c.fit || e.fit,
                            k = c.position || e.position;
                        h.eq = i, Re[Xc][i] = f.css(d.extend({
                            left: Sd ? 0 : r(b, Le.w, e.margin, Fd)
                        }, Sd && l(0))), F(f[0]) && (f.appendTo(se), md(c.$video)), sc(h.$img, Le, j, k), sc(h.$full, Le, j, k)
                    }
                })
            }

            function uc(a, b) {
                if ("thumbs" === Nd && !isNaN(a)) {
                    var c = -a,
                        f = -a + Le.nw;
                    Be.each(function() {
                        var a = d(this),
                            g = a.data(),
                            h = g.eq,
                            i = function() {
                                return {
                                    h: Ud,
                                    w: g.w
                                }
                            },
                            j = i(),
                            k = yd[h] || {},
                            l = k.thumbfit || e.thumbfit,
                            m = k.thumbposition || e.thumbposition;
                        j.w = g.w, g.l + g.w < c || g.l > f || sc(g.$img, j, l, m) || b && Pb([h], "navThumb", i, l, m)
                    })
                }
            }

            function wc(a, b, c) {
                if (!wc[c]) {
                    var f = "nav" === c && Od,
                        g = 0;
                    b.append(a.filter(function() {
                        for (var a, b = d(this), c = b.data(), e = 0, f = yd.length; f > e; e++)
                            if (c.data === yd[e]) {
                                a = !0, c.eq = e;
                                break
                            }
                        return a || b.remove() && !1
                    }).sort(function(a, b) {
                        return d(a).data().eq - d(b).data().eq
                    }).each(function() {
                        if (f) {
                            var a = d(this),
                                b = a.data(),
                                c = Math.round(Ud * b.data.thumbratio) || Td;
                            b.l = g, b.w = c, a.css({
                                width: c
                            }), g += c + e.thumbmargin
                        }
                    })), wc[c] = !0
                }
            }

            function xc(a) {
                return a - Se > Le.w / 3
            }

            function yc(a) {
                return !(Md || Je + a && Je - zd + a || Cd)
            }

            function Gc() {
                var a = yc(0),
                    b = yc(1);
                ue.toggleClass(Eb, a).attr(V(a)), ve.toggleClass(Eb, b).attr(V(b))
            }

            function Hc() {
                Ne.ok && (Ne.prevent = {
                    "<": yc(0),
                    ">": yc(1)
                })
            }

            function Lc(a) {
                var b, c, d = a.data();
                return Od ? (b = d.l, c = d.w) : (b = a.position().left, c = a.width()), {
                    c: b + c / 2,
                    min: -b + 10 * e.thumbmargin,
                    max: -b + Le.w - c - 10 * e.thumbmargin
                }
            }

            function Oc(a) {
                var b = Dd[he].data();
                _(Ce, {
                    time: 1.2 * a,
                    pos: b.l,
                    width: b.w - 2 * e.thumbborderwidth
                })
            }

            function Rc(a) {
                var b = yd[a.guessIndex][he];
                if (b) {
                    var c = Oe.min !== Oe.max,
                        d = a.minMax || c && Lc(Dd[he]),
                        e = c && (a.keep && Rc.l ? Rc.l : h((a.coo || Le.nw / 2) - Lc(b).c, d.min, d.max)),
                        f = c && h(e, Oe.min, Oe.max),
                        g = 1.1 * a.time;
                    _(ze, {
                        time: g,
                        pos: f || 0,
                        onEnd: function() {
                            uc(f, !0)
                        }
                    }), ld(ye, K(f, Oe.min, Oe.max)), Rc.l = e
                }
            }

            function Tc() {
                _c(he), Qe[he].push(Dd[he].addClass(Wb))
            }

            function _c(a) {
                for (var b = Qe[a]; b.length;) b.shift().removeClass(Wb)
            }

            function bd(a) {
                var b = Re[a];
                d.each(Ed, function(a, c) {
                    delete b[x(c)]
                }), d.each(b, function(a, c) {
                    delete b[a], c.detach()
                })
            }

            function cd(a) {
                Fd = Gd = Je;
                var b = Dd[Xc];
                b && (_c(Xc), Qe[Xc].push(b.addClass(Wb)), a || ie.show.onEnd(!0), v(se, 0, !0), bd(Xc), tc(Ed), $(), bb())
            }

            function ed(a, b) {
                a && d.each(b, function(b, c) {
                    c && d.extend(c, {
                        width: a.width || c.width,
                        height: a.height,
                        minwidth: a.minwidth,
                        maxwidth: a.maxwidth,
                        minheight: a.minheight,
                        maxheight: a.maxheight,
                        ratio: S(a.ratio)
                    })
                })
            }

            function fd(b, c) {
                a.trigger(ib + ":" + b, [ie, c])
            }

            function gd() {
                clearTimeout(hd.t), fe = 1, e.stopautoplayontouch ? ie.stopAutoplay() : ce = !0
            }

            function hd() {
                fe && (e.stopautoplayontouch || (id(), jd()), hd.t = setTimeout(function() {
                    fe = 0
                }, Qc + Pc))
            }

            function id() {
                ce = !(!Cd && !de)
            }

            function jd() {
                if (clearTimeout(jd.t), G.stop(jd.w), !e.autoplay || ce) return void(ie.autoplay && (ie.autoplay = !1, fd("stopautoplay")));
                ie.autoplay || (ie.autoplay = !0, fd("startautoplay"));
                var a = Je,
                    b = Dd[Xc].data();
                jd.w = G(function() {
                    return b.state || a !== Je
                }, function() {
                    jd.t = setTimeout(function() {
                        if (!ce && a === Je) {
                            var b = Kd,
                                c = yd[b][Xc].data();
                            jd.w = G(function() {
                                return c.state || b !== Kd
                            }, function() {
                                ce || b !== Kd || ie.show(Md ? Z(!Yd) : Kd)
                            })
                        }
                    }, e.autoplay)
                })
            }

            function kd() {
                ie.fullScreen && (ie.fullScreen = !1, Kc && vc.cancel(le), Dc.removeClass(jb), Cc.removeClass(jb), a.removeClass(Zb).insertAfter(pe), Le = d.extend({}, ee), md(Cd, !0, !0), rd("x", !1), ie.resize(), Pb(Ed, "stage"), Q(Ec, ae, _d), fd("fullscreenexit"))
            }

            function ld(a, b) {
                Xd && (a.removeClass(Ub + " " + Vb), b && !Cd && a.addClass(b.replace(/^|\s/g, " " + Tb + "--")))
            }

            function md(a, b, c) {
                b && (qe.removeClass(nb), Cd = !1, o()), a && a !== Cd && (a.remove(), fd("unloadvideo")), c && (id(), jd())
            }

            function nd(a) {
                qe.toggleClass(qb, a)
            }

            function od(a) {
                if (!Me.flow) {
                    var b = a ? a.pageX : od.x,
                        c = b && !yc(xc(b)) && e.click;
                    od.p !== c && re.toggleClass(Cb, c) && (od.p = c, od.x = b)
                }
            }

            function pd(a) {
                clearTimeout(pd.t), e.clicktransition && e.clicktransition !== e.transition ? setTimeout(function() {
                    var b = e.transition;
                    ie.setOptions({
                        transition: e.clicktransition
                    }), Wd = b, pd.t = setTimeout(function() {
                        ie.show(a)
                    }, 10)
                }, 0) : ie.show(a)
            }

            function qd(a, b) {
                var c = a.target,
                    f = d(c);
                f.hasClass(mc) ? ie.playVideo() : c === Ee ? ie.toggleFullScreen() : Cd ? c === He && md(Cd, !0, !0) : b ? nd() : e.click && pd({
                        index: a.shiftKey || Z(xc(a._x)),
                        slow: a.altKey,
                        user: !0
                    })
            }

            function rd(a, b) {
                Me[a] = Oe[a] = b
            }

            function sd(a) {
                var b = d(this).data().eq;
                pd({
                    index: b,
                    slow: a.altKey,
                    user: !0,
                    coo: a._x - ye.offset().left
                })
            }

            function td(a) {
                pd({
                    index: we.index(this) ? ">" : "<",
                    slow: a.altKey,
                    user: !0
                })
            }

            function ud(a) {
                X(a, function() {
                    setTimeout(function() {
                        Q(re)
                    }, 0), nd(!1)
                })
            }

            function vd() {
                if (m(), u(), !vd.i) {
                    vd.i = !0;
                    var a = e.startindex;
                    (a || e.hash && c.hash) && (Ld = L(a || c.hash.replace(/^#/, ""), yd, 0 === ie.index || a, a)), Je = Fd = Gd = Hd = Ld = z(Ld) || 0
                }
                if (zd) {
                    if (wd()) return;
                    Cd && md(Cd, !0), Ed = [], bd(Xc), vd.ok = !0, ie.show({
                        index: Je,
                        time: 0
                    }), ie.resize()
                } else ie.destroy()
            }

            function wd() {
                return !wd.f === Yd ? (wd.f = Yd, Je = zd - 1 - Je, ie.reverse(), !0) : void 0
            }

            function xd() {
                xd.ok || (xd.ok = !0, fd("ready"))
            }
            Cc = d("html"), Dc = d("body");
            var yd, zd, Ad, Bd, Cd, Dd, Ed, Fd, Gd, Hd, Id, Jd, Kd, Ld, Md, Nd, Od, Pd, Qd, Rd, Sd, Td, Ud, Vd, Wd, Xd, Yd, Zd, $d, _d, ae, be, ce, de, ee, fe, ge, he, ie = this,
                je = d.now(),
                ke = ib + je,
                le = a[0],
                me = 1,
                ne = a.data(),
                oe = d("<style></style>"),
                pe = d(N(Yb)),
                qe = d(N(kb)),
                re = d(N(xb)).appendTo(qe),
                se = (re[0], d(N(Ab)).appendTo(re)),
                te = d(),
                ue = d(N(Db + " " + Fb + rc)),
                ve = d(N(Db + " " + Gb + rc)),
                we = ue.add(ve).appendTo(re),
                xe = d(N(Ib)),
                ye = d(N(Hb)).appendTo(xe),
                ze = d(N(Jb)).appendTo(ye),
                Ae = d(),
                Be = d(),
                Ce = (se.data(), ze.data(), d(N(jc)).appendTo(ze)),
                De = d(N($b + rc)),
                Ee = De[0],
                Fe = d(N(mc)),
                Ge = d(N(nc)).appendTo(re),
                He = Ge[0],
                Ie = d(N(qc)),
                Je = !1,
                Ke = {},
                Le = {},
                Me = {},
                Ne = {},
                Oe = {},
                Pe = {},
                Qe = {},
                Re = {},
                Se = 0,
                Te = [];
            qe[Xc] = d(N(yb)), qe[Zc] = d(N(Mb + " " + Ob + rc, N(ic))), qe[Yc] = d(N(Mb + " " + Nb + rc, N(hc))), Qe[Xc] = [], Qe[Zc] = [], Qe[Yc] = [], Re[Xc] = {}, qe.addClass(Ic ? mb : lb).toggleClass(qb, !e.controlsonstart), ne.fotorama = this, ie.startAutoplay = function(a) {
                return ie.autoplay ? this : (ce = de = !1, t(a || e.autoplay), jd(), this)
            }, ie.stopAutoplay = function() {
                return ie.autoplay && (ce = de = !0, jd()), this
            }, ie.show = function(a) {
                var b;
                "object" != typeof a ? (b = a, a = {}) : b = a.index, b = ">" === b ? Gd + 1 : "<" === b ? Gd - 1 : "<<" === b ? 0 : ">>" === b ? zd - 1 : b, b = isNaN(b) ? L(b, yd, !0) : b, b = "undefined" == typeof b ? Je || 0 : b, ie.activeIndex = Je = z(b), Id = E(Je), Jd = U(Je), Kd = x(Je + (Yd ? -1 : 1)), Ed = [Je, Id, Jd], Gd = Md ? b : Je;
                var c = Math.abs(Hd - Gd),
                    d = w(a.time, function() {
                        return Math.min(Vd * (1 + (c - 1) / 12), 2 * Vd)
                    }),
                    f = a.overPos;
                a.slow && (d *= 10);
                var g = Dd;
                ie.activeFrame = Dd = yd[Je];
                var i = g === Dd && !a.user;
                md(Cd, Dd.i !== yd[x(Fd)].i), lc(Ed, "stage"), tc(Mc ? [Gd] : [Gd, E(Gd), U(Gd)]), rd("go", !0), i || fd("show", {
                    user: a.user,
                    time: d
                }), ce = !0;
                var j = ie.show.onEnd = function(b) {
                    if (!j.ok) {
                        if (j.ok = !0, b || cd(!0), i || fd("showend", {
                                user: a.user
                            }), !b && Wd && Wd !== e.transition) return ie.setOptions({
                            transition: Wd
                        }), void(Wd = !1);
                        Sb(), Pb(Ed, "stage"), rd("go", !1), Hc(), od(), id(), jd()
                    }
                };
                if (Sd) {
                    var k = Dd[Xc],
                        l = Je !== Hd ? yd[Hd][Xc] : null;
                    ab(k, l, te, {
                        time: d,
                        method: e.transition,
                        onEnd: j
                    }, Te)
                } else _(se, {
                    pos: -r(Gd, Le.w, e.margin, Fd),
                    overPos: f,
                    time: d,
                    onEnd: j
                });
                if (Gc(), Nd) {
                    Tc();
                    var m = y(Je + h(Gd - Hd, -1, 1));
                    Rc({
                        time: d,
                        coo: m !== Je && a.coo,
                        guessIndex: "undefined" != typeof a.coo ? m : Je,
                        keep: i
                    }), Od && Oc(d)
                }
                return be = "undefined" != typeof Hd && Hd !== Je, Hd = Je, e.hash && be && !ie.eq && H(Dd.id || Je + 1), this
            }, ie.requestFullScreen = function() {
                return Qd && !ie.fullScreen && (_d = Ec.scrollTop(), ae = Ec.scrollLeft(), Q(Ec), rd("x", !0), ee = d.extend({}, Le), a.addClass(Zb).appendTo(Dc.addClass(jb)), Cc.addClass(jb), md(Cd, !0, !0), ie.fullScreen = !0, Rd && vc.request(le), ie.resize(), Pb(Ed, "stage"), Sb(), fd("fullscreenenter")), this
            }, ie.cancelFullScreen = function() {
                return Rd && vc.is() ? vc.cancel(b) : kd(), this
            }, ie.toggleFullScreen = function() {
                return ie[(ie.fullScreen ? "cancel" : "request") + "FullScreen"]()
            }, T(b, vc.event, function() {
                !yd || vc.is() || Cd || kd()
            }), ie.resize = function(a) {
                if (!yd) return this;
                var b = arguments[1] || 0,
                    c = arguments[2];
                ed(ie.fullScreen ? {
                    width: "100%",
                    maxwidth: null,
                    minwidth: null,
                    height: "100%",
                    maxheight: null,
                    minheight: null
                } : R(a), [Le, c || ie.fullScreen || e]);
                var d = Le.width,
                    f = Le.height,
                    g = Le.ratio,
                    i = Ec.height() - (Nd ? ye.height() : 0);
                return q(d) && (qe.addClass(ub).css({
                    width: d,
                    minWidth: Le.minwidth || 0,
                    maxWidth: Le.maxwidth || ad
                }), d = Le.W = Le.w = qe.width(), Le.nw = Nd && p(e.navwidth, d) || d, e.glimpse && (Le.w -= Math.round(2 * (p(e.glimpse, d) || 0))), se.css({
                    width: Le.w,
                    marginLeft: (Le.W - Le.w) / 2
                }), f = p(f, i), f = f || g && d / g, f && (d = Math.round(d), f = Le.h = Math.round(h(f, p(Le.minheight, i), p(Le.maxheight, i))), re.stop().animate({
                    width: d,
                    height: f
                }, b, function() {
                    qe.removeClass(ub)
                }), cd(), Nd && (ye.stop().animate({
                    width: Le.nw
                }, b), Rc({
                    guessIndex: Je,
                    time: b,
                    keep: !0
                }), Od && wc.nav && Oc(b)), $d = c || !0, xd())), Se = re.offset().left, this
            }, ie.setOptions = function(a) {
                return d.extend(e, a), vd(), this
            }, ie.shuffle = function() {
                return yd && O(yd) && vd(), this
            }, ie.destroy = function() {
                return ie.cancelFullScreen(), ie.stopAutoplay(), yd = ie.data = null, j(), Ed = [], bd(Xc), vd.ok = !1, this
            }, ie.playVideo = function() {
                var a = Dd,
                    b = a.video,
                    c = Je;
                return "object" == typeof b && a.videoReady && (Rd && ie.fullScreen && ie.cancelFullScreen(), G(function() {
                    return !vc.is() || c !== Je
                }, function() {
                    c === Je && (a.$video = a.$video || d(d.Fotorama.jst.video(b)), a.$video.appendTo(a[Xc]), qe.addClass(nb), Cd = a.$video, o(), we.blur(), De.blur(), fd("loadvideo"))
                })), this
            }, ie.stopVideo = function() {
                return md(Cd, !0, !0), this
            }, re.on("mousemove", od), Me = db(se, {
                onStart: gd,
                onMove: function(a, b) {
                    ld(re, b.edge)
                },
                onTouchEnd: hd,
                onEnd: function(a) {
                    ld(re);
                    var b = (Nc && !ge || a.touch) && e.arrows && "always" !== e.arrows;
                    if (a.moved || b && a.pos !== a.newPos && !a.control) {
                        var c = s(a.newPos, Le.w, e.margin, Fd);
                        ie.show({
                            index: c,
                            time: Sd ? Vd : a.time,
                            overPos: a.overPos,
                            user: !0
                        })
                    } else a.aborted || a.control || qd(a.startEvent, b)
                },
                timeLow: 1,
                timeHigh: 1,
                friction: 2,
                select: "." + Xb + ", ." + Xb + " *",
                $wrap: re
            }), Oe = db(ze, {
                onStart: gd,
                onMove: function(a, b) {
                    ld(ye, b.edge)
                },
                onTouchEnd: hd,
                onEnd: function(a) {
                    function b() {
                        Rc.l = a.newPos, id(), jd(), uc(a.newPos, !0)
                    }
                    if (a.moved) a.pos !== a.newPos ? (ce = !0, _(ze, {
                        time: a.time,
                        pos: a.newPos,
                        overPos: a.overPos,
                        onEnd: b
                    }), uc(a.newPos), Xd && ld(ye, K(a.newPos, Oe.min, Oe.max))) : b();
                    else {
                        var c = a.$target.closest("." + Mb, ze)[0];
                        c && sd.call(c, a.startEvent)
                    }
                },
                timeLow: .5,
                timeHigh: 2,
                friction: 5,
                $wrap: ye
            }), Ne = eb(re, {
                shift: !0,
                onEnd: function(a, b) {
                    gd(), hd(), ie.show({
                        index: b,
                        slow: a.altKey
                    })
                }
            }), Pe = eb(ye, {
                onEnd: function(a, b) {
                    gd(), hd();
                    var c = v(ze) + .25 * b;
                    ze.css(k(h(c, Oe.min, Oe.max))), Xd && ld(ye, K(c, Oe.min, Oe.max)), Pe.prevent = {
                        "<": c >= Oe.max,
                        ">": c <= Oe.min
                    }, clearTimeout(Pe.t), Pe.t = setTimeout(function() {
                        Rc.l = c, uc(c, !0)
                    }, Pc), uc(c)
                }
            }), qe.hover(function() {
                setTimeout(function() {
                    fe || nd(!(ge = !0))
                }, 0)
            }, function() {
                ge && nd(!(ge = !1))
            }), M(we, function(a) {
                Y(a), td.call(this, a)
            }, {
                onStart: function() {
                    gd(), Me.control = !0
                },
                onTouchEnd: hd
            }), we.each(function() {
                W(this, function(a) {
                    td.call(this, a)
                }), ud(this)
            }), W(Ee, ie.toggleFullScreen), ud(Ee), d.each("load push pop shift unshift reverse sort splice".split(" "), function(a, b) {
                ie[b] = function() {
                    return yd = yd || [], "load" !== b ? Array.prototype[b].apply(yd, arguments) : arguments[0] && "object" == typeof arguments[0] && arguments[0].length && (yd = P(arguments[0])), vd(), ie
                }
            }), vd()
        }, d.fn.fotorama = function(b) {
            return this.each(function() {
                var c = this,
                    e = d(this),
                    f = e.data(),
                    g = f.fotorama;
                g ? g.setOptions(b, !0) : G(function() {
                    return !E(c)
                }, function() {
                    f.urtext = e.html(), new d.Fotorama(e, d.extend({}, cd, a.fotoramaDefaults, b, f))
                })
            })
        }, d.Fotorama.instances = [], d.Fotorama.cache = {}, d.Fotorama.measures = {}, d = d || {}, d.Fotorama = d.Fotorama || {}, d.Fotorama.jst = d.Fotorama.jst || {}, d.Fotorama.jst.style = function(a) {
            {
                var b, c = "";
                tc.escape
            }
            return c += ".fotorama" + (null == (b = a.s) ? "" : b) + " .fotorama__nav--thumbs .fotorama__nav__frame{\npadding:" + (null == (b = a.m) ? "" : b) + "px;\nheight:" + (null == (b = a.h) ? "" : b) + "px}\n.fotorama" + (null == (b = a.s) ? "" : b) + " .fotorama__thumb-border{\nheight:" + (null == (b = a.h - a.b * (a.q ? 0 : 2)) ? "" : b) + "px;\nborder-width:" + (null == (b = a.b) ? "" : b) + "px;\nmargin-top:" + (null == (b = a.m) ? "" : b) + "px}"
        }, d.Fotorama.jst.video = function(a) {
            function b() {
                c += d.call(arguments, "")
            }
            var c = "",
                d = (tc.escape, Array.prototype.join);
            return c += '<div class="fotorama__video"><iframe src="', b(("youtube" == a.type ? a.p + "youtube.com/embed/" + a.id + "?autoplay=1" : "vimeo" == a.type ? a.p + "player.vimeo.com/video/" + a.id + "?autoplay=1&badge=0" : a.id) + (a.s && "custom" != a.type ? "&" + a.s : "")), c += '" frameborder="0" allowfullscreen></iframe></div>\n'
        }, d(function() {
            d("." + ib + ':not([data-auto="false"])').fotorama()
        })
    }(window, document, location, "undefined" != typeof jQuery && jQuery);