PageSourceSearch

https://bestelani.ru/bitrix/templates/perfumery/js/jquery.fancybox.js

js bestelani.ru collected 2026-10-07 18:15:45 UTC 91,507 bytes, 1,318 lines download raw bytes

1! function(l, r, g, b) {
2    "use strict";
3    if (g)
4        if (g.fn.fancybox) "console" in l && console.log("fancyBox already initialized");
5        else {
6            var t, e = {
7                    loop: !1,
8                    margin: [44, 0],
9                    gutter: 50,
10                    keyboard: !0,
11                    arrows: !0,
12                    infobar: !0,
13                    toolbar: !0,
14                    buttons: ["slideShow", "fullScreen", "thumbs", "share", "close"],
15                    idleTime: 3,
16                    smallBtn: "auto",
17                    protect: !1,
18                    modal: !1,
19                    image: {
20                        preload: "auto"
21                    },
22                    ajax: {
23                        settings: {
24                            data: {
25                                fancybox: !0
26                            }
27                        }
28                    },
29                    iframe: {
30                        tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""></iframe>',
31                        preload: !0,
32                        css: {},
33                        attr: {
34                            scrolling: "auto"
35                        }
36                    },
37                    defaultType: "image",
38                    animationEffect: "zoom",
39                    animationDuration: 500,
40                    zoomOpacity: "auto",
41                    transitionEffect: "fade",
42                    transitionDuration: 366,
43                    slideClass: "",
44                    baseClass: "",
45                    baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption-wrap"><div class="fancybox-caption"></div></div></div></div>',
46                    spinnerTpl: '<div class="fancybox-loading"></div>',
47                    errorTpl: '<div class="fancybox-error"><p>{{ERROR}}<p></div>',
48                    btnTpl: {
49                        download: '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}"><svg viewBox="0 0 40 40"><path d="M20,23 L20,8 L20,23 L13,16 L20,23 L27,16 L20,23 M26,28 L13,28 L27,28 L14,28" /></svg></a>',
50                        zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg viewBox="0 0 40 40"><path d="M 18,17 m-8,0 a 8,8 0 1,0 16,0 a 8,8 0 1,0 -16,0 M25,23 L31,29 L25,23" /></svg></button>',
51                        close: '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg viewBox="0 0 40 40"><path d="M10,10 L30,30 M30,10 L10,30" /></svg></button>',
52                        smallBtn: '<button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"></button>',
53                        arrowLeft: '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><svg viewBox="0 0 40 40"><path d="M10,20 L30,20 L10,20 L18,28 L10,20 L18,12 L10,20"></path></svg></button>',
54                        arrowRight: '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><svg viewBox="0 0 40 40"><path d="M30,20 L10,20 L30,20 L22,28 L30,20 L22,12 L30,20"></path></svg></button>'
55                    },
56                    parentEl: "body",
57                    autoFocus: !1,
58                    backFocus: !0,
59                    trapFocus: !0,
60                    fullScreen: {
61                        autoStart: !1
62                    },
63                    touch: {
64                        vertical: !0,
65                        momentum: !0
66                    },
67                    hash: null,
68                    media: {},
69                    slideShow: {
70                        autoStart: !1,
71                        speed: 4e3
72                    },
73                    thumbs: {
74                        autoStart: !1,
75                        hideOnClose: !0,
76                        parentEl: ".fancybox-container",
77                        axis: "y"
78                    },
79                    wheel: "auto",
80                    onInit: g.noop,
81                    beforeLoad: g.noop,
82                    afterLoad: g.noop,
83                    beforeShow: g.noop,
84                    afterShow: g.noop,
85                    beforeClose: g.noop,
86                    afterClose: g.noop,
87                    onActivate: g.noop,
88                    onDeactivate: g.noop,
89                    clickContent: function(t, e) {
90                        return "image" === t.type && "zoom"
91                    },
92                    clickSlide: "close",
93                    clickOutside: "close",
94                    dblclickContent: !1,
95                    dblclickSlide: !1,
96                    dblclickOutside: !1,
97                    mobile: {
98                        idleTime: !1,
99                        margin: 0,
100                        clickContent: function(t, e) {
101                            return "image" === t.type && "toggleControls"
102                        },
103                        clickSlide: function(t, e) {
104                            return "image" === t.type ? "toggleControls" : "close"
105                        },
106                        dblclickContent: function(t, e) {
107                            return "image" === t.type && "zoom"
108                        },
109                        dblclickSlide: function(t, e) {
110                            return "image" === t.type && "zoom"
111                        }
112                    },
113                    lang: "en",
114                    i18n: {
115                        en: {
116                            CLOSE: "Close",
117                            NEXT: "Next",
118                            PREV: "Previous",
119                            ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
120                            PLAY_START: "Start slideshow",
121                            PLAY_STOP: "Pause slideshow",
122                            FULL_SCREEN: "Full screen",
123                            THUMBS: "Thumbnails",
124                            DOWNLOAD: "Download",
125                            SHARE: "Share",
126                            ZOOM: "Zoom"
127                        },
128                        de: {
129                            CLOSE: "Schliessen",
130                            NEXT: "Weiter",
131                            PREV: "Zurück",
132                            ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/>
132 Bitte versuchen Sie es später nochmal.",
133                            PLAY_START: "Diaschau starten",
134                            PLAY_STOP: "Diaschau beenden",
135                            FULL_SCREEN: "Vollbild",
136                            THUMBS: "Vorschaubilder",
137                            DOWNLOAD: "Herunterladen",
138                            SHARE: "Teilen",
139                            ZOOM: "Maßstab"
140                        }
141                    }
142                },
143                a = g(l),
144                c = g(r),
145                i = 0,
146                d = l.requestAnimationFrame || l.webkitRequestAnimationFrame || l.mozRequestAnimationFrame || l.oRequestAnimationFrame || function(t) {
147                    return l.setTimeout(t, 1e3 / 60)
148                },
149                f = function() {
150                    var t, e = r.createElement("fakeelement"),
151                        n = {
152                            transition: "transitionend",
153                            OTransition: "oTransitionEnd",
154                            MozTransition: "transitionend",
155                            WebkitTransition: "webkitTransitionEnd"
156                        };
157                    for (t in n)
158                        if (e.style[t] !== b) return n[t];
159                    return "transitionend"
160                }(),
161                p = function(t) {
162                    return t && t.length && t[0].offsetHeight
163                },
164                o = function(t, e, n) {
165                    var o = this;
166                    o.opts = g.extend(!0, {
167                        index: n
168                    }, g.fancybox.defaults, e || {}), g.fancybox.isMobile && (o.opts = g.extend(!0, {}, o.opts, o.opts.mobile)), e && g.isArray(e.buttons) && (o.opts.buttons = e.buttons), o.id = o.opts.id || ++i, o.group = [], o.currIndex = parseInt(o.opts.index, 10) || 0, o.prevIndex = null, o.prevPos = null, o.currPos = 0, o.firstRun = null, o.createGroup(t), o.group.length && (o.$lastFocus = g(r.activeElement).blur(), o.slides = {}, o.init())
169                };
170            g.extend(o.prototype, {
171                init: function() {
172                    var t, e, n, o = this,
173                        i = o.group[o.currIndex],
174                        a = i.opts,
175                        s = g.fancybox.scrollbarWidth;
176                    o.scrollTop = c.scrollTop(), o.scrollLeft = c.scrollLeft(), g.fancybox.getInstance() || (g("body").addClass("fancybox-active"), /iPad|iPhone|iPod/.test(navigator.userAgent) && !l.MSStream ? "image" !== i.type && g("body").css("top", -1 * g("body").scrollTop()).addClass("fancybox-iosfix") : !g.fancybox.isMobile && r.body.scrollHeight > l.innerHeight && (s === b && (t = g('<div style="width:50px;height:50px;overflow:scroll;" />').appendTo("body"), s = g.fancybox.scrollbarWidth = t[0].offsetWidth - t[0].clientWidth, t.remove()), g("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar { margin-right: ' + s + "px; }</style>"), g("body").addClass("compensate-for-scrollbar"))), n = "", g.each(a.buttons, function(t, e) {
177                        n += a.btnTpl[e] || ""
178                    }), e = g(o.translate(o, a.baseTpl.replace("{{buttons}}", n).replace("{{arrows}}", a.btnTpl.arrowLeft + a.btnTpl.arrowRight))).attr("id", "fancybox-container-" + o.id).addClass("fancybox-is-hidden").addClass(a.baseClass).data("FancyBox", o).appendTo(a.parentEl), o.$refs = {
179                        container: e
180                    }, ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function(t) {
181                        o.$refs[t] = e.find(".fancybox-" + t)
182                    }), o.trigger("onInit"), o.activate(), o.jumpTo(o.currIndex)
183                },
184                translate: function(t, e) {
185                    var o = t.opts.i18n[t.opts.lang];
186                    return e.replace(/\{\{(\w+)\}\}/g, function(t, e) {
187                        var n = o[e];
188                        return n === b ? t : n
189                    })
190                },
191                createGroup: function(t) {
192                    var l = this,
193                        e = g.makeArray(t);
194                    g.each(e, function(t, e) {
195                        var n, o, i, a, s, r = {},
196                            c = {};
197                        g.isPlainObject(e) ? c = (r = e).opts || e : "object" === g.type(e) && g(e).length ? (c = (n = g(e)).data(), (c = g.extend({}, c, c.options || {})).$orig = n, r.src = c.src || n.attr("href"), r.type || r.src || (r.type = "inline", r.src = e)) : r = {
198                            type: "html",
199                            src: e + ""
200                        }, r.opts = g.extend(!0, {}, l.opts, c), g.isArray(c.buttons) && (r.opts.buttons = c.buttons), o = r.type || r.opts.type, a = r.src || "", !o && a && (a.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? o = "image" : a.match(/\.(pdf)((\?|#).*)?$/i) ? o = "pdf" : (i = a.match(/\.(mp4|mov|ogv)((\?|#).*)?$/i)) ? (o = "video", r.opts.videoFormat || (r.opts.videoFormat = "video/" + ("ogv" === i[1] ? "ogg" : i[1]))) : "#" === a.charAt(0) && (o = "inline")), o ? r.type = o : l.trigger("objectNeedsType", r), r.index = l.group.length, r.opts.$orig && !r.opts.$orig.length && delete r.opts.$orig, !r.opts.$thumb && r.opts.$orig && (r.opts.$thumb = r.opts.$orig.find("img:first")), r.opts.$thumb && !r.opts.$thumb.length && delete r.opts.$thumb, "function" === g.type(r.opts.caption) && (r.opts.caption = r.opts.caption.apply(e, [l, r])), "function" === g.type(l.opts.caption) && (r.opts.caption = l.opts.caption.apply(e, [l, r])), r.opts.caption instanceof g || (r.opts.caption = r.opts.caption === b ? "" : r.opts.caption + ""), "ajax" === o && 1 < (s = a.split(/\s+/, 2)).length && (r.src = s.shift(), r.opts.filter = s.shift()), "auto" == r.opts.smallBtn && (-1 < g.inArray(o, ["html", "inline", "ajax"]) ? (r.opts.toolbar = !1, r.opts.smallBtn = !0) : r.opts.smallBtn = !1), "pdf" === o && (r.type = "iframe", r.opts.iframe.preload = !1), r.opts.modal && (r.opts = g.extend(!0, r.opts, {
201                            infobar: 0,
202                            toolbar: 0,
203                            smallBtn: 0,
204                            keyboard: 0,
205                            slideShow: 0,
206                            fullScreen: 0,
207                            thumbs: 0,
208                            touch: 0,
209                            clickContent: !1,
210                            clickSlide: !1,
211                            clickOutside: !1,
212                            dblclickContent: !1,
213                            dblclickSlide: !1,
214                            dblclickOutside: !1
215                        })), l.group.push(r)
216                    })
217                },
218                addEvents: function() {
219                    var o = this;
220                    o.removeEvents(), o.$refs.container.on("click.fb-close", "[data-fancybox-close]", function(t) {
221                        t.stopPropagation(), t.preventDefault(), o.close(t)
222                    }).on("click.fb-prev touchend.fb-prev", "[data-fancybox-prev]", function(t) {
223                        t.stopPropagation(), t.preventDefault(), o.previous()
224                    }).on("click.fb-next touchend.fb-next", "[data-fancybox-next]", function(t) {
225                        t.stopPropagation(), t.preventDefault(), o.next()
226                    }).on("click.fb", "[data-fancybox-zoom]", function(t) {
227                        o[o.isScaledDown() ? "scaleToActual" : "scaleToFit"]()
228                    }), a.on("orientationchange.fb resize.fb", function(t) {
229                        t && t.originalEvent && "resize" === t.originalEvent.type ? d(function() {
230                            o.update()
231                        }) : (o.$refs.stage.hide(), setTimeout(function() {
232                            o.$refs.stage.show(), o.update()
233                        }, 600))
234                    }), c.on("focusin.fb", function(t) {
235                        var e = g.fancybox ? g.fancybox.getInstance() : null;
236                        e.isClosing || !e.current || !e.current.opts.trapFocus || g(t.target).hasClass("fancybox-container") || g(t.target).is(r) || e && "fixed" !== g(t.target).css("position") && !e.$refs.container.has(t.target).length && (t.stopPropagation(), e.focus(), a.scrollTop(o.scrollTop).scrollLeft(o.scrollLeft))
237                    }), c.on("keydown.fb", function(t) {
238                        var e = o.current,
239                            n = t.keyCode || t.which;
240                        if (e && e.opts.keyboard && !g(t.target).is("input") && !g(t.target).is("textarea")) return 8 === n || 27 === n ? (t.preventDefault(), void o.close(t)) : 37 === n || 38 === n ? (t.preventDefault(), void o.previous()) : 39 === n || 40 === n ? (t.preventDefault(), void o.next()) : void o.trigger("afterKeydown", t, n)
241                    }), o.group[o.currIndex].opts.idleTime && (o.idleSecondsCounter = 0, c.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", function(t) {
242                        o.idleSecondsCounter = 0, o.isIdle && o.showControls(), o.isIdle = !1
243                    }), o.idleInterval = l.setInterval(function() {
244                        o.idleSecondsCounter++, o.idleSecondsCounter >= o.group[o.currIndex].opts.idleTime && !o.isDragging && (o.isIdle = !0, o.idleSecondsCounter = 0, o.hideControls())
245                    }, 1e3))
246                },
247                removeEvents: function() {
248                    a.off("orientationchange.fb resize.fb"), c.off("focusin.fb keydown.fb .fb-idle"), this.$refs.container.off(".fb-close .fb-prev .fb-next"), this.idleInterval && (l.clearInterval(this.idleInterval), this.idleInterval = null)
249                },
250                previous: function(t) {
251                    return this.jumpTo(this.currPos - 1, t)
252                },
253                next: function(t) {
254                    return this.jumpTo(this.currPos + 1, t)
255                },
256                jumpTo: function(t, o, e) {
257                    var n, i, a, s, r, c, l, u = this,
258                        d = u.group.length;
259                    if (!(u.isDragging || u.isClosing || u.isAnimating && u.firstRun)) {
260                        if (t = parseInt(t, 10), !(i = u.current ? u.current.opts.loop : u.opts.loop) && (t < 0 || d <= t)) return !1;
261                        if (n = u.firstRun = null === u.firstRun, !(d < 2 && !n && u.isDragging)) {
262                            if (s = u.current, u.prevIndex = u.currIndex, u.prevPos = u.currPos, a = u.createSlide(t), 1 < d && ((i || 0 < a.index) && u.createSlide(t - 1), (i || a.index < d - 1) && u.createSlide(t + 1)), u.current = a, u.currIndex = a.index, u.currPos = a.pos, u.trigger("beforeShow", n), u.updateControls(), c = g.fancybox.getTranslate(a.$slide), a.isMoved = (0 !== c.left || 0 !== c.top) && !a.$slide.hasClass("fancybox-animated"), a.forcedDuration = b, g.isNumeric(o) ? a.forcedDuration = o : o = a.opts[n ? "animationDuration" : "transitionDuration"], o = parseInt(o, 10), n) return a.opts.animationEffect && o && u.$refs.container.css("transition-duration", o + "ms"), u.$refs.container.removeClass("fancybox-is-hidden"), p(u.$refs.container), u.$refs.container.addClass("fancybox-is-open"), a.$slide.addClass("fancybox-slide--current"), u.loadSlide(a), void u.preload("image");
263                            g.each(u.slides, function(t, e) {
264                                g.fancybox.stop(e.$slide)
265                            }), a.$slide.removeClass("fancybox-slide--next fancybox-slide--previous").addClass("fancybox-slide--current"), a.isMoved ? (r = Math.round(a.$slide.width()), g.each(u.slides, function(t, e) {
266                                var n = e.pos - a.pos;
267                                g.fancybox.animate(e.$slide, {
268                                    top: 0,
269                                    left: n * r + n * e.opts.gutter
270                                }, o, function() {
271                                    e.$slide.removeAttr("style").removeClass("fancybox-slide--next fancybox-slide--previous"), e.pos === u.currPos && (a.isMoved = !1, u.complete())
272                                })
273                            })) : u.$refs.stage.children().removeAttr("style"), a.isLoaded ? u.revealContent(a) : u.loadSlide(a), u.preload("image"), s.pos !== a.pos && (l = "fancybox-slide--" + (s.pos > a.pos ? "next" : "previous"), s.$slide.removeClass("fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous"), s.isComplete = !1, o && (a.isMoved || a.opts.transitionEffect) && (a.isMoved ? s.$slide.addClass(l) : (l = "fancybox-animated " + l + " fancybox-fx-" + a.opts.transitionEffect, g.fancybox.animate(s.$slide, l, o, function() {
274                                s.$slide.removeClass(l).removeAttr("style")
275                            }))))
276                        }
277                    }
278                },
279                createSlide: function(t) {
280                    var e, n, o = this;
281                    return n = (n = t % o.group.length) < 0 ? o.group.length + n : n, !o.slides[t] && o.group[n] && (e = g('<div class="fancybox-slide"></div>').appendTo(o.$refs.stage), o.slides[t] = g.extend(!0, {}, o.group[n], {
282                        pos: t,
283                        $slide: e,
284                        isLoaded: !1
285                    }), o.updateSlide(o.slides[t])), o.slides[t]
286                },
287                scaleToActual: function(t, e, n) {
288                    var o, i, a, s, r, c = this,
289                        l = c.current,
290                        u = l.$content,
291                        d = parseInt(l.$slide.width(), 10),
292                        f = parseInt(l.$slide.height(), 10),
293                        p = l.width,
294                        h = l.height;
295                    "image" != l.type || l.hasError || !u || c.isAnimating || (g.fancybox.stop(u), c.isAnimating = !0, t = t === b ? .5 * d : t, e = e === b ? .5 * f : e, s = p / (o = g.fancybox.getTranslate(u)).width, r = h / o.height, i = .5 * d - .5 * p, a = .5 * f - .5 * h, d < p && (0 < (i = o.left * s - (t * s - t)) && (i = 0), i < d - p && (i = d - p)), f < h && (0 < (a = o.top * r - (e * r - e)) && (a = 0), a < f - h && (a = f - h)), c.updateCursor(p, h), g.fancybox.animate(u, {
296                        top: a,
297                        left: i,
298                        scaleX: s,
299                        scaleY: r
300                    }, n || 330, function() {
301                        c.isAnimating = !1
302                    }), c.SlideShow && c.SlideShow.isActive && c.SlideShow.stop())
303                },
304                scaleToFit: function(t) {
305                    var e, n = this,
306                        o = n.current,
307                        i = o.$content;
308                    "image" != o.type || o.hasError || !i || n.isAnimating || (g.fancybox.stop(i), n.isAnimating = !0, e = n.getFitPos(o), n.updateCursor(e.width, e.height), g.fancybox.animate(i, {
309                        top: e.top,
310                        left: e.left,
311                        scaleX: e.width / i.width(),
312                        scaleY: e.height / i.height()
313                    }, t || 330, function() {
314                        n.isAnimating = !1
315                    }))
316                },
317                getFitPos: function(t) {
318                    var e, n, o, i, a, s = t.$content,
319                        r = t.width,
320                        c = t.height,
321                        l = t.opts.margin;
322                    return !(!s || !s.length || !r && !c) && ("number" === g.type(l) && (l = [l, l]), 2 == l.length && (l = [l[0], l[1], l[0], l[1]]), e = parseInt(this.$refs.stage.width(), 10) - (l[1] + l[3]), n = parseInt(this.$refs.stage.height(), 10) - (l[0] + l[2]), o = Math.min(1, e / r, n / c), i = Math.floor(o * r), a = Math.floor(o * c), {
323                        top: Math.floor(.5 * (n - a)) + l[0],
324                        left: Math.floor(.5 * (e - i)) + l[3],
325                        width: i,
326                        height: a
327      
327              })
328                },
329                update: function() {
330                    var n = this;
331                    g.each(n.slides, function(t, e) {
332                        n.updateSlide(e)
333                    })
334                },
335                updateSlide: function(t, e) {
336                    var n = this,
337                        o = t && t.$content;
338                    o && (t.width || t.height) && (n.isAnimating = !1, g.fancybox.stop(o), g.fancybox.setTranslate(o, n.getFitPos(t)), t.pos === n.currPos && n.updateCursor()), t.$slide.trigger("refresh"), n.trigger("onUpdate", t)
339                },
340                centerSlide: function(t, e) {
341                    var n, o;
342                    this.current && (n = Math.round(t.$slide.width()), o = t.pos - this.current.pos, g.fancybox.animate(t.$slide, {
343                        top: 0,
344                        left: o * n + o * t.opts.gutter,
345                        opacity: 1
346                    }, e === b ? 0 : e, null, !1))
347                },
348                updateCursor: function(t, e) {
349                    var n = this,
350                        o = n.$refs.container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut");
351                    n.current && !n.isClosing && (n.isZoomable() ? (o.addClass("fancybox-is-zoomable"), (t !== b && e !== b ? t < n.current.width && e < n.current.height : n.isScaledDown()) ? o.addClass("fancybox-can-zoomIn") : n.current.opts.touch ? o.addClass("fancybox-can-drag") : o.addClass("fancybox-can-zoomOut")) : n.current.opts.touch && o.addClass("fancybox-can-drag"))
352                },
353                isZoomable: function() {
354                    var t, e = this.current;
355                    if (e && !this.isClosing) return !!("image" === e.type && e.isLoaded && !e.hasError && ("zoom" === e.opts.clickContent || g.isFunction(e.opts.clickContent) && "zoom" === e.opts.clickContent(e)) && (t = this.getFitPos(e), e.width > t.width || e.height > t.height))
356                },
357                isScaledDown: function() {
358                    var t = this.current,
359                        e = t.$content,
360                        n = !1;
361                    return e && (n = (n = g.fancybox.getTranslate(e)).width < t.width || n.height < t.height), n
362                },
363                canPan: function() {
364                    var t = this.current,
365                        e = t.$content,
366                        n = !1;
367                    return e && (n = this.getFitPos(t), n = 1 < Math.abs(e.width() - n.width) || 1 < Math.abs(e.height() - n.height)), n
368                },
369                loadSlide: function(n) {
370                    var t, e, o, i = this;
371                    if (!n.isLoading && !n.isLoaded) {
372                        switch (n.isLoading = !0, i.trigger("beforeLoad", n), t = n.type, (e = n.$slide).off("refresh").trigger("onReset").addClass("fancybox-slide--" + (t || "unknown")).addClass(n.opts.slideClass), t) {
373                            case "image":
374                                i.setImage(n);
375                                break;
376                            case "iframe":
377                                i.setIframe(n);
378                                break;
379                            case "html":
380                                i.setContent(n, n.src || n.content);
381                                break;
382                            case "inline":
383                                g(n.src).length ? i.setContent(n, g(n.src)) : i.setError(n);
384                                break;
385                            case "ajax":
386                                i.showLoading(n), o = g.ajax(g.extend({}, n.opts.ajax.settings, {
387                                    url: n.src,
388                                    success: function(t, e) {
389                                        "success" === e && i.setContent(n, t)
390                                    },
391                                    error: function(t, e) {
392                                        t && "abort" !== e && i.setError(n)
393                                    }
394                                })), e.one("onReset", function() {
395                                    o.abort()
396                                });
397                                break;
398                            case "video":
399                                i.setContent(n, '<video controls><source src="' + n.src + '" type="' + n.opts.videoFormat + "\">Your browser doesn't support HTML5 video</video>");
400                                break;
401                            default:
402                                i.setError(n)
403                        }
404                        return !0
405                    }
406                },
407                setImage: function(t) {
408                    var e, n, o, i, a = this,
409                        s = t.opts.srcset || t.opts.image.srcset;
410                    if (s) {
411                        o = l.devicePixelRatio || 1, i = l.innerWidth * o, (n = s.split(",").map(function(t) {
412                            var o = {};
413                            return t.trim().split(/\s+/).forEach(function(t, e) {
414                                var n = parseInt(t.substring(0, t.length - 1), 10);
415                                if (0 === e) return o.url = t;
416                                n && (o.value = n, o.postfix = t[t.length - 1])
417                            }), o
418                        })).sort(function(t, e) {
419                            return t.value - e.value
420                        });
421                        for (var r = 0; r < n.length; r++) {
422                            var c = n[r];
423                            if ("w" === c.postfix && c.value >= i || "x" === c.postfix && c.value >= o) {
424                                e = c;
425                                break
426                            }
427                        }!e && n.length && (e = n[n.length - 1]), e && (t.src = e.url, t.width && t.height && "w" == e.postfix && (t.height = t.width / t.height * e.value, t.width = e.value))
428                    }
429                    t.$content = g('<div class="fancybox-image-wrap"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide), !1 !== t.opts.preload && t.opts.width && t.opts.height && (t.opts.thumb || t.opts.$thumb) ? (t.width = t.opts.width, t.height = t.opts.height, t.$ghost = g("<img />").one("error", function() {
430                        g(this).remove(), t.$ghost = null, a.setBigImage(t)
431                    }).one("load", function() {
432                        a.afterLoad(t), a.setBigImage(t)
433                    }).addClass("fancybox-image").appendTo(t.$content).attr("src", t.opts.thumb || t.opts.$thumb.attr("src"))) : a.setBigImage(t)
434                },
435                setBigImage: function(t) {
436                    var e = this,
437                        n = g("<img />");
438                    t.$image = n.one("error", function() {
439                        e.setError(t)
440                    }).one("load", function() {
441                        clearTimeout(t.timouts), t.timouts = null, e.isClosing || (t.width = t.opts.width || this.naturalWidth, t.height = t.opts.height || this.naturalHeight, t.opts.image.srcset && n.attr("sizes", "100vw").attr("srcset", t.opts.image.srcset), e.hideLoading(t), t.$ghost ? t.timouts = setTimeout(function() {
442                            t.timouts = null, t.$ghost.hide()
443                        }, Math.min(300, Math.max(1e3, t.height / 1600))) : e.afterLoad(t))
444                    }).addClass("fancybox-image").attr("src", t.src).appendTo(t.$content), (n[0].complete || "complete" == n[0].readyState) && n[0].naturalWidth && n[0].naturalHeight ? n.trigger("load") : n[0].error ? n.trigger("error") : t.timouts = setTimeout(function() {
445                        n[0].complete || t.hasError || e.showLoading(t)
446                    }, 100)
447                },
448                setIframe: function(a) {
449                    var s, e = this,
450                        r = a.opts.iframe,
451                        t = a.$slide;
452                    a.$content = g('<div class="fancybox-content' + (r.preload ? " fancybox-is-hidden" : "") + '"></div>').css(r.css).appendTo(t), s = g(r.tpl.replace(/\{rnd\}/g, (new Date).getTime())).attr(r.attr).appendTo(a.$content), r.preload ? (e.showLoading(a), s.on("load.fb error.fb", function(t) {
453                        this.isReady = 1, a.$slide.trigger("refresh"), e.afterLoad(a)
454                    }), t.on("refresh.fb", function() {
455                        var t, e, n = a.$content,
456                            o = r.css.width,
457                            i = r.css.height;
458                        if (1 === s[0].isReady) {
459                            try {
460                                e = s.contents().find("body")
461                            } catch (t) {}
462                            e && e.length && (o === b && (t = s[0].contentWindow.document.documentElement.scrollWidth, o = Math.ceil(e.outerWidth(!0) + (n.width() - t)), o += n.outerWidth() - n.innerWidth()), i === b && (i = Math.ceil(e.outerHeight(!0)), i += n.outerHeight() - n.innerHeight()), o && n.width(o), i && n.height(i)), n.removeClass("fancybox-is-hidden")
463                        }
464                    })) : this.afterLoad(a), s.attr("src", a.src), !0 === a.opts.smallBtn && a.$content.prepe
464nd(e.translate(a, a.opts.btnTpl.smallBtn)), t.one("onReset", function() {
465                        try {
466                            g(this).find("iframe").hide().attr("src", "//about:blank")
467                        } catch (t) {}
468                        g(this).empty(), a.isLoaded = !1
469                    })
470                },
471                setContent: function(t, e) {
472                    this.isClosing || (this.hideLoading(t), t.$slide.empty(), function(t) {
473                        return t && t.hasOwnProperty && t instanceof g
474                    }(e) && e.parent().length ? (e.parent(".fancybox-slide--inline").trigger("onReset"), t.$placeholder = g("<div></div>").hide().insertAfter(e), e.css("display", "inline-block")) : t.hasError || ("string" === g.type(e) && 3 === (e = g("<div>").append(g.trim(e)).contents())[0].nodeType && (e = g("<div>").html(e)), t.opts.filter && (e = g("<div>").html(e).find(t.opts.filter))), t.$slide.one("onReset", function() {
475                        g(this).find("video,audio").trigger("pause"), t.$placeholder && (t.$placeholder.after(e.hide()).remove(), t.$placeholder = null), t.$smallBtn && (t.$smallBtn.remove(), t.$smallBtn = null), t.hasError || (g(this).empty(), t.isLoaded = !1)
476                    }), t.$content = g(e).appendTo(t.$slide), this.afterLoad(t))
477                },
478                setError: function(t) {
479                    t.hasError = !0, t.$slide.removeClass("fancybox-slide--" + t.type), this.setContent(t, this.translate(t, t.opts.errorTpl))
480                },
481                showLoading: function(t) {
482                    (t = t || this.current) && !t.$spinner && (t.$spinner = g(this.opts.spinnerTpl).appendTo(t.$slide))
483                },
484                hideLoading: function(t) {
485                    (t = t || this.current) && t.$spinner && (t.$spinner.remove(), delete t.$spinner)
486                },
487                afterLoad: function(t) {
488                    var e = this;
489                    e.isClosing || (t.isLoading = !1, t.isLoaded = !0, e.trigger("afterLoad", t), e.hideLoading(t), t.opts.smallBtn && !t.$smallBtn && (t.$smallBtn = g(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content.filter("div,form").first())), t.opts.protect && t.$content && !t.hasError && (t.$content.on("contextmenu.fb", function(t) {
490                        return 2 == t.button && t.preventDefault(), !0
491                    }), "image" === t.type && g('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), e.revealContent(t))
492                },
493                revealContent: function(e) {
494                    var t, n, o, i, a, s = this,
495                        r = e.$slide,
496                        c = !1;
497                    return t = e.opts[s.firstRun ? "animationEffect" : "transitionEffect"], o = e.opts[s.firstRun ? "animationDuration" : "transitionDuration"], o = parseInt(e.forcedDuration === b ? o : e.forcedDuration, 10), !e.isMoved && e.pos === s.currPos && o || (t = !1), "zoom" !== t || e.pos === s.currPos && o && "image" === e.type && !e.hasError && (c = s.getThumbPos(e)) || (t = "fade"), "zoom" === t ? ((a = s.getFitPos(e)).scaleX = a.width / c.width, a.scaleY = a.height / c.height, delete a.width, delete a.height, "auto" == (i = e.opts.zoomOpacity) && (i = .1 < Math.abs(e.width / e.height - c.width / c.height)), i && (c.opacity = .1, a.opacity = 1), g.fancybox.setTranslate(e.$content.removeClass("fancybox-is-hidden"), c), p(e.$content), void g.fancybox.animate(e.$content, a, o, function() {
498                        s.complete()
499                    })) : (s.updateSlide(e), t ? (g.fancybox.stop(r), n = "fancybox-animated fancybox-slide--" + (e.pos >= s.prevPos ? "next" : "previous") + " fancybox-fx-" + t, r.removeAttr("style").removeClass("fancybox-slide--current fancybox-slide--next fancybox-slide--previous").addClass(n), e.$content.removeClass("fancybox-is-hidden"), p(r), void g.fancybox.animate(r, "fancybox-slide--current", o, function(t) {
500                        r.removeClass(n).removeAttr("style"), e.pos === s.currPos && s.complete()
501                    }, !0)) : (p(r), e.$content.removeClass("fancybox-is-hidden"), void(e.pos === s.currPos && s.complete())))
502                },
503                getThumbPos: function(t) {
504                    var e, n = !1,
505                        o = t.opts.$thumb,
506                        i = o ? o.offset() : 0;
507                    return i && o[0].ownerDocument === r && function(t) {
508                        for (var e = t[0], o = e.getBoundingClientRect(), n = []; null !== e.parentElement;) "hidden" !== g(e.parentElement).css("overflow") && "auto" !== g(e.parentElement).css("overflow") || n.push(e.parentElement.getBoundingClientRect()), e = e.parentElement;
509                        return n.every(function(t) {
510                            var e = Math.min(o.right, t.right) - Math.max(o.left, t.left),
511                                n = Math.min(o.bottom, t.bottom) - Math.max(o.top, t.top);
512                            return 0 < e && 0 < n
513                        }) && 0 < o.bottom && 0 < o.right && o.left < g(l).width() && o.top < g(l).height()
514                    }(o) && (e = this.$refs.stage.offset(), n = {
515                        top: i.top - e.top + parseFloat(o.css("border-top-width") || 0),
516                        left: i.left - e.left + parseFloat(o.css("border-left-width") || 0),
517                        width: o.width(),
518                        height: o.height(),
519                        scaleX: 1,
520                        scaleY: 1
521                    }), n
522                },
523                complete: function() {
524                    var n = this,
525                        t = n.current,
526                        o = {};
527                    t.isMoved || !t.isLoaded || t.isComplete || (t.isComplete = !0, t.$slide.siblings().trigger("onReset"), n.preload("inline"), p(t.$slide), t.$slide.addClass("fancybox-slide--complete"), g.each(n.slides, function(t, e) {
528                        e.pos >= n.currPos - 1 && e.pos <= n.currPos + 1 ? o[e.pos] = e : e && (g.fancybox.stop(e.$slide), e.$slide.off().remove())
529                    }
529), n.slides = o, n.updateCursor(), n.trigger("afterShow"), t.$slide.find("video,audio").first().trigger("play"), (g(r.activeElement).is("[disabled]") || t.opts.autoFocus && "image" != t.type && "iframe" !== t.type) && n.focus())
530                },
531                preload: function(t) {
532                    var e = this,
533                        n = e.slides[e.currPos + 1],
534                        o = e.slides[e.currPos - 1];
535                    n && n.type === t && e.loadSlide(n), o && o.type === t && e.loadSlide(o)
536                },
537                focus: function() {
538                    var t, e = this.current;
539                    this.isClosing || (e && e.isComplete && ((t = e.$slide.find("input[autofocus]:enabled:visible:first")).length || (t = e.$slide.find("button,:input,[tabindex],a").filter(":enabled:visible:first"))), (t = t && t.length ? t : this.$refs.container).focus())
540                },
541                activate: function() {
542                    var e = this;
543                    g(".fancybox-container").each(function() {
544                        var t = g(this).data("FancyBox");
545                        t && t.id !== e.id && !t.isClosing && (t.trigger("onDeactivate"), t.removeEvents(), t.isVisible = !1)
546                    }), e.isVisible = !0, (e.current || e.isIdle) && (e.update(), e.updateControls()), e.trigger("onActivate"), e.addEvents()
547                },
548                close: function(t, e) {
549                    function n() {
550                        l.cleanUp(t)
551                    }
552                    var o, i, a, s, r, c, l = this,
553                        u = l.current;
554                    return !l.isClosing && (!(l.isClosing = !0) === l.trigger("beforeClose", t) ? (l.isClosing = !1, d(function() {
555                        l.update()
556                    }), !1) : (l.removeEvents(), u.timouts && clearTimeout(u.timouts), a = u.$content, o = u.opts.animationEffect, i = g.isNumeric(e) ? e : o ? u.opts.animationDuration : 0, u.$slide.off(f).removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"), u.$slide.siblings().trigger("onReset").remove(), i && l.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing"), l.hideLoading(u), l.hideControls(), l.updateCursor(), "zoom" !== o || !0 !== t && a && i && "image" === u.type && !u.hasError && (c = l.getThumbPos(u)) || (o = "fade"), "zoom" === o ? (g.fancybox.stop(a), (r = g.fancybox.getTranslate(a)).width = r.width * r.scaleX, r.height = r.height * r.scaleY, "auto" == (s = u.opts.zoomOpacity) && (s = .1 < Math.abs(u.width / u.height - c.width / c.height)), s && (c.opacity = 0), r.scaleX = r.width / c.width, r.scaleY = r.height / c.height, r.width = c.width, r.height = c.height, g.fancybox.setTranslate(u.$content, r), p(u.$content), g.fancybox.animate(u.$content, c, i, n)) : o && i ? !0 === t ? setTimeout(n, i) : g.fancybox.animate(u.$slide.removeClass("fancybox-slide--current"), "fancybox-animated fancybox-slide--previous fancybox-fx-" + o, i, n) : n(), !0))
557                },
558                cleanUp: function(t) {
559                    var e, n, o = this,
560                        i = g("body");
561                    o.current.$slide.trigger("onReset"), o.$refs.container.empty().remove(), o.trigger("afterClose", t), o.$lastFocus && o.current.opts.backFocus && o.$lastFocus.focus(), o.current = null, (e = g.fancybox.getInstance()) ? e.activate() : (a.scrollTop(o.scrollTop).scrollLeft(o.scrollLeft), i.removeClass("fancybox-active compensate-for-scrollbar"), i.hasClass("fancybox-iosfix") && (n = parseInt(r.body.style.top, 10), i.removeClass("fancybox-iosfix").css("top", "").scrollTop(-1 * n)), g("#fancybox-style-noscroll").remove())
562                },
563                trigger: function(t, e) {
564                    var n, o = Array.prototype.slice.call(arguments, 1),
565                        i = this,
566                        a = e && e.opts ? e : i.current;
567                    if (a ? o.unshift(a) : a = i, o.unshift(i), g.isFunction(a.opts[t]) && (n = a.opts[t].apply(a, o)), !1 === n) return n;
568                    "afterClose" !== t && i.$refs ? i.$refs.container.trigger(t + ".fb", o) : c.trigger(t + ".fb", o)
569                },
570                updateControls: function(t) {
571                    var e = this,
572                        n = e.current,
573                        o = n.index,
574                        i = n.opts.caption,
575                        a = e.$refs.container,
576                        s = e.$refs.caption;
577                    n.$slide.trigger("refresh"), e.$caption = i && i.length ? s.html(i) : null, e.isHiddenControl
577s || e.isIdle || e.showControls(), a.find("[data-fancybox-count]").html(e.group.length), a.find("[data-fancybox-index]").html(o + 1), a.find("[data-fancybox-prev]").prop("disabled", !n.opts.loop && o <= 0), a.find("[data-fancybox-next]").prop("disabled", !n.opts.loop && o >= e.group.length - 1), "image" === n.type ? a.find("[data-fancybox-download]").attr("href", n.opts.image.src || n.src).show() : a.find("[data-fancybox-download],[data-fancybox-zoom]").hide()
578                },
579                hideControls: function() {
580                    this.isHiddenControls = !0, this.$refs.container.removeClass("fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav")
581                },
582                showControls: function() {
583                    var t = this,
584                        e = t.current ? t.current.opts : t.opts,
585                        n = t.$refs.container;
586                    t.isHiddenControls = !1, t.idleSecondsCounter = 0, n.toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)).toggleClass("fancybox-show-infobar", !!(e.infobar && 1 < t.group.length)).toggleClass("fancybox-show-nav", !!(e.arrows && 1 < t.group.length)).toggleClass("fancybox-is-modal", !!e.modal), t.$caption ? n.addClass("fancybox-show-caption ") : n.removeClass("fancybox-show-caption")
587                },
588                toggleControls: function() {
589                    this.isHiddenControls ? this.showControls() : this.hideControls()
590                }
591            }), g.fancybox = {
592                version: "3.2.10",
593                defaults: e,
594                getInstance: function(t) {
595                    var e = g('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
596                        n = Array.prototype.slice.call(arguments, 1);
597                    return e instanceof o && ("string" === g.type(t) ? e[t].apply(e, n) : "function" === g.type(t) && t.apply(e, n), e)
598                },
599                open: function(t, e, n) {
600                    return new o(t, e, n)
601                },
602                close: function(t) {
603                    var e = this.getInstance();
604                    e && (e.close(), !0 === t && this.close())
605                },
606                destroy: function() {
607                    this.close(!0), c.off("click.fb-start")
608                },
609                isMobile: r.createTouch !== b && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
610                use3d: (t = r.createElement("div"), l.getComputedStyle && l.getComputedStyle(t).getPropertyValue("transform") && !(r.documentMode && r.documentMode < 11)),
611                getTranslate: function(t) {
612                    var e;
613                    if (!t || !t.length) return !1;
614                    if ((e = (e = t.eq(0).css("transform")) && -1 !== e.indexOf("matrix") ? (e = (e = e.split("(")[1]).split(")")[0]).split(",") : []).length) e = (e = 10 < e.length ? [e[13], e[12], e[0], e[5]] : [e[5], e[4], e[0], e[3]]).map(parseFloat);
615                    else {
616                        e = [0, 0, 1, 1];
617                        var n = /\.*translate\((.*)px,(.*)px\)/i.exec(t.eq(0).attr("style"));
618                        n && (e[0] = parseFloat(n[2]), e[1] = parseFloat(n[1]))
619                    }
620                    return {
621                        top: e[0],
622                        left: e[1],
623                        scaleX: e[2],
624                        scaleY: e[3],
625                        opacity: parseFloat(t.css("opacity")),
626                        width: t.width(),
627                        height: t.height()
628                    }
629                },
630                setTranslate: function(t, e) {
631                    var n = "",
632                        o = {};
633                    if (t && e) return e.left === b && e.top === b || (n = (e.left === b ? t.position().left : e.left) + "px, " + (e.top === b ? t.position().top : e.top) + "px", n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")"), e.scaleX !== b && e.scaleY !== b && (n = (n.length ? n + " " : "") + "scale(" + e.scaleX + ", " + e.scaleY + ")"), n.length && (o.transform = n), e.opacity !== b && (o.opacity = e.opacity), e.width !== b && (o.width = e.width), e.height !== b && (o.height = e.height), t.css(o)
634                },
635                animate: function(e, n, t, o, i) {
636                    g.isFunction(t) && (o = t, t = null), g.isPlainObject(n) || e.removeAttr("style"), e.on(f, function(t) {
637                        t && t.originalEvent && (!e.is(t.originalEvent.target) || "z-index" == t.originalEvent.propertyName) || (g.fancybox.stop(e), g.isPlainObject(n) ? (n.scaleX !== b && n.scaleY !== b && (e.css("transition-duration", ""), n.width = Math.round(e.width() * n.scaleX), n.height = Math.round(e.height() * n.scaleY), n.scaleX = 1, n.scaleY = 1, g.fancybox.setTranslate(e, n)), !1 === i && e.removeAttr("style")) : !0 !== i && e.removeClass(n), g.isFunction(o) && o(t))
638                    }), g.isNumeric(t) && e.css("transition-duration", t + "ms"), g.isPlainObject(n) ? g.fancybox.setTranslate(e, n) : e.addClass(n), n.scaleX && e.hasClass("fancybox-image-wrap") && e.parent().addClass("fancybox-is-scaling"), e.data("timer", setTimeout(function() {
639                        e.trigger("transitionend")
640                    }, t + 16))
641                },
642                stop: function(t) {
643                    clearTimeout(t.data("timer")), t.off("transitionend").css("transition-duration", ""), t.hasClass("fancybox-image-wrap") && t.parent().removeClass("fancybox-is-scaling")
644                }
645            }, g.fn.fancybox = function(t) {
646                var e;
647                return (e = (t = t || {}
647).selector || !1) ? g("body").off("click.fb-start", e).on("click.fb-start", e, {
648                    options: t
649                }, n) : this.off("click.fb-start").on("click.fb-start", {
650                    items: this,
651                    options: t
652                }, n), this
653            }, c.on("click.fb-start", "[data-fancybox]", n)
654        }
655    function n(t) {
656        var e = g(t.currentTarget),
657            n = t.data ? t.data.options : {},
658            o = e.attr("data-fancybox") || "",
659            i = 0,
660            a = [];
661        t.isDefaultPrevented() || (t.preventDefault(), o ? (i = (a = (a = n.selector ? g(n.selector) : t.data ? t.data.items : []).length ? a.filter('[data-fancybox="' + o + '"]') : g('[data-fancybox="' + o + '"]')).index(e)) < 0 && (i = 0) : a = [e], g.fancybox.open(a, n, i))
662    }
663}(window, document, window.jQuery || jQuery),
664function(f) {
665    "use strict";
666
667    function p(n, t, e) {
668        if (n) return e = e || "", "object" === f.type(e) && (e = f.param(e, !0)), f.each(t, function(t, e) {
669            n = n.replace("$" + t, e || "")
670        }), e.length && (n += (0 < n.indexOf("?") ? "&" : "?") + e), n
671    }
672    var h = {
673        youtube: {
674            matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
675            params: {
676                autoplay: 1,
677                autohide: 1,
678                fs: 1,
679                rel: 0,
680                hd: 1,
681                wmode: "transparent",
682                enablejsapi: 1,
683                html5: 1
684            },
685            paramPlace: 8,
686            type: "iframe",
687            url: "//www.youtube.com/embed/$4",
688            thumb: "//img.youtube.com/vi/$4/hqdefault.jpg"
689        },
690        vimeo: {
691            matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
692            params: {
693                autoplay: 1,
694                hd: 1,
695                show_title: 1,
696                show_byline: 1,
697                show_portrait: 0,
698                fullscreen: 1,
699                api: 1
700            },
701            paramPlace: 3,
702            type: "iframe",
703            url: "//player.vimeo.com/video/$2"
704        },
705        metacafe: {
706            matcher: /metacafe.com\/watch\/(\d+)\/(.*)?/,
707            type: "iframe",
708            url: "//www.metacafe.com/embed/$1/?ap=1"
709        },
710        dailymotion: {
711            matcher: /dailymotion.com\/video\/(.*)\/?(.*)/,
712            params: {
713                additionalInfos: 0,
714                autoStart: 1
715            },
716            type: "iframe",
717            url: "//www.dailymotion.com/embed/video/$1"
718        },
719        vine: {
720            matcher: /vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/,
721            type: "iframe",
722            url: "//vine.co/v/$1/embed/simple"
723        },
724        instagram: {
725            matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
726            type: "image",
727            url: "//$1/p/$2/media/?size=l"
728        },
729        gmap_place: {
730            matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
731            type: "iframe",
732            url: function(t) {
733                return "//maps.google." + t[2] + "/?ll=" + (t[9] ? t[9] + "&z=" + Math.floor(t[10]) + (t[12] ? t[12].replace(/^\//, "&") : "") : t[12]) + "&output=" + (t[12] && 0 < t[12].indexOf("layer=c") ? "svembed" : "embed")
734            }
735        },
736        gmap_search: {
737            matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
738            type: "iframe",
739            url: function(t) {
740                return "//maps.google." + t[2] + "/maps?q=" + t[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"
741            }
742        }
743    };
744    f(document).on("objectNeedsType.fb", function(t, e, i) {
745        var n, a, s, r, c, l, o, u = i.src || "",
746            d = !1;
747        n = f.extend(!0, {}, h, i.opts.media), f.each(n, function(t, e) {
748            if (s = u.match(e.matcher)) {
749                if (d = e.type, l = {}, e.paramPlace && s[e.paramPlace]) {
750                    "?" == (c = s[e.paramPlace])[0] && (c = c.substring(1)), c = c.split("&");
751                    for (var n = 0; n < c.length; ++n) {
752                        var o = c[n].split("=", 2);
753                        2 == o.length && (l[o[0]] = decodeURIComponent(o[1].replace(/\+/g, " ")))
754                    }
755                }
756                return r = f.extend(!0, {}, e.params, i.opts[t], l), u = "function" === f.type(e.url) ? e.url.call(this, s, r, i) : p(e.url, s, r), a = "function" === f.type(e.thumb) ? e.thumb.call(this, s, r, i) : p(e.thumb, s), "vimeo" === t && (u = u.replace("&%23", "#")), !1
757            }
758        }), d ? (i.src = u, i.type = d, i.opts.thumb || i.opts.$thumb && i.opts.$thumb.length || (i.opts.thumb = a), "iframe" === d && (f.extend(!0, i.opts, {
759            iframe: {
760                preload: !1,
761                attr: {
762                    scrolling: "no"
763                }
764            }
765        }), i.contentProvider = o, i.opts.slideClass += " fancybox-slide--video")) : u && (i.type = i.opts.defaultType)
766    })
767}(window.jQuery || jQuery),
768function(h, r, g) {
769    "use strict";
770
771    function u(t) {
772        var e = [];
773        for (var n in t = (t = t.originalEvent || t || h.e).touches && t.touches.length ? t.touches : t.changedTouches && t.changedTouches.length ? t.changedTouches : [t]) t[n].pageX ? e.push({
774            x: t[n].pageX,
775            y: t[n].pageY
776        }) : t[n].clientX && e.push({
777            x: t[n].clientX,
778            y: t[n].clientY
779        });
780        return e
781    }
782
783    function b(t, e, n) {
784        return e && t ? "x" === n ? t.x - e.x : "y" === n ? t.y - e.y : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) : 0
785    }
786
787    function c(t) {
788        if (t.is('a,area,button,[role="button"],input,label,select,summary,textarea') || g.isFunction(t.get(0).onclick) || t.data("selectable")) return !0;
789        for (var e = 0, n = t[0].attributes, o = n.length; e < o; e++)
790            if ("data-fancybox-" === n[e].nodeName.substr(0, 14)) return !0;
791        return !1
792    }
793
794    function l(t) {
795        for (var e, n, o, i, a, s = !1; e = t.get(0), void 0, n = h.getComputedStyle(e)["overflow-y"], o = h.getComputedStyle(e)["overflow-x"], i = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight, a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth, !(s = i || a) && (t = t.parent()).length && !t.hasClass("fancybox-stage") && !t.is("body"););
796        return s
797    }
798
799    function n(t) {
800        var e = this;
801        e.instance = t, e.$bg = t.$refs.bg, e.$stage = t.$refs.stage, e.$container = t.$refs.container, e.destroy(), e.$container.on("touchstart.fb.touch mousedown.fb.touch", g.proxy(e, "ontouchstart"))
802    }
803    var m = h.requestAnimationFrame || h.webkitRequestAnimationFrame || h.mozRequestAnimationFrame || h.oRequestAnimationFrame || function(t) {
804            return h.setTimeout(t, 1e3 / 60)
805        },
806        y = h.cancelAnimationFrame || h.webkitCancelAnimationFrame || h.mozCancelAnimationFrame || h.oCancelAnimationFrame || function(t) {
807            h.clearTimeout(t)
808        };
809    n.prototype.destroy = function() {
810        this.$container.off(".fb.touch")
811    }, n.prototype.ontouchstart = function(t) {
812        var e = this,
813            n = g(t.target),
814            o = e.instance,
815            i = o.current,
816            a = i.$content,
817            s = "touchstart" == t.type;
818        if (s && e.$container.off("mousedown.fb.touch"), (!t.originalEvent || 2 != t.originalEvent.button) && n.length && !c(n) && !c(n.parent()) && (n.is("img") || !(t.originalEvent.clientX > n[0].clientWidth + n.offset().left))) {
819            if (!i || e.instance.isAnimating || e.instance.isClosing) return t.stopPropagation(), void t.preventDefault();
820            e.realPoints = e.startPoints = u(t), e.startPoints && (t.stopPropagation(), e.startEvent = t, e.canTap = !0, e.$target = n, e.$content = a, e.opts = i.opts.touch, e.isPanning = !1, e.isSwiping = !1, e.isZooming = !1, e.isScrolling = !1, e.sliderStartPos = e.sliderLastPos || {
821                top: 0,
822                left: 0
823            }, e.contentStartPos = g.fancybox.getTranslate(e.$content), e.contentLastPos = null, e.startTime = (new Date).getTime(), e.distanceX = e.distanceY = e.distance = 0, e.canvasWidth = Math.round(i.$slide[0].clientWidth), e.canvasHeight = Math.round(i.$slide[0].clientHeight), g(r).off(".fb.touch").on(s ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", g.proxy(e, "ontouchend")).on(s ? "touchmove.fb.touch" : "mousemove.fb.touch", g.proxy(e, "ontouchmove")), g.fancybox.isMobile && r.addEventListener("scroll", e.onscroll, !0), (e.opts || o.canPan()) && (n.is(e.$stage) || e.$stage.find(n).length) ? (g.fancybox.isMobile && (l(n) || l(n.parent())) || t.preventDefault(), 1 === e.startPoints.length && ("image" === i.type && (e.contentStartPos.width > e.canvasWidth + 1 || e.contentStartPos.height > e.canvasHeight + 1) ? (g.fancybox.stop(e.$content), e.$content.css("transition-duration", ""), e.isPanning = !0) : e.isSwiping = !0, e.$container.addClass("fancybox-controls--isGrabbing")), 2 !== e.startPoints.length || o.isAnimating || i.hasError || "image" !== i.type || !i.isLoaded && !i.$ghost || (e.canTap = !1, e.isSwiping = !1, e.isPanning = !1, e.isZooming = !0, g.fancybox.stop(e.$content), e.$content.css("transition-duration", ""), e.centerPointStartX = .5 * (e.startPoints[0].x + e.startPoints[1].x) - g(h).scrollLeft(), e.centerPointStartY = .5 * (e.startPoints[0].y + e.startPoints[1].y) - g(h).scrollTop(), e.percentageOfImageAtPinchPointX = (e.centerPointStartX - e.contentStartPos.left) / e.contentStartPos.width, e.percentageOfImageAtPinchPointY = (e.centerPointStartY - e.contentStartPos.top) / e.contentStartPos.height, e.startDistanceBetweenFingers = b(e.startPoints[0], e.startPoints[1]))) : n.is("img") && t.preventDefault())
824        }
825    }, n.prototype.onscroll = function(t) {
826        self.isScrolling = !0
827    }, n.prototype.ontouchmove = function(t) {
828        var e = this,
829            n = g(t.target);
830        e.isScrolling || !n.is(e.$stage) && !e.$stage.find(n).length ? e.canTap = !1 : (e.newPoints = u(t), (e.opts || e.instance.canPan()) && e.newPoints && e.newPoints.length && (e.isSwiping && !0 === e.isSwiping || t.preventDefault(), e.distanceX = b(e.newPoints[0], e.startPoints[0], "x"), e.distanceY = b(e.newPoints[0], e.startPoints[0], "y"), e.distance = b(e.newPoints[0], e.startPoints[0]), 0 < e.distance && (e.isSwiping ? e.onSwipe(t) : e.isPanning ? e.onPan() : e.isZooming && e.onZoom())))
831    }, n.prototype.onSwipe = function(t) {
832        var e, o = this,
833            n = o.isSwiping,
834            i = o.sliderStartPos.left || 0;
835        if (!0 !== n) "x" == n && (0 < o.distanceX && (o.instance.group.length < 2 || 0 === o.instance.current.index && !o.instance.current.opts.loop) ? i += Math.pow(o.distanceX, .8) : o.distanceX < 0 && (o.instance.group.length < 2 || o.instance.current.index === o.instance.group.length - 1 && !o.instance.current.opts.loop) ? i -= Math.pow(-o.distanceX, .8) : i += o.distanceX), o.sliderLastPos = {
836            top: "x" == n ? 0 : o.sliderStartPos.top + o.distanceY,
837            left: i
838        }, o.requestId && (y(o.requestId), o.requestId = null), o.requestId = m(function() {
839            o.sliderLastPos && (g.each(o.instance.slides, function(t, e) {
840                var n = e.pos - o.instance.currPos;
841                g.fancybox.setTranslate(e.$slide, {
842                    top: o.sliderLastPos.top,
843                    left: o.sliderLastPos.left + n * o.canvasWidth + n * e.opts.gutter
844                })
845            }), o.$container.addClass("fancybox-is-sliding"))
846        });
847        else if (10 < Math.abs(o.distance)) {
848            if (o.canTap = !1, o.instance.group.length < 2 && o.opts.vertical ? o.isSwiping = "y" : o.instance.isDragging || !1 === o.opts.vertical || "auto" === o.opts.vertical && 800 < g(h).width() ? o.isSwiping = "x" : (e = Math.abs(180 * Math.atan2(o.distanceY, o.distanceX) / Math.PI), o.isSwiping = 45 < e && e < 135 ? "y" : "x"), o.canTap = !1, "y" === o.isSwiping && g.fancybox.isMobile && (l(o.$target) || l(
848o.$target.parent()))) return void(o.isScrolling = !0);
849            o.instance.isDragging = o.isSwiping, o.startPoints = o.newPoints, g.each(o.instance.slides, function(t, e) {
850                g.fancybox.stop(e.$slide), e.$slide.css("transition-duration", ""), e.inTransition = !1, e.pos === o.instance.current.pos && (o.sliderStartPos.left = g.fancybox.getTranslate(e.$slide).left)
851            }), o.instance.SlideShow && o.instance.SlideShow.isActive && o.instance.SlideShow.stop()
852        }
853    }, n.prototype.onPan = function() {
854        var t = this;
855        b(t.newPoints[0], t.realPoints[0]) < (g.fancybox.isMobile ? 10 : 5) ? t.startPoints = t.newPoints : (t.canTap = !1, t.contentLastPos = t.limitMovement(), t.requestId && (y(t.requestId), t.requestId = null), t.requestId = m(function() {
856            g.fancybox.setTranslate(t.$content, t.contentLastPos)
857        }))
858    }, n.prototype.limitMovement = function() {
859        var t, e, n, o, i, a, s = this,
860            r = s.canvasWidth,
861            c = s.canvasHeight,
862            l = s.distanceX,
863            u = s.distanceY,
864            d = s.contentStartPos,
865            f = d.left,
866            p = d.top,
867            h = d.width,
868            g = d.height;
869        return i = r < h ? f + l : f, a = p + u, t = Math.max(0, .5 * r - .5 * h), e = Math.max(0, .5 * c - .5 * g), n = Math.min(r - h, .5 * r - .5 * h), o = Math.min(c - g, .5 * c - .5 * g), r < h && (0 < l && t < i && (i = t - 1 + Math.pow(-t + f + l, .8) || 0), l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, .8) || 0)), c < g && (0 < u && e < a && (a = e - 1 + Math.pow(-e + p + u, .8) || 0), u < 0 && a < o && (a = o + 1 - Math.pow(o - p - u, .8) || 0)), {
870            top: a,
871            left: i,
872            scaleX: d.scaleX,
873            scaleY: d.scaleY
874        }
875    }, n.prototype.limitPosition = function(t, e, n, o) {
876        var i = this.canvasWidth,
877            a = this.canvasHeight;
878        return t = i < n ? (t = 0 < t ? 0 : t) < i - n ? i - n : t : Math.max(0, i / 2 - n / 2), {
879            top: e = a < o ? (e = 0 < e ? 0 : e) < a - o ? a - o : e : Math.max(0, a / 2 - o / 2),
880            left: t
881        }
882    }, n.prototype.onZoom = function() {
883        var t = this,
884            e = t.contentStartPos.width,
885            n = t.contentStartPos.height,
886            o = t.contentStartPos.left,
887            i = t.contentStartPos.top,
888            a = b(t.newPoints[0], t.newPoints[1]) / t.startDistanceBetweenFingers,
889            s = Math.floor(e * a),
890            r = Math.floor(n * a),
891            c = (e - s) * t.percentageOfImageAtPinchPointX,
892            l = (n - r) * t.percentageOfImageAtPinchPointY,
893            u = (t.newPoints[0].x + t.newPoints[1].x) / 2 - g(h).scrollLeft(),
894            d = (t.newPoints[0].y + t.newPoints[1].y) / 2 - g(h).scrollTop(),
895            f = u - t.centerPointStartX,
896            p = {
897                top: i + (l + (d - t.centerPointStartY)),
898                left: o + (c + f),
899                scaleX: t.contentStartPos.scaleX * a,
900                scaleY: t.contentStartPos.scaleY * a
901            };
902        t.canTap = !1, t.newWidth = s, t.newHeight = r, t.contentLastPos = p, t.requestId && (y(t.requestId), t.requestId = null), t.requestId = m(function() {
903            g.fancybox.setTranslate(t.$content, t.contentLastPos)
904        })
905    }, n.prototype.ontouchend = function(t) {
906        var e = this,
907            n = Math.max((new Date).getTime() - e.startTime, 1),
908            o = e.isSwiping,
909            i = e.isPanning,
910            a = e.isZooming,
911            s = e.isScrolling;
912        if (e.endPoints = u(t), e.$container.removeClass("fancybox-controls--isGrabbing"), g(r).off(".fb.touch"), r.removeEventListener("scroll", e.onscroll, !0), e.requestId && (y(e.requestId), e.requestId = null), e.isSwiping = !1, e.isPanning = !1, e.isZooming = !1, e.isScrolling = !1, e.instance.isDragging = !1, e.canTap) return e.onTap(t);
913        e.speed = 366, e.velocityX = e.distanceX / n * .5, e.velocityY = e.distanceY / n * .5, e.speedX = Math.max(.5 * e.speed, Math.min(1.5 * e.speed, 1 / Math.abs(e.velocityX) * e.speed)), i ? e.endPanning() : a ? e.endZooming() : e.endSwiping(o, s)
914    }, n.prototype.endSwiping = function(t, e) {
915        var n = this,
916            o = !1,
917            i = n.instance.group.length;
918        n.sliderLastPos = null, "y" == t && !e && 50 < Math.abs(n.distanceY) ? (g.fancybox.animate(n.instance.current.$slide, {
919            top: n.sliderStartPos.top + n.distanceY + 150 * n.velocityY,
920            opacity: 0
921        }, 150), o = n.instance.close(!0, 300)) : "x" == t && 50 < n.distanceX && 1 < i ? o = n.instance.previous(n.speedX) : "x" == t && n.distanceX < -50 && 1 < i && (o = n.instance.next(n.speedX)), !1 !== o || "x" != t && "y" != t || (e || i < 2 ? n.instance.centerSlide(n.instance.current, 150) : n.instance.jumpTo(n.instance.current.index)), n.$container.removeClass("fancybox-is-sliding")
922    }, n.prototype.endPanning = function() {
923        var t, e, n, o = this;
924        o.contentLastPos && (e = !1 === o.opts.momentum ? (t = o.contentLastPos.left, o.contentLastPos.top) : (t = o.
924contentLastPos.left + o.velocityX * o.speed, o.contentLastPos.top + o.velocityY * o.speed), (n = o.limitPosition(t, e, o.contentStartPos.width, o.contentStartPos.height)).width = o.contentStartPos.width, n.height = o.contentStartPos.height, g.fancybox.animate(o.$content, n, 330))
925    }, n.prototype.endZooming = function() {
926        var t, e, n, o, i = this,
927            a = i.instance.current,
928            s = i.newWidth,
929            r = i.newHeight;
930        i.contentLastPos && (t = i.contentLastPos.left, o = {
931            top: e = i.contentLastPos.top,
932            left: t,
933            width: s,
934            height: r,
935            scaleX: 1,
936            scaleY: 1
937        }, g.fancybox.setTranslate(i.$content, o), s < i.canvasWidth && r < i.canvasHeight ? i.instance.scaleToFit(150) : s > a.width || r > a.height ? i.instance.scaleToActual(i.centerPointStartX, i.centerPointStartY, 150) : (n = i.limitPosition(t, e, s, r), g.fancybox.setTranslate(i.content, g.fancybox.getTranslate(i.$content)), g.fancybox.animate(i.$content, n, 150)))
938    }, n.prototype.onTap = function(n) {
939        function t(t) {
940            var e = s.opts[t];
941            if (g.isFunction(e) && (e = e.apply(a, [s, n])), e) switch (e) {
942                case "close":
943                    a.close(o.startEvent);
944                    break;
945                case "toggleControls":
946                    a.toggleControls(!0);
947                    break;
948                case "next":
949                    a.next();
950                    break;
951                case "nextOrClose":
952                    1 < a.group.length ? a.next() : a.close(o.startEvent);
953                    break;
954                case "zoom":
955                    "image" == s.type && (s.isLoaded || s.$ghost) && (a.canPan() ? a.scaleToFit() : a.isScaledDown() ? a.scaleToActual(c, l) : a.group.length < 2 && a.close(o.startEvent))
956            }
957        }
958        var e, o = this,
959            i = g(n.target),
960            a = o.instance,
961            s = a.current,
962            r = n && u(n) || o.startPoints,
963            c = r[0] ? r[0].x - o.$stage.offset().left : 0,
964            l = r[0] ? r[0].y - o.$stage.offset().top : 0;
965        if ((!n.originalEvent || 2 != n.originalEvent.button) && (i.is("img") || !(c > i[0].clientWidth + i.offset().left))) {
966            if (i.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) e = "Outside";
967            else if (i.is(".fancybox-slide")) e = "Slide";
968            else {
969                if (!a.current.$content || !a.current.$content.find(i).addBack().filter(i).length) return;
970                e = "Content"
971            }
972            if (o.tapped) {
973                if (clearTimeout(o.tapped), o.tapped = null, 50 < Math.abs(c - o.tapX) || 50 < Math.abs(l - o.tapY)) return this;
974                t("dblclick" + e)
975            } else o.tapX = c, o.tapY = l, s.opts["dblclick" + e] && s.opts["dblclick" + e] !== s.opts["click" + e] ? o.tapped = setTimeout(function() {
976                o.tapped = null, t("click" + e)
977            }, 500) : t("click" + e);
978            return this
979        }
980    }, g(r).on("onActivate.fb", function(t, e) {
981        e && !e.Guestures && (e.Guestures = new n(e))
982    })
983}(window, document, window.jQuery || jQuery),
984function(s, r) {
985    "use strict";
986    r.extend(!0, r.fancybox.defaults, {
987        btnTpl: {
988            slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg viewBox="0 0 40 40"><path d="M13,12 L27,20 L13,27 Z" /><path d="M15,10 v19 M23,10 v19" /></svg></button>'
989        },
990        slideShow: {
991            autoStart: !1,
992            speed: 3e3
993        }
994    });
995
996    function n(t) {
997        this.instance = t, this.init()
998    }
999    r.extend(n.prototype, {
1000        timer: null,
1001        isActive: !1,
1002        $button: null,
1003        init: function() {
1004            var t = this;
1005            t.$button = t.instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
1006                t.toggle()
1007            }), (t.instance.group.length < 2 || !t.instance.group[t.instance.currIndex].opts.slideShow) && t.$button.hide()
1008        },
1009        set: function(t) {
1010            var e = this;
1011            e.instance && e.instance.current && (!0 === t || e.instance.current.opts.loop || e.instance.currIndex < e.instance.group.length - 1) ? e.timer = setTimeout(function() {
1012                e.isActive && e.instance.jumpTo((e.instance.currIndex + 1) % e.instance.group.length)
1013            }, e.instance.current.opts.slideShow.speed) : (e.stop(), e.instance.idleSecondsCounter = 0, e.instance.showControls())
1014        },
1015        clear: function() {
1016            clearTimeout(this.timer), this.timer = null
1017        },
1018        start: function() {
1019            var t = this.instance.current;
1020            t && (this.isActive = !0, this.$button.attr("title", t.opts.i18n[t.opts.lang].PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"), this.set(!0))
1021        },
1022        stop: function() {
1023            var t = this.instance.current;
1024            this.clear(), this.$button.attr("title", t.opts.i18n[t.opts.lang].PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"), this.isActive = !1
1025        },
1026        toggle: function() {
1027            this.isActive ? this.stop() : this.start()
1028        }
1029    }), r(s).on({
1030        "onInit.fb": function(t, e) {
1031            e && !e.SlideShow && (e.SlideShow = new n(e))
1032        },
1033        "beforeShow.fb": function(t, e, n, o) {
1034            var i = e && e.SlideShow;
1035            o ? i && n.opts.slideShow.autoStart && i.start() : i && i.isActive && i.clear()
1036        },
1037        "afterShow.fb": function(t, e, n) {
1038            var o = e && e.SlideShow;
1039            o && o.isActive && o.set()
1040        },
1041        "afterKeydown.fb": function(t, e, n, o, i) {
1042            var a = e && e.SlideShow;
1043            !a || !n.opts.slideShow || 80 !== i && 32 !== i || r(s.activeElement).is("button,a,input") || (o.preventDefault(), a.toggle())
1044        },
1045        "beforeClose.fb onDeactivate.fb": function(t, e) {
1046            var n = e && e.SlideShow;
1047            n && n.stop()
1048        }
1049    }), r(s).on("visibilitychange", function() {
1050        var t = r.fancybox.getInstance(),
1051            e = t && t.SlideShow;
1052        e && e.isActive && (s.hidden ? e.clear() : e.set())
1053    })
1054}(document, window.jQuery || jQuery),
1055function(a, n) {
1056    "use strict";
1057    var e = function() {
1058        var t, e, n, o = [
1059                ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
1060                ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
1061                ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
1062                ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
1063                ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
1064            ],
1065            i = {};
1066        for (e = 0; e < o.length; e++)
1067            if ((t = o[e]) && t[1] in a) {
1068                for (n = 0; n < t.length; n++) i[o[0][n]] = t[n];
1069                return i
1070            } return !1
1071    }();
1072    if (e) {
1073        var o = {
1074            request: function(t) {
1075                (t = t || a.documentElement)[e.requestFullscreen](t.ALLOW_KEYBOARD_INPUT)
1076            },
1077            exit: function() {
1078                a[e.exitFullscreen]()
1079            },
1080            toggle: function(t) {
1081                t = t || a.documentElement, this.isFullscreen() ? this.exit() : this.request(t)
1082            },
1083            isFullscreen: function() {
1084                return Boolean(a[e.fullscreenElement])
1085            },
1086            enabled: function() {
1087                return Boolean(a[e.fullscreenEnabled])
1088            }
1089        };
1090        n.extend(!0, n.fancybox.defaults, {
1091            btnTpl: {
1092                fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fullscreen" title="{{FULL_SCREEN}}"><svg viewBox="0 0 40 40"><path d="M9,12 h22 v16 h-22 v-16 v16 h22 v-16 Z" /></svg></button>'
1093            },
1094            fullScreen: {
1095                autoStart: !1
1096            }
1097        }), n(a).on({
1098            "onInit.fb": function(t, e) {
1099                var n;
1100                e && e.group[e.currIndex].opts.fullScreen ? ((n = e.$refs.container).on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(t) {
1101                    t.stopPropagation(), t.preventDefault(), o.toggle(n[0])
1102                }
1102), e.opts.fullScreen && !0 === e.opts.fullScreen.autoStart && o.request(n[0]), e.FullScreen = o) : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()
1103            },
1104            "afterKeydown.fb": function(t, e, n, o, i) {
1105                e && e.FullScreen && 70 === i && (o.preventDefault(), e.FullScreen.toggle(e.$refs.container[0]))
1106            },
1107            "beforeClose.fb": function(t) {
1108                t && t.FullScreen && o.exit()
1109            }
1110        }), n(a).on(e.fullscreenchange, function() {
1111            var t = o.isFullscreen(),
1112                e = n.fancybox.getInstance();
1113            e && (e.current && "image" === e.current.type && e.isAnimating && (e.current.$content.css("transition", "none"), e.isAnimating = !1, e.update(!0, !0, 0)), e.trigger("onFullscreenChange", t), e.$refs.container.toggleClass("fancybox-is-fullscreen", t))
1114        })
1115    } else n && n.fancybox && (n.fancybox.defaults.btnTpl.fullScreen = !1)
1116}(document, window.jQuery || jQuery),
1117function(t, r) {
1118    "use strict";
1119    r.fancybox.defaults = r.extend(!0, {
1120        btnTpl: {
1121            thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg viewBox="0 0 120 120"><path d="M30,30 h14 v14 h-14 Z M50,30 h14 v14 h-14 Z M70,30 h14 v14 h-14 Z M30,50 h14 v14 h-14 Z M50,50 h14 v14 h-14 Z M70,50 h14 v14 h-14 Z M30,70 h14 v14 h-14 Z M50,70 h14 v14 h-14 Z M70,70 h14 v14 h-14 Z" /></svg></button>'
1122        },
1123        thumbs: {
1124            autoStart: !1,
1125            hideOnClose: !0,
1126            parentEl: ".fancybox-container",
1127            axis: "y"
1128        }
1129    }, r.fancybox.defaults);
1130
1131    function o(t) {
1132        this.init(t)
1133    }
1134    r.extend(o.prototype, {
1135        $button: null,
1136        $grid: null,
1137        $list: null,
1138        isVisible: !1,
1139        isActive: !1,
1140        init: function(t) {
1141            var e = this;
1142            (e.instance = t).Thumbs = e;
1143            var n = t.group[0],
1144                o = t.group[1];
1145            e.opts = t.group[t.currIndex].opts.thumbs, e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]"), e.opts && n && o && ("image" == n.type || n.opts.thumb || n.opts.$thumb) && ("image" == o.type || o.opts.thumb || o.opts.$thumb) ? (e.$button.show().on("click", function() {
1146                e.toggle()
1147            }), e.isActive = !0) : e.$button.hide()
1148        },
1149        create: function() {
1150            var n, o, t = this,
1151                e = t.instance,
1152                i = t.opts.parentEl;
1153            t.$grid = r('<div class="fancybox-thumbs fancybox-thumbs-' + t.opts.axis + '"></div>').appendTo(e.$refs.container.find(i).addBack().filter(i)), n = "<ul>", r.each(e.group, function(t, e) {
1154                (o = e.opts.thumb || (e.opts.$thumb ? e.opts.$thumb.attr("src") : null)) || "image" !== e.type || (o = e.src), o && o.length && (n += '<li data-index="' + t + '"  tabindex="0" class="fancybox-thumbs-loading"><img data-src="' + o + '" /></li>')
1155            }), n += "</ul>", t.$list = r(n).appendTo(t.$grid).on("click", "li", function() {
1156                e.jumpTo(r(this).data("index"))
1157            }), t.$list.find("img").hide().one("load", function() {
1158                var t, e, n, o, i = r(this).parent().removeClass("fancybox-thumbs-loading"),
1159                    a = i.outerWidth(),
1160                    s = i.outerHeight();
1161                t = this.naturalWidth || this.width, o = (e = this.naturalHeight || this.height) / s, 1 <= (n = t / a) && 1 <= o && (o < n ? (t /= o, e = s) : (t = a, e /= n)), r(this).css({
1162                    width: Math.floor(t),
1163                    height: Math.floor(e),
1164                    "margin-top": s < e ? Math.floor(.3 * s - .3 * e) : Math.floor(.5 * s - .5 * e),
1165                    "margin-left": Math.floor(.5 * a - .5 * t)
1166                }).show()
1167            }).each(function() {
1168                this.src = r(this).data("src")
1169            }), "x" === t.opts.axis && t.$list.width(parseInt(t.$grid.css("padding-right")) + e.group.length * t.$list.children().eq(0).outerWidth(!0) + "px")
1170        },
1171        focus: function(t) {
1172            var e, n, o = this,
1173                i = o.$list;
1174            o.instance.current && (n = (e = i.children().removeClass("fancybox-thumbs-active").filter('[data-index="' + o.instance.current.index + '"]').addClass("fancybox-thumbs-active")).position(), "y" === o.opts.axis && (n.top < 0 || n.top > i.height() - e.outerHeight()) ? i.stop().animate({
1175                scrollTop: i.scrollTop() + n.top
1176            }, t) : "x" === o.opts.axis && (n.left < i.parent().scrollLeft() || n.left > i.parent().scrollLeft() + (i.parent().width() - e.outerWidth())) && i.parent().stop().animate({
1177                scrollLeft: n.left
1178            }, t))
1179        },
1180        update: function() {
1181            this.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible), this.isVisible ? (this.$grid || this.create(), this.instance.trigger("onThumbsShow"), this.focus(0)) : this.$grid && this.instance.trigger("onThumbsHide"), this.instance.update(
1181)
1182        },
1183        hide: function() {
1184            this.isVisible = !1, this.update()
1185        },
1186        show: function() {
1187            this.isVisible = !0, this.update()
1188        },
1189        toggle: function() {
1190            this.isVisible = !this.isVisible, this.update()
1191        }
1192    }), r(t).on({
1193        "onInit.fb": function(t, e) {
1194            var n;
1195            e && !e.Thumbs && (n = new o(e)).isActive && !0 === n.opts.autoStart && n.show()
1196        },
1197        "beforeShow.fb": function(t, e, n, o) {
1198            var i = e && e.Thumbs;
1199            i && i.isVisible && i.focus(o ? 0 : 250)
1200        },
1201        "afterKeydown.fb": function(t, e, n, o, i) {
1202            var a = e && e.Thumbs;
1203            a && a.isActive && 71 === i && (o.preventDefault(), a.toggle())
1204        },
1205        "beforeClose.fb": function(t, e) {
1206            var n = e && e.Thumbs;
1207            n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide()
1208        }
1209    })
1210}(document, window.jQuery),
1211function(t, o) {
1212    "use strict";
1213    o.extend(!0, o.fancybox.defaults, {
1214        btnTpl: {
1215            share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg viewBox="0 0 40 40"><path d="M6,30 C8,18 19,16 23,16 L23,16 L23,10 L33,20 L23,29 L23,24 C19,24 8,27 6,30 Z"></svg></button>'
1216        },
1217        share: {
1218    tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p class="fancybox-share__links"><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" fill="#1877F2"/></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#BD081C"/></svg><span>Pinterest</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" fill="#1DA1F2"/></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--tg" href="https://t.me/share/url?url={{url}}&text={{descr}}"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm5.894 8.221l-1.97 9.28c-.145.658-.537.818-1.084.508l-3-2.21-1.447 1.394c-.16.16-.295.295-.605.295l.213-3.053 5.56-5.04c.242-.213-.052-.333-.373-.121l-6.869 4.326-2.96-.924c-.643-.204-.657-.643.136-.95l11.566-4.458c.537-.196 1.006.128.832.941z" fill="#0088CC"/></svg><span>Telegram</span></a><a class="fancybox-share__button fancybox-share__button--vk" href="https://vk.com/share.php?url={{url}}&title={{descr}}&image={{media}}&noparse=true"><?xml version="1.0"?><svg id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">.st0{fill:#4D76A1;}.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}</style><g><circle class="st0" cx="256" cy="256" r="256"/><path class="st0" d="M512,256"/><path class="st1" d="M246.3,368.3h20.1c0,0,6.1-0.7,9.2-4c2.9-3.1,2.8-8.8,2.8-8.8s-0.4-27,12.1-30.9c12.3-3.9,28.2,26,45,37.6   c12.7,8.7,22.3,6.8,22.3,6.8l44.9-0.6c0,0,23.5-1.4,12.3-19.9c-0.9-1.5-6.5-13.7-33.4-38.6c-28.1-26.1-24.4-21.9,9.5-67.1   c20.7-27.5,28.9-44.3,26.3-51.5c-2.5-6.9-17.6-5-17.6-5l-50.6,0.3c0,0-3.7-0.5-6.5,1.1c-2.7,1.6-4.5,5.4-4.5,5.4s-8,21.3-18.7,39.4   c-22.5,38.2-31.5,40.2-35.2,37.9c-8.6-5.6-6.4-22.2-6.4-34.1c0-37,5.6-52.5-10.9-56.5c-5.5-1.3-9.5-2.2-23.6-2.3   c-18-0.2-33.3,0-42,4.3c-5.7,2.8-10.2,9.1-7.5,9.4c3.3,0.4,10.9,2.1,14.9,7.5c5.2,7,5,22.9,5,22.9s3,43.6-7,49   c-6.8,3.7-16.2-3.9-36.2-38.5c-10.3-17.8-18-37.4-18-37.4s-1.5-3.7-4.2-5.6c-3.3-2.4-7.8-3.1-7.8-3.1l-48,0.3c0,0-7.2,0.2-9.9,3.3   c-2.3,2.8-0.2,8.6-0.2,8.6s37.6,88,80.2,132.3C202,371,246.3,368.3,246.3,368.3L246.3,368.3z M246.3,368.3"/></g></svg><span>ВКонтакте</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" /></p></div>'
1219}
1220    }), o(t).on("click", "[data-fancybox-share]", function() {
1221        var t, e, n = o.fancybox.getInstance();
1222        n && (t = !1 === n.current.opts.hash ? n.current.src : window.location, e = n.current.opts.share.tpl.replace(/\{\{media\}\}/g, "image" === n.current.type ? encodeURIComponent(n.current.src) : "").replace(/\{\{url\}\}/g, encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g, function(t) {
1223            var e = {
1224                "&": "&amp;",
1225                "<": "&lt;",
1226                ">": "&gt;",
1227                '"': "&quot;",
1228                "'": "&#39;",
1229                "/": "&#x2F;",
1230                "`": "&#x60;",
1231                "=": "&#x3D;"
1232            };
1233            return String(t).replace(/[&<>"'`=\/]/g, function(t) {
1234                return e[t]
1235            })
1236        }(t)).replace(/\{\{descr\}\}/g, n.$caption ? encodeURIComponent(n.$caption.text()) : ""), o.fancybox.open({
1237            src: n.translate(n, e),
1238            type: "html",
1239            opts: {
1240                animationEffect: "fade",
1241                animationDuration: 250,
1242                afterLoad: function(t, e) {
1243                    e.$content.find(".fancybox-share__links a").click(function() {
1244                        return window.open(this.href, "Share", "width=550, height=450"), !1
1245                    })
1246                }
1247            }
1248        }))
1249    })
1250}(document, window.jQuery || jQuery),
1251function(a, s, r) {
1252    "use strict";
1253    r.escapeSelector || (r.escapeSelector = function(t) {
1254        return (t + "").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function(t, e) {
1255            return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
1256        })
1257    });
1258    var i = !0,
1259        c = null,
1260        l = null;
1261
1262    function u() {
1263        var t = s.location.hash.substr(1),
1264            e = t.split("-"),
1265            n = 1 < e.length && /^\+?\d+$/.test(e[e.length - 1]) && parseInt(e.pop(-1), 10) || 1;
1266        return n < 1 && (n = 1), {
1267            hash: t,
1268            index: n,
1269            gallery: e.join("-")
1270        }
1271    }
1272
1273    function e(t) {
1274        var e;
1275        "" !== t.gallery && ((e = r("[data-fancybox='" + r.escapeSelector(t.gallery) + "']").eq(t.index - 1)).length || (e = r("#" + r.escapeSelector(t.gallery))), e.length && (i = !1, e.trigger("click")))
1276    }
1277
1278    function d(t) {
1279        var e;
1280        return !!t && ((e = t.current ? t.current.opts : t.opts).hash || (e.$orig ? e.$orig.data("fancybox") : ""))
1281    }
1282    r(function() {
1283        !1 !== r.fancybox.defaults.hash && (r(a).on({
1284            "onInit.fb": function(t, e) {
1285                var n, o;
1286                !1 !== e.group[e.currIndex].opts.hash && (n = u(), (o = d(e)) && n.gallery && o == n.gallery && (e.currIndex = n.index - 1))
1287            },
1288            "beforeShow.fb": function(t, e, n) {
1289                var o;
1290                n && !1 !== n.opts.hash && (o = d(e)) && "" !== o && (s.location.hash.indexOf(o) < 0 && (e.opts.origHash = s.location.hash), c = o + (1 < e.group.length ? "-" + (n.index + 1) : ""), "replaceState" in s.history ? (l && clearTimeout(l), l = setTimeout(function() {
1291                    s.history[i ? "pushState" : "replaceState"]({}, a.title, s.location.pathname + s.location.search + "#" + c), l = null, i = !1
1292                }, 300)) : s.location.hash = c)
1293            },
1294            "beforeClose.fb": function(t, e, n) {
1295                var o, i;
1296                l && clearTimeout(l), !1 !== n.opts.hash && (o = d(e), i = e && e.opts.origHash ? e.opts.origHash : "", o && "" !== o && ("replaceState" in history ? s.history.replaceState({}, a.title, s.location.pathname + s.location.search + i) : (s.location.hash = i, r(s).scrollTop(e.scrollTop).scrollLeft(e.scrollLeft))), c = null)
1297            }
1298        }), r(s).on("hashchange.fb", function() {
1299            var t = u();
1300            r.fancybox.getInstance() ? !c || c === t.gallery + "-" + t.index || 1 === t.index && c == t.gallery || (c = null, r.fancybox.close()) : "" !== t.gallery && e(t)
1301        }), setTimeout(function() {
1302            e(u())
1303        }, 50))
1304    })
1305}(document, window, window.jQuery || jQuery),
1306function(t, e) {
1307    "use strict";
1308    var i = (new Date).getTime();
1309    e(t).on({
1310        "onInit.fb": function(t, o, e) {
1311            o.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(t) {
1312                var e = o.current,
1313                    n = (new Date).getTime();
1314                o.group.length < 1 || !1 === e.opts.wheel || "auto" === e.opts.wheel && "image" !== e.type || (t.preventDefault(), t.stopPropagation(), e.$slide.hasClass("fancybox-animated") || (t = t.originalEvent || t, n - i < 250 || (i = n, o[(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 ? "next" : "previous"]())))
1315            })
1316        }
1317    })
1318}(document, window.jQuery || jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.