PageSourceSearch

https://dogpatchlabs.com/wp-content/themes/dogpatchlabs/assets/js/scripts.js?ver=1.0.18

js dogpatchlabs.com collected 2026-10-02 04:03:34 UTC 144,216 bytes, 4,123 lines download raw bytes

1function getTextWidth(txt) {
2  var $elm = $('<span class="tempforSize">' + txt + "</span>").prependTo(
3      "body"
4    ),
5    elmWidth = $elm.width();
6  return $elm.remove(), elmWidth;
7}
8function centerSelect($elm) {
9  var optionWidth = getTextWidth($elm.children(":selected").html()),
10    emptySpace = $elm.width() - optionWidth;
11  $elm.css("text-indent", emptySpace / 2 - 10);
12}
13!(function($, window, document) {
14  "use strict";
15  function dupOpts(options) {
16    return extend(!0, {}, options || {});
17  }
18  function slice() {
19    var fn = Array.prototype.slice,
20      args = fn.call(arguments, 1);
21    return fn.apply(arguments[0], args);
22  }
23  function isUndefined(value) {
24    return "undefined" == typeof value;
25  }
26  function all(deferreds) {
27    return when.apply($, deferreds);
28  }
29  function resolved(value) {
30    return when().then(function() {
31      return value;
32    });
33  }
34  function distanceInMeter(origin, destination) {
35    var m = Math,
36      pi = m.PI,
37      e = pi * origin.lat() / 180,
38      f = pi * origin.lng() / 180,
39      g = pi * destination.lat() / 180,
40      h = pi * destination.lng() / 180,
41      cos = m.cos,
42      sin = m.sin;
43    return (
44      6371e3 *
45      m.acos(
46        m.min(
47          cos(e) * cos(g) * cos(f) * cos(h) +
48            cos(e) * sin(f) * cos(g) * sin(h) +
49            sin(e) * sin(g),
50          1
51        )
52      )
53    );
54  }
55  function ready(fn) {
56    "loading" != document.readyState
57      ? fn()
58      : document.addEventListener("DOMContentLoaded", fn);
59  }
60  function serialize(obj) {
61    return objectKeys(obj)
62      .map(function(key) {
63        return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
64      })
65      .join("&");
66  }
67  function service(name) {
68    return services[name] || (services[name] = gmElement(name)), services[name];
69  }
70  function gmElement(name) {
71    function F(args) {
72      return cls.apply(this, args);
73    }
74    var cls = gm[name];
75    return (F.prototype = cls.prototype), new F(slice(arguments, 1));
76  }
77  function geocode(request) {
78    var dfd = deferred();
79    return (
80      "string" == typeof request && (request = { address: request }),
81      service("Geocoder").geocode(request, function(results, status) {
82        status === gm.GeocoderStatus.OK
83          ? dfd.resolve(results[0].geometry.location)
84          : dfd.reject();
85      }),
86      dfd
87    );
88  }
89  function foreachStr(str, fn) {
90    str.split(" ").forEach(fn);
91  }
92  function foreach(items, fn) {
93    (isArray(items) ? items : [items]).forEach(fn);
94  }
95  function objectKeys(obj) {
96    return Object.keys(obj);
97  }
98  function objectValues(obj) {
99    return objectKeys(obj).map(function(key) {
100      return obj[key];
101    });
102  }
103  function resolveLatLngBounds(options, fn) {
104    return (
105      (options = dupOpts(options)),
106      options.bounds && (options.bounds = toLatLngBound(options.bounds)),
107      resolved(fn(options))
108    );
109  }
110  function resolveLatLng(options, key, fn) {
111    var dfd = deferred();
112    return (
113      (options = dupOpts(options)),
114      when()
115        .then(function() {
116          var address = options.address;
117          return address
118            ? (delete options.address,
119              geocode(address).then(function(latLng) {
120                options[key] = latLng;
121              }))
122            : void (options[key] = toLatLng(options[key]));
123        })
124        .then(function() {
125          dfd.resolve(fn(options));
126        }),
127      dfd
128    );
129  }
130  function resolveArrayOfLatLng(options, key, fn) {
131    return (
132      (options = dupOpts(options)),
133      (options[key] = (options[key] || []).map(function(item) {
134        return toLatLng(item);
135      })),
136      resolved(fn(options))
137    );
138  }
139  function toLatLng(mixed, convertLiteral) {
140    return isArray(mixed)
141      ? new gm.LatLng(mixed[0], mixed[1])
142      : !convertLiteral || !mixed || mixed instanceof gm.LatLng
143        ? mixed
144        : new gm.LatLng(mixed.lat, mixed.lng);
145  }
146  function toLatLngBound(mixed, convertLiteral) {
147    return isArray(mixed)
148      ? new gm.LatLngBounds(
149          { lat: mixed[2], lng: mixed[3] },
150          { lat: mixed[0], lng: mixed[1] }
151        )
152      : convertLiteral && !mixed.getCenter
153        ? new gm.LatLngBounds(
154            { lat: mixed.south, lng: mixed.west },
155            { lat: mixed.north, lng: mixed.east }
156          )
157        : mixed;
158  }
159  function createOverlayView(map, options) {
160    function OverlayView() {
161      function fromLatLngToDivPixel(latlng) {
162        return self.getProjection().fromLatLngToDivPixel(latlng);
163      }
164      var self = this,
165        listeners = [];
166      GMOverlayView.call(self),
167        self.setMap(map),
168        (self.onAdd = function() {
169          var panes = self.getPanes();
170          panes.overlayMouseTarget.appendChild($div[0]);
171        }),
172        options.position
173          ? ((self.getPosition = function() {
174              return options.position;
175            }),
176            (self.setPosition = function(latlng) {
177              (options.position = latlng), self.draw();
178            }),
179            (self.draw = function() {
180              var ps = fromLatLngToDivPixel(options.position);
181              $div.css({
182                left: ps.x + options.x + "px",
183                top: ps.y + options.y + "px"
184              });
185            }))
186          : ((self.getBounds = function() {
187              return options.bounds;
188            }),
189            (self.setBounds = function(bounds) {
190              (options.bounds = bounds), self.draw();
191            }),
192            (self.draw = function() {
193              var sw = fromLatLngToDivPixel(options.bounds.getSouthWest()),
194                ne = fromLatLngToDivPixel(options.bounds.getNorthEast());
195              $div.css({
196                left: sw.x + options.x + "px",
197                top: ne.y + options.y + "px",
198                width: ne.x - sw.x + options.x + "px",
199                height: sw.y - ne.y + options.y + "px"
200              });
201            })),
202        (self.onRemove = function() {
203          listeners.map(function(handler) {
204            gm.event.removeListener(handler);
205          }),
206            $div.remove(),
207            (self.$ = $div = null);
208        }),
209        (self.$ = $div);
210    }
211    var GMOverlayView = gm.OverlayView,
212      $div = $(document.createElement("div"))
213        .css({ border: "none", borderWidth: 0, position: "absolute" })
214        .append(options.content);
215    return (
216      (options = extend({ x: 0, y: 0 }, options)),
217      options.position
218        ? (options.position = toLatLng(options.position, !0))
219        : options.bounds &&
220          (options.bounds = toLatLngBound(options.bounds, !0)),
221      (OverlayView.prototype = new GMOverlayView()),
222      new OverlayView()
223    );
224  }
225  function getProjection(map) {
226    function Overlay() {
227      var self = this;
228      return (
229        (self.onAdd = self.onRemove = self.draw = function() {}),
230        gm.OverlayView.call(self)
231      );
232    }
233    Overlay.prototype = new gm.OverlayView();
234    var overlay = new Overlay();
235    return overlay.setMap(map), overlay.getProjection();
236  }
237  function ClusterOverlay(cluster, markers, overlay, bounds) {
238    var self = this;
239    (self.cluster = cluster),
240      (self.markers = markers),
241      (self.$ = overlay.$),
242      (self.overlay = overlay),
243      (overlay.getBounds = function() {
244        return gmElement(
245          "LatLngBounds",
246          bounds.getSouthWest(),
247          bounds.getNorthEast()
248        );
249      });
250  }
251  function Cluster(map, options) {
252    function extendsMapBounds() {
253      var circle = gmElement("Circle", {
254        center: map.getCenter(),
255        radius:
256          1.15 *
257          distanceInMeter(map.getCenter(), map.getBounds().getNorthEast())
258      });
259      return circle.getBounds();
260    }
261    function extendsBounds(latLng) {
262      var p = projection.fromLatLngToDivPixel(latLng);
263      return gmElement(
264        "LatLngBounds",
265        projection.fromDivPixelToLatLng(
266          gmElement("Point", p.x - radius, p.y + radius)
267        ),
268        projection.fromDivPixelToLatLng(
269          gmElement("Point", p.x + radius, p.y - radius)
270        )
271      );
272    }
273    function redraw() {
274      var keys,
275        bounds,
276        overlayOptions,
277        hash,
278        currentMarkers,
279        viewHash,
280        zoom = map.getZoom(),
281        currentHashes = {},
282        newOverlays = [],
283        ignore = {};
284      (viewHash = "" + zoom),
285        zoom > 3 &&
286          ((bounds = extendsMapBounds()),
287          foreach(markers, function(marker, index) {
288            bounds.contains(marker.getPosition()) ||
289              ((viewHash += "-" + index),
290              (ignore[index] = !0),
291              marker.getMap() && marker.setMap(null));
292          })),
293        filter &&
294          foreach(markers, function(marker, index) {
295            ignore[index] ||
296              filter(marker) ||
297              ((viewHash += "-" + index),
298              (ignore[index] = !0),
299              marker.getMap() && marker.setMap(null));
300          }),
301        viewHash !== previousViewHash &&
302          ((previousViewHash = viewHash),
303          foreach(markers, function(marker, index) {
304            ignore[index] ||
305              ((keys = [index]),
306              (bounds = extendsBounds(marker.getPosition())),
307              enabled &&
308                foreach(slice(markers, index + 1), function(marker, idx) {
309                  (idx += index + 1),
310                    !ignore[idx] &&
311                      bounds.contains(marker.getPosition()) &&
312                      (keys.push(idx), (ignore[idx] = !0));
313                }),
314              (hash = keys.join("-")),
315              (currentHashes[hash] = !0),
316              overlays[hash] ||
317                ((currentMarkers = keys.map(function(key) {
318                  return markers[key];
319                })),
320                (overlayOptions = options.cb(slice(currentMarkers))),
321                overlayOptions
322                  ? ((bounds = gmElement("LatLngBounds")),
323                    foreach(currentMarkers, function(marker) {
324                      bounds.extend(marker.getPosition()),
325                        marker.getMap() && marker.setMap(null);
326                    }),
327                    (overlayOptions = dupOpts(overlayOptions)),
328                    (overlayOptions.position = bounds.getCenter()),
329                    (overlays[hash] = new ClusterOverlay(
330                      self,
331                      slice(currentMarkers),
332                      createOverlayView(map, overlayOptions),
333                      bounds
334                    )),
335                    newOverlays.push(overlays[hash]))
336                  : foreach(currentMarkers, function(marker) {
337                      marker.getMap() || marker.setMap(map);
338                    })));
339          }),
340          foreach(objectKeys(overlays), function(key) {
341            currentHashes[key] ||
342              (overlays[key].overlay.setMap(null), delete overlays[key]);
343          }),
344          newOverlays.length &&
345            foreach(handlers, function(fn) {
346              fn(newOverlays);
347            }));
348    }
349    function delayRedraw() {
350      clearTimeout(timer), (timer = setTimeout(redraw, 100));
351    }
352    function init() {
353      gm.event.addListener(map, "zoom_changed", delayRedraw),
354        gm.event.addListener(map, "bounds_changed", delayRedraw),
355        redraw();
356    }
357    var timer,
358      igniter,
359      previousViewHash,
360      projection,
361      filter,
362      self = this,
363      markers = [],
364      radius = (options.size || 200) >> 1,
365      enabled = !0,
366      overlays = {},
367      handlers = [];
368    (options = options || {}),
369      (options.markers = options.markers || []),
370      (self._b = function(fn) {
371        fn(objectValues(overlays)), handlers.push(fn);
372      }),
373      (self.markers = function() {
374        return slice(markers);
375      }),
376      (self.groups = function() {
377        return objectValues(overlays);
378      }),
379      (self.enable = function() {
380        enabled || ((enabled = !0), (previousViewHash = ""), delayRedraw());
381      }),
382      (self.disable = function() {
383        enabled && ((enabled = !1), (previousViewHash = ""), delayRedraw());
384      }),
385      (self.add = function(marker) {
386        markers.push(marker), (previousViewHash = ""), delayRedraw();
387      }),
388      (self.remove = function(marker) {
389        (markers = markers.filter(function(item) {
390          return item !== marker;
391        })),
392          (previousViewHash = ""),
393          delayRedraw();
394      }),
395      (self.filter = function(fn) {
396        filter !== fn &&
397          ((filter = fn), (previousViewHash = ""), delayRedraw());
398      }),
399      options.markers.map(function(opts) {
400        (opts.position = toLatLng(opts.position)),
401          markers.push(gmElement("Marker", opts));
402      }),
403      (igniter = setInterval(function() {
404        (projection = getProjection(map)),
405          projection && (clearInterval(igniter), init());
406      }, 10));
407  }
408  function Handler(chain, items) {
409    var self = this;
410    objectKeys(items[0]).forEach(function(name) {
411      self[name] = function() {
412        var results = [],
413          args = slice(arguments);
414        return (
415          items.forEach(function(item) {
416            results.push(item[name].apply(item, args));
417          }),
418          "get" === name ? (results.length > 1 ? results : results[0]) : self
419        );
420      };
421    }),
422      (self.$ = chain);
423  }
424  function Gmap3($container, options) {
425    function context() {
426      return { $: $container, get: self.get };
427    }
428    function attachEvents(events, instances, args, once) {
429      var hasArgs = arguments.length > 3;
430      hasArgs || (once = args),
431        $.each(events, function(eventName, handlers) {
432          foreach(instances, function(instance) {
433            var isClusterOverlay = instance instanceof ClusterOverlay,
434              isDom = isClusterOverlay || instance instanceof gm.OverlayView,
435              eventListener = isDom ? instance.$.get(0) : instance;
436            gm.event[
437              "add" + (isDom ? "Dom" : "") + "Listener" + (once ? "Once" : "")
438            ](eventListener, eventName, function(event) {
439              foreach(handlers, function(handler) {
440                if (isFunction(handler))
441                  if (isClusterOverlay)
442                    handler.call(
443                      context(),
444                      void 0,
445                      instance,
446                      instance.cluster,
447                      event
448                    );
449                  else if (hasArgs) {
450                    var buffer = slice(args);
451                    buffer.unshift(instance),
452                      buffer.push(event),
453                      handler.apply(context(), buffer);
454                  } else handler.call(context(), instance, event);
455              });
456            });
457          });
458        });
459    }
460    function multiple(fn) {
461      return function(options) {
462        if (isArray(options)) {
463          var instances = [],
464            promises = options.map(function(opts) {
465              return fn.call(self, opts).then(function(instance) {
466                instances.push(instance);
467              });
468            });
469          return all(promises).then(function() {
470            return previousResults.push(instances), instances;
471          });
472        }
473        return fn.apply(self, arguments).then(function(instance) {
474          return previousResults.push(instance), instance;
475        });
476      };
477    }
478    function chainToPromise(fn) {
479      return function() {
480        var args = slice(arguments);
481        return (promise = promise.then(function(instance) {
482          return isFunction(args[0])
483            ? when(args[0].call(context(), instance)).then(function(value) {
484                return (args[0] = value), fn.apply(self, args);
485              })
486            : when(fn.apply(self, args));
487        }));
488      };
489    }
490    var map,
491      previousResults = [],
492      promise = when(),
493      self = this;
494    (self.map = chainToPromise(function(options) {
495      return (
496        map ||
497        resolveLatLng(options, "center", function(opts) {
498          return (
499            (map = gmElement("Map", $container.get(0), opts)),
500            previousResults.push(map),
501            map
502          );
503        })
504      );
505    })),
506      foreachStr(
507        "Marker:position Circle:center InfoWindow:position:0 Polyline:path Polygon:paths",
508        function(item) {
509          item = item.split(":");
510          var property = item[1] || "";
511          self[item[0].toLowerCase()] = chainToPromise(
512            multiple(function(options) {
513              return (property.match(/^path/)
514                ? resolveArrayOfLatLng
515                : resolveLatLng)(options, property, function(opts) {
516                return (
517                  "0" !== item[2] && (opts.map = map), gmElement(item[0], opts)
518                );
519              });
520            })
521          );
522        }
523      ),
524      foreachStr("TrafficLayer TransitLayer BicyclingLayer", function(item) {
525        self[item.toLowerCase()] = chainToPromise(function() {
526          var instance = gmElement(item);
527          return previousResults.push(instance), instance.setMap(ma
527p), instance;
528        });
529      }),
530      (self.kmllayer = chainToPromise(
531        multiple(function(options) {
532          return (
533            (options = dupOpts(options)),
534            (options.map = map),
535            when(gmElement("KmlLayer", options))
536          );
537        })
538      )),
539      (self.rectangle = chainToPromise(
540        multiple(function(options) {
541          return resolveLatLngBounds(options, function(opts) {
542            return (opts.map = map), gmElement("Rectangle", opts);
543          });
544        })
545      )),
546      (self.overlay = chainToPromise(
547        multiple(function(options) {
548          function fn(opts) {
549            return createOverlayView(map, opts);
550          }
551          return (
552            (options = dupOpts(options)),
553            options.bounds
554              ? resolveLatLngBounds(options, fn)
555              : resolveLatLng(options, "position", fn)
556          );
557        })
558      )),
559      (self.groundoverlay = chainToPromise(function(url, bounds, options) {
560        return resolveLatLngBounds({ bounds: bounds }, function(opts) {
561          (options = dupOpts(options)), (options.map = map);
562          var instance = gmElement("GroundOverlay", url, opts.bounds, options);
563          return previousResults.push(instance), instance;
564        });
565      })),
566      (self.styledmaptype = chainToPromise(function(styleId, styles, options) {
567        var instance = gmElement("StyledMapType", styles, options);
568        return (
569          previousResults.push(instance),
570          map.mapTypes.set(styleId, instance),
571          instance
572        );
573      })),
574      (self.streetviewpanorama = chainToPromise(function(container, options) {
575        return resolveLatLng(options, "position", function(opts) {
576          var instance = gmElement(
577            "StreetViewPanorama",
578            $(container).get(0),
579            opts
580          );
581          return (
582            map.setStreetView(instance),
583            previousResults.push(instance),
584            instance
585          );
586        });
587      })),
588      (self.route = chainToPromise(function(options) {
589        var dfd = deferred();
590        return (
591          (options = dupOpts(options)),
592          (options.origin = toLatLng(options.origin)),
593          (options.destination = toLatLng(options.destination)),
594          service("DirectionsService").route(options, function(
595            results,
596            status
597          ) {
598            previousResults.push(results),
599              dfd.resolve(status === gm.DirectionsStatus.OK && results);
600          }),
601          dfd
602        );
603      })),
604      (self.cluster = chainToPromise(function(options) {
605        var cluster = new Cluster(map, dupOpts(options));
606        return previousResults.push(cluster), resolved(cluster);
607      })),
608      (self.directionsrenderer = chainToPromise(function(options) {
609        var instance;
610        return (
611          options &&
612            ((options = dupOpts(options)),
613            (options.map = map),
614            options.panel && (options.panel = $(options.panel).get(0)),
615            (instance = gmElement("DirectionsRenderer", options))),
616          previousResults.push(instance),
617          instance
618        );
619      })),
620      (self.latlng = chainToPromise(
621        multiple(function(options) {
622          return resolveLatLng(options, "latlng", function(opts) {
623            return previousResults.push(opts.latlng), opts.latlng;
624          });
625        })
626      )),
627      (self.fit = chainToPromise(function() {
628        var bounds = gmElement("LatLngBounds");
629        return (
630          foreach(previousResults, function(instances) {
631            instances !== map &&
632              foreach(instances, function(instance) {
633                instance &&
634                  (instance.getPosition && instance.getPosition()
635                    ? bounds.extend(instance.getPosition())
636                    : instance.getBounds && instance.getBounds()
637                      ? (bounds.extend(instance.getBounds().getNorthEast()),
638                        bounds.extend(instance.getBounds().getSouthWest
638()))
639                      : instance.getPaths && instance.getPaths()
640                        ? foreach(instance.getPaths().getArray(), function(
641                            path
642                          ) {
643                            foreach(path.getArray(), function(latLng) {
644                              bounds.extend(latLng);
645                            });
646                          })
647                        : instance.getPath && instance.getPath()
648                          ? foreach(instance.getPath().getArray(), function(
649                              latLng
650                            ) {
651                              bounds.extend(latLng);
652                            })
653                          : instance.getCenter &&
654                            instance.getCenter() &&
655                            bounds.extend(instance.getCenter()));
656              });
657          }),
658          bounds.isEmpty() || map.fitBounds(bounds),
659          !0
660        );
661      })),
662      (self.wait = function(duration) {
663        promise = promise.then(function(instance) {
664          var dfd = deferred();
665          return (
666            setTimeout(function() {
667              dfd.resolve(instance);
668            }, duration),
669            dfd
670          );
671        });
672      }),
673      (self.then = function(fn) {
674        isFunction(fn) &&
675          (promise = promise.then(function(instance) {
676            return when(fn.call(context(), instance)).then(function(
677              newInstance
678            ) {
679              return isUndefined(newInstance) ? instance : newInstance;
680            });
681          }));
682      }),
683      foreachStr("on once", function(name, once) {
684        self[name] = function() {
685          var events = arguments[0];
686          events &&
687            ("string" == typeof events &&
688              ((events = {}), (events[arguments[0]] = slice(arguments, 1))),
689            promise.then(function(instances) {
690              if (instances) {
691                if (instances instanceof Cluster)
692                  return (
693                    instances._b(function(items) {
694                      items &&
695                        items.length &&
696                        attachEvents(events, items, once);
697                    }),
698                    attachEvents(
699                      events,
700                      instances.markers(),
701                      [void 0, instances],
702                      once
703                    )
704                  );
705                attachEvents(events, instances, once);
706              }
707            }));
708        };
709      }),
710      (self.get = function(index) {
711        return isUndefined(index)
712          ? previousResults.map(function(instance) {
713              return isArray(instance) ? instance.slice() : instance;
714            })
715          : (index < 0 && (index = previousResults.length + index),
716            isArray(previousResults[index])
717              ? previousResults[index].slice()
718              : previousResults[index]);
719      }),
720      options && self.map(options);
721  }
722  var gm,
723    loadOptions,
724    services = {},
725    when = $.when,
726    extend = $.extend,
727    isArray = $.isArray,
728    isFunction = $.isFunction,
729    deferred = $.Deferred;
730  (function() {
731    var script,
732      dfd = deferred(),
733      cbName = "__gmap3";
734    return (
735      $.holdReady(!0),
736      ready(function() {
737        (window.google && window.google.maps) || loadOptions === !1
738          ? dfd.resolve()
739          : ((window[cbName] = function() {
740              delete window[cbName], dfd.resolve();
741            }),
742            (script = document.createElement("script")),
743            (script.type = "text/javascript"),
744            (script.src =
745              "https://maps.googleapis.com/maps/api/js?callback=" +
746              cbName +
747              (loadOptions
748                ? "&" +
749                  ("string" == typeof loadOptions
750                    ? loadOptions
751                    : serialize(loadOptions))
752                : "")),
753            $("head").append(script));
754      }),
755      dfd.promise()
756    );
757  })().then(function() {
758    $.holdReady(!1);
759  }),
760    ($.gmap3 = function(options) {
761      loadOptions = options;
762    }),
763    ($.fn.gmap3 = function(options) {
764      var items = [];
765      return (
766        (gm = window.google.maps),
767        this.each(function() {
768          var $this = $(this),
769            gmap3 = $this.data("gmap3");
770          gmap3 ||
771            ((gmap3 = new Gmap3($this, options)), $this.data("gmap3", gmap3)),
772            items.push(gmap3);
773        }),
774        new Handler(this, items)
775      );
776    });
777})(jQuery, window, document),
778  !(function(a, b) {
779    function c(b) {
780      var c,
781        d = a("<div></div>").css({ width: "100%" });
782      return b.append(d), (c = b.width() - d.width()), d.remove(), c;
783    }
784    function d(e, f) {
785      var g = e.getBoundingClientRect(),
786        h = g.top,
787        i = g.bottom,
788        j = g.left,
789        k = g.right,
790        l = a.extend({ tolerance: 0, viewport: b }, f),
791        m = !1,
792        n = l.viewport.jquery ? l.viewport : a(l.viewport);
793      n.length ||
794        (console.warn(
795          "isInViewport: The viewport selector you have provided matches no element on page."
796        ),
797        console.warn("isInViewport: Defaulting to viewport as window"),
798        (n = a(b)));
799      var o = n.height(),
800        p = n.width(),
801        q = n[0].toString();
802      if (n[0] !== b && "[object Window]" !== q && "[object DOMWindow]" !== q) {
803        var r = n[0].getBoundingClientRect();
804        (h -= r.top),
805          (i -= r.top),
806          (j -= r.left),
807          (k -= r.left),
808          (d.scrollBarWidth = d.scrollBarWidth || c(n)),
809          (p -= d.scrollBarWidth);
810      }
811      return (
812        (l.tolerance = ~~Math.round(parseFloat(l.tolerance))),
813        l.tolerance < 0 && (l.tolerance = o + l.tolerance),
814        0 >= k || j >= p
815          ? m
816          : (m = l.tolerance
817              ? h <= l.tolerance && i >= l.tolerance
818              : i > 0 && o >= h)
819      );
820    }
821    String.prototype.hasOwnProperty("trim") ||
822      (String.prototype.trim = function() {
823        return this.replace(/^\s*(.*?)\s*$/, "$1");
824      });
825    var e = function(b) {
826      if (
827        (1 === arguments.length && "function" == typeof b && (b = [b]),
828        !(b instanceof Array))
829      )
830        throw new SyntaxError(
831          "isInViewport: Argument(s) passed to .do/.run should be a function or an array of functions"
832        );
833      for (var c = 0; c < b.length; c++)
834        if ("function" == typeof b[c])
835          for (var d = 0; d < this.length; d++) b[c].call(a(this[d]));
836        else
837          console.warn(
838            "isInViewport: Argument(s) passed to .do/.run should be a function or an array of functions"
839          ),
840            console.warn(
841              "isInViewport: Ignoring non-function values in array and moving on"
842            );
843      return this;
844    };
845    (a.fn["do"] = function(a) {
846      return (
847        console.warn(
848          "isInViewport: .do is deprecated as it causes issues in IE and some browsers since it's a reserved word. Use $.fn.run instead i.e., $(el).run(fn)."
849        ),
850        e(a)
851      );
852    }),
853      (a.fn.run = e);
854    var f = function(b) {
855      if (b) {
856        var c = b.split(",");
857        return (
858          1 === c.length && isNaN(c[0]) && ((c[1] = c[0]), (c[0] = void 0)),
859          {
860            tolerance: c[0] ? c[0].trim() : void 0,
861            viewport: c[1] ? a(c[1].trim()) : void 0
862          }
863        );
864      }
865      return {};
866    };
867    a.extend(a.expr[":"], {
868      "in-viewport": a.expr.createPseudo
869        ? a.expr.createPseudo(function(a) {
870            return function(b) {
871              return d(b, f(a));
872            };
873          })
874        : function(a, b, c) {
875            return d(a, f(c[3]));
876          }
877    }),
878      (a.fn.isInViewport = function(a) {
879        return this.filter(function(b, c) {
880          return d(c, a);
881        });
882      });
883  })(jQuery, window),
884  !(function(root, factory) {
885    "function" == typeof define && define.amd
886      ? define(["jquery"], factory)
887      : factory("object" == typeof exports ? require("jquery") : root.jQuery);
888  })(this, function($) {
889    "use strict";
890    function parseOptions(str) {
891      var delimiterIndex,
892        option,
893        prop,
894        val,
895        arr,
896        len,
897        i,
898        obj = {};
899      for (
900        arr = str
901          .replace(/\s*:\s*/g, ":")
902          .replace(/\s*,\s*/g, ",")
903          .split(","),
904          i = 0,
905          len = arr.length;
906        i < len &&
907        ((option = arr[i]),
908        option.search(/^(http|https|ftp):\/\//) === -1 &&
909          option.search(":") !== -1);
910        i++
911      )
912        (delimiterIndex = option.indexOf(":")),
913          (prop = option.substring(0, delimiterIndex)),
914          (val = option.substring(delimiterIndex + 1)),
915          val || (val = void 0),
916          "string" == typeof val &&
917            (val = "true" === val || ("false" !== val && val)),
918          "string" == typeof val && (val = isNaN(val) ? val : +val),
919          (obj[prop] = val);
920      return null == prop && null == val ? str : obj;
921    }
922    function parsePosition(str) {
923      str = "" + str;
924      var len,
925        arg,
926        i,
927        args = str.split(/\s+/),
928        x = "50%",
929        y = "50%";
930      for (i = 0, len = args.length; i < len; i++)
931        (arg = args[i]),
932          "left" === arg
933            ? (x = "0%")
934            : "right" === arg
935              ? (x = "100%")
936              : "top" === arg
937                ? (y = "0%")
938                : "bottom" === arg
939                  ? (y = "100%")
940                  : "center" === arg
941                    ? 0 === i ? (x = "50%") : (y = "50%")
942                    : 0 === i ? (x = arg) : (y = arg);
943      return { x: x, y: y };
944    }
945    function findPoster(path, callback) {
946      var onLoad = function() {
947        callback(this.src);
948      };
949      $('<img src="' + path + '.gif">').load(onLoad),
950        $('<img src="' + path + '.jpg">').load(onLoad),
951        $('<img src="' + path + '.jpeg">').load(onLoad),
952        $('<img src="' + path + '.png">').load(onLoad);
953    }
954    function Vide(element, path, options) {
955      if (
956        ((this.$element = $(element)),
957        "string" == typeof path && (path = parseOptions(path)),
958        options
959          ? "string" == typeof options && (options = parseOptions(options))
960          : (options = {}),
961        "string" == typeof path)
962      )
963        path = path.replace(/\.\w*$/, "");
964      else if ("object" == typeof path)
965        for (var i in path)
966          path.hasOwnProperty(i) && (path[i] = path[i].replace(/\.\w*$/, ""));
967      (this.settings = $.extend({}, DEFAULTS, options)), (this.path = path);
968      try {
969        this.init();
970      } catch (e) {
971        if (e.message !== NOT_IMPLEMENTED_MSG) throw e;
972      }
973    }
974    var PLUGIN_NAME = "vide",
975      DEFAULTS = {
976        volume: 1,
977        playbackRate: 1,
978        muted: !0,
979        loop: !0,
980        autoplay: !0,
981        position: "50% 50%",
982        posterType: "detect",
983        resizing: !0,
984        bgColor: "transparent",
985        className: ""
986      },
987      NOT_IMPLEMENTED_MSG = "Not implemented";
988    (Vide.prototype.init = function() {
989      var $video,
990        $wrapper,
991        vide = this,
992        path = vide.path,
993        poster = path,
994        sources = "",
995        $element = vide.$element,
996        settings = vide.settings,
997        position = parsePosition(settings.position),
998        posterType = settings.posterType;
999      ($wrapper = vide.$wrapper = $("<div>")
1000        .addClass(settings.className)
1001        .css({
1002          position: "absolute",
1003          "z-index": -1,
1004          top: 0,
1005          left: 0,
1006          bottom: 0,
1007          right: 0,
1008          overflow: "hidden",
1009          "-webkit-background-size": "cover",
1010          "-moz-background-size": "cover",
1011          "-o-background-size": "cover",
1012          "background-size": "cover",
1013          "background-color": settings.bgColor,
1014          "background-repeat": "no-repeat",
1015          "background-position": position.x + " " + position.y
1016        })),
1017        "object" == typeof path &&
1018          (path.poster
1019            ? (poster = path.poster)
1020            : path.mp4
1021              ? (poster = path.mp4)
1022              : path.webm
1023                ? (poster = path.webm)
1024                : path.ogv && (poster = path.ogv)),
1025        "detect" === posterType
1026          ? findPoster(poster, function(url) {
1027              $wrapper.css("background-image", "url(" + url + ")");
1028            })
1029          : "none" !== posterType &&
1030            $wrapper.css(
1031              "background-image",
1032              "url(" + poster + "." + posterType + ")"
1033            ),
1034        "static" === $element.css("position") &&
1035          $element.css("position", "relative"),
1036        $element.prepend($wrapper),
1037        "object" == typeof path
1038          ? (path.mp4 &&
1039              (sources +=
1040                '<source src="' + path.mp4 + '.mp4" type="video/mp4">'),
1041            path.webm &&
1042              (sources +=
1043                '<source src="' + path.webm + '.webm" type="video/webm">'),
1044            path.ogv &&
1045              (sources +=
1046                '<source src="' + path.ogv + '.ogv" type="video/ogg">'),
1047            ($video = vide.$video = $("<video>" + sources + "</video>")))
1048          : ($video = vide.$video = $(
1049              '<video><source src="' +
1050                path +
1051                '.mp4" type="video/mp4"><source src="' +
1052                path +
1053                '.webm" type="video/webm"><source src="' +
1054                path +
1055                '.ogv" type="video/ogg"></video>'
1056            ));
1057      try {
1058        $video.prop({
1059          autoplay: settings.autoplay,
1060          loop: settings.loop,
1061          volume: settings.volume,
1062          muted: settings.muted,
1063          defaultMuted: settings.muted,
1064          playbackRate: settings.playbackRate,
1065          defaultPlaybackRate: settings.playbackRate
1066        });
1067      } catch (e) {
1068        throw new Error(NOT_IMPLEMENTED_MSG);
1069      }
1070      $video
1071        .css({
1072          margin: "auto",
1073          position: "absolute",
1074          "z-index": -1,
1075          top: position.y,
1076          left: position.x,
1077          "-webkit-transform":
1078            "translate(-" + position.x + ", -" + position.y + ")",
1079          "-ms-transform":
1080            "translate(-" + position.x + ", -" + position.y + ")",
1081          "-moz-transform":
1082            "translate(-" + position.x + ", -" + position.y + ")",
1083          transform: "translate(-" + position.x + ", -" + position.y + ")",
1084          visibility: "hidden",
1085          opacity: 0
1086        })
1087        .one("canplaythrough.vide", function() {
1088          vide.resize();
1089        })
1090        .one("playing.vide", function() {
1091          $video.css({ visibility: "visible", opacity: 1 }),
1092            $wrapper.css("background-image", "none");
1093        }),
1094        $element.on("resize.vide", function() {
1095          settings.resizing && vide.resize();
1096        }),
1097        $wrapper.append($video);
1098    }),
1099      (Vide.prototype.getVideoObject = function() {
1100        return this.$video[0];
1101      }),
1102      (Vide.prototype.resize = function() {
1103        if (this.$video) {
1104          var $wrapper = this.$wrapper,
1105            $video = this.$video,
1106            video = $video[0],
1107            videoHeight = video.videoHeight,
1108            videoWidth = video.videoWidth,
1109            wrapperHeight = $wrapper.height(),
1110            wrapperWidth = $wrapper.width();
1111          wrapperWidth / videoWidth > wrapperHeight / videoHeight
1112            ? $video.css({ width: wrapperWidth + 2, height: "auto" })
1113            : $video.css({ width: "auto", height: wrapperHeight + 2 });
1114        }
1115      }),
1116      (Vide.prototype.destroy = function() {
1117        delete $[PLUGIN_NAME].lookup[this.index],
1118          this.$video && this.$video.off(PLUGIN_NAME),
1119          this.$element.off(PLUGIN_NAME).removeData(PLUGIN_NAME),
1120          this.$wrapper.remove();
1121      }),
1122      ($[PLUGIN_NAME] = { lookup: [] }),
1123      ($.fn[PLUGIN_NAME] = function(path, options) {
1124        var instance;
1125        return (
1126          this.each(function() {
1127            (instance = $.data(this, PLUGIN_NAME)),
1128              instance && instance.destroy(),
1129              (instance = new Vide(this, path, options)),
1130              (instance.index = $[PLUGIN_NAME].lookup.push(instance) - 1),
1131              $.data(this, PLUGIN_NAME, instance);
1132          }),
1133          this
1134        );
1135      }),
1136      $(document).ready(function() {
1137        var $window = $(window);
1138        $window.on("resize.vide", function() {
1139          for (
1140            var instance, len = $[PLUGIN_NAME].lookup.length, i = 0;
1141            i < len;
1142            i++
1143          )
1144            (instance = $[PLUGIN_NAME].lookup[i]),
1145              instance && instance.settings.resizing && instance.resize();
1146        }),
1147          $window.on("unload.vide", function() {
1148            return !1;
1149          }),
1150          $(document)
1151            .find("[data-vide-bg]")
1152            .each(function(i, element) {
1153              var $element = $(element),
1154                options = $element.data("vide-options"),
1155                path = $element.data("vide-bg");
1156              $element[PLUGIN_NAME](path, options);
1157            });
1158      });
1159  }),
1160  !(function(a, b) {
1161    "function" == typeof define && define.amd
1162      ? define(["jquery"], function(c) {
1163          return b(a, c);
1164        })
1165      : "object" == typeof module && "object" == typeof module.exports
1166        ? (module.exports = b(a, require("jquery")))
1167        : (a.lity = b(a, a.jQuery || a.Zepto));
1168  })("undefined" != typeof window ? window : this, function(a, b) {
1169    "use strict";
1170    function c(a) {
1171      var b = C();
1172      return (
1173        O && a.length
1174          ? (a.one(O, b.resolve), setTimeout(b.resolve, 500))
1175          : b.resolve(),
1176        b.promise()
1177      );
1178    }
1179    function d(a, c, d) {
1180      if (1 === arguments.length) return b.extend({}, a);
1181      if ("string" == typeof c) {
1182        if ("undefined" == typeof d)
1183          return "undefined" == typeof a[c] ? null : a[c];
1184        a[c] = d;
1185      } else b.extend(a, c);
1186      return this;
1187    }
1188    function e(a) {
1189      var b = a.indexOf("?");
1190      b > -1 && (a = a.substr(b + 1));
1191      for (
1192        var c,
1193          d = decodeURI(a.split("#")[0]).split("&"),
1194          e = {},
1195          f = 0,
1196          g = d.length;
1197        f < g;
1198        f++
1199      )
1200        d[f] && ((c = d[f].split("=")), (e[c[0]] = c[1]));
1201      return e;
1202    }
1203    function f(a, c) {
1204      if (!c) return a;
1205      if (("string" === b.type(c) && (c = e(c)), a.indexOf("?") > -1)) {
1206        var d = a.split("?");
1207        (a = d.shift()), (c = b.extend({}, e(d[0]), c));
1208      }
1209      return a + "?" + b.param(c);
1210    }
1211    function g(a, b) {
1212      var c = a.indexOf("#");
1213      return -1 === c ? b : (c > 0 && (a = a.substr(c)), b + a);
1214    }
1215    function h(a, b, c, d) {
1216      return (
1217        b && b.element().addClass("lity-iframe"),
1218        c && (a = f(a, c)),
1219        d && (a = g(d, a)),
1220        '<div class="lity-iframe-container"><iframe frameborder="0" allowfullscreen src="' +
1221          a +
1222          '"/></div>'
1223      );
1224    }
1225    function i(a) {
1226      return b('<span class="lity-error"/>').append(a);
1227    }
1228    function j(a, c) {
1229      var d =
1230          (c.opener() && c.opener().data("lity-desc")) ||
1231          "Image with no description",
1232        e = b('<img src="' + a + '" alt="' + d + '"/>'),
1233        f = C(),
1234        g = function() {
1235          f.reject(i("Failed loading image"));
1236        };
1237      return (
1238        e
1239          .on("load", function() {
1240            return 0 === this.naturalWidth ? g() : void f.resolve(e);
1241          })
1242          .on("error", g),
1243        f.promise()
1244      );
1245    }
1246    function k(a, c) {
1247      var d, e, f;
1248      try {
1249        d = b(a);
1250      } catch (a) {
1251        return !1;
1252      }
1253      return (
1254        !!d.length &&
1255        ((e = b('<i style="display:none !important"/>')),
1256        (f = d.hasClass("lity-hide")),
1257        c.element().one("lity:remove", function() {
1258          e.before(d).remove(),
1259            f && !d.closest(".lity-content").length && d.addClass("lity-hide");
1260        }),
1261        d.removeClass("lity-hide").after(e))
1262      );
1263    }
1264    function l(a, b) {
1265      var c = K.exec(a);
1266      return (
1267        !!c &&
1268        h(
1269          "https://www.youtube" +
1270            (c[2] || "") +
1271            ".com/embed/" +
1272            c[4] +
1273            "?autoplay=1",
1274          b,
1275          c[5],
1276          a
1277        )
1278      );
1279    }
1280    function m(a, b) {
1281      var c = L.exec(a);
1282      return (
1283        !!c &&
1284        h("https://player.vimeo.com/video/" + c[3] + "?autoplay=1", b, c[4], a)
1285      );
1286    }
1287    function n(a, b) {
1288      var c = N.exec(a);
1289      return (
1290        !!c &&
1291        (0 !== a.indexOf("http") && (a = "https:" + a),
1292        h(
1293          "https://www.facebook.com/plugins/video.php?href=" +
1294            a +
1295            "&autoplay=1",
1296          b,
1297          c[4],
1298          a
1299        ))
1300      );
1301    }
1302    function o(a, b) {
1303      var c = M.exec(a);
1304      return (
1305        !!c &&
1306        h(
1307          "https://www.google." + c[3] + "/maps?" + c[6],
1308          b,
1309          { output: c[6].indexOf("layer=c") > 0 ? "svembed" : "embed" },
1310          a
1311        )
1312      );
1313    }
1314    function p(a, b) {
1315      return h(a, b);
1316    }
1317    function q() {
1318      return A.documentElement.clientHeight
1319        ? A.documentElement.clientHeight
1320        : Math.round(B.height());
1321    }
1322    function r(a) {
1323      var b = w();
1324      b && (27 === a.keyCode && b.close(), 9 === a.keyCode && s(a, b));
1325    }
1326    function s(a, b) {
1327      var c = b.element().find(H),
1328        d = c.index(A.activeElement);
1329      a.shiftKey && d <= 0
1330        ? (c.get(c.length - 1).focus(), a.preventDefault())
1331        : a.shiftKey ||
1332          d !== c.length - 1 ||
1333          (c.get(0).focus(), a.preventDefault());
1334    }
1335    function t() {
1336      b.each(E, function(a, b) {
1337        b.resize();
1338      });
1339    }
1340    function u(a) {
1341      1 === E.unshift(a) &&
1342        (D.addClass("lity-active"), B.on({ resize: t, keydown: r })),
1343        b("body > *")
1344          .not(a.element())
1345          .addClass("lity-hidden")
1346          .each(function() {
1347            var a = b(this);
1348            void 0 === a.data(G) && a.data(G, a.attr(F) || null);
1349          })
1350          .attr(F, "true");
1351    }
1352    function v(a) {
1353      var c;
1354      a.element().attr(F, "true"),
1355        1 === E.length &&
1356          (D.removeClass("lity-active"), B.off({ resize: t, keydown: r })),
1357        (E = b.grep(E, function(b) {
1358          return a !== b;
1359        })),
1360        (c = E.length ? E[0].element() : b(".lity-hidden")),
1361        c.removeClass("lity-hidden").each(function() {
1362          var a = b(this),
1363            c = a.data(G);
1364          c ? a.attr(F, c) : a.removeAttr(F), a.removeData(G);
1365        });
1366    }
1367    function w() {
1368      return 0 === E.length ? null : E[0];
1369    }
1370    function x(a, c, d, e) {
1371      var f,
1372        g = "inline",
1373        h = b.extend({}, d);
1374      return (
1375        e && h[e]
1376          ? ((f = h[e](a, c)), (g = e))
1377          : (b.each(["inline", "iframe"], function(a, b) {
1378              delete h[b], (h[b] = d[b]);
1379            }),
1380            b.each(h, function(b, d) {
1381              return (
1382                !d ||
1383                !(!d.test || d.test(a, c)) ||
1384                ((f = d(a, c)), !1 !== f ? ((g = b), !1) : void 0)
1385              );
1386            })),
1387        { handler: g, content: f || "" }
1388      );
1389    }
1390    function y(a, e, f, g) {
1391      function h(a) {
1392        (k = b(a).css("max-height", q() + "px")),
1393          j.find(".lity-loader").each(function() {
1394            var a = b(this);
1395            c(a).always(function() {
1396              a.remove();
1397            });
1398          }),
1399          j
1400            .removeClass("lity-loading")
1401            .find(".lity-content")
1402            .empty()
1403            .append(k),
1404          (m = !0),
1405          k.trigger("lity:ready", [l]);
1406      }
1407      var i,
1408        j,
1409        k,
1410        l = this,
1411        m = !1,
1412        n = !1;
1413      (e = b.extend({}, I, e)),
1414        (j = b(e.template)),
1415        (l.element = function() {
1416          return j;
1417        }),
1418        (l.opener = function() {
1419          return f;
1420        }),
1421        (l.content = function() {
1422          return k;
1423        }),
1424        (l.options = b.proxy(d, l, e)),
1425        (l.handlers = b.proxy(d, l, e.handlers)),
1426        (l.resize = function() {
1427          m &&
1428            !n &&
1429            k.css("max-height", q() + "px").trigger("lity:resize", [l]);
1430        }),
1431        (l.close = function() {
1432          if (m && !n) {
1433            (n = !0), v(l);
1434            var a = C();
1435            return (
1436              g && b.contains(j[0], A.activeElement) && g.focus(),
1437              k.trigger("lity:close", [l]),
1438              j.removeClass("lity-opened").addClass("lity-closed"),
1439              c(k.add(j)).always(function() {
1440                k.trigger("lity:remove", [l]),
1441                  j.remove(),
1442                  (j = void 0),
1443                  a.resolve();
1444              }),
1445              a.promise()
1446            );
1447          }
1448        }),
1449        (i = x(a, l, e.handlers, e.handler)),
1450        j
1451          .attr(F, "false")
1452          .addClass("lity-loading lity-opened lity-" + i.handler)
1453          .appendTo("body")
1454          .focus()
1455          .on("click", "[data-lity-close]", function(a) {
1456            b(a.target).is("[data-lity-close]") && l.close();
1457          })
1458          .trigger("lity:open", [l]),
1459        u(l),
1460        b.when(i.content).always(h);
1461    }
1462    function z(a, c, d) {
1463      a.preventDefault
1464        ? (a.preventDefault(),
1465          (d = b(this)),
1466          (a = d.data("lity-target") || d.attr("href") || d.attr("src")))
1467        : (d = b(d));
1468      var e = new y(
1469        a,
1470        b.extend({}, d.data("lity-options") || d.data("lity"), c),
1471        d,
1472        A.activeElement
1473      );
1474      if (!a.preventDefault) return e;
1475    }
1476    var A = a.document,
1477      B = b(a),
1478      C = b.Deferred,
1479      D = b("html"),
1480      E = [],
1481      F = "aria-hidden",
1482      G = "lity-" + F,
1483      H =
1484        'a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])',
1485      I = {
1486        handler: null,
1487        handlers: {
1488          image: j,
1489          inline: k,
1490          youtube: l,
1491          vimeo: m,
1492          googlemaps: o,
1493          facebookvideo: n,
1494          iframe: p
1495        },
1496        template:
1497          '<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>&times;</button></div></div></div>'
1498      },
1499      J = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i,
1500      K = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i,
1501      L = /(vimeo(pro)?\.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/,
1502      M = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i,
1503      N = /(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i,
1504      O = (function() {
1505        var a = A.createElement("div"),
1506          b = {
1507            WebkitTransition: "webkitTransitionEnd",
1508            MozTransition: "transitionend",
1509            OTransition: "oTransitionEnd otransitionend",
1510            transition: "transitionend"
1511          };
1512        for (var c in b) if (void 0 !== a.style[c]) return b[c];
1513        return !1;
1514      })();
1515    return (
1516      (j.test = function(a) {
1517        return J.test(a);
1518      }),
1519      (z.version = "3.0.0-dev"),
1520      (z.options = b.proxy(d, z, I)),
1521      (z.handlers = b.proxy(d, z, I.handlers)),
1522      (z.current = w),
1523      (z.iframe = h),
1524      b(A).on("click.lity", "[data-lity]", z),
1525      z
1526    );
1527  }),
1528  (function(root, factory) {
1529    "function" == typeof define && define.amd
1530      ? define([], factory)
1531      : "object" == typeof exports
1532        ? (module.exports = factory())
1533        : (root.salvattore = factory());
1534  })(this, function() {
1535    window.matchMedia ||
1536      (window.matchMedia = (function() {
1537        "use strict";
1538        var styleMedia = window.styleMedia || window.media;
1539        if (!styleMedia) {
1540          var style = document.createElement("style"),
1541            script = document.getElementsByTagName("script")[0],
1542            info = null;
1543          (style.type = "text/css"),
1544            (style.id = "matchmediajs-test"),
1545            script.parentNode.insertBefore(style, script),
1546            (info =
1547              ("getComputedStyle" in window &&
1548                window.getComputedStyle(style, null)) ||
1549              style.currentStyle),
1550            (styleMedia = {
1551              matchMedium: function(media) {
1552                var text =
1553                  "@media " + media + "{ #matchmediajs-test { width: 1px; } }";
1554                return (
1555                  style.styleSheet
1556                    ? (style.styleSheet.cssText = text)
1557                    : (style.textContent = text),
1558                  "1px" === info.width
1559                );
1560              }
1561            });
1562        }
1563        return function(media) {
1564          return {
1565            matches: styleMedia.matchMedium(media || "all"),
1566            media: media || "all"
1567          };
1568        };
1569      })()),
1570      (function() {
1571        "use strict";
1572        if (window.matchMedia && window.matchMedia("all").addListener)
1573          return !1;
1574        var localMatchMedia = window.matchMedia,
1575          hasMediaQueries = localMatchMedia("only all").matches,
1576          isListening = !1,
1577          timeoutID = 0,
1578          queries = [],
1579          handleChange = function(evt) {
1580            clearTimeout(timeoutID),
1581              (timeoutID = setTimeout(function() {
1582                for (var i = 0, il = queries.length; i < il; i++) {
1583                  var mql = queries[i].mql,
1584                    listeners = queries[i].listeners || [],
1585                    matches = localMatchMedia(mql.media).matches;
1586                  if (matches !== mql.matches) {
1587                    mql.matches = matches;
1588                    for (var j = 0, jl = listeners.length; j < jl; j++)
1589                      listeners[j].call(window, mql);
1590                  }
1591                }
1592              }, 30));
1593          };
1594        window.matchMedia = function(media) {
1595          var mql = localMatchMedia(media),
1596            listeners = [],
1597            index = 0;
1598          return (
1599            (mql.addListener = function(listener) {
1600              hasMediaQueries &&
1601                (isListening ||
1602                  ((isListening = !0),
1603                  window.addEventListener("resize", handleChange, !0)),
1604                0 === index &&
1605                  (index = queries.push({ mql: mql, listeners: listeners })),
1606                listeners.push(listener));
1607            }),
1608            (mql.removeListener = function(listener) {
1609              for (var i = 0, il = listeners.length; i < il; i++)
1610                listeners[i] === listener && listeners.splice(i, 1);
1611            }),
1612            mql
1613          );
1614        };
1615      })(),
1616      (function() {
1617        "use strict";
1618        for (
1619          var lastTime = 0, vendors = ["ms", "moz", "webkit", "o"], x = 0;
1620          x < vendors.length && !window.requestAnimationFrame;
1621          ++x
1622        )
1623          (window.requestAnimationFrame =
1624            window[vendors[x] + "RequestAnimationFrame"]),
1625            (window.cancelAnimationFrame =
1626              window[vendors[x] + "CancelAnimationFrame"] ||
1627              window[vendors[x] + "CancelRequestAnimationFrame"]);
1628        window.requestAnimationFrame ||
1629          (window.requestAnimationFrame = function(callback, element) {
1630            var currTime = new Date().getTime(),
1631              timeToCall = Math.max(0, 16 - (currTime - lastTime)),
1632              id = window.setTimeout(function() {
1633                callback(currTime + timeToCall);
1634              }, timeToCall);
1635            return (lastTime = currTime + timeToCall), id;
1636          }),
1637          window.cancelAnimationFrame ||
1638            (window.cancelAnimationFrame = function(id) {
1639              clearTimeout(id);
1640            });
1641      })(),
1642      "function" != typeof window.CustomEvent &&
1643        !(function() {
1644          "use strict";
1645          function CustomEvent(event, params) {
1646            params = params || { bubbles: !1, cancelable: !1, detail: void 0 };
1647            var evt = document.createEvent("CustomEvent");
1648            return (
1649              evt.initCustomEvent(
1650                event,
1651                params.bubbles,
1652                params.cancelable,
1653                params.detail
1654              ),
1655              evt
1656            );
1657          }
1658          (CustomEvent.prototype = window.Event.prototype),
1659            (window.CustomEvent = CustomEvent);
1660        })();
1661    var salvattore = (function(global, document, undefined) {
1662      "use strict";
1663      var self = {},
1664        grids = [],
1665        mediaRules = [],
1666        mediaQueries = [],
1667        add_to_dataset = function(element, key, value) {
1668          element.dataset
1669            ? (element.dataset[key] = value)
1670            : element.setAttribute("data-" + key, value);
1671        };
1672      return (
1673        (self.obtainGridSettings = function(element) {
1674          var computedStyle = global.getComputedStyle(element, ":before"),
1675            content = computedStyle.getPropertyValue("content").slice(1, -1),
1676            matchResult = content.match(/^\s*(\d+)(?:\s?\.(.+))?\s*$/),
1677            numberOfColumns = 1,
1678            columnClasses = [];
1679          return (
1680            matchResult
1681              ? ((numberOfColumns = matchResult[1]),
1682                (columnClasses = matchResult[2]),
1683                (columnClasses = columnClasses
1684                  ? columnClasses.split(".")
1685                  : ["column"]))
1686              : ((matchResult = content.match(/^\s*\.(.+)\s+(\d+)\s*$/)),
1687                matchResult &&
1688                  ((columnClasses = matchResult[1]),
1689                  (numberOfColumns = matchResult[2]),
1690                  numberOfColumns &&
1691                    (numberOfColumns = numberOfColumns.split(".")))),
1692            { numberOfColumns: numberOfColumns, columnClasses: columnClasses }
1693          );
1694        }),
1695        (self.addColumns = function(grid, items) {
1696          for (
1697            var selector,
1698              settings = self.obtainGridSettings(grid),
1699              numberOfColumns = settings.numberOfColumns,
1700              columnClasses = settings.columnClasses,
1701              columnsItems = new Array(+numberOfColumns),
1702              columnsFragment = document.createDocumentFragment(),
1703              i = numberOfColumns;
1704            0 !== i--;
1705
1706          )
1707            (selector =
1708              "[data-columns] > *:nth-child(" +
1709              numberOfColumns +
1710              "n-" +
1711              i +
1712              ")"),
1713              columnsItems.push(items.querySelectorAll(selector));
1714          columnsItems.forEach(function(rows) {
1715            var column = document.createElement("div"),
1716              rowsFragment = document.createDocumentFragment();
1717            (column.className = columnClasses.join(" ")),
1718              Array.prototype.forEach.call(rows, function(row) {
1719                rowsFragment.appendChild(row);
1720              }),
1721              column.appendChild(rowsFragment),
1722              columnsFragment.appendChild(column);
1723          }),
1724            grid.appendChild(columnsFragment),
1725            add_to_dataset(grid, "columns", numberOfColumns);
1726        }),
1727        (self.removeColumns = function(grid) {
1728          var range = document.createRange();
1729          range.selectNodeContents(grid);
1730          var columns = Array.prototype.filter.call(
1731              range.extractContents().childNodes,
1732              function(node) {
1733                return node instanceof global.HTMLElement;
1734              }
1735            ),
1736            numberOfColumns = columns.length,
1737            numberOfRowsInFirstColumn = columns[0].childNodes.length,
1738            sortedRows = new Array(numberOfRowsInFirstColumn * numberOfColumns);
1739          Array.prototype.forEach.call(columns, function(column, columnIndex) {
1740            Array.prototype.forEach.call(column.children, function(
1741              row,
1742              rowIndex
1743            ) {
1744              sortedRows[rowIndex * numberOfColumns + columnIndex] = row;
1745            });
1746          });
1747          var container = document.createElement("div");
1748          return (
1749            add_to_dataset(container, "columns", 0),
1750            sortedRows
1751              .filter(function(child) {
1752                return !!child;
1753              })
1754              .forEach(function(child) {
1755                container.appendChild(child);
1756              }),
1757            container
1758          );
1759        }),
1760        (self.recreateColumns = function(grid) {
1761          global.requestAnimationFrame(function() {
1762            self.addColumns(grid, self.removeColumns(grid));
1763            var columnsChange = new CustomEvent("columnsChange");
1764            grid.dispatchEvent(columnsChange);
1765          });
1766        }),
1767        (self.mediaQueryChange = function(mql) {
1768          mql.matches &&
1769            Array.prototype.forEach.call(grids, self.recreateColumns);
1770        }),
1771        (self.getCSSRules = function(stylesheet) {
1772          var cssRules;
1773          try {
1774            cssRules = stylesheet.sheet.cssRules || stylesheet.sheet.rules;
1775          } catch (e) {
1776            return [];
1777          }
1778          return cssRules || [];
1779        }),
1780        (self.getStylesheets = function() {
1781          var inlineStyleBlocks = Array.prototype.slice.call(
1782            document.querySelectorAll("style")
1783          );
1784          return (
1785            inlineStyleBlocks.forEach(function(stylesheet, idx) {
1786              "text/css" !== stylesheet.type &&
1787                "" !== stylesheet.type &&
1788                inlineStyleBlocks.splice(idx, 1);
1789            }),
1790            Array.prototype.concat.call(
1791              inlineStyleBlocks,
1792              Array.prototype.slice.call(
1793                document.querySelectorAll("link[rel='stylesheet']")
1794              )
1795            )
1796          );
1797        }),
1798        (self.mediaRuleHasColumnsSelector = function(rules) {
1799          var i, rule;
1800          try {
1801            i = rules.length;
1802          } catch (e) {
1803            i = 0;
1804          }
1805          for (; i--; )
1806            if (
1807              ((rule = rules[i]),
1808              rule.selectorText &&
1809                rule.selectorText.match(/\[data-columns\](.*)::?before$/))
1810            )
1811              return !0;
1812          return !1;
1813        }),
1814        (self.scanMediaQueries = function() {
1815          var newMediaRules = [];
1816          if (global.matchMedia) {
1817            self.getStylesheets().forEach(function(stylesheet) {
1818              Array.prototype.forEach.call(
1819                self.getCSSRules(stylesheet),
1820                function(rule) {
1821                  try {
1822                    rule.media &&
1823                      rule.cssRules &&
1824                      self.mediaRuleHasColumnsSelector(rule.cssRules) &&
1825                      newMediaRules.push(rule);
1826                  } catch (e) {}
1827                }
1828              );
1829            });
1830            var oldRules = mediaRules.filter(function(el) {
1831              return newMediaRules.indexOf(el) === -1;
1832            });
1833            mediaQueries
1834              .filter(function(el) {
1835                return oldRules.indexOf(el.rule) !== -1;
1836              })
1837              .forEach(function(el) {
1838                el.mql.removeListener(self.mediaQueryChange);
1839              }),
1840              (mediaQueries = mediaQueries.filter(function(el) {
1841                return oldRules.indexOf(el.rule) === -1;
1842              })),
1843              newMediaRules
1844                .filter(function(el) {
1845                  return mediaRules.indexOf(el) == -1;
1846                })
1847                .forEach(function(rule) {
1848                  var mql = global.matchMedia(rule.media.mediaText);
1849                  mql.addListener(self.mediaQueryChange),
1850                    mediaQueries.push({ rule: rule, mql: mql });
1851                }),
1852              (mediaRules.length = 0),
1853              (mediaRules = newMediaRules);
1854          }
1855        }),
1856        (self.rescanMediaQueries = function() {
1857          self.scanMediaQueries(),
1858            Array.prototype.forEach.call(grids, self.recreateColumns);
1859        }),
1860        (self.nextElementColumnIndex = function(grid, fragments) {
1861          var child,
1862            currentRowCount,
1863            i,
1864            children = grid.children,
1865            m = children.length,
1866            lowestRowCount = 0,
1867            index = 0;
1868          for (i = 0; i < m; i++)
1869            (child = children[i]),
1870              (currentRowCount =
1871                child.children.length +
1872                (fragments[i].children || fragments[i].childNodes).length),
1873              0 === lowestRowCount && (lowestRowCount = currentRowCount),
1874              currentRowCount < lowestRowCount &&
1875                ((index = i), (lowestRowCount = currentRowCount));
1876          return index;
1877        }),
1878        (self.createFragmentsList = function(quantity) {
1879          for (var fragments = new Array(quantity), i = 0; i !== quantity; )
1880            (fragments[i] = document.createDocumentFragment()), i++;
1881          return fragments;
1882        }),
1883        (self.appendElements = function(grid, elements) {
1884          var columns = grid.children,
1885            numberOfColumns = columns.length,
1886            fragments = self.createFragmentsList(numberOfColumns);
1887          Array.prototype.forEach.call(elements, function(element) {
1888            var columnIndex = self.nextElementColumnIndex(grid, fragments);
1889            fragments[columnIndex].appendChild(element);
1890          }),
1891            Array.prototype.forEach.call(columns, function(column, index) {
1892              column.appendChild(fragments[index]);
1893            });
1894        }),
1895        (self.prependElements = function(grid, elements) {
1896          var columns = grid.children,
1897            numberOfColumns = columns.length,
1898            fragments = self.createFragmentsList(numberOfColumns),
1899            columnIndex = numberOfColumns - 1;
1900          elements.forEach(function(element) {
1901            var fragment = fragments[columnIndex];
1902            fragment.insertBefore(element, fragment.firstChild),
1903              0 === columnIndex
1904                ? (columnIndex = numberOfColumns - 1)
1905                : columnIndex--;
1906          }),
1907            Array.prototype.forEach.call(columns, function(column, index) {
1908              column.insertBefore(fragments[index], column.firstChild);
1909            });
1910          for (
1911            var fragment = document.createDocumentFragment(),
1912              numberOfColumnsToExtract = elements.length % numberOfColumns;
1913            0 !== numberOfColumnsToExtract--;
1914
1915          )
1916            fragment.appendChild(grid.lastChild);
1917          grid.insertBefore(fragment, grid.firstChild);
1918        }),
1919        (self.registerGrid = function(grid) {
1920          if ("none" !== global.getComputedStyle(grid).display) {
1921            var range = document.createRange();
1922            range.selectNodeContents(grid);
1923            var items = document.createElement("div");
1924            items.appendChild(range.extractContents()),
1925              add_to_dataset(items, "columns", 0),
1926              self.addColumns(grid, items),
1927              grids.push(grid);
1928          }
1929        }),
1930        (self.init = function() {
1931          var css = document.createElement("style");
1932          (css.innerHTML =
1933            "[data-columns]::before{display:block;visibility:hidden;position:absolute;font-size:1px;}"),
1934            document.head.appendChild(css);
1935          var gridElements = document.querySelectorAll("[data-columns]");
1936          Array.prototype.forEach.call(gridElements, self.registerGrid),
1937            self.scanMediaQueries();
1938        }),
1939        self.init(),
1940        {
1941          appendElements: self.appendElements,
1942          prependElements: self.prependElements,
1943          registerGrid: self.registerGrid,
1944          recreateColumns: self.recreateColumns,
1945          rescanMediaQueries: self.rescanMediaQueries,
1946          init: self.init,
1947          append_elements: self.appendElements,
1948          prepend_elements: self.prependElements,
1949          register_grid: self.registerGrid,
1950          recreate_columns: self.recreateColumns,
1951          rescan_media_queries: self.rescanMediaQueries
1952        }
1953      );
1954    })(window, window.document);
1955    return salvattore;
1956  }),
1957  !(function(a) {
1958    "use strict";
1959    "function" == typeof define && define.amd
1960      ? define(["jquery"], a)
1961      : "undefined" != typeof exports
1962        ? (module.exports = a(require("jquery")))
1963        : a(jQuery);
1964  })(function(a) {
1965    "use strict";
1966    var b = window.Slick || {};
1967    (b = (function() {
1968      function c(c, d) {
1969        var f,
1970          e = this;
1971        (e.defaults = {
1972          accessibility: !0,
1973          adaptiveHeight: !1,
1974          appendArrows: a(c),
1975          appendDots: a(c),
1976          arrows: !0,
1977          asNavFor: null,
1978          prevArrow:
1979            '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
1980          nextArrow:
1981            '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
1982          autoplay: !1,
1983          autoplaySpeed: 3e3,
1984          centerMode: !1,
1985          centerPadding: "50px",
1986          cssEase: "ease",
1987          customPaging: function(b, c) {
1988            return a(
1989              '<button type="button" data-role="none" role="button" tabindex="0" />'
1990            ).text(c + 1);
1991          },
1992          dots: !1,
1993          dotsClass: "slick-dots",
1994          draggable: !0,
1995          easing: "linear",
1996          edgeFriction: 0.35,
1997          fade: !1,
1998          focusOnSelect: !1,
1999          infinite: !0,
2000          initialSlide: 0,
2001          lazyLoad: "ondemand",
2002          mobileFirst: !1,
2003          pauseOnHover: !0,
2004          pauseOnFocus: !0,
2005          pauseOnDotsHover: !1,
2006          respondTo: "window",
2007          responsive: null,
2008          rows: 1,
2009          rtl: !1,
2010          slide: "",
2011          slidesPerRow: 1,
2012          slidesToShow: 1,
2013          slidesToScroll: 1,
2014          speed: 500,
2015          swipe: !0,
2016          swipeToSlide: !1,
2017          touchMove: !0,
2018          touchThreshold: 5,
2019          useCSS: !0,
2020          useTransform: !0,
2021          variableWidth: !1,
2022          vertical: !1,
2023          verticalSwiping: !1,
2024          waitForAnimate: !0,
2025          zIndex: 1e3
2026        }),
2027          (e.initials = {
2028            animating: !1,
2029            dragging: !1,
2030            autoPlayTimer: null,
2031            currentDirection: 0,
2032            currentLeft: null,
2033            currentSlide: 0,
2034            direction: 1,
2035            $dots: null,
2036            listWidth: null,
2037            listHeight: null,
2038            loadIndex: 0,
2039            $nextArrow: null,
2040            $prevArrow: null,
2041            slideCount: null,
2042            slideWidth: null,
2043            $slideTrack: null,
2044            $slides: null,
2045            sliding: !1,
2046            slideOffset: 0,
2047            swipeLeft: null,
2048            $list: null,
2049            touchObject: {},
2050            transformsEnabled: !1,
2051            unslicked: !1
2052          }),
2053          a.extend(e, e.initials),
2054          (e.activeBreakpoint = null),
2055          (e.animType = null),
2056          (e.animProp = null),
2057          (e.breakpoints = []),
2058          (e.breakpointSettings = []),
2059          (e.cssTransitions = !1),
2060          (e.focussed = !1),
2061          (e.interrupted = !1),
2062          (e.hidden = "hidden"),
2063          (e.paused = !0),
2064          (e.positionProp = null),
2065          (e.respondTo = null),
2066          (e.rowCount = 1),
2067          (e.shouldClick = !0),
2068          (e.$slider = a(c)),
2069          (e.$slidesCache = null),
2070          (e.transformType = null),
2071          (e.transitionType = null),
2072          (e.visibilityChange = "visibilitychange"),
2073          (e.windowWidth = 0),
2074          (e.windowTimer = null),
2075          (f = a(c).data("slick") || {}),
2076          (e.options = a.extend({}, e.defaults, d, f)),
2077          (e.currentSlide = e.options.initialSlide),
2078          (e.originalSettings = e.options),
2079          "undefined" != typeof document.mozHidden
2080            ? ((e.hidden = "mozHidden"),
2081              (e.visibilityChange = "mozvisibilitychange"))
2082            : "undefined" != typeof document.webkitHidden &&
2083              ((e.hidden = "webkitHidden"),
2084              (e.visibilityChange = "webkitvisibilitychange")),
2085          (e.autoPlay = a.proxy(e.autoPlay, e)),
2086          (e.autoPlayClear = a.proxy(e.autoPlayClear, e)),
2087          (e.autoPlayIterator = a.proxy(e.autoPlayIterator, e)),
2088          (e.changeSlide = a.proxy(e.changeSlide, e)),
2089          (e.clickHandler = a.proxy(e.clickHandler, e)),
2090          (e.selectHandler = a.proxy(e.selectHandler, e)),
2091          (e.setPosition = a.proxy(e.setPosition, e)),
2092          (e.swipeHandler = a.proxy(e.swipeHandler, e)),
2093          (e.dragHandler = a.proxy(e.dragHandler, e)),
2094          (e.keyHandler = a.proxy(e.keyHandler, e)),
2095          (e.instanceUid = b++),
2096          (e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/),
2097          e.registerBreakpoints(),
2098          e.init(!0);
2099      }
2100      var b = 0;
2101      return c;
2102    })()),
2103      (b.prototype.activateADA = function() {
2104        var a = this;
2105        a.$slideTrack
2106          .find(".slick-active")
2107          .attr({ "aria-hidden": "false" })
2108          .find("a, input, button, select")
2109          .attr({ tabindex: "0" });
2110      }),
2111      (b.prototype.addSlide = b.prototype.slickAdd = function(b, c, d) {
2112        var e = this;
2113        if ("boolean" == typeof c) (d = c), (c = null);
2114        else if (0 > c || c >= e.slideCount) return !1;
2115        e.unload(),
2116          "number" == typeof c
2117            ? 0 === c && 0 === e.$slides.length
2118              ? a(b).appendTo(e.$slideTrack)
2119              : d
2120                ? a(b).insertBefore(e.$slides.eq(c))
2121                : a(b).insertAfter(e.$slides.eq(c))
2122            : d === !0
2123              ? a(b).prependTo(e.$slideTrack)
2124              : a(b).appendTo(e.$slideTrack),
2125          (e.$slides = e.$slideTrack.children(this.options.slide)),
2126          e.$slideTrack.children(this.options.slide).detach(),
2127          e.$slideTrack.append(e.$slides),
2128          e.$slides.each(function(b, c) {
2129            a(c).attr("data-slick-index", b);
2130          }),
2131          (e.$slidesCache = e.$slides),
2132          e.reinit();
2133      }),
2134      (b.prototype.animateHeight = function() {
2135        var a = this;
2136        if (
2137          1 === a.options.slidesToShow &&
2138          a.options.adaptiveHeight === !0 &&
2139          a.options.vertical === !1
2140        ) {
2141          var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
2142          a.$list.animate({ height: b }, a.options.speed);
2143        }
2144      }),
2145      (b.prototype.animateSlide = function(b, c) {
2146        var d = {},
2147          e = this;
2148        e.animateHeight(),
2149          e.options.rtl === !0 && e.options.vertical === !1 && (b = -b),
2150          e.transformsEnabled === !1
2151            ? e.options.vertical === !1
2152              ? e.$slideTrack.animate(
2153                  { left: b },
2154                  e.options.speed,
2155                  e.options.easing,
2156                  c
2157                )
2158              : e.$slideTrack.animate(
2159                  { top: b },
2160                  e.options.speed,
2161                  e.options.easing,
2162                  c
2163                )
2164            : e.cssTransitions === !1
2165              ? (e.options.rtl === !0 && (e.currentLeft = -e.currentLeft),
2166                a({ animStart: e.currentLeft }).animate(
2167                  { animStart: b },
2168                  {
2169                    duration: e.options.speed,
2170                    easing: e.options.easing,
2171                    step: function(a) {
2172                      (a = Math.ceil(a)),
2173                        e.options.vertical === !1
2174                          ? ((d[e.animType] = "translate(" + a + "px, 0px)"),
2175                            e.$slideTrack.css(d))
2176                          : ((d[e.animType] = "translate(0px," + a + "px)"),
2177                            e.$slideTrack.css(d));
2178                    },
2179                    complete: function() {
2180                      c && c.call();
2181                    }
2182                  }
2183                ))
2184              : (e.applyTransition(),
2185                (b = Math.ceil(b)),
2186                e.options.vertical === !1
2187                  ? (d[e.animType] = "translate3d(" + b + "px, 0px, 0px)")
2188                  : (d[e.animType] = "translate3d(0px," + b + "px, 0px)"),
2189                e.$slideTrack.css(d),
2190                c &&
2191                  setTimeout(function() {
2192                    e.disableTransition(), c.call();
2193                  }, e.options.speed));
2194      }),
2195      (b.prototype.getNavTarget = function() {
2196        var b = this,
2197          c = b.options.asNavFor;
2198        return c && null !== c && (c = a(c).not(b.$slider)), c;
2199      }),
2200      (b.prototype.asNavFor = function(b) {
2201        var c = this,
2202          d = c.getNavTarget();
2203        null !== d &&
2204          "object" == typeof d &&
2205          d.each(function() {
2206            var c = a(this).slick("getSlick");
2207            c.unslicked || c.slideHandler(b, !0);
2208          });
2209      }),
2210      (b.prototype.applyTransition = function(a) {
2211        var b = this,
2212          c = {};
2213        b.options.fade === !1
2214          ? (c[b.transitionType] =
2215              b.transformType +
2216              " " +
2217              b.options.speed +
2218              "ms " +
2219              b.options.cssEase)
2220          : (c[b.transitionType] =
2221              "opacity " + b.options.speed + "ms " + b.options.cssEase),
2222          b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c);
2223      }),
2224      (b.prototype.autoPlay = function() {
2225        var a = this;
2226        a.autoPlayClear(),
2227          a.slideCount > a.options.slidesToShow &&
2228            (a.autoPlayTimer = setInterval(
2229              a.autoPlayIterator,
2230              a.options.autoplaySpeed
2231            ));
2232      }),
2233      (b.prototype.autoPlayClear = function() {
2234        var a = this;
2235        a.autoPlayTimer && clearInterval(a.autoPlayTimer);
2236      }),
2237      (b.prototype.autoPlayIterator = function() {
2238        var a = this,
2239          b = a.currentSlide + a.options.slidesToScroll;
2240        a.paused ||
2241          a.interrupted ||
2242          a.focussed ||
2243          (a.options.infinite === !1 &&
2244            (1 === a.direction && a.currentSlide + 1 === a.slideCount - 1
2245              ? (a.direction = 0)
2246              : 0 === a.direction &&
2247                ((b = a.currentSlide - a.options.slidesToScroll),
2248                a.currentSlide - 1 === 0 && (a.direction = 1))),
2249          a.slideHandler(b));
2250      }),
2251      (b.prototype.buildArrows = function() {
2252        var b = this;
2253        b.options.arrows === !0 &&
2254          ((b.$prevArrow = a(b.options.prevArrow).addClass("slick-arrow")),
2255          (b.$nextArrow = a(b.options.nextArrow).addClass("slick-arrow")),
2256          b.slideCount > b.options.slidesToShow
2257            ? (b.$prevArrow
2258                .removeClass("slick-hidden")
2259                .removeAttr("aria-hidden tabindex"),
2260              b.$nextArrow
2261                .removeClass("slick-hidden")
2262                .removeAttr("aria-hidden tabindex"),
2263              b.htmlExpr.test(b.options.prevArrow) &&
2264                b.$prevArrow.prependTo(b.options.appendArrows),
2265              b.htmlExpr.test(b.options.nextArrow) &&
2266                b.$nextArrow.appendTo(b.options.appendArrows),
2267              b.options.infinite !== !0 &&
2268                b.$prevArrow
2269                  .addClass("slick-disabled")
2270                  .attr("aria-disabled", "true"))
2271            : b.$prevArrow
2272                .add(b.$nextArrow)
2273                .addClass("slick-hidden")
2274                .attr({ "aria-disabled": "true", tabindex: "-1" }));
2275      }),
2276      (b.prototype.buildDots = function() {
2277        var c,
2278          d,
2279          b = this;
2280        if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) {
2281          for (
2282            b.$slider.addClass("slick-dotted"),
2283              d = a("<ul />").addClass(b.options.dotsClass),
2284              c = 0;
2285            c <= b.getDotCount();
2286            c += 1
2287          )
2288            d.append(
2289              a("<li />").append(b.options.customPaging.call(this, b, c))
2290            );
2291          (b.$dots = d.appendTo(b.options.appendDots)),
2292            b.$dots
2293              .find("li")
2294              .first()
2295              .addClass("slick-active")
2296              .attr("aria-hidden", "false");
2297        }
2298      }),
2299      (b.prototype.buildOut = function() {
2300        var b = this;
2301        (b.$slides = b.$slider
2302          .children(b.options.slide + ":not(.slick-cloned)")
2303          .addClass("slick-slide")),
2304          (b.slideCount = b.$slides.length),
2305          b.$slides.each(function(b, c) {
2306            a(c)
2307              .attr("data-slick-index", b)
2308              .data("originalStyling", a(c).attr("style") || "");
2309          }),
2310          b.$slider.addClass("slick-slider"),
2311          (b.$slideTrack =
2312            0 === b.slideCount
2313              ? a('<div class="slick-track"/>').appendTo(b.$slider)
2314              : b.$slides.wrapAll('<div class="slick-track"/>').parent()),
2315          (b.$list = b.$slideTrack
2316            .wrap('<div aria-live="polite" class="slick-list"/>')
2317            .parent()),
2318          b.$slideTrack.css("opacity", 0),
2319          (b.options.centerMode === !0 || b.options.swipeToSlide === !0) &&
2320            (b.options.slidesToScroll = 1),
2321          a("img[data-lazy]", b.$slider)
2322            .not("[src]")
2323            .addClass("slick-loading"),
2324          b.setupInfinite(),
2325          b.buildArrows(),
2326          b.buildDots(),
2327          b.updateDots(),
2328          b.setSlideClasses(
2329            "number" == typeof b.currentSlide ? b.currentSlide : 0
2330          ),
2331          b.options.draggable === !0 && b.$list.addClass("draggable");
2332      }),
2333      (b.prototype.buildRows = function() {
2334        var b,
2335          c,
2336          d,
2337          e,
2338          f,
2339          g,
2340          h,
2341          a = this;
2342        if (
2343          ((e = document.createDocumentFragment()),
2344          (g = a.$slider.children()),
2345          a.options.rows > 1)
2346        ) {
2347          for (
2348            h = a.options.slidesPerRow * a.options.rows,
2349              f = Math.ceil(g.length / h),
2350              b = 0;
2351            f > b;
2352            b++
2353          ) {
2354            var i = document.createElement("div");
2355            for (c = 0; c < a.options.rows; c++) {
2356              var j = document.createElement("div");
2357              for (d = 0; d < a.options.slidesPerRow; d++) {
2358                var k = b * h + (c * a.options.slidesPerRow + d);
2359                g.get(k) && j.appendChild(g.get(k));
2360              }
2361              i.appendChild(j);
2362            }
2363            e.appendChild(i);
2364          }
2365          a.$slider.empty().append(e),
2366            a.$slider
2367              .children()
2368              .children()
2369              .children()
2370              .css({
2371                width: 100 / a.options.slidesPerRow + "%",
2372                display: "inline-block"
2373              });
2374        }
2375      }),
2376      (b.prototype.checkResponsive = function(b, c) {
2377        var e,
2378          f,
2379          g,
2380          d = this,
2381          h = !1,
2382          i = d.$slider.width(),
2383          j = window.innerWidth || a(window).width();
2384        if (
2385          ("window" === d.respondTo
2386            ? (g = j)
2387            : "slider" === d.respondTo
2388              ? (g = i)
2389              : "min" === d.respondTo && (g = Math.min(j, i)),
2390          d.options.responsive &&
2391            d.options.responsive.length &&
2392            null !== d.options.responsive)
2393        ) {
2394          f = null;
2395          for (e in d.breakpoints)
2396            d.breakpoints.hasOwnProperty(e) &&
2397              (d.originalSettings.mobileFirst === !1
2398                ? g < d.breakpoints[e] && (f = d.breakpoints[e])
2399                : g > d.breakpoints[e] && (f = d.breakpoints[e]));
2400          null !== f
2401            ? null !== d.activeBreakpoint
2402              ? (f !== d.activeBreakpoint || c) &&
2403                ((d.activeBreakpoint = f),
2404                "unslick" === d.breakpointSettings[f]
2405                  ? d.unslick(f)
2406                  : ((d.options = a.extend(
2407                      {},
2408                      d.originalSettings,
2409                      d.breakpointSettings[f]
2410                    )),
2411                    b === !0 && (d.currentSlide = d.options.initialSlide),
2412                    d.refresh(b)),
2413                (h = f))
2414              : ((d.activeBreakpoint = f),
2415                "unslick" === d.breakpointSettings[f]
2416                  ? d.unslick(f)
2417                  : ((d.options = a.extend(
2418                      {},
2419                      d.originalSettings,
2420                      d.breakpointSettings[f]
2421                    )),
2422                    b === !0 && (d.currentSlide = d.options.initialSlide),
2423                    d.refresh(b)),
2424                (h = f))
2425            : null !== d.activeBreakpoint &&
2426              ((d.activeBreakpoint = null),
2427              (d.options = d.originalSettings),
2428              b === !0 && (d.currentSlide = d.options.initialSlide),
2429              d.refresh(b),
2430              (h = f)),
2431            b || h === !1 || d.$slider.trigger("breakpoint", [d, h]);
2432        }
2433      }),
2434      (b.prototype.changeSlide = function(b, c) {
2435        var f,
2436          g,
2437          h,
2438          d = this,
2439          e = a(b.currentTarget);
2440        switch ((e.is("a") && b.preventDefault(),
2441        e.is("li") || (e = e.closest("li")),
2442        (h = d.slideCount % d.options.slidesToScroll !== 0),
2443        (f = h
2444          ? 0
2445          : (d.slideCount - d.currentSlide) % d.options.slidesToScroll),
2446        b.data.message)) {
2447          case "previous":
2448            (g =
2449              0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f),
2450              d.slideCount > d.options.slidesToShow &&
2451                d.slideHandler(d.currentSlide - g, !1, c);
2452            break;
2453          case "next":
2454            (g = 0 === f ? d.options.slidesToScroll : f),
2455              d.slideCount > d.options.slidesToShow &&
2456                d.slideHandler(d.currentSlide + g, !1, c);
2457            break;
2458          case "index":
2459            var i =
2460              0 === b.data.index
2461                ? 0
2462                : b.data.index || e.index() * d.options.slidesToScroll;
2463            d.slideHandler(d.checkNavigable(i), !1, c),
2464              e.children().trigger("focus");
2465            break;
2466          default:
2467            return;
2468        }
2469      }),
2470      (b.prototype.checkNavigable = function(a) {
2471        var c,
2472          d,
2473          b = this;
2474        if (((c = b.getNavigableIndexes()), (d = 0), a > c[c.length - 1]))
2475          a = c[c.length - 1];
2476        else
2477          for (var e in c) {
2478            if (a < c[e]) {
2479              a = d;
2480              break;
2481            }
2482            d = c[e];
2483          }
2484        return a;
2485      }),
2486      (b.prototype.cleanUpEvents = function() {
2487        var b = this;
2488        b.options.dots &&
2489          null !== b.$dots &&
2490          a("li", b.$dots)
2491            .off("click.slick", b.changeSlide)
2492            .off("mouseenter.slick", a.proxy(b.interrupt, b, !0))
2493            .off("mouseleave.slick", a.proxy(b.interrupt, b, !1)),
2494          b.$slider.off("focus.slick blur.slick"),
2495          b.options.arrows === !0 &&
2496            b.slideCount > b.options.slidesToShow &&
2497            (b.$prevArrow && b.$prevArrow.off("click.slick", b.changeSlide),
2498            b.$nextArrow && b.$nextArrow.off("click.slick", b.changeSlide)),
2499          b.$list.off("touchstart.slick mousedown.slick", b.swipeHandler),
2500          b.$list.off("touchmove.slick mousemove.slick", b.swipeHandler),
2501          b.$list.off("touchend.slick mouseup.slick", b.swipeHandler),
2502          b.$list.off("touchcancel.slick mouseleave.slick", b.swipeHandler),
2503          b.$list.off("click.slick", b.clickHandler),
2504          a(document).off(b.visibilityChange, b.visibility),
2505          b.cleanUpSlideEvents(),
2506          b.options.accessibility === !0 &&
2507            b.$list.off("keydown.slick", b.keyHandler),
2508          b.options.focusOnSelect === !0 &&
2509            a(b.$slideTrack)
2510              .children()
2511              .off("click.slick", b.selectHandler),
2512          a(window).off(
2513            "orientationchange.slick.slick-" + b.instanceUid,
2514            b.orientationChange
2515          ),
2516          a(window).off("resize.slick.slick-" + b.instanceUid, b.resize),
2517          a("[draggable!=true]", b.$slideTrack).off(
2518            "dragstart",
2519            b.preventDefault
2520          ),
2521          a(window).off("load.slick.slick-" + b.instanceUid, b.setPosition),
2522          a(document).off("ready.slick.slick-" + b.instanceUid, b.setPosition);
2523      }),
2524      (b.prototype.cleanUpSlideEvents = function() {
2525        var b = this;
2526        b.$list.off("mouseenter.slick", a.proxy(b.interrupt, b, !0)),
2527          b.$list.off("mouseleave.slick", a.proxy(b.interrupt, b, !1));
2528      }),
2529      (b.prototype.cleanUpRows = function() {
2530        var b,
2531          a = this;
2532        a.options.rows > 1 &&
2533          ((b = a.$slides.children().children()),
2534          b.removeAttr("style"),
2535          a.$slider.empty().append(b));
2536      }),
2537      (b.prototype.clickHandler = function(a) {
2538        var b = this;
2539        b.shouldClick === !1 &&
2540          (a.stopImmediatePropagation(),
2541          a.stopPropagation(),
2542          a.preventDefault());
2543      }),
2544      (b.prototype.destroy = function(b) {
2545        var c = this;
2546        c.autoPlayClear(),
2547          (c.touchObject = {}),
2548          c.cleanUpEvents(),
2549          a(".slick-cloned", c.$slider).detach(),
2550          c.$dots && c.$dots.remove(),
2551          c.$prevArrow &&
2552            c.$prevArrow.length &&
2553            (c.$prevArrow
2554              .removeClass("slick-disabled slick-arrow slick-hidden")
2555              .removeAttr("aria-hidden aria-disabled tabindex")
2556              .css("display", ""),
2557            c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()),
2558          c.$nextArrow &&
2559            c.$nextArrow.length &&
2560            (c.$nextArrow
2561              .removeClass("slick-disabled slick-arrow slick-hidden")
2562              .removeAttr("aria-hidden aria-disabled tabindex")
2563              .css("display", ""),
2564            c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove()),
2565          c.$slides &&
2566            (c.$slides
2567              .removeClass(
2568                "slick-slide slick-active slick-center slick-visible slick-current"
2569              )
2570              .removeAttr("aria-hidden")
2571              .removeAttr("data-slick-index")
2572              .each(function() {
2573                a(this).attr("style", a(this).data("originalStyling"));
2574              }),
2575            c.$slideTrack.children(this.options.slide).detach(),
2576            c.$slideTrack.detach(),
2577            c.$list.detach(),
2578            c.$slider.append(c.$slides)),
2579          c.cleanUpRows(),
2580          c.$slider.removeClass("slick-slider"),
2581          c.$slider.removeClass("slick-initialized"),
2582          c.$slider.removeClass("slick-dotted"),
2583          (c.unslicked = !0),
2584          b || c.$slider.trigger("destroy", [c]);
2585      }),
2586      (b.prototype.disableTransition = function(a) {
2587        var b = this,
2588          c = {};
2589        (c[b.transitionType] = ""),
2590          b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c);
2591      }),
2592      (b.prototype.fadeSlide = function(a, b) {
2593        var c = this;
2594        c.cssTransitions === !1
2595          ? (c.$slides.eq(a).css({ zIndex: c.options.zIndex }),
2596            c.$slides
2597              .eq(a)
2598              .animate({ opacity: 1 }, c.options.speed, c.options.easing, b))
2599          : (c.applyTransition(a),
2600            c.$slides.eq(a).css({ opacity: 1, zIndex: c.options.zIndex }),
2601            b &&
2602              setTimeout(function() {
2603                c.disableTransition(a), b.call();
2604              }, c.options.speed));
2605      }),
2606      (b.prototype.fadeSlideOut = function(a) {
2607        var b = this;
2608        b.cssTransitions === !1
2609          ? b.$slides
2610              .eq(a)
2611              .animate(
2612                { opacity: 0, zIndex: b.options.zIndex - 2 },
2613                b.options.speed,
2614                b.options.easing
2615              )
2616          : (b.applyTransition(a),
2617            b.$slides.eq(a).css({ opacity: 0, zIndex: b.options.zIndex - 2 }));
2618      }),
2619      (b.prototype.filterSlides = b.prototype.slickFilter = function(a) {
2620        var b = this;
2621        null !== a &&
2622          ((b.$slidesCache = b.$slides),
2623          b.unload(),
2624          b.$slideTrack.children(this.options.slide).detach(),
2625          b.$slidesCache.filter(a).appendTo(b.$slideTrack),
2626          b.reinit());
2627      }),
2628      (b.prototype.focusHandler = function() {
2629        var b = this;
2630        b.$slider
2631          .off("focus.slick blur.slick")
2632          .on("focus.slick blur.slick", "*:not(.slick-arrow)", function(c) {
2633            c.stopImmediatePropagation();
2634            var d = a(this);
2635            setTimeout(function() {
2636              b.options.pauseOnFocus &&
2637                ((b.focussed = d.is(":focus")), b.autoPlay());
2638            }, 0);
2639          });
2640      }),
2641      (b.prototype.getCurrent = b.prototype.slickCurrentSlide = function() {
2642        var a = this;
2643        return a.currentSlide;
2644      }),
2645      (b.prototype.getDotCount = function() {
2646        var a = this,
2647          b = 0,
2648          c = 0,
2649          d = 0;
2650        if (a.options.infinite === !0)
2651          for (; b < a.slideCount; )
2652            ++d,
2653              (b = c + a.options.slidesToScroll),
2654              (c +=
2655                a.options.slidesToScroll <= a.options.slidesToShow
2656                  ? a.options.slidesToScroll
2657                  : a.options.slidesToShow);
2658        else if (a.options.centerMode === !0) d = a.slideCount;
2659        else if (a.options.asNavFor)
2660          for (; b < a.slideCount; )
2661            ++d,
2662              (b = c + a.options.slidesToScroll),
2663              (c +=
2664                a.options.slidesToScroll <= a.options.slidesToShow
2665                  ? a.options.slidesToScroll
2666                  : a.options.slidesToShow);
2667        else
2668          d =
2669            1 +
2670            Math.ceil(
2671              (a.slideCount - a.options.slidesToShow) / a.options.slidesToScroll
2672            );
2673        return d - 1;
2674      }),
2675      (b.prototype.getLeft = function(a) {
2676        var c,
2677          d,
2678          f,
2679          b = this,
2680          e = 0;
2681        return (
2682          (b.slideOffset = 0),
2683          (d = b.$slides.first().outerHeight(!0)),
2684          b.options.infinite === !0
2685            ? (b.slideCount > b.options.slidesToShow &&
2686                ((b.slideOffset = b.slideWidth * b.options.slidesToShow * -1),
2687                (e = d * b.options.slidesToShow * -1)),
2688              b.slideCount % b.options.slidesToScroll !== 0 &&
2689                a + b.options.slidesToScroll > b.slideCount &&
2690                b.slideCount > b.options.slidesToShow &&
2691                (a > b.slideCount
2692                  ? ((b.slideOffset =
2693                      (b.options.slidesToShow - (a - b.slideCount)) *
2694                      b.slideWidth *
2695                      -1),
2696                    (e =
2697                      (b.options.slidesToShow - (a - b.slideCount)) * d * -1))
2698                  : ((b.slideOffset =
2699                      (b.slideCount % b.options.slidesToScroll) *
2700                      b.slideWidth *
2701                      -1),
2702                    (e = (b.slideCount % b.options.slidesToScroll) * d * -1))))
2703            : a + b.options.slidesToShow > b.slideCount &&
2704              ((b.slideOffset =
2705                (a + b.options.slidesToShow - b.slideCount) * b.slideWidth),
2706              (e = (a + b.options.slidesToShow - b.slideCount) * d)),
2707          b.slideCount <= b.options.slidesToShow &&
2708            ((b.slideOffset = 0), (e = 0)),
2709          b.options.centerMode === !0 && b.options.infinite === !0
2710            ? (b.slideOffset +=
2711                b.slideWidth * Math.floor(b.options.slidesToShow / 2) -
2712                b.slideWidth)
2713            : b.options.centerMode === !0 &&
2714              ((b.slideOffset = 0),
2715              (b.slideOffset +=
2716                b.slideWidth * Math.floor(b.options.slidesToShow / 2))),
2717          (c =
2718            b.options.vertical === !1
2719              ? a * b.slideWidth * -1 + b.slideOffset
2720              : a * d * -1 + e),
2721          b.options.variableWidth === !0 &&
2722            ((f =
2723              b.slideCount <= b.options.slidesToShow ||
2724              b.options.infinite === !1
2725                ? b.$slideTrack.children(".slick-slide").eq(a)
2726                : b.$slideTrack
2727                    .children(".slick-slide")
2728                    .eq(a + b.options.slidesToShow)),
2729            (c =
2730              b.options.rtl === !0
2731                ? f[0]
2732                  ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width())
2733                  : 0
2734                : f[0] ? -1 * f[0].offsetLeft : 0),
2735            b.options.centerMode === !0 &&
2736              ((f =
2737                b.slideCount <= b.options.slidesToShow ||
2738                b.options.infinite === !1
2739                  ? b.$slideTrack.children(".slick-slide").eq(a)
2740                  : b.$slideTrack
2741                      .children(".slick-slide")
2742                      .eq(a + b.options.slidesToShow + 1)),
2743              (c =
2744                b.options.rtl === !0
2745                  ? f[0]
2746                    ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width())
2747                    : 0
2748                  : f[0] ? -1 * f[0].offsetLeft : 0),
2749              (c += (b.$list.width() - f.outerWidth()) / 2))),
2750          c
2751        );
2752      }),
2753      (b.prototype.getOption = b.prototype.slickGetOption = function(a) {
2754        var b = this;
2755        return b.options[a];
2756      }),
2757      (b.prototype.getNavigableIndexes = function() {
2758        var e,
2759          a = this,
2760          b = 0,
2761          c = 0,
2762          d = [];
2763        for (
2764          a.options.infinite === !1
2765            ? (e = a.slideCount)
2766            : ((b = -1 * a.options.slidesToScroll),
2767              (c = -1 * a.options.slidesToScroll),
2768              (e = 2 * a.slideCount));
2769          e > b;
2770
2771        )
2772          d.push(b),
2773            (b = c + a.options.slidesToScroll),
2774            (c +=
2775              a.options.slidesToScroll <= a.options.slidesToShow
2776                ? a.options.slidesToScroll
2777                : a.options.slidesToShow);
2778        return d;
2779      }),
2780      (b.prototype.getSlick = function() {
2781        return this;
2782      }),
2783      (b.prototype.getSlideCount = function() {
2784        var c,
2785          d,
2786          e,
2787          b = this;
2788        return (
2789          (e =
2790            b.options.centerMode === !0
2791              ? b.slideWidth * Math.floor(b.options.slidesToShow / 2)
2792              : 0),
2793          b.options.swipeToSlide === !0
2794            ? (b.$slideTrack.find(".slick-slide").each(function(c, f) {
2795                return f.offsetLeft - e + a(f).outerWidth() / 2 >
2796                  -1 * b.swipeLeft
2797                  ? ((d = f), !1)
2798                  : void 0;
2799              }),
2800              (c =
2801                Math.abs(a(d).attr("data-slick-index") - b.currentSlide) || 1))
2802            : b.options.slidesToScroll
2803        );
2804      }),
2805      (b.prototype.goTo = b.prototype.slickGoTo = function(a, b) {
2806        var c = this;
2807        c.changeSlide({ data: { message: "index", index: parseInt(a) } }, b);
2808      }),
2809      (b.prototype.init = function(b) {
2810        var c = this;
2811        a(c.$slider).hasClass("slick-initialized") ||
2812          (a(c.$slider).addClass("slick-initialized"),
2813          c.buildRows(),
2814          c.buildOut(),
2815          c.setProps(),
2816          c.startLoad(),
2817          c.loadSlider(),
2818          c.initializeEvents(),
2819          c.updateArrows(),
2820          c.updateDots(),
2821          c.checkResponsive(!0),
2822          c.focusHandler()),
2823          b && c.$slider.trigger("init", [c]),
2824          c.options.accessibility === !0 && c.initADA(),
2825          c.options.autoplay && ((c.paused = !1), c.autoPlay());
2826      }),
2827      (b.prototype.initADA = function() {
2828        var b = this;
2829        b.$slides
2830          .add(b.$slideTrack.find(".slick-cloned"))
2831          .attr({ "aria-hidden": "true", tabindex: "-1" })
2832          .find("a, input, button, select")
2833          .attr({ tabindex: "-1" }),
2834          b.$slideTrack.attr("role", "listbox"),
2835          b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c) {
2836            a(this).attr({
2837              role: "option",
2838              "aria-describedby": "slick-slide" + b.instanceUid + c
2839            });
2840          }),
2841          null !== b.$dots &&
2842            b.$dots
2843              .attr("role", "tablist")
2844              .find("li")
2845              .each(function(c) {
2846                a(this).attr({
2847                  role: "presentation",
2848                  "aria-selected": "false",
2849                  "aria-controls": "navigation" + b.instanceUid + c,
2850                  id: "slick-slide" + b.instanceUid + c
2851                });
2852              })
2853              .first()
2854              .attr("aria-selected", "true")
2855              .end()
2856              .find("button")
2857              .attr("role", "button")
2858              .end()
2859              .closest("div")
2860              .attr("role", "toolbar"),
2861          b.activateADA();
2862      }),
2863      (b.prototype.initArrowEvents = function() {
2864        var a = this;
2865        a.options.arrows === !0 &&
2866          a.slideCount > a.options.slidesToShow &&
2867          (a.$prevArrow
2868            .off("click.slick")
2869            .on("click.slick", { message: "previous" }, a.changeSlide),
2870          a.$nextArrow
2871            .off("click.slick")
2872            .on("click.slick", { message: "next" }, a.changeSlide));
2873      }),
2874      (b.prototype.initDotEvents = function() {
2875        var b = this;
2876        b.options.dots === !0 &&
2877          b.slideCount > b.options.slidesToShow &&
2878          a("li", b.$dots).on(
2879            "click.slick",
2880            { message: "index" },
2881            b.changeSlide
2882          ),
2883          b.options.dots === !0 &&
2884            b.options.pauseOnDotsHover === !0 &&
2885            a("li", b.$dots)
2886              .on("mouseenter.slick", a.proxy(b.interrupt, b, !0))
2887              .on("mouseleave.slick", a.proxy(b.interrupt, b, !1));
2888      }),
2889      (b.prototype.initSlideEvents = function() {
2890        var b = this;
2891        b.options.pauseOnHover &&
2892          (b.$list.on("mouseenter.slick", a.proxy(b.interrupt, b, !0)),
2893          b.$list.on("mouseleave.slick", a.proxy(b.interrupt, b, !1)));
2894      }),
2895      (b.prototype.initializeEvents = function() {
2896        var b = this;
2897        b.initArrowEvents(),
2898          b.initDotEvents(),
2899          b.initSlideEvents(),
2900          b.$list.on(
2901            "touchstart.slick mousedown.slick",
2902            { action: "start" },
2903            b.swipeHandler
2904          ),
2905          b.$list.on(
2906            "touchmove.slick mousemove.slick",
2907            { action: "move" },
2908            b.swipeHandler
2909          ),
2910          b.$list.on(
2911            "touchend.slick mouseup.slick",
2912            { action: "end" },
2913            b.swipeHandler
2914          ),
2915          b.$list.on(
2916            "touchcancel.slick mouseleave.slick",
2917            { action: "end" },
2918            b.swipeHandler
2919          ),
2920          b.$list.on("click.slick", b.clickHandler),
2921          a(document).on(b.visibilityChange, a.proxy(b.visibility, b)),
2922          b.options.accessibility === !0 &&
2923            b.$list.on("keydown.slick", b.keyHandler),
2924          b.options.focusOnSelect === !0 &&
2925            a(b.$slideTrack)
2926              .children()
2927              .on("click.slick", b.selectHandler),
2928          a(window).on(
2929            "orientationchange.slick.slick-" + b.instanceUid,
2930            a.proxy(b.orientationChange, b)
2931          ),
2932          a(window).on(
2933            "resize.slick.slick-" + b.instanceUid,
2934            a.proxy(b.resize, b)
2935          ),
2936          a("[draggable!=true]", b.$slideTrack).on(
2937            "dragstart",
2938            b.preventDefault
2939          ),
2940          a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition),
2941          a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition);
2942      }),
2943      (b.prototype.initUI = function() {
2944        var a = this;
2945        a.options.arrows === !0 &&
2946          a.slideCount > a.options.slidesToShow &&
2947          (a.$prevArrow.show(), a.$nextArrow.show()),
2948          a.options.dots === !0 &&
2949            a.slideCount > a.options.slidesToShow &&
2950            a.$dots.show();
2951      }),
2952      (b.prototype.keyHandler = function(a) {
2953        var b = this;
2954        a.target.tagName.match("TEXTAREA|INPUT|SELECT") ||
2955          (37 === a.keyCode && b.options.accessibility === !0
2956            ? b.changeSlide({
2957                data: { message: b.options.rtl === !0 ? "next" : "previous" }
2958              })
2959            : 39 === a.keyCode &&
2960              b.options.accessibility === !0 &&
2961              b.changeSlide({
2962                data: { message: b.options.rtl === !0 ? "previous" : "next" }
2963              }));
2964      }),
2965      (b.prototype.lazyLoad = function() {
2966        function g(c) {
2967          a("img[data-lazy]", c).each(function() {
2968            var c = a(this),
2969              d = a(this).attr("data-lazy"),
2970              e = document.createElement("img");
2971            (e.onload = function() {
2972              c.animate({ opacity: 0 }, 100, function() {
2973                c.attr("src", d).animate({ opacity: 1 }, 200, function() {
2974                  c.removeAttr("data-lazy").removeClass("slick-loading");
2975                }),
2976                  b.$slider.trigger("lazyLoaded", [b, c, d]);
2977              });
2978            }),
2979              (e.onerror = function() {
2980                c
2981                  .removeAttr("data-lazy")
2982                  .removeClass("slick-loading")
2983                  .addClass("slick-lazyload-error"),
2984                  b.$slider.trigger("lazyLoadError", [b, c, d]);
2985              }),
2986              (e.src = d);
2987          });
2988        }
2989        var c,
2990          d,
2991          e,
2992          f,
2993          b = this;
2994        b.options.centerMode === !0
2995          ? b.options.infinite === !0
2996            ? ((e = b.currentSlide + (b.options.slidesToShow / 2 + 1)),
2997              (f = e + b.options.slidesToShow + 2))
2998            : ((e = Math.max(
2999                0,
3000                b.currentSlide - (b.options.slidesToShow / 2 + 1)
3001              )),
3002              (f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide))
3003          : ((e = b.options.infinite
3004              ? b.options.slidesToShow + b.currentSlide
3005              : b.currentSlide),
3006            (f = Math.ceil(e + b.options.slidesToShow)),
3007            b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)),
3008          (c = b.$slider.find(".slick-slide").slice(e, f)),
3009          g(c),
3010          b.slideCount <= b.options.slidesToShow
3011            ? ((d = b.$slider.find(".slick-slide")), g(d))
3012            : b.currentSlide >= b.slideCount - b.options.slidesToShow
3013              ? ((d = b.$slider
3014                  .find(".slick-cloned")
3015                  .slice(0, b.options.slidesToShow)),
3016                g(d))
3017              : 0 === b.currentSlide &&
3018                ((d = b.$slider
3019                  .find(".slick-cloned")
3020                  .slice(-1 * b.options.slidesToShow)),
3021                g(d));
3022      }),
3023      (b.prototype.loadSlider = function() {
3024        var a = this;
3025        a.setPosition(),
3026          a.$slideTrack.css({ opacity: 1 }),
3027          a.$slider.removeClass("slick-loading"),
3028          a.initUI(),
3029          "progressive" === a.options.lazyLoad && a.progressiveLazyLoad();
3030      }),
3031      (b.prototype.next = b.prototype.slickNext = function() {
3032        var a = this;
3033        a.changeSlide({ data: { message: "next" } });
3034      }),
3035      (b.prototype.orientationChange = function() {
3036        var a = this;
3037        a.checkResponsive(), a.setPosition();
3038      }),
3039      (b.prototype.pause = b.prototype.slickPause = function() {
3040        var a = this;
3041        a.autoPlayClear(), (a.paused = !0);
3042      }),
3043      (b.prototype.play = b.prototype.slickPlay = function() {
3044        var a = this;
3045        a.autoPlay(),
3046          (a.options.autoplay = !0),
3047          (a.paused = !1),
3048          (a.focussed = !1),
3049          (a.interrupted = !1);
3050      }),
3051      (b.prototype.postSlide = function(a) {
3052        var b = this;
3053        b.unslicked ||
3054          (b.$slider.trigger("afterChange", [b, a]),
3055          (b.animating = !1),
3056          b.setPosition(),
3057          (b.swipeLeft = null),
3058          b.options.autoplay && b.autoPlay(),
3059          b.options.accessibility === !0 && b.initADA());
3060      }),
3061      (b.prototype.prev = b.prototype.slickPrev = function() {
3062        var a = this;
3063        a.changeSlide({ data: { message: "previous" } });
3064      }),
3065      (b.prototype.preventDefault = function(a) {
3066        a.preventDefault();
3067      }),
3068      (b.prototype.progressiveLazyLoad = function(b) {
3069        b = b || 1;
3070        var e,
3071          f,
3072          g,
3073          c = this,
3074          d = a("img[data-lazy]", c.$slider);
3075        d.length
3076          ? ((e = d.first()),
3077            (f = e.attr("data-lazy")),
3078            (g = document.createElement("img")),
3079            (g.onload = function() {
3080              e
3081                .attr("src", f)
3082                .removeAttr("data-lazy")
3083                .removeClass("slick-loading"),
3084                c.options.adaptiveHeight === !0 && c.setPosition(),
3085                c.$slider.trigger("lazyLoaded", [c, e, f]),
3086                c.progressiveLazyLoad();
3087            }),
3088            (g.onerror = function() {
3089              3 > b
3090                ? setTimeout(function() {
3091                    c.progressiveLazyLoad(b + 1);
3092                  }, 500)
3093                : (e
3094                    .removeAttr("data-lazy")
3095                    .removeClass("slick-loading")
3096                    .addClass("slick-lazyload-error"),
3097                  c.$slider.trigger("lazyLoadError", [c, e, f]),
3098                  c.progressiveLazyLoad());
3099            }),
3100            (g.src = f))
3101          : c.$slider.trigger("allImagesLoaded", [c]);
3102      }),
3103      (b.prototype.refresh = function(b) {
3104        var d,
3105          e,
3106          c = this;
3107        (e = c.slideCount - c.options.slidesToShow),
3108          !c.options.infinite && c.currentSlide > e && (c.currentSlide = e),
3109          c.slideCount <= c.options.slidesToShow && (c.currentSlide = 0),
3110          (d = c.currentSlide),
3111          c.destroy(!0),
3112          a.extend(c, c.initials, { currentSlide: d }),
3113          c.init(),
3114          b || c.changeSlide({ data: { message: "index", index: d } }, !1);
3115      }),
3116      (b.prototype.registerBreakpoints = function() {
3117        var c,
3118          d,
3119          e,
3120          b = this,
3121          f = b.options.responsive || null;
3122        if ("array" === a.type(f) && f.length) {
3123          b.respondTo = b.options.respondTo || "window";
3124          for (c in f)
3125            if (
3126              ((e = b.breakpoints.length - 1),
3127              (d = f[c].breakpoint),
3128              f.hasOwnProperty(c))
3129            ) {
3130              for (; e >= 0; )
3131                b.breakpoints[e] &&
3132                  b.breakpoints[e] === d &&
3133                  b.breakpoints.splice(e, 1),
3134                  e--;
3135              b.breakpoints.push(d), (b.breakpointSettings[d] = f[c].settings);
3136            }
3137          b.breakpoints.sort(function(a, c) {
3138            return b.options.mobileFirst ? a - c : c - a;
3139          });
3140        }
3141      }),
3142      (b.prototype.reinit = function() {
3143        var b = this;
3144        (b.$slides = b.$slideTrack
3145          .children(b.options.slide)
3146          .addClass("slick-slide")),
3147          (b.slideCount = b.$slides.length),
3148          b.currentSlide >= b.slideCount &&
3149            0 !== b.currentSlide &&
3150            (b.currentSlide = b.currentSlide - b.options.slidesToScroll),
3151          b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0),
3152          b.registerBreakpoints(),
3153          b.setProps(),
3154          b.setupInfinite(),
3155          b.buildArrows(),
3156          b.updateArrows(),
3157          b.initArrowEvents(),
3158          b.buildDots(),
3159          b.updateDots(),
3160          b.initDotEvents(),
3161          b.cleanUpSlideEvents(),
3162          b.initSlideEvents(),
3163          b.checkResponsive(!1, !0),
3164          b.options.focusOnSelect === !0 &&
3165            a(b.$slideTrack)
3166              .children()
3167              .on("click.slick", b.selectHandler),
3168          b.setSlideClasses(
3169            "number" == typeof b.currentSlide ? b.currentSlide : 0
3170          ),
3171          b.setPosition(),
3172          b.focusHandler(),
3173          (b.paused = !b.options.autoplay),
3174          b.autoPlay(),
3175          b.$slider.trigger("reInit", [b]);
3176      }),
3177      (b.prototype.resize = function() {
3178        var b = this;
3179        a(window).width() !== b.windowWidth &&
3180          (clearTimeout(b.windowDelay),
3181          (b.windowDelay = window.setTimeout(function() {
3182            (b.windowWidth = a(window).width()),
3183              b.checkResponsive(),
3184              b.unslicked || b.setPosition();
3185          }, 50)));
3186      }),
3187      (b.prototype.removeSlide = b.prototype.slickRemove = function(a, b, c) {
3188        var d = this;
3189        return (
3190          "boolean" == typeof a
3191            ? ((b = a), (a = b === !0 ? 0 : d.slideCount - 1))
3192            : (a = b === !0 ? --a : a),
3193          !(d.slideCount < 1 || 0 > a || a > d.slideCount - 1) &&
3194            (d.unload(),
3195            c === !0
3196              ? d.$slideTrack.children().remove()
3197              : d.$slideTrack
3198                  .children(this.options.slide)
3199                  .eq(a)
3200                  .remove(),
3201            (d.$slides = d.$slideTrack.children(this.options.slide)),
3202            d.$slideTrack.children(this.options.slide).detach(),
3203            d.$slideTrack.append(d.$slides),
3204            (d.$slidesCache = d.$slides),
3205            void d.reinit())
3206        );
3207      }),
3208      (b.prototype.setCSS = function(a) {
3209        var d,
3210          e,
3211          b = this,
3212          c = {};
3213        b.options.rtl === !0 && (a = -a),
3214          (d = "left" == b.positionProp ? Math.ceil(a) + "px" : "0px"),
3215          (e = "top" == b.positionProp ? Math.ceil(a) + "px" : "0px"),
3216          (c[b.positionProp] = a),
3217          b.transformsEnabled === !1
3218            ? b.$slideTrack.css(c)
3219            : ((c = {}),
3220              b.cssTransitions === !1
3221                ? ((c[b.animType] = "translate(" + d + ", " + e + ")"),
3222                  b.$slideTrack.css(c))
3223                : ((c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)"),
3224                  b.$slideTrack.css(c)));
3225      }),
3226      (b.prototype.setDimensions = function() {
3227        var a = this;
3228        a.options.vertical === !1
3229          ? a.options.centerMode === !0 &&
3230            a.$list.css({ padding: "0px " + a.options.centerPadding })
3231          : (a.$list.height(
3232              a.$slides.first().outerHeight(!0) * a.options.slidesToShow
3233            ),
3234            a.options.centerMode === !0 &&
3235              a.$list.css({ padding: a.options.centerPadding + " 0px" })),
3236          (a.listWidth = a.$list.width()),
3237          (a.listHeight = a.$list.height()),
3238          a.options.vertical === !1 && a.options.variableWidth === !1
3239            ? ((a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow)),
3240              a.$slideTrack.width(
3241                Math.ceil(
3242                  a.slideWidth * a.$slideTrack.children(".slick-slide").length
3243                )
3244              ))
3245            : a.options.variableWidth === !0
3246              ? a.$slideTrack.width(5e3 * a.slideCount)
3247              : ((a.slideWidth = Math.ceil(a.listWidth)),
3248                a.$slideTrack.height(
3249                  Math.ceil(
3250                    a.$slides.first().outerHeight(!0) *
3251                      a.$slideTrack.children(".slick-slide").length
3252                  )
3253                ));
3254        var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width();
3255        a.options.variableWidth === !1 &&
3256          a.$slideTrack.children(".slick-slide").width(a.slideWidth - b);
3257      }),
3258      (b.prototype.setFade = function() {
3259        var c,
3260          b = this;
3261        b.$slides.each(function(d, e) {
3262          (c = b.slideWidth * d * -1),
3263            b.options.rtl === !0
3264              ? a(e).css({
3265                  position: "relative",
3266                  right: c,
3267                  top: 0,
3268                  zIndex: b.options.zIndex - 2,
3269                  opacity: 0
3270                })
3271              : a(e).css({
3272                  position: "relative",
3273                  left: c,
3274                  top: 0,
3275                  zIndex: b.options.zIndex - 2,
3276                  opacity: 0
3277                });
3278        }),
3279          b.$slides
3280            .eq(b.currentSlide)
3281            .css({ zIndex: b.options.zIndex - 1, opacity: 1 });
3282      }),
3283      (b.prototype.setHeight = function() {
3284        var a = this;
3285        if (
3286          1 === a.options.slidesToShow &&
3287          a.options.adaptiveHeight === !0 &&
3288          a.options.vertical === !1
3289        ) {
3290          var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
3291          a.$list.css("height", b);
3292        }
3293      }),
3294      (b.prototype.setOption = b.prototype.slickSetOption = function() {
3295        var c,
3296          d,
3297          e,
3298          f,
3299          h,
3300          b = this,
3301          g = !1;
3302        if (
3303          ("object" === a.type(arguments[0])
3304            ? ((e = arguments[0]), (g = arguments[1]), (h = "multiple"))
3305            : "string" === a.type(arguments[0]) &&
3306              ((e = arguments[0]),
3307              (f = arguments[1]),
3308              (g = arguments[2]),
3309              "responsive" === arguments[0] && "array" === a.type(arguments[1])
3310                ? (h = "responsive")
3311                : "undefined" != typeof arguments[1] && (h = "single")),
3312          "single" === h)
3313        )
3314          b.options[e] = f;
3315        else if ("multiple" === h)
3316          a.each(e, function(a, c) {
3317            b.options[a] = c;
3318          });
3319        else if ("responsive" === h)
3320          for (d in f)
3321            if ("array" !== a.type(b.options.responsive))
3322              b.options.responsive = [f[d]];
3323            else {
3324              for (c = b.options.responsive.length - 1; c >= 0; )
3325                b.options.responsive[c].breakpoint === f[d].breakpoint &&
3326                  b.options.responsive.splice(c, 1),
3327                  c--;
3328              b.options.responsive.push(f[d]);
3329            }
3330        g && (b.unload(), b.reinit());
3331      }),
3332      (b.prototype.setPosition = function() {
3333        var a = this;
3334        a.setDimensions(),
3335          a.setHeight(),
3336          a.options.fade === !1
3337            ? a.setCSS(a.getLeft(a.currentSlide))
3338            : a.setFade(),
3339          a.$slider.trigger("setPosition", [a]);
3340      }),
3341      (b.prototype.setProps = function() {
3342        var a = this,
3343          b = document.body.style;
3344        (a.positionProp = a.options.vertical === !0 ? "top" : "left"),
3345          "top" === a.positionProp
3346            ? a.$slider.addClass("slick-vertical")
3347            : a.$slider.removeClass("slick-vertical"),
3348          (void 0 !== b.WebkitTransition ||
3349            void 0 !== b.MozTransition ||
3350            void 0 !== b.msTransition) &&
3351            a.options.useCSS === !0 &&
3352            (a.cssTransitions = !0),
3353          a.options.fade &&
3354            ("number" == typeof a.options.zIndex
3355              ? a.options.zIndex < 3 && (a.options.zIndex = 3)
3356              : (a.options.zIndex = a.defaults.zIndex)),
3357          void 0 !== b.OTransform &&
3358            ((a.animType = "OTransform"),
3359            (a.transformType = "-o-transform"),
3360            (a.transitionType = "OTransition"),
3361            void 0 === b.perspectiveProperty &&
3362              void 0 === b.webkitPerspective &&
3363              (a.animType = !1)),
3364          void 0 !== b.MozTransform &&
3365            ((a.animType = "MozTransform"),
3366            (a.transformType = "-moz-transform"),
3367            (a.transitionType = "MozTransition"),
3368            void 0 === b.perspectiveProperty &&
3369              void 0 === b.MozPerspective &&
3370              (a.animType = !1)),
3371          void 0 !== b.webkitTransform &&
3372            ((a.animType = "webkitTransform"),
3373            (a.transformType = "-webkit-transform"),
3374            (a.transitionType = "webkitTransition"),
3375            void 0 === b.perspectiveProperty &&
3376              void 0 === b.webkitPerspective &&
3377              (a.animType = !1)),
3378          void 0 !== b.msTransform &&
3379            ((a.animType = "msTransform"),
3380            (a.transformType = "-ms-transform"),
3381            (a.transitionType = "msTransition"),
3382            void 0 === b.msTransform && (a.animType = !1)),
3383          void 0 !== b.transform &&
3384            a.animType !== !1 &&
3385            ((a.animType = "transform"),
3386            (a.transformType = "transform"),
3387            (a.transitionType = "transition")),
3388          (a.transformsEnabled =
3389            a.options.useTransform && null !== a.animType && a.animType !== !1);
3390      }),
3391      (b.prototype.setSlideClasses = function(a) {
3392        var c,
3393          d,
3394          e,
3395          f,
3396          b = this;
3397        (d = b.$slider
3398          .find(".slick-slide")
3399          .removeClass("slick-active slick-center slick-current")
3400          .attr("aria-hidden", "true")),
3401          b.$slides.eq(a).addClass("slick-current"),
3402          b.options.centerMode === !0
3403            ? ((c = Math.floor(b.options.slidesToShow / 2)),
3404              b.options.infinite === !0 &&
3405                (a >= c && a <= b.slideCount - 1 - c
3406                  ? b.$slides
3407                      .slice(a - c, a + c + 1)
3408                      .addClass("slick-active")
3409                      .attr("aria-hidden", "false")
3410                  : ((e = b.options.slidesToShow + a),
3411                    d
3412                      .slice(e - c + 1, e + c + 2)
3413                      .addClass("slick-active")
3414                      .attr("aria-hidden", "false")),
3415                0 === a
3416                  ? d
3417                      .eq(d.length - 1 - b.options.slidesToShow)
3418                      .addClass("slick-center")
3419                  : a === b.slideCount - 1 &&
3420                    d.eq(b.options.slidesToShow).addClass("slick-center")),
3421              b.$slides.eq(a).addClass("slick-center"))
3422            : a >= 0 && a <= b.slideCount - b.options.slidesToShow
3423              ? b.$slides
3424                  .slice(a, a + b.options.slidesToShow)
3425                  .addClass("slick-active")
3426                  .attr("aria-hidden", "false")
3427              : d.length <= b.options.slidesToShow
3428                ? d.addClass("slick-active").attr("aria-hidden", "false")
3429                : ((f = b.slideCount % b.options.slidesToShow),
3430                  (e =
3431                    b.options.infinite === !0 ? b.options.slidesToShow + a : a),
3432                  b.options.slidesToShow == b.options.slidesToScroll &&
3433                  b.slideCount - a < b.options.slidesToShow
3434                    ? d
3435                        .slice(e - (b.options.slidesToShow - f), e + f)
3436                        .addClass("slick-active")
3437                        .attr("aria-hidden", "false")
3438                    : d
3439                        .slice(e, e + b.options.slidesToShow)
3440                        .addClass("slick-active")
3441                        .attr("aria-hidden", "false")),
3442          "ondemand" === b.options.lazyLoad && b.lazyLoad();
3443      }),
3444      (b.prototype.setupInfinite = function() {
3445        var c,
3446          d,
3447          e,
3448          b = this;
3449        if (
3450          (b.options.fade === !0 && (b.options.centerMode = !1),
3451          b.options.infinite === !0 &&
3452            b.options.fade === !1 &&
3453            ((d = null), b.slideCount > b.options.slidesToShow))
3454        ) {
3455          for (
3456            e =
3457              b.options.centerMode === !0
3458                ? b.options.slidesToShow + 1
3459                : b.options.slidesToShow,
3460              c = b.slideCount;
3461            c > b.slideCount - e;
3462            c -= 1
3463          )
3464            (d = c - 1),
3465              a(b.$slides[d])
3466                .clone(!0)
3467                .attr("id", "")
3468                .attr("data-slick-index", d - b.slideCount)
3469                .prependTo(b.$slideTrack)
3470                .addClass("slick-cloned");
3471          for (c = 0; e > c; c += 1)
3472            (d = c),
3473              a(b.$slides[d])
3474                .clone(!0)
3475                .attr("id", "")
3476                .attr("data-slick-index", d + b.slideCount)
3477                .appendTo(b.$slideTrack)
3478                .addClass("slick-cloned");
3479          b.$slideTrack
3480            .find(".slick-cloned")
3481            .find("[id]")
3482            .each(function() {
3483              a(this).attr("id", "");
3484            });
3485        }
3486      }),
3487      (b.prototype.interrupt = function(a) {
3488        var b = this;
3489        a || b.autoPlay(), (b.interrupted = a);
3490      }),
3491      (b.prototype.selectHandler = function(b) {
3492        var c = this,
3493          d = a(b.target).is(".slick-slide")
3494            ? a(b.target)
3495            : a(b.target).parents(".slick-slide"),
3496          e = parseInt(d.attr("data-slick-index"));
3497        return (
3498          e || (e = 0),
3499          c.slideCount <= c.options.slidesToShow
3500            ? (c.setSlideClasses(e), void c.asNavFor(e))
3501            : void c.slideHandler(e)
3502        );
3503      }),
3504      (b.prototype.slideHandler = function(a, b, c) {
3505        var d,
3506          e,
3507          f,
3508          g,
3509          j,
3510          h = null,
3511          i = this;
3512        return (
3513          (b = b || !1),
3514          (i.animating === !0 && i.options.waitForAnimate === !0) ||
3515          (i.options.fade === !0 && i.currentSlide === a) ||
3516          i.slideCount <= i.options.slidesToShow
3517            ? void 0
3518            : (b === !1 && i.asNavFor(a),
3519              (d = a),
3520              (h = i.getLeft(d)),
3521              (g = i.getLeft(i.currentSlide)),
3522              (i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft),
3523              i.options.infinite === !1 &&
3524              i.options.centerMode === !1 &&
3525              (0 > a || a > i.getDotCount() * i.options.slidesToScroll)
3526                ? void (
3527                    i.options.fade === !1 &&
3528                    ((d = i.currentSlide),
3529                    c !== !0
3530                      ? i.animateSlide(g, function() {
3531                          i.postSlide(d);
3532                        })
3533                      : i.postSlide(d))
3534                  )
3535                : i.options.infinite === !1 &&
3536                  i.options.centerMode === !0 &&
3537                  (0 > a || a > i.slideCount - i.options.slidesToScroll)
3538                  ? void (
3539                      i.options.fade === !1 &&
3540                      ((d = i.currentSlide),
3541                      c !== !0
3542                        ? i.animateSlide(g, function() {
3543                            i.postSlide(d);
3544                          })
3545                        : i.postSlide(d))
3546                    )
3547                  : (i.options.autoplay && clearInterval(i.autoPlayTimer),
3548                    (e =
3549                      0 > d
3550                        ? i.slideCount % i.options.slidesToScroll !== 0
3551                          ? i.slideCount -
3552                            i.slideCount % i.options.slidesToScroll
3553                          : i.slideCount + d
3554                        : d >= i.slideCount
3555                          ? i.slideCount % i.options.slidesToScroll !== 0
3556                            ? 0
3557                            : d - i.slideCount
3558                          : d),
3559                    (i.animating = !0),
3560                    i.$slider.trigger("beforeChange", [i, i.currentSlide, e]),
3561                    (f = i.currentSlide),
3562                    (i.currentSlide = e),
3563                    i.setSlideClasses(i.currentSlide),
3564                    i.options.asNavFor &&
3565                      ((j = i.getNavTarget()),
3566                      (j = j.slick("getSlick")),
3567                      j.slideCount <= j.options.slidesToShow &&
3568                        j.setSlideClasses(i.currentSlide)),
3569                    i.updateDots(),
3570                    i.updateArrows(),
3571                    i.options.fade === !0
3572                      ? (c !== !0
3573                          ? (i.fadeSlideOut(f),
3574                            i.fadeSlide(e, function() {
3575                              i.postSlide(e);
3576                            }))
3577                          : i.postSlide(e),
3578                        void i.animateHeight())
3579                      : void (c !== !0
3580                          ? i.animateSlide(h, function() {
3581                              i.postSlide(e);
3582                            })
3583                          : i.postSlide(e))))
3584        );
3585      }),
3586      (b.prototype.startLoad = function() {
3587        var a = this;
3588        a.options.arrows === !0 &&
3589          a.slideCount > a.options.slidesToShow &&
3590          (a.$prevArrow.hide(), a.$nextArrow.hide()),
3591          a.options.dots === !0 &&
3592            a.slideCount > a.options.slidesToShow &&
3593            a.$dots.hide(),
3594          a.$slider.addClass("slick-loading");
3595      }),
3596      (b.prototype.swipeDirection = function() {
3597        var a,
3598          b,
3599          c,
3600          d,
3601          e = this;
3602        return (
3603          (a = e.touchObject.startX - e.touchObject.curX),
3604          (b = e.touchObject.startY - e.touchObject.curY),
3605          (c = Math.atan2(b, a)),
3606          (d = Math.round(180 * c / Math.PI)),
3607          0 > d && (d = 360 - Math.abs(d)),
3608          45 >= d && d >= 0
3609            ? e.options.rtl === !1 ? "left" : "right"
3610            : 360 >= d && d >= 315
3611              ? e.options.rtl === !1 ? "left" : "right"
3612              : d >= 135 && 225 >= d
3613                ? e.options.rtl === !1 ? "right" : "left"
3614                : e.options.verticalSwiping === !0
3615                  ? d >= 35 && 135 >= d ? "down" : "up"
3616                  : "vertical"
3617        );
3618      }),
3619      (b.prototype.swipeEnd = function(a) {
3620        var c,
3621          d,
3622          b = this;
3623        if (
3624          ((b.dragging = !1),
3625          (b.interrupted = !1),
3626          (b.shouldClick = !(b.touchObject.swipeLength > 10)),
3627          void 0 === b.touchObject.curX)
3628        )
3629          return !1;
3630        if (
3631          (b.touchObject.edgeHit === !0 &&
3632            b.$slider.trigger("edge", [b, b.swipeDirection()]),
3633          b.touchObject.swipeLength >= b.touchObject.minSwipe)
3634        ) {
3635          switch ((d = b.swipeDirection())) {
3636            case "left":
3637            case "down":
3638              (c = b.options.swipeToSlide
3639                ? b.checkNavigable(b.currentSlide + b.getSlideCount())
3640                : b.currentSlide + b.getSlideCount()),
3641                (b.currentDirection = 0);
3642              break;
3643            case "right":
3644            case "up":
3645              (c = b.options.swipeToSlide
3646                ? b.checkNavigable(b.currentSlide - b.getSlideCount())
3647                : b.currentSlide - b.getSlideCount()),
3648                (b.currentDirection = 1);
3649          }
3650          "vertical" != d &&
3651            (b.slideHandler(c),
3652            (b.touchObject = {}),
3653            b.$slider.trigger("swipe", [b, d]));
3654        } else
3655          b.touchObject.startX !== b.touchObject.curX &&
3656            (b.slideHandler(b.currentSlide), (b.touchObject = {}));
3657      }),
3658      (b.prototype.swipeHandler = function(a) {
3659        var b = this;
3660        if (
3661          !(
3662            b.options.swipe === !1 ||
3663            ("ontouchend" in document && b.options.swipe === !1) ||
3664            (b.options.draggable === !1 && -1 !== a.type.indexOf("mouse"))
3665          )
3666        )
3667          switch (((b.touchObject.fingerCount =
3668            a.originalEvent && void 0 !== a.originalEvent.touches
3669              ? a.originalEvent.touches.length
3670              : 1),
3671          (b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold),
3672          b.options.verticalSwiping === !0 &&
3673            (b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold),
3674          a.data.action)) {
3675            case "start":
3676              b.swipeStart(a);
3677              break;
3678            case "move":
3679              b.swipeMove(a);
3680              break;
3681            case "end":
3682              b.swipeEnd(a);
3683          }
3684      }),
3685      (b.prototype.swipeMove = function(a) {
3686        var d,
3687          e,
3688          f,
3689          g,
3690          h,
3691          b = this;
3692        return (
3693          (h = void 0 !== a.originalEvent ? a.originalEvent.touches : null),
3694          !(!b.dragging || (h && 1 !== h.length)) &&
3695            ((d = b.getLeft(b.currentSlide)),
3696            (b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX),
3697            (b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY),
3698            (b.touchObject.swipeLength = Math.round(
3699              Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2))
3700            )),
3701            b.options.verticalSwiping === !0 &&
3702              (b.touchObject.swipeLength = Math.round(
3703                Math.sqrt(
3704                  Math.pow(b.touchObject.curY - b.touchObject.startY, 2)
3705                )
3706              )),
3707            (e = b.swipeDirection()),
3708            "vertical" !== e
3709              ? (void 0 !== a.originalEvent &&
3710                  b.touchObject.swipeLength > 4 &&
3711                  a.preventDefault(),
3712                (g =
3713                  (b.options.rtl === !1 ? 1 : -1) *
3714                  (b.touchObject.curX > b.touchObject.startX ? 1 : -1)),
3715                b.options.verticalSwiping === !0 &&
3716                  (g = b.touchObject.curY > b.touchObject.startY ? 1 : -1),
3717                (f = b.touchObject.swipeLength),
3718                (b.touchObject.edgeHit = !1),
3719                b.options.infinite === !1 &&
3720                  ((0 === b.currentSlide && "right" === e) ||
3721                    (b.currentSlide >= b.getDotCount() && "left" === e)) &&
3722                  ((f = b.touchObject.swipeLength * b.options.edgeFriction),
3723                  (b.touchObject.edgeHit = !0)),
3724                b.options.vertical === !1
3725                  ? (b.swipeLeft = d + f * g)
3726                  : (b.swipeLeft =
3727                      d + f * (b.$list.height() / b.listWidth) * g),
3728                b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g),
3729                b.options.fade !== !0 &&
3730                  b.options.touchMove !== !1 &&
3731                  (b.animating === !0
3732                    ? ((b.swipeLeft = null), !1)
3733                    : void b.setCSS(b.swipeLeft)))
3734              : void 0)
3735        );
3736      }),
3737      (b.prototype.swipeStart = function(a) {
3738        var c,
3739          b = this;
3740        return (
3741          (b.interrupted = !0),
3742          1 !== b.touchObject.fingerCount ||
3743          b.slideCount <= b.options.slidesToShow
3744            ? ((b.touchObject = {}), !1)
3745            : (void 0 !== a.originalEvent &&
3746                void 0 !== a.originalEvent.touches &&
3747                (c = a.originalEvent.touches[0]),
3748              (b.touchObject.startX = b.touchObject.curX =
3749                void 0 !== c ? c.pageX : a.clientX),
3750              (b.touchObject.startY = b.touchObject.curY =
3751                void 0 !== c ? c.pageY : a.clientY),
3752              void (b.dragging = !0))
3753        );
3754      }),
3755      (b.prototype.unfilterSlides = b.prototype.slickUnfilter = function() {
3756        var a = this;
3757        null !== a.$slidesCache &&
3758          (a.unload(),
3759          a.$slideTrack.children(this.options.slide).detach(),
3760          a.$slidesCache.appendTo(a.$slideTrack),
3761          a.reinit());
3762      }),
3763      (b.prototype.unload = function() {
3764        var b = this;
3765        a(".slick-cloned", b.$slider).remove(),
3766          b.$dots && b.$dots.remove(),
3767          b.$prevArrow &&
3768            b.htmlExpr.test(b.options.prevArrow) &&
3769            b.$prevArrow.remove(),
3770          b.$nextArrow &&
3771            b.htmlExpr.test(b.options.nextArrow) &&
3772            b.$nextArrow.remove(),
3773          b.$slides
3774            .removeClass("slick-slide slick-active slick-visible slick-current")
3775            .attr("aria-hidden", "true")
3776            .css("width", "");
3777      }),
3778      (b.prototype.unslick = function(a) {
3779        var b = this;
3780        b.$slider.trigger("unslick", [b, a]), b.destroy();
3781      }),
3782      (b.prototype.updateArrows = function() {
3783        var b,
3784          a = this;
3785        (b = Math.floor(a.options.slidesToShow / 2)),
3786          a.options.arrows === !0 &&
3787            a.slideCount > a.options.slidesToShow &&
3788            !a.options.infinite &&
3789            (a.$prevArrow
3790              .removeClass("slick-disabled")
3791              .attr("aria-disabled", "false"),
3792            a.$nextArrow
3793              .removeClass("slick-disabled")
3794              .attr("aria-disabled", "false"),
3795            0 === a.currentSlide
3796              ? (a.$prevArrow
3797                  .addClass("slick-disabled")
3798                  .attr("aria-disabled", "true"),
3799                a.$nextArrow
3800                  .removeClass("slick-disabled")
3801                  .attr("aria-disabled", "false"))
3802              : a.currentSlide >= a.slideCount - a.options.slidesToShow &&
3803                a.options.centerMode === !1
3804                ? (a.$nextArrow
3805                    .addClass("slick-disabled")
3806                    .attr("aria-disabled", "true"),
3807                  a.$prevArrow
3808                    .removeClass("slick-disabled")
3809                    .attr("aria-disabled", "false"))
3810                : a.currentSlide >= a.slideCount - 1 &&
3811                  a.options.centerMode === !0 &&
3812                  (a.$nextArrow
3813                    .addClass("slick-disabled")
3814                    .attr("aria-disabled", "true"),
3815                  a.$prevArrow
3816                    .removeClass("slick-disabled")
3817                    .attr("aria-disabled", "false")));
3818      }),
3819      (b.prototype.updateDots = function() {
3820        var a = this;
3821        null !== a.$dots &&
3822          (a.$dots
3823            .find("li")
3824            .removeClass("slick-active")
3825            .attr("aria-hidden", "true"),
3826          a.$dots
3827            .find("li")
3828            .eq(Math.floor(a.currentSlide / a.options.slidesToScroll))
3829            .addClass("slick-active")
3830            .attr("aria-hidden", "false"));
3831      }),
3832      (b.prototype.visibility = function() {
3833        var a = this;
3834        a.options.autoplay &&
3835          (document[a.hidden] ? (a.interrupted = !0) : (a.interrupted = !1));
3836      }),
3837      (a.fn.slick = function() {
3838        var f,
3839          g,
3840          a = this,
3841          c = arguments[0],
3842          d = Array.prototype.slice.call(arguments, 1),
3843          e = a.length;
3844        for (f = 0; e > f; f++)
3845          if (
3846            ("object" == typeof c || "undefined" == typeof c
3847              ? (a[f].slick = new b(a[f], c))
3848              : (g = a[f].slick[c].apply(a[f].slick, d)),
3849            "undefined" != typeof g)
3850          )
3851            return g;
3852        return a;
3853      });
3854  }),
3855  $(document).ready(function() {
3856    if ($(".logo__slider").hasClass("two__rows")) {
3857      $(".two__rows").each(function() {
3858        $(this).slick({
3859          dots: !1,
3860          rows: 2,
3861          arrows: !1,
3862          infinite: !0,
3863          speed: 500,
3864          slidesToShow: 3,
3865          slidesToScroll: 1,
3866          autoplay: !0,
3867          responsive: [
3868            {
3869              breakpoint: 1024,
3870              settings: {
3871                slidesToShow: 3,
3872                slidesToScroll: 3,
3873                infinite: !0,
3874                dots: !0
3875              }
3876            },
3877            {
3878              breakpoint: 600,
3879              settings: { slidesToShow: 2, slidesToScroll: 2 }
3880            },
3881            {
3882              breakpoint: 480,
3883              settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 }
3884            }
3885          ]
3886        });
3887      });
3888    } else {
3889      $(".logo__slider").each(function() {
3890        $(this).slick({
3891          dots: !1,
3892          rows: 1,
3893          arrows: !1,
3894          infinite: !0,
3895          speed: 500,
3896          slidesToShow: 5,
3897          slidesToScroll: 1,
3898          autoplay: !0,
3899          responsive: [
3900            {
3901              breakpoint: 1024,
3902              settings: {
3903                slidesToShow: 3,
3904                slidesToScroll: 3,
3905                infinite: !0,
3906                dots: !0
3907              }
3908            },
3909            {
3910              breakpoint: 600,
3911              settings: { slidesToShow: 2, slidesToScroll: 2 }
3912            },
3913            {
3914              breakpoint: 480,
3915              settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 }
3916            }
3917          ]
3918        });
3919      });
3920    }
3921    $(".partners_slider").each(function() {
3922      $(this).slick({
3923        dots: !0,
3924        arrows: !1,
3925        infinite: !0,
3926        speed: 500,
3927        slidesToShow: 2,
3928        slidesToScroll: 1,
3929        autoplay: !0,
3930        responsive: [
3931          {
3932            breakpoint: 600,
3933            settings: { dots: !0, slidesToShow: 1, slidesToScroll: 1 }
3934          },
3935          {
3936            breakpoint: 480,
3937            settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 }
3938          }
3939        ]
3940      });
3941    });
3942    var listItem = $(".current_month"),
3943      initial = $(".calendar__container").index(listItem);
3944    $(".calendars__slider").slick({
3945      dots: !1,
3946      infinite: !1,
3947      speed: 300,
3948      slidesToShow: 1,
3949      autoplay: !1,
3950      adaptiveHeight: !0,
3951      draggable: !1,
3952      fade: !0,
3953      arrows: !0,
3954      initialSlide: initial,
3955      appendArrows: $(".navigation__area"),
3956      prevArrow:
3957        '<button type="button" class="flo__nav">< Show Previous Month</button>',
3958      nextArrow:
3959        '<button type="button" class="flo__nav">Show Next Month ></button>',
3960      responsive: [
3961        { breakpoint: 1024, settings: { draggable: !0 } },
3962        {
3963          breakpoint: 480,
3964          settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 }
3965        }
3966      ]
3967    }),
3968      $(".slider").each(function() {
3969        $(this).slick({
3970          dots: !0,
3971          arrows: !1,
3972          infinite: !0,
3973          speed: 500,
3974          fade: !0,
3975          autoplay: !0,
3976          cssEase: "linear",
3977          responsive: [
3978            {
3979              breakpoint: 768,
3980              settings: { draggable: !0, autoplay: !1, adaptiveHeight: !0 }
3981            },
3982            {
3983              breakpoint: 480,
3984              settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 }
3985            }
3986          ]
3987        });
3988      });
3989    document.querySelector("#photogrid"),
3990      document.createElement("photogrid__single");
3991  });
3992var v = $(".calendar__section")
3993  .parent()
3994  .width();
3995v <= 768
3996  ? $(".calendar__section").addClass("mobile")
3997  : $(".calendar__section").removeClass("mobile"),
3998  $(window).resize(function() {
3999    var v = $(".calendar__section")
4000      .parent()
4001      .width();
4002    v <= 768
4003      ? $(".calendar__section").addClass("mobile")
4004      : $(".calendar__section").removeClass("mobile");
4005  }),
4006  $(document).scroll(function() {
4007    $(".bordered__infobox__section:in-viewport").addClass("in");
4008    var biggestHeight = "0";
4009    $(".community__section *").each(function() {
4010      $(this).height() > biggestHeight && (biggestHeight = $(this).height());
4011    }),
4012      $(".community__section").height(biggestHeight);
4013  }),
4014  (function($) {
4015    $.fn.visible = function(partial) {
4016      var $t = $(this),
4017        $w = $(window),
4018        viewTop = $w.scrollTop(),
4019        viewBottom = viewTop + $w.height(),
4020        _top = $t.offset().top,
4021        _bottom = _top + $t.height(),
4022        compareTop = partial === !0 ? _bottom : _top,
4023        compareBottom = partial === !0 ? _top : _bottom;
4024      return compareBottom <= viewBottom && compareTop >= viewTop;
4025    };
4026  })(jQuery);
4027var win = $(window),
4028  allMods = $(".animated");
4029$(document).ready(function() {
4030  $(".animated").each(function(i, el) {
4031    var el = $(el);
4032    el.visible(!0) && el.addClass("come-in");
4033  });
4034}),
4035  win.scroll(function(event) {
4036    allMods.each(function(i, el) {
4037      var el = $(el);
4038      el.visible(!0)
4039        ? el.addClass("come-in")
4040        : $(window).scrollTop() + $(window).height() < el.offset().top - 150 &&
4041          el.removeClass("come-in");
4042    });
4043  }),
4044  $(".tabspanel__btn").click(function() {
4045    var data = $(this).attr("data-target");
4046    $(".tabspanel__nav")
4047      .find(".active")
4048      .removeClass("active"),
4049      $(this).addClass("active"),
4050      $(".infotabs__section")
4051        .find(".tabspanel__content.active")
4052        .removeClass("active"),
4053      $(".infotabs__section")
4054        .find("#" + data)
4055        .addClass("active");
4056  });
4057var flag = 0;
4058win.scroll(function() {
4059  0 == flag &&
4060    $(".infographics--type-three .infographics__number").each(function(i, el) {
4061      var el = $(el);
4062      el.visible(!0) &&
4063        ((flag = 1),
4064        $(this)
4065          .prop("Counter", 0)
4066          .animate(
4067            { Counter: $(this).text() },
4068            {
4069              duration: 4e3,
4070              easing: "swing",
4071              step: function(now) {
4072                $(this).text(Math.ceil(now));
4073              }
4074            }
4075          ));
4076    });
4077}),
4078  $("#signup").click(function() {
4079    $("html, body").animate({ scrollTop: $("#newsletter").offset().top }, 2e3);
4080  }),
4081  $(".faqpage__tab").click(function() {
4082    var data = $(this).attr("data-target");
4083    $(".faqpage__topics")
4084      .find(".active")
4085      .removeClass("active"),
4086      $(this).addClass("active"),
4087      $(".faqpage__listing")
4088        .find(".faqpage__posts.active")
4089        .removeClass("active"),
4090      $(".faqpage__listing")
4091        .find("#" + data)
4092        .addClass("active");
4093  }),
4094  $(".faqpage__post").click(function() {
4095    $(".faqpage__posts")
4096      .find(".faqpage__post.active")
4097      .removeClass("active"),
4098      $(this).addClass("active");
4099  }),
4100  $(".menu-toggle").click(function() {
4101    console.log("open menu"),
4102      $(this).hasClass("in")
4103        ? ($(".menu-toggle + .nav").removeClass("in"),
4104          $(this).removeClass("in"))
4105        : ($(".menu-toggle + .nav").addClass("in"), $(this).addClass("in"));
4106  }),
4107  $("select").each(function() {
4108    centerSelect($(this));
4109  }),
4110  $("select").on("change", function() {
4111    centerSelect($(this));
4112  }),
4113  $(".calendar__cel").each(function() {
4114    2 == $(this).find("a").length && $(this).addClass("two--events");
4115  });
4116
4117jQuery(".nav-drop--toggle").on("click", function(e) {
4118  e.preventDefault();
4119  jQuery(this)
4120    .parent()
4121    .toggleClass("in");
4122  jQuery(this).toggleClass("in");
4123});

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.