Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /proc/self/root/var/www/serbaantik.com/public_html/theme/sofa/ |
Upload File : |
!(function (t) { function e(i) { if (n[i]) return n[i].exports var o = (n[i] = { i: i, l: false, exports: {} }) return t[i].call(o.exports, o, o.exports, e), (o.l = true), o.exports } var n = {} return ( (e.m = t), (e.c = n), (e.d = function (t, n, getter) { if (!e.o(t, n)) Object.defineProperty(t, n, { configurable: false, enumerable: true, get: getter, }) }), (e.n = function (t) { var getter = t && t.__esModule ? function e() { return t['default'] } : function e() { return t } return e.d(getter, 'a', getter), getter }), (e.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }), (e.p = '/Content/BundledScripts/'), e((e.s = 12533)) ) })({ 116: function (t, e, n) { 'use strict' function i() { throw new Error('setTimeout has not been defined') } function o() { throw new Error('clearTimeout has not been defined') } function a(t) { if (p === setTimeout) return setTimeout(t, 0) if ((p === i || !p) && setTimeout) return (p = setTimeout), setTimeout(t, 0) try { return p(t, 0) } catch (e) { try { return p.call(null, t, 0) } catch (e) { return p.call(this, t, 0) } } } function s(t) { if (m === clearTimeout) return clearTimeout(t) if ((m === o || !m) && clearTimeout) return (m = clearTimeout), clearTimeout(t) try { return m(t) } catch (e) { try { return m.call(null, t) } catch (e) { return m.call(this, t) } } } function u() { if (v && y) { if (((v = false), y.length)) g = y.concat(g) else w = -1 if (g.length) l() } } function l() { if (!v) { var t = a(u) v = true for (var e = g.length; e; ) { for (y = g, g = []; ++w < e; ) if (y) y[w].run() ;(w = -1), (e = g.length) } ;(y = null), (v = false), s(t) } } function c(t, e) { ;(this.fun = t), (this.array = e) } function f() {} var h = (t.exports = {}), p, m !(function () { try { if ('function' == typeof setTimeout) p = setTimeout else p = i } catch (t) { p = i } try { if ('function' == typeof clearTimeout) m = clearTimeout else m = o } catch (t) { m = o } })() var g = [], v = false, y, w = -1 ;(h.nextTick = function (t) { var e = new Array(arguments.length - 1) if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n] if ((g.push(new c(t, e)), 1 === g.length && !v)) a(l) }), (c.prototype.run = function () { this.fun.apply(null, this.array) }), (h.title = 'browser'), (h.browser = true), (h.env = {}), (h.argv = []), (h.version = ''), (h.versions = {}), (h.on = f), (h.addListener = f), (h.once = f), (h.off = f), (h.removeListener = f), (h.removeAllListeners = f), (h.emit = f), (h.prependListener = f), (h.prependOnceListener = f), (h.listeners = function (t) { return [] }), (h.binding = function (t) { throw new Error('process.binding is not supported') }), (h.cwd = function () { return '/' }), (h.chdir = function (t) { throw new Error('process.chdir is not supported') }), (h.umask = function () { return 0 }) }, 12533: function (t, e, n) { 'use strict' n(12534), n(12623) }, 12534: function (t, e, n) { 'use strict' n(12535) }, 12535: function (t, e, n) { 'use strict' n(12536), n(12537), n(513), n(12538), n(12539), n(12541), n(12542), n(12543), n(12544), n(916), n(934), n(12545), n(12553), n(12554), n(12556), n(12558), n(12559), n(12560), n(12561), n(289), n(12562), n(12571), n(12572), n(12574), n(12575), n(12577), n(12581), n(12582), n(12584), n(12585), n(12586), n(12587), n(956), n(12588), n(12589), n(12590), n(12591), n(12592), n(12593), n(12594), n(12596), n(12597), n(12600), n(12601), n(12602), n(12604), n(12606), n(12607), n(12616), n(12617), n(12618) }, 12536: function (t, e, n) { 'use strict' function i() { if (window && document && 'complete' !== document.readyState) { var t = document.body if ( t && t.classList && 'function' == typeof t.classList.add && 'function' == typeof t.classList.remove && 'function' == typeof t.appendChild && 'function' == typeof document.createElement && 'function' == typeof window.addEventListener ) { var e = 'u-disable-duration' t.classList.add(e) var styleNode = document.createElement('style') ;(styleNode.innerHTML = '.u-disable-duration * {transition-duration: 0s !important;}'), t.appendChild(styleNode), window.addEventListener('load', function () { t.classList.remove(e) }) } } } i() }, 12537: function (t, e, n) { 'use strict' if (!('CSS' in window)) window.CSS = {} if (!('supports' in window.CSS)) 'use strict', (window.CSS._cacheSupports = {}), (window.CSS.supports = function (t, e) { function n(t, e) { var style = document.createElement('div').style if (void 0 === e) { var n = function (t, e) { var n = t.split(e) if (n.length > 1) return n .map(function (t, index, e) { return index % 2 == 0 ? t + e[index + 1] : '' }) .filter(Boolean) }, i = n(t, /([)])\s*or\s*([(])/gi) if (i) return i.some(function (t) { return window.CSS.supports(t) }) var o = n(t, /([)])\s*and\s*([(])/gi) if (o) return o.every(function (t) { return window.CSS.supports(t) }) style.cssText = t.replace('(', '').replace(/[)]$/, '') } else style.cssText = t + ':' + e return !!style.length } var i = [t, e].toString() if (i in window.CSS._cacheSupports) return window.CSS._cacheSupports[i] else return (window.CSS._cacheSupports[i] = n(t, e)) }) }, 12538: function (t, e, n) { 'use strict' function i(t) { if ( ((this.prevMode = ''), (this.resizeTimeout = 50), (this.sheet = { XS: 340, SM: 540, MD: 720, LG: 940, XL: 1140, XXL: 1320, }), (this.mediaMax = { XS: 575, SM: 767, MD: 991, LG: 1199 }), (this.modes = ['XL', 'LG', 'MD', 'SM', 'XS']), (this.defaultMode = 'XL'), document.body.classList.contains('u-xxl-mode')) ) (this.mediaMax.XXL = 1399), (this.defaultMode = 'XXL'), this.modes.splice(0, 0, 'XXL') ;(this._handlers = []), this.modes.forEach(function (t) { var e = document.body.style.getPropertyValue( '--theme-sheet-width-' + t.toLowerCase() ) if (((e = parseFloat(e)), Number.isFinite(e))) this.sheet[t] = e }, this), this.init(t || []) } var ResponsiveMenu = n(935), o = n(17) Object.defineProperty(i.prototype, 'mode', { get: function () { var t = (document.documentElement || document.body).clientWidth || window.innerWidth if (this.scrolbar) document.documentElement.setAttribute('style', 'overflow-y:hidden'), (t = (document.documentElement || document.body).clientWidth || window.innerWidth), document.documentElement.removeAttribute('style') for (var e in this.mediaMax) if (this.mediaMax.hasOwnProperty(e)) if (t <= this.mediaMax[e]) return e return this.defaultMode }, }), (i.prototype.init = function init(t) { o( function () { this.update(true), (this.scrolbar = !!( document.body && document.body.clientWidth !== document.body.scrollWidth )) }.bind(this) ), o(window).on( 'resize', function () { this.update(true) }.bind(this) ), t.forEach(function (t) { this._handlers.push(new t(this)) }, this) var e = new CustomEvent('np.responsive.init', { detail: { prevMode: this.prevMode, mode: this.mode }, }) document.dispatchEvent(e), this.update() }), (i.prototype.update = function update(t) { var e = function () { var t = this.mode if (t !== this.prevMode || this.getContentWidth() < this.sheet[t]) { this._handlers.forEach(function (t) { if ('function' == typeof t.onResponsiveBefore) t.onResponsiveBefore() }), this.responsiveClass(o('html')), this._handlers.forEach(function (t) { if ('function' == typeof t.onResponsiveAfter) t.onResponsiveAfter() }) var e = new CustomEvent('np.responsive.changed', { detail: { prevMode: this.prevMode, mode: t }, }) document.dispatchEvent(e), (this.prevMode = t) } this._handlers.forEach(function (t) { if ('function' == typeof t.onResponsiveResize) t.onResponsiveResize() }) }.bind(this) if (t) clearTimeout(this._timeoutId), (this._timeoutId = setTimeout(e, this.resizeTimeout)) else e() }), (i.prototype.responsiveClass = function t(e) { var removeList = Object.keys(this.sheet) .map(function (t) { return 'u-responsive-' + t.toLowerCase() }) .join(' ') e.removeClass(removeList), e.addClass('u-responsive-' + this.mode.toLowerCase()) }), (i.prototype.getContentWidth = function () { return o('.u-body section:first').parent().width() }), o(function () { ;(window._responsive = new i([ResponsiveMenu])), o(document).on( 'click', '[data-href]:not(.u-back-to-top), [data-post-link]', function (t) { if (!t.isDefaultPrevented()) { var e = o(this), url = e.attr('data-href') || e.attr('data-post-link'), n = e.attr('data-target') || '', i = o(e).parents('body').find('header') && o(e).parents('body').find('header').hasClass('u-sticky'), a = url && (url.startsWith('#') || (url.indexOf('#') > -1 && url.indexOf(window.location.href.split('#')[0]) > -1)) if (i && a && window._npScrollAnchor) { var s = url.split('#')[1] || '', u = o('#' + s) if (u.length) window._npScrollAnchor.scroll(u) } else if (n) window.open(url, n) else try { window.location.href = url } catch (t) { console.warn('Incorrect url: ' + url) } } } ) }) }, 12539: function (t, e, n) { 'use strict' function i() { return { submit: function (t) { t.preventDefault(), t.stopPropagation() var form = m(this) form.find('input[type="submit"]').prop('disabled', true) var url = form.attr('action'), e = form.attr('source'), n = form.attr('method') || 'POST', i = '' if ( (h(form), ('email' === e || 'customphp' === e) && 'true' === form.attr('redirect')) ) i = form.attr('redirect-url') && !m.isNumeric(form.attr('redirect-url')) ? form.attr('redirect-url') : form.attr('redirect-address') if ( 'email' === e && !m(form).find('input[name="npspec-referer"]').length ) m(form).append( '<input type="hidden" name="npspec-referer" value="' + window.location.href + '">' ) var o = document.location && document.location.protocol, u if ( navigator.userAgent && navigator.userAgent.match(/firefox|fxios/i) && 'file:' === o ) FormMessage.showError( form, 'The page is opened as a file on disk and sending emails is not supported.\n' + 'Sending emails works only for pages opened from the domain.' ) else { var services = form.find('input[name="formServices"]'), l = Const.formActionUrl + 'v2/form/process', c = url === l if (services.length) s(form, { url: l, method: 'POST', redirectAddress: i, showSuccess: c, success: function () { if (!c) a(form, { url: url, method: n, redirectAddress: i }) }, }) else a(form, { url: url, method: n, redirectAddress: i }) } }, click: function (t) { t.preventDefault(), t.stopPropagation(), m(this).find('.u-form-send-success').hide(), m(this).find('.u-form-send-error').hide() var form = m(this).closest('form') if ((o(form), !g.signatureValidation(form))) return ( FormMessage.showError(form, 'The Signature field is required'), void 0 ) if (!c(form)) return ( FormMessage.showError(form, 'The File field is required'), void 0 ) if (!f(form)) return ( FormMessage.showError( form, 'Unable to submit the contact form. Please accept the cookie consent for the correct recaptcha functioning.' ), void 0 ) else return ( g.addSignatureFiles(form), form.find('input[type="submit"]').click(), void 0 ) }, } } function o(form) { form.find('.u-form-checkbox-group').each(function () { var t = m(this), e = t.find('input'), n = e.length, i = n > 0 ? e[0] : null, o if (e.attr('required') || t.attr('data-required')) { e.removeAttr('required'), t.attr('data-required', 'required') for (var a = false, s = 0; s < n; s++) if (e[s].checked) { a = true break } var u = !a ? 'At least one checkbox must be selected.' : '' i.setCustomValidity(u) } }) } function a(form, t) { if (/list-manage[1-9]?.com/i.test(t.url)) return u(form, t.url), void 0 s(form, { url: t.url, method: t.method, redirectAddress: t.redirectAddress, success: l, showSuccess: true, }) } function s(form, t) { var e = function () { m.ajax({ type: t.method, url: t.url, data: new FormData(form[0]), dataType: 'json', processData: false, contentType: false, }) .done(function (data, e) { if ( (data && (data.success || data.ok)) || (!data && 'success' === e) ) { if (t.showSuccess) FormMessage.showSuccess(form) if (t.redirectAddress) setTimeout(function () { window.location.replace(t.redirectAddress) }, 2e3) else t.success(form) } else (data = data || {}), FormMessage.showError(form, data.error, data.errorId, data.email) }) .fail(function () { FormMessage.showError(form) }) } if (void 0 !== window.recaptchaObject) window.recaptchaObject.executeContact(e) else e() } function u(form, url) { var t = form.find('input[name=name]').val(), email = form.find('input[name=email]').val(), data = { Email: email, EMAIL: email } if (t) (data.Name = t), (data.FNAME = t) var e = form.find('input, textarea') m.each(e, function (index, t) { var e = m(t).attr('name'), n = m(t).val() if (e && n) data[e.toUpperCase()] = n }) var n = (url = url.replace('/post?', '/post-json?') + '&c=?').indexOf('u=') + 2 n = url.substring(n, url.indexOf('&', n)) var i = url.indexOf('id=') + 3 ;(i = url.substring(i, url.indexOf('&', i))), (data['b_' + n + '_' + i] = ''), m .ajax({ url: url, data: data, dataType: 'jsonp' }) .done(function (t) { var e if ('success' === t.result || /already/.test(t.msg)) FormMessage.showSuccess(form), l(form) else FormMessage.showError(form, t.msg) }) .fail(function () { FormMessage.showError(form) }) } function l(form) { var dialog = new Dialog(form) setTimeout(function () { dialog.close() }, 2e3) } function c(form) { var t = form.find('input[type="file"][required]') if (!t.length) return true else return t.toArray().every(function (input) { return input.files.length }) } function f(form) { var t = form.hasClass('u-form-custom-backend'), e = form.find('input[name="recaptchaResponse"]'), n = form.parents('body').find('.u-cookies-consent'), i = document.cookie && document.cookie.indexOf('u-gdpr-cookie=true') > -1 if (t) return true if (n.length && e.length && !i) return false else return true } function h(form) { var t form.find('input[type=tel]').each(function () { var t = m(this), e = t.parents('.iti').find('.iti__selected-flag').attr('title') || '' t.val(e + ' ' + t.val()) }) } function p(form) { var services if (form.find('input[name="formServices"]').length) { var t = Const.formActionUrl + 'v2/form/process', e = form.attr('action') === t s(form, { url: t, method: 'POST', redirectAddress: '', showSuccess: e, success: function () {}, }) } } var m = n(17), Dialog = n(286), g = n(12540), FormMessage = n(3537), Const = n(3538) m(function () { var form = new i() ;(window.serviceRequest = p), m( 'form.u-form-vertical:not(.u-form-custom-backend), form.u-form-horizontal:not(.u-form-custom-backend)' ).submit(form.submit), m('.u-form .u-btn-submit').click(form.click) }), (window.MailChimpForm = i) }, 12540: function (t, e, n) { 'use strict' function i(t) { var e = JSON.parse(t.getAttribute('data-canvas-default-options') || '{}') a(t, e) } function o(t) { var e, n = t.clone().get(0), i = JSON.parse(n.getAttribute('data-canvas-default-options') || '{}') return a(n, i), n.toDataURL() } function a(t, e) { var n = t.getContext('2d') n.clearRect(0, 0, e.width, e.height), (n.lineWidth = e.lineWidth), (n.strokeStyle = e.strokeStyle), (n.fillStyle = e.fillStyle), n.fillRect(0, 0, e.width, e.height), n.beginPath(), n.moveTo(e.signatureLine.startX, e.signatureLine.startY), n.lineTo(e.signatureLine.endX, e.signatureLine.endY), n.stroke() } function s(t, fileName) { for ( var e = t.split(','), n = e[0].match(/:(.*?);/)[1], i = atob(e[1]), o = i.length, a = new Uint8Array(o); o--; ) a[o] = i.charCodeAt(o) var s = new Blob([a], { type: n }) return new File([s], fileName) } var u = (t.exports = {}) ;(u.signatureValidation = function t(form) { var e = form.find('canvas'), n, data if (!e.length) return true if (!e.attr('data-required')) return true else return o(e) !== e.get(0).toDataURL() }), (u.addSignatureFiles = function t(form) { form.find('.u-form-signature canvas').each(function () { var t = $(this).get(0), e, n = s(t.toDataURL(), 'signature.png'), o = form.find('.u-form-signature-file') if (o.length) o.remove() var file = $( '<input class="u-form-signature-file" style="display:none" type="file" name="file">' ) form.append(file) var a = new DataTransfer() a.items.add(n), (file[0].files = a.files), i(t) }) }) }, 12541: function (t, e, n) { 'use strict' var i = n(662).evaluate, o = n(663) $(function () { function t(t) { var form $(t && t.target) .closest('form') .each(function (index, form) { var t = new o(form).getScope() $(form) .find('[data-expression]') .each(function () { var e = $(this), n = e.closest('.u-form-calc').find('.u-calc-input') try { var o = e.attr('data-expression'), a = i(o, t) e.text(a), n.val(a) } catch (t) { e.text(0), n.val(0) } }) }) } $('body').on('input', 'input[type=number][name]', t), $('body').on( 'change', 'input[type=range][name], input[type=radio][name], input[type=checkbox][name], select[name]', t ) }) }, 12542: function (t, e, n) { 'use strict' function i() { $('.u-form input[type=file]').change(function () { var form = $(this).closest('.u-form') l(form), c(form) }) } function o() { $('.u-form .u-upload-button').click(function (t) { t.stopPropagation(), t.preventDefault(), $(this).closest('.u-form').find('input[type="file"]').click() }) } function a() { $('.u-form').on('click', '.u-file-remove', function (t) { t.stopPropagation(), t.preventDefault() var e = $(this), form = e.closest('.u-form'), n = e.closest('.u-file-item'), i = parseFloat(n.attr('data-i')) if (Number.isFinite(i)) f(form, i), c(form) }) } function s() { $('.u-form').on('reset', function () { var form = $(this).closest('.u-form'), input = form.find('input[type="file"]').get(0) if (input) (input.files = new DataTransfer().files), c(form) }) } function u() { $('.u-form input[type="file"]').each(function () { var t = $(this), e = t.attr('accept') if (e in FormFileAccept) e = FormFileAccept[e] t.attr('accept', e) }) } function l(form) { var input = form.find('input[type="file"]').get(0), t = [] if (input) if ( (Array.from(input.files).forEach(function (file, e) { if (file.size > h || e >= p) t.push({ i: e, name: file.name }) }), t.length) ) { f( form, t.map(function (t) { return t.i }) ) var e = '"{files}" file(s) size exceeds maximum limit.', n = t .map(function (t) { return t.name }) .join(', ') FormMessage.showError(form, e.replace(/\{files\}/, n)) } } function c(form) { form.find('.u-file-list .u-file-item:not(.u-file-template)').remove() var input = form.find('input[type="file"]').get(0), t = form.find('.u-file-template') if (input) Array.from(input.files).forEach(function (file, e) { var n = t.clone() n.removeClass('u-file-template'), n.find('.u-file-name').text(file.name), n.attr('data-i', e), form.find('.u-file-list').append(n) }) } function f(form, index) { var input = form.find('input[type="file"]').get(0), t = new DataTransfer() if (input) { if (!Array.isArray(index)) index = [index] Array.from(input.files).forEach(function (file, e) { if (!index.includes(e)) t.items.add(file) }), (input.files = t.files) } } var FormFileAccept = n(666), FormMessage = n(3537), h = 10 * 1024 * 1024, p = 10 $(function () { i(), o(), a(), s(), u() }) }, 12543: function (t, e, n) { 'use strict' function i(el) { var video el.find('.u-video .embed-responsive-item').each(function () { if (this.matches('video')) this.pause() else if (this.matches('iframe')) { var t = this.getAttribute('src') || this.getAttribute('data-src') this.setAttribute('src', t.replace(/autoplay=1?/gi, '')) } }) } function o(t) { var video ;(t.hasClass('u-video') ? t : t.find('.u-video')) .find('.embed-responsive-item[data-autoplay]') .each(function () { a(s(this).closest('.u-video')) }) } function a(video) { if (!video.closest('.u-dialog-block:not(.u-dialog-open)').length) { var t = video.find('iframe'), e = t.attr('data-src') || t.attr('src'), n = video.find('video') if (e) video.addClass('active'), (e += (-1 === e.indexOf('?') ? '?' : '&') + 'autoplay=1'), t.attr('src', e) else if (n.length) { video.addClass('active') var i = n[0] if (i.paused) i.play() else i.pause() } } } var s = n(17) s(document).on('click', '.u-video-poster, .u-video video', function (t) { var e, video t.preventDefault(), a(s(this).closest('.u-video')) }), s(function () { s( '.u-video-background .u-video-poster, .u-video-background .u-video video' ).each(function () { a(s(this).closest('.u-video')) }), s( '.u-video .embed-responsive-item:not(.lazyloading, .lazyloaded) + .u-video-poster' ).each(function () { var t = this.getAttribute('data-src') if (t) this.style.backgroundImage = 'url(' + t + ')' o(s(this).closest('.u-video')) }) }), s(document).on('opened.np.dialog', '.u-dialog-block', function (t) { o(s(t.currentTarget)) }), s(document).on('closed.np.dialog', '.u-dialog-block', function (t) { i(s(t.currentTarget)) }) }, 12544: function (t, e, n) { 'use strict' function i(t) { ;(this._audioElement = t.querySelector('audio')), (this._playButton = t.querySelector('.player-play-btn')), (this._playIcon = this._playButton.querySelector('.player-icon-play')), (this._pauseIcon = this._playButton.querySelector('.player-icon-pause')), (this._progress = t.querySelector('.u-player-progress')), (this._playerCurrentTime = t.querySelector('.player-time-current')), (this._progressFilled = t.querySelector('.u-player-progress-filled')), (this._progressFilled.style.flexBasis = 'auto'), (this._playerDuration = t.querySelector('.player-time-duration')), (this._mousedown = false) } var o = n(17) ;(i.prototype.build = function t() { this.setTimes(), this.initPlayerEvents(), this.initProgressEvents() }), (i.prototype.initProgressEvents = function t() { this._progress.addEventListener('click', this.scrub.bind(this)), this._progress.addEventListener( 'mousemove', function (t) { if (this._mousedown) this.scrub(t) }.bind(this) ), this._progress.addEventListener('mousedown', function () { this._mousedown = true }), this._progress.addEventListener('mouseup', function () { this._mousedown = false }) }), (i.prototype.initPlayerEvents = function t() { this._audioElement.addEventListener( 'timeupdate', function () { this.progressUpdate(), this.setTimes() }.bind(this) ), this._audioElement.addEventListener( 'loadedmetadata', function () { this.setTimes() }.bind(this) ), this._playButton.addEventListener( 'click', function () { if ('false' === this._playButton.dataset.playing) { var t = this._audioElement.play() if (void 0 !== t) t.then( function () { ;(this._playButton.dataset.playing = 'true'), this._playIcon.classList.add('u-hidden'), this._pauseIcon.classList.remove('u-hidden') }.bind(this) ).catch(function () {}) } else if ('true' === this._playButton.dataset.playing) this._audioElement.pause(), (this._playButton.dataset.playing = 'false'), this._pauseIcon.classList.add('u-hidden'), this._playIcon.classList.remove('u-hidden') }.bind(this) ), this._audioElement.addEventListener( 'ended', function () { ;(this._playButton.dataset.playing = 'false'), this._pauseIcon.classList.add('u-hidden'), this._playIcon.classList.remove('u-hidden'), (this._progressFilled.style.flexBasis = '0%'), (this._audioElement.currentTime = 0) }.bind(this) ) }), (i.prototype.progressUpdate = function t() { var e = (this._audioElement.currentTime / this._audioElement.duration) * 100 this._progressFilled.style.flexBasis = e + '%' }), (i.prototype.scrub = function t(e) { this._audioElement.currentTime = (e.offsetX / this._progress.offsetWidth) * this._audioElement.duration }), (i.prototype.setTimes = function t() { if (this._audioElement.duration) { var e = new Date(1e3 * this._audioElement.currentTime) this._playerCurrentTime.textContent = e .toISOString() .substring(14, 19) var n = new Date(1e3 * this._audioElement.duration) this._playerDuration.textContent = n.toISOString().substring(14, 19) } }), o(window).on('load', function () { o('.u-audio').each(function () { var t new i(o(this).get(0)).build() }) }) }, 12545: function (t, e, n) { 'use strict' var i = n(17), o = n(12546) i(function () { new o().init() }) }, 12546: function (t, e, n) { 'use strict' function i() { ;(this.galleries = null), (this._pswpElement = null), (this._listeners = []), (this._onItemClick = this.onItemClick.bind(this)) } var Utils = n(12547), o = n(12548), a = n(12549), s = n(12550), u = n(17), l = n(12551), c = n(12552) ;(t.exports = i), Object.defineProperty(i.prototype, 'pswpElement', { get: function () { if (!this._pswpElement) this._pswpElement = u('.pswp')[0] if (!this._pswpElement) { var t = u(a.PSWP_TEMPLATE).appendTo('.u-body') this._pswpElement = t[0] } return this._pswpElement }, }), (i.prototype.init = function () { this.initGallery(), this.subscribe(), this.checkHashUrl() }), (i.prototype.initGallery = function () { var t = {} u(a.LIGHTBOX_SELECTOR).each(function (t) { u(this).attr('data-pswp-uid', t + 1) }), u(a.GALLERY_ITEM_SELECTOR).each(function () { var e = this.closest(a.LIGHTBOX_SELECTOR) if (e && this !== e) { var n = e.getAttribute('data-pswp-uid'), gallery = t[n] if (!gallery) gallery = { dom: e, items: [] } this.setAttribute('data-pswp-item-id', gallery.items.length), this.setAttribute('data-gallery-uid', n), gallery.items.push(this), (t[n] = gallery) } }), (this.galleries = t) }), (i.prototype.subscribe = function () { for (var t = Object.keys(this.galleries), e = 0; e < t.length; e++) for ( var id = t[e], gallery = this.galleries[id], n = 0; n < gallery.items.length; n++ ) { var i = gallery.items[n] u(i).on('click', this._onItemClick) } }), (i.prototype.onItemClick = function (t) { var e = t.currentTarget if (!e.matches('[data-href]')) { t.preventDefault(), t.stopPropagation(), (t.returnValue = false) var index = e.getAttribute('data-pswp-item-id'), n = e.getAttribute('data-gallery-uid'), gallery = this.galleries[n] if (gallery && index >= 0) this.openOnClick(index, gallery) } }), (i.prototype.listen = function (t, e) { this._listeners.push({ event: t, func: e }) }), (i.prototype.checkHashUrl = function () { var t = Utils.parseHash() if (t.pid && t.gid) this.openFromUrl(t.pid, this.galleries[t.gid]) }), (i.prototype.openOnClick = function (index, gallery) { var t = gallery.dom.getAttribute('data-pswp-uid') o.gallery( gallery, function (items) { var e = this.buildOptions(t, items) ;(e.index = parseFloat(index)), (e.showPreviews = gallery.dom.classList.contains('u-product-control')), this.showPswp(items, e) }, this ) }), (i.prototype.openFromUrl = function (index, gallery) { var t = gallery.dom.getAttribute('data-pswp-uid') o.gallery( gallery, function (items) { var e = this.buildOptions(t, items) if ( ((e.showAnimationDuration = 0), (e.index = parseFloat(index) - 1), (e.showPreviews = gallery.dom.classList.contains('u-product-control')), e.galleryPIDs) ) for (var n = 0; n < items.length; n++) if (items[n].pid == index) { e.index = n break } this.showPswp(items, e) }, this ) }), (i.prototype.showPswp = function (items, t) { if (Number.isFinite(t.index)) { var e = new l(this.pswpElement, c, items, t) s.init(e, t), this._listeners.forEach(function (t) { e.listen(t.event, t.func) }), e.init() } }), (i.prototype.buildOptions = function (t, items) { var e return { galleryUID: t, getThumbBoundsFn: function (index) { var t = window.pageYOffset || document.documentElement.scrollTop, rect = items[index].el.getBoundingClientRect() return { x: rect.left, y: rect.top + t, w: rect.width } }, addCaptionHTMLFn: function (t, e, n) { if (n) return (e.children[0].innerHTML = '<br><br>'), true if (!t.title) return (e.children[0].innerHTML = ''), false var html = t.title if (t.desc) html += '<br><small>' + t.desc + '</small>' return (e.children[0].innerHTML = html), true }, showHideOpacity: true, history: window.location === window.parent.location, } }), (window.Lightbox = i) }, 12547: function (t, e, n) { 'use strict' var Utils ;(t.exports = {}).parseHash = function t() { var hash = window.location.hash.substring(1), e = {} if (hash.length < 5) return e for (var n = hash.split('&'), i = 0; i < n.length; i++) if (n[i]) { var o = n[i].split('=') if (!(o.length < 2)) e[o[0]] = o[1] } if (e.gid) e.gid = parseInt(e.gid, 10) return e } }, 12548: function (t, e, n) { 'use strict' function i(t) { return new Promise(function (e, n) { if (t.is('.u-background-effect ~ .u-container-layout')) i( t.prev('.u-background-effect').find('.u-background-effect-image') ).then(function (t) { e(t) }, n) else if (t.is('img')) { var a = t[0].naturalWidth || t.attr('data-image-width') || t.attr('imgwidth') || t.width(), s = t[0].naturalHeight || t.attr('data-image-height') || t.attr('imgheight') || t.height() e({ el: t[0], src: t.attr('src'), msrc: t.attr('src'), w: parseFloat(a), h: parseFloat(s), }) } else if (t.is('.u-video')) e({ el: t[0], html: t.find('.u-background-video').get(0).outerHTML }) else if (t.is('.u-gallery-item')) i(t.find('.u-back-slide')).then(function (t) { e(t) }, n) else if (t.is('.u-back-slide')) i(t.find('.u-back-image')).then(function (n) { var i = t.siblings('.u-over-slide'), o = t.closest('.u-gallery').is('.u-layout-thumbnails') if (i.length && !o) (n.title = i.find('.u-gallery-heading').html()), (n.desc = i.find('.u-gallery-text').html()) e(n) }, n) else o(t).then(function (n) { e({ el: t[0], src: n.src, msrc: n.src, w: n.width, h: n.height }) }, n) }) } function o(t) { var e = t.css('background-image'), n = e.match(/url\(['"]?(.+?)['"]?\)/) return new Promise(function (t, i) { if (n) { var o = new Image() ;(o.onload = t.bind(null, o)), (o.onerror = o.onabort = i), (o.src = n[1]) } else i(new Error('Invalid source: ' + e)) }) } var a = n(17), s ;(t.exports = {}).gallery = function gallery(gallery, t, e) { e = e || null var n = gallery.items.map(function (t) { return i((t = a(t))) }) Promise.all(n).then(t.bind(e), console.log) } }, 12549: function (t, e, n) { 'use strict' var i = (t.exports = {}) ;(i.LIGHTBOX_SELECTOR = '.u-lightbox'), (i.GALLERY_ITEM_SELECTOR = [ '.u-image:not(.u-carousel-thumbnail-image):not(.u-background-effect-image)', '.u-gallery-item', '.u-background-effect ~ .u-container-layout', ].join(', ')), (i.PSWP_TEMPLATE = '<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">\n' + ' <div class="pswp__bg"></div>\n' + ' <div class="pswp__scroll-wrap">\n' + ' <div class="pswp__container">\n' + ' <div class="pswp__item"></div>\n' + ' <div class="pswp__item"></div>\n' + ' <div class="pswp__item"></div>\n' + ' </div>\n' + ' <div class="pswp__ui pswp__ui--hidden">\n' + ' <div class="pswp__top-bar">\n ' + ' <div class="pswp__counter"></div>\n' + ' <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>\n' + ' <button class="pswp__button pswp__button--share" title="Share"></button>\n' + ' <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>\n' + ' <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>\n' + ' <div class="pswp__preloader">\n' + ' <div class="pswp__preloader__icn">\n' + ' <div class="pswp__preloader__cut">\n' + ' <div class="pswp__preloader__donut"></div>\n' + ' </div>\n' + ' </div>\n' + ' </div>\n' + ' </div>\n' + ' <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">\n' + ' <div class="pswp__share-tooltip"></div>\n' + ' </div>\n' + ' <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>\n' + ' <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>\n' + ' <div class="pswp__previews" data-previews="data-previews" style="display: none"></div>' + ' <div class="pswp__caption">\n' + ' <div class="pswp__caption__center"></div>\n' + ' </div>\n' + ' </div>\n' + ' </div>\n' + '</div>') }, 12550: function (t, e, n) { 'use strict' function i(gallery, selector) { var t = gallery.scrollWrap, e = t.querySelector(selector), n ;(t.querySelector('.pswp__caption').style.display = 'none'), (e.style.display = '') } function o(gallery, selector) { var t = gallery.scrollWrap, e = t.querySelector(selector), n ;(t.querySelector('.pswp__caption').style.display = ''), (e.style.display = 'none') } function add(gallery, selector) { var t = gallery.scrollWrap, items = gallery.items, e = t.querySelector(selector) items.forEach(function (t) { var preview = t.msrc, n = document.createElement('img') n.setAttribute('src', preview), n.addEventListener('click', function () { gallery.goTo(items.indexOf(t)) }), e.appendChild(n) }) } function remove(gallery, selector) { var t, e gallery.scrollWrap.querySelector(selector).innerHTML = '' } function a(gallery, selector) { var t = gallery.scrollWrap, e, preview = gallery.currItem.msrc, n, i t.querySelector(selector) .querySelectorAll('img') .forEach(function (t) { var e, n = 'active' if (t.getAttribute('src') === preview) t.classList.add(n), t.scrollIntoView({ behavior: 'smooth' }) else t.classList.remove(n) }) } var s t.exports.init = function init(gallery, t) { var e = false gallery.listen('gettingData', function () { if (!e) { if (((e = true), t.showPreviews)) i(gallery, '[data-previews]') else o(gallery, '[data-previews]') add(gallery, '[data-previews]') } }), gallery.listen('close', function () { remove(gallery, '[data-previews]') }), gallery.listen('afterChange', function () { a(gallery, '[data-previews]') }) } }, 12551: function (t, e, n) { 'use strict' var i, o /*! PhotoSwipe - v4.1.3 - 2019-01-08 * http://photoswipe.com * Copyright (c) 2019 Dmitry Semenov; */ !(function (a, factory) { if (true) !( void 0 !== (o = 'function' == typeof (i = factory) ? i.call(e, n, e, t) : i) && (t.exports = o) ) else if ('object' == typeof e) t.exports = factory() else a.PhotoSwipe = factory() })(this, function () { var t = function (template, t, items, e) { var n = { features: null, bind: function (t, type, e, n) { var i = (n ? 'remove' : 'add') + 'EventListener' type = type.split(' ') for (var o = 0; o < type.length; o++) if (type[o]) t[i](type[o], e, false) }, isArray: function (t) { return t instanceof Array }, createEl: function (t, e) { var el = document.createElement(e || 'div') if (t) el.className = t return el }, getScrollY: function () { var t = window.pageYOffset return void 0 !== t ? t : document.documentElement.scrollTop }, unbind: function (t, type, e) { n.bind(t, type, e, true) }, removeClass: function (el, t) { var e = new RegExp('(\\s|^)' + t + '(\\s|$)') el.className = el.className .replace(e, ' ') .replace(/^\s\s*/, '') .replace(/\s\s*$/, '') }, addClass: function (el, t) { if (!n.hasClass(el, t)) el.className += (el.className ? ' ' : '') + t }, hasClass: function (el, t) { return ( el.className && new RegExp('(^|\\s)' + t + '(\\s|$)').test(el.className) ) }, getChildByClass: function (t, e) { for (var i = t.firstChild; i; ) { if (n.hasClass(i, e)) return i i = i.nextSibling } }, arraySearch: function (t, e, n) { for (var i = t.length; i--; ) if (t[i][n] === e) return i return -1 }, extend: function (t, e, n) { for (var i in e) if (e.hasOwnProperty(i)) { if (n && t.hasOwnProperty(i)) continue t[i] = e[i] } }, easing: { sine: { out: function (t) { return Math.sin(t * (Math.PI / 2)) }, inOut: function (t) { return -(Math.cos(Math.PI * t) - 1) / 2 }, }, cubic: { out: function (t) { return --t * t * t + 1 }, }, }, detectFeatures: function () { if (n.features) return n.features var t, e = n.createEl().style, i = '', o = {} if ( ((o.oldIE = document.all && !document.addEventListener), (o.touch = 'ontouchstart' in window), window.requestAnimationFrame) ) (o.raf = window.requestAnimationFrame), (o.caf = window.cancelAnimationFrame) if ( ((o.pointerEvent = !!window.PointerEvent || navigator.msPointerEnabled), !o.pointerEvent) ) { var a = navigator.userAgent if (/iP(hone|od)/.test(navigator.platform)) { var s = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/) if (s && s.length > 0) if ((s = parseInt(s[1], 10)) >= 1 && s < 8) o.isOldIOSPhone = true } var u = a.match(/Android\s([0-9\.]*)/), l = u ? u[1] : 0 if ((l = parseFloat(l)) >= 1) { if (l < 4.4) o.isOldAndroid = true o.androidVersion = l } o.isMobileOpera = /opera mini|opera mobi/i.test(a) } for ( var c = ['transform', 'perspective', 'animationName'], f = ['', 'webkit', 'Moz', 'ms', 'O'], h, p, m = 0; m < 4; m++ ) { i = f[m] for (var g = 0; g < 3; g++) if ( ((h = c[g]), (p = i + (i ? h.charAt(0).toUpperCase() + h.slice(1) : h)), !o[h] && p in e) ) o[h] = p if (i && !o.raf) if ( ((i = i.toLowerCase()), (o.raf = window[i + 'RequestAnimationFrame']), o.raf) ) o.caf = window[i + 'CancelAnimationFrame'] || window[i + 'CancelRequestAnimationFrame'] } if (!o.raf) { var v = 0 ;(o.raf = function (t) { var e = new Date().getTime(), n = Math.max(0, 16 - (e - v)), id = window.setTimeout(function () { t(e + n) }, n) return (v = e + n), id }), (o.caf = function (id) { clearTimeout(id) }) } return ( (o.svg = !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg') .createSVGRect), (n.features = o), o ) }, } if ((n.detectFeatures(), n.features.oldIE)) n.bind = function (t, type, e, n) { type = type.split(' ') for ( var i = (n ? 'detach' : 'attach') + 'Event', o, a = function () { e.handleEvent.call(e) }, s = 0; s < type.length; s++ ) if ((o = type[s])) if ('object' == typeof e && e.handleEvent) { if (!n) e['oldIE' + o] = a else if (!e['oldIE' + o]) return false t[i]('on' + o, e['oldIE' + o]) } else t[i]('on' + o, e) } var i = this, o = 25, a = 3, s = { allowPanToNext: true, spacing: 0.12, bgOpacity: 1, mouseUsed: false, loop: true, pinchToClose: true, closeOnScroll: true, closeOnVerticalDrag: true, verticalDragRange: 0.75, hideAnimationDuration: 333, showAnimationDuration: 333, showHideOpacity: false, focus: true, escKey: true, arrowKeys: true, mainScrollEndFriction: 0.35, panEndFriction: 0.35, isClickableElement: function (el) { return 'A' === el.tagName }, getDoubleTapZoom: function (t, e) { if (t) return 1 else return e.initialZoomLevel < 0.7 ? 1 : 1.33 }, maxSpreadZoom: 1.33, modal: true, scaleMode: 'fit', } n.extend(s, e) var u = function () { return { x: 0, y: 0 } }, l, c, f, h, p, m, g = { x: 0, y: 0 }, v = { x: 0, y: 0 }, y = { x: 0, y: 0 }, w, b, C, S = {}, x, A, _, T, E, I, k = 0, M = {}, L = { x: 0, y: 0 }, P, O, B = 0, F, N, U, z, H, $, Y = true, W, V = [], G, j, K, Z, X, J, tt, nt = {}, rt = false, ot, at = function (t, e) { n.extend(i, e.publicMethods), V.push(t) }, st = function (index) { var t = wn() if (index > t - 1) return index - t else if (index < 0) return t + index return index }, ut = {}, lt = function (t, e) { if (!ut[t]) ut[t] = [] return ut[t].push(e) }, ct = function (t) { var e = ut[t] if (e) { var n = Array.prototype.slice.call(arguments) n.shift() for (var o = 0; o < e.length; o++) e[o].apply(i, n) } }, ft = function () { return new Date().getTime() }, dt = function (t) { ;(Le = t), (i.bg.style.opacity = t * s.bgOpacity) }, ht = function (t, e, n, o, a) { if (!rt || (a && a !== i.currItem)) o /= a ? a.fitRatio : i.currItem.fitRatio t[H] = _ + e + 'px, ' + n + 'px' + T + ' scale(' + o + ')' }, pt = function (t) { if (xe) { if (t) if (x > i.currItem.fitRatio) { if (!rt) En(i.currItem, false, true), (rt = true) } else if (rt) En(i.currItem), (rt = false) ht(xe, y.x, y.y, x) } }, mt = function (t) { if (t.container) ht( t.container.style, t.initialPosition.x, t.initialPosition.y, t.initialZoomLevel, t ) }, gt = function (t, e) { e[H] = _ + t + 'px, 0px' + T }, vt = function (t, e) { if (!s.loop && e) { var n = h + (L.x * k - t) / L.x, i = Math.round(t - Se.x) if ((n < 0 && i > 0) || (n >= wn() - 1 && i < 0)) t = Se.x + i * s.mainScrollEndFriction } ;(Se.x = t), gt(t, p) }, yt = function (t, e) { var n = _e[t] - M[t] return v[t] + g[t] + n - n * (e / A) }, wt = function (t, e) { if (((t.x = e.x), (t.y = e.y), e.id)) t.id = e.id }, bt = function (t) { ;(t.x = Math.round(t.x)), (t.y = Math.round(t.y)) }, Ct = null, St = function () { if (Ct) n.unbind(document, 'mousemove', St), n.addClass(template, 'pswp--has_mouse'), (s.mouseUsed = true), ct('mouseUsed') Ct = setTimeout(function () { Ct = null }, 100) }, xt = function () { if ((n.bind(document, 'keydown', i), tt.transform)) n.bind(i.scrollWrap, 'click', i) if (!s.mouseUsed) n.bind(document, 'mousemove', St) n.bind(window, 'resize scroll orientationchange', i), ct('bindEvents') }, At = function () { if ( (n.unbind(window, 'resize scroll orientationchange', i), n.unbind(window, 'scroll', C.scroll), n.unbind(document, 'keydown', i), n.unbind(document, 'mousemove', St), tt.transform) ) n.unbind(i.scrollWrap, 'click', i) if (ue) n.unbind(window, w, i) clearTimeout(ot), ct('unbindEvents') }, _t = function (t, update) { var e = xn(i.currItem, S, t) if (update) Ce = e return e }, Tt = function (t) { if (!t) t = i.currItem return t.initialZoomLevel }, Dt = function (t) { if (!t) t = i.currItem return t.w > 0 ? s.maxSpreadZoom : 1 }, kt = function (t, e, n, o) { if (o === i.currItem.initialZoomLevel) return (n[t] = i.currItem.initialPosition[t]), true else if (((n[t] = yt(t, o)), n[t] > e.min[t])) return (n[t] = e.min[t]), true else if (n[t] < e.max[t]) return (n[t] = e.max[t]), true return false }, Mt = function () { if (H) { var t = tt.perspective && !W return ( (_ = 'translate' + (t ? '3d(' : '(')), (T = tt.perspective ? ', 0px)' : ')'), void 0 ) } ;(H = 'left'), n.addClass(template, 'pswp--ie'), (gt = function (t, e) { e.left = t + 'px' }), (mt = function (t) { var e = t.fitRatio > 1 ? 1 : t.fitRatio, n = t.container.style, i = e * t.w, o = e * t.h ;(n.width = i + 'px'), (n.height = o + 'px'), (n.left = t.initialPosition.x + 'px'), (n.top = t.initialPosition.y + 'px') }), (pt = function () { if (xe) { var t = xe, e = i.currItem, n = e.fitRatio > 1 ? 1 : e.fitRatio, o = n * e.w, a = n * e.h ;(t.width = o + 'px'), (t.height = a + 'px'), (t.left = y.x + 'px'), (t.top = y.y + 'px') } }) }, Lt = function (t) { var e = '' if (s.escKey && 27 === t.keyCode) e = 'close' else if (s.arrowKeys) if (37 === t.keyCode) e = 'prev' else if (39 === t.keyCode) e = 'next' if (e) if (!(t.ctrlKey || t.altKey || t.shiftKey || t.metaKey)) { if (t.preventDefault) t.preventDefault() else t.returnValue = false i[e]() } }, Pt = function (t) { if (t) if (fe || ce || Ae || ie) t.preventDefault(), t.stopPropagation() }, Ot = function () { i.setScrollOffset(0, n.getScrollY()) }, Bt = {}, Rt = 0, Ft = function (t) { if (Bt[t]) { if (Bt[t].raf) j(Bt[t].raf) Rt--, delete Bt[t] } }, Nt = function (t) { if (Bt[t]) Ft(t) if (!Bt[t]) Rt++, (Bt[t] = {}) }, Ut = function () { for (var t in Bt) if (Bt.hasOwnProperty(t)) Ft(t) }, qt = function (t, e, n, d, i, o, a) { var s = ft(), u Nt(t) var l = function () { if (Bt[t]) { if ((u = ft() - s) >= d) { if ((Ft(t), o(n), a)) a() return } o((n - e) * i(u / d) + e), (Bt[t].raf = G(l)) } } l() }, zt = { shout: ct, listen: lt, viewportSize: S, options: s, isMainScrollAnimating: function () { return Ae }, getZoomLevel: function () { return x }, getCurrentIndex: function () { return h }, isDragging: function () { return ue }, isZooming: function () { return ye }, setScrollOffset: function (t, e) { ;(M.x = t), (J = M.y = e), ct('updateScrollOffset', M) }, applyZoomPan: function (t, e, n, i) { ;(y.x = e), (y.y = n), (x = t), pt(i) }, init: function () { if (!l && !c) { var e ;(i.framework = n), (i.template = template), (i.bg = n.getChildByClass(template, 'pswp__bg')), (K = template.className), (l = true), (tt = n.detectFeatures()), (G = tt.raf), (j = tt.caf), (H = tt.transform), (X = tt.oldIE), (i.scrollWrap = n.getChildByClass( template, 'pswp__scroll-wrap' )), (i.container = n.getChildByClass( i.scrollWrap, 'pswp__container' )), (p = i.container.style), (i.itemHolders = P = [ { el: i.container.children[0], wrap: 0, index: -1 }, { el: i.container.children[1], wrap: 0, index: -1 }, { el: i.container.children[2], wrap: 0, index: -1 }, ]), (P[0].el.style.display = P[2].el.style.display = 'none'), Mt(), (C = { resize: i.updateSize, orientationchange: function () { clearTimeout(ot), (ot = setTimeout(function () { if (S.x !== i.scrollWrap.clientWidth) i.updateSize() }, 500)) }, scroll: Ot, keydown: Lt, click: Pt, }) var o = tt.isOldIOSPhone || tt.isOldAndroid || tt.isMobileOpera if (!tt.animationName || !tt.transform || o) s.showAnimationDuration = s.hideAnimationDuration = 0 for (e = 0; e < V.length; e++) i['init' + V[e]]() if (t) { var u ;(i.ui = new t(i, n)).init() } if ( (ct('firstUpdate'), (h = h || s.index || 0), isNaN(h) || h < 0 || h >= wn()) ) h = 0 if (((i.currItem = yn(h)), tt.isOldIOSPhone || tt.isOldAndroid)) Y = false if ((template.setAttribute('aria-hidden', 'false'), s.modal)) if (!Y) (template.style.position = 'absolute'), (template.style.top = n.getScrollY() + 'px') else template.style.position = 'fixed' if (void 0 === J) ct('initialLayout'), (J = Z = n.getScrollY()) var f = 'pswp--open ' if (s.mainClass) f += s.mainClass + ' ' if (s.showHideOpacity) f += 'pswp--animate_opacity ' for ( f += W ? 'pswp--touch' : 'pswp--notouch', f += tt.animationName ? ' pswp--css_animation' : '', f += tt.svg ? ' pswp--svg' : '', n.addClass(template, f), i.updateSize(), m = -1, B = null, e = 0; e < a; e++ ) gt((e + m) * L.x, P[e].el.style) if (!X) n.bind(i.scrollWrap, b, i) if ( (lt('initialZoomInEnd', function () { if ( (i.setContent(P[0], h - 1), i.setContent(P[2], h + 1), (P[0].el.style.display = P[2].el.style.display = 'block'), s.focus) ) template.focus() xt() }), i.setContent(P[1], h), i.updateCurrItem(), ct('afterInit'), !Y) ) E = setInterval(function () { if (!Rt && !ue && !ye && x === i.currItem.initialZoomLevel) i.updateSize() }, 1e3) n.addClass(template, 'pswp--visible') } }, close: function () { if (l) (l = false), (c = true), ct('close'), At(), fn(i.currItem, null, true, i.destroy) }, destroy: function () { if ((ct('destroy'), cn)) clearTimeout(cn) if ( (template.setAttribute('aria-hidden', 'true'), (template.className = K), E) ) clearInterval(E) n.unbind(i.scrollWrap, b, i), n.unbind(window, 'scroll', i), Fe(), Ut(), (ut = null) }, panTo: function (t, e, n) { if (!n) { if (t > Ce.min.x) t = Ce.min.x else if (t < Ce.max.x) t = Ce.max.x if (e > Ce.min.y) e = Ce.min.y else if (e < Ce.max.y) e = Ce.max.y } ;(y.x = t), (y.y = e), pt() }, handleEvent: function (t) { if (((t = t || window.event), C[t.type])) C[t.type](t) }, goTo: function (index) { var diff = (index = st(index)) - h ;(B = diff), (h = index), (i.currItem = yn(h)), (k -= diff), vt(L.x * k), Ut(), (Ae = false), i.updateCurrItem() }, next: function () { i.goTo(h + 1) }, prev: function () { i.goTo(h - 1) }, updateCurrZoomItem: function (t) { if (t) ct('beforeChange', 0) if (P[1].el.children.length) { var e = P[1].el.children[0] if (n.hasClass(e, 'pswp__zoom-wrap')) xe = e.style else xe = null } else xe = null if ( ((Ce = i.currItem.bounds), (A = x = i.currItem.initialZoomLevel), (y.x = Ce.center.x), (y.y = Ce.center.y), t) ) ct('afterChange') }, invalidateCurrItems: function () { I = true for (var t = 0; t < a; t++) if (P[t].item) P[t].item.needsUpdate = true }, updateCurrItem: function (t) { if (0 !== B) { var e = Math.abs(B), n if (!(t && e < 2)) { if ( ((i.currItem = yn(h)), (rt = false), ct('beforeChange', B), e >= a) ) (m += B + (B > 0 ? -a : a)), (e = a) for (var o = 0; o < e; o++) if (B > 0) (n = P.shift()), (P[a - 1] = n), m++, gt((m + 2) * L.x, n.el.style), i.setContent(n, h - e + o + 1 + 1) else (n = P.pop()), P.unshift(n), m--, gt(m * L.x, n.el.style), i.setContent(n, h + e - o - 1 - 1) if (xe && 1 === Math.abs(B)) { var s = yn(O) if (s.initialZoomLevel !== x) xn(s, S), En(s), mt(s) } ;(B = 0), i.updateCurrZoomItem(), (O = h), ct('afterChange') } } }, updateSize: function (t) { if (!Y && s.modal) { var e = n.getScrollY() if (J !== e) (template.style.top = e + 'px'), (J = e) if ( !t && nt.x === window.innerWidth && nt.y === window.innerHeight ) return ;(nt.x = window.innerWidth), (nt.y = window.innerHeight), (template.style.height = nt.y + 'px') } if ( ((S.x = i.scrollWrap.clientWidth), (S.y = i.scrollWrap.clientHeight), Ot(), (L.x = S.x + Math.round(S.x * s.spacing)), (L.y = S.y), vt(L.x * k), ct('beforeResize'), void 0 !== m) ) { for (var o, u, l, c = 0; c < a; c++) { if ( ((o = P[c]), gt((c + m) * L.x, o.el.style), (l = h + c - 1), s.loop && wn() > 2) ) l = st(l) if ((u = yn(l)) && (I || u.needsUpdate || !u.bounds)) { if ((i.cleanSlide(u), i.setContent(o, l), 1 === c)) (i.currItem = u), i.updateCurrZoomItem(true) u.needsUpdate = false } else if (-1 === o.index && l >= 0) i.setContent(o, l) if (u && u.container) xn(u, S), En(u), mt(u) } I = false } if ( ((A = x = i.currItem.initialZoomLevel), (Ce = i.currItem.bounds)) ) (y.x = Ce.center.x), (y.y = Ce.center.y), pt(true) ct('resize') }, zoomTo: function (t, e, i, o, a) { if (e) (A = x), (_e.x = Math.abs(e.x) - y.x), (_e.y = Math.abs(e.y) - y.y), wt(v, y) var s = _t(t, false), u = {} kt('x', s, u, t), kt('y', s, u, t) var l = x, c = y.x, f = y.y bt(u) var h = function (e) { if (1 === e) (x = t), (y.x = u.x), (y.y = u.y) else (x = (t - l) * e + l), (y.x = (u.x - c) * e + c), (y.y = (u.y - f) * e + f) if (a) a(e) pt(1 === e) } if (i) qt('customZoomTo', 0, 1, i, o || n.easing.sine.inOut, h) else h(1) }, }, Ht = 30, $t = 10, Yt, Wt, Vt = {}, Gt = {}, jt = {}, Kt = {}, Zt = {}, Xt = [], Jt = {}, Qt, te = [], ee = {}, ne, ie, re, oe = 0, ae = { x: 0, y: 0 }, se = 0, ue, le, ce, fe, pe, ge, ve, ye, we, be, Ce, Se = { x: 0, y: 0 }, xe, Ae, _e = { x: 0, y: 0 }, Te = { x: 0, y: 0 }, Ee, Ie, ke, Le, Pe, Oe = function (t, e) { return t.x === e.x && t.y === e.y }, Be = function (t, e) { return Math.abs(t.x - e.x) < o && Math.abs(t.y - e.y) < o }, Re = function (t, e) { return ( (ee.x = Math.abs(t.x - e.x)), (ee.y = Math.abs(t.y - e.y)), Math.sqrt(ee.x * ee.x + ee.y * ee.y) ) }, Fe = function () { if (pe) j(pe), (pe = null) }, Ne = function () { if (ue) (pe = G(Ne)), nn() }, Ue = function () { return !('fit' === s.scaleMode && x === i.currItem.initialZoomLevel) }, qe = function (el, t) { if (!el || el === document) return false if ( el.getAttribute('class') && el.getAttribute('class').indexOf('pswp__scroll-wrap') > -1 ) return false if (t(el)) return el else return qe(el.parentNode, t) }, ze = {}, $e = function (t, e) { return ( (ze.prevent = !qe(t.target, s.isClickableElement)), ct('preventDragEvent', t, e, ze), ze.prevent ) }, Ye = function (t, e) { return (e.x = t.pageX), (e.y = t.pageY), (e.id = t.identifier), e }, We = function (t, e, n) { ;(n.x = 0.5 * (t.x + e.x)), (n.y = 0.5 * (t.y + e.y)) }, Ve = function (t, e, n) { if (t - Wt > 50) { var i = te.length > 2 ? te.shift() : {} ;(i.x = e), (i.y = n), te.push(i), (Wt = t) } }, Ge = function () { var t = y.y - i.currItem.initialPosition.y return 1 - Math.abs(t / (S.y / 2)) }, je = {}, Ke = {}, Ze = [], Xe, Je = function (t) { for (; Ze.length > 0; ) Ze.pop() if (!$) if (t.type.indexOf('touch') > -1) { if (t.touches && t.touches.length > 0) if (((Ze[0] = Ye(t.touches[0], je)), t.touches.length > 1)) Ze[1] = Ye(t.touches[1], Ke) } else (je.x = t.pageX), (je.y = t.pageY), (je.id = ''), (Ze[0] = je) else (Xe = 0), Xt.forEach(function (t) { if (0 === Xe) Ze[0] = t else if (1 === Xe) Ze[1] = t Xe++ }) return Ze }, Qe = function (t, e) { var n, o = 0, a = y[t] + e[t], u, l = e[t] > 0, c = Se.x + e.x, f = Se.x - Jt.x, h, p if (a > Ce.min[t] || a < Ce.max[t]) n = s.panEndFriction else n = 1 if ( ((a = y[t] + e[t] * n), s.allowPanToNext || x === i.currItem.initialZoomLevel) ) { if (!xe) p = c else if ('h' === Ee && 'x' === t && !ce) if (l) { if (a > Ce.min[t]) (n = s.panEndFriction), (o = Ce.min[t] - a), (u = Ce.min[t] - v[t]) if ((u <= 0 || f < 0) && wn() > 1) { if (((p = c), f < 0 && c > Jt.x)) p = Jt.x } else if (Ce.min.x !== Ce.max.x) h = a } else { if (a < Ce.max[t]) (n = s.panEndFriction), (o = a - Ce.max[t]), (u = v[t] - Ce.max[t]) if ((u <= 0 || f > 0) && wn() > 1) { if (((p = c), f > 0 && c < Jt.x)) p = Jt.x } else if (Ce.min.x !== Ce.max.x) h = a } if ('x' === t) { if (void 0 !== p) if ((vt(p, true), p === Jt.x)) ge = false else ge = true if (Ce.min.x !== Ce.max.x) if (void 0 !== h) y.x = h else if (!ge) y.x += e.x * n return void 0 !== p } } if (!Ae) if (!ge) if (x > i.currItem.fitRatio) y[t] += e[t] * n }, tn = function (t) { if (!('mousedown' === t.type && t.button > 0)) { if (gn) return t.preventDefault(), void 0 if (!re || 'mousedown' !== t.type) { if ($e(t, true)) t.preventDefault() if ((ct('pointerDown'), $)) { var e = n.arraySearch(Xt, t.pointerId, 'id') if (e < 0) e = Xt.length Xt[e] = { x: t.pageX, y: t.pageY, id: t.pointerId } } var o = Je(t), a = o.length if (((ve = null), Ut(), !ue || 1 === a)) (ue = Ie = true), n.bind(window, w, i), (ne = Pe = ke = ie = ge = fe = le = ce = false), (Ee = null), ct('firstTouchStart', o), wt(v, y), (g.x = g.y = 0), wt(Kt, o[0]), wt(Zt, Kt), (Jt.x = L.x * k), (te = [{ x: Kt.x, y: Kt.y }]), (Wt = Yt = ft()), _t(x, true), Fe(), Ne() if (!ye && a > 1 && !Ae && !ge) (A = x), (ce = false), (ye = le = true), (g.y = g.x = 0), wt(v, y), wt(Vt, o[0]), wt(Gt, o[1]), We(Vt, Gt, Te), (_e.x = Math.abs(Te.x) - y.x), (_e.y = Math.abs(Te.y) - y.y), (we = be = Re(Vt, Gt)) } } }, en = function (t) { if ((t.preventDefault(), $)) { var e = n.arraySearch(Xt, t.pointerId, 'id') if (e > -1) { var i = Xt[e] ;(i.x = t.pageX), (i.y = t.pageY) } } if (ue) { var o = Je(t) if (!Ee && !fe && !ye) if (Se.x !== L.x * k) Ee = 'h' else { var diff = Math.abs(o[0].x - Kt.x) - Math.abs(o[0].y - Kt.y) if (Math.abs(diff) >= $t) (Ee = diff > 0 ? 'h' : 'v'), (ve = o) } else ve = o } }, nn = function () { if (ve) { var t = ve.length if (0 !== t) if ( (wt(Vt, ve[0]), (jt.x = Vt.x - Kt.x), (jt.y = Vt.y - Kt.y), ye && t > 1) ) { if ( ((Kt.x = Vt.x), (Kt.y = Vt.y), !jt.x && !jt.y && Oe(ve[1], Gt)) ) return if ((wt(Gt, ve[1]), !ce)) (ce = true), ct('zoomGestureStarted') var e = Re(Vt, Gt), n = un(e) if ( n > i.currItem.initialZoomLevel + i.currItem.initialZoomLevel / 15 ) Pe = true var o = 1, a = Tt(), u = Dt() if (n < a) if ( s.pinchToClose && !Pe && A <= i.currItem.initialZoomLevel ) { var l, c = 1 - (a - n) / (a / 1.2) dt(c), ct('onPinchClose', c), (ke = true) } else { if ((o = (a - n) / a) > 1) o = 1 n = a - o * (a / 3) } else if (n > u) { if ((o = (n - u) / (6 * a)) > 1) o = 1 n = u + o * a } if (o < 0) o = 0 ;(we = e), We(Vt, Gt, ae), (g.x += ae.x - Te.x), (g.y += ae.y - Te.y), wt(Te, ae), (y.x = yt('x', n)), (y.y = yt('y', n)), (ne = n > x), (x = n), pt() } else { if (!Ee) return if (Ie) { if (((Ie = false), Math.abs(jt.x) >= $t)) jt.x -= ve[0].x - Zt.x if (Math.abs(jt.y) >= $t) jt.y -= ve[0].y - Zt.y } if (((Kt.x = Vt.x), (Kt.y = Vt.y), 0 === jt.x && 0 === jt.y)) return if ('v' === Ee && s.closeOnVerticalDrag) if (!Ue()) { ;(g.y += jt.y), (y.y += jt.y) var f = Ge() return ( (ie = true), ct('onVerticalDrag', f), dt(f), pt(), void 0 ) } var h if ( (Ve(ft(), Vt.x, Vt.y), (fe = true), (Ce = i.currItem.bounds), !Qe('x', jt)) ) Qe('y', jt), bt(y), pt() } } }, rn = function (t) { if (tt.isOldAndroid) { if (re && 'mouseup' === t.type) return if (t.type.indexOf('touch') > -1) clearTimeout(re), (re = setTimeout(function () { re = 0 }, 600)) } if ((ct('pointerUp'), $e(t, false))) t.preventDefault() var e if ($) { var o = n.arraySearch(Xt, t.pointerId, 'id') if (o > -1) if (((e = Xt.splice(o, 1)[0]), navigator.msPointerEnabled)) { var a = { 4: 'mouse', 2: 'touch', 3: 'pen' } if (((e.type = a[t.pointerType]), !e.type)) e.type = t.pointerType || 'mouse' } else e.type = t.pointerType || 'mouse' } var u = Je(t), l, c = u.length if ('mouseup' === t.type) c = 0 if (2 === c) return (ve = null), true if (1 === c) wt(Zt, u[0]) if (0 === c && !Ee && !Ae) { if (!e) if ('mouseup' === t.type) e = { x: t.pageX, y: t.pageY, type: 'mouse' } else if (t.changedTouches && t.changedTouches[0]) e = { x: t.changedTouches[0].pageX, y: t.changedTouches[0].pageY, type: 'touch', } ct('touchRelease', t, e) } var f = -1 if (0 === c) if (((ue = false), n.unbind(window, w, i), Fe(), ye)) f = 0 else if (-1 !== se) f = ft() - se if (((se = 1 === c ? ft() : -1), -1 !== f && f < 150)) l = 'zoom' else l = 'swipe' if (ye && c < 2) { if (((ye = false), 1 === c)) l = 'zoomPointerUp' ct('zoomGestureEnded') } if (((ve = null), fe || ce || Ae || ie)) { if ((Ut(), !Qt)) Qt = on() if ((Qt.calculateSwipeSpeed('x'), !ie)) { if ((ge || Ae) && 0 === c) { var h if (sn(l, Qt)) return l = 'zoomPointerUp' } if (!Ae) { if ('swipe' !== l) return ln(), void 0 if (!ge && x > i.currItem.fitRatio) an(Qt) } } else { var p if (Ge() < s.verticalDragRange) i.close() else { var m = y.y, g = Le qt( 'verticalDrag', 0, 1, 300, n.easing.cubic.out, function (t) { ;(y.y = (i.currItem.initialPosition.y - m) * t + m), dt((1 - g) * t + g), pt() } ), ct('onVerticalDrag', 1) } } } }, on = function () { var t, e, i = { lastFlickOffset: {}, lastFlickDist: {}, lastFlickSpeed: {}, slowDownRatio: {}, slowDownRatioReverse: {}, speedDecelerationRatio: {}, speedDecelerationRatioAbs: {}, distanceOffset: {}, backAnimDestination: {}, backAnimStarted: {}, calculateSwipeSpeed: function (n) { if (te.length > 1) (t = ft() - Wt + 50), (e = te[te.length - 2][n]) else (t = ft() - Yt), (e = Zt[n]) if ( ((i.lastFlickOffset[n] = Kt[n] - e), (i.lastFlickDist[n] = Math.abs(i.lastFlickOffset[n])), i.lastFlickDist[n] > 20) ) i.lastFlickSpeed[n] = i.lastFlickOffset[n] / t else i.lastFlickSpeed[n] = 0 if (Math.abs(i.lastFlickSpeed[n]) < 0.1) i.lastFlickSpeed[n] = 0 ;(i.slowDownRatio[n] = 0.95), (i.slowDownRatioReverse[n] = 1 - i.slowDownRatio[n]), (i.speedDecelerationRatio[n] = 1) }, calculateOverBoundsAnimOffset: function (t, e) { if (!i.backAnimStarted[t]) { if (y[t] > Ce.min[t]) i.backAnimDestination[t] = Ce.min[t] else if (y[t] < Ce.max[t]) i.backAnimDestination[t] = Ce.max[t] if (void 0 !== i.backAnimDestination[t]) if ( ((i.slowDownRatio[t] = 0.7), (i.slowDownRatioReverse[t] = 1 - i.slowDownRatio[t]), i.speedDecelerationRatioAbs[t] < 0.05) ) (i.lastFlickSpeed[t] = 0), (i.backAnimStarted[t] = true), qt( 'bounceZoomPan' + t, y[t], i.backAnimDestination[t], e || 300, n.easing.sine.out, function (e) { ;(y[t] = e), pt() } ) } }, calculateAnimOffset: function (t) { if (!i.backAnimStarted[t]) (i.speedDecelerationRatio[t] = i.speedDecelerationRatio[t] * (i.slowDownRatio[t] + i.slowDownRatioReverse[t] - (i.slowDownRatioReverse[t] * i.timeDiff) / 10)), (i.speedDecelerationRatioAbs[t] = Math.abs( i.lastFlickSpeed[t] * i.speedDecelerationRatio[t] )), (i.distanceOffset[t] = i.lastFlickSpeed[t] * i.speedDecelerationRatio[t] * i.timeDiff), (y[t] += i.distanceOffset[t]) }, panAnimLoop: function () { if (Bt.zoomPan) if ( ((Bt.zoomPan.raf = G(i.panAnimLoop)), (i.now = ft()), (i.timeDiff = i.now - i.lastNow), (i.lastNow = i.now), i.calculateAnimOffset('x'), i.calculateAnimOffset('y'), pt(), i.calculateOverBoundsAnimOffset('x'), i.calculateOverBoundsAnimOffset('y'), i.speedDecelerationRatioAbs.x < 0.05 && i.speedDecelerationRatioAbs.y < 0.05) ) return ( (y.x = Math.round(y.x)), (y.y = Math.round(y.y)), pt(), Ft('zoomPan'), void 0 ) }, } return i }, an = function (t) { if ( (t.calculateSwipeSpeed('y'), (Ce = i.currItem.bounds), (t.backAnimDestination = {}), (t.backAnimStarted = {}), Math.abs(t.lastFlickSpeed.x) <= 0.05 && Math.abs(t.lastFlickSpeed.y) <= 0.05) ) return ( (t.speedDecelerationRatioAbs.x = t.speedDecelerationRatioAbs.y = 0), t.calculateOverBoundsAnimOffset('x'), t.calculateOverBoundsAnimOffset('y'), true ) Nt('zoomPan'), (t.lastNow = ft()), t.panAnimLoop() }, sn = function (t, e) { var o, a, u if (!Ae) oe = h if ('swipe' === t) { var l = Kt.x - Zt.x, c = e.lastFlickDist.x < 10 if (l > Ht && (c || e.lastFlickOffset.x > 20)) a = -1 else if (l < -Ht && (c || e.lastFlickOffset.x < -20)) a = 1 } if (a) { if ((h += a) < 0) (h = s.loop ? wn() - 1 : 0), (u = true) else if (h >= wn()) (h = s.loop ? 0 : wn() - 1), (u = true) if (!u || s.loop) (B += a), (k -= a), (o = true) } var f = L.x * k, p = Math.abs(f - Se.x), m if (!o && f > Se.x != e.lastFlickSpeed.x > 0) m = 333 else (m = Math.abs(e.lastFlickSpeed.x) > 0 ? p / Math.abs(e.lastFlickSpeed.x) : 333), (m = Math.min(m, 400)), (m = Math.max(m, 250)) if (oe === h) o = false if ( ((Ae = true), ct('mainScrollAnimStart'), qt('mainScroll', Se.x, f, m, n.easing.cubic.out, vt, function () { if ((Ut(), (Ae = false), (oe = -1), o || oe !== h)) i.updateCurrItem() ct('mainScrollAnimComplete') }), o) ) i.updateCurrItem(true) return o }, un = function (t) { return (1 / be) * t * A }, ln = function () { var t = x, e = Tt(), o = Dt() if (x < e) t = e else if (x > o) t = o var a = 1, s, u = Le if (ke && !ne && !Pe && x < e) return i.close(), true if (ke) s = function (t) { dt((a - u) * t + u) } return i.zoomTo(t, 0, 200, n.easing.cubic.out, s), true } at('Gestures', { publicMethods: { initGestures: function () { var t = function (t, e, move, n, i) { if (((F = t + e), (N = t + move), (U = t + n), i)) z = t + i else z = '' } if (($ = tt.pointerEvent) && tt.touch) tt.touch = false if ($) if (navigator.msPointerEnabled) t('MSPointer', 'Down', 'Move', 'Up', 'Cancel') else t('pointer', 'down', 'move', 'up', 'cancel') else if (tt.touch) t('touch', 'start', 'move', 'end', 'cancel'), (W = true) else t('mouse', 'down', 'move', 'up') if (((w = N + ' ' + U + ' ' + z), (b = F), $ && !W)) W = navigator.maxTouchPoints > 1 || navigator.msMaxTouchPoints > 1 if ( ((i.likelyTouchDevice = W), (C[F] = tn), (C[N] = en), (C[U] = rn), z) ) C[z] = C[U] if (tt.touch) (b += ' mousedown'), (w += ' mousemove mouseup'), (C.mousedown = C[F]), (C.mousemove = C[N]), (C.mouseup = C[U]) if (!W) s.allowPanToNext = false }, }, }) var cn, fn = function (t, e, o, a) { if (cn) clearTimeout(cn) var u if (((gn = true), (mn = true), t.initialLayout)) (u = t.initialLayout), (t.initialLayout = null) else u = s.getThumbBoundsFn && s.getThumbBoundsFn(h) var l = o ? s.hideAnimationDuration : s.showAnimationDuration, c = function () { if ((Ft('initialZoom'), !o)) { if ((dt(1), e)) e.style.display = 'block' n.addClass(template, 'pswp--animated-in'), ct('initialZoom' + (o ? 'OutEnd' : 'InEnd')) } else i.template.removeAttribute('style'), i.bg.removeAttribute('style') if (a) a() gn = false } if (l && u && void 0 !== u.x) { var p ;(function () { var e = f, a = !i.currItem.src || i.currItem.loadError || s.showHideOpacity if (t.miniImg) t.miniImg.style.webkitBackfaceVisibility = 'hidden' if (!o) (x = u.w / t.w), (y.x = u.x), (y.y = u.y - Z), (i[a ? 'template' : 'bg'].style.opacity = 0.001), pt() if ((Nt('initialZoom'), o && !e)) n.removeClass(template, 'pswp--animated-in') if (a) if (o) n[(e ? 'remove' : 'add') + 'Class']( template, 'pswp--animate_opacity' ) else setTimeout(function () { n.addClass(template, 'pswp--animate_opacity') }, 30) cn = setTimeout( function () { if ((ct('initialZoom' + (o ? 'Out' : 'In')), !o)) { if ( ((x = t.initialZoomLevel), wt(y, t.initialPosition), pt(), dt(1), a) ) template.style.opacity = 1 else dt(1) cn = setTimeout(c, l + 20) } else { var i = u.w / t.w, s = { x: y.x, y: y.y }, f = x, h = Le, p = function (t) { if (1 === t) (x = i), (y.x = u.x), (y.y = u.y - J) else (x = (i - f) * t + f), (y.x = (u.x - s.x) * t + s.x), (y.y = (u.y - J - s.y) * t + s.y) if ((pt(), a)) template.style.opacity = 1 - t else dt(h - t * h) } if (e) qt('initialZoom', 0, 1, l, n.easing.cubic.out, p, c) else p(1), (cn = setTimeout(c, l + 20)) } }, o ? 25 : 90 ) })() } else if ( (ct('initialZoom' + (o ? 'Out' : 'In')), (x = t.initialZoomLevel), wt(y, t.initialPosition), pt(), (template.style.opacity = o ? 0 : 1), dt(1), l) ) setTimeout(function () { c() }, l) else c() }, dn, hn = {}, pn = [], mn, gn, vn = { index: 0, errorMsg: '<div class="pswp__error-msg"><a href="%url%" target="_blank">The image</a> could not be loaded.</div>', forceProgressiveLoading: false, preload: [1, 1], getNumItemsFn: function () { return dn.length }, }, yn, wn, bn, Cn = function () { return { center: { x: 0, y: 0 }, max: { x: 0, y: 0 }, min: { x: 0, y: 0 }, } }, Sn = function (t, e, n) { var i = t.bounds ;(i.center.x = Math.round((hn.x - e) / 2)), (i.center.y = Math.round((hn.y - n) / 2) + t.vGap.top), (i.max.x = e > hn.x ? Math.round(hn.x - e) : i.center.x), (i.max.y = n > hn.y ? Math.round(hn.y - n) + t.vGap.top : i.center.y), (i.min.x = e > hn.x ? 0 : i.center.x), (i.min.y = n > hn.y ? t.vGap.top : i.center.y) }, xn = function (t, e, n) { if (t.src && !t.loadError) { var i = !n if (i) { if (!t.vGap) t.vGap = { top: 0, bottom: 0 } ct('parseVerticalMargin', t) } if ( ((hn.x = e.x), (hn.y = e.y - t.vGap.top - t.vGap.bottom), i) ) { var o = hn.x / t.w, a = hn.y / t.h t.fitRatio = o < a ? o : a var u = s.scaleMode if ('orig' === u) n = 1 else if ('fit' === u) n = t.fitRatio if (n > 1) n = 1 if (((t.initialZoomLevel = n), !t.bounds)) t.bounds = { center: { x: 0, y: 0 }, max: { x: 0, y: 0 }, min: { x: 0, y: 0 }, } } if (!n) return if ((Sn(t, t.w * n, t.h * n), i && n === t.initialZoomLevel)) t.initialPosition = t.bounds.center return t.bounds } else return ( (t.w = t.h = 0), (t.initialZoomLevel = t.fitRatio = 1), (t.bounds = { center: { x: 0, y: 0 }, max: { x: 0, y: 0 }, min: { x: 0, y: 0 }, }), (t.initialPosition = t.bounds.center), t.bounds ) }, An = function (index, t, e, n, o, a) { if (!t.loadError) if (n) if ( ((t.imageAppended = true), En(t, n, t === i.currItem && rt), e.appendChild(n), a) ) setTimeout(function () { if (t && t.loaded && t.placeholder) (t.placeholder.style.display = 'none'), (t.placeholder = null) }, 500) }, _n = function (t) { ;(t.loading = true), (t.loaded = false) var e = (t.img = n.createEl('pswp__img', 'img')), i = function () { if (((t.loading = false), (t.loaded = true), t.loadComplete)) t.loadComplete(t) else t.img = null ;(e.onload = e.onerror = null), (e = null) } return ( (e.onload = i), (e.onerror = function () { ;(t.loadError = true), i() }), (e.src = t.src), e ) }, Tn = function (t, e) { if (t.src && t.loadError && t.container) { if (e) t.container.innerHTML = '' return ( (t.container.innerHTML = s.errorMsg.replace('%url%', t.src)), true ) } }, En = function (t, e, n) { if (t.src) { if (!e) e = t.container.lastChild var i = n ? t.w : Math.round(t.w * t.fitRatio), o = n ? t.h : Math.round(t.h * t.fitRatio) if (t.placeholder && !t.loaded) (t.placeholder.style.width = i + 'px'), (t.placeholder.style.height = o + 'px') ;(e.style.width = i + 'px'), (e.style.height = o + 'px') } }, In = function () { if (pn.length) { for (var t, e = 0; e < pn.length; e++) if ((t = pn[e]).holder.index === t.index) An( t.index, t.item, t.baseDiv, t.img, false, t.clearPlaceholder ) pn = [] } } at('Controller', { publicMethods: { lazyLoadItem: function (index) { index = st(index) var t = yn(index) if (t && ((!t.loaded && !t.loading) || I)) if ((ct('gettingData', index, t), t.src)) _n(t) }, initController: function () { if ( (n.extend(s, vn, true), (i.items = dn = items), (yn = i.getItemAt), (wn = s.getNumItemsFn), (bn = s.loop), wn() < 3) ) s.loop = false lt('beforeChange', function (diff) { var t = s.preload, e = null === diff ? true : diff >= 0, n = Math.min(t[0], wn()), o = Math.min(t[1], wn()), a for (a = 1; a <= (e ? o : n); a++) i.lazyLoadItem(h + a) for (a = 1; a <= (e ? n : o); a++) i.lazyLoadItem(h - a) }), lt('initialLayout', function () { i.currItem.initialLayout = s.getThumbBoundsFn && s.getThumbBoundsFn(h) }), lt('mainScrollAnimComplete', In), lt('initialZoomInEnd', In), lt('destroy', function () { for (var t, e = 0; e < dn.length; e++) { if ((t = dn[e]).container) t.container = null if (t.placeholder) t.placeholder = null if (t.img) t.img = null if (t.preloader) t.preloader = null if (t.loadError) t.loaded = t.loadError = false } pn = null }) }, getItemAt: function (index) { if (index >= 0) return void 0 !== dn[index] ? dn[index] : false else return false }, allowProgressiveImg: function () { return ( s.forceProgressiveLoading || !W || s.mouseUsed || screen.width > 1200 ) }, setContent: function (t, index) { if (s.loop) index = st(index) var e = i.getItemAt(t.index) if (e) e.container = null var o = i.getItemAt(index), a if (!o) return (t.el.innerHTML = ''), void 0 ct('gettingData', index, o), (t.index = index), (t.item = o) var u = (o.container = n.createEl('pswp__zoom-wrap')) if (!o.src && o.html) if (o.html.tagName) u.appendChild(o.html) else u.innerHTML = o.html if ((Tn(o), xn(o, S), o.src && !o.loadError && !o.loaded)) { if ( ((o.loadComplete = function (e) { if (l) { if (t && t.index === index) { if (Tn(e, true)) { if ( ((e.loadComplete = e.img = null), xn(e, S), mt(e), t.index === h) ) i.updateCurrZoomItem() return } if (!e.imageAppended) if (tt.transform && (Ae || gn)) pn.push({ item: e, baseDiv: u, img: e.img, index: index, holder: t, clearPlaceholder: true, }) else An(index, e, u, e.img, Ae || gn, true) else if (!gn && e.placeholder) (e.placeholder.style.display = 'none'), (e.placeholder = null) } ;(e.loadComplete = null), (e.img = null), ct('imageLoadComplete', index, e) } }), n.features.transform) ) { var c = 'pswp__img pswp__img--placeholder' c += o.msrc ? '' : ' pswp__img--placeholder--blank' var placeholder = n.createEl(c, o.msrc ? 'img' : '') if (o.msrc) placeholder.src = o.msrc En(o, placeholder), u.appendChild(placeholder), (o.placeholder = placeholder) } if (!o.loading) _n(o) if (i.allowProgressiveImg()) if (!mn && tt.transform) pn.push({ item: o, baseDiv: u, img: o.img, index: index, holder: t, }) else An(index, o, u, o.img, true, true) } else if (o.src && !o.loadError) ((a = n.createEl('pswp__img', 'img')).style.opacity = 1), (a.src = o.src), En(o, a), An(index, o, u, a, true) if (!mn && index === h) (xe = u.style), fn(o, a || o.img) else mt(o) ;(t.el.innerHTML = ''), t.el.appendChild(u) }, cleanSlide: function (t) { if (t.img) t.img.onload = t.img.onerror = null t.loaded = t.loading = t.img = t.imageAppended = false }, }, }) var Dn, kn = {}, Mn = function (t, e, n) { var i = document.createEvent('CustomEvent'), o = { origEvent: t, target: t.target, releasePoint: e, pointerType: n || 'touch', } i.initCustomEvent('pswpTap', true, true, o), t.target.dispatchEvent(i) }, Ln at('Tap', { publicMethods: { initTap: function () { lt('firstTouchStart', i.onTapStart), lt('touchRelease', i.onTapRelease), lt('destroy', function () { ;(kn = {}), (Dn = null) }) }, onTapStart: function (t) { if (t.length > 1) clearTimeout(Dn), (Dn = null) }, onTapRelease: function (t, e) { if (e) if (!fe && !le && !Rt) { var i = e, o if (Dn) if ((clearTimeout(Dn), (Dn = null), Be(i, kn))) return ct('doubleTap', i), void 0 if ('mouse' === e.type) return Mn(t, e, 'mouse'), void 0 if ( 'BUTTON' === t.target.tagName.toUpperCase() || n.hasClass(t.target, 'pswp__single-tap') ) return Mn(t, e), void 0 wt(kn, i), (Dn = setTimeout(function () { Mn(t, e), (Dn = null) }, 300)) } }, }, }), at('DesktopZoom', { publicMethods: { initDesktopZoom: function () { if (!X) if (W) lt('mouseUsed', function () { i.setupDesktopZoom() }) else i.setupDesktopZoom(true) }, setupDesktopZoom: function (t) { Ln = {} var events = 'wheel mousewheel DOMMouseScroll' lt('bindEvents', function () { n.bind(template, events, i.handleMouseWheel) }), lt('unbindEvents', function () { if (Ln) n.unbind(template, events, i.handleMouseWheel) }), (i.mouseZoomedIn = false) var e, o = function () { if (i.mouseZoomedIn) n.removeClass(template, 'pswp--zoomed-in'), (i.mouseZoomedIn = false) if (x < 1) n.addClass(template, 'pswp--zoom-allowed') else n.removeClass(template, 'pswp--zoom-allowed') a() }, a = function () { if (e) n.removeClass(template, 'pswp--dragging'), (e = false) } if ( (lt('resize', o), lt('afterChange', o), lt('pointerDown', function () { if (i.mouseZoomedIn) (e = true), n.addClass(template, 'pswp--dragging') }), lt('pointerUp', a), !t) ) o() }, handleMouseWheel: function (t) { if (x <= i.currItem.fitRatio) { if (s.modal) if (!s.closeOnScroll || Rt || ue) t.preventDefault() else if (H && Math.abs(t.deltaY) > 2) (f = true), i.close() return true } if ((t.stopPropagation(), (Ln.x = 0), 'deltaX' in t)) if (1 === t.deltaMode) (Ln.x = 18 * t.deltaX), (Ln.y = 18 * t.deltaY) else (Ln.x = t.deltaX), (Ln.y = t.deltaY) else if ('wheelDelta' in t) { if (t.wheelDeltaX) Ln.x = -0.16 * t.wheelDeltaX if (t.wheelDeltaY) Ln.y = -0.16 * t.wheelDeltaY else Ln.y = -0.16 * t.wheelDelta } else if ('detail' in t) Ln.y = t.detail else return _t(x, true) var e = y.x - Ln.x, n = y.y - Ln.y if ( s.modal || (e <= Ce.min.x && e >= Ce.max.x && n <= Ce.min.y && n >= Ce.max.y) ) t.preventDefault() i.panTo(e, n) }, toggleDesktopZoom: function (t) { t = t || { x: S.x / 2 + M.x, y: S.y / 2 + M.y } var e = s.getDoubleTapZoom(true, i.currItem), o = x === e ;(i.mouseZoomedIn = !o), i.zoomTo(o ? i.currItem.initialZoomLevel : e, t, 333), n[(!o ? 'add' : 'remove') + 'Class']( template, 'pswp--zoomed-in' ) }, }, }) var Pn = { history: true, galleryUID: 1 }, On, Bn, Rn, Fn, Nn, Un, qn, zn, Hn, $n, Yn, Wn, Vn = function () { return Yn.hash.substring(1) }, Gn = function () { if (On) clearTimeout(On) if (Rn) clearTimeout(Rn) }, jn = function () { var hash = Vn(), t = {} if (hash.length < 5) return t var e, n = hash.split('&') for (e = 0; e < n.length; e++) if (n[e]) { var i = n[e].split('=') if (!(i.length < 2)) t[i[0]] = i[1] } if (s.galleryPIDs) { var o = t.pid for (t.pid = 0, e = 0; e < dn.length; e++) if (dn[e].pid === o) { t.pid = e break } } else t.pid = parseInt(t.pid, 10) - 1 if (t.pid < 0) t.pid = 0 return t }, Kn = function () { if (Rn) clearTimeout(Rn) if (Rt || ue) return (Rn = setTimeout(Kn, 500)), void 0 if (Fn) clearTimeout(Bn) else Fn = true var t = h + 1, e = yn(h) if (e.hasOwnProperty('pid')) t = e.pid var n = qn + '&' + 'gid=' + s.galleryUID + '&' + 'pid=' + t if (!zn) if (-1 === Yn.hash.indexOf(n)) $n = true var i = Yn.href.split('#')[0] + '#' + n if (Wn) { if ('#' + n !== window.location.hash) history[zn ? 'replaceState' : 'pushState']( '', document.title, i ) } else if (zn) Yn.replace(i) else Yn.hash = n ;(zn = true), (Bn = setTimeout(function () { Fn = false }, 60)) } at('History', { publicMethods: { initHistory: function () { if ((n.extend(s, Pn, true), s.history)) { if ( ((Yn = window.location), ($n = false), (Hn = false), (zn = false), (qn = Vn()), (Wn = 'pushState' in history), qn.indexOf('gid=') > -1) ) qn = (qn = qn.split('&gid=')[0]).split('?gid=')[0] lt('afterChange', i.updateURL), lt('unbindEvents', function () { n.unbind(window, 'hashchange', i.onHashChange) }) var t = function () { if (((Un = true), !Hn)) if ($n) history.back() else if (qn) Yn.hash = qn else if (Wn) history.pushState( '', document.title, Yn.pathname + Yn.search ) else Yn.hash = '' Gn() } lt('unbindEvents', function () { if (f) t() }), lt('destroy', function () { if (!Un) t() }), lt('firstUpdate', function () { h = jn().pid }) var index = qn.indexOf('pid=') if (index > -1) if ('&' === (qn = qn.substring(0, index)).slice(-1)) qn = qn.slice(0, -1) setTimeout(function () { if (l) n.bind(window, 'hashchange', i.onHashChange) }, 40) } }, onHashChange: function () { if (Vn() === qn) return (Hn = true), i.close(), void 0 if (!Fn) (Nn = true), i.goTo(jn().pid), (Nn = false) }, updateURL: function () { if ((Gn(), !Nn)) if (!zn) Kn() else On = setTimeout(Kn, 800) }, }, }), n.extend(i, zt) } return t }) }, 12552: function (t, e, n) { 'use strict' var i, o /*! PhotoSwipe Default UI - 4.1.3 - 2019-01-08 * http://photoswipe.com * Copyright (c) 2019 Dmitry Semenov; */ !(function (a, factory) { if (true) !( void 0 !== (o = 'function' == typeof (i = factory) ? i.call(e, n, e, t) : i) && (t.exports = o) ) else if ('object' == typeof e) t.exports = factory() else a.PhotoSwipeUI_Default = factory() })(this, function () { var t return function (t, e) { var n = this, i = false, o = true, a, s, u, l, c, f, h, p = true, m, g, v, y, w, b, C, S, x = { barsSize: { top: 44, bottom: 'auto' }, closeElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'], timeToIdle: 4e3, timeToIdleOutside: 1e3, loadingIndicatorDelay: 1e3, addCaptionHTMLFn: function (t, e) { if (!t.title) return (e.children[0].innerHTML = ''), false else return (e.children[0].innerHTML = t.title), true }, closeEl: true, captionEl: true, fullscreenEl: true, zoomEl: true, shareEl: true, counterEl: true, arrowEl: true, preloaderEl: true, tapToClose: false, tapToToggleControls: true, clickToCloseNonZoomable: true, shareButtons: [ { id: 'facebook', label: 'Share on Facebook', url: 'https://www.facebook.com/sharer/sharer.php?u={{url}}', }, { id: 'twitter', label: 'Tweet', url: 'https://twitter.com/intent/tweet?text={{text}}&url={{url}}', }, { id: 'pinterest', label: 'Pin it', url: 'http://www.pinterest.com/pin/create/button/' + '?url={{url}}&media={{image_url}}&description={{text}}', }, { id: 'download', label: 'Download image', url: '{{raw_image_url}}', download: true, }, ], getImageURLForShare: function () { return t.currItem.src || '' }, getPageURLForShare: function () { return window.location.href }, getTextForShare: function () { return t.currItem.title || '' }, indexIndicatorSep: ' / ', fitControlsWidth: 1200, }, A, _, T = function (t) { if (A) return true if (((t = t || window.event), S.timeToIdle && S.mouseUsed && !g)) z() for ( var n, i, o = (t.target || t.srcElement).getAttribute('class') || '', a, s = 0; s < K.length; s++ ) if ((i = K[s]).onTap && o.indexOf('pswp__' + i.name) > -1) i.onTap(), (a = true) if (a) { if (t.stopPropagation) t.stopPropagation() A = true var u = e.features.isOldAndroid ? 600 : 30 _ = setTimeout(function () { A = false }, u) } }, E = function () { return ( !t.likelyTouchDevice || S.mouseUsed || screen.width > S.fitControlsWidth ) }, I = function (el, t, add) { e[(add ? 'add' : 'remove') + 'Class'](el, 'pswp__' + t) }, k = function () { var t = 1 === S.getNumItemsFn() if (t !== C) I(s, 'ui--one-slide', t), (C = t) }, M = function () { I(h, 'share-modal--hidden', p) }, L = function () { if (!(p = !p)) M(), setTimeout(function () { if (!p) e.addClass(h, 'pswp__share-modal--fade-in') }, 30) else e.removeClass(h, 'pswp__share-modal--fade-in'), setTimeout(function () { if (p) M() }, 300) if (!p) O() return false }, P = function (e) { var n = (e = e || window.event).target || e.srcElement if ((t.shout('shareLinkClick', e, n), !n.href)) return false if (n.hasAttribute('download')) return true if ( (window.open( n.href, 'pswp_share', 'scrollbars=yes,resizable=yes,toolbar=no,' + 'location=yes,width=550,height=420,top=100,left=' + (window.screen ? Math.round(screen.width / 2 - 275) : 100) ), !p) ) L() return false }, O = function () { for ( var t = '', e, n, i, o, a, s = 0; s < S.shareButtons.length; s++ ) if ( ((e = S.shareButtons[s]), (i = S.getImageURLForShare(e)), (o = S.getPageURLForShare(e)), (a = S.getTextForShare(e)), (t += '<a href="' + (n = e.url .replace('{{url}}', encodeURIComponent(o)) .replace('{{image_url}}', encodeURIComponent(i)) .replace('{{raw_image_url}}', i) .replace('{{text}}', encodeURIComponent(a))) + '" target="_blank" ' + 'class="pswp__share--' + e.id + '"' + (e.download ? 'download' : '') + '>' + e.label + '</a>'), S.parseShareButtonOut) ) t = S.parseShareButtonOut(e, t) ;(h.children[0].innerHTML = t), (h.children[0].onclick = P) }, B = function (t) { for (var n = 0; n < S.closeElClasses.length; n++) if (e.hasClass(t, 'pswp__' + S.closeElClasses[n])) return true }, F, N, U = 0, z = function () { if ((clearTimeout(N), (U = 0), g)) n.setIdle(false) }, H = function (t) { var e = (t = t ? t : window.event).relatedTarget || t.toElement if (!e || 'HTML' === e.nodeName) clearTimeout(N), (N = setTimeout(function () { n.setIdle(true) }, S.timeToIdleOutside)) }, $ = function () { if (S.fullscreenEl && !e.features.isOldAndroid) { if (!a) a = n.getFullscreenAPI() if (a) e.bind(document, a.eventK, n.updateFullscreen), n.updateFullscreen(), e.addClass(t.template, 'pswp--supports-fs') else e.removeClass(t.template, 'pswp--supports-fs') } }, Y = function () { if (S.preloaderEl) W(true), v('beforeChange', function () { clearTimeout(b), (b = setTimeout(function () { if (t.currItem && t.currItem.loading) { if ( !t.allowProgressiveImg() || (t.currItem.img && !t.currItem.img.naturalWidth) ) W(false) } else W(true) }, S.loadingIndicatorDelay)) }), v('imageLoadComplete', function (index, e) { if (t.currItem === e) W(true) }) }, W = function (t) { if (w !== t) I(y, 'preloader--active', !t), (w = t) }, V = function (t) { var n = t.vGap if (E()) { var i = S.barsSize if (S.captionEl && 'auto' === i.bottom) { if (!l) (l = e.createEl( 'pswp__caption pswp__caption--fake' )).appendChild(e.createEl('pswp__caption__center')), s.insertBefore(l, u), e.addClass(s, 'pswp__ui--fit') if (S.addCaptionHTMLFn(t, l, true)) { var o = l.clientHeight n.bottom = parseInt(o, 10) || 44 } else n.bottom = i.top } else n.bottom = 'auto' === i.bottom ? 0 : i.bottom n.top = i.top } else n.top = n.bottom = 0 }, G = function () { if (S.timeToIdle) v('mouseUsed', function () { e.bind(document, 'mousemove', z), e.bind(document, 'mouseout', H), (F = setInterval(function () { if (2 === ++U) n.setIdle(true) }, S.timeToIdle / 2)) }) }, j = function () { var t v('onVerticalDrag', function (t) { if (o && t < 0.95) n.hideControls() else if (!o && t >= 0.95) n.showControls() }), v('onPinchClose', function (e) { if (o && e < 0.9) n.hideControls(), (t = true) else if (t && !o && e > 0.9) n.showControls() }), v('zoomGestureEnded', function () { if ((t = false) && !o) n.showControls() }) }, K = [ { name: 'caption', option: 'captionEl', onInit: function (el) { u = el }, }, { name: 'share-modal', option: 'shareEl', onInit: function (el) { h = el }, onTap: function () { L() }, }, { name: 'button--share', option: 'shareEl', onInit: function (el) { f = el }, onTap: function () { L() }, }, { name: 'button--zoom', option: 'zoomEl', onTap: t.toggleDesktopZoom, }, { name: 'counter', option: 'counterEl', onInit: function (el) { c = el }, }, { name: 'button--close', option: 'closeEl', onTap: t.close }, { name: 'button--arrow--left', option: 'arrowEl', onTap: t.prev }, { name: 'button--arrow--right', option: 'arrowEl', onTap: t.next }, { name: 'button--fs', option: 'fullscreenEl', onTap: function () { if (a.isFullscreen()) a.exit() else a.enter() }, }, { name: 'preloader', option: 'preloaderEl', onInit: function (el) { y = el }, }, ], Z = function () { var t, n, i, o = function (o) { if (o) for (var a = o.length, s = 0; s < a; s++) { ;(t = o[s]), (n = t.className) for (var u = 0; u < K.length; u++) if (((i = K[u]), n.indexOf('pswp__' + i.name) > -1)) if (S[i.option]) { if ( (e.removeClass(t, 'pswp__element--disabled'), i.onInit) ) i.onInit(t) } else e.addClass(t, 'pswp__element--disabled') } } o(s.children) var a = e.getChildByClass(s, 'pswp__top-bar') if (a) o(a.children) } ;(n.init = function () { if ( (e.extend(t.options, x, true), (S = t.options), (s = e.getChildByClass(t.scrollWrap, 'pswp__ui')), (v = t.listen), j(), v('beforeChange', n.update), v('doubleTap', function (e) { var n = t.currItem.initialZoomLevel if (t.getZoomLevel() !== n) t.zoomTo(n, e, 333) else t.zoomTo(S.getDoubleTapZoom(false, t.currItem), e, 333) }), v('preventDragEvent', function (t, e, n) { var i = t.target || t.srcElement if ( i && i.getAttribute('class') && t.type.indexOf('mouse') > -1 && (i.getAttribute('class').indexOf('__caption') > 0 || /(SMALL|STRONG|EM)/i.test(i.tagName)) ) n.prevent = false }), v('bindEvents', function () { if ( (e.bind(s, 'pswpTap click', T), e.bind(t.scrollWrap, 'pswpTap', n.onGlobalTap), !t.likelyTouchDevice) ) e.bind(t.scrollWrap, 'mouseover', n.onMouseOver) }), v('unbindEvents', function () { if (!p) L() if (F) clearInterval(F) if ( (e.unbind(document, 'mouseout', H), e.unbind(document, 'mousemove', z), e.unbind(s, 'pswpTap click', T), e.unbind(t.scrollWrap, 'pswpTap', n.onGlobalTap), e.unbind(t.scrollWrap, 'mouseover', n.onMouseOver), a) ) { if ( (e.unbind(document, a.eventK, n.updateFullscreen), a.isFullscreen()) ) (S.hideAnimationDuration = 0), a.exit() a = null } }), v('destroy', function () { if (S.captionEl) { if (l) s.removeChild(l) e.removeClass(u, 'pswp__caption--empty') } if (h) h.children[0].onclick = null e.removeClass(s, 'pswp__ui--over-close'), e.addClass(s, 'pswp__ui--hidden'), n.setIdle(false) }), !S.showAnimationDuration) ) e.removeClass(s, 'pswp__ui--hidden') if ( (v('initialZoomIn', function () { if (S.showAnimationDuration) e.removeClass(s, 'pswp__ui--hidden') }), v('initialZoomOut', function () { e.addClass(s, 'pswp__ui--hidden') }), v('parseVerticalMargin', V), Z(), S.shareEl && f && h) ) p = true k(), G(), $(), Y() }), (n.setIdle = function (t) { ;(g = t), I(s, 'ui--idle', t) }), (n.update = function () { if (o && t.currItem) { if ((n.updateIndexIndicator(), S.captionEl)) S.addCaptionHTMLFn(t.currItem, u), I(u, 'caption--empty', !t.currItem.title) i = true } else i = false if (!p) L() k() }), (n.updateFullscreen = function (n) { if (n) setTimeout(function () { t.setScrollOffset(0, e.getScrollY()) }, 50) e[(a.isFullscreen() ? 'add' : 'remove') + 'Class']( t.template, 'pswp--fs' ) }), (n.updateIndexIndicator = function () { if (S.counterEl) c.innerHTML = t.getCurrentIndex() + 1 + S.indexIndicatorSep + S.getNumItemsFn() }), (n.onGlobalTap = function (i) { var a = (i = i || window.event).target || i.srcElement if (!A) if (i.detail && 'mouse' === i.detail.pointerType) { if (B(a)) return t.close(), void 0 if (e.hasClass(a, 'pswp__img')) if ( 1 === t.getZoomLevel() && t.getZoomLevel() <= t.currItem.fitRatio ) { if (S.clickToCloseNonZoomable) t.close() } else t.toggleDesktopZoom(i.detail.releasePoint) } else { if (S.tapToToggleControls) if (o) n.hideControls() else n.showControls() if (S.tapToClose && (e.hasClass(a, 'pswp__img') || B(a))) return t.close(), void 0 } }), (n.onMouseOver = function (t) { var e = (t = t || window.event).target || t.srcElement I(s, 'ui--over-close', B(e)) }), (n.hideControls = function () { e.addClass(s, 'pswp__ui--hidden'), (o = false) }), (n.showControls = function () { if (((o = true), !i)) n.update() e.removeClass(s, 'pswp__ui--hidden') }), (n.supportsFullscreen = function () { var d = document return !!( d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen ) }), (n.getFullscreenAPI = function () { var e = document.documentElement, n, i = 'fullscreenchange' if (e.requestFullscreen) n = { enterK: 'requestFullscreen', exitK: 'exitFullscreen', elementK: 'fullscreenElement', eventK: i, } else if (e.mozRequestFullScreen) n = { enterK: 'mozRequestFullScreen', exitK: 'mozCancelFullScreen', elementK: 'mozFullScreenElement', eventK: 'moz' + i, } else if (e.webkitRequestFullscreen) n = { enterK: 'webkitRequestFullscreen', exitK: 'webkitExitFullscreen', elementK: 'webkitFullscreenElement', eventK: 'webkit' + i, } else if (e.msRequestFullscreen) n = { enterK: 'msRequestFullscreen', exitK: 'msExitFullscreen', elementK: 'msFullscreenElement', eventK: 'MSFullscreenChange', } if (n) (n.enter = function () { if ( ((m = S.closeOnScroll), (S.closeOnScroll = false), 'webkitRequestFullscreen' === this.enterK) ) t.template[this.enterK](Element.ALLOW_KEYBOARD_INPUT) else return t.template[this.enterK]() }), (n.exit = function () { return (S.closeOnScroll = m), document[this.exitK]() }), (n.isFullscreen = function () { return document[this.elementK] }) return n }) } }) }, 12553: function (t, e, n) { 'use strict' var i = n(17) if (!window.Utility) window.Utility = {} ;(Utility.decodeJsonAttribute = function (t) { return JSON.parse(decodeURIComponent(atob(t))) }), i(window.loadMapsContent) }, 12554: function (t, e, n) { 'use strict' n(12555) var i = n(17), Utils if (n(3539).animationsEnabled()) i(window).on('load', function () { var t if ( !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent || navigator.vendor || window.opera ) ) { var items = i('.u-parallax') if (items.length > 0) { items.each(function () { var t = i(this) if ( (t.css('background-attachment', 'fixed'), t.hasClass('u-shading')) ) t.attr( 'data-bottom-top', 'background-position: 50% 0, 50% 0vh;' ), t.attr( 'data-top-bottom', 'background-position: 50% 0, 50% -20vh' ) else t.attr('data-bottom-top', 'background-position: 50% 0vh;'), t.attr('data-top-bottom', 'background-position: 50% -20vh') }) var e = { forceHeight: false } skrollr.init(e) } } }) }, 12555: function (t, e) { var e = void 0, t = void 0 ;(function () { /*! * skrollr core * * Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr * * Free to use under terms of MIT license */ !(function (e, n, i) { 'use strict' function o(t) { if ( ((c = n.documentElement), (f = n.body), X(), (Mt = this), (Nt = (t = t || {}).constants || {}), t.easing) ) for (var i in t.easing) nt[i] = t.easing[i] if ( ((Jt = t.edgeStrategy || 'set'), (Ot = { beforerender: t.beforerender, render: t.render, keyframe: t.keyframe, }), (Bt = false !== t.forceHeight)) ) Ft = t.scale || 1 if ( ((Ut = t.mobileDeceleration || E), (Gt = false !== t.smoothScrolling), (jt = t.smoothScrollingDuration || k), (Kt = { targetTop: Mt.getScrollTop() }), (Qt = ( t.mobileCheck || function () { return /Android|iPhone|iPad|iPod|BlackBerry/i.test( navigator.userAgent || navigator.vendor || e.opera ) } )())) ) { if ((Pt = n.getElementById(t.skrollrBody || I))) mt() rt(), At(c, [C, A], [S]) } else At(c, [C, x], [S]) Mt.refresh(), gt(e, 'resize orientationchange', function () { var t = c.clientWidth, e = c.clientHeight if (e !== Yt || t !== $t) (Yt = e), ($t = t), (Wt = true) }) var o = J() return ( !(function t() { st(), (ie = o(t)) })(), Mt ) } var a = { get: function () { return Mt }, init: function (t) { return Mt || new o(t) }, VERSION: '0.6.30', }, s = Object.prototype.hasOwnProperty, u = e.Math, l = e.getComputedStyle, c, f, h = 'touchstart', p = 'touchmove', m = 'touchcancel', g = 'touchend', v = 'skrollable', y = v + '-before', w = v + '-between', b = v + '-after', C = 'skrollr', S = 'no-' + C, x = C + '-desktop', A = C + '-mobile', _ = 'linear', T = 1e3, E = 0.004, I = 'skrollr-body', k = 200, M = 'start', L = 'end', P = 'center', O = 'bottom', B = '___skrollable_id', F = /^(?:input|textarea|button|select)$/i, N = /^\s+|\s+$/g, U = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/, z = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi, H = /^(@?[a-z\-]+)\[(\w+)\]$/, $ = /-([a-z0-9_])/g, Y = function (t, e) { return e.toUpperCase() }, W = /[\-+]?[\d]*\.?[\d]+/g, V = /\{\?\}/g, G = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g, j = /[a-z\-]+-gradient/g, K = '', Z = '', X = function () { var t = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/ if (l) { var style = l(f, null) for (var e in style) if ((K = e.match(t) || (+e == e && style[e].match(t)))) break if (!K) return (K = Z = ''), void 0 if ('-' === (K = K[0]).slice(0, 1)) (Z = K), (K = { '-webkit-': 'webkit', '-moz-': 'Moz', '-ms-': 'ms', '-o-': 'O', }[K]) else Z = '-' + K.toLowerCase() + '-' } }, J = function () { var t = e.requestAnimationFrame || e[K.toLowerCase() + 'RequestAnimationFrame'], n = Dt() if (Qt || !t) t = function (t) { var i = Dt() - n, o = u.max(0, 1e3 / 60 - i) return e.setTimeout(function () { ;(n = Dt()), t() }, o) } return t }, tt = function () { var t = e.cancelAnimationFrame || e[K.toLowerCase() + 'CancelAnimationFrame'] if (Qt || !t) t = function (t) { return e.clearTimeout(t) } return t }, nt = { begin: function () { return 0 }, end: function () { return 1 }, linear: function (t) { return t }, quadratic: function (t) { return t * t }, cubic: function (t) { return t * t * t }, swing: function (t) { return -u.cos(t * u.PI) / 2 + 0.5 }, sqrt: function (t) { return u.sqrt(t) }, outCubic: function (t) { return u.pow(t - 1, 3) + 1 }, bounce: function (t) { var e if (t <= 0.5083) e = 3 else if (t <= 0.8489) e = 9 else if (t <= 0.96208) e = 27 else if (t <= 0.99981) e = 91 else return 1 return 1 - u.abs((3 * u.cos(t * e * 1.028)) / e) }, } ;(o.prototype.refresh = function (t) { var e, o, a = false if (t === i) (a = true), (Lt = []), (Xt = 0), (t = n.getElementsByTagName('*')) else if (t.length === i) t = [t] for (e = 0, o = t.length; e < o; e++) { var el = t[e], s = el, u = [], l = Gt, c = Jt, f = false if (a && B in el) delete el[B] if (el.attributes) { for (var h = 0, p = el.attributes.length; h < p; h++) { var m = el.attributes[h] if ('data-anchor-target' !== m.name) if ('data-smooth-scrolling' !== m.name) if ('data-edge-strategy' !== m.name) if ('data-emit-events' !== m.name) { var g = m.name.match(U) if (null !== g) { var y = { props: m.value, element: el, eventType: m.name.replace($, Y), } u.push(y) var w = g[1] if (w) y.constant = w.substr(1) var b = g[2] if (/p$/.test(b)) (y.isPercentage = true), (y.offset = (0 | b.slice(0, -1)) / 100) else y.offset = 0 | b var C = g[3], S = g[4] || C if (!C || C === M || C === L) { if (((y.mode = 'absolute'), C === L)) y.isEnd = true else if (!y.isPercentage) y.offset = y.offset * Ft } else (y.mode = 'relative'), (y.anchors = [C, S]) } } else f = true else c = m.value else l = 'off' !== m.value else if (null === (s = n.querySelector(m.value))) throw 'Unable to find anchor target "' + m.value + '"' } if (u.length) { var x, A, id if (!a && B in el) (id = el[B]), (x = Lt[id].styleAttr), (A = Lt[id].classAttr) else (id = el[B] = Xt++), (x = el.style.cssText), (A = xt(el)) ;(Lt[id] = { element: el, styleAttr: x, classAttr: A, anchorTarget: s, keyFrames: u, smoothScrolling: l, edgeStrategy: c, emitEvents: f, lastFrameIndex: -1, }), At(el, [v], []) } } } for (bt(), e = 0, o = t.length; e < o; e++) { var sk = Lt[t[e][B]] if (sk !== i) ut(sk), ct(sk) } return Mt }), (o.prototype.relativeToAbsolute = function (t, e, n) { var i = c.clientHeight, o = t.getBoundingClientRect(), a = o.top, s = o.bottom - o.top if (e === O) a -= i else if (e === P) a -= i / 2 if (n === O) a += s else if (n === P) a += s / 2 return ((a += Mt.getScrollTop()) + 0.5) | 0 }), (o.prototype.animateTo = function (t, e) { e = e || {} var n = Dt(), o = Mt.getScrollTop(), a = e.duration === i ? T : e.duration if ( !(Vt = { startTop: o, topDiff: t - o, targetTop: t, duration: a, startTime: n, endTime: n + a, easing: nt[e.easing || _], done: e.done, }).topDiff ) { if (Vt.done) Vt.done.call(Mt, false) Vt = i } return Mt }), (o.prototype.stopAnimateTo = function () { if (Vt && Vt.done) Vt.done.call(Mt, true) Vt = i }), (o.prototype.isAnimatingTo = function () { return !!Vt }), (o.prototype.isMobile = function () { return Qt }), (o.prototype.setScrollTop = function (t, n) { if (((Zt = true === n), Qt)) te = u.min(u.max(t, 0), Rt) else e.scrollTo(0, t) return Mt }), (o.prototype.getScrollTop = function () { if (Qt) return te else return e.pageYOffset || c.scrollTop || f.scrollTop || 0 }), (o.prototype.getMaxScrollTop = function () { return Rt }), (o.prototype.on = function (t, e) { return (Ot[t] = e), Mt }), (o.prototype.off = function (t) { return delete Ot[t], Mt }), (o.prototype.destroy = function () { var t tt()(ie), yt(), At(c, [S], [C, x, A]) for (var e = 0, n = Lt.length; e < n; e++) pt(Lt[e].element) if ( ((c.style.overflow = f.style.overflow = ''), (c.style.height = f.style.height = ''), Pt) ) a.setStyle(Pt, 'transform', 'none') ;(Mt = i), (Pt = i), (Ot = i), (Bt = i), (Rt = 0), (Ft = 1), (Nt = i), (Ut = i), (qt = 'down'), (zt = -1), ($t = 0), (Yt = 0), (Wt = false), (Vt = i), (Gt = i), (jt = i), (Kt = i), (Zt = i), (Xt = 0), (Jt = i), (Qt = false), (te = 0), (ee = i) }) var rt = function () { var t, o, a, s, l, v, y, w, b, C, S, x gt(c, [h, p, m, g].join(' '), function (e) { var c = e.changedTouches[0] for (s = e.target; 3 === s.nodeType; ) s = s.parentNode if ( ((l = c.clientY), (v = c.clientX), (C = e.timeStamp), !F.test(s.tagName)) ) e.preventDefault() switch (e.type) { case h: if (t) t.blur() Mt.stopAnimateTo(), (t = s), (o = y = l), (a = v), (b = C) break case p: if (F.test(s.tagName) && n.activeElement !== s) e.preventDefault() ;(w = l - y), (x = C - S), Mt.setScrollTop(te - w, true), (y = l), (S = C) break default: case m: case g: var f = o - l, A = a - v, _ if (A * A + f * f < 49) { if (!F.test(t.tagName)) { t.focus() var T = n.createEvent('MouseEvents') T.initMouseEvent( 'click', true, true, e.view, 1, c.screenX, c.screenY, c.clientX, c.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null ), t.dispatchEvent(T) } return } t = i var E = w / x E = u.max(u.min(E, 3), -3) var I = u.abs(E / Ut), k = E * I + 0.5 * Ut * I * I, M = Mt.getScrollTop() - k, L = 0 if (M > Rt) (L = (Rt - M) / k), (M = Rt) else if (M < 0) (L = -M / k), (M = 0) ;(I *= 1 - L), Mt.animateTo((M + 0.5) | 0, { easing: 'outCubic', duration: I, }) break } }), e.scrollTo(0, 0), (c.style.overflow = f.style.overflow = 'hidden') }, ot = function () { var t = c.clientHeight, e = Ct(), n, i, o, a, s, l, f, h, p, m, g for (h = 0, p = Lt.length; h < p; h++) for ( i = (n = Lt[h]).element, o = n.anchorTarget, s = 0, l = (a = n.keyFrames).length; s < l; s++ ) { if ( ((m = (f = a[s]).offset), (g = e[f.constant] || 0), (f.frame = m), f.isPercentage) ) (m *= t), (f.frame = m) if ('relative' === f.mode) pt(i), (f.frame = Mt.relativeToAbsolute(o, f.anchors[0], f.anchors[1]) - m), pt(i, true) if (((f.frame += g), Bt)) if (!f.isEnd && f.frame > Rt) Rt = f.frame } for (Rt = u.max(Rt, St()), h = 0, p = Lt.length; h < p; h++) { for (s = 0, l = (a = (n = Lt[h]).keyFrames).length; s < l; s++) if (((g = e[(f = a[s]).constant] || 0), f.isEnd)) f.frame = Rt - f.offset + g n.keyFrames.sort(kt) } }, at = function (t, e) { for (var n = 0, i = Lt.length; n < i; n++) { var o = Lt[n], u = o.element, l = o.smoothScrolling ? t : e, c = o.keyFrames, f = c.length, h = c[0], p = c[c.length - 1], m = l < h.frame, g = l > p.frame, C = m ? h : p, S = o.emitEvents, x = o.lastFrameIndex, A, _ if (m || g) { if ((m && -1 === o.edge) || (g && 1 === o.edge)) continue if (m) { if ((At(u, [y], [b, w]), S && x > -1)) wt(u, h.eventType, qt), (o.lastFrameIndex = -1) } else if ((At(u, [b], [y, w]), S && x < f)) wt(u, p.eventType, qt), (o.lastFrameIndex = f) switch (((o.edge = m ? -1 : 1), o.edgeStrategy)) { case 'reset': pt(u) continue case 'ease': l = C.frame break default: case 'set': var props = C.props for (A in props) if (s.call(props, A)) if (((_ = ht(props[A].value)), 0 === A.indexOf('@'))) u.setAttribute(A.substr(1), _) else a.setStyle(u, A, _) continue } } else if (0 !== o.edge) At(u, [v, w], [y, b]), (o.edge = 0) for (var T = 0; T < f - 1; T++) if (l >= c[T].frame && l <= c[T + 1].frame) { var E = c[T], I = c[T + 1] for (A in E.props) if (s.call(E.props, A)) { var k = (l - E.frame) / (I.frame - E.frame) if ( ((k = E.props[A].easing(k)), (_ = dt(E.props[A].value, I.props[A].value, k)), (_ = ht(_)), 0 === A.indexOf('@')) ) u.setAttribute(A.substr(1), _) else a.setStyle(u, A, _) } if (S) if (x !== T) { if ('down' === qt) wt(u, E.eventType, qt) else wt(u, I.eventType, qt) o.lastFrameIndex = T } break } } }, st = function () { if (Wt) (Wt = false), bt() var t = Mt.getScrollTop(), e, n = Dt(), o if (Vt) { if (n >= Vt.endTime) (t = Vt.targetTop), (e = Vt.done), (Vt = i) else (o = Vt.easing((n - Vt.startTime) / Vt.duration)), (t = (Vt.startTop + o * Vt.topDiff) | 0) Mt.setScrollTop(t, true) } else if (!Zt) { var s if (Kt.targetTop - t) Kt = { startTop: zt, topDiff: t - zt, targetTop: t, startTime: Ht, endTime: Ht + jt, } if (n <= Kt.endTime) (o = nt.sqrt((n - Kt.startTime) / jt)), (t = (Kt.startTop + o * Kt.topDiff) | 0) } if (Zt || zt !== t) { Zt = false var u = { curTop: t, lastTop: zt, maxTop: Rt, direction: (qt = t > zt ? 'down' : t < zt ? 'up' : qt), }, l if (false !== (Ot.beforerender && Ot.beforerender.call(Mt, u))) { if ((at(t, Mt.getScrollTop()), Qt && Pt)) a.setStyle( Pt, 'transform', 'translate(0, ' + -te + 'px) ' + ee ) if (((zt = t), Ot.render)) Ot.render.call(Mt, u) } if (e) e.call(Mt, false) } Ht = n }, ut = function (t) { for (var e = 0, n = t.keyFrames.length; e < n; e++) { for ( var i = t.keyFrames[e], o, a, s, props = {}, u; null !== (u = z.exec(i.props)); ) { if (((s = u[1]), (a = u[2]), null !== (o = s.match(H)))) (s = o[1]), (o = o[2]) else o = _ ;(a = a.indexOf('!') ? lt(a) : [a.slice(1)]), (props[s] = { value: a, easing: nt[o] }) } i.props = props } }, lt = function (t) { var e = [] if ( ((G.lastIndex = 0), (t = t.replace(G, function (t) { return t.replace(W, function (t) { return (t / 255) * 100 + '%' }) })), Z) ) (j.lastIndex = 0), (t = t.replace(j, function (t) { return Z + t })) return ( (t = t.replace(W, function (t) { return e.push(+t), '{?}' })), e.unshift(t), e ) }, ct = function (sk) { var t = {}, e, n for (e = 0, n = sk.keyFrames.length; e < n; e++) ft(sk.keyFrames[e], t) for (t = {}, e = sk.keyFrames.length - 1; e >= 0; e--) ft(sk.keyFrames[e], t) }, ft = function (t, e) { var n for (n in e) if (!s.call(t.props, n)) t.props[n] = e[n] for (n in t.props) e[n] = t.props[n] }, dt = function (t, e, n) { var i, o = t.length if (o !== e.length) throw ( 'Can\'t interpolate between "' + t[0] + '" and "' + e[0] + '"' ) var a = [t[0]] for (i = 1; i < o; i++) a[i] = t[i] + (e[i] - t[i]) * n return a }, ht = function (t) { var e = 1 return ( (V.lastIndex = 0), t[0].replace(V, function () { return t[e++] }) ) }, pt = function (t, e) { for (var n, i, o = 0, a = (t = [].concat(t)).length; o < a; o++) if (((i = t[o]), (n = Lt[i[B]]))) if (e) (i.style.cssText = n.dirtyStyleAttr), At(i, n.dirtyClassAttr) else (n.dirtyStyleAttr = i.style.cssText), (n.dirtyClassAttr = xt(i)), (i.style.cssText = n.styleAttr), At(i, n.classAttr) }, mt = function () { ;(ee = 'translateZ(0)'), a.setStyle(Pt, 'transform', ee) var t = l(Pt), e = t.getPropertyValue('transform'), n = t.getPropertyValue(Z + 'transform'), i if (!((e && 'none' !== e) || (n && 'none' !== n))) ee = '' } a.setStyle = function (el, t, e) { var style = el.style if ('zIndex' === (t = t.replace($, Y).replace('-', ''))) if (isNaN(e)) style[t] = e else style[t] = '' + (0 | e) else if ('float' === t) style.styleFloat = style.cssFloat = e else try { if (K) style[K + t.slice(0, 1).toUpperCase() + t.slice(1)] = e style[t] = e } catch (t) {} } var gt = (a.addEvent = function (t, names, n) { for ( var i = function (t) { if (!(t = t || e.event).target) t.target = t.srcElement if (!t.preventDefault) t.preventDefault = function () { ;(t.returnValue = false), (t.defaultPrevented = true) } return n.call(this, t) }, o, a = 0, s = (names = names.split(' ')).length; a < s; a++ ) { if (((o = names[a]), t.addEventListener)) t.addEventListener(o, n, false) else t.attachEvent('on' + o, i) ne.push({ element: t, name: o, listener: n }) } }), vt = (a.removeEvent = function (t, names, e) { for (var n = 0, i = (names = names.split(' ')).length; n < i; n++) if (t.removeEventListener) t.removeEventListener(names[n], e, false) else t.detachEvent('on' + names[n], e) }), yt = function () { for (var t, e = 0, n = ne.length; e < n; e++) (t = ne[e]), vt(t.element, t.name, t.listener) ne = [] }, wt = function (t, e, n) { if (Ot.keyframe) Ot.keyframe.call(Mt, t, e, n) }, bt = function () { var t = Mt.getScrollTop() if (((Rt = 0), Bt && !Qt)) f.style.height = '' if ((ot(), Bt && !Qt)) f.style.height = Rt + c.clientHeight + 'px' if (Qt) Mt.setScrollTop(u.min(Mt.getScrollTop(), Rt)) else Mt.setScrollTop(t, true) Zt = true }, Ct = function () { var t = c.clientHeight, copy = {}, e, n for (e in Nt) { if ('function' == typeof (n = Nt[e])) n = n.call(Mt) else if (/p$/.test(n)) n = (n.slice(0, -1) / 100) * t copy[e] = n } return copy }, St = function () { var t = 0, e if (Pt) t = u.max(Pt.offsetHeight, Pt.scrollHeight) return ( (e = u.max( t, f.scrollHeight, f.offsetHeight, c.scrollHeight, c.offsetHeight, c.clientHeight )) - c.clientHeight ) }, xt = function (t) { var n = 'className' if (e.SVGElement && t instanceof e.SVGElement) (t = t[n]), (n = 'baseVal') return t[n] }, At = function (t, add, remove) { var n = 'className' if (e.SVGElement && t instanceof e.SVGElement) (t = t[n]), (n = 'baseVal') if (remove === i) return (t[n] = add), void 0 for (var o = t[n], a = 0, s = remove.length; a < s; a++) o = Tt(o).replace(Tt(remove[a]), ' ') o = _t(o) for (var u = 0, l = add.length; u < l; u++) if (-1 === Tt(o).indexOf(Tt(add[u]))) o += ' ' + add[u] t[n] = _t(o) }, _t = function (t) { return t.replace(N, '') }, Tt = function (t) { return ' ' + t + ' ' }, Dt = Date.now || function () { return +new Date() }, kt = function (t, e) { return t.frame - e.frame }, Mt, Lt, Pt, Ot, Bt, Rt = 0, Ft = 1, Nt, Ut, qt = 'down', zt = -1, Ht = Dt(), $t = 0, Yt = 0, Wt = false, Vt, Gt, jt, Kt, Zt, Xt = 0, Jt, Qt = false, te = 0, ee, ne = [], ie if ('function' == typeof define && define.amd) define([], function () { return a }) else if (void 0 !== t && t.exports) t.exports = a else e.skrollr = a })(window, document) }).call(window) }, 12556: function (t, e, n) { 'use strict' function i(t) { this.initialize(t) } function o(t) { if (!window.getComputedStyle) return null var transform = getComputedStyle(t).transform, e = /matrix\(([^)]+)\)/.exec(transform) if (!e || e.length < 2) return null if ((e = e[1].split(',')).length < 6) return null else return { a: parseFloat(e[0], 10), b: parseFloat(e[1], 10), c: parseFloat(e[2], 10), d: parseFloat(e[3], 10), tx: parseFloat(e[4], 10), ty: parseFloat(e[5], 10), } } function a(t, e, n, i) { var a = o(e), s = 0, u = 0, l, c if (a && !isNaN(a.tx)) s = a.tx if (a && !isNaN(a.ty)) u = a.ty if ('horizontal' === n) (l = t.innerWidth()), (c = s) else (l = t.innerHeight()), (c = u) return Math.ceil(l * i + c) } function s(t) { if (!t && !t.element) return false var e = t.element.getAttribute('data-animation-name') if (e && 'slidein' === e.toLowerCase()) return true else return false } function u(t) { if (!s(t)) return t var e = t.offset if ('string' == typeof e) if (((e = parseFloat(e)), t.offset.indexOf('%') > -1)) e /= 100 return ( ((t = $.extend({}, t)).offset = function () { return a(this.context, this.element, this.axis, e) }), t ) } n(12557), (i.prototype.initialize = function t(e) { if (!this.waypoint) if (e && e.element && 'function' == typeof e.handler) (e = u(e)), (this.waypoint = new Waypoint(e)) }), (i.prototype.destroy = function t() { if (this.waypoint) this.waypoint.destroy(), (this.waypoint = null) }), (window.WaypointAdapter = i) }, 12557: function (t, e) { var e = void 0, t = void 0 ;(function () { /*! Waypoints - 4.0.1 Copyright © 2011-2016 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blob/master/licenses.txt */ !(function () { 'use strict' function t(i) { if (!i) throw new Error('No options passed to Waypoint constructor') if (!i.element) throw new Error('No element option passed to Waypoint constructor') if (!i.handler) throw new Error('No handler option passed to Waypoint constructor') if ( ((this.key = 'waypoint-' + e), (this.options = t.Adapter.extend({}, t.defaults, i)), (this.element = this.options.element), (this.adapter = new t.Adapter(this.element)), (this.callback = i.handler), (this.axis = this.options.horizontal ? 'horizontal' : 'vertical'), (this.enabled = this.options.enabled), (this.triggerPoint = null), (this.group = t.Group.findOrCreate({ name: this.options.group, axis: this.axis, })), (this.context = t.Context.findOrCreateByElement( this.options.context )), t.offsetAliases[this.options.offset]) ) this.options.offset = t.offsetAliases[this.options.offset] this.group.add(this), this.context.add(this), (n[this.key] = this), (e += 1) } var e = 0, n = {} ;(t.prototype.queueTrigger = function (t) { this.group.queueTrigger(this, t) }), (t.prototype.trigger = function (t) { if (this.enabled) if (this.callback) this.callback.apply(this, t) }), (t.prototype.destroy = function () { this.context.remove(this), this.group.remove(this), delete n[this.key] }), (t.prototype.disable = function () { return (this.enabled = false), this }), (t.prototype.enable = function () { return this.context.refresh(), (this.enabled = true), this }), (t.prototype.next = function () { return this.group.next(this) }), (t.prototype.previous = function () { return this.group.previous(this) }), (t.invokeAll = function (t) { var e = [] for (var i in n) e.push(n[i]) for (var o = 0, a = e.length; o < a; o++) e[o][t]() }), (t.destroyAll = function () { t.invokeAll('destroy') }), (t.disableAll = function () { t.invokeAll('disable') }), (t.enableAll = function () { for (var e in (t.Context.refreshAll(), n)) n[e].enabled = true return this }), (t.refreshAll = function () { t.Context.refreshAll() }), (t.viewportHeight = function () { return window.innerHeight || document.documentElement.clientHeight }), (t.viewportWidth = function () { return document.documentElement.clientWidth }), (t.adapters = []), (t.defaults = { context: window, continuous: true, enabled: true, group: 'default', horizontal: false, offset: 0, }), (t.offsetAliases = { 'bottom-in-view': function () { return this.context.innerHeight() - this.adapter.outerHeight() }, 'right-in-view': function () { return this.context.innerWidth() - this.adapter.outerWidth() }, }), (window.Waypoint = t) })(), (function () { 'use strict' function t(t) { window.setTimeout(t, 1e3 / 60) } function e(t) { if ( ((this.element = t), (this.Adapter = o.Adapter), (this.adapter = new this.Adapter(t)), (this.key = 'waypoint-context-' + n), (this.didScroll = false), (this.didResize = false), (this.oldScroll = { x: this.adapter.scrollLeft(), y: this.adapter.scrollTop(), }), (this.waypoints = { vertical: {}, horizontal: {} }), (t.waypointContextKey = this.key), (i[t.waypointContextKey] = this), (n += 1), !o.windowContext) ) (o.windowContext = true), (o.windowContext = new e(window)) this.createThrottledScrollHandler(), this.createThrottledResizeHandler() } var n = 0, i = {}, o = window.Waypoint, a = window.onload ;(e.prototype.add = function (t) { var e = t.options.horizontal ? 'horizontal' : 'vertical' ;(this.waypoints[e][t.key] = t), this.refresh() }), (e.prototype.checkEmpty = function () { var t = this.Adapter.isEmptyObject(this.waypoints.horizontal), e = this.Adapter.isEmptyObject(this.waypoints.vertical), n = this.element == this.element.window if (t && e && !n) this.adapter.off('.waypoints'), delete i[this.key] }), (e.prototype.createThrottledResizeHandler = function () { function t() { e.handleResize(), (e.didResize = false) } var e = this this.adapter.on('resize.waypoints', function () { if (!e.didResize) (e.didResize = true), o.requestAnimationFrame(t) }) }), (e.prototype.createThrottledScrollHandler = function () { function t() { e.handleScroll(), (e.didScroll = false) } var e = this this.adapter.on('scroll.waypoints', function () { if (!e.didScroll || o.isTouch) (e.didScroll = true), o.requestAnimationFrame(t) }) }), (e.prototype.handleResize = function () { o.Context.refreshAll() }), (e.prototype.handleScroll = function () { var t = {}, e = { horizontal: { newScroll: this.adapter.scrollLeft(), oldScroll: this.oldScroll.x, forward: 'right', backward: 'left', }, vertical: { newScroll: this.adapter.scrollTop(), oldScroll: this.oldScroll.y, forward: 'down', backward: 'up', }, } for (var n in e) { var i = e[n], o, a = i.newScroll > i.oldScroll ? i.forward : i.backward for (var s in this.waypoints[n]) { var u = this.waypoints[n][s] if (null !== u.triggerPoint) { var l = i.oldScroll < u.triggerPoint, c = i.newScroll >= u.triggerPoint, f, h if ((l && c) || (!l && !c)) u.queueTrigger(a), (t[u.group.id] = u.group) } } } for (var p in t) t[p].flushTriggers() this.oldScroll = { x: e.horizontal.newScroll, y: e.vertical.newScroll, } }), (e.prototype.innerHeight = function () { if (this.element == this.element.window) return o.viewportHeight() else return this.adapter.innerHeight() }), (e.prototype.remove = function (t) { delete this.waypoints[t.axis][t.key], this.checkEmpty() }), (e.prototype.innerWidth = function () { if (this.element == this.element.window) return o.viewportWidth() else return this.adapter.innerWidth() }), (e.prototype.destroy = function () { var t = [] for (var e in this.waypoints) for (var n in this.waypoints[e]) t.push(this.waypoints[e][n]) for (var i = 0, o = t.length; i < o; i++) t[i].destroy() }), (e.prototype.refresh = function () { var t = this.element == this.element.window, e = t ? void 0 : this.adapter.offset(), n = {}, i for (var a in (this.handleScroll(), (i = { horizontal: { contextOffset: t ? 0 : e.left, contextScroll: t ? 0 : this.oldScroll.x, contextDimension: this.innerWidth(), oldScroll: this.oldScroll.x, forward: 'right', backward: 'left', offsetProp: 'left', }, vertical: { contextOffset: t ? 0 : e.top, contextScroll: t ? 0 : this.oldScroll.y, contextDimension: this.innerHeight(), oldScroll: this.oldScroll.y, forward: 'down', backward: 'up', offsetProp: 'top', }, }))) { var s = i[a] for (var u in this.waypoints[a]) { var l = this.waypoints[a][u], c = l.options.offset, f = l.triggerPoint, h = 0, p = null == f, m, g, v, y, w if (l.element !== l.element.window) h = l.adapter.offset()[s.offsetProp] if ('function' == typeof c) c = c.apply(l) else if ('string' == typeof c) if ( ((c = parseFloat(c)), l.options.offset.indexOf('%') > -1) ) c = Math.ceil((s.contextDimension * c) / 100) if ( ((m = s.contextScroll - s.contextOffset), (l.triggerPoint = Math.floor(h + m - c)), (g = f < s.oldScroll), (v = l.triggerPoint >= s.oldScroll), (w = !g && !v), !p && (y = g && v)) ) l.queueTrigger(s.backward), (n[l.group.id] = l.group) else if (!p && w) l.queueTrigger(s.forward), (n[l.group.id] = l.group) else if (p && s.oldScroll >= l.triggerPoint) l.queueTrigger(s.forward), (n[l.group.id] = l.group) } } return ( o.requestAnimationFrame(function () { for (var t in n) n[t].flushTriggers() }), this ) }), (e.findOrCreateByElement = function (t) { return e.findByElement(t) || new e(t) }), (e.refreshAll = function () { for (var t in i) i[t].refresh() }), (e.findByElement = function (t) { return i[t.waypointContextKey] }), (window.onload = function () { if (a) a() e.refreshAll() }), (o.requestAnimationFrame = function (e) { var n ;( window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || t ).call(window, e) }), (o.Context = e) })(), (function () { 'use strict' function t(t, e) { return t.triggerPoint - e.triggerPoint } function e(t, e) { return e.triggerPoint - t.triggerPoint } function Group(t) { ;(this.name = t.name), (this.axis = t.axis), (this.id = this.name + '-' + this.axis), (this.waypoints = []), this.clearTriggerQueues(), (n[this.axis][this.name] = this) } var n = { vertical: {}, horizontal: {} }, i = window.Waypoint ;(Group.prototype.add = function (t) { this.waypoints.push(t) }), (Group.prototype.clearTriggerQueues = function () { this.triggerQueues = { up: [], down: [], left: [], right: [] } }), (Group.prototype.flushTriggers = function () { for (var n in this.triggerQueues) { var i = this.triggerQueues[n], o = 'up' === n || 'left' === n i.sort(o ? e : t) for (var a = 0, s = i.length; a < s; a += 1) { var u = i[a] if (u.options.continuous || a === i.length - 1) u.trigger([n]) } } this.clearTriggerQueues() }), (Group.prototype.next = function (e) { this.waypoints.sort(t) var index = i.Adapter.inArray(e, this.waypoints), n return index === this.waypoints.length - 1 ? null : this.waypoints[index + 1] }), (Group.prototype.previous = function (e) { this.waypoints.sort(t) var index = i.Adapter.inArray(e, this.waypoints) return index ? this.waypoints[index - 1] : null }), (Group.prototype.queueTrigger = function (t, e) { this.triggerQueues[e].push(t) }), (Group.prototype.remove = function (t) { var index = i.Adapter.inArray(t, this.waypoints) if (index > -1) this.waypoints.splice(index, 1) }), (Group.prototype.first = function () { return this.waypoints[0] }), (Group.prototype.last = function () { return this.waypoints[this.waypoints.length - 1] }), (Group.findOrCreate = function (t) { return n[t.axis][t.name] || new Group(t) }), (i.Group = Group) })(), (function () { 'use strict' function t(t) { return t === t.window } function e(e) { if (t(e)) return e else return e.defaultView } function n(t) { ;(this.element = t), (this.handlers = {}) } var i = window.Waypoint ;(n.prototype.innerHeight = function () { var e return t(this.element) ? this.element.innerHeight : this.element.clientHeight }), (n.prototype.innerWidth = function () { var e return t(this.element) ? this.element.innerWidth : this.element.clientWidth }), (n.prototype.off = function (t, e) { function n(t, e, n) { for (var i = 0, o = e.length - 1; i < o; i++) { var a = e[i] if (!n || n === a) t.removeEventListener(a) } } var i = t.split('.'), o = i[0], a = i[1], s = this.element if (a && this.handlers[a] && o) n(s, this.handlers[a][o], e), (this.handlers[a][o] = []) else if (o) for (var u in this.handlers) n(s, this.handlers[u][o] || [], e), (this.handlers[u][o] = []) else if (a && this.handlers[a]) { for (var type in this.handlers[a]) n(s, this.handlers[a][type], e) this.handlers[a] = {} } }), (n.prototype.offset = function () { if (!this.element.ownerDocument) return null var t = this.element.ownerDocument.documentElement, n = e(this.element.ownerDocument), rect = { top: 0, left: 0 } if (this.element.getBoundingClientRect) rect = this.element.getBoundingClientRect() return { top: rect.top + n.pageYOffset - t.clientTop, left: rect.left + n.pageXOffset - t.clientLeft, } }), (n.prototype.on = function (t, e) { var n = t.split('.'), i = n[0], o = n[1] || '__default', a = (this.handlers[o] = this.handlers[o] || {}), s ;(a[i] = a[i] || []).push(e), this.element.addEventListener(i, e) }), (n.prototype.outerHeight = function (e) { var n = this.innerHeight(), i if (e && !t(this.element)) (i = window.getComputedStyle(this.element)), (n += parseInt(i.marginTop, 10)), (n += parseInt(i.marginBottom, 10)) return n }), (n.prototype.outerWidth = function (e) { var n = this.innerWidth(), i if (e && !t(this.element)) (i = window.getComputedStyle(this.element)), (n += parseInt(i.marginLeft, 10)), (n += parseInt(i.marginRight, 10)) return n }), (n.prototype.scrollLeft = function () { var t = e(this.element) return t ? t.pageXOffset : this.element.scrollLeft }), (n.prototype.scrollTop = function () { var t = e(this.element) return t ? t.pageYOffset : this.element.scrollTop }), (n.extend = function () { function merge(t, e) { if ('object' == typeof t && 'object' == typeof e) for (var n in e) if (e.hasOwnProperty(n)) t[n] = e[n] return t } for ( var t = Array.prototype.slice.call(arguments), e = 1, n = t.length; e < n; e++ ) merge(t[0], t[e]) return t[0] }), (n.inArray = function (t, e, n) { return null == e ? -1 : e.indexOf(t, n) }), (n.isEmptyObject = function (t) { for (var e in t) return false return true }), i.adapters.push({ name: 'noframework', Adapter: n }), (i.Adapter = n) })() }).call(window) }, 12558: function (t, e, n) { 'use strict' var i = n(17) i(document).ready(function () { function t(t) { return e() ? 0 : n(t) } function e() { return a.hasClass('u-overlap') } function n(t) { var rect return t[0].getBoundingClientRect().height } var o = i('header.u-sticky') if ( o.length && !o.closest('.u-overlap').length && !CSS.supports('position', 'sticky') && !CSS.supports('position', '-webkit-sticky') ) { o.css('width', '100%') var update = function () { o.each(function () { var t = i(this), e = t.height(), n = t.data('additionalMargin') || 0 if (e !== n) { t.data('additionalMargin', e) var o = t do { o = o.next() } while (o.length > 0 && 'none' === o.css('display')) o.css( 'margin-top', parseFloat(o.css('margin-top')) - n + e + 'px' ) } }) } update(), i(window).load(update), i(window).resize(update) } var a = i('.u-body') if (a.hasClass('u-overlap-transparent')) a.data('overlap-transparent', true) if (a.hasClass('u-overlap-contrast')) a.data('overlap-contrast', true) i(window).scroll(function e() { i('header.u-sticky').each(function () { var e = i(this), n = e.nextAll(':visible:first') if (n.length) { var o = n.offset().top, s = e.offset().top, u, l = s + t(e) > o, c if ((a.toggleClass('u-sticky-fixed', l), s > o)) a.addClass('u-sticky-scroll'), a.removeClass('u-overlap-transparent u-overlap-contrast') else a.toggleClass( 'u-overlap-transparent', !!a.data('overlap-transparent') ), a.toggleClass( 'u-overlap-contrast', !!a.data('overlap-contrast') ), a.removeClass('u-sticky-scroll') } }) }) }) }, 12559: function (t, e, n) { 'use strict' function i(t) { function e() { c = [] var e = o('html').scrollTop() t.each(function () { var rect = this.getBoundingClientRect() c.push({ height: rect.height, top: rect.top + e }) }) } function n(index) { for (var e = 0, n = 0; n < index; n++) { var i if (t.eq(n).hasClass(f)) { var rect e += (c[n] || {}).height || 0 } } return e } function i() { l.refresh() } function a() { clearTimeout(p), (p = setTimeout(function () { for (var n = 0; n < t.length; n++) { var i u(t.eq(n)) } e(), l.refresh() }, 25)) } function s(t, e, n) { if (!(t = o(t)).hasClass(f)) { var i = o('<div></div>') i.addClass(h), i.css('height', e + 'px'), t.after(i), t.addClass(f), t.css('top', n + 'px') } } function u(t) { ;(t = o(t)).nextAll('.' + h).remove(), t.removeClass(f), t.css('top', '') } var l = {}, c = [], f = 'u-sticky-fixed', h = 'u-sticky-placeholder', p = null return ( (l.init = function init() { o(window).on('scroll', i), o(window).on('resize', a), e() }), (l.destroy = function t() { o(window).off('scroll', i), o(window).off('resize', a) }), (l.refresh = function e() { var i = document.documentElement.scrollTop || document.body.scrollTop t.each(function (t, el) { var e = n(t) if (i + e > c[t].top) s(el, c[t].height, e) else u(el) }) }), l ) } var o = n(17) o(window).on('load', function () { var t, sticky = i(o('.u-section-row.u-sticky')) sticky.init(), sticky.refresh() }), (window._npStickyStack = i) }, 12560: function (t, e, n) { 'use strict' var i = n(17) i(function () { i('.u-nav-container .u-nav-link').each(function () { window._npInitMenuLink(i(this)) }), i('.u-nav-container-collapse .u-nav-link').each(function () { window._npInitMenuLink(i(this), true) }) }), (window._npInitMenuLink = function t(e, n) { var o = i('body'), a = /\/?#.*?$/, s = o.attr('data-home-page-name'), homePage = o.attr('data-home-page'), pageTitle = i('title').text().trim(), nav = e.closest('.u-menu'), u = nav.attr('data-submenu-level') || 'on-click', l = nav.is('.u-menu-mega'), c = e.attr('href') || '', f = (e[0].href || '').replace(a, ''), h = c.replace(a, ''), p = s || pageTitle, m = e.text().trim(), hash = c.replace(/^[^#]+/, ''), g = f.split('.').slice(0, -1).join('.'), pageName = h.replace('.html', ''), v = new RegExp(pageName + '_[\\s\\S]+?.html', 'gm'), y = hash && i(hash).length, w = h && window.location.href.toString() === f && !y, b = h && window.location.href.toString() === g && !y, C = h && window.location.href.toString().search(v) > -1, S = h && hash && window.location.href.toString().search(h + hash) > -1, x, A, _ if ( w || b || C || S || (m && p === m) || (!y && homePage && h === homePage) ) { var T = e if (!l || n) T = e.parents('.u-nav-item').children('.u-nav-link') if ((T.addClass('active'), 'with-reload' === u && n)) T.siblings('.u-nav-popup') .addClass('open') .css('max-height', 'none') } }) }, 12561: function (t, e, n) { 'use strict' var i = n(17), o if ( 'Microsoft Internet Explorer' === navigator.appName || !!( navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/) ) || (void 0 !== i.browser && 1 === i.browser.msie) ) i(function () { i('.u-social-icons, .u-language').each(function (t, e) { var n = i(e), size = n.css('height') n.find('.u-svg-link').css('width', size) }) }) }, 12562: function (t, e, n) { 'use strict' var Animation = n(12563), i = n(273) n(594), n(12567), (window.uAnimation = new Animation(i.instance()).init()) }, 12563: function (t, e, n) { 'use strict' function Animation(factory) { ;(this.factory = factory), (this.animationElements = null), (this.animationEvents = []), (this._section = null), (this._sliderNode = null), (this._slideNumber = null), (this._slideEvent = null), (this._animationInfo = null), (this._animation = null), (this._subscribeQueue = []), (this.status = 'loading'), (this._onDOMContentLoaded = this._onDOMContentLoaded.bind(this)), (this._onLoadingComplete = this._onLoadingComplete.bind(this)) } function i(t) { var e = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame if (!e) return t(), void 0 e.apply(window, arguments) } function o(t) { return 'string' == typeof t.name && -1 !== m.indexOf(t.name.toLowerCase()) } function a(t) { return ( 'string' == typeof t.direction && -1 !== g.indexOf(t.direction.toLowerCase()) ) } function s(section, t) { if (t && t.length) if (u()) for (var e = 0; e < t.length; e++) if (a(t[e]) || o(t[e])) { section.style.overflow = 'hidden' break } } function u() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent || navigator.vendor || window.opera ) } var l = n(379), c = n(380), f = n(12564), h = n(12565), p = n(12566) ;(Animation.utils = l), (Animation.prototype.init = function init() { if ('loading' !== document.readyState) return this._onDOMContentLoaded(), void 0 else return ( document.addEventListener( 'DOMContentLoaded', this._onDOMContentLoaded ), this ) }), (Animation.prototype.start = function t() { var e = this._subscribeQueue i(function () { e.forEach(function (el) { if (el.event && el.animation) el.event.subscribe(el.animation) }), (e.length = 0) }) }), (Animation.prototype.visitSection = function t(e) { if (e.classList.contains('u-carousel')) return this.visitSlider(e), void 0 ;(this._section = e), this._visitElementsInContentSlider(e), this._visitElementsNotInSlider(e), (this._section = null) }), (Animation.prototype._visitElementsInContentSlider = function (t) { for ( var e = t.querySelectorAll('.u-carousel'), n = 0; n < e.length; n++ ) this.visitSlider(e[n]) }), (Animation.prototype._visitElementsNotInSlider = function (t) { for ( var e = [], n = t.querySelectorAll('[data-animation-name]'), o = 0; o < n.length; o++ ) { var a = n[o] if ( a.closest && null === a.closest('.u-carousel') && a.getAttribute('data-animation-name') ) this.visitAnimatedElement(a), e.push(this._animationInfo), this._subscribeQueue.push({ animation: this._animation, event: f, }), i(this._animation.init.bind(this._animation)) } s(t, e) }), (Animation.prototype.visitSlider = function t(e) { this._sliderNode = e for ( var n = e.querySelectorAll('.u-carousel-item'), i = 0; i < n.length; i++ ) (this._slideNumber = i), this.visitSlide(n[i]) }), (Animation.prototype.visitSlide = function t(e) { var n = e.querySelectorAll('[data-animation-name]'), i = [] this._slideEvent = new h(this._sliderNode, e, this._slideNumber) for (var o = 0; o < n.length; o++) if (n[o].getAttribute('data-animation-name')) this.visitAnimatedElement(n[o]), i.push(this._animationInfo), this._animation.init(), this._slideEvent.animations.push(this._animation) this._slideEvent.init(), s(e, i) }), (Animation.prototype.visitAnimatedElement = function t(e) { ;(this._animationInfo = new c(e, this._section)), (this._animation = this.factory.createAnimation(this._animationInfo)), this.animationElements.push(this._animation) }), (Animation.prototype._onDOMContentLoaded = function () { if ( ((this.status = 'DOMContentLoaded'), document.removeEventListener( 'DOMContentLoaded', this._onDOMContentLoaded ), !this.animationElements) ) { ;(this.animationElements = []), this.factory.setHint(p) var sections = $('section, header, footer'), length = sections.length if ( (sections.each( function (index, t) { if ((this.visitSection(t), !--length)) this.factory.setHint(null) }.bind(this) ), 'interactive' !== document.readyState) ) return this._onLoadingComplete(), void 0 window.addEventListener('load', this._onLoadingComplete) } }), (Animation.prototype._onLoadingComplete = function () { ;(this.status = 'complete'), window.removeEventListener('load', this._onLoadingComplete), this.start() }) var m = ['lightspeedin', 'flipin', 'flipout'], g = ['right', 'downright', 'upright'] ;(t.exports = Animation), (window.Animation = Animation) }, 12564: function (t, e, n) { 'use strict' function i(animation) { if ( (animation.start(), !animation.isInOutAnimation() && !animation.info.infinite) ) { var t = animation.info.duration, e = animation.info.delay setTimeout(function () { animation.clear() }, t + e) } } function o(animation) { if (animation.isInOutAnimation()) animation.startOut() } function a(animation) { return ( animation.info && 0 === animation.info.animationOut && animation.info.element.classList.contains('animated-once') ) } var s = { subscribe: function t(animation) { var e = (animation && animation.info) || {}, n = e.section || e.element animation.info.eventObject = new WaypointAdapter({ element: n, handler: function (t) { if (animation) if ('up' === t || a(animation)) return o(animation), void 0 else return i(animation), void 0 }, offset: '70%', }) }, } ;(t.exports = s), (window.AnimationEventScroll = s) }, 12565: function (t, e, n) { 'use strict' function i(carousel, slide, t) { ;(this.carousel = $(carousel)), (this.slide = $(slide)), (this.slideNum = t), (this.animations = []), (this._delays = []), (this._autoplayPaused = false), (this._handleSlide = o.bind(this)), (this._handleSlid = a.bind(this)) } function o(t) { if (t) if (t.from === this.slideNum) this.slideOut(t) } function a(t) { if (t && t.to === this.slideNum) this.pauseAutoplayWhileInAnimation(), this.startInAnimation() } ;(i.prototype.init = function init() { if ( ($(this.carousel).on('u-slide.bs.u-carousel', this._handleSlide), $(this.carousel).on('slid.bs.u-carousel', this._handleSlid), this.slide.is('.u-active')) ) { if (this._isAutoplayOnStart()) this.pauseAutoplayWhileInAnimation() this.startInAnimation() } }), (i.prototype.deinit = function t() { $(this.carousel).off('slid.bs.u-carousel', this._handleSlid), $(this.carousel).off('u-slide.bs.u-carousel', this._handleSlide) }), (i.prototype.resetAnimations = function t() { for (var e = 0; e < this.animations.length; e++) if (this.animations[e].reset) this.animations[e].reset() }), (i.prototype.pauseAutoplayWhileInAnimation = function t() { var e = this.countMaxInAnimationTime() if (e > 0) this._pauseAutoplay(), this._delay( e, function () { this._continueAutoplay(), this._clearDelays() }.bind(this) ) }), (i.prototype.startInAnimation = function t() { this.animations.forEach( function (animation) { animation.start() }.bind(this) ) }), (i.prototype.needOutAnimation = function t() { for (var e = 0, length = this.animations.length; e < length; e++) if ( this.animations[e].needOutAnimation && this.animations[e].needOutAnimation() ) return true return false }), (i.prototype.startOutAnimations = function t() { for (var e = 0; e < this.animations.length; e++) if (this.animations[e].startOut) this.animations[e].startOut() }), (i.prototype.countMaxOutAnimationTime = function t() { if (!this.animations || !this.animations.length) return 0 var e = this.animations.map(function (animation) { return animation.getOutTime() }) return Math.max.apply(null, e) }), (i.prototype.countMaxInAnimationTime = function t() { if (!this.animations || !this.animations.length) return 0 var e = this.animations.map(function (animation) { return animation.getTime() }) return Math.max.apply(null, e) }), (i.prototype.slideOut = function t(e) { if (this._delays.length > 0) this._cancelDelays() if ((this._continueAutoplay(), !this.needOutAnimation())) return this.resetAnimations(), void 0 e.preventDefault() var n = this.countMaxOutAnimationTime(), i = 'number' == typeof e.to ? e.to : null, o = e.direction setTimeout( function () { if ((this.resetAnimations(), null !== i)) return $(e.target)['u-carousel'](i), void 0 if ('left' === o) return $(e.target)['u-carousel']('next'), void 0 if ('right' === o) $(e.target)['u-carousel']('prev') }.bind(this), n ), this.startOutAnimations() }), (i.prototype._delay = function t(e, n) { this._delays.push( setTimeout(function () { n() }, e) ) }), (i.prototype._cancelDelays = function t() { this._delays.forEach(function (id) { clearTimeout(id) }), (this._delays.length = 0) }), (i.prototype._clearDelays = function t() { this._delays.length = 0 }), (i.prototype._isAutoplayOnStart = function t() { var e = this.carousel.attr('data-u-ride') if (!e) return false else return 'carousel' === (e = e.toLowerCase()) }), (i.prototype._pauseAutoplay = function t() { this.carousel['u-carousel']('pause'), (this._autoplayPaused = true) }), (i.prototype._continueAutoplay = function t() { if (this._autoplayPaused) this.carousel['u-carousel']('cycle'), (this._autoplayPaused = false) }), (t.exports = i), (window.AnimationEventSlider = i) }, 12566: function (t, e, n) { 'use strict' function i(t) { var e = [] if (-1 !== a.indexOf(t.name) || t.direction) e.push('transform') if (-1 !== s.indexOf(t.name)) e.push('opacity') if (-1 !== u.indexOf(t.name)) e.push('contents') if (0 === e.length) e.push('auto') return e.join(', ') } var o = {}, a = [ 'bounce', 'headShake', 'heartBeat', 'jello', 'pulse', 'rubberBand', 'shake', 'swing', 'tada', 'wobble', 'bounceIn', 'flip', 'flipInX', 'flipInY', 'flipOutX', 'flipOutY', 'lightSpeedIn', 'rotateIn', 'slideIn', 'hinge', 'jackInTheBox', 'rollIn', 'zoomIn', 'customAnimationIn', 'customAnimationOut', ], s = [ 'flash', 'bounceIn', 'fadeIn', 'flipInX', 'flipInY', 'flipOutX', 'flipOutY', 'lightSpeedIn', 'rotateIn', 'hinge', 'jackInTheBox', 'rollIn', 'zoomIn', 'customAnimationIn', 'customAnimationOut', ], u = ['counter'] ;(o.hintBrowser = function t(e) { if (e && e.element) e.element.style.willChange = i(e) }), (o.removeHint = function t(e) { e.element.style.willChange = 'auto' }), (t.exports = o), (window.WillChangeHint = o) }, 12567: function (t, e, n) { 'use strict' var i = n(12568), Utils if (n(3539).animationsEnabled()) document.addEventListener( 'np.responsive.init', function (t) { setTimeout(function () { var e new i(t.detail && t.detail.mode).subscribe() }, 0) }.bind(this), false ) }, 12568: function (t, e, n) { 'use strict' function i(t) { ;(this.mode = t || 'XL'), (this.animations = []), (this._responsiveListener = this.responsiveListener.bind(this)), (this._prevState = {}), (this._app = { raf: null }) } t.exports = i var o = n(12569) ;(i.prototype.subscribe = function () { ;(this.animations = this.initTimeline()), document.addEventListener( 'np.responsive.changed', this._responsiveListener, false ) var t = this._app, e = this.render.bind(this) !(function n() { e(), (t.raf = requestAnimationFrame(n)) })() }), (i.prototype.destroy = function () { cancelAnimationFrame(this._app.raf), document.removeEventListener( 'np.responsive.changed', this._responsiveListener, false ), (this.animations = null) }), (i.prototype.responsiveListener = function (t) { if (t.detail && this.mode !== t.detail.mode) (this.mode = t.detail.mode), (this.animations = this.initTimeline()) }), (i.prototype.initTimeline = function () { this._prevState = {} var t = document.body.querySelectorAll('[data-custom-animation]') return Array.from(t).reduce( function (t, el) { var e = el.getAttribute('data-custom-animation'), n if (!e) return t try { n = JSON.parse(e) } catch (t) { n = null } if (n) (n.animation = new o(el, n.animation, this.mode)), t.push(n) return t }.bind(this), [] ) }), (i.prototype.render = function () { var t = this.getGlobal() if (this._prevState.scrollY !== t.scrollY) this.animations.forEach(function (e) { e.animation.setGlobal(t), e.animation.calc(), e.animation.apply() }), (this._prevState = t) }), (i.prototype.getGlobal = function () { var t = Math.max( document.documentElement.clientHeight || 0, window.innerHeight || 0 ) || 1, e = Math.max(0, window.scrollY), n = document.documentElement.scrollHeight || 1, i return { vh: t, scrollY: e, scrollHeight: n, scrollHeightRelative: n / t, } }), (window.ScrollTimeline = i) }, 12569: function (t, e, n) { 'use strict' function i(t, animation, e) { ;(this.dom = t), (this.mode = e), (this.animation = animation || {}), this.initSteps(), (this.state = null), (this.global = null) } var o = n(12570), a = n(590) t.exports = i var s = 'before', u = 'start', l = 'end', c = 'top', f = 'middle', h = 'bottom' Object.defineProperty(i.prototype, 'currentAnimation', { get: function () { return this.animation[this.mode] || {} }, }), Object.defineProperty(i.prototype, 'steps', { get: function () { return this.currentAnimation.steps || [] }, }), (i.prototype.initSteps = function () { var t = this.dom.getBoundingClientRect(), e ;(this.domWidth = t.width || 0), (this.domHeight = t.height || 0), (this.domTop = t.top + Math.max(0, window.scrollY)), window._responsive.modes.forEach(function (t, index) { var animation = this.animation[t], n = !animation || !animation.steps.length if (n && index > 0) return ( (animation = JSON.parse(JSON.stringify(e))), (this.animation[t] = animation), void 0 ) if (n && 'XXL' === t) (animation = JSON.parse(JSON.stringify(this.animation.XL || {}))), (this.animation[t] = animation) var i = animation.steps || [], o = 0 i.forEach(function (t, e) { var n = parseFloat(t.dist) || 0, i = parseFloat(t.skip) || 0 ;(t.dist = n), (t.skip = i), (t.index = e), (t.start = o), (t.end = o + n + i), (o = t.end) }), (e = animation) }, this) }), (i.prototype.setGlobal = function (t) { this.global = t }), (i.prototype.calc = function () { if ( ((this.state = o.create(this.dom)), !this.currentAnimation.hidden && (this.domHeight || this.domWidth)) ) { var t = this.getGlobalProgress() this.steps.forEach(function (e) { var n = s if (t >= e.start && t < e.end) n = u else if (t >= e.end) n = l else if (t < e.start) n = s this.calcStep(n, e, t) }, this) } }), (i.prototype.getGlobalProgress = function () { var t = this.currentAnimation.start || {}, e = t.at || h, n = parseFloat(t.off) || 0, i = this.domTop, o if (e === c && this.domTop < 0) i += -this.domTop if (e === f) { if (this.domTop < this.global.vh / 2) i += this.global.vh / 2 - this.domTop i -= this.global.vh / 2 } if (e === h) { if (this.domTop < this.global.vh) i += this.global.vh - this.domTop i -= this.global.vh } return ( ((this.global.scrollY + n - i) * this.global.scrollHeightRelative) / this.global.scrollHeight ) }), (i.prototype.calcStep = function (t, e, n) { ;(this.state.willChange = t !== l), this.calcStepPropertyToggle(t, e, 'sticky', true), this.calcStepPropertyToggle(t, e, 'fixed'), this.calcFixed(t, e, n) var i = this.getStepProgress(t, e, n) if (!(i < 0)) (this.state.mx += (e.mx - this.state.mx) * i), (this.state.my += (e.my - this.state.my) * i), (this.state.op += (e.op - this.state.op) * i), (this.state.sx += (e.sx - this.state.sx) * i), (this.state.sy += (e.sy - this.state.sy) * i), (this.state.rot += (e.rot - this.state.rot) * i), (this.state.bgy += (e.bgy - this.state.bgy) * i), (this.state.blur += (e.blur - this.state.blur) * i) }), (i.prototype.getStepProgress = function (t, e, n) { if (t === s) return 0 if (t === l) return 1 var i = e.skip || 0 return (n - e.start - i) / (e.end - e.start - i) }), (i.prototype.calcStepPropertyToggle = function (t, e, n, i) { if (e[n]) if (!(t === s && this.state[n] && e.index > 0)) if (t === u) this.state[n] = true else if (t === l) this.state[n] = i ? e[n] : false }), (i.prototype.calcFixed = function (t, e, n) { var i = e.skip || 0 if (!e.fixed) return ( (this.state._unfixedDist += this.global.vh * (e.dist + i)), void 0 ) if (t === u) this.state._fixedDist = this.global.vh * n - this.state._unfixedDist else if (t === l) this.state._fixedDist += this.global.vh * (e.dist + i) }), (i.prototype.apply = function () { if (this.state) a.apply(this.dom, this.state) }), (window.StepAnimation = i) }, 12570: function (t, e, n) { 'use strict' var i = t.exports ;(i.create = function (t) { var e = 1, n = (t.getAttribute('class') || '').match(/u-opacity-(\d+)/) if (n) e = parseFloat(n[1]) / 100 if (!Number.isFinite(e)) e = 1 return { blur: 0, sticky: false, fixed: false, _fixedDist: 0, _unfixedDist: 0, mx: 0, my: 0, op: e, rot: 0, sx: 1, sy: 1, bgy: 0, } }), (window.StepAnimationState = i) }, 12571: function (t, e, n) { 'use strict' function i() {} function o(t, props) { document.body.classList.add('u-scrollspy-prevent'), t.animate(props, { done: function () { document.body.classList.remove('u-scrollspy-prevent') }, }) } var a = n(17) ;(i.prototype.scroll = function (t) { var e = 1, n = a('.u-section-row.u-sticky, header.u-sticky') .toArray() .reduce(function (t, el) { return t + (a(el).outerHeight(true) || 0) - e }, 0) o(a('html, body'), { scrollTop: t.offset().top - n }) }), (i.prototype.scrollTop = function () { o(a('html, body'), { scrollTop: 0 }) }), (i.prototype.update = function (t) { var e = 'string' == typeof t ? t : a(t.currentTarget).attr('href') if ((e = (e || '').replace(/^[^#]+/, '')).match(/^#[\d\w-_]+$/i)) { var n = a(e) if (n.length) { if (t.preventDefault) t.preventDefault() this.scroll(n) } } }), (window._npScrollAnchor = new i()), a(window).on('load', function () { window._npScrollAnchor.update(window.location.hash), a('body').on( 'click', 'a:not([data-u-slide], [data-u-slide-to], [data-toggle], .u-tab-link, .u-quantity-button)', function (t) { if (!a(this).is('.u-dialog-link')) window._npScrollAnchor.update(t), a(this).blur() } ), a('body').on('click', '.u-back-to-top', function () { window._npScrollAnchor.scrollTop() }) }) }, 12572: function (t, e, n) { 'use strict' var i = n(17), o = n(12573), a = 'u-gdpr-cookie', s = 'u-cookies-consent', u = 'u-button-confirm', l = 'u-button-decline', c = '_u_GDPRConfirmCode' i(function () { function t() { var t = f(), n = f() e('sessionId', t, 0.5 / 24), e('userId', n, 365) } function e(t, e, n) { if (!o.get(t)) o.set(t, e, { expires: n, secure: true }) } function n() { function t() { return Math.floor(65536 * (1 + Math.random())) .toString(16) .substring(1) } return ( t() + t() + '-' + t() + '-' + t() + '-' + t() + '-' + t() + t() + t() ) } function f() { if ( crypto && 'function' == typeof crypto.getRandomValues && 'function' == typeof window.Uint8Array ) { var t = new window.Uint8Array(16), guid crypto.getRandomValues(t), (t[6] = (15 & t[6]) | 64), (t[8] = (63 & t[8]) | 128) for (var e = [], i = '', o = 0; o < t.length; o++) { if ((i = t[o].toString(16)).length < 2) i = '0' + i e.push(i) } return ( e.slice(0, 4).join('') + '-' + e.slice(4, 6).join('') + '-' + e.slice(6, 8).join('') + '-' + e.slice(8, 10).join('') + '-' + e.slice(10).join('') ) } return n() } var h = i('.' + s), p if (!h.length) return t(), void 0 try { p = o.get(a) } catch (t) { p = false } var m = window[c] || function () {} if (!p) h.addClass('show'), h.find('.' + u).on('click', function (e) { e.preventDefault(), t(), o.set(a, true, { expires: 365, secure: true }), h.removeClass('show'), m() }), h.find('.' + l).on('click', function (t) { t.preventDefault(), o.set(a, false, { expires: 365, secure: false }), h.removeClass('show') }) else if ('true' === p) t(), m() }) }, 12573: function (t, e, n) { 'use strict' var i, o /*! * JavaScript Cookie v2.2.1 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ !(function (factory) { var a if (true) !( void 0 !== (o = 'function' == typeof (i = factory) ? i.call(e, n, e, t) : i) && (t.exports = o) ), (a = true) if (true) (t.exports = factory()), (a = true) if (!a) { var s = window.Cookies, u = (window.Cookies = factory()) u.noConflict = function () { return (window.Cookies = s), u } } })(function () { function t() { for (var t = 0, e = {}; t < arguments.length; t++) { var n = arguments[t] for (var i in n) e[i] = n[i] } return e } function e(t) { return t.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent) } function init(n) { function i() {} function o(e, o, a) { if ('undefined' != typeof document) { if ( 'number' == typeof (a = t({ path: '/' }, i.defaults, a)).expires ) a.expires = new Date(1 * new Date() + 864e5 * a.expires) a.expires = a.expires ? a.expires.toUTCString() : '' try { var s = JSON.stringify(o) if (/^[\{\[]/.test(s)) o = s } catch (t) {} ;(o = n.write ? n.write(o, e) : encodeURIComponent(String(o)).replace( /%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent )), (e = encodeURIComponent(String(e)) .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape)) var u = '' for (var l in a) if (a[l]) if (((u += '; ' + l), true !== a[l])) u += '=' + a[l].split(';')[0] return (document.cookie = e + '=' + o + u) } } function a(t, i) { if ('undefined' != typeof document) { for ( var o = {}, a = document.cookie ? document.cookie.split('; ') : [], s = 0; s < a.length; s++ ) { var u = a[s].split('='), l = u.slice(1).join('=') if (!i && '"' === l.charAt(0)) l = l.slice(1, -1) try { var c = e(u[0]) if (((l = (n.read || n)(l, c) || e(l)), i)) try { l = JSON.parse(l) } catch (t) {} if (((o[c] = l), t === c)) break } catch (t) {} } return t ? o[t] : o } } return ( (i.set = o), (i.get = function (t) { return a(t, false) }), (i.getJSON = function (t) { return a(t, true) }), (i.remove = function (e, n) { o(e, '', t(n, { expires: -1 })) }), (i.defaults = {}), (i.withConverter = init), i ) } return init(function () {}) }) }, 12574: function (t, e, n) { 'use strict' $(function () { var selector = '.u-back-to-top' $(selector).hide(), $(window).scroll(function () { if ($(this).scrollTop() > 100) $(selector).fadeIn().css('display', 'block') else $(selector).fadeOut() }) }) }, 12575: function (t, e, n) { 'use strict' var i = n(17), o = n(12576) ;(window._npScrollSpyInit = function () { var t = '.u-menu .u-nav-container .u-nav-link[href*="#"]', e = '.u-menu .u-nav-container-collapse .u-nav-link[href*="#"]', n if (document.querySelectorAll(t).length) try { o(t, { nested: true, offset: function () { var t, e return (i('.u-header.u-sticky').outerHeight(true) || 0) + 1 }, }), o(e, { nested: true, offset: function () { return i('.u-header.u-sticky').outerHeight(true) || 0 }, }) } catch (t) { console.warn('ScrollSpy: has no items') } }), document.addEventListener( 'gumshoeActivate', function (t) { var link t.detail.link.classList.add('active') }, false ), document.addEventListener( 'gumshoeDeactivate', function (t) { var link t.detail.link.classList.remove('active') }, false ), i(function () { window._npScrollSpyInit() }) }, 12576: function (t, e, n) { 'use strict' ;(function (n) { var i, o /*! * gumshoejs v5.1.2 * A simple, framework-agnostic scrollspy script. * (c) 2019 Chris Ferdinandi * MIT License * http://github.com/cferdinandi/gumshoe */ !(function (n, factory) { if (true) !( void 0 !== (o = function () { return factory(n) }.apply(e, (i = []))) && (t.exports = o) ) else if ('object' == typeof e) t.exports = factory(n) else n.Gumshoe = factory(n) })( void 0 !== n ? n : 'undefined' != typeof window ? window : this, function (t) { var e = { navClass: 'active', contentClass: 'active', nested: false, nestedClass: 'active', offset: 0, reflow: false, events: true, }, n = function () { var t = {} return ( Array.prototype.forEach.call(arguments, function (e) { for (var n in e) if (e.hasOwnProperty(n)) t[n] = e[n] }), t ) }, i = function (type, t, e) { if (e.settings.events) { var n = new CustomEvent(type, { bubbles: true, cancelable: true, detail: e, }) t.dispatchEvent(n) } }, o = function (t) { var e = 0 if (t.offsetParent) for (; t; ) (e += t.offsetTop), (t = t.offsetParent) return e >= 0 ? e : 0 }, a = function (t) { if (t) t.sort(function (t, e) { var n, i if (o(t.content) < o(e.content)) return -1 else return 1 }) }, s = function (settings) { if ('function' == typeof settings.offset) return parseFloat(settings.offset()) else return parseFloat(settings.offset) }, u = function () { return Math.max( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight ) }, l = function (e, settings, n) { var i = e.getBoundingClientRect(), o = s(settings) if (n) return ( parseInt(i.bottom, 10) < (t.innerHeight || document.documentElement.clientHeight) ) else return parseInt(i.top, 10) <= o }, c = function () { if (t.innerHeight + t.pageYOffset >= u()) return true else return false }, f = function (t, settings) { if (c() && l(t.content, settings, true)) return true else return false }, h = function (t, settings) { if (t.length) { var e = t[t.length - 1] if (f(e, settings)) return e for (var n = t.length - 1; n >= 0; n--) if (l(t[n].content, settings)) return t[n] } }, p = function (nav, settings) { if (settings.nested && nav.parentNode) { var t = nav.parentNode.closest('li') if (t) t.classList.remove(settings.nestedClass), p(t, settings) } }, m = function (items, settings) { if (items) { var t = items.nav.closest('li') if (t) t.classList.remove(settings.navClass), items.content.classList.remove(settings.contentClass), p(t, settings), i('gumshoeDeactivate', t, { link: items.nav, content: items.content, settings: settings, }) } }, g = function (nav, settings) { if (settings.nested) { var t = nav.parentNode.closest('li') if (t) t.classList.add(settings.nestedClass), g(t, settings) } }, v = function (items, settings) { if (items) { var t = items.nav.closest('li') if (t) t.classList.add(settings.navClass), items.content.classList.add(settings.contentClass), g(t, settings), i('gumshoeActivate', t, { link: items.nav, content: items.content, settings: settings, }) } }, y return function (selector, i) { var o = {}, s, u, l, c, settings ;(o.setup = function () { ;(s = document.querySelectorAll(selector)), (u = []), Array.prototype.forEach.call(s, function (t) { var content = document.getElementById( decodeURIComponent(t.hash.substr(1)) ) if (content) u.push({ nav: t, content: content }) }), a(u) }), (o.detect = function () { if (!document.body.classList.contains('u-scrollspy-prevent')) { var t = h(u, settings) if (t) { if (!l || t.content !== l.content) m(l, settings), v(t, settings), (l = t) } else if (l) m(l, settings), (l = null) } }) var f = function () { if (c) t.cancelAnimationFrame(c) c = t.requestAnimationFrame(o.detect) }, p = function () { if (c) t.cancelAnimationFrame(c) c = t.requestAnimationFrame(function () { a(u), o.detect() }) }, init return ( (o.destroy = function () { if (l) m(l, settings) if ( (t.removeEventListener('scroll', f, false), settings.reflow) ) t.removeEventListener('resize', p, false) ;(u = null), (s = null), (l = null), (c = null), (settings = null) }), (function () { if ( ((settings = n(e, i || {})), o.setup(), o.detect(), t.addEventListener('scroll', f, false), settings.reflow) ) t.addEventListener('resize', p, false) })(), o ) } } ) }).call(e, n(60)) }, 12577: function (t, e, n) { 'use strict' var i = n(17), Filter = n(12578), o = n(12580), HorizontalLayoutSlider = n(410) i(window).on('load', function () { setTimeout(function () { i('.u-gallery').removeClass('u-no-transition'), i('.u-layout-horizontal').each(function () { var gallery = i(this), slider = new HorizontalLayoutSlider(gallery, true) gallery.children('.u-gallery-nav').click(function (t) { t.preventDefault() var e = i(t.currentTarget) slider.navigate(e) }) }) }, 250) }), i(function () { var t i('body').on('mouseenter', '.u-gallery.u-no-transition', function () { i(this).closest('.u-gallery').removeClass('u-no-transition') }), new o([ '.u-gallery.u-product-zoom.u-layout-thumbnails', '.u-gallery.u-product-zoom.u-layout-carousel', ]).init(), Filter.init() }) }, 12578: function (t, e, n) { 'use strict' var i = n(17), GalleryLayout = n(12579), Filter t.exports.init = function () { var filter = i('.u-gallery-filter') filter.on('click', '.u-filter-item', function (t) { t.preventDefault() var gallery = filter.closest('.u-gallery'), e = gallery.find('.u-gallery-item'), n = i(t.currentTarget), o = GalleryLayout.init(gallery) filter.find('.active').removeClass('active'), n.addClass('active') var a = n.text().trim(), s = n.index() e.each(function () { var galleryItem = i(this), t if (galleryItem.attr('data-category') === a || 0 === s) galleryItem.removeClass('hide'), galleryItem.addClass('show') else galleryItem.removeClass('show'), galleryItem.addClass('hide') }), o.updateHeight() }) } }, 12579: function (t, e, n) { 'use strict' function GalleryLayout(gallery) { ;(this.columnsRegEx = /repeat\((\d+),\s*auto\)/i), (this.columnsSplitRegEx = /\s+/), (this.gallery = gallery), (this.inner = gallery.find('.u-gallery-inner')), (this.controls = gallery.find('.u-gallery-controls')) } ;(t.exports = GalleryLayout), (GalleryLayout.init = function (gallery) { var model = new GalleryLayout(gallery) return model.init(), model.updateHeight(), model }), (GalleryLayout.prototype.init = function () { var t = this.inner.css('grid-template-columns') || '', e = t.match(this.columnsRegEx) if (e) this.columns = parseFloat(e[1]) else this.columns = t.split(this.columnsSplitRegEx).length if (!this.columns) this.columns = 1 ;(this.allItems = this.inner.find('.u-gallery-item')), (this.allRows = Math.ceil(this.allItems.length / this.columns)), this._updateState() var n = this.inner.height(), i = parseFloat(this.inner.css('gap')) || 0, o = this.visibleRows > 0 ? i * (this.visibleRows - 1) : 0 this.rowHeight = (n - o) / this.visibleRows }), (GalleryLayout.prototype._updateState = function () { ;(this.visibleItems = this.allItems.filter(':not(.hide)')), (this.visibleRows = Math.ceil( this.visibleItems.length / this.columns )) }), (GalleryLayout.prototype.updateHeight = function () { if ((this._updateState(), this.visibleRows)) { var t = parseFloat(this.gallery.css('gap')) || 0, e = parseFloat(this.inner.css('gap')) || 0, n = this.controls.height() + t, i = this.visibleRows > 0 ? e * (this.visibleRows - 1) : 0, o = n + this.rowHeight * this.visibleRows + i this.gallery.css('height', o + 'px') } }) }, 12580: function (t, e, n) { 'use strict' function i(t) { this.galleryZoomSelector = t } function o(t) { var e = t.currentTarget, n, i = u(e).closest('.u-gallery-item').data('zoom_click'), o = e.getBoundingClientRect(), a = e.querySelector('img'), s = t.clientX, l = t.clientY, c = t.originalEvent.changedTouches if (!i && !c) { u(e).addClass('hover') var f = s - o.x, h = l - o.y requestAnimationFrame(function () { var t = f * (1 - a.offsetWidth / e.offsetWidth), n = h * (1 - a.offsetHeight / e.offsetHeight) ;(a.style.left = t + 'px'), (a.style.top = n + 'px') }) } } function a(t) { var e = u(t.currentTarget), n u(e).removeClass('hover'), u(e).closest('.u-gallery-item').data('zoom_click') } function s(t) { var e = u(t.currentTarget) u(e).removeClass('hover') } var u = n(17) ;(t.exports = i), (i.prototype.init = function () { var t = this.galleryZoomSelector .map(function (selector) { return selector + ' .u-back-slide' }) .join(', '), e = this.galleryZoomSelector .map(function (selector) { return selector + ' .u-back-image' }) .join(', ') u('body').on('mousedown touchstart', t, a), u('body').on('mousemove touchmove', t, o), u('body').on('click mouseup mouseout touchend touchcancel', t, s), u(e).each(function (t, e) { var url = e.getAttribute('src') u(e) .parent() .css('background-image', 'url(' + url + ')') }) }), (window.ImageZoom = i) }, 12581: function (t, e, n) { 'use strict' var i = n(17), TabsControl = n(276) ;(window._npTabsInit = function () { function t(t) { t.preventDefault(), t.stopPropagation() var link = i(t.currentTarget), tabsControl new TabsControl(link).show() } i('body').on('click', '.u-tab-link', t) }), i(function () { window._npTabsInit() }) }, 12582: function (t, e, n) { 'use strict' var i = n(12583) ;(window._npLazyImages = { setup: function () { ;(window.lazySizesConfig = window.lazySizesConfig || {}), (window.lazySizesConfig.init = false), document.addEventListener('lazybeforeunveil', function (t) { var el = t.target if (el.matches('video')) { var e = el.getAttribute('data-src'), n = el.querySelector('source') if (n && e) n.setAttribute('src', e) } else { var i = el.getAttribute('data-bg') if (i) { var list = cssBgParser.parseElementStyle(getComputedStyle(el)) if (list.backgrounds.length) list.backgrounds[0].color = '' list.backgrounds.push(new cssBgParser.Background({ image: i })), (el.style.backgroundImage = list.toString('image')) } } }) }, init: function () { i.init() }, }), window._npLazyImages.setup(), $(function () { window._npLazyImages.init() }) }, 12583: function (t, e, n) { 'use strict' !(function (e, factory) { var n = factory(e, e.document, Date) if (((e.lazySizes = n), 'object' == typeof t && t.exports)) t.exports = n })('undefined' != typeof window ? window : {}, function t(e, n, Date) { var i, o if ( (!(function () { var t, n = { lazyClass: 'lazyload', loadedClass: 'lazyloaded', loadingClass: 'lazyloading', preloadClass: 'lazypreload', errorClass: 'lazyerror', autosizesClass: 'lazyautosizes', srcAttr: 'data-src', srcsetAttr: 'data-srcset', sizesAttr: 'data-sizes', minSize: 40, customMedia: {}, init: true, expFactor: 1.5, hFac: 0.8, loadMode: 2, loadHidden: true, ricTimeout: 0, throttleDelay: 125, } for (t in ((o = e.lazySizesConfig || e.lazysizesConfig || {}), n)) if (!(t in o)) o[t] = n[t] })(), !n || !n.getElementsByClassName) ) return { init: function () {}, cfg: o, noSupport: true } var a = n.documentElement, s = e.HTMLPictureElement, u = 'addEventListener', l = 'getAttribute', c = e[u].bind(e), f = e.setTimeout, h = e.requestAnimationFrame || f, p = e.requestIdleCallback, m = /^picture$/i, g = ['load', 'error', 'lazyincluded', '_lazyloaded'], v = {}, y = Array.prototype.forEach, w = function (t, e) { if (!v[e]) v[e] = new RegExp('(\\s|^)' + e + '(\\s|$)') return v[e].test(t[l]('class') || '') && v[e] }, b = function (t, e) { if (!w(t, e)) t.setAttribute('class', (t[l]('class') || '').trim() + ' ' + e) }, C = function (t, e) { var n if ((n = w(t, e))) t.setAttribute('class', (t[l]('class') || '').replace(n, ' ')) }, S = function (t, e, add) { var n = add ? u : 'removeEventListener' if (add) S(t, e) g.forEach(function (i) { t[n](i, e) }) }, x = function (t, e, o, a, s) { var u = n.createEvent('Event') if (!o) o = {} return ( (o.instance = i), u.initEvent(e, !a, !s), (u.detail = o), t.dispatchEvent(u), u ) }, A = function (el, t) { var n if (!s && (n = e.picturefill || o.pf)) { if (t && t.src && !el[l]('srcset')) el.setAttribute('srcset', t.src) n({ reevaluate: true, elements: [el] }) } else if (t && t.src) el.src = t.src }, _ = function (t, style) { return (getComputedStyle(t, null) || {})[style] }, T = function (t, e, n) { for ( n = n || t.offsetWidth; n < o.minSize && e && !t._lazysizesWidth; ) (n = e.offsetWidth), (e = e.parentNode) return n }, E = ((L = []), (P = M = []), (B = function (t, e) { if (I && !e) t.apply(this, arguments) else if ((P.push(t), !k)) (k = true), (n.hidden ? f : h)(O) }), (B._lsFlush = O = function () { var t = P for (P = M.length ? L : M, I = true, k = false; t.length; ) t.shift()() I = false }), B), I, k, M, L, P, O, B, F = function (t, simple) { return simple ? function () { E(t) } : function () { var e = this, n = arguments E(function () { t.apply(e, n) }) } }, N = function (t) { var e, n = 0, i = o.throttleDelay, a = o.ricTimeout, s = function () { ;(e = false), (n = Date.now()), t() }, u = p && a > 49 ? function () { if ((p(s, { timeout: a }), a !== o.ricTimeout)) a = o.ricTimeout } : F(function () { f(s) }, true) return function (t) { var o if ((t = true === t)) a = 33 if (!e) { if (((e = true), (o = i - (Date.now() - n)) < 0)) o = 0 if (t || o < 9) u() else f(u, o) } } }, U = function (t) { var e, n, i = 99, o = function () { ;(e = null), t() }, a = function () { var t = Date.now() - n if (t < i) f(a, i - t) else (p || o)(o) } return function () { if (((n = Date.now()), !e)) e = f(a, i) } }, loader = ((tt = /^img$/i), (nt = /^iframe$/i), (rt = 'onscroll' in e && !/(gle|ing)bot/.test(navigator.userAgent)), (ot = 0), (at = 0), (st = 0), (ut = -1), (lt = function (t) { if ((st--, !t || st < 0 || !t.target)) st = 0 }), (ct = function (t) { if (null == J) J = 'hidden' == _(n.body, 'visibility') return ( J || !( 'hidden' == _(t.parentNode, 'visibility') && 'hidden' == _(t, 'visibility') ) ) }), (ft = function (t, e) { var i, o = t, visible = ct(t) for ( j -= e, X += e, K -= e, Z += e; visible && (o = o.offsetParent) && o != n.body && o != a; ) if ( (visible = (_(o, 'opacity') || 1) > 0) && 'visible' != _(o, 'overflow') ) (i = o.getBoundingClientRect()), (visible = Z > i.left && K < i.right && X > i.top - 1 && j < i.bottom + 1) return visible }), (ht = N( (dt = function () { var t, e, rect, s, u, c, f, h, p, m, g, v, y = i.elements if ((Y = o.loadMode) && st < 8 && (t = y.length)) { for (e = 0, ut++; e < t; e++) if (y[e] && !y[e]._lazyRace) if ( !(!rt || (i.prematureUnveil && i.prematureUnveil(y[e]))) ) { if (!(h = y[e][l]('data-expand')) || !(c = 1 * h)) c = at if (!m) if ( ((m = !o.expand || o.expand < 1 ? a.clientHeight > 500 && a.clientWidth > 500 ? 500 : 370 : o.expand), (i._defEx = m), (g = m * o.expFactor), (v = o.hFac), (J = null), at < g && st < 1 && ut > 2 && Y > 2 && !n.hidden) ) (at = g), (ut = 0) else if (Y > 1 && ut > 1 && st < 6) at = m else at = ot if (p !== c) (V = innerWidth + c * v), (G = innerHeight + c), (f = -1 * c), (p = c) if ( ((rect = y[e].getBoundingClientRect()), (X = rect.bottom) >= f && (j = rect.top) <= G && (Z = rect.right) >= f * v && (K = rect.left) <= V && (X || Z || K || j) && (o.loadHidden || ct(y[e])) && ((H && st < 3 && !h && (Y < 3 || ut < 4)) || ft(y[e], c))) ) { if ((bt(y[e]), (u = true), st > 9)) break } else if ( !u && H && !s && st < 4 && ut < 4 && Y > 2 && (z[0] || o.preloadAfterLoad) && (z[0] || (!h && (X || Z || K || j || 'auto' != y[e][l](o.sizesAttr)))) ) s = z[0] || y[e] } else bt(y[e]) if (s && !u) bt(s) } }) )), (mt = F( (pt = function (t) { var e = t.target if (e._lazyCache) return delete e._lazyCache, void 0 lt(t), b(e, o.loadedClass), C(e, o.loadingClass), S(e, gt), x(e, 'lazyloaded') }) )), (gt = function (t) { mt({ target: t.target }) }), (vt = function (t, e) { try { t.contentWindow.location.replace(e) } catch (n) { t.src = e } }), (yt = function (t) { var e, n = t[l](o.srcsetAttr) if ((e = o.customMedia[t[l]('data-media') || t[l]('media')])) t.setAttribute('media', e) if (n) t.setAttribute('srcset', n) }), (wt = F(function (t, e, n, i, a) { var s, u, c, h, p, g if (!(p = x(t, 'lazybeforeunveil', e)).defaultPrevented) { if (i) if (n) b(t, o.autosizesClass) else t.setAttribute('sizes', i) if (((u = t[l](o.srcsetAttr)), (s = t[l](o.srcAttr)), a)) h = (c = t.parentNode) && m.test(c.nodeName || '') if ( ((g = e.firesLoad || ('src' in t && (u || s || h))), (p = { target: t }), b(t, o.loadingClass), g) ) clearTimeout($), ($ = f(lt, 2500)), S(t, gt, true) if (h) y.call(c.getElementsByTagName('source'), yt) if (u) t.setAttribute('srcset', u) else if (s && !h) if (nt.test(t.nodeName)) vt(t, s) else t.src = s if (a && (u || h)) A(t, { src: s }) } if (t._lazyRace) delete t._lazyRace C(t, o.lazyClass), E(function () { var e = t.complete && t.naturalWidth > 1 if (!g || e) { if (e) b(t, 'ls-is-cached') pt(p), (t._lazyCache = true), f(function () { if ('_lazyCache' in t) delete t._lazyCache }, 9) } if ('lazy' == t.loading) st-- }, true) })), (bt = function (t) { if (!t._lazyRace) { var e, n = tt.test(t.nodeName), i = n && (t[l](o.sizesAttr) || t[l]('sizes')), a = 'auto' == i if ( (!a && H) || !n || (!t[l]('src') && !t.srcset) || t.complete || w(t, o.errorClass) || !w(t, o.lazyClass) ) { if (((e = x(t, 'lazyunveilread').detail), a)) At.updateElem(t, true, t.offsetWidth) ;(t._lazyRace = true), st++, wt(t, e, a, i, n) } } }), (Ct = U(function () { ;(o.loadMode = 3), ht() })), (xt = function () { if (!H) { if (Date.now() - W < 999) return f(xt, 999), void 0 ;(H = true), (o.loadMode = 3), ht(), c('scroll', St, true) } }), { _: function () { if ( ((W = Date.now()), (i.elements = n.getElementsByClassName(o.lazyClass)), (z = n.getElementsByClassName( o.lazyClass + ' ' + o.preloadClass )), c('scroll', ht, true), c('resize', ht, true), c('pageshow', function (t) { if (t.persisted) { var e = n.querySelectorAll('.' + o.loadingClass) if (e.length && e.forEach) h(function () { e.forEach(function (t) { if (t.complete) bt(t) }) }) } }), e.MutationObserver) ) new MutationObserver(ht).observe(a, { childList: true, subtree: true, attributes: true, }) else a[u]('DOMNodeInserted', ht, true), a[u]('DOMAttrModified', ht, true), setInterval(ht, 999) if ( (c('hashchange', ht, true), [ 'focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', ].forEach(function (t) { n[u](t, ht, true) }), /d$|^c/.test(n.readyState)) ) xt() else c('load', xt), n[u]('DOMContentLoaded', ht), f(xt, 2e4) if (i.elements.length) dt(), E._lsFlush() else ht() }, checkElems: ht, unveil: bt, _aLSL: (St = function () { if (3 == o.loadMode) o.loadMode = 2 Ct() }), }), z, H, $, Y, W, V, G, j, K, Z, X, J, tt, nt, rt, ot, at, st, ut, lt, ct, ft, dt, ht, pt, mt, gt, vt, yt, wt, bt, Ct, St, xt, At = ((Tt = F(function (t, e, n, i) { var o, a, s if ( ((t._lazysizesWidth = i), (i += 'px'), t.setAttribute('sizes', i), m.test(e.nodeName || '')) ) for ( a = 0, s = (o = e.getElementsByTagName('source')).length; a < s; a++ ) o[a].setAttribute('sizes', i) if (!n.detail.dataAttr) A(t, n.detail) })), (Dt = function (t, e, n) { var i, o = t.parentNode if (o) if ( ((n = T(t, o, n)), !(i = x(t, 'lazybeforesizes', { width: n, dataAttr: !!e })) .defaultPrevented) ) if ((n = i.detail.width) && n !== t._lazysizesWidth) Tt(t, o, i, n) }), { _: function () { ;(_t = n.getElementsByClassName(o.autosizesClass)), c('resize', Mt) }, checkElems: (Mt = U(function () { var t, e = _t.length if (e) for (t = 0; t < e; t++) Dt(_t[t]) })), updateElem: Dt, }), _t, Tt, Dt, kt, Mt, init = function () { if (!init.i && n.getElementsByClassName) (init.i = true), At._(), loader._() } return ( f(function () { if (o.init) init() }), (i = { cfg: o, autoSizer: At, loader: loader, init: init, uP: A, aC: b, rC: C, hC: w, fire: x, gW: T, rAF: E, }) ) }) }, 12584: function (t, e, n) { 'use strict' var i = n(17), Dialog = n(286) ;(window._npDialogsInit = function () { function t(t) { var dialog = o(t) if (dialog) if ((t.preventDefault(), t.stopPropagation(), !e(t))) dialog.open() } function e(t) { return i(t.currentTarget).hasClass('disabled') } function n(t) { var dialog t.preventDefault(), t.stopPropagation(), o(t).close() } function o(t) { var link = i(t.currentTarget), e = link.attr('href') || link.attr('data-href'), n try { n = i(e) } catch (t) { return null } return (n = n.length ? n : link), new Dialog(n, link) } function a() { return new Dialog(i('[data-dialog-show-on="page_exit"]')) } function s() { return new Dialog(i('[data-dialog-show-on="timer"]')) } function u(t) { if ( t.clientY < 50 && null == t.relatedTarget && 'select' !== t.target.nodeName.toLowerCase() ) { var dialog a().open(function () { document.removeEventListener('mouseout', u) }) } } function l() { var dialog = s() setTimeout(function () { dialog.open() }, dialog.getInterval()) } function c(t) { var e = i(t.currentTarget) setTimeout(function () { new Dialog(e).close() }) } i('body').on('click', '.u-dialog-link', t), i('body').on('click', '.u-shopping-cart[href^="#"]', t), i('body').on('click', '.u-dialog-close-button', n), i('body').on( 'click', '.u-dialog .u-btn:not(.u-btn-step):not(.u-stripe-button)', c ), document.addEventListener('mouseout', u), l() }), i(function () { window._npDialogsInit() }) }, 12585: function (t, e, n) { 'use strict' var i = n(17), CountdownUpdater = n(275) i(window).on('load', function () { function update() { t.each(function (t, el) { var countdownUpdater new CountdownUpdater(i(el)).startUpdate('runtime') }) } var t = CountdownUpdater.findAll() if (t.length) update() }) }, 12586: function (t, e, n) { 'use strict' var i = n(17) i(function () { i(document).on('click', '.u-quantity-input a', function (t) { var e t.preventDefault() var n = i(this), o = n.siblings('input') if (n.hasClass('minus')) (e = (e = parseFloat(o.val()) - 1) < 1 ? 1 : e), o.val(e) if (n.hasClass('plus')) (e = parseFloat(o.val()) + 1), o.val(e) n .siblings('.minus') .addBack('.minus') .toggleClass('disabled', 1 === e), o.change() }) }) }, 12587: function (t, e, n) { 'use strict' var i = n(17) i(function () { i('.u-show-second-image').each(function () { var t i(this) .find('.u-repeater-item') .each(function () { var repeaterItem = i(this), image = repeaterItem .find('.u-image:not(.u-product-second-image, a)') .eq(0) if (repeaterItem.hasClass('u-image')) image = repeaterItem var t = repeaterItem.find('.u-product-second-image') if (t.length) { var e = t.attr('src'), n = t.attr('srcset'), o = image.clone(), a = image.clone() if ('IMG' === image.get(0).tagName) if ((a.attr('src', e), n)) a.attr('srcset', n) else o.removeAttr('srcset'), a.removeAttr('srcset') else a.get(0).style.backgroundImage = "url('" + e + "')" var s = i('<div class="u-product-second-image-wrapper"/>') s.append(o), s.append(a), image.replaceWith(s) } }) }) }) }, 12588: function (t, e, n) { 'use strict' var i = n(17), Accordion = n(224) ;(window._npAccordionInit = function () { function t(t) { t.preventDefault(), t.stopPropagation() var link = i(t.currentTarget), accordion new Accordion(link).show() } i('body').on('click', '.u-accordion-link', t) }), i(function () { window._npAccordionInit() }) }, 12589: function (t, e, n) { 'use strict' function i(t) { var form = l(this), password = form.find('input[name=password]').val() || '', e = form.find('input[name=password_hash]') if (e.length) { var hash = u.create().update(password).digest().toHex() return e.val(hash), void 0 } t.preventDefault(), t.stopPropagation(), a(password, function () { s(form) }) } function o() { a(localStorage.getItem(c)), l('#password-redirect-style').remove() } function a(password, t) { if (password) { var e = l('body'), n = e.attr('data-salt'), i = e.attr('data-salted-password'), hash = u.create().update(password).digest().toHex(), o = u .create() .update(password + n) .digest() .toHex(), homePage, url = (e.attr('data-home-page') || window.location.pathname).replace( /\.html(\?[\s\S]*)?$/, '_' + hash + '.html$1' ) if (o === i) localStorage.setItem(c, password), window.location.replace(url) else if ('function' == typeof t) t() } } function s(form) { var t = form.find('.u-form-send-error') t.show(), setTimeout(function () { t.hide() }, 2e3) } var u = n(264), l = n(17), c = 'auth_key' ;(window.sha256 = u), (window._npAuthInit = function () { var form l('.u-password-control form').submit(i) }), l(function () { window._npAuthInit(), o() }) }, 12590: function (t, e, n) { 'use strict' var i = n(17) i(function () { i('body').on('click', '.u-language-active', function (t) { t.preventDefault() }) }) }, 12591: function (t, e, n) { 'use strict' var FormRating = (t.exports = {}), i = n(17), o = '.u-form-rating-item:visible' i(function () { FormRating.init() }), (FormRating.selectStars = function t(e, n) { var o = e.find('.u-active-icon'), a = e.find('.u-passive-icon'), s = o.length o.hide(), a.hide(), i(o.toArray().slice(0, n)).show(), i(a.toArray().slice(0, s - n)).show() }), (FormRating.onStarClick = function t(e) { var n = i(e.currentTarget), a = n.parents('.u-form-rating').find('input'), s, u = n.prevAll(o).length + 1, l = a.val() + '' if (u.toString() === l) return a.val(''), void 0 a.val(u) }), (FormRating.onStarHover = function t(e) { var n = i(e.currentTarget), a = n.prevAll(o) FormRating.selectStars(n.parent(), a.length + 1) }), (FormRating.onLeave = function t(e) { var n = i(e.currentTarget), o, a = n.find('input').val() || 0 FormRating.selectStars(n, a) }), (FormRating.init = function init() { var t = '.u-form .u-form-rating .u-form-rating-item', e = i('.u-form .u-form-rating') FormRating.onLeave({ currentTarget: e }), e.mouseleave(FormRating.onLeave), i(t).hover(FormRating.onStarHover), i(t).click(FormRating.onStarClick) var n = e.find('input[type=hidden][required]') if (n && n.length) n.addClass('u-input-hidden'), n.attr('type', 'text') }) }, 12592: function (t, e, n) { 'use strict' var i = n(17) i(function () { i('body').on('click', '.u-form .u-gallery-item', function (t) { if (!i(t.target).is('input, label')) { var input = i(this).find('input') input.prop('checked', !input.prop('checked')) } }) }) }, 12593: function (t, e, n) { 'use strict' function i(input) { var t = parseFloat(input.prop('max')), e = parseFloat(input.prop('min')), n = parseFloat(input.prop('value')), i = 0 if (n) i = (100 * (n - e)) / (t - e) var formField = input.closest('.u-form-number') if (formField.length) formField[0].style.setProperty('--progress', i + '%') } function o(t, e) { if (e.length && t.length) e.prop('value', t.prop('value')), e.trigger('change') } function a(t) { if (t.length) { var e = t.prop('value') t.closest('.u-input-row').attr('data-value', e) } } var s = n(17) s(function () { var t = s('body') t.on('input', '.u-form .u-form-number input[type="range"]', function () { var input = s(this), t = input.siblings('input') if (t.length) o(input, t) i(input), a(input) }), t.on( 'input', '.u-form .u-form-number input[type="number"]', function () { var input = s(this), t = input.siblings('input') if (t.length) o(input, t), i(t) a(input) } ) }) }, 12594: function (t, e, n) { 'use strict' function i(t, dependency) { var e = [ '[name="' + dependency.field + '"]', '[name="' + dependency.field + '[]"]', ].join(', '), n = t.find(e) if (!n.length) return false if (!(dependency.condition in s)) return false else return s[dependency.condition](n, dependency.value) } function o(t, e) { if (e in u) u[e](t) } var FormDependency = t.exports, a = n(17), s = n(12595) a(function () { a('.u-form').each(function () { FormDependency.process(a(this)) }) var t = function () { FormDependency.process(a(this).closest('.u-form')) } a('body') .on('input', '.u-form input[name], .u-form input[name]', t) .on('change', '.u-form input[name], .u-form select[name]', t) }), (FormDependency.process = function t(e) { e.find('[data-dependency]').each(function () { var t = a(this), dependency try { dependency = JSON.parse(t.attr('data-dependency'))[0] } catch (t) { dependency = null } if (dependency) if (i(e, dependency)) o(t, dependency.action) else { var n o(t, { hide: 'show', show: 'hide' }[dependency.action]) } }) }) var u = { show: function (t) { t.closest('.u-form-group').show() }, hide: function (t) { t.closest('.u-form-group').hide() }, } }, 12595: function (t, e, n) { 'use strict' function i(t) { return t .toArray() .filter(function (el) { return el.checked }) .map(function (el) { var t = el.value if (!t) t = el.getAttribute('data-calc') || '' return String(t).trim() }) } function o(t, e) { return String(t).trim() === String(e).trim() } var a = t.exports ;(a.equal = function (t, e) { if (t.is('input[type="checkbox"], input[type="radio"]')) return a.has.apply(null, arguments) else return o(t.val(), e) }), (a['not-equal'] = function () { return !a.equal.apply(null, arguments) }), (a.contain = function (t, e) { if (t.is('input[type="checkbox"], input[type="radio"]')) { var n return i(t).some(function (t) { return String(t).includes(e) }) } return String(t.val()).includes(e) }), (a['not-contain'] = function () { return !a.contain.apply(null, arguments) }), (a.has = function (t, e) { return i(t).includes(String(e).trim()) }), (a['not-has'] = function () { return !a.has.apply(null, arguments) }), (a['number-equal'] = function (t, e) { var n = parseFloat(t.val()) if (n === (e = parseFloat(e))) return true var diff = Math.abs(n - e), i if (diff < Number.EPSILON) return true else return diff <= Math.min(Math.abs(n), Math.abs(e)) * Number.EPSILON }), (a['number-not-equal'] = function () { return a['number-equal'].apply(null, arguments) }), (a['number-greater'] = function (t, e) { var n return parseFloat(t.val()) > (e = parseFloat(e)) }), (a['number-greater-or-equal'] = function () { return ( a['number-greater'].apply(null, arguments) || a['number-equal'].apply(null, arguments) ) }), (a['number-less'] = function (t, e) { var n return parseFloat(t.val()) < (e = parseFloat(e)) }), (a['number-less-or-equal'] = function () { return ( a['number-less'].apply(null, arguments) || a['number-equal'].apply(null, arguments) ) }), (window.FormDependencyCondition = a) }, 12596: function (t, e, n) { 'use strict' function i(form) { var activeSlide, t return form .find('.u-slide.active, .u-slide.u-active') .find('input, textarea, select') .toArray() .every(function (input) { return input.reportValidity() }) } var o = n(17), FormProgress = n(664), a = n(665), s = 'u-carousel' o(function () { var t = o('body'), e = o('.u-form.u-carousel') e.find('.u-carousel-inner').css('overflow', 'unset'), a.update(e), FormProgress.update(e), t.on('click', '.u-btn-step', function (t) { t.preventDefault() var button = o(this), e = button.closest('.u-carousel') if (e.length) if (button.hasClass('u-btn-step-next')) e[s]('next') else if (button.hasClass('u-btn-step-prev')) e[s]('prev') }), e .on('u-slide.bs.u-carousel', function (t) { var form = o(this) if (0 !== t.to && t.to > t.from && !i(form)) return t.preventDefault(), void 0 a.update(o(this), t.to), FormProgress.update(o(this), t.to), form.find('.u-carousel-inner').css('overflow', '') }) .on('slid.bs.u-carousel', function () { var form o(this).find('.u-carousel-inner').css('overflow', 'unset') }) .on('reset', function () { o(this)[s](0) }) }) }, 12597: function (t, e, n) { 'use strict' function i() { return ( -1 !== (c('html').attr('class') || '').search(/u-responsive-(xs|sm)/) ) } function o(t) { var e = 0 if ( Intl && Intl.Locale && navigator.language && new Intl.Locale(navigator.language).weekInfo ) e = new Intl.Locale(navigator.language).weekInfo.firstDay || 0 t.startDay = e } function a(t) { var e = [] ;[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].forEach(function (t) { var n = new Date() n.setDate(1), n.setMonth(t - 1) var i = n.toLocaleString('default', { month: 'long' }) e.push(i.charAt(0).toUpperCase() + i.slice(1)) }), (t.customMonths = e) } function s(t) { var e = new Date(), n = e.getDay(), diff = e.getDate() - n + (0 === n ? -6 : 1), i = new Date(e.setDate(diff)), o = [] ;[1, 2, 3, 4, 5, 6, 7].forEach(function (t) { var e if (1 === t) e = i else (e = new Date(i)).setDate(e.getDate() + t - 1) var n = e.toLocaleString('default', { weekday: 'short' }) if (((n = n.charAt(0).toUpperCase() + n.slice(1)), 7 === t)) o.unshift(n) else o.push(n) }), (t.customDays = o) } var u = n(12598), l = n(12599), c = n(17), f = { init: function (el) { if (i()) return f.switchToDate(el), null else return f.create(el) }, create: function (el) { f.switchToText(el) var t = { formatter: function (input, date) { var format = input.getAttribute('data-date-format') if ('local' === format && Intl && Intl.DateTimeFormat) date = Intl.DateTimeFormat().format(date) else date = l(date, format || 'default') input.setAttribute('value', date) }, } return o(t), a(t), s(t), u(el, t) }, remove: function (el, t) { if (t) t.remove() f.switchToDate(el) }, switchToDate: function (el) { el.removeAttribute('value'), el.classList.remove('readonly'), (el.type = 'date') }, switchToText: function (el) { el.classList.add('readonly'), (el.type = 'text') }, } c(function () { var selector c('form input.u-input[data-date-format]').each(function () { var t = f.init(this) c(this).focus(function (e) { var n = e.target if (!i()) { if (!t) t = f.create(n) } else if (t) f.remove(n, t), (t = null) }) }), c('.u-input.readonly').on('keydown paste focus', function (t) { if (9 !== t.keyCode) t.preventDefault() }) }) }, 12598: function (t, e, n) { 'use strict' var i, o ;(i = window), (o = function () { return (function (t) { function e(i) { if (n[i]) return n[i].exports var r = (n[i] = { i: i, l: !1, exports: {} }) return t[i].call(r.exports, r, r.exports, e), (r.l = !0), r.exports } var n = {} return ( (e.m = t), (e.c = n), (e.d = function (t, n, i) { e.o(t, n) || Object.defineProperty(t, n, { enumerable: !0, get: i }) }), (e.r = function (t) { 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: 'Module', }), Object.defineProperty(t, '__esModule', { value: !0 }) }), (e.t = function (t, n) { if ((1 & n && (t = e(t)), 8 & n)) return t if (4 & n && 'object' == typeof t && t && t.__esModule) return t var i = Object.create(null) if ( (e.r(i), Object.defineProperty(i, 'default', { enumerable: !0, value: t, }), 2 & n && 'string' != typeof t) ) for (var r in t) e.d( i, r, function (e) { return t[e] }.bind(null, r) ) return i }), (e.n = function (t) { var n = t && t.__esModule ? function () { return t.default } : function () { return t } return e.d(n, 'a', n), n }), (e.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }), (e.p = ''), e((e.s = 0)) ) })([ function (t, e, n) { function i() {} function d(t) { U.forEach(function (e) { t.addEventListener(e, t === document ? S : x) }) } function o(t) { return Array.isArray(t) ? t.map(o) : '[object Object]' === b(t) ? Object.keys(t).reduce(function (e, n) { return (e[n] = o(t[n])), e }, {}) : t } function a(t, e) { var n = t.calendar.querySelector('.qs-overlay'), i = n && !n.classList.contains('qs-hidden') ;(e = e || new Date(t.currentYear, t.currentMonth)), (t.calendar.innerHTML = [s(e, t, i), u(e, t, i), l(t, i)].join( '' )), i && window.requestAnimationFrame(function () { y(!0, t) }) } function s(t, e, n) { return [ '<div class="qs-controls' + (n ? ' qs-blur' : '') + '">', '<div class="qs-arrow qs-left"></div>', '<div class="qs-month-year">', '<span class="qs-month">' + e.months[t.getMonth()] + '</span>', '<span class="qs-year">' + t.getFullYear() + '</span>', '</div>', '<div class="qs-arrow qs-right"></div>', '</div>', ].join('') } function u(t, e, n) { var i = e.currentMonth, r = e.currentYear, o = e.dateSelected, a = e.maxDate, s = e.minDate, u = e.showAllDates, d = e.days, l = e.disabledDates, c = e.startDay, f = e.weekendIndices, h = e.events, p = e.getRange ? e.getRange() : {}, m = +p.start, v = +p.end, y = g(new Date(t).setDate(1)), w = y.getDay() - c, D = w < 0 ? 7 : 0 y.setMonth(y.getMonth() + 1), y.setDate(0) var b = y.getDate(), q = [], C = D + 7 * (((w + b) / 7) | 0) C += (w + b) % 7 ? 7 : 0 for (var S = 1; S <= C; S++) { var x = (S - 1) % 7, A = d[x], _ = S - (w >= 0 ? w : 7 + w), T = new Date(r, i, _), E = h[+T], I = _ < 1 || _ > b, k = I ? (_ < 1 ? -1 : 1) : 0, M = I && !u, L = M ? '' : T.getDate(), P = +T == +o, O = x === f[0] || x === f[1], B = m !== v, F = 'qs-square ' + A E && !M && (F += ' qs-event'), I && (F += ' qs-outside-current-month'), (!u && I) || (F += ' qs-num'), P && (F += ' qs-active'), (l[+T] || e.disabler(T) || (O && e.noWeekends) || (s && +T < +s) || (a && +T > +a)) && !M && (F += ' qs-disabled'), +g(new Date()) == +T && (F += ' qs-current'), +T === m && v && B && (F += ' qs-range-start'), +T > m && +T < v && (F += ' qs-range-middle'), +T === v && m && B && (F += ' qs-range-end'), M && ((F += ' qs-empty'), (L = '')), q.push( '<div class="' + F + '" data-direction="' + k + '">' + L + '</div>' ) } var R = d .map(function (t) { return '<div class="qs-square qs-day">' + t + '</div>' }) .concat(q) return ( R.unshift( '<div class="qs-squares' + (n ? ' qs-blur' : '') + '">' ), R.push('</div>'), R.join('') ) } function l(t, e) { var n = t.overlayPlaceholder, i = t.overlayButton return [ '<div class="qs-overlay' + (e ? '' : ' qs-hidden') + '">', '<div>', '<input class="qs-overlay-year" placeholder="' + n + '" inputmode="numeric" />', '<div class="qs-close">✕</div>', '</div>', '<div class="qs-overlay-month-container">' + t.overlayMonths .map(function (t, e) { return ( '<div class="qs-overlay-month" data-month-num="' + e + '">' + t + '</div>' ) }) .join('') + '</div>', '<div class="qs-submit qs-disabled">' + i + '</div>', '</div>', ].join('') } function c(t, e, n) { var i = e.el, r = e.calendar.querySelector('.qs-active'), o = t.textContent, s = e.sibling ;((i.disabled || i.readOnly) && e.respectDisabledReadOnly) || ((e.dateSelected = n ? void 0 : new Date(e.currentYear, e.currentMonth, o)), r && r.classList.remove('qs-active'), n || t.classList.add('qs-active'), h(i, e, n), n || q(e), s && (f({ instance: e, deselect: n }), e.first && !s.dateSelected && ((s.currentYear = e.currentYear), (s.currentMonth = e.currentMonth), (s.currentMonthName = e.currentMonthName)), a(e), a(s)), e.onSelect(e, n ? void 0 : new Date(e.dateSelected))) } function f(t) { var e = t.instance.first ? t.instance : t.instance.sibling, n = e.sibling e === t.instance ? t.deselect ? ((e.minDate = e.originalMinDate), (n.minDate = n.originalMinDate)) : (n.minDate = e.dateSelected) : t.deselect ? ((n.maxDate = n.originalMaxDate), (e.maxDate = e.originalMaxDate)) : (e.maxDate = n.dateSelected) } function h(t, e, n) { if (!e.nonInput) return n ? (t.value = '') : e.formatter !== i ? e.formatter(t, e.dateSelected, e) : void (t.value = e.dateSelected.toDateString()) } function p(t, e, n, i) { n || i ? (n && (e.currentYear = +n), i && (e.currentMonth = +i)) : ((e.currentMonth += t.contains('qs-right') ? 1 : -1), 12 === e.currentMonth ? ((e.currentMonth = 0), e.currentYear++) : -1 === e.currentMonth && ((e.currentMonth = 11), e.currentYear--)), (e.currentMonthName = e.months[e.currentMonth]), a(e), e.onMonthChange(e) } function D(t) { if (!t.noPosition) { var e = t.position.top, n = t.position.right if (t.position.centered) return t.calendarContainer.classList.add('qs-centered') var i = t.positionedEl.getBoundingClientRect(), r = t.el.getBoundingClientRect(), o = t.calendarContainer.getBoundingClientRect(), a = r.top - i.top + (e ? -1 * o.height : r.height) + 'px', s = r.left - i.left + (n ? r.width - o.width : 0) + 'px' t.calendarContainer.style.setProperty('top', a), t.calendarContainer.style.setProperty('left', s) } } function m(t) { return '[object Date]' === b(t) && 'Invalid Date' !== t.toString() } function g(t) { if (m(t) || ('number' == typeof t && !isNaN(t))) { var e = new Date(+t) return new Date(e.getFullYear(), e.getMonth(), e.getDate()) } } function q(t) { t.disabled || (!t.calendarContainer.classList.contains('qs-hidden') && !t.alwaysShow && ('overlay' !== t.defaultView && y(!0, t), t.calendarContainer.classList.add('qs-hidden'), t.onHide(t))) } function v(t) { t.disabled || (t.calendarContainer.classList.remove('qs-hidden'), 'overlay' === t.defaultView && y(!1, t), D(t), t.onShow(t)) } function y(t, e) { var n = e.calendar, i = n.querySelector('.qs-overlay'), r = i.querySelector('.qs-overlay-year'), o = n.querySelector('.qs-controls'), a = n.querySelector('.qs-squares') t ? (i.classList.add('qs-hidden'), o.classList.remove('qs-blur'), a.classList.remove('qs-blur'), (r.value = '')) : (i.classList.remove('qs-hidden'), o.classList.add('qs-blur'), a.classList.add('qs-blur'), r.focus()) } function w(t, e, n, i) { var r = isNaN(+new Date().setFullYear(e.value || void 0)), o = r ? null : e.value if (13 === t.which || 13 === t.keyCode || 'click' === t.type) i ? p(null, n, o, i) : r || e.classList.contains('qs-disabled') || p(null, n, o) else if (n.calendar.contains(e)) n.calendar .querySelector('.qs-submit') .classList[r ? 'add' : 'remove']('qs-disabled') } function b(t) { return {}.toString.call(t) } function C(t) { B.forEach(function (e) { e !== t && q(e) }) } function S(t) { if (!t.__qs_shadow_dom) { var e = t.which || t.keyCode, n = t.type, r = t.target, i = r.classList, o = B.filter(function (t) { return t.calendar.contains(r) || t.el === r })[0], s = o && o.calendar.contains(r) if (!(o && o.isMobile && o.disableMobile)) if ('click' === n) { if (!o) return B.forEach(q) if (o.disabled) return var d = o.calendar, u = o.calendarContainer, l = o.disableYearOverlay, f = o.nonInput, h = d.querySelector('.qs-overlay-year'), m = !!d.querySelector('.qs-hidden'), g = d.querySelector('.qs-month-year').contains(r), D = r.dataset.monthNum if (o.noPosition && !s) (u.classList.contains('qs-hidden') ? v : q)(o) else if (i.contains('qs-arrow')) p(i, o) else if (g || i.contains('qs-close')) l || y(!m, o) else if (D) w(t, h, o, D) else { if (i.contains('qs-disabled')) return if (i.contains('qs-num')) { var b = r.textContent, S = +r.dataset.direction, x = new Date(o.currentYear, o.currentMonth + S, b) if (S) { ;(o.currentYear = x.getFullYear()), (o.currentMonth = x.getMonth()), (o.currentMonthName = F[o.currentMonth]), a(o) for ( var A, _ = o.calendar.querySelectorAll( '[data-direction="0"]' ), T = 0; !A; ) { var E = _[T] E.textContent === b && (A = E), T++ } r = A } return void (+x == +o.dateSelected ? c(r, o, !0) : r.classList.contains('qs-disabled') || c(r, o)) } i.contains('qs-submit') ? w(t, h, o) : f && r === o.el && (v(o), C(o)) } } else if ('focusin' === n && o) v(o), C(o) else if ('keydown' === n && 9 === e && o) q(o) else if ('keydown' === n && o && !o.disabled) { var I = !o.calendar .querySelector('.qs-overlay') .classList.contains('qs-hidden') 13 === e && I && s ? w(t, r, o) : 27 === e && I && s && y(!0, o) } else if ('input' === n) { if (!o || !o.calendar.contains(r)) return var k = o.calendar.querySelector('.qs-submit'), M = r.value .split('') .reduce(function (t, e) { return t || '0' !== e ? t + (e.match(/[0-9]/) ? e : '') : '' }, '') .slice(0, 4) ;(r.value = M), k.classList[4 === M.length ? 'remove' : 'add']( 'qs-disabled' ) } } } function x(t) { S(t), (t.__qs_shadow_dom = !0) } function A(t, e) { U.forEach(function (n) { t.removeEventListener(n, e) }) } function _() { v(this) } function T() { q(this) } function E(t, e) { var n = g(t), i = this.currentYear, r = this.currentMonth, o = this.sibling if (null == t) return ( (this.dateSelected = void 0), h(this.el, this, !0), o && (f({ instance: this, deselect: !0 }), a(o)), a(this), this ) if (!m(t)) throw new Error('`setDate` needs a JavaScript Date object.') if ( this.disabledDates[+n] || n < this.minDate || n > this.maxDate ) throw new Error( "You can't manually set a date that's disabled." ) ;(this.dateSelected = n), e && ((this.currentYear = n.getFullYear()), (this.currentMonth = n.getMonth()), (this.currentMonthName = this.months[n.getMonth()])), h(this.el, this), o && (f({ instance: this }), a(o)) var s = i === n.getFullYear() && r === n.getMonth() return s || e ? a(this, n) : s || a(this, new Date(i, r, 1)), this } function I(t) { return M(this, t, !0) } function k(t) { return M(this, t) } function M(t, e, n) { function i() { return 'original' + d + 'Date' } function o() { return d.toLowerCase() + 'Date' } function s() { return 'set' + d } function u() { throw new Error('Out-of-range date passed to ' + s()) } var l = t.dateSelected, r = t.first, c = t.sibling, f = t.minDate, h = t.maxDate, p = g(e), d = n ? 'Min' : 'Max' if (null == e) (t[i()] = void 0), c ? ((c[i()] = void 0), n ? ((r && !l) || (!r && !c.dateSelected)) && ((t.minDate = void 0), (c.minDate = void 0)) : ((r && !c.dateSelected) || (!r && !l)) && ((t.maxDate = void 0), (c.maxDate = void 0))) : (t[o()] = void 0) else { if (!m(e)) throw new Error('Invalid date passed to ' + s()) c ? (((r && n && p > (l || h)) || (r && !n && p < (c.dateSelected || f)) || (!r && n && p > (c.dateSelected || h)) || (!r && !n && p < (l || f))) && u(), (t[i()] = p), (c[i()] = p), ((n && ((r && !l) || (!r && !c.dateSelected))) || (!n && ((r && !c.dateSelected) || (!r && !l)))) && ((t[o()] = p), (c[o()] = p))) : (((n && p > (l || h)) || (!n && p < (l || f))) && u(), (t[o()] = p)) } return c && a(c), a(t), t } function L() { var t = this.first ? this : this.sibling, e = t.sibling return { start: t.dateSelected, end: e.dateSelected } } function R() { var t = this.shadowDom, e = this.positionedEl, n = this.calendarContainer, r = this.sibling, i = this this.inlinePosition && (B.some(function (t) { return t !== i && t.positionedEl === e }) || e.style.setProperty('position', null)), n.remove(), (B = B.filter(function (t) { return t !== i })), r && delete r.sibling, B.length || A(document, S) var o = B.some(function (e) { return e.shadowDom === t }) for (var a in (t && !o && A(t, x), this)) delete this[a] B.length || U.forEach(function (t) { document.removeEventListener(t, S) }) } function P(t, e) { var n = new Date(t) if (!m(n)) throw new Error('Invalid date passed to `navigate`') ;(this.currentYear = n.getFullYear()), (this.currentMonth = n.getMonth()), a(this), e && this.onMonthChange(this) } function O() { var t = !this.calendarContainer.classList.contains('qs-hidden'), e = !this.calendarContainer .querySelector('.qs-overlay') .classList.contains('qs-hidden') t && y(e, this) } n.r(e) var B = [], r = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], F = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ], N = { t: 'top', r: 'right', b: 'bottom', l: 'left', c: 'centered', }, U = ['click', 'focusin', 'keydown', 'input'] e.default = function (t, e) { var n = (function (t, e) { var n, a, d = (function (t) { function e(t) { throw new Error( '"dateSelected" in options is ' + (t ? 'less' : 'greater') + ' than "' + (t || 'max') + 'Date".' ) } var n = o(t) n.events && (n.events = n.events.reduce(function (t, e) { if (!m(e)) throw new Error( '"options.events" must only contain valid JavaScript Date objects.' ) return (t[+g(e)] = !0), t }, {})), [ 'startDate', 'dateSelected', 'minDate', 'maxDate', ].forEach(function (t) { var e = n[t] if (e && !m(e)) throw new Error( '"options.' + t + '" needs to be a valid JavaScript Date object.' ) n[t] = g(e) }) var a = n.position, s = n.maxDate, u = n.minDate, d = n.dateSelected, l = n.overlayPlaceholder, c = n.overlayButton, f = n.startDay, h = n.id if ( ((n.startDate = g(n.startDate || d || new Date())), (n.disabledDates = (n.disabledDates || []).reduce( function (t, e) { var n = +g(e) if (!m(e)) throw new Error( 'You supplied an invalid date to "options.disabledDates".' ) if (n === +g(d)) throw new Error( '"disabledDates" cannot contain the same date as "dateSelected".' ) return (t[n] = 1), t }, {} )), n.hasOwnProperty('id') && null == h) ) throw new Error('`id` cannot be `null` or `undefined`') if (null != h) { var p = B.filter(function (t) { return t.id === h }) if (p.length > 1) throw new Error('Only two datepickers can share an id.') p.length ? ((n.second = !0), (n.sibling = p[0])) : (n.first = !0) } var v = ['tr', 'tl', 'br', 'bl', 'c'].some(function (t) { return a === t }) if (a && !v) throw new Error( '"options.position" must be one of the following: tl, tr, bl, br, or c.' ) if ( ((n.position = (function (t) { var e = t[0], n = t[1], i = {} return (i[N[e]] = 1), n && (i[N[n]] = 1), i })(a || 'bl')), s < u) ) throw new Error( '"maxDate" in options is less than "minDate".' ) if ( (d && (u > d && e('min'), s < d && e()), [ 'onSelect', 'onShow', 'onHide', 'onMonthChange', 'formatter', 'disabler', ].forEach(function (t) { 'function' != typeof n[t] && (n[t] = i) }), [ 'customDays', 'customMonths', 'customOverlayMonths', ].forEach(function (t, e) { var i = n[t], r = e ? 12 : 7 if (i) { if ( !Array.isArray(i) || i.length !== r || i.some(function (t) { return 'string' != typeof t }) ) throw new Error( '"' + t + '" must be an array with ' + r + ' strings.' ) n[e ? (e < 2 ? 'months' : 'overlayMonths') : 'days'] = i } }), f && f > 0 && f < 7) ) { var y = (n.customDays || r).slice(), D = y.splice(0, f) ;(n.customDays = y.concat(D)), (n.startDay = +f), (n.weekendIndices = [y.length - 1, y.length]) } else (n.startDay = 0), (n.weekendIndices = [6, 0]) 'string' != typeof l && delete n.overlayPlaceholder, 'string' != typeof c && delete n.overlayButton var q = n.defaultView if (q && 'calendar' !== q && 'overlay' !== q) throw new Error( 'options.defaultView must either be "calendar" or "overlay".' ) return (n.defaultView = q || 'calendar'), n })( e || { startDate: g(new Date()), position: 'bl', defaultView: 'calendar', } ), s = t if ('string' == typeof s) s = '#' === s[0] ? document.getElementById(s.slice(1)) : document.querySelector(s) else { if ('[object ShadowRoot]' === b(s)) throw new Error( 'Using a shadow DOM as your selector is not supported.' ) for (var u, l = s.parentNode; !u; ) { var c = b(l) '[object HTMLDocument]' === c ? (u = !0) : '[object ShadowRoot]' === c ? ((u = !0), (n = l), (a = l.host)) : (l = l.parentNode) } } if (!s) throw new Error('No selector / element found.') if ( B.some(function (t) { return t.el === s }) ) throw new Error( 'A datepicker already exists on that element.' ) var f = s === document.body, p = n ? s.parentElement || n : f ? document.body : s.parentElement, y = n ? s.parentElement || a : p, D = document.createElement('div'), q = document.createElement('div') ;(D.className = 'qs-datepicker-container qs-hidden'), (q.className = 'qs-datepicker') var w = { shadowDom: n, customElement: a, positionedEl: y, el: s, parent: p, nonInput: 'INPUT' !== s.nodeName, noPosition: f, position: !f && d.position, startDate: d.startDate, dateSelected: d.dateSelected, disabledDates: d.disabledDates, minDate: d.minDate, maxDate: d.maxDate, noWeekends: !!d.noWeekends, weekendIndices: d.weekendIndices, calendarContainer: D, calendar: q, currentMonth: (d.startDate || d.dateSelected).getMonth(), currentMonthName: (d.months || F)[ (d.startDate || d.dateSelected).getMonth() ], currentYear: (d.startDate || d.dateSelected).getFullYear(), events: d.events || {}, defaultView: d.defaultView, setDate: E, remove: R, setMin: I, setMax: k, show: _, hide: T, navigate: P, toggleOverlay: O, onSelect: d.onSelect, onShow: d.onShow, onHide: d.onHide, onMonthChange: d.onMonthChange, formatter: d.formatter, disabler: d.disabler, months: d.months || F, days: d.customDays || r, startDay: d.startDay, overlayMonths: d.overlayMonths || (d.months || F).map(function (t) { return t.slice(0, 3) }), overlayPlaceholder: d.overlayPlaceholder || '4-digit year', overlayButton: d.overlayButton || 'Submit', disableYearOverlay: !!d.disableYearOverlay, disableMobile: !!d.disableMobile, isMobile: 'ontouchstart' in window, alwaysShow: !!d.alwaysShow, id: d.id, showAllDates: !!d.showAllDates, respectDisabledReadOnly: !!d.respectDisabledReadOnly, first: d.first, second: d.second, } if (d.sibling) { var C = d.sibling, S = w, x = C.minDate || S.minDate, A = C.maxDate || S.maxDate ;(S.sibling = C), (C.sibling = S), (C.minDate = x), (C.maxDate = A), (S.minDate = x), (S.maxDate = A), (C.originalMinDate = x), (C.originalMaxDate = A), (S.originalMinDate = x), (S.originalMaxDate = A), (C.getRange = L), (S.getRange = L) } d.dateSelected && h(s, w) var M = getComputedStyle(y).position f || (M && 'static' !== M) || ((w.inlinePosition = !0), y.style.setProperty('position', 'relative')) var U = B.filter(function (t) { return t.positionedEl === w.positionedEl }) return ( U.some(function (t) { return t.inlinePosition }) && ((w.inlinePosition = !0), U.forEach(function (t) { t.inlinePosition = !0 })), D.appendChild(q), p.appendChild(D), w.alwaysShow && v(w), w ) })(t, e) if ( (B.length || d(document), n.shadowDom && (B.some(function (t) { return t.shadowDom === n.shadowDom }) || d(n.shadowDom)), B.push(n), n.second) ) { var s = n.sibling f({ instance: n, deselect: !n.dateSelected }), f({ instance: s, deselect: !s.dateSelected }), a(s) } return ( a(n, n.startDate || n.dateSelected), n.alwaysShow && D(n), n ) } }, ]).default }), !void (true ? (t.exports = o()) : 'function' == typeof define && define.amd ? define([], o) : 'object' == typeof e ? (e.datepicker = o()) : (i.datepicker = o())) }, 12599: function (t, e, n) { 'use strict' function i(t) { if ('function' == typeof Symbol && 'symbol' == typeof Symbol.iterator) i = function t(e) { return typeof e } else i = function t(e) { return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e } return i(t) } var o 'use strict', (function (a) { var s = arguments, u = ((l = /d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|W{1,2}|[LlopSZN]|"[^"]*"|'[^']*'/g), (c = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g), (f = /[^-+\dA-Z]/g), function (date, t, e, n) { if (1 === s.length && 'string' === v(date) && !/\d/.test(date)) (t = date), (date = void 0) if ( !( (date = date || 0 === date ? date : new Date()) instanceof Date ) ) date = new Date(date) if (isNaN(date)) throw TypeError('Invalid date') var i = (t = String(u.masks[t] || t || u.masks['default'])).slice( 0, 4 ) if ('UTC:' === i || 'GMT:' === i) if (((t = t.slice(4)), (e = true), 'GMT:' === i)) n = true var o = function t() { return e ? 'getUTC' : 'get' }, a = function d() { return date[o() + 'Date']() }, D = function D() { return date[o() + 'Day']() }, y = function t() { return date[o() + 'Month']() }, w = function t() { return date[o() + 'FullYear']() }, b = function t() { return date[o() + 'Hours']() }, C = function t() { return date[o() + 'Minutes']() }, S = function t() { return date[o() + 'Seconds']() }, x = function t() { return date[o() + 'Milliseconds']() }, A = function t() { return e ? 0 : date.getTimezoneOffset() }, _ = function t() { return m(date) }, T = function t() { return g(date) }, E = { d: function d() { return a() }, dd: function t() { return h(a()) }, ddd: function t() { return u.i18n.dayNames[D()] }, DDD: function t() { return p({ y: w(), m: y(), d: a(), _: o(), dayName: u.i18n.dayNames[D()], short: true, }) }, dddd: function t() { return u.i18n.dayNames[D() + 7] }, DDDD: function t() { return p({ y: w(), m: y(), d: a(), _: o(), dayName: u.i18n.dayNames[D() + 7], }) }, m: function t() { return y() + 1 }, mm: function t() { return h(y() + 1) }, mmm: function t() { return u.i18n.monthNames[y()] }, mmmm: function t() { return u.i18n.monthNames[y() + 12] }, yy: function t() { return String(w()).slice(2) }, yyyy: function t() { return h(w(), 4) }, h: function t() { return b() % 12 || 12 }, hh: function t() { return h(b() % 12 || 12) }, H: function t() { return b() }, HH: function t() { return h(b()) }, M: function t() { return C() }, MM: function t() { return h(C()) }, s: function t() { return S() }, ss: function t() { return h(S()) }, l: function t() { return h(x(), 3) }, L: function t() { return h(Math.floor(x() / 10)) }, t: function t() { return b() < 12 ? u.i18n.timeNames[0] : u.i18n.timeNames[1] }, tt: function t() { return b() < 12 ? u.i18n.timeNames[2] : u.i18n.timeNames[3] }, T: function t() { return b() < 12 ? u.i18n.timeNames[4] : u.i18n.timeNames[5] }, TT: function t() { return b() < 12 ? u.i18n.timeNames[6] : u.i18n.timeNames[7] }, Z: function t() { return n ? 'GMT' : e ? 'UTC' : (String(date).match(c) || ['']) .pop() .replace(f, '') .replace(/GMT\+0000/g, 'UTC') }, o: function t() { return ( (A() > 0 ? '-' : '+') + h( 100 * Math.floor(Math.abs(A()) / 60) + (Math.abs(A()) % 60), 4 ) ) }, p: function t() { return ( (A() > 0 ? '-' : '+') + h(Math.floor(Math.abs(A()) / 60), 2) + ':' + h(Math.floor(Math.abs(A()) % 60), 2) ) }, S: function t() { return ['th', 'st', 'nd', 'rd'][ a() % 10 > 3 ? 0 : (((a() % 100) - (a() % 10) != 10) * a()) % 10 ] }, W: function t() { return _() }, WW: function t() { return h(_()) }, N: function t() { return T() }, } return t.replace(l, function (t) { if (t in E) return E[t]() else return t.slice(1, t.length - 1) }) }), l, c, f ;(u.masks = { default: 'ddd mmm dd yyyy HH:MM:ss', shortDate: 'm/d/yy', paddedShortDate: 'mm/dd/yyyy', mediumDate: 'mmm d, yyyy', longDate: 'mmmm d, yyyy', fullDate: 'dddd, mmmm d, yyyy', shortTime: 'h:MM TT', mediumTime: 'h:MM:ss TT', longTime: 'h:MM:ss TT Z', isoDate: 'yyyy-mm-dd', isoTime: 'HH:MM:ss', isoDateTime: "yyyy-mm-dd'T'HH:MM:sso", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'", expiresHeaderFormat: 'ddd, dd mmm yyyy HH:MM:ss Z', }), (u.i18n = { dayNames: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', ], monthNames: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ], timeNames: ['a', 'p', 'am', 'pm', 'A', 'P', 'AM', 'PM'], }) var h = function t(e, n) { for (e = String(e), n = n || 2; e.length < n; ) e = '0' + e return e }, p = function t(e) { var n = e.y, i = e.m, d = e.d, o = e._, a = e.dayName, s = e['short'], u = void 0 === s ? false : s, l = new Date(), c = new Date() c.setDate(c[o + 'Date']() - 1) var f = new Date() f.setDate(f[o + 'Date']() + 1) var h = function t() { return l[o + 'Date']() }, p = function t() { return l[o + 'Month']() }, m, g = function t() { return c[o + 'Date']() }, v = function t() { return c[o + 'Month']() }, y = function t() { return c[o + 'FullYear']() }, w = function t() { return f[o + 'Date']() }, b = function t() { return f[o + 'Month']() }, C = function t() { return f[o + 'FullYear']() } if ( (function t() { return l[o + 'FullYear']() })() === n && p() === i && h() === d ) return u ? 'Tdy' : 'Today' else if (y() === n && v() === i && g() === d) return u ? 'Ysd' : 'Yesterday' else if (C() === n && b() === i && w() === d) return u ? 'Tmw' : 'Tomorrow' return a }, m = function t(date) { var e = new Date( date.getFullYear(), date.getMonth(), date.getDate() ) e.setDate(e.getDate() - ((e.getDay() + 6) % 7) + 3) var n = new Date(e.getFullYear(), 0, 4) n.setDate(n.getDate() - ((n.getDay() + 6) % 7) + 3) var i = e.getTimezoneOffset() - n.getTimezoneOffset() e.setHours(e.getHours() - i) var o = (e - n) / (864e5 * 7) return 1 + Math.floor(o) }, g = function t(date) { var e = date.getDay() if (0 === e) e = 7 return e }, v = function t(e) { if (null === e) return 'null' if (void 0 === e) return 'undefined' if ('object' !== i(e)) return i(e) if (Array.isArray(e)) return 'array' else return {}.toString.call(e).slice(8, -1).toLowerCase() } if (true) !( void 0 !== (o = function () { return u }.call(e, n, e, t)) && (t.exports = o) ) else if ('object' === (void 0 === e ? 'undefined' : i(e))) t.exports = u else a.dateFormat = u })(void 0) }, 12600: function (t, e, n) { 'use strict' var i = n(17) i(function () { var selector i('form input[type=time]').each(function () { var t = i(this), e = t.attr('data-time-value') || '' if ('--:--' !== e) { if (!e) { var n = new Date() e = ('0' + n.getHours()).slice(-2) + ':' + ('0' + n.getMinutes()).slice(-2) } t.val(e) } }) }) }, 12601: function (t, e, n) { 'use strict' function i(t) { return new Promise(function (e) { var n = document.createElement('script') ;(n.async = ''), (n.onload = e), (n.src = t), document.head.appendChild(n) }) } function o(t) { return new Promise(function (e) { var link = document.createElement('link') ;(link.rel = 'stylesheet'), (link.type = 'text/css'), (link.onload = e), (link.href = t), document.head.appendChild(link) }) } function a(t, e, n) { var i = [ 'Invalid number', 'Invalid country code', 'Too short', 'Too long', 'Invalid number', ] e.each(function () { var container = u(this), e = container.find('input[type=tel]') container.replaceWith(e), e.each(function () { var input = u(this)[0], e = u(this).attr('data-country-code') || 'us' input.removeAttribute('pattern') var n = intlTelInput(input, { autoPlaceholder: 'aggressive', utilsScript: t + 'utils.js', initialCountry: e, }) input.addEventListener('blur', function () { if ((l(u(input)), input.value.trim())) if (!n.isValidNumber()) { var t = n.getValidationError() c(u(input), i[t] || 'Invalid number') } }) }) }), n.each(function () { var container, t u(this) .find('input[type=tel]') .each(function () { var input = u(this)[0], t = u(this).attr('data-country-code') || 'us' intlTelInput(input, { initialCountry: t, allowDropdown: false, showFlags: false, autoPlaceholder: 'aggressive', }) var e = u(this).closest('.u-form-phone').find('.iti') e.parent().append(input), e.remove() }) }) } function s(t, e) { var n = 'https://capp.' + 'n' + 'i' + 'c' + 'e' + 'p' + 'a' + 'g' + 'e' + '.com/assets/', s = u('meta[data-intl-tel-input-cdn-path]') if (s.length) n = s.attr('data-intl-tel-input-cdn-path') if (t.length || e.length) Promise.all([ i(n + 'intlTelInput.min.js'), o(n + 'intlTelInput.css'), ]).then(function () { a(n, t, e) }) } var u = n(17), l = function (input) { input.parent('.iti').parent().find('#error-msg').remove() }, c = function (input, t) { var e = u("<span id='error-msg' style='color:#F95D51'>" + t + '</span>') input.parent('.iti').after(e) } u(function () { s( u('form .iti'), u('form .u-form-phone > input[data-country-code]').closest( '.u-form-phone' ) ) }) }, 12602: function (t, e, n) { 'use strict' var i = n(12603), o = n(17) o(function () { o('form .u-form-country select').each(function () { var select = o(this), data = i.getData() if ( (data.unshift({ name: '', code: '' }), data.forEach(function (t) { var e = o('<option></option>') if ((e.prop({ value: t.name, text: t.name }), e.attr('value'))) select.append(e) }), select.find('option:eq(0)').length) ) select.find('option:eq(0)').remove() var t = select.attr('data-country-code') || 'us', e = data.find(function (e) { return e.code === t.toUpperCase() }) if (e) { var n = select.find('option[value="' + e.name + '"]') if (n.length) n.prop('selected', true) } }) }) }, 12603: function (t, e, n) { 'use strict' function i(t) { ;(o[t.name.toLowerCase()] = t.code), (a[t.code.toLowerCase()] = t.name) } var data = n(457), o = {}, a = {} data.forEach(i) var s = { overwrite: function t(e) { if (e && e.length) e.forEach(function (t) { var e = data.findIndex(function (e) { return e.code === t.code }) ;(data[e] = t), i(t) }) }, getCode: function t(e) { return o[e.toLowerCase()] }, getName: function t(e) { return a[e.toLowerCase()] }, getNames: function t() { return data.map(function (t) { return t.name }) }, getCodes: function t() { return data.map(function (t) { return t.code }) }, getCodeList: function t() { return a }, getNameList: function t() { return o }, getData: function t() { return data }, } ;(t.exports = s), (window.CountryList = s) }, 12604: function (t, e, n) { 'use strict' var i = n(17), o = n(12605) i(function () { i('form .u-form-signature canvas').each(function () { var t new o(this).start() }) }) }, 12605: function (t, e, n) { 'use strict' function i(t) { ;(this.canvas = t), (this.drawData = { drawing: false, mousePos: { x: 0, y: 0 }, lastPos: { x: 0, y: 0 }, }), this.addMouseEvents(), this.addTouchEvents(), (window.onresize = this.resize.bind(this)), (window.orientationchange = this.resize.bind(this)), this.resize(), this.initClearButton() } function o(t, e) { var rect = t.getBoundingClientRect() return { x: e.clientX - rect.left, y: e.clientY - rect.top } } function a(t, e) { var rect = t.getBoundingClientRect() return { x: e.touches[0].clientX - rect.left, y: e.touches[0].clientY - rect.top, } } var s = n(17) ;(i.prototype.initClearButton = function t() { var e this.canvas.parentNode.querySelector('.u-clear-button').addEventListener( 'click', function (t) { t.preventDefault(), t.stopPropagation(), this.reset() }.bind(this), false ) }), (i.prototype.resize = function t() { var e = Math.max(window.devicePixelRatio || 1, 1) ;(this.canvas.width = this.canvas.offsetWidth * e), (this.canvas.height = this.canvas.offsetHeight * e), this.canvas.getContext('2d').scale(e, e), this.reset() }), (i.prototype.reset = function t() { var e = this.canvas.parentNode, n = s(e), i = n.is(':visible'), o = {}, a, u if (!i) { if (((u = 'u-active'), !(a = n.parents('.u-carousel-item')).length)) (a = n.parents('.u-dialog-block')), (u = 'u-dialog-open') if (!a.length) a = n.parent() ;(o = a.css(['position', 'left'])), a.css({ position: 'absolute', left: '-10000px' }), a.addClass(u) } var l = window.getComputedStyle(e, null), c = e.clientWidth - (parseFloat(l.paddingLeft) + parseFloat(l.paddingRight)), f = 200, h = (c / 100) * 20, p = (f / 100) * 20 if (!i) a.removeClass(u), a.css(o) var m = { width: c, height: f, lineWidth: 2, strokeStyle: l.getPropertyValue('color') || '#000000', fillStyle: l.getPropertyValue('background-color') || '#ffffff', signatureLine: { startX: h, startY: f - p, endX: c - h, endY: f - p, }, }, g = this.canvas.getContext('2d') ;(g.canvas.width = m.width), (g.canvas.height = m.height), g.clearRect(0, 0, m.width, m.height), (g.lineWidth = m.lineWidth), (g.strokeStyle = m.strokeStyle), (g.fillStyle = m.fillStyle), g.fillRect(0, 0, m.width, m.height), g.beginPath(), g.moveTo(m.signatureLine.startX, m.signatureLine.startY), g.lineTo(m.signatureLine.endX, m.signatureLine.endY), g.stroke(), this.canvas.setAttribute( 'data-canvas-default-options', JSON.stringify(m) ) }), (i.prototype.addTouchEvents = function t() { this.canvas.addEventListener( 'touchmove', function (t) { var e = t.touches[0], me = new MouseEvent('mousemove', { clientX: e.clientX, clientY: e.clientY, }) this.canvas.dispatchEvent(me) }.bind(this), false ), this.canvas.addEventListener( 'touchstart', function (t) { this.drawData.mousePos = a(this.canvas, t) var e = t.touches[0], me = new MouseEvent('mousedown', { clientX: e.clientX, clientY: e.clientY, }) this.canvas.dispatchEvent(me) }.bind(this), false ), this.canvas.addEventListener( 'touchend', function () { var me = new MouseEvent('mouseup', {}) this.canvas.dispatchEvent(me) }.bind(this), false ), document.body.addEventListener( 'touchstart', function (t) { if (t.target === this.canvas) t.preventDefault() }.bind(this), { passive: false } ), document.body.addEventListener( 'touchend', function (t) { if (t.target === this.canvas) t.preventDefault() }.bind(this), { passive: false } ), document.body.addEventListener( 'touchmove', function (t) { if (t.target === this.canvas) t.preventDefault() }.bind(this), { passive: false } ) }), (i.prototype.addMouseEvents = function t() { this.canvas.addEventListener( 'mousedown', function (t) { ;(this.drawData.drawing = true), (this.drawData.lastPos = o(this.canvas, t)) }.bind(this), false ), this.canvas.addEventListener( 'mouseup', function () { this.drawData.drawing = false }.bind(this), false ), this.canvas.addEventListener( 'mousemove', function (t) { this.drawData.mousePos = o(this.canvas, t) }.bind(this), false ) }), (i.prototype.renderCanvas = function t() { if (this.drawData.drawing) { var e = this.canvas.getContext('2d') e.moveTo(this.drawData.lastPos.x, this.drawData.lastPos.y), e.lineTo(this.drawData.mousePos.x, this.drawData.mousePos.y), e.stroke(), (this.drawData.lastPos = this.drawData.mousePos) } }), (i.prototype.start = function t() { var e ;(function t() { window.signRequestAnimFrame(t.bind(this)), this.renderCanvas() }).bind(this)() }), (window.signRequestAnimFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimaitonFrame || function (t) { window.setTimeout(t, 1e3 / 60) }), (t.exports = i) }, 12606: function (t, e, n) { 'use strict' var i = n(17) i(function () { ;['blog'].forEach(function (type) { i('.u-' + type + " .u-pagination a[href^='#']").click(function (t) { t.preventDefault() var link = i(this), e = (link.attr('href') || '').slice(1), list = link.parents('.u-' + type), n = 'blog' === type ? 'posts' : type, o = list.find('.u-repeater-item.u-page-' + n + '-' + e), a = list.find('.u-repeater-item:not(.u-page-' + n + '-' + e + ')'), s = list.find('.u-pagination.u-page-' + n + '-pagination-' + e), u = list.find( '.u-pagination:not(.u-page-' + n + '-pagination-' + e + ')' ) a.addClass('u-hidden'), u.addClass('u-hidden'), o.removeClass('u-hidden'), s.removeClass('u-hidden') }) }) }) }, 12607: function (t, e, n) { 'use strict' var i = n(12608), o = n(12609), a = n(12615), s, u new o(i).subscribe(), new a(i).subscribe() }, 12608: function (t, e, n) { 'use strict' t.exports = { sessionId: Math.random().toString(36).slice(2), payPalSdkUrl: 'https://www.paypal.com/sdk/js', } }, 12609: function (t, e, n) { 'use strict' function i(t) { ;(this.paymentConfig = t), (this.paymentMessage = new s()), (this.paypalCurrencyWarning = new h()), (this.isCart = false), (this._onChangeQuantity = this.onChangeQuantity.bind(this)), (this._onRemoveProduct = this.onRemoveProduct.bind(this)), (this.zeroDecimalCurrencies = [ 'BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF', 'HUF', 'TWD', ]) } var o = n(17), Const = n(3538), TabsControl = n(276), a = n(12610), s = n(3540), u = n(3541), l = n(12612), c = n(957), f = n(3542), h = n(12614) ;(t.exports = i), (i.prototype.subscribe = function t() { o(document).on( 'opened.np.dialog', '.u-dialog-block', function (t, dialog, e) { var modal = o(t.currentTarget) this.initModal(modal, e) }.bind(this) ), o(document).on( 'closed.np.dialog', '.u-dialog-block', function (t) { var modal = o(t.currentTarget) this.deInitModal(modal) }.bind(this) ) }), (i.prototype.initModal = function t(e, n) { var products if ( (this.paymentMessage.setDialog(e), this.paypalCurrencyWarning.setDialog(e), (this.isCart = n.is('.u-shopping-cart')), this.isCart) ) { if (!(products = c.getCart().getProducts())) return this.paymentMessage.cartEmpty(), void 0 } else { var i products = new u(n).getProducts() } if (!products) return this.paymentMessage.productError(), void 0 this.fillModal(e, products), this.paypalCurrencyWarning.setProducts(products), this.checkOutOfStockProducts(e, products, this.isCart), e .find('.u-product-quantity input') .on('change', this._onChangeQuantity), e.find('.product-remove').on('click', this._onRemoveProduct), this.initServices(e, n, products), this.paypalCurrencyWarning.showIfHasUnsupportedCurrency() }), (i.prototype.initServices = function t(e, n, products) { var i, o = new l(n).getService() if (!o) return this.paymentMessage.serviceError(), void 0 var a = o.paymentMethods.find(function (t) { return 'paypal' === t.type }), stripeMethod = o.paymentMethods.find(function (t) { return 'stripe' === t.type }), s = o.paymentMethods.find(function (t) { return 'email' === t.type }) if (a) this.injectPaypal(e, o, products), (this.paypalCurrencyWarning.enabled = true), this.checkAndEnablePaymentMethods(e, { method: { name: 'paypal', exists: true }, method1: { name: 'stripe', exists: stripeMethod }, method2: { name: 'email', exists: s }, }) if (stripeMethod) this.initStripe(e, o, products), this.checkAndEnablePaymentMethods(e, { method: { name: 'stripe', exists: true }, method1: { name: 'paypal', exists: a }, method2: { name: 'email', exists: s }, }) if (s) this.initEmail(e, o, products), this.checkAndEnablePaymentMethods(e, { method: { name: 'email', exists: true }, method1: { name: 'paypal', exists: a }, method2: { name: 'stripe', exists: stripeMethod }, }) if (!stripeMethod && !a && !s) e.find('.u-payment-services').hide() }), (i.prototype.checkAndEnablePaymentMethods = function t(e, n) { if (!n.method1.exists && !n.method2.exists) { e.find('.u-tab-link').hide() var pane = e.find('.u-payment-' + n.method.name + '.u-tab-pane'), tabsControl new TabsControl(pane).show() } if (!n.method1.exists) e.find('.u-tab-link.u-payment-' + n.method1.name).hide() if (!n.method2.exists) e.find('.u-tab-link.u-payment-' + n.method2.name).hide() }), (i.prototype.checkOutOfStockProducts = function t(e, products, n) { var i = false if ( (products.forEach(function (product) { if (product.outOfStock) return (i = true), false }), i) ) { var o new s(e).productOutOfStock(n) } }), (i.prototype.deInitModal = function t(e) { this.deInitStripe(e), this.deInitEmail(e), e .find('.u-product-quantity input') .off('change', this._onChangeQuantity), e.find('.product-remove').off('click', this._onRemoveProduct) var n = new s(e), i = e.find('.u-payment-services-inner') if (!i.length) return n.configError(), void 0 i.empty(), this.paypalCurrencyWarning.setDialog(e).clear(), e.find('.cart-empty, .product-out-of-stock-message').remove(), e.find('.u-dialog > .u-container-layout >').show() var o = e.find('.u-payment-services .u-tab-item:eq(0)') if (o.length) { var tabsControl new TabsControl(o).show() } }), (i.prototype.initStripe = function (t, e, products) { t.find('.u-stripe-button').on('click', function () { var data = [] products.forEach(function (product) { var input = t.find( '.u-quantity-input input[data-product-id="' + product.id + '"]' ) ;(product.quantity = input.length ? parseInt(input.val(), 10) : 1), data.push(product) }), fetch(Const.stripeCheckoutUrl, { method: 'POST', body: JSON.stringify({ userToken: e.userToken, paymentServiceToken: e.id || '', products: data, referrer: window.location.host || 'Unknown', }), }) .then(function (t) { if (t.ok) return t.json() else return Promise.reject(t) }) .then(function (t) { if (t && t.sessionUrl) window.location.href = t.sessionUrl }) .catch(function () { var e new s(t).stripeError() }) }) }), (i.prototype.initEmail = function (t, e, products) { t.find('form .u-btn-submit').on('click', function (t) { t.preventDefault(), t.stopPropagation(), o(this).closest('form').find('input[type="submit"]').click() }), t.find('form').submit(function (n) { n.preventDefault(), n.stopPropagation() var data = [] products.forEach(function (product) { var input = t.find( '.u-quantity-input input[data-product-id="' + product.id + '"]' ) if (input.length) (product.quantity = parseInt(input.val(), 10) || 1), data.push(product) }) var form = o(this), email = form.find('#payment-email').val() || '', i = form.find('#payment-notes').val() || '' fetch(Const.emailCheckoutUrl, { method: 'POST', body: JSON.stringify({ userToken: e.userToken, paymentServiceToken: e.id || '', products: data, referrer: window.location.host || 'Unknown', form: { email: email, notes: i }, }), }) .then(function (t) { if (t.ok) return t.text() else return Promise.reject(t) }) .then(function (text) { if (!text) { var t new f().goToThankYouPage() } }) .catch(function () { var e new s(t).emailError() }) }) }), (i.prototype.deInitStripe = function (t) { t.find('.u-stripe-button').off('click') }), (i.prototype.deInitEmail = function (t) { t.find('.u-email-button').off('click') }), (i.prototype.onChangeQuantity = function (t) { var e = o('.u-payment-dialog.u-dialog-open') if (e.length) { var n = t.target this.postMessage(e, { quantity: n.value, id: n.getAttribute('data-product-id'), }), this.updateTotalPrice(e) } }), (i.prototype.onRemoveProduct = function (t) { var e = o(t.target), n = e.attr('data-product-id'), i = o('.u-dialog-open'), a if (i.find('.u-repeater-item .product-remove').length > 1) e.parents('.u-repeater-item').remove(), this.updateTotalPrice(i) else i.find('.u-dialog-close-button').click() c.getCart().removeProductById(n) var s = i.find('.u-price:contains("Out Of Stock")'), u = i.find('.product-out-of-stock-message') if (u.length && !s.length) u.remove(), i.find('.u-dialog').css('min-height', ''), i.find('.u-payment-services').show() this.paypalCurrencyWarning.setDialog(i).hideIfNoUnsupportedCurrency(), this.postMessage(i, { action: 'remove', id: n }) }), (i.prototype.fillModal = function t(e, products) { var n = e.find('.u-text:not(.u-product-control)'), i = n.next('.u-text:not(.u-product-control)') if (!i.length) (i = n.clone()).text('Your cart'), n.after(i) n.toggle(!this.isCart), i.toggle(this.isCart) var repeaterItem = e.find('.u-repeater-item').eq(0), a = repeaterItem.find('.product-remove') if (!a.length) (a = o('<span class="product-remove"/>')), repeaterItem.find('.u-price').after(a) a.toggle(this.isCart) var container = o('<div/>'), data = { price: 0, currency: '' } products.forEach( function (product) { var t = repeaterItem.clone(), e = product.quantity || 1, n = t.find('.u-product-out-of-stock') if (n.length) n.css('visibility', product.outOfStock ? 'visible' : 'hidden') var image = t.find('.u-product-control.u-image') if (image.length && product.images.length) image.attr( 'src', this.preparePath( document.body.getAttribute('data-path-to-root') || '', product.images[0].url || '' ) ) var i = 'true' === t.find('.u-product-price').attr('data-add-zero-cents') ;(data.price += product.price * e), (data.currency = product.currency), (data.addZeroCents = i), (product.priceNumeric = product.price), (product.price = Currency.format( product.price, product.currency, i )), (product.price = this.fixZeroDecimalCurrency( product.price, product.currency )), (product.oldPriceNumeric = product.oldPrice), (product.oldPrice = Currency.format( product.oldPrice, product.currency, i )), (product.oldPrice = this.fixZeroDecimalCurrency( product.oldPrice, product.currency )), this.fillItem(t, product), container.append(t) }.bind(this) ), this.createTotalPrice(container, repeaterItem, data), e.find('.u-repeater').html(container.html()) }), (i.prototype.preparePath = function t(e, url) { if (!url) return '' if ( !e || url.startsWith('data:image') || (url.startsWith('images') && './' === e) ) return url if (url.startsWith('images')) return e + url var n = url.indexOf('/') if (-1 !== n) return e + url.substring(n + 1) else return '' }), (i.prototype.fixZeroDecimalCurrency = function t(e, currency) { if (!e) return e if ('string' != typeof e) e = e.toString() var n = (currency || 'USD').toUpperCase() if (!this.zeroDecimalCurrencies.includes(n)) return e var i = e.indexOf('.') if (-1 === i) return e else return e.substring(0, i) }), (i.prototype.updateTotalPrice = function t(e) { var n = e.find('.payment-total-price') if (n.length) { var i = 0, currency = '' if ( (e.find('.u-repeater-item').each(function () { var t = o(this), e = t.find('.u-quantity-input input'), n = t.find('.u-product-price .u-price'), a = n.text() if (n.length && -1 === a.indexOf('Out Of Stock')) (currency = n.attr('data-currency') || 'USD'), (i += parseFloat(n.attr('data-price') || '0') * parseInt(e.val(), 10)) }), !Number.isInteger(i)) ) i = i.toFixed(2) var a = 'true' === e .find('.u-repeater-item:eq(0)') .find('.u-product-price') .attr('data-add-zero-cents') if (((i = Currency.format(i, currency, a)), n.text(i), !this.isCart)) n.parents('.payment-total-container').show() } }), (i.prototype.createTotalPrice = function t(e, n, data) { var i = n.clone(), a = o('<div class="payment-total-container"/>'), s = o('<div class="payment-total-label"/>') s.text('Total'), a.append(s) var u = o('<div class="payment-total-price"/>'), l = Currency.format(data.price, data.currency, data.addZeroCents), layout if ( (u.text(l), a.append(u), i.find('.u-container-layout').html(o('<div/>').append(a).html()), !this.isCart) ) i.find('.payment-total-container').hide() e.append(i) }), (i.prototype.fillItem = function t(e, product) { var title = product.title || '', n = product.description || '', i = product.price || '', a = product.priceNumeric || '', s = product.oldPrice || '', u = product.oldPriceNumeric || '', currency = product.currency || '', l = product.quantity || 1, id = product.id, c = product.outOfStock, f = product.sku || '', h = e.find('.u-product-title-link'), p = h.attr('class'), m = o('<span/>').addClass(p).text(title) h.parent().empty().append(m), e .find('.u-product-quantity input') .attr({ value: l, 'data-product-id': id }), e.find('.u-quantity-input a.minus').toggleClass('disabled', 1 === l) var g = e.find('.u-product-desc p') if (!g.length) g = e.find('.u-product-desc') g.text(n) var v = e.find('.u-product-sku p') if (!v.length) v = e.find('.u-product-sku') v.text(f), e .find('.u-price') .text(c ? 'Out Of Stock' : i) .attr({ 'data-price': a, 'data-currency': currency }), e .find('.u-old-price') .text(c ? '' : s) .attr({ 'data-price': u, 'data-currency': currency }), this.addCategories(e, product.categoriesData), e.find('.product-remove').attr('data-product-id', id) }), (i.prototype.addCategories = function t(e, categories) { if (categories) { var n = e.find('.u-product-category'), i = n.find('a') if (!i.length) return var o = i.eq(0).clone() n.empty(), (categories || []).forEach(function (t, index) { var e = o.clone() e.text((index > 0 ? ', ' : '') + t.title), e.attr('href', t.link), n.append(e) }) } }), (i.prototype.injectPaypal = function t(e, n, products) { var i = new s(e), o = e.find('.u-payment-services') if (!o.length) return i.configError(), void 0 var u = o.find('.u-payment-services-inner') u.empty() var l = new a(this.paymentConfig, { paymentControl: o, service: n, products: products, }), c = document.createElement('iframe') c.setAttribute('style', 'width: 100%; min-height: 100%;'), c.setAttribute('id', 'np-payment-frame'), c.setAttribute('frameborder', '0'), (c.onload = function t() { var e = c.contentDocument e.open(), e.write(l.generate()), e.close() }), u.append(c) }), (i.prototype.postMessage = function (t, e) { var n if (t.find('#np-payment-frame').length) { var i = t.find('#np-payment-frame')[0], o = i.contentWindow || i || {} if (o.postMessage) o.postMessage(this.paymentConfig.sessionId + JSON.stringify(e), '*') } }), (window.PaymentButtons = i) }, 12610: function (t, e, n) { 'use strict' function i(t, data) { ;(this.paymentConfig = t), (this.paymentControl = data.paymentControl), (this.service = data.service), (this.products = data.products) } var o = n(12611) ;(t.exports = i), (i.prototype.generate = function t() { var e = this.paymentControl.attr('data-payment-paypal-layout') || 'vertical', n = this.paymentControl.attr('data-payment-paypal-shape') || 'rect', i = this.paymentControl.attr('data-payment-paypal-color') || 'gold', a = this.getPayPalDisableFunding() || this.products[0].hiddenButtons, s = this.replaceAll( o, '[PAYPALSDK_URL]', this.paymentConfig.payPalSdkUrl ) if ( ((s = this.replaceAll( s, '[PAYPALCLIENT_ID]', this.getPayPalClientId() )), (s = this.replaceAll( s, '[REFERENCE_ID]', this.computeReferenceIdv2() )), (s = this.replaceAll( s, '[SESSION_ID]', this.paymentConfig.sessionId )), (s = this.replaceAll(s, '[PRODUCTS]', JSON.stringify(this.products))), (s = this.replaceAll(s, '[CURRENCY]', this.products[0].currency)), (s = this.replaceAll(s, '[PAYPAL_STYLE_LAYOUT]', e)), (s = this.replaceAll(s, '[PAYPAL_STYLE_SHAPE]', n)), (s = this.replaceAll(s, '[PAYPAL_STYLE_COLOR]', i)), a) ) s = this.replaceAll(s, '[PAYPAL_HIDDEN_BUTTONS]', a) else s = this.replaceAll(s, '&disable-funding=[PAYPAL_HIDDEN_BUTTONS]', '') return s }), (i.prototype.getPayPalClientId = function t() { var e = this.service.paymentMethods.find(function (t) { return 'paypal' === t.type }) if (!e) return null else return e.clientId }), (i.prototype.getPayPalDisableFunding = function t() { var e = this.service.paymentMethods.find(function (t) { return 'paypal' === t.type }) if (!e) return null else return e.disableFunding }), (i.prototype.computeReferenceIdv2 = function t() { var e = window.location.host || 'Unknown' return 'v2:' + this.service.id + ';' + e }), (i.prototype.replaceAll = function t(e, n, i) { var o = n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') return e.replace(new RegExp(o, 'g'), i) }), (window.PaypalProductHtml = i) }, 12611: function (t, e) { t.exports = "<style>\n body {\n margin: 0;\n }\n</style>\n<div id=\"paypal-button-container\"></div>\n<script src=\"[PAYPALSDK_URL]?client-id=[PAYPALCLIENT_ID]¤cy=[CURRENCY]&disable-funding=[PAYPAL_HIDDEN_BUTTONS]\"></script>\n<script>\n (function () {\n const sessionId = '[SESSION_ID]';\n const products = [PRODUCTS];\n\n const paypalStyle = {\n layout: '[PAYPAL_STYLE_LAYOUT]',\n shape: '[PAYPAL_STYLE_SHAPE]',\n color: '[PAYPAL_STYLE_COLOR]',\n };\n\n const buttons = {\n style: paypalStyle,\n createOrder: async function (data, actions) {\n postMessageToParent({type: 'ORDER_CREATED'});\n\n var items = [];\n var totalPrice = 0;\n var currencyCode;\n products.forEach(function (product) {\n var price = parseFloat(product.price);\n var quantity = parseFloat(product.quantity);\n totalPrice += price * quantity;\n currencyCode = product.currency;\n var item = {\n name: product.title,\n description: product.description,\n sku: product.sku,\n unit_amount: {\n currency_code: product.currency,\n value: price,\n },\n quantity: quantity,\n };\n items.push(item);\n });\n\n return actions.order.create({\n purchase_units: [\n {\n reference_id: '[REFERENCE_ID]',\n amount: {\n currency_code: currencyCode,\n value: totalPrice,\n breakdown: {\n item_total: {\n currency_code: currencyCode,\n value: totalPrice,\n },\n },\n },\n items: items,\n },\n ],\n });\n },\n onApprove: async function (data, actions) {\n return actions.order.capture().then(function () {\n postMessageToParent({type: 'ORDER_APPROVED'});\n })\n },\n onCancel(data) {\n postMessageToParent({type: 'ORDER_CANCELED'});\n },\n onError(err) {\n postMessageToParent({type: 'ORDER_ERROR'});\n }\n };\n\n paypal.Buttons(buttons).render('#paypal-button-container');\n\n window.addEventListener('message', function ({data}) {\n console.log('Data: ', data);\n data = data || '';\n\n if (!data.startsWith(sessionId)) {\n return;\n }\n\n try {\n data = JSON.parse(data.replace(sessionId, ''));\n } catch (e) {\n console.warn(e);\n data = {};\n }\n\n if (data.action === 'remove') {\n var index = products.findIndex(function (product) {\n return product.id === data.id;\n });\n if (index !== -1) {\n products.splice(index, 1);\n }\n return;\n }\n\n var foundProduct = products.filter(function (product) {\n return product.id === data.id;\n })[0];\n\n if (foundProduct) {\n Object.assign(foundProduct, data);\n }\n });\n\n window.addEventListener('resize', function (event) {\n postMessageToParent({type: 'IFRAME_HEIGHT', height: document.body.scrollHeight});\n }, true);\n\n document.addEventListener('DOMContentLoaded', function (event) {\n postMessageToParent({type: 'IFRAME_HEIGHT', height: document.body.scrollHeight});\n }, true);\n\n function postMessageToParent(obj) {\n parent.postMessage(sessionId + JSON.stringify(obj), '*');\n }\n })();\n</script>\n" }, 12612: function (t, e, n) { 'use strict' function i(t) { this.$btn = t } ;(t.exports = i), (i.prototype.getService = function t() { var e = this.$btn.attr('data-payment-service') if (!e) return null var n = JSON.parse(e) if (!(n && n.paymentMethods && n.paymentMethods.length && n.userToken)) return null else return n }), (window.PaymentService = i) }, 12613: function (t, e, n) { 'use strict' var i = { add: function (products) { localStorage.setItem('products', products) }, get: function () { return localStorage.getItem('products') }, remove: function () { localStorage.removeItem('products') }, } t.exports = i }, 12614: function (t, e, n) { 'use strict' function i() { ;(this.$dialog = $()), (this.products = null), (this.enabled = false), (this._className = 'product-priced-in-unsupported-currencies'), (this._content = 'You use some Products with prices in unsupported currencies.<br/>Please remove such Products from your Shopping Cart.'), (this._paypalCurrencies = [ 'USD', 'EUR', 'AUD', 'BRL', 'CAD', 'CNY', 'CZK', 'DKK', 'HKD', 'HUF', 'ILS', 'JPY', 'MYR', 'MXN', 'TWD', 'NZD', 'NOK', 'PHP', 'PLN', 'GBP', 'SGD', 'SEK', 'CHF', 'THB', ]) } ;(t.exports = i), (i.prototype.setDialog = function t(e) { return (this.$dialog = e), this }), (i.prototype.setProducts = function t(products) { return (this.products = products), this }), (i.prototype.setEnabled = function t(e) { return (this.enabled = e), this }), (i.prototype.clear = function t() { this.hide(), (this.$dialog = $()), (this.products = null), (this.enabled = false) }), (i.prototype.showIfHasUnsupportedCurrency = function t() { if (this.enabled && this.hasUnsupportedCurrency()) this.show() return this }), (i.prototype.hideIfNoUnsupportedCurrency = function t() { if (this.enabled && !this.hasUnsupportedCurrency()) this.hide() return this }), (i.prototype.hasUnsupportedCurrency = function t() { if (!this.products || !this.products.length) return false for (var e = 0; e < this.products.length; e++) if (-1 === this._paypalCurrencies.indexOf(this.products[e].currency)) return true return false }), (i.prototype.show = function show() { if (!this.enabled) return this else return ( this.$dialog .find('.u-payment-paypal .u-payment-services-inner') .after( '<div class="' + this._className + '"><p>' + this._content + '</p></div>' ), this.$dialog .find('.u-payment-paypal .u-payment-services-inner') .hide(), this ) }), (i.prototype.hide = function t() { if (!this.enabled) return this else return ( this.$dialog.find('.u-payment-paypal .' + this._className).remove(), this.$dialog .find('.u-payment-paypal .u-payment-services-inner') .show(), this ) }), (window.PayPalCurrencyWarning = i) }, 12615: function (t, e, n) { 'use strict' function i(t) { ;(this.paymentConfig = t), (this.eventListener = this.listener.bind(this)) } var o = n(3540), a = n(957), s = n(3542) ;(t.exports = i), (i.prototype.subscribe = function t() { window.addEventListener('message', this.eventListener) }), (i.prototype.unsubscribe = function t() { window.removeEventListener('message', this.eventListener) }), (i.prototype.listener = function t(e) { var n = new s() if (n.isThankYouPage()) return a.getCart().clear(), void 0 var i = this.paymentConfig.sessionId if ('string' == typeof e.data && e.data.startsWith(i)) { var u = $('.u-dialog-open'), data = JSON.parse(e.data.replace(i, '')), l = new o(u) switch (data.type) { case 'ORDER_CREATED': break case 'ORDER_APPROVED': l.orderApproved(), setTimeout(function () { n.goToThankYouPage() }, 1e3) break case 'ORDER_CANCELED': break case 'ORDER_ERROR': l.orderError() break case 'IFRAME_HEIGHT': var c = u.find('.u-payment-services-inner'), f = parseFloat(c.css('padding-top')) || 0, h = parseFloat(c.css('padding-bottom')) || 0, p = data.height + f + h u.find('.u-payment-services-inner').css('height', p + 'px') break default: break } } }), (window.PaymentEventListener = i) }, 12616: function (t, e, n) { 'use strict' var i = n(17), o = n(3541), a = n(957), s = n(3543) ;(window._npCartInit = function () { function t(t) { if ((t.preventDefault(), t.stopPropagation(), !e(t))) { var link = i(t.currentTarget), a, product = new o(link).getProduct() if (!product) return null n.addProduct(product) } } function e(t) { return i(t.currentTarget).hasClass('disabled') } i('body').on('click', '.u-add-to-cart-link', t) var n = a.getCart() if (n.$cart.length) s.getModel().load(function (t, data) { if (data && data.products) n.init(data) }) }), i(function () { window._npCartInit() }) }, 12617: function (t, e, n) { 'use strict' var i = n(17) i(function () { var selectors = [ '.u-expand-closed > .u-categories-item-content > a .u-icon', '.u-expand-open > .u-categories-item-content > a .u-icon', ].join(', ') i(selectors).click(function (t) { t.preventDefault(), t.stopPropagation() var el = i(this), e = el.closest('li') if (!e.hasClass('u-expand-leaf')) { var n = e.hasClass('u-expand-open') ? '-closed' : '-open', o = /\-open|\-closed/ e.attr('class', (e.attr('class') || '').replace(o, n)), el.html(el.html().replace(o, n)) } }) }) }, 12618: function (t, e, n) { 'use strict' var i = n(17), ProductBadge = n(956), o = n(12619), a = n(3544), s = n(12620), u = n(3543), l = n(12621), ProductsBuilder = n(12622), model = u.getModel(), c = new l() c.attachHandler(function (id, page, sorting, t) { if (((page = parseFloat(page) || 1), id)) { var list = i('.u-products[data-products-id=' + id + ']') if (list.length) model.load(function (e, data) { if (e) throw e if (data) { t = t || '' var n = new ProductsBuilder(list, data), view n.build(page, sorting, t), new o(list).render(n.getResult()) } }) } }), i(function () { c.handle(function (routes) { i('.u-products').each(function () { var list = i(this) if (!list.closest('.u-payment-dialog').length) { var t = list.attr('data-products-id'), e if ('site' === list.attr('data-products-datasource')) if (!routes[t]) model.load(function (t, data) { if (data) { var e = o.getDefaultParams(list, data), view = new o(list) view.renderPagination(e), view.renderSorter(e), view.renderCategories(e) } }) } }) }), i('.u-products .u-select-sorting').on('change', function (t) { var list = i(t.currentTarget).closest('.u-products') if (!list.closest('.u-payment-dialog').length) { var e if ('site' === list.attr('data-products-datasource')) { var id = list.attr('data-products-id'), sorting = this.value, n = a.getActiveCategory(list) c.navigate(id, 1, sorting, n) } } }), i('.u-products .u-select-categories').on('change', function (t) { var list = i(t.currentTarget).closest('.u-products') if (!list.closest('.u-payment-dialog').length) { var e if ('site' === list.attr('data-products-datasource')) { var id = list.attr('data-products-id'), sorting = s.getActiveSorting(list), n = this.value || '' c.navigate(id, 1, sorting, n) } } }), i('.u-categories .u-category-link').on('click', function (t) { var link = i(this) if ('#' === link.attr('href')) { var list = a .findNearestProducts(link.closest('.u-categories')) .eq(0) if (list.length) if (!list.closest('.u-payment-dialog').length) { var e if ('site' === list.attr('data-products-datasource')) { t.preventDefault() var id = list.attr('data-products-id'), sorting = s.getActiveSorting(list), n = link.attr('data-category') || '' c.navigate(id, 1, sorting, n) } } } }), i('.u-products').on( 'click', '.u-pagination-item .u-nav-link', function (t) { var list = i(t.currentTarget).closest('.u-products') if (!list.closest('.u-payment-dialog').length) { var e if ('site' === list.attr('data-products-datasource')) { t.preventDefault() var id = list.attr('data-products-id'), n = this.getAttribute('href') || '', sorting = s.getActiveSorting(list), o = a.getActiveCategory(list), page = parseFloat(n.replace(/[^\d.,]/g, '') || 1) c.navigate(id, page, sorting, o) } } } ), ProductBadge.update() }) }, 12619: function (t, e, n) { 'use strict' function i(list) { this.list = list } t.exports = i var PaginationBuilder = n(538), o = n(3544) ;(i.prototype.render = function (t) { if (t.items && t.items.length) { var container = this.list.children('.u-repeater') this.updateHeight(container.children().length, t.items.length), container.empty(), t.items.forEach(function (t) { container.append(t) }) } this.renderPagination(t), this.renderSorter(t), this.renderCategories(t) }), (i.prototype.renderPagination = function (t) { var pagination = this.list.find('.u-pagination:not(.u-cms-pagination)') if (pagination.length) { var paginationBuilder = new PaginationBuilder( pagination, { listItems: { length: t.totalPages } }, { isPage: true, listHref: 'products/products.html' } ) if (!t.itemsPerPage) return pagination.remove(), void 0 pagination.replaceWith( paginationBuilder.getPagination(t.currentPage - 1) ) } }), (i.prototype.renderSorter = function (t) { this.list.find('.u-select-sorting').val(t.sorting || '') }), (i.prototype.renderCategories = function (t) { var categories this.list.find('.u-select-categories').val(t.category || ''), o.findNearestCategories(this.list).each(function () { o.setActiveCategory($(this), t.category) }) }), (i.prototype.updateHeight = function (t, e) { var grid = this.list.find('.u-repeater') if (grid.length) { var n = grid.css('grid-template-columns') || '', i = parseFloat(grid.css('grid-row-gap')) || 0, o = n.split(/\s+/).length || 1, a = Math.ceil(t / o) || 1, s = Math.ceil(e / o) || 1, u = grid.height() - i * (a - 1), l, c = (u / a) * s + i * (s - 1) grid.css('min-height', c + 'px') var f = this.list.closest('.u-sheet, section, header, footer') if (f.length) { var h = parseFloat(f.css('min-height')) || 0 if (h) { var p = h + (c - u) f.css('min-height', p + 'px') } } } }), (i.getDefaultParams = function (list, data) { var products = data.products || [], t = parseFloat(list.attr('data-max-items')), e = Number.isFinite(t) ? t : parseFloat(list.attr('data-items-per-page')) || 3, n = list.attr('data-site-sorting-prop') || 'title', i = list.attr('data-site-sorting-order') || 'asc', o = list.attr('data-site-category') || '' return { totalPages: e ? Math.ceil(products.length / e) : 1, currentPage: 1, sorting: n + '-' + i, category: o, itemsPerPage: e, } }), (window.ProductsView = i) }, 12620: function (t, e, n) { 'use strict' var i = t.exports ;(i.getActiveSorting = function (list) { var t = list.find('.u-select-sorting') if (t.length) return t.val() var e = list.attr('data-site-sorting-prop') || '', n = list.attr('data-site-sorting-order') || '' if (e && n) return e + '-' + n else return 'name-asc' }), (window.SortingView = i) }, 12621: function (t, e, n) { 'use strict' function i() { ;(this.regexp = /\/([^/&]+)\/(\d*)\/([^&/]*)(?:\/([^&]*))?/g), (this.handler = null), (this.visitedRoutes = {}), (this._onHashChange = this.onHashChange.bind(this)) } function o() { return '/' + Array.from(arguments).join('/') } t.exports = i var a = n(17) ;(i.prototype.attachHandler = function (t) { this.handler = t }), (i.prototype.handle = function (t) { if ( (a(window).on('hashchange', this._onHashChange), a(window).trigger('hashchange'), 'function' == typeof t) ) t(this.parseHash()) }), (i.prototype.destroy = function () { a(window).off('hashchange', this._onHashChange), (this.visitedRoutes = {}) }), (i.prototype.onHashChange = function () { if ('function' == typeof this.handler) { var routes = this.parseHash() Object.keys(routes).forEach(function (id) { var t = routes[id], e = o.apply(null, t) if (this.visitedRoutes[id] !== e) (this.visitedRoutes[id] = e), this.handler.apply(this, t) }, this) } }), (i.prototype.navigate = function (id) { var routes = this.parseHash() ;(routes[id] = Array.from(arguments)), (window.location.hash = this.buildHash(routes)) }), (i.prototype.parseHash = function () { for ( var hash = window.location.hash || '#', t, routes = {}; null !== (t = this.regexp.exec(hash)); ) { var e routes[t[1]] = t.slice(1) } return routes }), (i.prototype.buildHash = function (routes) { return Object.values(routes) .map(function (t) { return o.apply(null, t) }) .join('&') }), (window.ProductsRouter = i) }, 12622: function (t, e, n) { 'use strict' function ProductsBuilder(list, model) { ;(this.list = list), (this.products = model.products ? model.products : []), (this.categories = model.categories ? model.categories : []), (this.pathToRoot = document.body.getAttribute('data-path-to-root') || './'), (this.isCms = list.hasClass('u-cms')), (this._result = { items: [], itemsPerPage: 3, currentPage: 1, totalPages: 1, sorting: '', }) } t.exports = ProductsBuilder var Currency = n(212), ProductsUtils = n(358), ProductBadge = n(956) ;(ProductsBuilder.prototype.build = function (page, sorting, t) { if (!Number.isFinite(page)) page = 1 var template = this.list.find('.u-repeater').children().eq(0).clone(), products = ProductsUtils.categoryFilter(this.products, t), e = ProductsUtils.sort( products, this.getSortingParam(sorting), $('html').attr('lang') || 'en' ), n = parseFloat(this.list.attr('data-max-items')), i = Number.isFinite(n) ? n : parseFloat(this.list.attr('data-items-per-page')) || 3, o = i ? products.slice((page - 1) * i, page * i) : products ;(this._result.currentPage = page), (this._result.itemsPerPage = i), (this._result.totalPages = i ? Math.ceil(products.length / i) : 1), (this._result.sorting = e), (this._result.category = t || '') var a = { showSecondImage: this.list.hasClass('u-show-second-image') } o.reduce( function (t, data) { var listItem = template.clone() return this.buildProduct(listItem, data, a), t.push(listItem), t }.bind(this), this._result.items ) }), (ProductsBuilder.prototype.getSortingParam = function (sorting) { var t = (sorting || '').split('-'), e, n return { prop: t[0] || this.list.attr('data-site-sorting-prop'), order: t[1] || this.list.attr('data-site-sorting-order'), } }), (ProductsBuilder.prototype.buildProduct = function (listItem, data, t) { listItem.attr('data-product-id', data.id) var e = listItem.find('.u-product-control') if (listItem.is('.u-product-control')) e = e.add(listItem) e.each( function (e, el) { var n = $(el), i = n.find('.u-product-title-link') if (i.length && !n.is('.u-image')) this.applyTitle(i, data) else if (n.hasClass('u-image')) this.applyImage(n, data, t) else if (n.hasClass('u-product-desc')) this.applyDesc(n, data) else if (n.hasClass('u-product-full-desc')) this.applyFullDesc(n, data) else if (n.hasClass('u-btn')) this.applyButton(n, data) else if (n.hasClass('u-product-price')) this.applyPrice(n, data) else if (n.hasClass('u-product-category')) this.applyCategories(n, data) else if (n.hasClass('u-product-badge')) this.applyBadge(n, data) else if (n.hasClass('u-product-sku')) this.applySku(n, data) }.bind(this) ) }), (ProductsBuilder.prototype.applyTitle = function (t, data) { if (data.title) { t[0].innerHTML = data.title var e = this.isCms ? data.link : t[0].href.replace(/[^/]+$/, data.name + '.html') t[0].href = e } }), (ProductsBuilder.prototype.applyImage = function (t, data, e) { if (data.images && data.images.length) { var url = data.images[0].url || '' if (!url.startsWith('http') && !url.startsWith('data:image')) url = this.pathToRoot + url.replace(/^\/+/, '') if (data.images[1]) { var n = t.closest('.u-repeater-item, .u-product') if ( (n.find('.u-product-second-image').remove(), e.showSecondImage) ) { var i = $('<img/>'), o = data.images[1].url || '' if (!o.startsWith('http') && !o.startsWith('data:image')) o = this.pathToRoot + o.replace(/^\/+/, '') i.attr('src', o), i.addClass('u-product-second-image'), n.prepend(i) } } var a = this.isCms ? data.link : this.pathToRoot + 'products/' + data.name + '.html' if (t.is('img')) { var link t.attr('src', url), t.closest('.u-product-title-link').attr('href', a) } else { if (!url.includes('url(')) url = 'url(' + url + ')' t.css('background-image', url), t.attr('data-href', a) } } }), (ProductsBuilder.prototype.applyDesc = function (t, data) { if (data.description) t[0].innerHTML = data.description }), (ProductsBuilder.prototype.applyFullDesc = function (t, data) { if (data.fullDescription) t[0].innerHTML = data.fullDescription }), (ProductsBuilder.prototype.applyButton = function (t, data) { var e = t.attr('data-product-button-click-type') if ('go-to-page' === e) { var n = this.isCms ? data.link : this.pathToRoot + 'products/' + data.name + '.html' t.attr('href', n) } else if ('buy-now' === e) t.attr('data-product-id', data.id), t.attr('data-product', JSON.stringify(data)) else t.attr('data-product', JSON.stringify(data)), t.attr('href', '#') }), (ProductsBuilder.prototype.applyPrice = function (t, data) { var e = t.find('.u-price') if (e.length) e[0].innerHTML = Currency.format( data.price, data.currency, 'true' === e.closest('.u-product-price').attr('data-add-zero-cents') ) var n = t.find('.u-old-price') if (n.length) n[0].innerHTML = Currency.format( data.oldPrice, data.currency, 'true' === n.closest('.u-product-price').attr('data-add-zero-cents') ) }), (ProductsBuilder.prototype.applySku = function (t, data) { if (data.sku) t[0].innerHTML = data.sku }), (ProductsBuilder.prototype.applyCategories = function (t, data) { var e = t.find('a') if (e.length) { var n = e.eq(0).clone() if ((t.empty(), !data.categories || !data.categories.length)) return ( n.html('Uncategorized').attr('href', '#'), t.append(n), void 0 ) var i = this.categories if (data.categoriesData) data.categoriesData.forEach(function (e, index) { this.setCategory(e, n, t, index) }, this) else data.categories.forEach(function (id, index) { var e = i.find(function (t) { return t.id === id }) this.setCategory(e, n, t, index) }, this) } }), (ProductsBuilder.prototype.setCategory = function (t, e, n, index) { if (t) { var i = e.clone() i.removeAttr('data-category'), i.attr('href', t.link), i.text((index > 0 ? ', ' : '') + t.title), n.append(i) } }), (ProductsBuilder.prototype.applyBadge = function (t, data) { var e = t.attr('data-badge-source') || 'new' if ((t.removeClass('u-hidden-block'), 'new' === e)) t.attr('data-product-created', data.created), t.addClass('u-hidden-block') else { var n = parseFloat(data.price) || 0, i = parseFloat(data.oldPrice) || 0 if (n && i && n < i) { var o = '-' + parseInt(100 - (100 * n) / i, 10) + '%' t[0].innerHTML = t[0].innerHTML.replace(/-[\d]+%/, o) } else t.addClass('u-hidden-block') } ProductBadge.update(t) }), (ProductsBuilder.prototype.getResult = function () { return this._result }), (window.ProductsBuilder = ProductsBuilder) }, 12623: function (t, e) {}, 148: function (t, e, n) { 'use strict' t.exports = { IMAGES: 'IMAGES', DOCUMENTS: 'DOCUMENTS', VIDEO: 'VIDEO', AUDIO: 'AUDIO', CUSTOM: 'CUSTOM', } }, 17: function (t, e) { t.exports = jQuery }, 21: function (t, e, n) { 'use strict' t.exports = { options: { usePureJavaScript: false } } }, 212: function (t, e, n) { 'use strict' var i = n(367), Currency = t.exports, o = i.reduce(function (t, e) { return (t[e.code] = e), t }, {}) ;(Currency.format = function (t, e, n) { if (('string' == typeof t || void 0 === t) && !t) return '' ;(e = e || 'USD'), (t = parseFloat(t) || 0), (this.currency = o[e] || {}), (this.zeroCents = n), (this.lang = this.getCurrentProcessLang()), (this.locale = this.getLocaleByLang()) var i = this.intlFormat(t) if (i.includes(this.currency.symbol)) return i else return this.maskFormat(t) }), (Currency.intlFormat = function (t) { var e = { currency: this.currency.code } if (this.locale) e.style = 'currency' if (!this.zeroCents) (e.maximumFractionDigits = 0), (e.minimumFractionDigits = 0) return new Intl.NumberFormat(this.locale, e).format(t) }), (Currency.maskFormat = function (t) { var e if (this.currency.mask) e = this.currency.mask else if (this.currency.symbol) e = '{0} ' + this.currency.symbol else e = '{0} ' + this.currency.code return (t = this.zeroCents ? t : Math.trunc(t)), e.replace('{0}', t) }), (Currency.getCurrentProcessLang = function () { var lang = $('html').attr('lang') || 'en' if ('object' == typeof app) lang = app.lang.current.get() || lang return lang }), (Currency.getLocaleByLang = function () { var t = this.currency.locale || 'en-US', e = this.currency.localesList || [t], lang = this.lang, n return ( e.find(function (t) { return t.includes(lang) }) || t ) }), (Currency.getSymbol = function (t) { var e = o[t] || {} return e && e.symbol }), (Currency.getMask = function (t) { var e = o[t] || {} return e && e.mask }), (window.Currency = Currency) }, 224: function (t, e, n) { 'use strict' function Accordion(link) { ;(this.selector = '.u-accordion'), (this.activeClass = 'u-accordion-active'), (this._paneSelector = '.u-accordion-pane'), (this.activeSelector = '.' + this.activeClass), (this._linkSelector = '.u-accordion-link'), (this.activeLinkClass = 'active'), (this.activeLinkSelector = '.' + this.activeLinkClass), (this._isCollapsedByDefaultSelector = '.u-collapsed-by-default'), (this._link = link), (this._accordion = this._link.closest(this.selector)) } ;(t.exports = Accordion), (Accordion.prototype.show = function (t) { var link = this._link if (link.is(this.activeLinkSelector) && !t) return this._removeActiveLink(), this._hidePane(link), void 0 this._removeActiveLink(), this._hidePane(link), this._addActiveLink(link), this._activatePane(link) }), (Accordion.prototype._removeActiveLink = function () { var t = this._getActiveLink() t.removeClass(this.activeLinkClass), t.attr('aria-selected', false) }), (Accordion.prototype._getActiveLink = function () { return this._accordion.find(this.activeLinkSelector) }), (Accordion.prototype._addActiveLink = function (link) { link.addClass(this.activeLinkClass), link.attr('aria-selected', true) }), (Accordion.prototype._activatePane = function (link) { var pane this._accordion.find(this.activeSelector).removeClass(this.activeClass), this._getPane(link).addClass(this.activeClass) }), (Accordion.prototype._getPane = function (link) { return link.siblings(this._paneSelector) }), (Accordion.prototype._hidePane = function (link) { var pane this._getPane(link).removeClass(this.activeClass) }), (Accordion.prototype.closeAll = function () { this._accordion .find(this._linkSelector + this.activeLinkSelector) .removeClass(this.activeLinkClass) .attr('aria-selected', false), this._accordion .find(this._paneSelector + this.activeSelector) .removeClass(this.activeClass) }), (Accordion.prototype.isCollapsedByDefault = function () { return this._accordion.is(this._isCollapsedByDefaultSelector) }) }, 24: function (t, e, n) { 'use strict' ;(function (e, i, o, a) { function s(t) { if (!(8 === t || 16 === t || 24 === t || 32 === t)) throw new Error('Only 8, 16, 24, or 32 bits supported: ' + t) } function u(t) { if (((this.data = ''), (this.read = 0), 'string' == typeof t)) this.data = t else if (util.isArrayBuffer(t) || util.isArrayBufferView(t)) if (void 0 !== a && t instanceof a) this.data = t.toString('binary') else { var e = new Uint8Array(t) try { this.data = String.fromCharCode.apply(null, e) } catch (t) { for (var n = 0; n < e.length; ++n) this.putByte(e[n]) } } else if ( t instanceof u || ('object' == typeof t && 'string' == typeof t.data && 'number' == typeof t.read) ) (this.data = t.data), (this.read = t.read) this._constructedStringLength = 0 } function l(t, e) { ;(e = e || {}), (this.read = e.readOffset || 0), (this.growSize = e.growSize || 1024) var n = util.isArrayBuffer(t), i = util.isArrayBufferView(t) if (n || i) { if (n) this.data = new DataView(t) else this.data = new DataView(t.buffer, t.byteOffset, t.byteLength) return ( (this.write = 'writeOffset' in e ? e.writeOffset : this.data.byteLength), void 0 ) } if ( ((this.data = new DataView(new ArrayBuffer(0))), (this.write = 0), null != t) ) this.putBytes(t) if ('writeOffset' in e) this.write = e.writeOffset } var c = n(21), f = n(543), util = (t.exports = c.util = c.util || {}) !(function () { if (void 0 === e || !e.nextTick || e.browser) { if ('function' == typeof i) return ( (util.setImmediate = function () { return i.apply(void 0, arguments) }), (util.nextTick = function (t) { return i(t) }), void 0 ) if ( ((util.setImmediate = function (t) { setTimeout(t, 0) }), 'undefined' != typeof window && 'function' == typeof window.postMessage) ) { var t = 'forge.setImmediate', n = [] function e(e) { if (e.source === window && e.data === t) { e.stopPropagation() var copy = n.slice() ;(n.length = 0), copy.forEach(function (t) { t() }) } } ;(util.setImmediate = function (e) { if ((n.push(e), 1 === n.length)) window.postMessage(t, '*') }), window.addEventListener('message', e, true) } if ('undefined' != typeof MutationObserver) { var o = Date.now(), a = true, s = document.createElement('div'), n = [] new MutationObserver(function () { var copy = n.slice() ;(n.length = 0), copy.forEach(function (t) { t() }) }).observe(s, { attributes: true }) var u = util.setImmediate util.setImmediate = function (t) { if (Date.now() - o > 15) (o = Date.now()), u(t) else if ((n.push(t), 1 === n.length)) s.setAttribute('a', (a = !a)) } } util.nextTick = util.setImmediate } else if (((util.nextTick = e.nextTick), 'function' == typeof i)) util.setImmediate = i else util.setImmediate = util.nextTick })(), (util.isNodejs = void 0 !== e && e.versions && e.versions.node), (util.globalScope = (function () { if (util.isNodejs) return o else return 'undefined' == typeof self ? window : self })()), (util.isArray = Array.isArray || function (t) { return '[object Array]' === Object.prototype.toString.call(t) }), (util.isArrayBuffer = function (t) { return 'undefined' != typeof ArrayBuffer && t instanceof ArrayBuffer }), (util.isArrayBufferView = function (t) { return t && util.isArrayBuffer(t.buffer) && void 0 !== t.byteLength }), (util.ByteBuffer = u), (util.ByteStringBuffer = u) var h = 4096 ;(util.ByteStringBuffer.prototype._optimizeConstructedString = function ( t ) { if ( ((this._constructedStringLength += t), this._constructedStringLength > h) ) this.data.substr(0, 1), (this._constructedStringLength = 0) }), (util.ByteStringBuffer.prototype.length = function () { return this.data.length - this.read }), (util.ByteStringBuffer.prototype.isEmpty = function () { return this.length() <= 0 }), (util.ByteStringBuffer.prototype.putByte = function (t) { return this.putBytes(String.fromCharCode(t)) }), (util.ByteStringBuffer.prototype.fillWithByte = function (t, e) { t = String.fromCharCode(t) for (var d = this.data; e > 0; ) { if (1 & e) d += t if ((e >>>= 1) > 0) t += t } return (this.data = d), this._optimizeConstructedString(e), this }), (util.ByteStringBuffer.prototype.putBytes = function (t) { return ( (this.data += t), this._optimizeConstructedString(t.length), this ) }), (util.ByteStringBuffer.prototype.putString = function (t) { return this.putBytes(util.encodeUtf8(t)) }), (util.ByteStringBuffer.prototype.putInt16 = function (t) { return this.putBytes( String.fromCharCode((t >> 8) & 255) + String.fromCharCode(255 & t) ) }), (util.ByteStringBuffer.prototype.putInt24 = function (t) { return this.putBytes( String.fromCharCode((t >> 16) & 255) + String.fromCharCode((t >> 8) & 255) + String.fromCharCode(255 & t) ) }), (util.ByteStringBuffer.prototype.putInt32 = function (t) { return this.putBytes( String.fromCharCode((t >> 24) & 255) + String.fromCharCode((t >> 16) & 255) + String.fromCharCode((t >> 8) & 255) + String.fromCharCode(255 & t) ) }), (util.ByteStringBuffer.prototype.putInt16Le = function (t) { return this.putBytes( String.fromCharCode(255 & t) + String.fromCharCode((t >> 8) & 255) ) }), (util.ByteStringBuffer.prototype.putInt24Le = function (t) { return this.putBytes( String.fromCharCode(255 & t) + String.fromCharCode((t >> 8) & 255) + String.fromCharCode((t >> 16) & 255) ) }), (util.ByteStringBuffer.prototype.putInt32Le = function (t) { return this.putBytes( String.fromCharCode(255 & t) + String.fromCharCode((t >> 8) & 255) + String.fromCharCode((t >> 16) & 255) + String.fromCharCode((t >> 24) & 255) ) }), (util.ByteStringBuffer.prototype.putInt = function (t, e) { s(e) var n = '' do { ;(e -= 8), (n += String.fromCharCode((t >> e) & 255)) } while (e > 0) return this.putBytes(n) }), (util.ByteStringBuffer.prototype.putSignedInt = function (t, e) { if (t < 0) t += 2 << (e - 1) return this.putInt(t, e) }), (util.ByteStringBuffer.prototype.putBuffer = function (t) { return this.putBytes(t.getBytes()) }), (util.ByteStringBuffer.prototype.getByte = function () { return this.data.charCodeAt(this.read++) }), (util.ByteStringBuffer.prototype.getInt16 = function () { var t = (this.data.charCodeAt(this.read) << 8) ^ this.data.charCodeAt(this.read + 1) return (this.read += 2), t }), (util.ByteStringBuffer.prototype.getInt24 = function () { var t = (this.data.charCodeAt(this.read) << 16) ^ (this.data.charCodeAt(this.read + 1) << 8) ^ this.data.charCodeAt(this.read + 2) return (this.read += 3), t }), (util.ByteStringBuffer.prototype.getInt32 = function () { var t = (this.data.charCodeAt(this.read) << 24) ^ (this.data.charCodeAt(this.read + 1) << 16) ^ (this.data.charCodeAt(this.read + 2) << 8) ^ this.data.charCodeAt(this.read + 3) return (this.read += 4), t }), (util.ByteStringBuffer.prototype.getInt16Le = function () { var t = this.data.charCodeAt(this.read) ^ (this.data.charCodeAt(this.read + 1) << 8) return (this.read += 2), t }), (util.ByteStringBuffer.prototype.getInt24Le = function () { var t = this.data.charCodeAt(this.read) ^ (this.data.charCodeAt(this.read + 1) << 8) ^ (this.data.charCodeAt(this.read + 2) << 16) return (this.read += 3), t }), (util.ByteStringBuffer.prototype.getInt32Le = function () { var t = this.data.charCodeAt(this.read) ^ (this.data.charCodeAt(this.read + 1) << 8) ^ (this.data.charCodeAt(this.read + 2) << 16) ^ (this.data.charCodeAt(this.read + 3) << 24) return (this.read += 4), t }), (util.ByteStringBuffer.prototype.getInt = function (t) { s(t) var e = 0 do { ;(e = (e << 8) + this.data.charCodeAt(this.read++)), (t -= 8) } while (t > 0) return e }), (util.ByteStringBuffer.prototype.getSignedInt = function (t) { var e = this.getInt(t), n = 2 << (t - 2) if (e >= n) e -= n << 1 return e }), (util.ByteStringBuffer.prototype.getBytes = function (t) { var e if (t) (t = Math.min(this.length(), t)), (e = this.data.slice(this.read, this.read + t)), (this.read += t) else if (0 === t) e = '' else (e = 0 === this.read ? this.data : this.data.slice(this.read)), this.clear() return e }), (util.ByteStringBuffer.prototype.bytes = function (t) { return void 0 === t ? this.data.slice(this.read) : this.data.slice(this.read, this.read + t) }), (util.ByteStringBuffer.prototype.at = function (t) { return this.data.charCodeAt(this.read + t) }), (util.ByteStringBuffer.prototype.setAt = function (t, e) { return ( (this.data = this.data.substr(0, this.read + t) + String.fromCharCode(e) + this.data.substr(this.read + t + 1)), this ) }), (util.ByteStringBuffer.prototype.last = function () { return this.data.charCodeAt(this.data.length - 1) }), (util.ByteStringBuffer.prototype.copy = function () { var t = util.createBuffer(this.data) return (t.read = this.read), t }), (util.ByteStringBuffer.prototype.compact = function () { if (this.read > 0) (this.data = this.data.slice(this.read)), (this.read = 0) return this }), (util.ByteStringBuffer.prototype.clear = function () { return (this.data = ''), (this.read = 0), this }), (util.ByteStringBuffer.prototype.truncate = function (t) { var e = Math.max(0, this.length() - t) return ( (this.data = this.data.substr(this.read, e)), (this.read = 0), this ) }), (util.ByteStringBuffer.prototype.toHex = function () { for (var t = '', e = this.read; e < this.data.length; ++e) { var n = this.data.charCodeAt(e) if (n < 16) t += '0' t += n.toString(16) } return t }), (util.ByteStringBuffer.prototype.toString = function () { return util.decodeUtf8(this.bytes()) }), (util.DataBuffer = l), (util.DataBuffer.prototype.length = function () { return this.write - this.read }), (util.DataBuffer.prototype.isEmpty = function () { return this.length() <= 0 }), (util.DataBuffer.prototype.accommodate = function (t, e) { if (this.length() >= t) return this e = Math.max(e || this.growSize, t) var n = new Uint8Array( this.data.buffer, this.data.byteOffset, this.data.byteLength ), i = new Uint8Array(this.length() + e) return i.set(n), (this.data = new DataView(i.buffer)), this }), (util.DataBuffer.prototype.putByte = function (t) { return this.accommodate(1), this.data.setUint8(this.write++, t), this }), (util.DataBuffer.prototype.fillWithByte = function (t, e) { this.accommodate(e) for (var n = 0; n < e; ++n) this.data.setUint8(t) return this }), (util.DataBuffer.prototype.putBytes = function (t, e) { if (util.isArrayBufferView(t)) { var n, i = (n = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)) .byteLength - n.byteOffset, o return ( this.accommodate(i), (o = new Uint8Array(this.data.buffer, this.write)).set(n), (this.write += i), this ) } if (util.isArrayBuffer(t)) { var n = new Uint8Array(t), o return ( this.accommodate(n.byteLength), (o = new Uint8Array(this.data.buffer)).set(n, this.write), (this.write += n.byteLength), this ) } if ( t instanceof util.DataBuffer || ('object' == typeof t && 'number' == typeof t.read && 'number' == typeof t.write && util.isArrayBufferView(t.data)) ) { var n = new Uint8Array(t.data.byteLength, t.read, t.length()), o return ( this.accommodate(n.byteLength), (o = new Uint8Array(t.data.byteLength, this.write)).set(n), (this.write += n.byteLength), this ) } if (t instanceof util.ByteStringBuffer) (t = t.data), (e = 'binary') if (((e = e || 'binary'), 'string' == typeof t)) { var view if ('hex' === e) return ( this.accommodate(Math.ceil(t.length / 2)), (view = new Uint8Array(this.data.buffer, this.write)), (this.write += util.binary.hex.decode(t, view, this.write)), this ) if ('base64' === e) return ( this.accommodate(3 * Math.ceil(t.length / 4)), (view = new Uint8Array(this.data.buffer, this.write)), (this.write += util.binary.base64.decode(t, view, this.write)), this ) if ('utf8' === e) (t = util.encodeUtf8(t)), (e = 'binary') if ('binary' === e || 'raw' === e) return ( this.accommodate(t.length), (view = new Uint8Array(this.data.buffer, this.write)), (this.write += util.binary.raw.decode(view)), this ) if ('utf16' === e) return ( this.accommodate(2 * t.length), (view = new Uint16Array(this.data.buffer, this.write)), (this.write += util.text.utf16.encode(view)), this ) throw new Error('Invalid encoding: ' + e) } throw Error('Invalid parameter: ' + t) }), (util.DataBuffer.prototype.putBuffer = function (t) { return this.putBytes(t), t.clear(), this }), (util.DataBuffer.prototype.putString = function (t) { return this.putBytes(t, 'utf16') }), (util.DataBuffer.prototype.putInt16 = function (t) { return ( this.accommodate(2), this.data.setInt16(this.write, t), (this.write += 2), this ) }), (util.DataBuffer.prototype.putInt24 = function (t) { return ( this.accommodate(3), this.data.setInt16(this.write, (t >> 8) & 65535), this.data.setInt8(this.write, (t >> 16) & 255), (this.write += 3), this ) }), (util.DataBuffer.prototype.putInt32 = function (t) { return ( this.accommodate(4), this.data.setInt32(this.write, t), (this.write += 4), this ) }), (util.DataBuffer.prototype.putInt16Le = function (t) { return ( this.accommodate(2), this.data.setInt16(this.write, t, true), (this.write += 2), this ) }), (util.DataBuffer.prototype.putInt24Le = function (t) { return ( this.accommodate(3), this.data.setInt8(this.write, (t >> 16) & 255), this.data.setInt16(this.write, (t >> 8) & 65535, true), (this.write += 3), this ) }), (util.DataBuffer.prototype.putInt32Le = function (t) { return ( this.accommodate(4), this.data.setInt32(this.write, t, true), (this.write += 4), this ) }), (util.DataBuffer.prototype.putInt = function (t, e) { s(e), this.accommodate(e / 8) do { ;(e -= 8), this.data.setInt8(this.write++, (t >> e) & 255) } while (e > 0) return this }), (util.DataBuffer.prototype.putSignedInt = function (t, e) { if ((s(e), this.accommodate(e / 8), t < 0)) t += 2 << (e - 1) return this.putInt(t, e) }), (util.DataBuffer.prototype.getByte = function () { return this.data.getInt8(this.read++) }), (util.DataBuffer.prototype.getInt16 = function () { var t = this.data.getInt16(this.read) return (this.read += 2), t }), (util.DataBuffer.prototype.getInt24 = function () { var t = (this.data.getInt16(this.read) << 8) ^ this.data.getInt8(this.read + 2) return (this.read += 3), t }), (util.DataBuffer.prototype.getInt32 = function () { var t = this.data.getInt32(this.read) return (this.read += 4), t }), (util.DataBuffer.prototype.getInt16Le = function () { var t = this.data.getInt16(this.read, true) return (this.read += 2), t }), (util.DataBuffer.prototype.getInt24Le = function () { var t = this.data.getInt8(this.read) ^ (this.data.getInt16(this.read + 1, true) << 8) return (this.read += 3), t }), (util.DataBuffer.prototype.getInt32Le = function () { var t = this.data.getInt32(this.read, true) return (this.read += 4), t }), (util.DataBuffer.prototype.getInt = function (t) { s(t) var e = 0 do { ;(e = (e << 8) + this.data.getInt8(this.read++)), (t -= 8) } while (t > 0) return e }), (util.DataBuffer.prototype.getSignedInt = function (t) { var e = this.getInt(t), n = 2 << (t - 2) if (e >= n) e -= n << 1 return e }), (util.DataBuffer.prototype.getBytes = function (t) { var e if (t) (t = Math.min(this.length(), t)), (e = this.data.slice(this.read, this.read + t)), (this.read += t) else if (0 === t) e = '' else (e = 0 === this.read ? this.data : this.data.slice(this.read)), this.clear() return e }), (util.DataBuffer.prototype.bytes = function (t) { return void 0 === t ? this.data.slice(this.read) : this.data.slice(this.read, this.read + t) }), (util.DataBuffer.prototype.at = function (t) { return this.data.getUint8(this.read + t) }), (util.DataBuffer.prototype.setAt = function (t, e) { return this.data.setUint8(t, e), this }), (util.DataBuffer.prototype.last = function () { return this.data.getUint8(this.write - 1) }), (util.DataBuffer.prototype.copy = function () { return new util.DataBuffer(this) }), (util.DataBuffer.prototype.compact = function () { if (this.read > 0) { var t = new Uint8Array(this.data.buffer, this.read), e = new Uint8Array(t.byteLength) e.set(t), (this.data = new DataView(e)), (this.write -= this.read), (this.read = 0) } return this }), (util.DataBuffer.prototype.clear = function () { return ( (this.data = new DataView(new ArrayBuffer(0))), (this.read = this.write = 0), this ) }), (util.DataBuffer.prototype.truncate = function (t) { return ( (this.write = Math.max(0, this.length() - t)), (this.read = Math.min(this.read, this.write)), this ) }), (util.DataBuffer.prototype.toHex = function () { for (var t = '', e = this.read; e < this.data.byteLength; ++e) { var n = this.data.getUint8(e) if (n < 16) t += '0' t += n.toString(16) } return t }), (util.DataBuffer.prototype.toString = function (t) { var view = new Uint8Array(this.data, this.read, this.length()) if ('binary' === (t = t || 'utf8') || 'raw' === t) return util.binary.raw.encode(view) if ('hex' === t) return util.binary.hex.encode(view) if ('base64' === t) return util.binary.base64.encode(view) if ('utf8' === t) return util.text.utf8.decode(view) if ('utf16' === t) return util.text.utf16.decode(view) throw new Error('Invalid encoding: ' + t) }), (util.createBuffer = function (input, t) { if (((t = t || 'raw'), void 0 !== input && 'utf8' === t)) input = util.encodeUtf8(input) return new util.ByteBuffer(input) }), (util.fillString = function (t, e) { for (var n = ''; e > 0; ) { if (1 & e) n += t if ((e >>>= 1) > 0) t += t } return n }), (util.xorBytes = function (t, e, n) { for (var i = '', o = '', a = '', s = 0, u = 0; n > 0; --n, ++s) { if (((o = t.charCodeAt(s) ^ e.charCodeAt(s)), u >= 10)) (i += a), (a = ''), (u = 0) ;(a += String.fromCharCode(o)), ++u } return (i += a) }), (util.hexToBytes = function (t) { var e = '', n = 0 if (t.length & (1 == 1)) (n = 1), (e += String.fromCharCode(parseInt(t[0], 16))) for (; n < t.length; n += 2) e += String.fromCharCode(parseInt(t.substr(n, 2), 16)) return e }), (util.bytesToHex = function (t) { return util.createBuffer(t).toHex() }), (util.int32ToBytes = function (t) { return ( String.fromCharCode((t >> 24) & 255) + String.fromCharCode((t >> 16) & 255) + String.fromCharCode((t >> 8) & 255) + String.fromCharCode(255 & t) ) }) var p = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', m = [ 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 64, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ], g = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' ;(util.encode64 = function (input, t) { for (var line = '', e = '', n, i, o, a = 0; a < input.length; ) { if ( ((n = input.charCodeAt(a++)), (i = input.charCodeAt(a++)), (o = input.charCodeAt(a++)), (line += p.charAt(n >> 2)), (line += p.charAt(((3 & n) << 4) | (i >> 4))), isNaN(i)) ) line += '==' else (line += p.charAt(((15 & i) << 2) | (o >> 6))), (line += isNaN(o) ? '=' : p.charAt(63 & o)) if (t && line.length > t) (e += line.substr(0, t) + '\r\n'), (line = line.substr(t)) } return (e += line) }), (util.decode64 = function (input) { input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '') for (var t = '', e, n, i, o, a = 0; a < input.length; ) if ( ((e = m[input.charCodeAt(a++) - 43]), (n = m[input.charCodeAt(a++) - 43]), (i = m[input.charCodeAt(a++) - 43]), (o = m[input.charCodeAt(a++) - 43]), (t += String.fromCharCode((e << 2) | (n >> 4))), 64 !== i) ) if ( ((t += String.fromCharCode(((15 & n) << 4) | (i >> 2))), 64 !== o) ) t += String.fromCharCode(((3 & i) << 6) | o) return t }), (util.encodeUtf8 = function (t) { return unescape(encodeURIComponent(t)) }), (util.decodeUtf8 = function (t) { return decodeURIComponent(escape(t)) }), (util.binary = { raw: {}, hex: {}, base64: {}, base58: {}, baseN: { encode: f.encode, decode: f.decode }, }), (util.binary.raw.encode = function (t) { return String.fromCharCode.apply(null, t) }), (util.binary.raw.decode = function (t, e, n) { var i = e if (!i) i = new Uint8Array(t.length) for (var o = (n = n || 0), a = 0; a < t.length; ++a) i[o++] = t.charCodeAt(a) return e ? o - n : i }), (util.binary.hex.encode = util.bytesToHex), (util.binary.hex.decode = function (t, e, n) { var i = e if (!i) i = new Uint8Array(Math.ceil(t.length / 2)) var o = 0, a = (n = n || 0) if (1 & t.length) (o = 1), (i[a++] = parseInt(t[0], 16)) for (; o < t.length; o += 2) i[a++] = parseInt(t.substr(o, 2), 16) return e ? a - n : i }), (util.binary.base64.encode = function (input, t) { for (var line = '', e = '', n, i, o, a = 0; a < input.byteLength; ) { if ( ((n = input[a++]), (i = input[a++]), (o = input[a++]), (line += p.charAt(n >> 2)), (line += p.charAt(((3 & n) << 4) | (i >> 4))), isNaN(i)) ) line += '==' else (line += p.charAt(((15 & i) << 2) | (o >> 6))), (line += isNaN(o) ? '=' : p.charAt(63 & o)) if (t && line.length > t) (e += line.substr(0, t) + '\r\n'), (line = line.substr(t)) } return (e += line) }), (util.binary.base64.decode = function (input, t, e) { var n = t, i, o, a, s if (!n) n = new Uint8Array(3 * Math.ceil(input.length / 4)) input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '') for (var u = 0, l = (e = e || 0); u < input.length; ) if ( ((i = m[input.charCodeAt(u++) - 43]), (o = m[input.charCodeAt(u++) - 43]), (a = m[input.charCodeAt(u++) - 43]), (s = m[input.charCodeAt(u++) - 43]), (n[l++] = (i << 2) | (o >> 4)), 64 !== a) ) if (((n[l++] = ((15 & o) << 4) | (a >> 2)), 64 !== s)) n[l++] = ((3 & a) << 6) | s return t ? l - e : n.subarray(0, l) }), (util.binary.base58.encode = function (input, t) { return util.binary.baseN.encode(input, g, t) }), (util.binary.base58.decode = function (input, t) { return util.binary.baseN.decode(input, g, t) }), (util.text = { utf8: {}, utf16: {} }), (util.text.utf8.encode = function (t, e, n) { t = util.encodeUtf8(t) var i = e if (!i) i = new Uint8Array(t.length) for (var o = (n = n || 0), a = 0; a < t.length; ++a) i[o++] = t.charCodeAt(a) return e ? o - n : i }), (util.text.utf8.decode = function (t) { return util.decodeUtf8(String.fromCharCode.apply(null, t)) }), (util.text.utf16.encode = function (t, e, n) { var i = e if (!i) i = new Uint8Array(2 * t.length) for ( var view = new Uint16Array(i.buffer), o = (n = n || 0), a = n, s = 0; s < t.length; ++s ) (view[a++] = t.charCodeAt(s)), (o += 2) return e ? o - n : i }), (util.text.utf16.decode = function (t) { return String.fromCharCode.apply(null, new Uint16Array(t.buffer)) }), (util.deflate = function (t, e, n) { if (((e = util.decode64(t.deflate(util.encode64(e)).rval)), n)) { var i = 2, o if (32 & e.charCodeAt(1)) i = 6 e = e.substring(i, e.length - 4) } return e }), (util.inflate = function (t, e, n) { var i = t.inflate(util.encode64(e)).rval return null === i ? null : util.decode64(i) }) var v = function (t, id, e) { if (!t) throw new Error('WebStorage not available.') var n if (null === e) n = t.removeItem(id) else (e = util.encode64(JSON.stringify(e))), (n = t.setItem(id, e)) if (void 0 !== n && true !== n.rval) { var i = new Error(n.error.message) throw ((i.id = n.error.id), (i.name = n.error.name), i) } }, y = function (t, id) { if (!t) throw new Error('WebStorage not available.') var e = t.getItem(id) if (t.init) if (null === e.rval) { if (e.error) { var n = new Error(e.error.message) throw ((n.id = e.error.id), (n.name = e.error.name), n) } e = null } else e = e.rval if (null !== e) e = JSON.parse(util.decode64(e)) return e }, w = function (t, id, e, data) { var n = y(t, id) if (null === n) n = {} ;(n[e] = data), v(t, id, n) }, b = function (t, id, e) { var n = y(t, id) if (null !== n) n = e in n ? n[e] : null return n }, C = function (t, id, e) { var n = y(t, id) if (null !== n && e in n) { delete n[e] var empty = true for (var i in n) { empty = false break } if (empty) n = null v(t, id, n) } }, S = function (t, id) { v(t, id, null) }, x = function (t, e, n) { var i = null, type if (void 0 === n) n = ['web', 'flash'] var o = false, a = null for (var s in n) { type = n[s] try { if ('flash' === type || 'both' === type) { if (null === e[0]) throw new Error('Flash local storage not available.') ;(i = t.apply(this, e)), (o = 'flash' === type) } if ('web' === type || 'both' === type) (e[0] = localStorage), (i = t.apply(this, e)), (o = true) } catch (t) { a = t } if (o) break } if (!o) throw a return i } ;(util.setItem = function (t, id, e, data, n) { x(w, arguments, n) }), (util.getItem = function (t, id, e, n) { return x(b, arguments, n) }), (util.removeItem = function (t, id, e, n) { x(C, arguments, n) }), (util.clearItems = function (t, id, e) { x(S, arguments, e) }), (util.isEmpty = function (t) { for (var e in t) if (t.hasOwnProperty(e)) return false return true }), (util.format = function (format) { for ( var t = /%./g, e, n, i = 0, o = [], a = 0; (e = t.exec(format)); ) { if ((n = format.substring(a, t.lastIndex - 2)).length > 0) o.push(n) a = t.lastIndex var s = e[0][1] switch (s) { case 's': case 'o': if (i < arguments.length) o.push(arguments[i++ + 1]) else o.push('<?>') break case '%': o.push('%') break default: o.push('<%' + s + '?>') } } return o.push(format.substring(a)), o.join('') }), (util.formatNumber = function (t, e, n, i) { var o = t, a = isNaN((e = Math.abs(e))) ? 2 : e, d = void 0 === n ? ',' : n, s = void 0 === i ? '.' : i, u = o < 0 ? '-' : '', l = parseInt((o = Math.abs(+o || 0).toFixed(a)), 10) + '', c = l.length > 3 ? l.length % 3 : 0 return ( u + (c ? l.substr(0, c) + s : '') + l.substr(c).replace(/(\d{3})(?=\d)/g, '$1' + s) + (a ? d + Math.abs(o - l) .toFixed(a) .slice(2) : '') ) }), (util.formatSize = function (size) { if (size >= 1073741824) size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB' else if (size >= 1048576) size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB' else if (size >= 1024) size = util.formatNumber(size / 1024, 0) + ' KiB' else size = util.formatNumber(size, 0) + ' bytes' return size }), (util.bytesFromIP = function (t) { if (-1 !== t.indexOf('.')) return util.bytesFromIPv4(t) if (-1 !== t.indexOf(':')) return util.bytesFromIPv6(t) else return null }), (util.bytesFromIPv4 = function (t) { if (4 !== (t = t.split('.')).length) return null for (var e = util.createBuffer(), n = 0; n < t.length; ++n) { var i = parseInt(t[n], 10) if (isNaN(i)) return null e.putByte(i) } return e.getBytes() }), (util.bytesFromIPv6 = function (t) { for ( var e = 0, n = 2 * (8 - (t = t.split(':').filter(function (t) { if (0 === t.length) ++e return true })).length + e), i = util.createBuffer(), o = 0; o < 8; ++o ) if (t[o] && 0 !== t[o].length) { var a = util.hexToBytes(t[o]) if (a.length < 2) i.putByte(0) i.putBytes(a) } else i.fillWithByte(0, n), (n = 0) return i.getBytes() }), (util.bytesToIP = function (t) { if (4 === t.length) return util.bytesToIPv4(t) if (16 === t.length) return util.bytesToIPv6(t) else return null }), (util.bytesToIPv4 = function (t) { if (4 !== t.length) return null for (var e = [], n = 0; n < t.length; ++n) e.push(t.charCodeAt(n)) return e.join('.') }), (util.bytesToIPv6 = function (t) { if (16 !== t.length) return null for (var e = [], n = [], i = 0, o = 0; o < t.length; o += 2) { for ( var a = util.bytesToHex(t[o] + t[o + 1]); '0' === a[0] && '0' !== a; ) a = a.substr(1) if ('0' === a) { var s = n[n.length - 1], u = e.length if (!s || u !== s.end + 1) n.push({ start: u, end: u }) else if (((s.end = u), s.end - s.start > n[i].end - n[i].start)) i = n.length - 1 } e.push(a) } if (n.length > 0) { var group = n[i] if (group.end - group.start > 0) { if ( (e.splice(group.start, group.end - group.start + 1, ''), 0 === group.start) ) e.unshift('') if (7 === group.end) e.push('') } } return e.join(':') }), (util.estimateCores = function (t, e) { function n(t, a, s) { if (0 === a) { var u = Math.floor( t.reduce(function (t, e) { return t + e }, 0) / t.length ) return ( (util.cores = Math.max(1, u)), URL.revokeObjectURL(o), e(null, util.cores) ) } map(s, function (e, o) { t.push(i(s, o)), n(t, a - 1, s) }) } function map(t, e) { for (var n = [], i = [], a = 0; a < t; ++a) { var worker = new Worker(o) worker.addEventListener('message', function (o) { if ((i.push(o.data), i.length === t)) { for (var a = 0; a < t; ++a) n[a].terminate() e(null, i) } }), n.push(worker) } for (var a = 0; a < t; ++a) n[a].postMessage(a) } function i(t, e) { for (var n = [], i = 0; i < t; ++i) for (var o = e[i], overlap = (n[i] = []), a = 0; a < t; ++a) if (i !== a) { var s = e[a] if ( (o.st > s.st && o.st < s.et) || (s.st > o.st && s.st < o.et) ) overlap.push(a) } return n.reduce(function (t, overlap) { return Math.max(t, overlap.length) }, 0) } if ('function' == typeof t) (e = t), (t = {}) if (((t = t || {}), 'cores' in util && !t.update)) return e(null, util.cores) if ( 'undefined' != typeof navigator && 'hardwareConcurrency' in navigator && navigator.hardwareConcurrency > 0 ) return ( (util.cores = navigator.hardwareConcurrency), e(null, util.cores) ) if ('undefined' == typeof Worker) return (util.cores = 1), e(null, util.cores) if ('undefined' == typeof Blob) return (util.cores = 2), e(null, util.cores) var o = URL.createObjectURL( new Blob( [ '(', function () { self.addEventListener('message', function (t) { for (var e = Date.now(), et = e + 4; Date.now() < et; ); self.postMessage({ st: e, et: et }) }) }.toString(), ')()', ], { type: 'application/javascript' } ) ) n([], 5, 16) }) }).call(e, n(116), n(262).setImmediate, n(60), n(62).Buffer) }, 262: function (t, e, n) { 'use strict' ;(function (t) { function i(id, t) { ;(this._id = id), (this._clearFn = t) } var o = (void 0 !== t && t) || ('undefined' != typeof self && self) || window, a = Function.prototype.apply ;(e.setTimeout = function () { return new i(a.call(setTimeout, o, arguments), clearTimeout) }), (e.setInterval = function () { return new i(a.call(setInterval, o, arguments), clearInterval) }), (e.clearTimeout = e.clearInterval = function (t) { if (t) t.close() }), (i.prototype.unref = i.prototype.ref = function () {}), (i.prototype.close = function () { this._clearFn.call(o, this._id) }), (e.enroll = function (t, e) { clearTimeout(t._idleTimeoutId), (t._idleTimeout = e) }), (e.unenroll = function (t) { clearTimeout(t._idleTimeoutId), (t._idleTimeout = -1) }), (e._unrefActive = e.active = function (t) { clearTimeout(t._idleTimeoutId) var e = t._idleTimeout if (e >= 0) t._idleTimeoutId = setTimeout(function e() { if (t._onTimeout) t._onTimeout() }, e) }), n(541), (e.setImmediate = ('undefined' != typeof self && self.setImmediate) || (void 0 !== t && t.setImmediate) || (this && this.setImmediate)), (e.clearImmediate = ('undefined' != typeof self && self.clearImmediate) || (void 0 !== t && t.clearImmediate) || (this && this.clearImmediate)) }).call(e, n(60)) }, 264: function (t, e, n) { 'use strict' function i() { ;(u = String.fromCharCode(128)), (u += a.util.fillString(String.fromCharCode(0), 64)), (c = [ 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298, ]), (l = true) } function o(t, e, n) { for ( var i, o, a, s, u, l, f, h, p, m, d, g, v, y, w, b = n.length(); b >= 64; ) { for (f = 0; f < 16; ++f) e[f] = n.getInt32() for (; f < 64; ++f) (i = (((i = e[f - 2]) >>> 17) | (i << 15)) ^ ((i >>> 19) | (i << 13)) ^ (i >>> 10)), (o = (((o = e[f - 15]) >>> 7) | (o << 25)) ^ ((o >>> 18) | (o << 14)) ^ (o >>> 3)), (e[f] = (i + e[f - 7] + o + e[f - 16]) | 0) for ( h = t.h0, p = t.h1, m = t.h2, d = t.h3, g = t.h4, v = t.h5, y = t.h6, w = t.h7, f = 0; f < 64; ++f ) (a = ((h >>> 2) | (h << 30)) ^ ((h >>> 13) | (h << 19)) ^ ((h >>> 22) | (h << 10))), (l = (h & p) | (m & (h ^ p))), (i = w + (s = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7))) + (u = y ^ (g & (v ^ y))) + c[f] + e[f]), (w = y), (y = v), (v = g), (g = (d + i) >>> 0), (d = m), (m = p), (p = h), (h = (i + (o = a + l)) >>> 0) ;(t.h0 = (t.h0 + h) | 0), (t.h1 = (t.h1 + p) | 0), (t.h2 = (t.h2 + m) | 0), (t.h3 = (t.h3 + d) | 0), (t.h4 = (t.h4 + g) | 0), (t.h5 = (t.h5 + v) | 0), (t.h6 = (t.h6 + y) | 0), (t.h7 = (t.h7 + w) | 0), (b -= 64) } } var a = n(21) n(92), n(24) var s = (t.exports = a.sha256 = a.sha256 || {}) ;(a.md.sha256 = a.md.algorithms.sha256 = s), (s.create = function () { if (!l) i() var t = null, e = a.util.createBuffer(), n = new Array(64), s = { algorithm: 'sha256', blockLength: 64, digestLength: 32, messageLength: 0, fullMessageLength: null, messageLengthSize: 8, start: function () { ;(s.messageLength = 0), (s.fullMessageLength = s.messageLength64 = []) for (var n = s.messageLengthSize / 4, i = 0; i < n; ++i) s.fullMessageLength.push(0) return ( (e = a.util.createBuffer()), (t = { h0: 1779033703, h1: 3144134277, h2: 1013904242, h3: 2773480762, h4: 1359893119, h5: 2600822924, h6: 528734635, h7: 1541459225, }), s ) }, } return ( s.start(), (s.update = function (i, u) { if ('utf8' === u) i = a.util.encodeUtf8(i) var l = i.length ;(s.messageLength += l), (l = [(l / 4294967296) >>> 0, l >>> 0]) for (var c = s.fullMessageLength.length - 1; c >= 0; --c) (s.fullMessageLength[c] += l[1]), (l[1] = l[0] + ((s.fullMessageLength[c] / 4294967296) >>> 0)), (s.fullMessageLength[c] = s.fullMessageLength[c] >>> 0), (l[0] = (l[1] / 4294967296) >>> 0) if ((e.putBytes(i), o(t, n, e), e.read > 2048 || 0 === e.length())) e.compact() return s }), (s.digest = function () { var i = a.util.createBuffer() i.putBytes(e.bytes()) var l, c = (s.fullMessageLength[s.fullMessageLength.length - 1] + s.messageLengthSize) & (s.blockLength - 1), f, h i.putBytes(u.substr(0, s.blockLength - c)) for ( var p = 8 * s.fullMessageLength[0], m = 0; m < s.fullMessageLength.length - 1; ++m ) (p += h = ((f = 8 * s.fullMessageLength[m + 1]) / 4294967296) >>> 0), i.putInt32(p >>> 0), (p = f >>> 0) i.putInt32(p) var g = { h0: t.h0, h1: t.h1, h2: t.h2, h3: t.h3, h4: t.h4, h5: t.h5, h6: t.h6, h7: t.h7, } o(g, n, i) var v = a.util.createBuffer() return ( v.putInt32(g.h0), v.putInt32(g.h1), v.putInt32(g.h2), v.putInt32(g.h3), v.putInt32(g.h4), v.putInt32(g.h5), v.putInt32(g.h6), v.putInt32(g.h7), v ) }), s ) }) var u = null, l = false, c = null }, 273: function (t, e, n) { 'use strict' function i() { ;(this.hint = null), (this.animations = []) } t.exports = i var o = null ;(i.instance = function instance() { if (!o) o = new i() return o }), (i.prototype.createAnimation = function t(e) { for (var n = 0; n < this.animations.length; n++) if (this.animations[n].isMatch(e)) return this.animations[n].create(e, this.hint) return null }), (i.prototype.setHint = function t(e) { this.hint = e }), (i.prototype.registerAnimation = function (animation) { this.animations.push(animation) }), (window.AnimationFactory = i) }, 274: function (t, e, n) { 'use strict' function i(t, e) { if (!t) throw new Error('animationInfo is null or undefined') if ( ((this.info = t), (this.hint = e), (this.animatedClass = ['animated']), (this.animatedOnceClass = ['animated-once']), (this.backstageClass = ['backstage']), (this.animationInClass = this.getAnimationClass()), this.isInOutAnimation()) ) this.animationOutClass = this.getAnimationOutClass() ;(this._reqestId = null), (this._timeoutId = null), (this._animationInTimeoutId = null), (this._handleAnimationEnd = this._handleAnimationEnd.bind(this)), (this._playing = null), (this._playNext = null), (this._playNextDuration = null) } function o(t) { if (!t) return null if (t < l) t = l return t + 'ms' } function a(t, e) { if ((e = o(e))) t.style['animation-duration'] = e } function s(t) { switch (t) { case 'Down': return 'Up' case 'Up': return 'Down' default: return t } } var u = n(379) t.exports = i var l = 100, c = 500, f = 'In', h = 'Out' ;(i.isMatch = function () { return true }), (i.create = function (t, e) { return new i(t, e) }), (i.prototype._handleAnimationEnd = function t(e) { if (e.target === this.info.element) { if ( ((this._playing = null), this.info.element.classList.contains(this.animationInClass)) ) this.info.element.classList.remove(this.animationInClass), this.info.element.classList.add(this.animationInClass + '-played') else this.info.element.classList.remove( this.animationInClass + '-played' ) if (this._playNext) { var n = this._playNext, i = this._playNextDuration ;(this._playNext = null), (this._playNextDuration = null), this._play(n, i) } } }), (i.prototype.subscribe = function t() { this.info.element.addEventListener( 'animationend', this._handleAnimationEnd ) }), (i.prototype.unsubscribe = function t() { this.info.element.removeEventListener( 'animationend', this._handleAnimationEnd ) }), (i.prototype.init = function init() { if (this.hint) this.hint.hintBrowser(this.info) this.subscribe(), this.reset() }), (i.prototype.clear = function t() { if (this.info) { if (this.backstageClass) this.info.element.classList.remove.apply( this.info.element.classList, this.backstageClass ) if (this.animatedClass) this.info.element.classList.remove.apply( this.info.element.classList, this.animatedClass ), this.info.element.classList.add.apply( this.info.element.classList, this.animatedOnceClass ) if (this.animationInClass) this.info.element.classList.remove(this.animationInClass) if (this.animationOutClass) this.info.element.classList.remove(this.animationOutClass) if (((this.info.element.style['animation-duration'] = ''), this.hint)) this.hint.removeHint(this.info) if (this._animationInTimeoutId) clearTimeout(this._animationInTimeoutId), (this._animationInTimeoutId = null) ;(this._playing = null), (this._playNext = null), this.unsubscribe() } }), (i.prototype.requestAnimationFrame = function t(e) { return u.requestAnimationFrame(e) }), (i.prototype.cancelAnimationFrame = function t(id) { if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id), void 0 if (window.mozCancelAnimationFrame) window.mozCancelAnimationFrame(id) }), (i.prototype.getAnimationClass = function t() { if (!this.info) return null var e = this.info.name if (this.info.direction) e += this.info.direction return e }), (i.prototype.getAnimationOutClass = function t() { if (!this.info) return null var e = this.info.name if (this.isInOutAnimation()) e = e.slice(0, 0 - f.length) + h if (this.info.direction) e += s(this.info.direction) return e }), (i.prototype.isInOutAnimation = function t() { if (!this.info || !this.info.name || !this.info.animationOut) return false else return this.info.name.indexOf(f) + f.length === this.info.name.length }), (i.prototype.start = function t() { if (this.info) { var e = this.info.delay, n = function () { ;(this._animationInTimeoutId = null), this._play(this.animationInClass, this.info.duration) }.bind(this) if (this._animationInTimeoutId) clearTimeout(this._animationInTimeoutId) if (!e) return n(), void 0 this._animationInTimeoutId = setTimeout(n, e) } }), (i.prototype.startOut = function t() { if (this.info) if (this.animationOutClass) if (this._animationInTimeoutId) return ( clearInterval(this._animationInTimeoutId), (this._animationInTimeoutId = null), void 0 ) else return this._play(this.animationOutClass, c), void 0 }), (i.prototype._play = function t(animation, e) { if (!animation) animation = this.animationInClass if (e) a(this.info.element, e) if (this._playing === animation) return (this._playNext = null), void 0 if (this._playing) return ( (this._playNext = animation), (this._playNextDuration = e), void 0 ) if (((this._playing = animation), this._reqestId)) this.cancelAnimationFrame(this._reqestId) this._reqestId = this.requestAnimationFrame( function () { if (((this._reqestId = null), this.backstageClass)) this.info.element.classList.remove.apply( this.info.element.classList, this.backstageClass ) if (this.animationOutClass) this.info.element.classList.remove(this.animationOutClass) if (this.animationInClass) this.info.element.classList.remove(this.animationInClass) if (animation) this.info.element.classList.add(animation) }.bind(this) ) }), (i.prototype.reset = function t() { if (this.info) { var e = this.info.duration if ( (a(this.info.element, e), (this._playing = null), (this._playNext = null), this.backstageClass) ) this.info.element.classList.add.apply( this.info.element.classList, this.backstageClass ) if (this.animatedClass) this.info.element.classList.add.apply( this.info.element.classList, this.animatedClass ) } }), (i.prototype.needOutAnimation = function t() { if (!this.isInOutAnimation()) return false if (this._animationInTimeoutId) return true else return ( (this.info.element.classList.contains(this.animationInClass) || this.info.element.classList.contains( this.animationInClass + '-played' )) && !this.info.element.classList.contains(this.backstageClass[0]) ) }), (i.prototype.getTime = function t() { if (!this.info) return 0 var e = this.info.duration, n = this.info.delay if (isNaN(n)) n = 0 return n + e }), (i.prototype.getOutTime = function t() { if (!this.info || !this.isInOutAnimation()) return 0 else return c }) }, 275: function (t, e, n) { 'use strict' function CountdownUpdater(t) { ;(this.$dom = t), (this.countdownCommon = new CountdownCommon(t)) } t.exports = CountdownUpdater var CountdownCommon = n(55) ;(CountdownUpdater.prototype.startUpdate = function (t) { var e = this.getUpdateTimeout() if (e) this.update(t, true), setInterval(this.update.bind(this), e, t) }), (CountdownUpdater.prototype.getUpdateTimeout = function () { if (this.countdownCommon.getAfterCountFinished()) return 0 var countdownType = this.countdownCommon.getType() if ('to-date' === countdownType || 'to-time' === countdownType) return 350 if ('to-number' === countdownType) { var t = this.countdownCommon.getFrequency(), e = CountdownCommon.timeStringToMilliseconds(t) return (e = Math.max(e, 0)), (e = Math.min(e, 350)) } return 0 }), (CountdownUpdater.prototype.getAnimationProps = function (t, e) { if (e) return { animation: 'none' } else return { animation: ('runtime' === t && this.countdownCommon.getCountAnimation()) || 'none', animationSpeed: this.getUpdateTimeout(), } }), (CountdownUpdater.prototype.update = function (t, e) { if (!this.countdownCommon.getAfterCountFinished()) { var countdownType = this.countdownCommon.getType() if ('to-date' === countdownType || 'to-time' === countdownType) this.updateDateAndTime(t, e) if ('to-number' === countdownType) this.updateNumber(t, e) } }), (CountdownUpdater.prototype.updateDateAndTime = function (t, e) { var n = this.countdownCommon.getDate(), diff = this.getTimeDiff(n) if (!this.afterCount(diff, t)) { var props = this.getAnimationProps(t, e) this.countdownCommon.setValue('years', diff.years, false, props), this.countdownCommon.setValue('days', diff.days, false, props), this.countdownCommon.setValue('hours', diff.hours, false, props), this.countdownCommon.setValue( 'minutes', diff.minutes, false, props ), this.countdownCommon.setValue( 'seconds', diff.seconds, false, props ), this.countdownCommon.showLabel('years', !!diff.years), this.countdownCommon.showLabel('days', !!diff.days) } }), (CountdownUpdater.prototype.updateNumber = function (t, e) { var n = this.countdownCommon.getNumber(), i = this.countdownCommon.getStartTime(), o = this.countdownCommon.getFrequency(), diff = this.countdownCommon.calcNumber(n, i, o) if ('per-visitor' === this.countdownCommon.getFor()) { var a = this.countdownCommon.getTimerId() ;(i = this.getStartDate(a)), (diff = this.countdownCommon.calcNumber(n, i, o)) } if (!this.afterCount(diff, t)) { var props = this.getAnimationProps(t, e) this.countdownCommon.setValue('numbers', diff, false, props) } }), (CountdownUpdater.prototype.getTimeDiff = function (t) { if ('everyone' === this.countdownCommon.getFor()) return this.countdownCommon.timeDiff(t) var e = this.getStartDate(), n = this.countdownCommon.getTimeLeft() return ( (t = this.countdownCommon.parseTime(n, e)), this.countdownCommon.timeDiff(t) ) }), (CountdownUpdater.prototype.getStartDate = function () { var t = this.countdownCommon.getTimerKey(), e = localStorage.getItem(t) if (e) return new Date(e) var n = new Date() return localStorage.setItem(t, n.toUTCString()), n }), (CountdownUpdater.prototype.afterCount = function (diff, t) { var e = this.countdownCommon.getDirection(), n = this.countdownCommon.getAfterCount() if ( ((t = t || ''), 'none' !== n && 'down' === e && CountdownCommon.isEmptyDiff(diff)) ) { if ('message' === n) this.showMessage() if ('redirect' === n) if ( (this.$dom.find('.u-countdown-message').text('Redirecting...'), this.showMessage(), 'preview' !== t) ) { var i = this.countdownCommon.getRedirectUrl() window.location.href = i } if ('preview' !== t) this.countdownCommon.setAfterCountFinished() return true } return false }), (CountdownUpdater.prototype.showMessage = function () { if (this.$dom.find('.u-countdown-message').is('.u-hidden')) this.$dom.find('.u-countdown-wrapper').addClass('u-invisible'), this.$dom.find('.u-countdown-message').removeClass('u-hidden') }), (CountdownUpdater.prototype.hideMessage = function () { if (this.$dom.find('.u-countdown-message').not('.u-hidden')) this.$dom.find('.u-countdown-wrapper').removeClass('u-invisible'), this.$dom.find('.u-countdown-message').addClass('u-hidden') }), (CountdownUpdater.findAll = function () { return $('.u-countdown') }) }, 276: function (t, e, n) { 'use strict' function TabsControl(t) { ;(this.tabsSelector = '.u-tabs'), (this.activeClass = 'u-tab-active'), (this.activeSelector = '.' + this.activeClass), (this.activeLinkClass = 'active'), (this.activeLinkSelector = '.' + this.activeLinkClass), (this.tabListSelector = '.u-tab-list'), (this.tabContentSelector = '.u-tab-content'), (this.tabLinkSelector = '.u-tab-link'), (this.tabPaneSelector = '.u-tab-pane'), (this._tabLink = this._getLink(t)), (this._tabList = this._tabLink.closest(this.tabListSelector)), (this._tabContent = this._tabLink .closest(this.tabsSelector) .children(this.tabContentSelector)) } ;(TabsControl.prototype.show = function () { var link = this._tabLink if (!link.is(this.activeLinkSelector)) this._removeActiveLink(), this._addActiveLink(link), this._activateTabPane(link) }), (TabsControl.prototype._getLink = function (t) { if (t.is(this.tabPaneSelector)) return this._findLinkByPane(t) else return t.is(this.tabLinkSelector) ? t : t.children(this.tabLinkSelector) }), (TabsControl.prototype._findLinkByPane = function (pane) { var t = pane.attr('aria-labelledby'), tabList return pane .closest(this.tabsSelector) .children(this.tabListSelector) .find('#' + t) }), (TabsControl.prototype._removeActiveLink = function () { var t = this._getActiveLink() t.removeClass(this.activeLinkClass), t.attr('aria-selected', false), t.find('input').removeAttr('checked').prop('checked', false) }), (TabsControl.prototype._getActiveLink = function () { return this._tabList.find(this.activeLinkSelector) }), (TabsControl.prototype._addActiveLink = function (link) { link.addClass(this.activeLinkClass), link.attr('aria-selected', true), link.find('input').attr('checked', '').prop('checked', true) }), (TabsControl.prototype._activateTabPane = function (link) { var t, e this._tabContent .children(this.activeSelector) .removeClass(this.activeClass), this.getTabPane(link).addClass(this.activeClass) }), (TabsControl.prototype.getTabPane = function (t) { var link, e = this._getLink(t).attr('href') return this._tabContent.children(e) }), (TabsControl.prototype.getTabLink = function () { return this._tabLink }), (TabsControl.prototype.removeId = function () { this._tabList.find(this.tabLinkSelector).removeAttr('id'), this._tabContent.children().removeAttr('id') }), (t.exports = TabsControl), (window.TabsControl = TabsControl) }, 286: function (t, e, n) { 'use strict' function Dialog(t, e) { ;(this._openClass = 'u-dialog-open'), (this._dialogBlockClass = 'u-dialog-block'), (this._dialogBlockSelector = '.' + this._dialogBlockClass), (this._dialog = t.closest(this._dialogBlockSelector)), (this._btn = e) } function i(t) { if (!window._responsive) return false var e = t.find('.u-dialog'), n = window._responsive.mode || 'XL' return e.is('.u-hidden, .u-hidden-' + n.toLowerCase()) } ;(t.exports = Dialog), (Dialog.prototype.open = function (t) { this._dialog.each( function (e, block) { var n = $(block) if (!i(n)) { if ((n.addClass(this._openClass), 'function' == typeof t)) t(n) n.trigger('opened.np.dialog', [this, this._btn]) } }.bind(this) ) }), (Dialog.prototype.close = function () { this._dialog.removeClass(this._openClass), this._dialog.trigger('closed.np.dialog', [this]) }), (Dialog.prototype.getInterval = function () { return this._dialog.attr('data-dialog-show-interval') || 3e3 }) }, 289: function (t, e) {}, 3537: function (t, e, n) { 'use strict' var FormMessage = (t.exports = {}), i = n(17) ;(FormMessage.showSuccess = function t(form) { form.trigger('reset') var e = form.find('.u-form-send-success'), n = e.find('.u-form-send-message-close') if (!n.length) (n = i('<a href="#" class="u-form-send-message-close">x</a>')), e.append(n) e.show(), n.one('click', function (t) { t.preventDefault(), e.hide() }), form.find('input[type="submit"]').prop('disabled', false) }), (FormMessage.showError = function t(form, e, n, o) { var a = e ? form.find('.u-form-send-error').clone() : form.find('.u-form-send-error') if (e) { if (n) if (560 === n && o) e = 'Unable to submit the Contact Form, as the submission email is not verified.\n' + '</br></br>' + 'If you are a site administrator, please open your inbox and confirm the ' + o + ' email in the message. Make sure also to check your spam folder.' a.html(e), form.find('.u-form-send-error').parent().append(a) } var s = a.find('.u-form-send-message-close') if (!s.length) (s = i('<a href="#" class="u-form-send-message-close">x</a>')), a.append(s) s.one('click', function (t) { if ((t.preventDefault(), a.hide(), e)) a.remove() }), a.show(), form.find('input[type="submit"]').prop('disabled', false) }) }, 3538: function (t, e, n) { 'use strict' var Const = (t.exports = {}) ;(Const.formActionUrl = [ 'https://forms.', 'n', 'i', 'c', 'e', 'p', 'a', 'g', 'e', 'srv.com/', ].join('')), (Const.stripeCheckoutUrl = 'https://service.nicepagesrv.com/stripe/v1/stripe-checkout'), (Const.emailCheckoutUrl = 'https://service.nicepagesrv.com/place-email-order/v1/place-email-order') }, 3539: function (t, e, n) { 'use strict' var Utils = t.exports ;(Utils.getQueryParam = function (t) { var e = window.location.search, n return new URLSearchParams(e).get(t) }), (Utils.animationsEnabled = function () { var t = Utils.getQueryParam('np-animations') || 'true' return 'false' !== t && '0' !== t }) }, 3540: function (t, e, n) { 'use strict' function i(t) { this.setDialog(t) } ;(t.exports = i), (i.prototype.setDialog = function (t) { this.$dom = (t && t.find('.u-payment-services')) || $() }), (i.prototype.orderApproved = function t() { var e = this.$dom.attr('data-payment-order-approved-message') || '' this.displayMessage( e || 'Your order has been approved. Thank you!', 'payment-success' ) }), (i.prototype.orderError = function t() { var e = this.$dom.attr('data-payment-order-cancelled-message') || '' this.displayMessage( e || 'Unable to process your order. Please try again later.', 'payment-error' ) }), (i.prototype.stripeError = function t() { this.displayMessage( 'Unable to process your order. If you are the Site Author, please ensure your Stripe account is active and eligible to accept payments.', 'payment-error' ) }), (i.prototype.emailError = function t() { this.displayMessage('Unable to process your order.', 'payment-error') }), (i.prototype.configError = function t() { this.displayMessage( 'Invalid configuration. Please reset the Purchase button.', 'payment-error' ) }), (i.prototype.serviceError = function t() { this.displayMessage( 'Set the PayPal Client ID in the Payment Settings.', 'payment-error' ) }), (i.prototype.productError = function t() { this.displayMessage( 'Set the Title, Price, and Currency for the Product.', 'payment-error' ) }), (i.prototype.cartEmpty = function t() { this.displayNote('Cart is empty.', 'cart-empty') }), (i.prototype.productOutOfStock = function productOutOfStock(t) { var e = t ? 'Some products out of stock.<br />Please remove these from your cart.' : '' this.displayNote(e, 'product-out-of-stock-message') }), (i.prototype.displayNote = function t(e, n) { if (e) this.$dom.after('<div class="' + n + '"><p>' + e + '</p></div>') if ( (this.$dom.hide(), this.$dom.parents('.u-dialog').css('min-height', 'auto'), 'cart-empty' === n) ) this.$dom .parent() .find('>:not(.' + n + ')') .hide() }), (i.prototype.displayMessage = function t(e, n) { this.$dom.empty(), this.$dom.append('<div class="' + n + '">' + e + '</div>'), this.$dom.css('height', '') }), (window.PaymentMessage = i) }, 3541: function (t, e, n) { 'use strict' function i(t) { this.$btn = t } function o(t, type) { var e = 'desc' === type ? 250 : 127 return (t || '').substring(0, e) } ;(t.exports = i), (i.prototype.getProducts = function t() { var product = this.getProduct() if (!product) return null else return [product] }), (i.prototype.getProduct = function t() { var e = this.$btn.attr('data-product') if (!e) return null var product = JSON.parse(e) if (!(product && product.title && product.price && product.currency)) return null if ( ((product.title = o(product.title)), (product.description = o(product.description, 'desc')), (product.sku = o(product.sku)), (product.hiddenButtons = this.$btn.attr('data-paypal-hidden-buttons') || ''), !product.quantity) ) product.quantity = 1 return product }), (window.PaymentProduct = i) }, 3542: function (t, e, n) { 'use strict' function i() { this.pageName = 'thank-you-page' } ;(t.exports = i), (i.prototype.isThankYouPage = function t() { return ( -1 !== window.location.href.indexOf(window._npThankYouUrl || this.pageName) ) }), (i.prototype.goToThankYouPage = function t() { window.location.href = window._npThankYouUrl || window.location.origin + '/' + this.pageName + '.html' }), (window.PaymentThankYou = i) }, 3543: function (t, e, n) { 'use strict' function i() { ;(this._result = null), (this._queue = null) } t.exports = i var instance = null ;(i.getModel = function () { if (!instance) instance = new i() return instance }), (i.prototype.load = function (t) { var e = document.body.getAttribute('data-include-products') if (e && /false/.test(e)) return t(null, null) if (this._result) return t(null, this._result) var n = document.body.getAttribute('data-path-to-root') || './', i = window._npProductsJsonUrl if (!i) i = n + 'products/products.json' if (!this._queue) this._queue = fetch(i).then(function (t) { if (!t.ok) return Promise.reject(t) else return t.json() }) this._queue .then( function (e) { ;(this._result = e), t(null, e) }.bind(this) ) .catch(function (e) { t(e, null) }) }), (window.ProductsModel = i) }, 3544: function (t, e, n) { 'use strict' var i = t.exports ;(i.findNearestCategories = function (list) { var categories = list .closest('body') .find('.u-categories[data-products-datasource="site"]') if (!categories.length) return $() else return categories }), (i.findNearestProducts = function (categories) { if (!categories.is('[data-products-datasource="site"]')) return $() var t = '.u-products[data-products-datasource="site"]' return categories.closest('body').find(t) }), (i.getActiveCategory = function (list) { var t = list.find('.u-select-categories') if (t.length) return t.val() || '' var categories, e = i .findNearestCategories(list) .eq(0) .find('.u-category-link.active') .attr('data-category') || '' if (e) return e var n = list.attr('data-site-category') || '' if (n) return n else return '' }), (i.setActiveCategory = function (list, id) { list.find('.u-category-link').removeClass('active') var t, e = list .find('.u-categories-item') .slice(1) .filter(':not(.u-expand-leaf)') e.removeClass('u-expand-open').addClass('u-expand-closed'), e .find('> .u-categories-item-content svg use') .attr('xlink:href', '#icon-categories-closed') var n = list.find('[data-category="' + (id || '') + '"]'), i = n.closest('.u-categories-item') n.addClass('active') var o = n.parents('.u-categories-item:not(.u-expand-leaf)') o .removeClass('u-expand-closed') .addClass('u-expand-open') .css('display', ''), o .find('> .u-categories-item-content svg use') .attr('xlink:href', '#icon-categories-open'), i.css('display', ''), i.find('.u-categories-item').css('display', '') var a = i.find('.u-categories-item:not(.u-expand-leaf)') a.removeClass('u-expand-closed').addClass('u-expand-open'), a .find('> .u-categories-item-content svg use') .attr('xlink:href', '#icon-categories-open') }), (window.CategoryView = i) }, 358: function (t, e, n) { 'use strict' var ProductsUtils = t.exports ;(ProductsUtils.sort = function sort(items, sorting, t) { var e = new Intl.Collator(t, { numeric: true, sensitivity: 'base' }), n = sorting.prop || 'title', i = sorting.order || 'asc' return ( items.sort(function (t, o) { if (Array.isArray(t) && 2 === t.length) t = t[1] if (Array.isArray(o) && 2 === o.length) o = o[1] return 'desc' === i ? e.compare(o[n], t[n]) : e.compare(t[n], o[n]) }), n + '-' + i ) }), (ProductsUtils.categoryFilter = function filter(items, t) { if (((items = items || []), !t)) return items if ('featured' === t) return items.filter(function (t) { if (Array.isArray(t) && 2 === t.length) t = t[1] return t.isFeatured }) else return items.filter(function (e) { if (Array.isArray(e) && 2 === e.length) e = e[1] return e.categories && e.categories.includes(t) }) }) }, 367: function (t, e) { t.exports = [ { name: 'United States dollar', code: 'USD', symbol: '$', locale: 'en-US', }, { name: 'Euro', code: 'EUR', symbol: '€', locale: 'en-EU' }, { name: 'Australian dollar', code: 'AUD', symbol: '$', locale: 'en-AU' }, { name: 'Brazilian real', code: 'BRL', symbol: 'R$', locale: 'pt-BR' }, { name: 'Canadian dollar', code: 'CAD', symbol: '$', locale: 'en-CA' }, { name: 'Chinese Renmenbi', code: 'CNY', symbol: '¥', locale: 'zh-CN' }, { name: 'Czech koruna', code: 'CZK', symbol: 'Kč', locale: 'cs-CZ' }, { name: 'Danish krone', code: 'DKK', symbol: 'kr.', locale: 'da-DK' }, { name: 'Hong Kong dollar', code: 'HKD', symbol: '$', locale: 'zh-HK' }, { name: 'Hungarian forint', code: 'HUF', symbol: 'ƒ', locale: 'hu-HU' }, { name: 'Israeli new shekel', code: 'ILS', symbol: '₪', locale: 'he-IL' }, { name: 'Japanese yen', code: 'JPY', symbol: '¥', locale: 'ja-JP' }, { name: 'Malaysian ringgit', code: 'MYR', symbol: 'RM', locale: 'ms-MY' }, { name: 'Mexican peso', code: 'MXN', symbol: '$', locale: 'es-MX' }, { name: 'New Taiwan dollar', code: 'TWD', symbol: '$', locale: 'zh-TW' }, { name: 'New Zealand dollar', code: 'NZD', symbol: '$', locale: 'en-NZ' }, { name: 'Norwegian krone', code: 'NOK', symbol: 'kr', locale: 'nb-NO' }, { name: 'Philippine peso', code: 'PHP', symbol: '₱', locale: 'en-PH' }, { name: 'Polish złoty', code: 'PLN', symbol: 'zł', locale: 'pl-PL' }, { name: 'Pound sterling', code: 'GBP', symbol: '£', locale: 'en-GB' }, { name: 'Singapore dollar', code: 'SGD', symbol: '$', locale: 'en-SG' }, { name: 'Swedish krona', code: 'SEK', symbol: 'kr', locale: 'sv-SE' }, { name: 'Swiss franc', code: 'CHF', symbol: 'CHF', locale: 'fr-CH', localesList: ['fr-CH', 'de-CH', 'it-CH'], }, { name: 'Thai baht', code: 'THB', symbol: '฿', locale: 'th-TH' }, { name: 'United Arab Emirates dirham', code: 'AED', symbol: 'د.إ', locale: 'en-AE', }, { name: 'Afghan Afghani', code: 'AFN', symbol: '؋', locale: 'ps-AF' }, { name: 'Albanian lek', code: 'ALL', symbol: 'L', locale: 'sq-AL' }, { name: 'Armenian Dram', code: 'AMD', symbol: '֏', locale: 'hy-AM' }, { name: 'Netherlands Antillean guilder', code: 'ANG', symbol: 'ƒ', locale: 'nl-CW', }, { name: 'Angolan Kwanza', code: 'AOA', symbol: 'Kz', locale: 'pt-AO' }, { name: 'Argentine Peso', code: 'ARS', symbol: '$', locale: 'es-AR' }, { name: 'Aruban Florin', code: 'AWG', symbol: 'Afl', locale: 'nl-AW' }, { name: 'Azerbaijani Manat', code: 'AZN', symbol: '₼', locale: 'az-Latn-AZ', }, { name: 'Bosnia and Herzegovina Convertible Mark', code: 'BAM', symbol: 'KM', locale: 'bs-Latn-BA', }, { name: 'Barbados dollar', code: 'BBD', symbol: '$', locale: 'en-BB' }, { name: 'Bangladeshi taka', code: 'BDT', symbol: '৳', locale: 'bn-BD' }, { name: 'Bulgarian lev', code: 'BGN', symbol: 'лв', locale: 'bg-BG' }, { name: 'Burundian franc', code: 'BIF', symbol: 'Fbu', locale: 'fr-BI' }, { name: 'Bermudian dollar', code: 'BMD', symbol: '$', locale: 'en-BM' }, { name: 'Brunei dollar', code: 'BND', symbol: '$', locale: 'ms-BN' }, { name: 'Bolivian boliviano', code: 'BOB', symbol: 'Bs.', locale: 'es-BO', }, { name: 'Bahamian dollar', code: 'BSD', symbol: '$', locale: 'en-BS' }, { name: 'Botswana pula', code: 'BWP', symbol: 'P', locale: 'en-BW' }, { name: 'Belarusian ruble', code: 'BYN', symbol: 'Br', locale: 'be-BY' }, { name: 'Belize dollar', code: 'BZD', symbol: '$', locale: 'en-BZ' }, { name: 'Congolese franc', code: 'CDF', symbol: 'FC', locale: 'fr-CD' }, { name: 'Chilean peso', code: 'CLP', symbol: '$', locale: 'es-CL' }, { name: 'Colombian peso', code: 'COP', symbol: '$', locale: 'es-CO' }, { name: 'Costa Rican colón', code: 'CRC', symbol: '₡', locale: 'es-CR' }, { name: 'Cape Verdean escudo', code: 'CVE', symbol: '$', locale: 'pt-CV', }, { name: 'Djiboutian franc', code: 'DJF', symbol: 'Fdj', locale: 'fr-DJ' }, { name: 'Dominican peso', code: 'DOP', symbol: '$', locale: 'es-DO' }, { name: 'Algerian dinar', code: 'DZD', symbol: 'د.ج', locale: 'ar-DZ' }, { name: 'Egyptian pound', code: 'EGP', symbol: 'ج.م', locale: 'ar-EG' }, { name: 'Ethiopian birr', code: 'ETB', symbol: 'Br', locale: 'am-ET' }, { name: 'Fijian dollar', code: 'FJD', symbol: '$', locale: 'en-FJ' }, { name: 'Falkland Islands pound', code: 'FKP', symbol: '£', locale: 'en-FK', }, { name: 'Georgian Lari', code: 'GEL', symbol: '₾', locale: 'en-GE' }, { name: 'Gibraltar Pound', code: 'GIP', symbol: '£', locale: 'en-GI' }, { name: 'Gambian Dalasi', code: 'GMD', symbol: 'D', locale: 'en-GM' }, { name: 'Guinean Franc', code: 'GNF', symbol: 'FG', locale: 'en-GN' }, { name: 'Guatemalan Quetzal', code: 'GTQ', symbol: 'Q', locale: 'en-GT' }, { name: 'Guyanese Dollar', code: 'GYD', symbol: '$', locale: 'en-GY' }, { name: 'Honduran Lempira', code: 'HNL', symbol: 'L', locale: 'en-HN' }, { name: 'Haitian Gourde', code: 'HTG', symbol: 'G', locale: 'en-HT' }, { name: 'Indonesian Rupiah', code: 'IDR', symbol: 'Rp', locale: 'en-ID' }, { name: 'Indian Rupee', code: 'INR', symbol: '₹', locale: 'en-IN' }, { name: 'Icelandic Krona', code: 'ISK', symbol: 'kr', locale: 'en-IS' }, { name: 'Jamaican Dollar', code: 'JMD', symbol: 'J$', locale: 'en-JM' }, { name: 'Kenyan Shilling', code: 'KES', symbol: 'KSh', locale: 'en-KE' }, { name: 'Kazakhstani Tenge', code: 'KZT', symbol: '₸', locale: 'en-KZ' }, { name: 'Cambodian Riel', code: 'KHR', symbol: '៛', locale: 'en-KH' }, { name: 'Comorian Franc', code: 'KMF', symbol: 'CF', locale: 'en-KM' }, { name: 'South Korean Won', code: 'KRW', symbol: '₩', locale: 'en-KR' }, { name: 'Cayman Islands Dollar', code: 'KYD', symbol: '$', locale: 'en-KY', }, { name: 'Lao Kip', code: 'LAK', symbol: '₭', locale: 'en-LA' }, { name: 'Lebanese Pound', code: 'LBP', symbol: 'ل.ل', locale: 'en-LB' }, { name: 'Sri Lankan Rupee', code: 'LKR', symbol: 'Rs', locale: 'en-LK' }, { name: 'Liberian Dollar', code: 'LRD', symbol: '$', locale: 'en-LR' }, { name: 'Lesotho Loti', code: 'LSL', symbol: 'L', locale: 'en-LS' }, { name: 'Moroccan Dirham', code: 'MAD', symbol: 'د.م.', locale: 'en-MA' }, { name: 'Moldovan Leu', code: 'MDL', symbol: 'L', locale: 'en-MD' }, { name: 'Malagasy ariary', code: 'MGA', symbol: 'Ar', locale: 'mg-MG' }, { name: 'Macedonian denar', code: 'MKD', symbol: 'ден', locale: 'mk-MK' }, { name: 'Myanmar kyat', code: 'MMK', symbol: 'K', locale: 'my-MM' }, { name: 'Mongolian tögrög', code: 'MNT', symbol: '₮', locale: 'mn-MN' }, { name: 'Macanese pataca', code: 'MOP', symbol: 'P', locale: 'zh-MO' }, { name: 'Mauritian rupee', code: 'MUR', symbol: '₨', locale: 'en-MU' }, { name: 'Maldivian rufiyaa', code: 'MVR', symbol: 'Rf', locale: 'dv-MV' }, { name: 'Malawian kwacha', code: 'MWK', symbol: 'MK', locale: 'en-MW' }, { name: 'Mozambican metical', code: 'MZN', symbol: 'MT', locale: 'pt-MZ', }, { name: 'Namibian dollar', code: 'NAD', symbol: '$', locale: 'en-NA' }, { name: 'Nigerian naira', code: 'NGN', symbol: '₦', locale: 'en-NG' }, { name: 'Nicaraguan córdoba', code: 'NIO', symbol: 'C$', locale: 'es-NI', }, { name: 'Nepalese rupee', code: 'NPR', symbol: '₨', locale: 'ne-NP' }, { name: 'Panamanian balboa', code: 'PAB', symbol: 'B/.', locale: 'es-PA', }, { name: 'Peruvian sol', code: 'PEN', symbol: 'S/.', locale: 'es-PE' }, { name: 'Papua New Guinean kina', code: 'PGK', symbol: 'K', locale: 'en-PG', }, { name: 'Pakistani rupee', code: 'PKR', symbol: '₨', locale: 'ur-PK' }, { name: 'Paraguayan guaraní', code: 'PYG', symbol: '₲', locale: 'es-PY' }, { name: 'Qatari riyal', code: 'QAR', symbol: '﷼', locale: 'ar-QA' }, { name: 'Romanian leu', code: 'RON', symbol: 'lei', locale: 'ro-RO' }, { name: 'Serbian dinar', code: 'RSD', symbol: 'дин.', locale: 'sr-RS' }, { name: 'Russian ruble', code: 'RUB', symbol: '₽', locale: 'ru-RU' }, { name: 'Rwandan franc', code: 'RWF', symbol: 'FRw', locale: 'rw-RW' }, { name: 'Saudi riyal', code: 'SAR', symbol: '﷼', locale: 'ar-SA' }, { name: 'Solomon Islands dollar', code: 'SBD', symbol: '$', locale: 'en-SB', }, { name: 'Seychellois Rupee', code: 'SCR', symbol: '₨', locale: 'en-SC' }, { name: 'Saint Helena Pound', code: 'SHP', symbol: '£', locale: 'en-SH' }, { name: 'Sierra Leonean Leone', code: 'SLE', symbol: 'Le', locale: 'en-SL', }, { name: 'Somali Shilling', code: 'SOS', symbol: 'S', locale: 'en-SO' }, { name: 'Surinamese Dollar', code: 'SRD', symbol: '$', locale: 'en-SR' }, { name: 'São Tomé and Príncipe Dobra', code: 'STD', symbol: 'Db', locale: 'en-ST', }, { name: 'Swazi Lilangeni', code: 'SZL', symbol: 'L', locale: 'en-SZ' }, { name: 'Tajikistani Somoni', code: 'TJS', symbol: 'ЅМ', locale: 'en-TJ', }, { name: "Tongan Pa'anga", code: 'TOP', symbol: 'T$', locale: 'en-TO' }, { name: 'Turkish Lira', code: 'TRY', symbol: '₺', locale: 'en-TR' }, { name: 'Trinidad and Tobago Dollar', code: 'TTD', symbol: 'TT$', locale: 'en-TT', }, { name: 'Tanzanian Shilling', code: 'TZS', symbol: 'TSh', locale: 'en-TZ', }, { name: 'Ukrainian Hryvnia', code: 'UAH', symbol: '₴', locale: 'en-UA' }, { name: 'Ugandan Shilling', code: 'UGX', symbol: 'USh', locale: 'en-UG' }, { name: 'Uruguayan Peso', code: 'UYU', symbol: '$U', locale: 'en-UY' }, { name: 'Uzbekistani Som', code: 'UZS', symbol: 'лв', locale: 'en-UZ' }, { name: 'Vietnamese Dong', code: 'VND', symbol: '₫', locale: 'en-VN' }, { name: 'Vanuatu Vatu', code: 'VUV', symbol: 'VT', locale: 'en-VU' }, { name: 'Samoan Tala', code: 'WST', symbol: 'WS$', locale: 'en-WS' }, { name: 'Central African CFA Franc', code: 'XAF', symbol: 'FCFA', locale: 'en-CM', }, { name: 'East Caribbean Dollar', code: 'XCD', symbol: 'EC$', locale: 'en-DM', }, { name: 'West African CFA Franc', code: 'XOF', symbol: 'CFA', locale: 'en-BJ', }, { name: 'CFP Franc', code: 'XPF', symbol: '₣', locale: 'en-PF' }, { name: 'Yemeni Rial', code: 'YER', symbol: '﷼', locale: 'en-YE' }, { name: 'South African Rand', code: 'ZAR', symbol: 'R', locale: 'en-ZA' }, { name: 'Zambian kwacha', code: 'ZMW', symbol: 'ZK', locale: 'en-ZM' }, { name: 'Kyrgyzstani Som', code: 'KGS', symbol: 'с', locale: 'en-KG' }, ] }, 379: function (t, e, n) { 'use strict' var i t.exports.requestAnimationFrame = function t(e) { if (window.requestAnimationFrame) return window.requestAnimationFrame(e) if (window.mozRequestAnimationFrame) return window.mozRequestAnimationFrame(e) if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(e) if (window.msRequestAnimationFrame) return window.msRequestAnimationFrame(e) else return e(), void 0 } }, 380: function (t, e, n) { 'use strict' function i(t, section) { if ( ((this.element = t), (this.section = section), (this.name = t.getAttribute('data-animation-name')), (this.event = 'scroll'), (this.durationRaw = t.getAttribute('data-animation-duration')), (this.duration = Number(this.durationRaw)), isNaN(this.duration) || !isFinite(this.duration) || this.duration < 0) ) this.duration = 0 var e = t.getAttribute('data-animation-event') if (e) this.event = e if ( ((this.delayRaw = t.getAttribute('data-animation-delay')), (this.delay = 0), this.delayRaw) ) if ( ((this.delay = Number(this.delayRaw)), isNaN(this.delay) || !isFinite(this.delay) || this.delay < 0) ) this.delay = 0 var n = t.getAttribute('data-animation-cycle') if (n) if (((n = Number(n)), !isNaN(n))) this.animationCycle = n var i = t.getAttribute('data-animation-direction') if (i && 'customAnimationIn' !== this.name) this.direction = i ;(this.animationOut = !t.hasAttribute('data-animation-out') || parseFloat(t.getAttribute('data-animation-out'))), (this.infinite = t.classList.contains('infinite')) } ;(t.exports = i), (window.AnimationInfo = i) }, 381: function (t, e, n) { 'use strict' function CountdownAnimate(t) { if ( ((this.$dom = t), (this.$html = this.$dom.find('.counter-animation')), !this.$html.length) ) { var e = this.$dom.text() ;(this.$html = $( '<div class="counter-animation" style="display: none;"></div>' )), this.$html.append('<div class="counter-wrapper"></div>'), this.$html .find('.counter-wrapper') .append('<div class="counter-html"></div>'), this.$html .find('.counter-html') .append($('<div class="old-val"></div>')), this.$html .find('.counter-html') .append($('<div class="new-val"></div>')), this.$dom.empty(), this.$dom.append($('<span class="start-val"></span>').text(e)), this.$dom.append(this.$html) } this.onResize(), $(window).on( 'resize', function () { this.onResize() }.bind(this) ) } ;(t.exports = CountdownAnimate), (CountdownAnimate.prototype.rollNumber = function (t, props) { if (!this.$dom.is('.updating')) { this.$dom.addClass('updating') var e = this.getOldVal(), n = this.$dom.find('.start-val'), i = this.$dom.find('.counter-animation'), o = 350 if (props.animationSpeed) o = props.animationSpeed > 20 ? props.animationSpeed - 20 : 0 this.$html.find('.old-val').text(e), this.$html.find('.new-val').text(t), this.$html.find('.counter-html').css('top', 0), requestAnimationFrame( function () { n.css('display', 'none'), i.css('display', 'flex') }.bind(this) ), this.$html.find('.counter-html').animate( { top: -this.height + 'px' }, o, 'swing', function () { requestAnimationFrame( function () { n.text(t), n.css('display', 'inline-block'), i.css('display', 'none'), this.$dom.removeClass('updating') }.bind(this) ) }.bind(this) ) } }), (CountdownAnimate.prototype.onResize = function () { ;(this.height = this.$dom.height()), this.$html.find('.counter-wrapper').css('height', this.height + 'px') }), (CountdownAnimate.prototype.getOldVal = function () { return this.$dom.find('.start-val').text() }) }, 410: function (t, e, n) { 'use strict' function HorizontalLayoutSlider(slider, t) { if (slider && slider.length) { var e = slider.children('.u-gallery-inner, .u-repeater') if (e.length) { this.viewport = e var n = slider.children('.u-gallery-nav') if (n.length) { if ( ((this.controls = n), (this.data = { offset: 0, width: 0, scrollWidth: 0, maxOffset: 0, }), t) ) (this._onScroll = this.onScroll.bind(this)), (this._onlazyloaded = this.onlazyloaded.bind(this)), this.viewport.scroll(this._onScroll), this.viewport.find('img.lazyload').each( function (t, e) { e.onload = this._onlazyloaded }.bind(this) ) if ((this.updateInnerData(), t)) this.updateControls() } } } } ;(t.exports = HorizontalLayoutSlider), (HorizontalLayoutSlider.prototype.onScroll = function () { requestAnimationFrame(this.updateControls.bind(this)) }), (HorizontalLayoutSlider.prototype.onlazyloaded = function t() { this.updateInnerData(), this.updateControls() }), (HorizontalLayoutSlider.prototype.updateControls = function () { this.updateOffset() }), (HorizontalLayoutSlider.prototype.updateOffset = function () { this.data.offset = this.viewport.scrollLeft() }), (HorizontalLayoutSlider.prototype.updateInnerData = function () { if (this.data && this.viewport && this.viewport[0]) { ;(this.data.scrollWidth = this.viewport[0].scrollWidth), (this.data.width = this.viewport.innerWidth()) var t = this.viewport.scrollLeft() this.scrollToEnd(), (this.data.maxOffset = this.viewport.scrollLeft()), this.viewport.scrollLeft(t) } }), (HorizontalLayoutSlider.prototype.navigate = function (t) { if (!t.hasClass('u-hidden') && this.viewport) { this.updateInnerData(), this.updateOffset() var e = 1 if ('undefined' != typeof app) e = app.editor.preview.scale var n = this.data.offset, i = this.data.width - 50, o = this.viewport .children() .toArray() .map(function (t) { return n + Math.round($(t).position().left / e) }) o.push(this.data.maxOffset + this.data.width) var a = function (t) { return o.reduce(function (e, n) { return Math.abs(n - t) < Math.abs(e - t) ? n : e }) } if (t.hasClass('u-gallery-nav-next')) { var s = a(n + i) if (s >= this.data.scrollWidth) s = 0 this.viewport[0].scrollTo({ left: s, behavior: 'smooth' }) } else if (n >= 0) { var u = a(n + this.data.width - i) - this.data.width if (Math.abs(u) === this.data.width) u = this.data.scrollWidth this.viewport[0].scrollTo({ left: u, behavior: 'smooth' }) } } }), (HorizontalLayoutSlider.prototype.scrollToEnd = function () { if (this.viewport && this.data) this.viewport.scrollLeft(this.data.scrollWidth) }), (window._npHorizontalLayoutSlider = HorizontalLayoutSlider) }, 411: function (t, e, n) { 'use strict' var i = (t.exports = function t() { ;(this.expr = null), (this.tokens = []) }) ;(i.prototype.replace = function replace(t, e) { ;(t = t.toUpperCase()), (this.tokens = this.getTokens(t, e).sort(function (t, e) { return e.length - t.length })) for (var n = 0; n < this.tokens.length; n++) t = t .split(this.tokens[n].toUpperCase()) .join(' ' + e[this.tokens[n]] + ' ') return (this.expr = t), this }), (i.prototype.getTokens = function t(e, n) { return ( (e = e.toUpperCase()), Object.keys(n) .filter(function (t) { return /^[a-zA-Z_$][\w$-]*$/.test(t) }) .filter(function (t) { return e.includes(t.toUpperCase()) }) ) }) }, 457: function (t, e) { t.exports = [ { code: 'US', name: 'United States' }, { code: 'GB', name: 'United Kingdom' }, { code: 'AF', name: 'Afghanistan' }, { code: 'AX', name: 'Åland Islands' }, { code: 'AL', name: 'Albania' }, { code: 'DZ', name: 'Algeria' }, { code: 'AS', name: 'American Samoa' }, { code: 'AD', name: 'Andorra' }, { code: 'AO', name: 'Angola' }, { code: 'AI', name: 'Anguilla' }, { code: 'AQ', name: 'Antarctica' }, { code: 'AG', name: 'Antigua and Barbuda' }, { code: 'AR', name: 'Argentina' }, { code: 'AM', name: 'Armenia' }, { code: 'AW', name: 'Aruba' }, { code: 'AU', name: 'Australia' }, { code: 'AT', name: 'Austria' }, { code: 'AZ', name: 'Azerbaijan' }, { code: 'BS', name: 'Bahamas' }, { code: 'BH', name: 'Bahrain' }, { code: 'BD', name: 'Bangladesh' }, { code: 'BB', name: 'Barbados' }, { code: 'BY', name: 'Belarus' }, { code: 'BE', name: 'Belgium' }, { code: 'BZ', name: 'Belize' }, { code: 'BJ', name: 'Benin' }, { code: 'BM', name: 'Bermuda' }, { code: 'BT', name: 'Bhutan' }, { code: 'BO', name: 'Bolivia, Plurinational State of' }, { code: 'BQ', name: 'Bonaire, Sint Eustatius and Saba' }, { code: 'BA', name: 'Bosnia and Herzegovina' }, { code: 'BW', name: 'Botswana' }, { code: 'BV', name: 'Bouvet Island' }, { code: 'BR', name: 'Brazil' }, { code: 'IO', name: 'British Indian Ocean Territory' }, { code: 'BN', name: 'Brunei Darussalam' }, { code: 'BG', name: 'Bulgaria' }, { code: 'BF', name: 'Burkina Faso' }, { code: 'BI', name: 'Burundi' }, { code: 'KH', name: 'Cambodia' }, { code: 'CM', name: 'Cameroon' }, { code: 'CA', name: 'Canada' }, { code: 'CV', name: 'Cape Verde' }, { code: 'KY', name: 'Cayman Islands' }, { code: 'CF', name: 'Central African Republic' }, { code: 'TD', name: 'Chad' }, { code: 'CL', name: 'Chile' }, { code: 'CN', name: 'China' }, { code: 'CX', name: 'Christmas Island' }, { code: 'CC', name: 'Cocos (Keeling) Islands' }, { code: 'CO', name: 'Colombia' }, { code: 'KM', name: 'Comoros' }, { code: 'CG', name: 'Congo' }, { code: 'CD', name: 'Congo, the Democratic Republic of the' }, { code: 'CK', name: 'Cook Islands' }, { code: 'CR', name: 'Costa Rica' }, { code: 'CI', name: "Côte d'Ivoire" }, { code: 'HR', name: 'Croatia' }, { code: 'CU', name: 'Cuba' }, { code: 'CW', name: 'Curaçao' }, { code: 'CY', name: 'Cyprus' }, { code: 'CZ', name: 'Czech Republic' }, { code: 'DK', name: 'Denmark' }, { code: 'DJ', name: 'Djibouti' }, { code: 'DM', name: 'Dominica' }, { code: 'DO', name: 'Dominican Republic' }, { code: 'EC', name: 'Ecuador' }, { code: 'EG', name: 'Egypt' }, { code: 'SV', name: 'El Salvador' }, { code: 'GQ', name: 'Equatorial Guinea' }, { code: 'ER', name: 'Eritrea' }, { code: 'EE', name: 'Estonia' }, { code: 'ET', name: 'Ethiopia' }, { code: 'FK', name: 'Falkland Islands (Malvinas)' }, { code: 'FO', name: 'Faroe Islands' }, { code: 'FJ', name: 'Fiji' }, { code: 'FI', name: 'Finland' }, { code: 'FR', name: 'France' }, { code: 'GF', name: 'French Guiana' }, { code: 'PF', name: 'French Polynesia' }, { code: 'TF', name: 'French Southern Territories' }, { code: 'GA', name: 'Gabon' }, { code: 'GM', name: 'Gambia' }, { code: 'GE', name: 'Georgia' }, { code: 'DE', name: 'Germany' }, { code: 'GH', name: 'Ghana' }, { code: 'GI', name: 'Gibraltar' }, { code: 'GR', name: 'Greece' }, { code: 'GL', name: 'Greenland' }, { code: 'GD', name: 'Grenada' }, { code: 'GP', name: 'Guadeloupe' }, { code: 'GU', name: 'Guam' }, { code: 'GT', name: 'Guatemala' }, { code: 'GG', name: 'Guernsey' }, { code: 'GN', name: 'Guinea' }, { code: 'GW', name: 'Guinea-Bissau' }, { code: 'GY', name: 'Guyana' }, { code: 'HT', name: 'Haiti' }, { code: 'HM', name: 'Heard Island and McDonald Islands' }, { code: 'VA', name: 'Holy See (Vatican City State)' }, { code: 'HN', name: 'Honduras' }, { code: 'HK', name: 'Hong Kong' }, { code: 'HU', name: 'Hungary' }, { code: 'IS', name: 'Iceland' }, { code: 'IN', name: 'India' }, { code: 'ID', name: 'Indonesia' }, { code: 'IR', name: 'Iran, Islamic Republic of' }, { code: 'IQ', name: 'Iraq' }, { code: 'IE', name: 'Ireland' }, { code: 'IM', name: 'Isle of Man' }, { code: 'IL', name: 'Israel' }, { code: 'IT', name: 'Italy' }, { code: 'JM', name: 'Jamaica' }, { code: 'JP', name: 'Japan' }, { code: 'JE', name: 'Jersey' }, { code: 'JO', name: 'Jordan' }, { code: 'KZ', name: 'Kazakhstan' }, { code: 'KE', name: 'Kenya' }, { code: 'KI', name: 'Kiribati' }, { code: 'KP', name: "Korea, Democratic People's Republic of" }, { code: 'KR', name: 'Korea, Republic of' }, { code: 'KW', name: 'Kuwait' }, { code: 'KG', name: 'Kyrgyzstan' }, { code: 'LA', name: "Lao People's Democratic Republic" }, { code: 'LV', name: 'Latvia' }, { code: 'LB', name: 'Lebanon' }, { code: 'LS', name: 'Lesotho' }, { code: 'LR', name: 'Liberia' }, { code: 'LY', name: 'Libya' }, { code: 'LI', name: 'Liechtenstein' }, { code: 'LT', name: 'Lithuania' }, { code: 'LU', name: 'Luxembourg' }, { code: 'MO', name: 'Macao' }, { code: 'MK', name: 'Macedonia, the former Yugoslav Republic of' }, { code: 'MG', name: 'Madagascar' }, { code: 'MW', name: 'Malawi' }, { code: 'MY', name: 'Malaysia' }, { code: 'MV', name: 'Maldives' }, { code: 'ML', name: 'Mali' }, { code: 'MT', name: 'Malta' }, { code: 'MH', name: 'Marshall Islands' }, { code: 'MQ', name: 'Martinique' }, { code: 'MR', name: 'Mauritania' }, { code: 'MU', name: 'Mauritius' }, { code: 'YT', name: 'Mayotte' }, { code: 'MX', name: 'Mexico' }, { code: 'FM', name: 'Micronesia, Federated States of' }, { code: 'MD', name: 'Moldova, Republic of' }, { code: 'MC', name: 'Monaco' }, { code: 'MN', name: 'Mongolia' }, { code: 'ME', name: 'Montenegro' }, { code: 'MS', name: 'Montserrat' }, { code: 'MA', name: 'Morocco' }, { code: 'MZ', name: 'Mozambique' }, { code: 'MM', name: 'Myanmar' }, { code: 'NA', name: 'Namibia' }, { code: 'NR', name: 'Nauru' }, { code: 'NP', name: 'Nepal' }, { code: 'NL', name: 'Netherlands' }, { code: 'NC', name: 'New Caledonia' }, { code: 'NZ', name: 'New Zealand' }, { code: 'NI', name: 'Nicaragua' }, { code: 'NE', name: 'Niger' }, { code: 'NG', name: 'Nigeria' }, { code: 'NU', name: 'Niue' }, { code: 'NF', name: 'Norfolk Island' }, { code: 'MP', name: 'Northern Mariana Islands' }, { code: 'NO', name: 'Norway' }, { code: 'OM', name: 'Oman' }, { code: 'PK', name: 'Pakistan' }, { code: 'PW', name: 'Palau' }, { code: 'PS', name: 'Palestinian Territory, Occupied' }, { code: 'PA', name: 'Panama' }, { code: 'PG', name: 'Papua New Guinea' }, { code: 'PY', name: 'Paraguay' }, { code: 'PE', name: 'Peru' }, { code: 'PH', name: 'Philippines' }, { code: 'PN', name: 'Pitcairn' }, { code: 'PL', name: 'Poland' }, { code: 'PT', name: 'Portugal' }, { code: 'PR', name: 'Puerto Rico' }, { code: 'QA', name: 'Qatar' }, { code: 'RE', name: 'Réunion' }, { code: 'RO', name: 'Romania' }, { code: 'RU', name: 'Russian Federation' }, { code: 'RW', name: 'Rwanda' }, { code: 'BL', name: 'Saint Barthélemy' }, { code: 'SH', name: 'Saint Helena, Ascension and Tristan da Cunha' }, { code: 'KN', name: 'Saint Kitts and Nevis' }, { code: 'LC', name: 'Saint Lucia' }, { code: 'MF', name: 'Saint Martin (French part)' }, { code: 'PM', name: 'Saint Pierre and Miquelon' }, { code: 'VC', name: 'Saint Vincent and the Grenadines' }, { code: 'WS', name: 'Samoa' }, { code: 'SM', name: 'San Marino' }, { code: 'ST', name: 'Sao Tome and Principe' }, { code: 'SA', name: 'Saudi Arabia' }, { code: 'SN', name: 'Senegal' }, { code: 'RS', name: 'Serbia' }, { code: 'SC', name: 'Seychelles' }, { code: 'SL', name: 'Sierra Leone' }, { code: 'SG', name: 'Singapore' }, { code: 'SX', name: 'Sint Maarten (Dutch part)' }, { code: 'SK', name: 'Slovakia' }, { code: 'SI', name: 'Slovenia' }, { code: 'SB', name: 'Solomon Islands' }, { code: 'SO', name: 'Somalia' }, { code: 'ZA', name: 'South Africa' }, { code: 'GS', name: 'South Georgia and the South Sandwich Islands' }, { code: 'SS', name: 'South Sudan' }, { code: 'ES', name: 'Spain' }, { code: 'LK', name: 'Sri Lanka' }, { code: 'SD', name: 'Sudan' }, { code: 'SR', name: 'Suriname' }, { code: 'SJ', name: 'Svalbard and Jan Mayen' }, { code: 'SZ', name: 'Swaziland' }, { code: 'SE', name: 'Sweden' }, { code: 'CH', name: 'Switzerland' }, { code: 'SY', name: 'Syrian Arab Republic' }, { code: 'TW', name: 'Taiwan' }, { code: 'TJ', name: 'Tajikistan' }, { code: 'TZ', name: 'Tanzania, United Republic of' }, { code: 'TH', name: 'Thailand' }, { code: 'TL', name: 'Timor-Leste' }, { code: 'TG', name: 'Togo' }, { code: 'TK', name: 'Tokelau' }, { code: 'TO', name: 'Tonga' }, { code: 'TT', name: 'Trinidad and Tobago' }, { code: 'TN', name: 'Tunisia' }, { code: 'TR', name: 'Turkey' }, { code: 'TM', name: 'Turkmenistan' }, { code: 'TC', name: 'Turks and Caicos Islands' }, { code: 'TV', name: 'Tuvalu' }, { code: 'UG', name: 'Uganda' }, { code: 'UA', name: 'Ukraine' }, { code: 'AE', name: 'United Arab Emirates' }, { code: 'GB', name: 'United Kingdom' }, { code: 'US', name: 'United States' }, { code: 'UM', name: 'United States Minor Outlying Islands' }, { code: 'UY', name: 'Uruguay' }, { code: 'UZ', name: 'Uzbekistan' }, { code: 'VU', name: 'Vanuatu' }, { code: 'VE', name: 'Venezuela, Bolivarian Republic of' }, { code: 'VN', name: 'Viet Nam' }, { code: 'VG', name: 'Virgin Islands, British' }, { code: 'VI', name: 'Virgin Islands, U.S.' }, { code: 'WF', name: 'Wallis and Futuna' }, { code: 'EH', name: 'Western Sahara' }, { code: 'YE', name: 'Yemen' }, { code: 'ZM', name: 'Zambia' }, { code: 'ZW', name: 'Zimbabwe' }, ] }, 513: function (t, e) { var e = void 0, t = void 0 ;(function () { /*! * https://github.com/gilmoreorless/css-background-parser * Copyright © 2015 Gilmore Davidson under the MIT license: http://gilmoreorless.mit-license.org/ */ !(function (t) { function e(t) { if (!(this instanceof e)) return new e() this.backgrounds = t || [] } function Background(props) { function t(t, n) { e[t] = t in props ? props[t] : n } if (!(this instanceof Background)) return new Background(props) props = props || {} var e = this t('color', ''), t('image', ''), t('attachment', ''), t('clip', ''), t('origin', ''), t('position', ''), t('repeat', ''), t('size', '') } function n(t) { var e = [], n = /[,\(\)]/, i = 0, o = '' if (null == t) return e for (; t.length; ) { var a = n.exec(t) if (!a) break var s, u = false switch (a[0]) { case ',': if (!i) e.push(o.trim()), (o = ''), (u = true) break case '(': i++ break case ')': i-- break } var index = a.index + 1 ;(o += t.slice(0, u ? index - 1 : index)), (t = t.slice(index)) } if (o.length || t.length) e.push((o + t).trim()) return e.filter(function (t) { return 'none' !== t }) } function i(t) { return t.trim() } function o(t) { return (t || '').split(',').map(i) } ;(e.prototype.toString = function t(props) { return this.backgrounds .map(function (t) { return t.toString(props) }) .filter(function (t) { return t }) .join(', ') }), (Background.prototype.toString = function t(props) { props = props || [ 'image', 'repeat', 'attachment', 'position', 'size', 'origin', 'clip', ] var size = (props = Array.isArray(props) ? props : [props]).includes( 'size' ) && this.size ? ' / ' + this.size : '', list = [ props.includes('image') ? this.image : '', props.includes('repeat') ? this.repeat : '', props.includes('attachment') ? this.attachment : '', props.includes('position') ? this.position + size : '', props.includes('origin') ? this.origin : '', props.includes('clip') ? this.clip : '', ] if (this.color) list.unshift(this.color) return list .filter(function (t) { return t }) .join(' ') }), (t.BackgroundList = e), (t.Background = Background), (t.parseElementStyle = function (t) { var list = new e() if (null == t) return list for ( var i = n(t.backgroundImage), a = t.backgroundColor, s = o(t.backgroundAttachment), u = o(t.backgroundClip), l = o(t.backgroundOrigin), c = o(t.backgroundPosition), f = o(t.backgroundRepeat), h = o(t.backgroundSize), background, p = 0, m = i.length; p < m; p++ ) { if ( ((background = new Background({ image: i[p], attachment: s[p % s.length], clip: u[p % u.length], origin: l[p % l.length], position: c[p % c.length], repeat: f[p % f.length], size: h[p % h.length], })), p === m - 1) ) background.color = a list.backgrounds.push(background) } return list }) })( (function (e) { if (void 0 !== t && void 0 !== t.exports) return t.exports else return (e.cssBgParser = {}) })(this) ) }).call(window) }, 532: function (t, e, n) { 'use strict' function i(t) { var e = t.length if (e % 4 > 0) throw new Error('Invalid string. Length must be a multiple of 4') var n = t.indexOf('='), i if (-1 === n) n = e return [n, n === e ? 0 : 4 - (n % 4)] } function o(t) { var e = i(t), n = e[0], o = e[1] return (3 * (n + o)) / 4 - o } function a(t, e, n) { return (3 * (e + n)) / 4 - n } function s(t) { var e, n = i(t), o = n[0], s = n[1], u = new p(a(t, o, s)), l = 0, c = s > 0 ? o - 4 : o, f for (f = 0; f < c; f += 4) (e = (h[t.charCodeAt(f)] << 18) | (h[t.charCodeAt(f + 1)] << 12) | (h[t.charCodeAt(f + 2)] << 6) | h[t.charCodeAt(f + 3)]), (u[l++] = (e >> 16) & 255), (u[l++] = (e >> 8) & 255), (u[l++] = 255 & e) if (2 === s) (e = (h[t.charCodeAt(f)] << 2) | (h[t.charCodeAt(f + 1)] >> 4)), (u[l++] = 255 & e) if (1 === s) (e = (h[t.charCodeAt(f)] << 10) | (h[t.charCodeAt(f + 1)] << 4) | (h[t.charCodeAt(f + 2)] >> 2)), (u[l++] = (e >> 8) & 255), (u[l++] = 255 & e) return u } function u(t) { return ( f[(t >> 18) & 63] + f[(t >> 12) & 63] + f[(t >> 6) & 63] + f[63 & t] ) } function l(t, e, n) { for (var i, o = [], a = e; a < n; a += 3) (i = ((t[a] << 16) & 16711680) + ((t[a + 1] << 8) & 65280) + (255 & t[a + 2])), o.push(u(i)) return o.join('') } function c(t) { for ( var e, n = t.length, i = n % 3, o = [], a = 16383, s = 0, u = n - i; s < u; s += a ) o.push(l(t, s, s + a > u ? u : s + a)) if (1 === i) (e = t[n - 1]), o.push(f[e >> 2] + f[(e << 4) & 63] + '==') else if (2 === i) (e = (t[n - 2] << 8) + t[n - 1]), o.push(f[e >> 10] + f[(e >> 4) & 63] + f[(e << 2) & 63] + '=') return o.join('') } ;(e.byteLength = o), (e.toByteArray = s), (e.fromByteArray = c) for ( var f = [], h = [], p = 'undefined' != typeof Uint8Array ? Uint8Array : Array, m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', g = 0, v = m.length; g < v; ++g ) (f[g] = m[g]), (h[m.charCodeAt(g)] = g) ;(h['-'.charCodeAt(0)] = 62), (h['_'.charCodeAt(0)] = 63) }, 533: function (t, e, n) { 'use strict' /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ ;(e.read = function (t, e, n, i, o) { var a, s, u = 8 * o - i - 1, l = (1 << u) - 1, c = l >> 1, f = -7, h = n ? o - 1 : 0, d = n ? -1 : 1, p = t[e + h] for ( h += d, a = p & ((1 << -f) - 1), p >>= -f, f += u; f > 0; a = 256 * a + t[e + h], h += d, f -= 8 ); for ( s = a & ((1 << -f) - 1), a >>= -f, f += i; f > 0; s = 256 * s + t[e + h], h += d, f -= 8 ); if (0 === a) a = 1 - c else if (a === l) return s ? NaN : (p ? -1 : 1) * (1 / 0) else (s += Math.pow(2, i)), (a -= c) return (p ? -1 : 1) * s * Math.pow(2, a - i) }), (e.write = function (t, e, n, i, o, a) { var s, u, l, c = 8 * a - o - 1, f = (1 << c) - 1, h = f >> 1, p = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0, m = i ? 0 : a - 1, d = i ? 1 : -1, g = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0 if (((e = Math.abs(e)), isNaN(e) || e === 1 / 0)) (u = isNaN(e) ? 1 : 0), (s = f) else { if ( ((s = Math.floor(Math.log(e) / Math.LN2)), e * (l = Math.pow(2, -s)) < 1) ) s--, (l *= 2) if (s + h >= 1) e += p / l else e += p * Math.pow(2, 1 - h) if (e * l >= 2) s++, (l /= 2) if (s + h >= f) (u = 0), (s = f) else if (s + h >= 1) (u = (e * l - 1) * Math.pow(2, o)), (s += h) else (u = e * Math.pow(2, h - 1) * Math.pow(2, o)), (s = 0) } for (; o >= 8; t[n + m] = 255 & u, m += d, u /= 256, o -= 8); for ( s = (s << o) | u, c += o; c > 0; t[n + m] = 255 & s, m += d, s /= 256, c -= 8 ); t[n + m - d] |= 128 * g }) }, 534: function (t, e, n) { 'use strict' var i = {}.toString t.exports = Array.isArray || function (t) { return '[object Array]' == i.call(t) } }, 538: function (t, e, n) { 'use strict' function PaginationBuilder(pagination, data, t) { ;(this.data = data), (this.options = t), (this.pagination = pagination.clone()) var e = this.pagination.attr('data-pagination-options') if (e) this.styleOptions = JSON.parse(e) else { var n = this.pagination.find('li:not(.disabled):not(.active)'), i = n.find('a') this.styleOptions = { ul: 'style="' + (this.pagination.attr('style') || '') + '" class="' + (this.pagination.attr('class') || '') + '"', li: 'style="' + (n.attr('style') || '') + '" class="' + (n.attr('class') || '') + '"', link: 'style="' + (i.attr('style') || '') + '" class="' + (i.attr('class') || '') + '"', } } } function i(t, e, n) { if (0 === t) return { active: false, data: '<span>《</span>' } else return { active: true, data: '<a title="Start" href="' + (n ? '#1' : '../' + e) + '">《</a>', } var i } function o(t, e, n) { if (0 === t) return { active: false, data: '<span>〈</span>' } var i if (n) i = 1 === t ? '#' + t : '#1' else (t = t - 1 ? '_' + t : ''), (i = '../' + e.replace(/\.html/i, t + '.html')) return { active: true, data: '<a title="Prev" href="' + i + '">〈</a>', } } function a(t, e, n, i) { var o = t + 1, a if (o >= i) return { active: false, data: '<span>〉</span>' } if (n) a = '#' + (o + 1) else a = '../' + e.replace(/\.html/i, '_' + o + '.html') return { active: true, data: '<a title="Next" href="' + a + '">〉</a>', } } function s(t, e, n, i) { var o, a if (t + 1 >= i) return { active: false, data: '<span>》</span>' } if (n) a = '#' + i else a = '../' + e.replace(/\.html/, '_' + (i - 1) + '.html') return { active: true, data: '<a title="End" href="' + a + '">》</a>', } } function u(t, e, n, i) { for (var o = [], all = i, a = 0, s = 1, u = 1; all > a; ) { var l = true, c if (n) c = '#' + (a ? a + 1 : '1') else c = '../' + e.replace(/\.html/, (a ? '_' + a : '') + '.html') var data = '<a href="' + c + '">' + s + '</a>' if (a === t) (l = false), (data = '<span>' + s + '</span>'), (u = s) o.push({ active: l, data: data }), a++, s++ } var f = 10, h = 5 if (o.length > f) { var p = o.slice(0, u), m = o.slice(u), g, v if (p.length < h) (g = p), (v = o.slice(u, f - g.length)) else if (m.length < h) { var y = f - (v = m).length g = o.slice(u - y, y) } else (g = o.slice(u - h, h)), (v = o.slice(u, h)) o = g.concat(v) } return o } ;(t.exports = PaginationBuilder), (PaginationBuilder.prototype.getPagination = function (t) { var e = this.data.listItems.length, list = this.buildPagination(t, e), n = this.styleOptions.ul, i = this.styleOptions.li, o = i.replace('class="', 'class="active '), a = i.replace('class="', 'class="start '), s = i.replace('class="', 'class="prev '), u = i.replace('class="', 'class="next '), l = i.replace('class="', 'class="end '), link = this.styleOptions.link, html = [], c = document.createElement('ul') if ( (c.setAttribute( 'data-pagination-options', JSON.stringify(this.styleOptions) ), html.push( c.outerHTML.replace('<ul', '<ul ' + n).replace('</ul>', '') ), list.start.active) ) html.push('<li ' + a + '>'), html.push(list.start.data), html.push('</li>') if (list.previous.active) html.push('<li ' + s + '>'), html.push(list.previous.data), html.push('</li>') for (var f = 0; f < list.pages.length; f++) { var page = list.pages[f] html.push('<li ' + (page.active ? i : o) + '>' + page.data + '</li>') } if (list.next.active) html.push('<li ' + u + '>'), html.push(list.next.data), html.push('</li>') if (list.end.active) html.push('<li ' + l + '>'), html.push(list.end.data), html.push('</li>') return ( html.push('</ul>'), (html = (html = (html = html.join('')).replace( /<a /g, '<a ' + link + ' ' )).replace(/<span/g, '<span ' + link + ' ')) ) }), (PaginationBuilder.prototype.buildPagination = function (t, e) { var list = {}, n = this.options.isPage, l = this.options.listHref return ( (list.start = i(t, l, n)), (list.previous = o(t, l, n)), (list.pages = u(t, l, n, e)), (list.next = a(t, l, n, e)), (list.end = s(t, l, n, e)), list ) }), (window.PaginationBuilder = PaginationBuilder) }, 541: function (t, e, n) { 'use strict' ;(function (t, e) { !(function (t, n) { function i(t) { if ('function' != typeof t) t = new Function('' + t) for ( var e = new Array(arguments.length - 1), n = 0; n < e.length; n++ ) e[n] = arguments[n + 1] var i = { callback: t, args: e } return (g[m] = i), w(m), m++ } function o(t) { delete g[t] } function a(t) { var e = t.callback, i = t.args switch (i.length) { case 0: e() break case 1: e(i[0]) break case 2: e(i[0], i[1]) break case 3: e(i[0], i[1], i[2]) break default: e.apply(n, i) break } } function s(t) { if (v) setTimeout(s, 0, t) else { var e = g[t] if (e) { v = true try { a(e) } finally { o(t), (v = false) } } } } function u() { w = function (t) { e.nextTick(function () { s(t) }) } } function l() { if (t.postMessage && !t.importScripts) { var e = true, n = t.onmessage return ( (t.onmessage = function () { e = false }), t.postMessage('', '*'), (t.onmessage = n), e ) } } function c() { var e = 'setImmediate$' + Math.random() + '$', n = function (n) { if ( n.source === t && 'string' == typeof n.data && 0 === n.data.indexOf(e) ) s(+n.data.slice(e.length)) } if (t.addEventListener) t.addEventListener('message', n, false) else t.attachEvent('onmessage', n) w = function (n) { t.postMessage(e + n, '*') } } function f() { var t = new MessageChannel() ;(t.port1.onmessage = function (t) { var e s(t.data) }), (w = function (e) { t.port2.postMessage(e) }) } function h() { var html = y.documentElement w = function (t) { var e = y.createElement('script') ;(e.onreadystatechange = function () { s(t), (e.onreadystatechange = null), html.removeChild(e), (e = null) }), html.appendChild(e) } } function p() { w = function (t) { setTimeout(s, 0, t) } } if (!t.setImmediate) { var m = 1, g = {}, v = false, y = t.document, w, b = Object.getPrototypeOf && Object.getPrototypeOf(t) if ( ((b = b && b.setTimeout ? b : t), '[object process]' === {}.toString.call(t.process)) ) u() else if (l()) c() else if (t.MessageChannel) f() else if (y && 'onreadystatechange' in y.createElement('script')) h() else p() ;(b.setImmediate = i), (b.clearImmediate = o) } })('undefined' == typeof self ? (void 0 === t ? this : t) : self) }).call(e, n(60), n(116)) }, 543: function (t, e, n) { 'use strict' ;(function (e) { function n(input, t) { var e = 0, base = t.length, n = t.charAt(0), i = [0] for (e = 0; e < input.length(); ++e) { for (var o = 0, a = input.at(e); o < i.length; ++o) (a += i[o] << 8), (i[o] = a % base), (a = (a / base) | 0) for (; a > 0; ) i.push(a % base), (a = (a / base) | 0) } var s = '' for (e = 0; 0 === input.at(e) && e < input.length() - 1; ++e) s += n for (e = i.length - 1; e >= 0; --e) s += t[i[e]] return s } var i = {} t.exports = i var o = {} ;(i.encode = function (input, t, e) { if ('string' != typeof t) throw new TypeError('"alphabet" must be a string.') if (void 0 !== e && 'number' != typeof e) throw new TypeError('"maxline" must be a number.') var i = '' if (!(input instanceof Uint8Array)) i = n(input, t) else { var o = 0, base = t.length, a = t.charAt(0), s = [0] for (o = 0; o < input.length; ++o) { for (var u = 0, l = input[o]; u < s.length; ++u) (l += s[u] << 8), (s[u] = l % base), (l = (l / base) | 0) for (; l > 0; ) s.push(l % base), (l = (l / base) | 0) } for (o = 0; 0 === input[o] && o < input.length - 1; ++o) i += a for (o = s.length - 1; o >= 0; --o) i += t[s[o]] } if (e) { var c = new RegExp('.{1,' + e + '}', 'g') i = i.match(c).join('\r\n') } return i }), (i.decode = function (input, t) { if ('string' != typeof input) throw new TypeError('"input" must be a string.') if ('string' != typeof t) throw new TypeError('"alphabet" must be a string.') var table = o[t] if (!table) { table = o[t] = [] for (var n = 0; n < t.length; ++n) table[t.charCodeAt(n)] = n } input = input.replace(/\s/g, '') for ( var base = t.length, i = t.charAt(0), a = [0], n = 0; n < input.length; n++ ) { var s = table[input.charCodeAt(n)] if (void 0 === s) return for (var u = 0, l = s; u < a.length; ++u) (l += a[u] * base), (a[u] = 255 & l), (l >>= 8) for (; l > 0; ) a.push(255 & l), (l >>= 8) } for (var c = 0; input[c] === i && c < input.length - 1; ++c) a.push(0) if (void 0 !== e) return e.from(a.reverse()) else return new Uint8Array(a.reverse()) }) }).call(e, n(62).Buffer) }, 55: function (t, e, n) { 'use strict' function CountdownCommon(t) { this.$dom = t } t.exports = CountdownCommon var CountdownAnimate = n(381) ;(CountdownCommon.prototype.getDate = function () { var date = this.$dom.attr('data-target-date') if (date) return new Date(date) else return new Date() }), (CountdownCommon.prototype.getDirection = function () { return this.$dom.attr('data-direction') || 'down' }), (CountdownCommon.prototype.getTimeLeft = function () { return this.$dom.attr('data-time-left') || '750m' }), (CountdownCommon.prototype.getNumber = function () { var t = this.$dom.attr('data-target-number') || '100' return parseInt(t, 10) }), (CountdownCommon.prototype.getStartTime = function () { var date = this.$dom.attr('data-start-time') if (date) return new Date(date) else return new Date() }), (CountdownCommon.prototype.getFrequency = function () { return this.$dom.attr('data-frequency') || '1s' }), (CountdownCommon.prototype.getTimerId = function () { return this.$dom.attr('data-timer-id') }), (CountdownCommon.prototype.getTimerKey = function () { return 'timer-' + this.getTimerId() }), (CountdownCommon.prototype.getFor = function () { return this.$dom.attr('data-for') || 'everyone' }), (CountdownCommon.prototype.getType = function () { return this.$dom.attr('data-type') || 'to-date' }), (CountdownCommon.prototype.setValue = function (t, e, n, props) { var i = this.$dom.find('.u-countdown-' + t), o = e.toString(), a = o.length if ('to-number' === this.getType()) { for (; i.find('.u-countdown-number').length < a + 1; ) { var itemDom = i.find('.u-countdown-number:eq(0)') if (!itemDom.length) break itemDom.clone().insertAfter(itemDom).text('0') } for (; i.find('.u-countdown-number').length > a + 1; ) i.find('.u-countdown-number:eq(0)').remove() } var s = i.find('.u-countdown-number') if ( 'hours' === t || 'minutes' === t || 'seconds' === t || 'numbers' === t ) for (; o.length < s.length; ) o = '0' + o if (!(a > s.length)) for (var u = 0; u < s.length; u++) { var l = $(s[u]) if ( (this.doSetVal(l, o[u], props), n && ('years' === t || 'days' === t)) ) l.toggleClass('u-hidden', u >= a) } }), (CountdownCommon.prototype.doSetVal = function (t, e, props) { if ((props = props || {}).animation && 'none' !== props.animation) { var n = new CountdownAnimate(t) if (n.getOldVal() !== e) n.rollNumber(e, props) } else if (t.text() !== e) t.text(e) }), (CountdownCommon.prototype.showLabel = function (t, e) { var n = this.$dom.find('.u-countdown-' + t) n.toggleClass('u-hidden', !e), n .parent() .children('.u-countdown-separator') .each(function (t, el) { var e = $(el), n = e.prev('.u-countdown-item'), i = e.nextAll('.u-countdown-item:not(.u-hidden)') e.toggleClass( 'u-hidden', !(n.is(':not(.u-hidden)') && i.is(':not(.u-hidden)')) ) }) }), (CountdownCommon.prototype.setAfterCountFinished = function () { this.$dom.attr('data-after-count-finished', true) }), (CountdownCommon.prototype.getAfterCountFinished = function () { var t = this.$dom.attr('data-after-count-finished') || 'false' return (t && 'true' === t) || false }), (CountdownCommon.prototype.getAfterCount = function () { return this.$dom.attr('data-after-count') || 'none' }), (CountdownCommon.prototype.getRedirectUrl = function () { return this.$dom.attr('data-redirect-url') || 'https://' }), (CountdownCommon.prototype.getCountAnimation = function () { return this.$dom.attr('data-count-animation') || 'none' }), (CountdownCommon.prototype.timeDiff = function (t) { var e = new Date(), n if ('down' === this.getDirection()) return CountdownCommon.calcTimeDiff(t, e) else return CountdownCommon.calcTimeDiff(e, t) }), (CountdownCommon.prototype.calcNumber = function (t, e, n) { var i = CountdownCommon.timeStringToMilliseconds(n) if (!i) return 0 var o = new Date(), a = 'up' === this.getDirection() ? 1 : -1, s = t + Math.floor((o - e) / i) * a if (s < 0) return 0 else return s }), (CountdownCommon.prototype.parseTime = function (t, e) { var n = CountdownCommon.timeStringToMilliseconds(t), i = 'down' === this.getDirection() ? 1 : -1 return new Date(e.getTime() + n * i) }), (CountdownCommon.calcTimeDiff = function (t, e) { if (t <= e) return CountdownCommon.emptyDiff() var n = Math.abs(t - e) / 1e3, i = Math.floor(n / 31536e3) n -= 31536e3 * i var o = Math.floor(n / 86400) n -= 86400 * o var a = Math.floor(n / 3600) % 24 n -= 3600 * a var s = Math.floor(n / 60) % 60, u return ( (n -= 60 * s), { years: i, days: o, hours: a, minutes: s, seconds: Math.floor(n) } ) }), (CountdownCommon.emptyDiff = function () { return { years: 0, days: 0, hours: 0, minutes: 0, seconds: 0 } }), (CountdownCommon.isEmptyDiff = function (diff) { if ('number' == typeof diff) return 0 === diff else return ( 0 === diff.years && 0 === diff.days && 0 === diff.hours && 0 === diff.minutes && 0 === diff.seconds ) }), (CountdownCommon.timeStringToMilliseconds = function (t) { var data = t.match(/(\d+)(ms|s|m|h|d|)/) if (data && 3 === data.length) { var e = parseInt(data[1], 10) switch (data[2]) { case 'ms': return e case 's': return 1e3 * e case 'm': return 60 * e * 1e3 case 'h': return 3600 * e * 1e3 case 'd': return 86400 * e * 1e3 default: return 0 } } return 0 }) }, 590: function (t, e, n) { 'use strict' var i = t.exports ;(i.apply = function (t, state) { if (!t) return console.error('StepCss.apply: DOM element is not valid'), void 0 var e = 'transform, opacity, filter', n = getComputedStyle(t) if ('auto' === n.willChange && state.willChange) t.style['will-change'] = 'transform, opacity, filter' else if (n.willChange === e && !state.willChange) t.style['will-change'] = '' i.applyTransform(t, state), i.applyOpacity(t, state), i.applyFilter(t, state), i.applyBG(t, state), i.applyPosition(t, state) }), (i.applyTransform = function t(e, state) { var transform = [], n = parseFloat(state.mx) || 0, i = parseFloat(state.my) || 0, o = parseFloat(state.rot) || 0, a = parseFloat(state.sx), s = parseFloat(state.sy) if (!Number.isFinite(a)) a = 1 if (!Number.isFinite(s)) s = 1 if (n) transform.push('translateX(' + n.toFixed(3) + 'px)') if (i || state._fixedDist) { var u = i + (state._fixedDist || 0) transform.push('translateY(' + u.toFixed(3) + 'px)') } if (o) transform.push('rotate(' + o.toFixed(3) + 'deg)') if (1 !== a || 1 !== s) transform.push('scale(' + a.toFixed(3) + ', ' + s.toFixed(3) + ')') if (!transform.length) transform.push('rotate(0deg)') e.style.transform = transform.join(' ') }), (i.applyOpacity = function t(e, state) { var n = parseFloat(state.op) if (!Number.isFinite(n)) n = 1 e.style.opacity = n.toFixed(3) }), (i.applyFilter = function t(e, state) { var n = parseFloat(state.blur) || 0 e.style.filter = n ? 'blur(' + n.toFixed(3) + 'px)' : '' }), (i.applyBG = function t(e, state) { var n = parseFloat(state.bgy) || 0 e.style['background-position'] = '50% ' + n.toFixed(2) + 'vh' }), (i.applyPosition = function t(e, state) { e.classList.toggle('u-animation-sticky', Boolean(state.sticky)), e.classList.toggle('u-animation-fixed', Boolean(state.fixed)) }), (window.StepCss = i) }, 594: function (t, e, n) { 'use strict' var i = n(273).instance() i.registerAnimation(n(595)), i.registerAnimation(n(598)), i.registerAnimation(n(274)) }, 595: function (t, e, n) { 'use strict' function i(t, e) { ;(this.info = t), (this.hint = e), (this.timeoutId = null) } var o = n(596) ;(t.exports = i), (i.isMatch = function (t) { return t && 'counter' === t.name }), (i.create = function (t, e) { return new i(t, e) }), (i.prototype.init = function init() { var t = this.info.element if (!this.countUp && t) { var e = /(\D*)(\d+(?:([.,])(\d+))?)(.*)/.exec(t.textContent), n = 1, i = 2, a = 3, s = 4, u = 5 if (null !== e && e[i] && !(e[i].length > 15)) { var l = e[i] if (',' === e[a]) l = l.replace(',', '.') if ((l = Number(l)) && !isNaN(l) && isFinite(l)) { if (this.hint) this.hint.hintBrowser(this.info) var c = 0 if (e[s]) c = e[s].length var f = { element: t, prefix: e[n], decimal: e[a], decimals: c, suffix: e[u], startVal: 0, endVal: l, duration: this.info.durationRaw, cycle: this.info.animationCycle, separator: '', } this.countUp = new o(f) } } } }), (i.prototype.start = function t() { if (this.countUp) { if ((this.countUp.reset(), this._timeoutId)) clearTimeout(this._timeoutId) var e = function () { ;(this._timeoutId = null), this.countUp.start() }.bind(this), n = this.info.delay if (isNaN(n)) n = 0 if (!n) return e(), void 0 this._timeoutId = setTimeout(e, n) } }), (i.prototype.startOut = function t() { if (this._timeoutId) clearTimeout(this._timeoutId), (this._timeoutId = null) }), (i.prototype.reset = function t() { if (this.countUp) this.countUp.reset() }), (i.prototype.isInOutAnimation = function t() { return true }), (i.prototype.needOutAnimation = function t() { return false }), (i.prototype.clear = function t() { if (this.hint) this.hint.removeHint(this.info) }), (i.prototype.getTime = function t() { if (!this.info) return 0 var e = this.info.duration, n = this.info.delay if (isNaN(n)) n = 0 return n + e }), (i.prototype.getOutTime = function t() { return 0 }) }, 596: function (t, e, n) { 'use strict' function i(t) { this.initialize(t) } function o(countUp, t, e) { if (countUp) { if (((t = Number(t)), isNaN(t) || !isFinite(t) || 0 === t)) t = 1 var n = 0, i = function () { if (++n < t) countUp.reset(), countUp.start(i) else if ('function' == typeof e) e() } countUp.start(i) } } n(597), (i.prototype.initialize = function t(e) { if (!this.countUp && e.element) { var n = e.startVal, i = e.endVal, o = e.decimals, a = e.duration if ((n || 0 == +n) && (i || 0 == +i)) { if (a) if (((a = Number(a) / 1e3), isNaN(a))) a = void 0 ;(this.cycle = e.cycle), (this.countUp = new CountUp(e.element, n, i, o, a, e)), (this.started = false) } } }), (i.prototype.reset = function t() { if (((this.started = false), this.countUp)) this.countUp.reset() }), (i.prototype.start = function t() { if (this.countUp && !this.started) (this.started = true), o(this.countUp, this.cycle) }), (t.exports = i) }, 597: function (t, e) { var e = void 0, t = void 0 ;(function () { !(function (n, factory) { if ('function' == typeof define && define.amd) define(factory) else if ('object' == typeof e) t.exports = factory(require, e, t) else n.CountUp = factory() })(this, function (t, e, n) { var CountUp return function (t, e, n, i, o, a) { function s(t) { var e, n, i, o, a, s if ( ((t = t.toFixed(c.decimals)), (n = (e = (t += '').split('.'))[0]), (i = e.length > 1 ? c.options.decimal + e[1] : ''), c.options.useGrouping) ) { for (o = '', a = 0, s = n.length; a < s; ++a) { if (0 !== a && a % 3 == 0) o = c.options.separator + o o = n[s - a - 1] + o } n = o } if (c.options.numerals.length) (n = n.replace(/[0-9]/g, function (t) { return c.options.numerals[+t] })), (i = i.replace(/[0-9]/g, function (t) { return c.options.numerals[+t] })) return c.options.prefix + n + i + c.options.suffix } function u(t, e, n, d) { return (n * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + e } function l(t) { return 'number' == typeof t && !isNaN(t) } var c = this if ( ((c.version = function () { return '1.9.2' }), (c.options = { useEasing: true, useGrouping: true, separator: ',', decimal: '.', easingFn: u, formattingFn: s, prefix: '', suffix: '', numerals: [], }), a && 'object' == typeof a) ) for (var f in c.options) if (a.hasOwnProperty(f) && null !== a[f]) c.options[f] = a[f] if ('' === c.options.separator) c.options.useGrouping = false else c.options.separator = '' + c.options.separator for ( var h = 0, p = ['webkit', 'moz', 'ms', 'o'], m = 0; m < p.length && !window.requestAnimationFrame; ++m ) (window.requestAnimationFrame = window[p[m] + 'RequestAnimationFrame']), (window.cancelAnimationFrame = window[p[m] + 'CancelAnimationFrame'] || window[p[m] + 'CancelRequestAnimationFrame']) if (!window.requestAnimationFrame) window.requestAnimationFrame = function (t, e) { var n = new Date().getTime(), i = Math.max(0, 16 - (n - h)), id = window.setTimeout(function () { t(n + i) }, i) return (h = n + i), id } if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { clearTimeout(id) } if ( ((c.initialize = function () { if (c.initialized) return true if ( ((c.error = ''), (c.d = 'string' == typeof t ? document.getElementById(t) : t), !c.d) ) return ( (c.error = '[CountUp] target is null or undefined'), false ) if ( ((c.startVal = Number(e)), (c.endVal = Number(n)), l(c.startVal) && l(c.endVal)) ) return ( (c.decimals = Math.max(0, i || 0)), (c.dec = Math.pow(10, c.decimals)), (c.duration = 1e3 * Number(o) || 2e3), (c.countDown = c.startVal > c.endVal), (c.frameVal = c.startVal), (c.initialized = true), true ) else return ( (c.error = '[CountUp] startVal (' + e + ') or endVal (' + n + ') is not a number'), false ) }), (c.printValue = function (t) { var e = c.options.formattingFn(t) if ('INPUT' === c.d.tagName) this.d.value = e else if ('text' === c.d.tagName || 'tspan' === c.d.tagName) this.d.textContent = e else this.d.innerHTML = e }), (c.count = function (t) { if (!c.startTime) c.startTime = t c.timestamp = t var e = t - c.startTime if (((c.remaining = c.duration - e), c.options.useEasing)) if (c.countDown) c.frameVal = c.startVal - c.options.easingFn(e, 0, c.startVal - c.endVal, c.duration) else c.frameVal = c.options.easingFn( e, c.startVal, c.endVal - c.startVal, c.duration ) else if (c.countDown) c.frameVal = c.startVal - (c.startVal - c.endVal) * (e / c.duration) else c.frameVal = c.startVal + (c.endVal - c.startVal) * (e / c.duration) if (c.countDown) c.frameVal = c.frameVal < c.endVal ? c.endVal : c.frameVal else c.frameVal = c.frameVal > c.endVal ? c.endVal : c.frameVal if ( ((c.frameVal = Math.round(c.frameVal * c.dec) / c.dec), c.printValue(c.frameVal), e < c.duration) ) c.rAF = requestAnimationFrame(c.count) else if (c.callback) c.callback() }), (c.start = function (t) { if (c.initialize()) (c.callback = t), (c.rAF = requestAnimationFrame(c.count)) }), (c.pauseResume = function () { if (!c.paused) (c.paused = true), cancelAnimationFrame(c.rAF) else (c.paused = false), delete c.startTime, (c.duration = c.remaining), (c.startVal = c.frameVal), requestAnimationFrame(c.count) }), (c.reset = function () { if ( ((c.paused = false), delete c.startTime, (c.initialized = false), c.initialize()) ) cancelAnimationFrame(c.rAF), c.printValue(c.startVal) }), (c.update = function (t) { if (c.initialize()) { if (!l((t = Number(t)))) return ( (c.error = '[CountUp] update() - new endVal is not a number: ' + t), void 0 ) if (((c.error = ''), t !== c.frameVal)) cancelAnimationFrame(c.rAF), (c.paused = false), delete c.startTime, (c.startVal = c.frameVal), (c.endVal = t), (c.countDown = c.startVal > c.endVal), (c.rAF = requestAnimationFrame(c.count)) } }), c.initialize()) ) c.printValue(c.startVal) } }) }).call(window) }, 598: function (t, e, n) { 'use strict' function i() { o.apply(this, arguments), (this.backstageClass = ['backstage', 'u-backstage-hidden']) } var o = n(274) Object.assign(i.prototype, o.prototype), (t.exports = i), (i.isMatch = function (t) { var e = ((t && t.name) || '').toLowerCase() return ( [ 'slidein', 'fadein', 'flipin', 'bouncein', 'jackinthebox', 'lightspeedin', 'customanimationin', ].indexOf(e) > -1 ) }), (i.create = function (t, e) { return new i(t, e) }) }, 60: function (t, e, n) { 'use strict' var i i = (function () { return this })() try { i = i || Function('return this')() || (1, eval)('this') } catch (t) { if ('object' == typeof window) i = window } t.exports = i }, 62: function (t, e, n) { 'use strict' ;(function (t) { function i() { try { var t = new Uint8Array(1) return ( (t.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 }, }), 42 === t.foo() && 'function' == typeof t.subarray && 0 === t.subarray(1, 1).byteLength ) } catch (t) { return false } } function o() { return s.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 } function a(t, length) { if (o() < length) throw new RangeError('Invalid typed array length') if (s.TYPED_ARRAY_SUPPORT) (t = new Uint8Array(length)).__proto__ = s.prototype else { if (null === t) t = new s(length) t.length = length } return t } function s(t, e, length) { if (!(s.TYPED_ARRAY_SUPPORT || this instanceof s)) return new s(t, e, length) if ('number' == typeof t) { if ('string' == typeof e) throw new Error( 'If encoding is specified then the first argument must be a string' ) return f(this, t) } return u(this, t, e, length) } function u(t, e, n, length) { if ('number' == typeof e) throw new TypeError('"value" argument must not be a number') if ('undefined' != typeof ArrayBuffer && e instanceof ArrayBuffer) return m(t, e, n, length) if ('string' == typeof e) return h(t, e, n) else return g(t, e) } function l(size) { if ('number' != typeof size) throw new TypeError('"size" argument must be a number') else if (size < 0) throw new RangeError('"size" argument must not be negative') } function c(t, size, e, n) { if ((l(size), size <= 0)) return a(t, size) if (void 0 !== e) return 'string' == typeof n ? a(t, size).fill(e, n) : a(t, size).fill(e) else return a(t, size) } function f(t, size) { if ( (l(size), (t = a(t, size < 0 ? 0 : 0 | v(size))), !s.TYPED_ARRAY_SUPPORT) ) for (var e = 0; e < size; ++e) t[e] = 0 return t } function h(t, e, n) { if ('string' != typeof n || '' === n) n = 'utf8' if (!s.isEncoding(n)) throw new TypeError('"encoding" must be a valid string encoding') var length = 0 | w(e, n), i = (t = a(t, length)).write(e, n) if (i !== length) t = t.slice(0, i) return t } function p(t, e) { var length = e.length < 0 ? 0 : 0 | v(e.length) t = a(t, length) for (var n = 0; n < length; n += 1) t[n] = 255 & e[n] return t } function m(t, e, n, length) { if ((e.byteLength, n < 0 || e.byteLength < n)) throw new RangeError("'offset' is out of bounds") if (e.byteLength < n + (length || 0)) throw new RangeError("'length' is out of bounds") if (void 0 === n && void 0 === length) e = new Uint8Array(e) else if (void 0 === length) e = new Uint8Array(e, n) else e = new Uint8Array(e, n, length) if (s.TYPED_ARRAY_SUPPORT) (t = e).__proto__ = s.prototype else t = p(t, e) return t } function g(t, e) { if (s.isBuffer(e)) { var n = 0 | v(e.length) if (0 === (t = a(t, n)).length) return t else return e.copy(t, 0, 0, n), t } if (e) { if ( ('undefined' != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer) || 'length' in e ) if ('number' != typeof e.length || rt(e.length)) return a(t, 0) else return p(t, e) if ('Buffer' === e.type && st(e.data)) return p(t, e.data) } throw new TypeError( 'First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.' ) } function v(length) { if (length >= o()) throw new RangeError( 'Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + o().toString(16) + ' bytes' ) return 0 | length } function y(length) { if (+length != length) length = 0 return s.alloc(+length) } function w(t, e) { if (s.isBuffer(t)) return t.length if ( 'undefined' != typeof ArrayBuffer && 'function' == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer) ) return t.byteLength if ('string' != typeof t) t = '' + t var n = t.length if (0 === n) return 0 for (var i = false; ; ) switch (e) { case 'ascii': case 'latin1': case 'binary': return n case 'utf8': case 'utf-8': case void 0: return Z(t).length case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return 2 * n case 'hex': return n >>> 1 case 'base64': return tt(t).length default: if (i) return Z(t).length ;(e = ('' + e).toLowerCase()), (i = true) } } function b(t, e, n) { var i = false if (void 0 === e || e < 0) e = 0 if (e > this.length) return '' if (void 0 === n || n > this.length) n = this.length if (n <= 0) return '' if ((n >>>= 0) <= (e >>>= 0)) return '' if (!t) t = 'utf8' for (; true; ) switch (t) { case 'hex': return F(this, e, n) case 'utf8': case 'utf-8': return L(this, e, n) case 'ascii': return O(this, e, n) case 'latin1': case 'binary': return B(this, e, n) case 'base64': return M(this, e, n) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return N(this, e, n) default: if (i) throw new TypeError('Unknown encoding: ' + t) ;(t = (t + '').toLowerCase()), (i = true) } } function C(t, e, n) { var i = t[e] ;(t[e] = t[n]), (t[n] = i) } function S(t, e, n, i, o) { if (0 === t.length) return -1 if ('string' == typeof n) (i = n), (n = 0) else if (n > 2147483647) n = 2147483647 else if (n < -2147483648) n = -2147483648 if (((n = +n), isNaN(n))) n = o ? 0 : t.length - 1 if (n < 0) n = t.length + n if (n >= t.length) if (o) return -1 else n = t.length - 1 else if (n < 0) if (o) n = 0 else return -1 if ('string' == typeof e) e = s.from(e, i) if (s.isBuffer(e)) if (0 === e.length) return -1 else return x(t, e, n, i, o) else if ('number' == typeof e) { if ( ((e &= 255), s.TYPED_ARRAY_SUPPORT && 'function' == typeof Uint8Array.prototype.indexOf) ) if (o) return Uint8Array.prototype.indexOf.call(t, e, n) else return Uint8Array.prototype.lastIndexOf.call(t, e, n) return x(t, [e], n, i, o) } throw new TypeError('val must be string, number or Buffer') } function x(t, e, n, i, o) { function a(t, e) { if (1 === s) return t[e] else return t.readUInt16BE(e * s) } var s = 1, u = t.length, l = e.length, c if (void 0 !== i) if ( 'ucs2' === (i = String(i).toLowerCase()) || 'ucs-2' === i || 'utf16le' === i || 'utf-16le' === i ) { if (t.length < 2 || e.length < 2) return -1 ;(s = 2), (u /= 2), (l /= 2), (n /= 2) } if (o) { var f = -1 for (c = n; c < u; c++) if (a(t, c) === a(e, -1 === f ? 0 : c - f)) { if (-1 === f) f = c if (c - f + 1 === l) return f * s } else { if (-1 !== f) c -= c - f f = -1 } } else { if (n + l > u) n = u - l for (c = n; c >= 0; c--) { for (var h = true, p = 0; p < l; p++) if (a(t, c + p) !== a(e, p)) { h = false break } if (h) return c } } return -1 } function A(t, e, n, length) { n = Number(n) || 0 var i = t.length - n if (!length) length = i else if ((length = Number(length)) > i) length = i var o = e.length if (o % 2 != 0) throw new TypeError('Invalid hex string') if (length > o / 2) length = o / 2 for (var a = 0; a < length; ++a) { var s = parseInt(e.substr(2 * a, 2), 16) if (isNaN(s)) return a t[n + a] = s } return a } function _(t, e, n, length) { return nt(Z(e, t.length - n), t, n, length) } function T(t, e, n, length) { return nt(X(e), t, n, length) } function E(t, e, n, length) { return T(t, e, n, length) } function I(t, e, n, length) { return nt(tt(e), t, n, length) } function k(t, e, n, length) { return nt(J(e, t.length - n), t, n, length) } function M(t, e, n) { if (0 === e && n === t.length) return ot.fromByteArray(t) else return ot.fromByteArray(t.slice(e, n)) } function L(t, e, n) { n = Math.min(t.length, n) for (var i = [], o = e; o < n; ) { var a = t[o], s = null, u = a > 239 ? 4 : a > 223 ? 3 : a > 191 ? 2 : 1 if (o + u <= n) { var l, c, f, h switch (u) { case 1: if (a < 128) s = a break case 2: if (128 == (192 & (l = t[o + 1]))) if ((h = ((31 & a) << 6) | (63 & l)) > 127) s = h break case 3: if ( ((l = t[o + 1]), (c = t[o + 2]), 128 == (192 & l) && 128 == (192 & c)) ) if ( (h = ((15 & a) << 12) | ((63 & l) << 6) | (63 & c)) > 2047 && (h < 55296 || h > 57343) ) s = h break case 4: if ( ((l = t[o + 1]), (c = t[o + 2]), (f = t[o + 3]), 128 == (192 & l) && 128 == (192 & c) && 128 == (192 & f)) ) if ( (h = ((15 & a) << 18) | ((63 & l) << 12) | ((63 & c) << 6) | (63 & f)) > 65535 && h < 1114112 ) s = h } } if (null === s) (s = 65533), (u = 1) else if (s > 65535) (s -= 65536), i.push(((s >>> 10) & 1023) | 55296), (s = 56320 | (1023 & s)) i.push(s), (o += u) } return P(i) } function P(t) { var e = t.length if (e <= ut) return String.fromCharCode.apply(String, t) for (var n = '', i = 0; i < e; ) n += String.fromCharCode.apply(String, t.slice(i, (i += ut))) return n } function O(t, e, n) { var i = '' n = Math.min(t.length, n) for (var o = e; o < n; ++o) i += String.fromCharCode(127 & t[o]) return i } function B(t, e, n) { var i = '' n = Math.min(t.length, n) for (var o = e; o < n; ++o) i += String.fromCharCode(t[o]) return i } function F(t, e, n) { var i = t.length if (!e || e < 0) e = 0 if (!n || n < 0 || n > i) n = i for (var o = '', a = e; a < n; ++a) o += K(t[a]) return o } function N(t, e, n) { for (var i = t.slice(e, n), o = '', a = 0; a < i.length; a += 2) o += String.fromCharCode(i[a] + 256 * i[a + 1]) return o } function U(t, e, length) { if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint') if (t + e > length) throw new RangeError('Trying to access beyond buffer length') } function z(t, e, n, i, o, a) { if (!s.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance') if (e > o || e < a) throw new RangeError('"value" argument is out of bounds') if (n + i > t.length) throw new RangeError('Index out of range') } function H(t, e, n, i) { if (e < 0) e = 65535 + e + 1 for (var o = 0, a = Math.min(t.length - n, 2); o < a; ++o) t[n + o] = (e & (255 << (8 * (i ? o : 1 - o)))) >>> (8 * (i ? o : 1 - o)) } function $(t, e, n, i) { if (e < 0) e = 4294967295 + e + 1 for (var o = 0, a = Math.min(t.length - n, 4); o < a; ++o) t[n + o] = (e >>> (8 * (i ? o : 3 - o))) & 255 } function Y(t, e, n, i, o, a) { if (n + i > t.length) throw new RangeError('Index out of range') if (n < 0) throw new RangeError('Index out of range') } function W(t, e, n, i, o) { if (!o) Y(t, e, n, 4, 34028234663852886e22, -34028234663852886e22) return at.write(t, e, n, i, 23, 4), n + 4 } function V(t, e, n, i, o) { if (!o) Y(t, e, n, 8, 17976931348623157e292, -17976931348623157e292) return at.write(t, e, n, i, 52, 8), n + 8 } function G(t) { if ((t = j(t).replace(lt, '')).length < 2) return '' for (; t.length % 4 != 0; ) t += '=' return t } function j(t) { if (t.trim) return t.trim() else return t.replace(/^\s+|\s+$/g, '') } function K(t) { if (t < 16) return '0' + t.toString(16) else return t.toString(16) } function Z(t, e) { var n e = e || 1 / 0 for (var length = t.length, i = null, o = [], a = 0; a < length; ++a) { if ((n = t.charCodeAt(a)) > 55295 && n < 57344) { if (!i) { if (n > 56319) { if ((e -= 3) > -1) o.push(239, 191, 189) continue } else if (a + 1 === length) { if ((e -= 3) > -1) o.push(239, 191, 189) continue } i = n continue } if (n < 56320) { if ((e -= 3) > -1) o.push(239, 191, 189) i = n continue } n = (((i - 55296) << 10) | (n - 56320)) + 65536 } else if (i) if ((e -= 3) > -1) o.push(239, 191, 189) if (((i = null), n < 128)) { if ((e -= 1) < 0) break o.push(n) } else if (n < 2048) { if ((e -= 2) < 0) break o.push((n >> 6) | 192, (63 & n) | 128) } else if (n < 65536) { if ((e -= 3) < 0) break o.push((n >> 12) | 224, ((n >> 6) & 63) | 128, (63 & n) | 128) } else if (n < 1114112) { if ((e -= 4) < 0) break o.push( (n >> 18) | 240, ((n >> 12) & 63) | 128, ((n >> 6) & 63) | 128, (63 & n) | 128 ) } else throw new Error('Invalid code point') } return o } function X(t) { for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t.charCodeAt(n)) return e } function J(t, e) { for (var n, i, o, a = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) (i = (n = t.charCodeAt(s)) >> 8), (o = n % 256), a.push(o), a.push(i) return a } function tt(t) { return ot.toByteArray(G(t)) } function nt(t, e, n, length) { for ( var i = 0; i < length && !(i + n >= e.length || i >= t.length); ++i ) e[i + n] = t[i] return i } function rt(t) { return t != t } var ot = n(532), at = n(533), st = n(534) if ( ((e.Buffer = s), (e.SlowBuffer = y), (e.INSPECT_MAX_BYTES = 50), (s.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : i()), (e.kMaxLength = o()), (s.poolSize = 8192), (s._augment = function (t) { return (t.__proto__ = s.prototype), t }), (s.from = function (t, e, length) { return u(null, t, e, length) }), s.TYPED_ARRAY_SUPPORT) ) if ( ((s.prototype.__proto__ = Uint8Array.prototype), (s.__proto__ = Uint8Array), 'undefined' != typeof Symbol && Symbol.species && s[Symbol.species] === s) ) Object.defineProperty(s, Symbol.species, { value: null, configurable: true, }) ;(s.alloc = function (size, t, e) { return c(null, size, t, e) }), (s.allocUnsafe = function (size) { return f(null, size) }), (s.allocUnsafeSlow = function (size) { return f(null, size) }), (s.isBuffer = function t(e) { return !!(null != e && e._isBuffer) }), (s.compare = function compare(t, e) { if (!s.isBuffer(t) || !s.isBuffer(e)) throw new TypeError('Arguments must be Buffers') if (t === e) return 0 for ( var n = t.length, i = e.length, o = 0, a = Math.min(n, i); o < a; ++o ) if (t[o] !== e[o]) { ;(n = t[o]), (i = e[o]) break } if (n < i) return -1 if (i < n) return 1 else return 0 }), (s.isEncoding = function t(e) { switch (String(e).toLowerCase()) { case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'latin1': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return true default: return false } }), (s.concat = function t(list, length) { if (!st(list)) throw new TypeError('"list" argument must be an Array of Buffers') if (0 === list.length) return s.alloc(0) var e if (void 0 === length) for (length = 0, e = 0; e < list.length; ++e) length += list[e].length var n = s.allocUnsafe(length), i = 0 for (e = 0; e < list.length; ++e) { var o = list[e] if (!s.isBuffer(o)) throw new TypeError('"list" argument must be an Array of Buffers') o.copy(n, i), (i += o.length) } return n }), (s.byteLength = w), (s.prototype._isBuffer = true), (s.prototype.swap16 = function t() { var e = this.length if (e % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits') for (var n = 0; n < e; n += 2) C(this, n, n + 1) return this }), (s.prototype.swap32 = function t() { var e = this.length if (e % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits') for (var n = 0; n < e; n += 4) C(this, n, n + 3), C(this, n + 1, n + 2) return this }), (s.prototype.swap64 = function t() { var e = this.length if (e % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits') for (var n = 0; n < e; n += 8) C(this, n, n + 7), C(this, n + 1, n + 6), C(this, n + 2, n + 5), C(this, n + 3, n + 4) return this }), (s.prototype.toString = function t() { var length = 0 | this.length if (0 === length) return '' if (0 === arguments.length) return L(this, 0, length) else return b.apply(this, arguments) }), (s.prototype.equals = function t(e) { if (!s.isBuffer(e)) throw new TypeError('Argument must be a Buffer') if (this === e) return true else return 0 === s.compare(this, e) }), (s.prototype.inspect = function t() { var n = '', i = e.INSPECT_MAX_BYTES if (this.length > 0) if ( ((n = this.toString('hex', 0, i).match(/.{2}/g).join(' ')), this.length > i) ) n += ' ... ' return '<Buffer ' + n + '>' }), (s.prototype.compare = function compare(t, e, n, i, o) { if (!s.isBuffer(t)) throw new TypeError('Argument must be a Buffer') if (void 0 === e) e = 0 if (void 0 === n) n = t ? t.length : 0 if (void 0 === i) i = 0 if (void 0 === o) o = this.length if (e < 0 || n > t.length || i < 0 || o > this.length) throw new RangeError('out of range index') if (i >= o && e >= n) return 0 if (i >= o) return -1 if (e >= n) return 1 if (this === t) return 0 for ( var a = (o >>>= 0) - (i >>>= 0), u = (n >>>= 0) - (e >>>= 0), l = Math.min(a, u), c = this.slice(i, o), f = t.slice(e, n), h = 0; h < l; ++h ) if (c[h] !== f[h]) { ;(a = c[h]), (u = f[h]) break } if (a < u) return -1 if (u < a) return 1 else return 0 }), (s.prototype.includes = function t(e, n, i) { return -1 !== this.indexOf(e, n, i) }), (s.prototype.indexOf = function t(e, n, i) { return S(this, e, n, i, true) }), (s.prototype.lastIndexOf = function t(e, n, i) { return S(this, e, n, i, false) }), (s.prototype.write = function t(e, n, length, i) { if (void 0 === n) (i = 'utf8'), (length = this.length), (n = 0) else if (void 0 === length && 'string' == typeof n) (i = n), (length = this.length), (n = 0) else if (isFinite(n)) if (((n |= 0), isFinite(length))) { if (((length |= 0), void 0 === i)) i = 'utf8' } else (i = length), (length = void 0) else throw new Error( 'Buffer.write(string, encoding, offset[, length]) is no longer supported' ) var o = this.length - n if (void 0 === length || length > o) length = o if ((e.length > 0 && (length < 0 || n < 0)) || n > this.length) throw new RangeError('Attempt to write outside buffer bounds') if (!i) i = 'utf8' for (var a = false; ; ) switch (i) { case 'hex': return A(this, e, n, length) case 'utf8': case 'utf-8': return _(this, e, n, length) case 'ascii': return T(this, e, n, length) case 'latin1': case 'binary': return E(this, e, n, length) case 'base64': return I(this, e, n, length) case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': return k(this, e, n, length) default: if (a) throw new TypeError('Unknown encoding: ' + i) ;(i = ('' + i).toLowerCase()), (a = true) } }), (s.prototype.toJSON = function t() { return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0), } }) var ut = 4096 ;(s.prototype.slice = function t(e, n) { var i = this.length, o if ((e = ~~e) < 0) { if ((e += i) < 0) e = 0 } else if (e > i) e = i if ((n = void 0 === n ? i : ~~n) < 0) { if ((n += i) < 0) n = 0 } else if (n > i) n = i if (n < e) n = e if (s.TYPED_ARRAY_SUPPORT) (o = this.subarray(e, n)).__proto__ = s.prototype else { var a = n - e o = new s(a, void 0) for (var u = 0; u < a; ++u) o[u] = this[u + e] } return o }), (s.prototype.readUIntLE = function t(e, n, i) { if (((e |= 0), (n |= 0), !i)) U(e, n, this.length) for (var o = this[e], a = 1, s = 0; ++s < n && (a *= 256); ) o += this[e + s] * a return o }), (s.prototype.readUIntBE = function t(e, n, i) { if (((e |= 0), (n |= 0), !i)) U(e, n, this.length) for (var o = this[e + --n], a = 1; n > 0 && (a *= 256); ) o += this[e + --n] * a return o }), (s.prototype.readUInt8 = function t(e, n) { if (!n) U(e, 1, this.length) return this[e] }), (s.prototype.readUInt16LE = function t(e, n) { if (!n) U(e, 2, this.length) return this[e] | (this[e + 1] << 8) }), (s.prototype.readUInt16BE = function t(e, n) { if (!n) U(e, 2, this.length) return (this[e] << 8) | this[e + 1] }), (s.prototype.readUInt32LE = function t(e, n) { if (!n) U(e, 4, this.length) return ( (this[e] | (this[e + 1] << 8) | (this[e + 2] << 16)) + 16777216 * this[e + 3] ) }), (s.prototype.readUInt32BE = function t(e, n) { if (!n) U(e, 4, this.length) return ( 16777216 * this[e] + ((this[e + 1] << 16) | (this[e + 2] << 8) | this[e + 3]) ) }), (s.prototype.readIntLE = function t(e, n, i) { if (((e |= 0), (n |= 0), !i)) U(e, n, this.length) for (var o = this[e], a = 1, s = 0; ++s < n && (a *= 256); ) o += this[e + s] * a if (o >= (a *= 128)) o -= Math.pow(2, 8 * n) return o }), (s.prototype.readIntBE = function t(e, n, i) { if (((e |= 0), (n |= 0), !i)) U(e, n, this.length) for (var o = n, a = 1, s = this[e + --o]; o > 0 && (a *= 256); ) s += this[e + --o] * a if (s >= (a *= 128)) s -= Math.pow(2, 8 * n) return s }), (s.prototype.readInt8 = function t(e, n) { if (!n) U(e, 1, this.length) if (!(128 & this[e])) return this[e] else return -1 * (255 - this[e] + 1) }), (s.prototype.readInt16LE = function t(e, n) { if (!n) U(e, 2, this.length) var i = this[e] | (this[e + 1] << 8) return 32768 & i ? 4294901760 | i : i }), (s.prototype.readInt16BE = function t(e, n) { if (!n) U(e, 2, this.length) var i = this[e + 1] | (this[e] << 8) return 32768 & i ? 4294901760 | i : i }), (s.prototype.readInt32LE = function t(e, n) { if (!n) U(e, 4, this.length) return ( this[e] | (this[e + 1] << 8) | (this[e + 2] << 16) | (this[e + 3] << 24) ) }), (s.prototype.readInt32BE = function t(e, n) { if (!n) U(e, 4, this.length) return ( (this[e] << 24) | (this[e + 1] << 16) | (this[e + 2] << 8) | this[e + 3] ) }), (s.prototype.readFloatLE = function t(e, n) { if (!n) U(e, 4, this.length) return at.read(this, e, true, 23, 4) }), (s.prototype.readFloatBE = function t(e, n) { if (!n) U(e, 4, this.length) return at.read(this, e, false, 23, 4) }), (s.prototype.readDoubleLE = function t(e, n) { if (!n) U(e, 8, this.length) return at.read(this, e, true, 52, 8) }), (s.prototype.readDoubleBE = function t(e, n) { if (!n) U(e, 8, this.length) return at.read(this, e, false, 52, 8) }), (s.prototype.writeUIntLE = function t(e, n, i, o) { if (((e = +e), (n |= 0), (i |= 0), !o)) { var a z(this, e, n, i, Math.pow(2, 8 * i) - 1, 0) } var s = 1, u = 0 for (this[n] = 255 & e; ++u < i && (s *= 256); ) this[n + u] = (e / s) & 255 return n + i }), (s.prototype.writeUIntBE = function t(e, n, i, o) { if (((e = +e), (n |= 0), (i |= 0), !o)) { var a z(this, e, n, i, Math.pow(2, 8 * i) - 1, 0) } var s = i - 1, u = 1 for (this[n + s] = 255 & e; --s >= 0 && (u *= 256); ) this[n + s] = (e / u) & 255 return n + i }), (s.prototype.writeUInt8 = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 1, 255, 0) if (!s.TYPED_ARRAY_SUPPORT) e = Math.floor(e) return (this[n] = 255 & e), n + 1 }), (s.prototype.writeUInt16LE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 2, 65535, 0) if (s.TYPED_ARRAY_SUPPORT) (this[n] = 255 & e), (this[n + 1] = e >>> 8) else H(this, e, n, true) return n + 2 }), (s.prototype.writeUInt16BE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 2, 65535, 0) if (s.TYPED_ARRAY_SUPPORT) (this[n] = e >>> 8), (this[n + 1] = 255 & e) else H(this, e, n, false) return n + 2 }), (s.prototype.writeUInt32LE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 4, 4294967295, 0) if (s.TYPED_ARRAY_SUPPORT) (this[n + 3] = e >>> 24), (this[n + 2] = e >>> 16), (this[n + 1] = e >>> 8), (this[n] = 255 & e) else $(this, e, n, true) return n + 4 }), (s.prototype.writeUInt32BE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 4, 4294967295, 0) if (s.TYPED_ARRAY_SUPPORT) (this[n] = e >>> 24), (this[n + 1] = e >>> 16), (this[n + 2] = e >>> 8), (this[n + 3] = 255 & e) else $(this, e, n, false) return n + 4 }), (s.prototype.writeIntLE = function t(e, n, i, o) { if (((e = +e), (n |= 0), !o)) { var a = Math.pow(2, 8 * i - 1) z(this, e, n, i, a - 1, -a) } var s = 0, u = 1, l = 0 for (this[n] = 255 & e; ++s < i && (u *= 256); ) { if (e < 0 && 0 === l && 0 !== this[n + s - 1]) l = 1 this[n + s] = (((e / u) >> 0) - l) & 255 } return n + i }), (s.prototype.writeIntBE = function t(e, n, i, o) { if (((e = +e), (n |= 0), !o)) { var a = Math.pow(2, 8 * i - 1) z(this, e, n, i, a - 1, -a) } var s = i - 1, u = 1, l = 0 for (this[n + s] = 255 & e; --s >= 0 && (u *= 256); ) { if (e < 0 && 0 === l && 0 !== this[n + s + 1]) l = 1 this[n + s] = (((e / u) >> 0) - l) & 255 } return n + i }), (s.prototype.writeInt8 = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 1, 127, -128) if (!s.TYPED_ARRAY_SUPPORT) e = Math.floor(e) if (e < 0) e = 255 + e + 1 return (this[n] = 255 & e), n + 1 }), (s.prototype.writeInt16LE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 2, 32767, -32768) if (s.TYPED_ARRAY_SUPPORT) (this[n] = 255 & e), (this[n + 1] = e >>> 8) else H(this, e, n, true) return n + 2 }), (s.prototype.writeInt16BE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 2, 32767, -32768) if (s.TYPED_ARRAY_SUPPORT) (this[n] = e >>> 8), (this[n + 1] = 255 & e) else H(this, e, n, false) return n + 2 }), (s.prototype.writeInt32LE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 4, 2147483647, -2147483648) if (s.TYPED_ARRAY_SUPPORT) (this[n] = 255 & e), (this[n + 1] = e >>> 8), (this[n + 2] = e >>> 16), (this[n + 3] = e >>> 24) else $(this, e, n, true) return n + 4 }), (s.prototype.writeInt32BE = function t(e, n, i) { if (((e = +e), (n |= 0), !i)) z(this, e, n, 4, 2147483647, -2147483648) if (e < 0) e = 4294967295 + e + 1 if (s.TYPED_ARRAY_SUPPORT) (this[n] = e >>> 24), (this[n + 1] = e >>> 16), (this[n + 2] = e >>> 8), (this[n + 3] = 255 & e) else $(this, e, n, false) return n + 4 }), (s.prototype.writeFloatLE = function t(e, n, i) { return W(this, e, n, true, i) }), (s.prototype.writeFloatBE = function t(e, n, i) { return W(this, e, n, false, i) }), (s.prototype.writeDoubleLE = function t(e, n, i) { return V(this, e, n, true, i) }), (s.prototype.writeDoubleBE = function t(e, n, i) { return V(this, e, n, false, i) }), (s.prototype.copy = function copy(t, e, n, i) { if (!n) n = 0 if (!i && 0 !== i) i = this.length if (e >= t.length) e = t.length if (!e) e = 0 if (i > 0 && i < n) i = n if (i === n) return 0 if (0 === t.length || 0 === this.length) return 0 if (e < 0) throw new RangeError('targetStart out of bounds') if (n < 0 || n >= this.length) throw new RangeError('sourceStart out of bounds') if (i < 0) throw new RangeError('sourceEnd out of bounds') if (i > this.length) i = this.length if (t.length - e < i - n) i = t.length - e + n var o = i - n, a if (this === t && n < e && e < i) for (a = o - 1; a >= 0; --a) t[a + e] = this[a + n] else if (o < 1e3 || !s.TYPED_ARRAY_SUPPORT) for (a = 0; a < o; ++a) t[a + e] = this[a + n] else Uint8Array.prototype.set.call(t, this.subarray(n, n + o), e) return o }), (s.prototype.fill = function t(e, n, i, o) { if ('string' == typeof e) { if ('string' == typeof n) (o = n), (n = 0), (i = this.length) else if ('string' == typeof i) (o = i), (i = this.length) if (1 === e.length) { var a = e.charCodeAt(0) if (a < 256) e = a } if (void 0 !== o && 'string' != typeof o) throw new TypeError('encoding must be a string') if ('string' == typeof o && !s.isEncoding(o)) throw new TypeError('Unknown encoding: ' + o) } else if ('number' == typeof e) e &= 255 if (n < 0 || this.length < n || this.length < i) throw new RangeError('Out of range index') if (i <= n) return this if (((n >>>= 0), (i = void 0 === i ? this.length : i >>> 0), !e)) e = 0 var u if ('number' == typeof e) for (u = n; u < i; ++u) this[u] = e else { var l = s.isBuffer(e) ? e : Z(new s(e, o).toString()), c = l.length for (u = 0; u < i - n; ++u) this[u + n] = l[u % c] } return this }) var lt = /[^+\/0-9A-Za-z-_]/g }).call(e, n(60)) }, 662: function (t, e, n) { 'use strict' function i(t, e) { if ('string' != typeof t) return 0 var n = new u().replace(t, e).expr if ('' === n.trim()) return 0 o(n) try { var i, l return s(new Function('"use strict";return (' + n + ');')(), 4) } catch (e) { return a(e, t) } } function o(t) { var e = /[^-()\d\s/*+.]+|\/\/|\/\*/g.exec(t), n = 20, i if (e) { var o = { messageKey: '#FormCalc_UnexpectedToken', expression: (i = e[0].substring(0, n)), position: e.index, } throw Object.assign( new Error("Unexpected token '" + i + "'", { cause: o }), { args: o } ) } } function a(t, e) { var n = { messageKey: '#FormCalc_EvaluationFailed', expression: e } throw Object.assign(new Error('Evaluation failed', { cause: n }), { args: n, }) } function s(t, e) { if (((t = Number(t)), (e = Number(e)), isNaN(t) || !isFinite(t))) return t var n = t.toString().split('e'), i = n[0], o = n[1] || 0, a, s, u = Math.round(Number(i + 'e' + (+o + e))) .toString() .split('e')[0], l = n[1] || 0 return Number(u + 'e' + (+l - e)) } var u = n(411) t.exports.evaluate = i }, 663: function (t, e, n) { 'use strict' function i(el) { var t = el.getAttribute('name'), type if (!t) return t if (((t = t.trim()), 'SELECT' === el.tagName)) return o(t) if ('checkbox' === el.getAttribute('type')) return o(t) else return t } function o(t) { if (!t) return t var e = t.lastIndexOf('[][]') if (e > 0 && e + 4 === t.length) return t.substring(0, t.length - 4) if ((e = t.lastIndexOf('[]')) > 0 && e + 2 === t.length) return t.substring(0, t.length - 2) else return t } function a(el) { if ('OPTION' === el.tagName) return el.getAttribute('data-calc') var type = el.getAttribute('type') if ('number' === type || 'range' === type) return el.value if ('radio' === type) return el.getAttribute('data-calc') if ('checkbox' === type && null !== el.getAttribute('data-calc')) return el.getAttribute('data-calc') if ('checkbox' === type) return el.value else return } function s(el) { return Number(a(el)) } function u(el) { if ('OPTION' === el.tagName) return el.selected var type = el.getAttribute('type') if ('radio' === type || 'checkbox' === type) return el.checked else return true } function l(el, t) { if (((t = t || 0), u(el))) return s(el) else return t } var c = (t.exports = function t(form) { ;(this.fields = []), this.collectInputs( form.querySelectorAll('[type=number], [type=range]') ), this.collectInputs(form.querySelectorAll('[type=radio]')), this.collectInputs(form.querySelectorAll('[type="checkbox"]')), this.collectSelects(form.querySelectorAll('select')) }) ;(c.prototype.getScope = function t() { return this.fields.reduce(function (t, e) { if (!e || !e.name) return t if (!t[e.name]) t[e.name] = 0 return (t[e.name] += e.value), t }, {}) }), (c.prototype.addField = function t(field) { return this.fields.push(field), field }), (c.prototype.collectInputs = function (t) { for (var e = 0; e < t.length; e++) this.addField({ name: i(t[e]), value: l(t[e], 0), rawValue: a(t[e]) }) }), (c.prototype.collectSelects = function (t) { for (var e = 0; e < t.length; e++) this.collectOptions(i(t[e]), t[e].querySelectorAll('option')) }), (c.prototype.collectOptions = function (t, e) { for (var n = 0; n < e.length; n++) this.addField({ name: t, value: l(e[n], 0), rawValue: a(e[n]) }) }) }, 664: function (t, e, n) { 'use strict' function i(t, e, n) { var i = t.find('.u-form-progress-step') i.removeClass('active done'), o(i.find('.u-form-progress-icon'), 'default'), o(i.find('.u-form-progress-icon'), 'step') var a = t.find('.u-form-progress-step').eq(n) a.addClass('active') var s = a.prevAll('.u-form-progress-step') s.addClass('done'), o(s.find('.u-form-progress-icon'), 'done') } function o(icon, type) { ;(type = type || 'default'), icon.each(function () { var t = $(this), e = t.attr('data-step-icon-' + type) if (e) t.html(e) }) } function a(t, e, n) { var i = t.find('.u-form-progress-bar'), o = 'calc((100% - var(--step-icon-size)) / ' + (e.length - 1) + ' * ' + n + ')' i.css('width', o) } var FormProgress t.exports.update = function (form, t) { if (form.length) { var e = form.find('.u-form-progress'), n = form.find('.u-carousel-inner').children() if (void 0 === t) t = n.filter('.u-active, .active').index() a(e, n, t), i(e, n, t) } } }, 665: function (t, e, n) { 'use strict' var i t.exports.update = function (form, t) { var e = form.find('.u-slide') if (void 0 === t) t = e.filter('.u-active, .active').index() var n = form.find('.u-btn-submit, .u-btn-step'), i = n.filter('.u-btn-submit'), o = n.filter('.u-btn-step-next'), a = n.filter('.u-btn-step-prev') if ((n.removeClass('u-hidden'), n.css('display', ''), 0 === t)) a.addClass('u-hidden') if (t === e.length - 1) o.addClass('u-hidden'), i.removeClass('u-hidden') if (t < e.length - 1) o.removeClass('u-hidden'), i.addClass('u-hidden') } }, 666: function (t, e, n) { 'use strict' var FormFileType = n(148), FormFileAccept = (t.exports = {}) ;(FormFileAccept[FormFileType.IMAGES] = '.bmp,.dng,.eps,.gif,.jpg,.jpeg,.png,.ps,.raw,.svg,.tga,.tif,.tiff'), (FormFileAccept[FormFileType.DOCUMENTS] = '.ai,.cdr,.csv,.doc,.docb,.docx,.dot,.dotx,.dwg,.eps,.epub,.fla,.gpx,.ical,.icalendar,.ics,.ifb,.indd,.ipynb,.key,.kml,.kmz,.mobi,.mtf,.mtx,.numbers,.odg,.odp,.ods,.odt,.otp,.ots,.ott,.oxps,.pages,.pdf,.pdn,.pkg,.pot,.potx,.pps,.ppsx,.ppt,.pptx,.psd,.pub,.rtf,.sldx,.txt,.vcf,.xcf,.xls,.xlsx,.xlt,.xltx,.xlw,.xps,.zip'), (FormFileAccept[FormFileType.VIDEO] = '.3gp,.avi,.divx,.flv,.m1v,.m2ts,.m4v,.mkv,.mov,.mp4,.mpe,.mpeg,.mpg,.mxf,.ogv,.vob.webm,.wmv,.xvid'), (FormFileAccept[FormFileType.AUDIO] = '.aac,.aif,.aiff,.flac,.m4a,.mp3,.wav,.wma') }, 916: function (t, e, n) { 'use strict' var i = n(917), bootstrap = {} ;(bootstrap.Util = (function (t) { function e(t) { return t && 'object' == typeof t && 'default' in t ? t : { default: t } } function n() { if (window.QUnit) return false var el = document.createElement('bootstrap') for (var t in h) if (void 0 !== el.style[t]) return h[t] return false } function i(t) { if (null == t) return '' + t else return {}.toString .call(t) .match(/\s([a-z]+)/i)[1] .toLowerCase() } function o() { return { bindType: l, delegateType: l, handle: function t(e) { if (u['default'](e.target).is(this)) return e.handleObj.handler.apply(this, arguments) }, } } function a(t) { var e = this, n = false return ( u['default'](this).one(Util.TRANSITION_END, function () { n = true }), setTimeout(function () { if (!n) Util.triggerTransitionEnd(e) }, t), this ) } function s() { ;(l = n()), (u['default'].fn.emulateTransitionEnd = a), (u['default'].event.special[Util.TRANSITION_END] = o()) } var u = e(t), l = false, c = 1e6, f = 1e3, h = { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', transition: 'transitionend', }, Util = { TRANSITION_END: 'bsTransitionEnd', getUID: function t(e) { do { e += ~~(Math.random() * c) } while (document.getElementById(e)) return e }, getSelectorFromElement: function t(e) { var selector = e.getAttribute('data-u-target') if (!selector || '#' === selector) { var n = e.getAttribute('href') selector = n && '#' !== n ? n.trim() : '' } try { return document.querySelector(selector) ? selector : null } catch (t) { return null } }, getTransitionDurationFromElement: function t(e) { if (!e) return 0 var n = u['default'](e).css('transition-duration'), i = u['default'](e).css('transition-delay'), o = parseFloat(n), a = parseFloat(i) if (!o && !a) return 0 else return ( (n = n.split(',')[0]), (i = i.split(',')[0]), (parseFloat(n) + parseFloat(i)) * f ) }, reflow: function t(e) { return e.offsetHeight }, triggerTransitionEnd: function t(e) { u['default'](e).trigger(l) }, supportsTransitionEnd: function t() { return Boolean(l) }, isElement: function t(e) { return (e[0] || e).nodeType }, typeCheckConfig: function t(e, n, o) { for (var a in o) if (Object.prototype.hasOwnProperty.call(o, a)) { var s = o[a], u = n[a], l = u && Util.isElement(u) ? 'element' : i(u) if (!new RegExp(s).test(l)) throw new Error( e.toUpperCase() + ': ' + 'Option "' + a + '" provided type "' + l + '" ' + 'but expected type "' + s + '".' ) } }, findShadowRoot: function t(e) { if (!document.documentElement.attachShadow) return null if ('function' == typeof e.getRootNode) { var n = e.getRootNode() return n instanceof ShadowRoot ? n : null } if (e instanceof ShadowRoot) return e if (!e.parentNode) return null else return Util.findShadowRoot(e.parentNode) }, } return s(), Util })($)), (bootstrap.Carousel = (function (t, Util) { function e(t) { return t && 'object' == typeof t && 'default' in t ? t : { default: t } } function n(t, props) { for (var e = 0; e < props.length; e++) { var n = props[e] if ( ((n.enumerable = n.enumerable || false), (n.configurable = true), 'value' in n) ) n.writable = true Object.defineProperty(t, n.key, n) } } function o(t, e, i) { if (e) n(t.prototype, e) if (i) n(t, i) return t } function a() { return ( (a = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var n = arguments[e] for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) t[i] = n[i] } return t }), a.apply(this, arguments) ) } var s = e(t), u = e(Util), l = 'u-carousel', c = '4.6.0', f = 'bs.u-carousel', h = 'bs.u-carousel.swipe', p = '.' + f, m = '.data-u-api', g = s['default'].fn[l], v = 37, y = 39, w = 500, b = 40, Default = { interval: 5e3, keyboard: true, slide: false, pause: 'hover', wrap: true, touch: false, swipe: true, }, C = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', pause: '(string|boolean)', wrap: 'boolean', touch: 'boolean', swipe: 'boolean', }, S = 'next', x = 'prev', A = 'left', _ = 'right', T = 'u-slide' + p, E = 'slid' + p, I = 'keydown' + p, k = 'mouseenter' + p, M = 'mouseleave' + p, L = 'touchstart' + p, P = 'touchmove' + p, O = 'touchend' + p, B = 'pointerdown' + p, F = 'pointerup' + p, N = 'dragstart' + p, U = 'load' + p + m, z = 'click' + p + m, H = 'u-carousel', $ = 'u-active', Y = 'u-slide', W = 'u-carousel-item-right', V = 'u-carousel-item-left', G = 'u-carousel-item-next', j = 'u-carousel-item-prev', K = 'pointer-event', Z = '.u-active', X = '.u-active.u-carousel-item', J = '.u-carousel-item', tt = '.u-carousel-item img', nt = '.u-carousel-item-next, .u-carousel-item-prev', rt = '.u-carousel-indicators, .u-carousel-thumbnails', ot = '[data-u-slide], [data-u-slide-to]', at = '[data-u-ride="carousel"]', st = { TOUCH: 'touch', PEN: 'pen' }, Carousel = (function () { function Carousel(t, e) { var n = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0 ;(this._items = null), (this._interval = null), (this._activeElement = null), (this._isPaused = false), (this._isSliding = false), (this.touchTimeout = null), (this.touchStartX = 0), (this.touchDeltaX = 0), (this._config = this._getConfig(e)), (this._element = t), (this._indicatorsElement = this._element.querySelector(rt)), (this._touchSupported = !this._element.matches('.u-form') && n), (this._pointerEvent = Boolean( window.PointerEvent || window.MSPointerEvent )), this._addEventListeners() } var e = Carousel.prototype return ( (e.next = function t() { if (!this._isSliding) this._slide(S) }), (e.nextWhenVisible = function t() { var e = s['default'](this._element) if ( !document.hidden && e.is(':visible') && 'hidden' !== e.css('visibility') ) this.next() }), (e.prev = function t() { if (!this._isSliding) this._slide(x) }), (e.pause = function t(e) { if (!e) this._isPaused = true if (this._element.querySelector(nt)) u['default'].triggerTransitionEnd(this._element), this.cycle(true) clearInterval(this._interval), (this._interval = null) }), (e.cycle = function t(e) { if (!e) this._isPaused = false if (this._interval) clearInterval(this._interval), (this._interval = null) if (this._config.interval && !this._isPaused) this._updateInterval(), (this._interval = setInterval( (document.visibilityState ? this.nextWhenVisible : this.next ).bind(this), this._config.interval )) }), (e.to = function t(index) { var e = this this._activeElement = this._element.querySelector(X) var n = this._getItemIndex(this._activeElement) if (!(index > this._items.length - 1 || index < 0)) { if (this._isSliding) return ( s['default'](this._element).one(E, function () { return e.to(index) }), void 0 ) if (n === index) return this.pause(), this.cycle(), void 0 var i = index > n ? S : x this._slide(i, this._items[index]) } }), (e.dispose = function t() { if ( (s['default'](this._element).off(p), s['default'].removeData(this._element, f), s['default'].removeData(this._element, h), (this._items = null), (this._config = null), (this._element = null), this._interval) ) clearInterval(this._interval) ;(this._interval = null), (this._isPaused = null), (this._isSliding = null), (this._activeElement = null), (this._indicatorsElement = null) }), (e._getConfig = function t(e) { return ( (e = a({}, Default, e)), u['default'].typeCheckConfig(l, e, C), e ) }), (e._handleSwipe = function t() { var e = Math.abs(this.touchDeltaX) if (!(e <= b)) { var n = e / this.touchDeltaX if (((this.touchDeltaX = 0), n > 0)) this.prev() if (n < 0) this.next() } }), (e._addEventListeners = function t() { var e = this if (this._config.keyboard) s['default'](this._element).on(I, function (t) { return e._keydown(t) }) if ('hover' === this._config.pause) s['default'](this._element) .on(k, function (t) { return e.pause(t) }) .on(M, function (t) { return e.cycle(t) }) if (this._config.touch) this._addTouchEventListeners() }), (e._addTouchEventListeners = function t() { var e = this if (this._touchSupported) { var n = function t(n) { if ( e._pointerEvent && st[n.originalEvent.pointerType.toUpperCase()] ) e.touchStartX = n.originalEvent.clientX else if (!e._pointerEvent) e.touchStartX = n.originalEvent.touches[0].clientX }, move = function move(t) { if ( t.originalEvent.touches && t.originalEvent.touches.length > 1 ) e.touchDeltaX = 0 else e.touchDeltaX = t.originalEvent.touches[0].clientX - e.touchStartX }, i = function t(n) { if ( e._pointerEvent && st[n.originalEvent.pointerType.toUpperCase()] ) e.touchDeltaX = n.originalEvent.clientX - e.touchStartX if ((e._handleSwipe(), 'hover' === e._config.pause)) { if ((e.pause(), e.touchTimeout)) clearTimeout(e.touchTimeout) e.touchTimeout = setTimeout(function (t) { return e.cycle(t) }, w + e._config.interval) } } if ( (s['default'](this._element.querySelectorAll(tt)).on( N, function (t) { return t.preventDefault() } ), this._pointerEvent) ) s['default'](this._element).on(B, function (t) { return n(t) }), s['default'](this._element).on(F, function (t) { return i(t) }), this._element.classList.add(K) else s['default'](this._element).on(L, function (t) { return n(t) }), s['default'](this._element).on(P, function (t) { return move(t) }), s['default'](this._element).on(O, function (t) { return i(t) }) } }), (e._keydown = function t(e) { if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) { case v: e.preventDefault(), this.prev() break case y: e.preventDefault(), this.next() break } }), (e._getItemIndex = function t(e) { return ( (this._items = e && e.parentNode ? [].slice.call(e.parentNode.querySelectorAll(J)) : []), this._items.indexOf(e) ) }), (e._getItemByDirection = function t(e, n) { var i = e === S, o = e === x, a = this._getItemIndex(n), s = this._items.length - 1, u if (((o && 0 === a) || (i && a === s)) && !this._config.wrap) return n var l, c = (a + (e === x ? -1 : 1)) % this._items.length return -1 === c ? this._items[this._items.length - 1] : this._items[c] }), (e._triggerSlideEvent = function t(e, n) { var i = this._getItemIndex(e), o = this._getItemIndex(this._element.querySelector(X)), a = s['default'].Event(T, { relatedTarget: e, direction: n, from: o, to: i, }) return s['default'](this._element).trigger(a), a }), (e._setActiveIndicatorElement = function t(e) { if (this._indicatorsElement) { var n = [].slice.call( this._indicatorsElement.querySelectorAll(Z) ) s['default'](n).removeClass($) var i = this._indicatorsElement.children[this._getItemIndex(e)] if (i) s['default'](i).addClass($) } }), (e._updateInterval = function t() { var e = this._activeElement || this._element.querySelector(X) if (e) { var n = parseInt(e.getAttribute('data-interval'), 10) if (n) (this._config.defaultInterval = this._config.defaultInterval || this._config.interval), (this._config.interval = n) else this._config.interval = this._config.defaultInterval || this._config.interval } }), (e._slide = function e(n, i) { var o = this, a = this._element.querySelector(X), l = this._getItemIndex(a), c = i || (a && this._getItemByDirection(n, a)), f = this._getItemIndex(c), h = Boolean(this._interval), p, m, g, v if (n === S) (p = V), (m = G), (g = A) else (p = W), (m = j), (g = _) if (c && s['default'](c).hasClass($)) return (this._isSliding = false), void 0 if (!this._triggerSlideEvent(c, g).isDefaultPrevented()) if (a && c) { if (((this._isSliding = true), h)) this.pause() this._setActiveIndicatorElement(c), (this._activeElement = c) var y = s['default'].Event(E, { relatedTarget: c, direction: g, from: l, to: f, }), w = null if (s['default'](this._element).hasClass(H)) { s['default'](c).addClass(m), u['default'].reflow(c), s['default'](a).addClass(p), s['default'](c).addClass(p) var b = u['default'].getTransitionDurationFromElement(a), C = this._element.className, x = /u-carousel-duration-(\d+)/.exec(C) if (x && 2 === x.length) b = parseFloat(x[1]) || 0 if (h) { var T = parseFloat(t(this._element).attr('data-interval')) + b if (Number.isFinite(T) && T > 0) (w = this._config.interval), (this._config.interval = T) } s['default'](a) .one(u['default'].TRANSITION_END, function () { s['default'](c) .removeClass(p + ' ' + m) .addClass($), s['default'](a).removeClass($ + ' ' + m + ' ' + p), (o._isSliding = false), setTimeout(function () { return s['default'](o._element).trigger(y) }, 0) }) .emulateTransitionEnd(b) } else s['default'](a).removeClass($), s['default'](c).addClass($), (this._isSliding = false), s['default'](this._element).trigger(y) if (h) this.cycle() if (w) this._config.interval = w } }), (Carousel._jQueryInterface = function t(e) { return this.each(function () { var data = s['default'](this).data(f), t = a({}, Default, s['default'](this).data()) if ('object' == typeof e) t = a({}, t, e) var n = 'string' == typeof e ? e : t.uSlide if (!data) { var o if ( ((data = new Carousel(this, t)), s['default'](this).data(f, data), !s['default'](this).data(h)) ) s['default'](this).data(h, new i(this, t)) } if ('number' == typeof e) data.to(e) else if ('string' == typeof n) { if (void 0 === data[n]) throw new TypeError('No method named "' + n + '"') data[n]() } else if (t.interval && t.uRide) data.pause(), data.cycle() }) }), (Carousel._dataApiClickHandler = function t(e) { var selector = u['default'].getSelectorFromElement(this) if (selector) { var n = s['default'](selector)[0] if (n && s['default'](n).hasClass(H)) { var i = a( {}, s['default'](n).data(), s['default'](this).data() ), o = this.getAttribute('data-u-slide-to') if (o) i.interval = false if ((Carousel._jQueryInterface.call(s['default'](n), i), o)) s['default'](n).data(f).to(o) e.preventDefault() } } }), o(Carousel, null, [ { key: 'VERSION', get: function t() { return c }, }, { key: 'Default', get: function t() { return Default }, }, ]), Carousel ) })() return ( s['default'](document).on(z, ot, Carousel._dataApiClickHandler), s['default'](window).on(U, function () { for ( var t = [].slice.call(document.querySelectorAll(at)), e = 0, n = t.length; e < n; e++ ) { var i = s['default'](t[e]) Carousel._jQueryInterface.call(i, i.data()) } }), (s['default'].fn[l] = Carousel._jQueryInterface), (s['default'].fn[l].Constructor = Carousel), (s['default'].fn[l].noConflict = function () { return (s['default'].fn[l] = g), Carousel._jQueryInterface }), Carousel ) })($, bootstrap.Util)), (window.bootstrap = bootstrap) }, 917: function (t, e, n) { 'use strict' function i(t) { if ( ((this.$element = o(t)), (this.carousel = this.$element.data('bs.u-carousel')), (this.options = o.extend({}, i.DEFAULTS, this.carousel._config)), (this.startX = null), (this.startY = null), (this.startTime = null), (this.cycling = null), (this.$active = null), (this.$items = null), (this.$next = null), (this.$prev = null), (this.dx = null), (this.sliding = false), !this.$element.hasClass('u-form')) ) this.$element .on('touchstart.bs.u-carousel', this.touchstart.bind(this)) .on('touchmove.bs.u-carousel', this.touchmove.bind(this)) .on('touchend.bs.u-carousel', this.touchend.bind(this)) .on('u-slide.bs.u-carousel', this.startSliding.bind(this)) .on('slid.bs.u-carousel', this.stopSliding.bind(this)) } t.exports = i var o = n(17) ;(i.DEFAULTS = { swipe: 50 }), (i.prototype.startSliding = function () { this.sliding = true }), (i.prototype.stopSliding = function () { this.sliding = false }), (i.prototype.touchstart = function (t) { if (!this.sliding && this.options.swipe) { var e = t.originalEvent.touches ? t.originalEvent.touches[0] : t ;(this.dx = 0), (this.startX = e.pageX), (this.startY = e.pageY), (this.cycling = null), (this.width = this.$element.width()), (this.startTime = t.timeStamp) } }), (i.prototype.touchmove = function (t) { if (!this.sliding && this.options.swipe && this.startTime) { var e = t.originalEvent.touches ? t.originalEvent.touches[0] : t, n = e.pageX - this.startX, i = e.pageY - this.startY if (!(Math.abs(n) < Math.abs(i))) { if (null === this.cycling) if (((this.cycling = !!this.carousel.interval), this.cycling)) this.carousel.pause() t.preventDefault(), (this.dx = (n / (this.width || 1)) * 100), this.swipe(this.dx) } } }), (i.prototype.touchend = function (t) { if (!this.sliding && this.options.swipe && this.startTime) if (this.$active) { var all = o() .add(this.$active) .add(this.$prev) .add(this.$next) .carousel_transition(true), e = (t.timeStamp - this.startTime) / 1e3, n = Math.abs(this.dx / e) if (this.dx > 40 || (this.dx > 0 && n > this.options.swipe)) this.carousel.prev() else if (this.dx < -40 || (this.dx < 0 && n > this.options.swipe)) this.carousel.next() else this.$active .one(o.support.transition.end, function () { all.removeClass('u-carousel-item-prev u-carousel-item-next') }) .emulateTransitionEnd( 1e3 * this.$active.css('transition-duration').slice(0, -1) ) if ((all.css('transform', ''), this.cycling)) this.carousel.cycle() ;(this.$active = null), (this.startTime = null) } }), (i.prototype.swipe = function (t) { var e = this.$active || this.getActive() if (t < 0) { if ( (this.$prev .css('transform', 'translate3d(0,0,0)') .removeClass('u-carousel-item-prev') .carousel_transition(true), !this.$next.length || this.$next.hasClass('u-active')) ) return this.$next .carousel_transition(false) .addClass('u-carousel-item-next') .css('transform', 'translate3d(' + (t + 100) + '%,0,0)') } else { if ( (this.$next .css('transform', '') .removeClass('u-carousel-item-next') .carousel_transition(true), !this.$prev.length || this.$prev.hasClass('u-active')) ) return this.$prev .carousel_transition(false) .addClass('u-carousel-item-prev') .css('transform', 'translate3d(' + (t - 100) + '%,0,0)') } e.carousel_transition(false).css( 'transform', 'translate3d(' + t + '%, 0, 0)' ) }), (i.prototype.getActive = function () { if ( ((this.$active = this.$element.find('.u-carousel-item.u-active')), (this.$items = this.$active.parent().children()), (this.$next = this.$active.next()), !this.$next.length && this.options.wrap) ) this.$next = this.$items.first() if ( ((this.$prev = this.$active.prev()), !this.$prev.length && this.options.wrap) ) this.$prev = this.$items.last() return this.$active }), (o.fn.carousel_transition = function (t) { return ( (t = t ? '' : 'none'), this.each(function () { o(this).css('transition', t) }) ) }) }, 92: function (t, e, n) { 'use strict' var i = n(21) ;(t.exports = i.md = i.md || {}), (i.md.algorithms = i.md.algorithms || {}) }, 934: function (t, e, n) { 'use strict' function i(t) { var data = t.attr('data-map') if (data) { data = Utility.decodeJsonAttribute(data) var e = t.contents()[0], n = e.createElement('script') ;(n.type = 'text/javascript'), (n.innerHTML = 'var data = ' + JSON.stringify(data) + ';\n;' + 'var mapIframeApiReady = function () {\n' + ' parent.mapIframeApiReady(google, document.getElementById("map"), data);\n' + '}') var i = e.createElement('script') if ( ((i.type = 'text/javascript'), (i.src = '//maps.google.com/maps/api/js?key=' + data.apiKey + '&callback=mapIframeApiReady'), data.lang) ) i.src += '&language=' + data.lang e.head.appendChild(n), e.head.appendChild(i), $(e.body).append( '<style>' + ' #map { width: 100%; height: 100%; }' + ' body { margin: 0; }' + ' .marker-internal { width: 180px; font-weight: normal; }' + ' .marker-internal a { text-decoration: none; color:#427fed; }' + ' .marker-internal strong { font-weight: 500; font-size: 14px; }' + '</style>' + '<div id="map"></div>' ) } } function o(t) { var e = '' if (t.title) e += '<strong>' + t.title + '</strong>' if (t.description) e += '<div>' + t.description.replace(/\n/g, '<br>') + '</div>' if (t.linkUrl) { var url, n e += '<a href="' + t.linkUrl + '" target="_blank"><span>' + (t.linkCaption || t.linkUrl) + '</span></a>' } if (e) e = '<div class="marker-internal">' + e + '</div>' return e } var MapsLoader = {} ;(window.loadMapsContent = function () { $('iframe.map-content').each(function () { var t = $(this) if (0 === t.contents().find('#map').length) i(t) }) }), (window.mapIframeApiReady = function (google, t, data) { data.markers = data.markers || [] var e = data.zoom if (!e && 1 === data.markers.length) e = data.markers[0].zoom if (!e) e = 14 if ( ((e = parseInt(e, 10)), (data.map = data.map || {}), (data.map.zoom = e), (data.map.mapTypeId = 'satellite' === data.typeId ? google.maps.MapTypeId.HYBRID : google.maps.MapTypeId.ROADMAP), data.markers.length) ) data.map.center = data.markers[0].position var map = new google.maps.Map(t, data.map || {}), n = new google.maps.LatLngBounds() if ( (data.markers.forEach(function (t) { t.map = map var e = new google.maps.Marker(t) n.extend(new google.maps.LatLng(t.position.lat, t.position.lng)) var i = o(t) if (i) { var a = new google.maps.InfoWindow({ content: $('<textarea/>').html(i).text(), }) e.addListener('click', function () { a.open(e.get('map'), e) }) } }), data.markers.length > 1 && e && !isNaN(e)) ) { map.fitBounds(n) var i = google.maps.event.addListener( map, 'zoom_changed', function () { if ( (google.maps.event.removeListener(i), map.getZoom() > e || 0 === map.getZoom()) ) map.setZoom(e) } ) } }), (window.MapsLoader = MapsLoader) }, 935: function (t, e, n) { 'use strict' function ResponsiveMenu(t, e) { ;(this.responsive = t), (this.root = e || i('body')), this.init() } t.exports = ResponsiveMenu var i = window.jQuery ;(ResponsiveMenu.prototype.init = function init() { if (this.root.is('body')) this.subscribe() this.initStyles() }), (ResponsiveMenu.prototype.subscribe = function t() { this.root.on( 'click', '.u-menu .menu-collapse', function (t) { t.preventDefault() var e = i(t.currentTarget).closest('.u-menu') if (ResponsiveMenu.isActive(e)) this.close(e) else this.open(e) }.bind(this) ), this.root.on( 'click', '.u-menu .u-menu-close', function (t) { t.preventDefault() var e = i(t.currentTarget).closest('.u-menu') this.close(e) }.bind(this) ), this.root.on( 'click', '.u-menu .u-menu-overlay', function (t) { var e = i(t.currentTarget).closest('.u-menu.open') this.close(e) }.bind(this) ), this.root.find('.u-menu').on( 'click', '.u-nav-container-collapse .u-nav-link', function (t) { var e = i(t.currentTarget), n if (!e.siblings('.u-nav-popup').length) { var o = e.attr('href') if (o && -1 !== o.indexOf('#')) { var a = i(t.currentTarget).closest('.u-menu') this.close(a) } } }.bind(this) ), this.root .find('.u-menu:not(.u-menu-one-level)') .on('click', '.u-nav-container-collapse .u-nav-link', function (t) { var e = i(t.currentTarget).siblings('.u-nav-popup'), nav, n = e.closest('.u-menu').attr('data-submenu-level') || 'on-click' if (e.length && 'on-click' === n) { t.preventDefault(), t.stopPropagation(), (t.returnValue = false), e.one( 'transitionend webkitTransitionEnd oTransitionEnd', function (t) { t.stopPropagation(), e.removeClass('animating'), e.toggleClass('open'), e.css({ 'max-height': e.is('.open') ? 'none' : '', visibility: '', }), e .find('.open') .removeClass('open') .css('max-height', '') } ), e.css({ 'max-height': 'none', visibility: 'visible' }) var o = e.outerHeight() e.css('max-height', e.is('.open') ? o : 0), e.addClass('animating'), e[0].offsetHeight, e.css('max-height', e.is('.open') ? 0 : o) } if (e.length && 'with-reload' === n) if ( i(this).attr('href') && i(this).attr('href').indexOf('#') > -1 ) if (window.location.href.indexOf(i(this).attr('href')) > -1) window.location.reload(true) else window.location = i(this).attr('href') }), i(window).on( 'resize', function () { if (this.screenWidth !== window.innerWidth) i('.u-menu.open').each( function (t, el) { this.close(i(el)) }.bind(this) ) }.bind(this) ), i(document).keyup( function (t) { if (27 === t.keyCode) i('.u-menu.open').each( function (t, el) { this.close(i(el)) }.bind(this) ) }.bind(this) ), i(this.root).on( 'mouseenter touchstart', '.u-nav-container ul > li', function (t) { ResponsiveMenu.fixDirection(this.root, i(t.currentTarget)) }.bind(this) ) }), (ResponsiveMenu.prototype.initStyles = function t() { this.root.find('.u-menu').each(function () { var menu = i(this), style = menu.find('.offcanvas-style'), t = menu .find('.u-nav-container-collapse .u-sidenav') .attr('data-offcanvas-width') || 250 if (!style.length) (style = i('<style class="offcanvas-style"></style>')), menu.append(style) style.html( ' .u-offcanvas .u-sidenav { flex-basis: {width} !important; } .u-offcanvas:not(.u-menu-open-right) .u-sidenav { margin-left: -{width}; } .u-offcanvas.u-menu-open-right .u-sidenav { margin-right: -{width}; } @keyframes menu-shift-left { from { left: 0; } to { left: {width}; } } @keyframes menu-unshift-left { from { left: {width}; } to { left: 0; } } @keyframes menu-shift-right { from { right: 0; } to { right: {width}; } } @keyframes menu-unshift-right { from { right: {width}; } to { right: 0; } } '.replace( /\{width\}/g, t + 'px' ) ) }) }), (ResponsiveMenu.prototype.onResponsiveResize = function t() { i('.u-menu').each( function (t, el) { var e = i(el).attr('data-responsive-from') || 'MD', n = this.responsive.modes.indexOf(e) if (-1 === n) n = 0 var o = this.responsive.modes.slice(n) ResponsiveMenu.toggleResponsive( el, -1 !== o.indexOf(this.responsive.mode) ), this.megaResize(el, 1) }.bind(this) ) }), (ResponsiveMenu.toggleResponsive = function t(e, n) { i(e).toggleClass('u-enable-responsive', n) }), (ResponsiveMenu.prototype.close = function close(menu, t) { if (!window.app || !window.app.modes) { if (ResponsiveMenu.isActive(menu)) this.closeMenu(menu, t) } else if ( (this.closeMenu(menu, t), this.setOverlayOpacity(menu), ResponsiveMenu.isOffcanvasMode(menu)) ) app.modes().resetOffCanvas() }), (ResponsiveMenu.prototype.closeMenu = function t(menu, e) { if ((this.enableScroll(), ResponsiveMenu.isOffcanvasMode(menu))) this.offcanvasMenuClose(menu) else this.overlayMenuClose(menu) this.root.removeClass('menu-overlay'), this.hideOverlay(menu, e) }), (ResponsiveMenu.prototype.open = function open(menu) { if ( (this.root.addClass('menu-overlay'), !window.app || !window.app.modes) ) { if (!ResponsiveMenu.isActive(menu)) this.openMenu(menu) } else if ( (this.setOverlayOpacity(menu), this.openMenu(menu), ResponsiveMenu.isOffcanvasMode(menu)) ) app.modes().setOffCanvas() }), (ResponsiveMenu.prototype.setOverlayOpacity = function t(menu) { menu.find('.u-menu-overlay').css('opacity', '') }), (ResponsiveMenu.prototype.openMenu = function open(menu) { if ( ((this.screenWidth = window.innerWidth), this.disableScroll(), ResponsiveMenu.isOffcanvasMode(menu)) ) this.offcanvasMenuOpen(menu) else this.overlayMenuOpen(menu) this.showOverlay(menu) }), (ResponsiveMenu.prototype.offcanvasMenuOpen = function t(menu) { var e = this.root if ( (menu.addClass('open'), e.addClass('u-offcanvas-opened'), menu.is('.u-offcanvas-shift')) ) e.addClass( 'u-offcanvas-shifted-' + (menu.hasClass('u-menu-open-right') ? 'right' : 'left') ) }), (ResponsiveMenu.prototype.offcanvasMenuClose = function t(menu) { if ( (menu.removeClass('open'), this.root.removeClass( 'u-offcanvas-opened u-offcanvas-shifted-left u-offcanvas-shifted-right' ), menu.is('.u-offcanvas-shift')) ) this.root.addClass( 'u-offcanvas-unshifted-' + (menu.hasClass('u-menu-open-right') ? 'right' : 'left') ) }), (ResponsiveMenu.prototype.megaResize = function t(menu, e) { if (((menu = i(menu)), (e = e || 1), menu.hasClass('u-menu-mega'))) menu.outerHeight(), menu.each(function () { var menu = i(this) menu.find('.u-mega-popup').each(function () { var t = i(this), n = t.attr('data-mega-width') || 'content' if ('custom' !== n && 'content' !== n) { var o = 'sheet' === n ? menu.closest('.u-sheet, .u-body') : menu.closest('body, .u-body'), a = o.offset(), s = o.outerWidth() if ( (t.css({ left: '', width: '' }), t.removeClass('u-popup-left u-popup-right'), t.addClass('u-hidden'), menu.outerHeight(), t.removeClass('u-hidden'), menu.outerHeight(), 'content' === n) ) return t.css('width', 'auto'), void 0 var u = t.offset(), l = (a.left - u.left) / e, c = parseFloat(t.css('left') || 0) t.css({ left: c + Math.round(l) + 'px', width: s + 'px' }) } }) }) }), (ResponsiveMenu.prototype.hideOverlay = function t(menu, e) { var overlay = menu.find('.u-menu-overlay'), n = function () { if (!ResponsiveMenu.isActive(menu)) menu.find('.u-nav-container-collapse').css('width', ''), this.root.filter('body').find('header.u-sticky').css('top', '') }.bind(this) if (e) n() else overlay.fadeOut(500, n) }), (ResponsiveMenu.prototype.showOverlay = function t(menu) { var overlay = menu.find('.u-menu-overlay') menu.find('.u-nav-container-collapse').css('width', '100%'), overlay.fadeIn(500) }), (ResponsiveMenu.prototype.disableScroll = function t() { if (this.root.is('body')) document.documentElement.style.overflow = 'hidden' }), (ResponsiveMenu.prototype.enableScroll = function t() { if (this.root.is('body')) document.documentElement.style.overflow = '' }), (ResponsiveMenu.prototype.overlayMenuOpen = function t(menu) { menu.addClass('open') }), (ResponsiveMenu.prototype.overlayMenuClose = function t(menu) { menu.removeClass('open') }), (ResponsiveMenu.isOffcanvasMode = function (menu) { return menu.is('.u-offcanvas') }), (ResponsiveMenu.isActive = function (menu) { return menu.hasClass('open') }), (ResponsiveMenu.fixDirection = function t(e, el) { if (el && el.length) { e = i(e) var n = 'u-popup-left', o = 'u-popup-right', a i(el) .children('.u-nav-popup') .each(function () { var t = i(this) t.removeClass(n + ' ' + o) var a = t.parent().closest('.u-nav-popup'), s = t.attr('data-mega-width') || 'content', u = Boolean(a.length) if ('content' === s) { var l = '' if (t.parents('.' + n).length) l = n else if (t.parents('.' + o).length) l = o if (l) t.addClass(l) else { var c = t[0].getBoundingClientRect(), f = e[0].getBoundingClientRect(), h = 'undefined' == typeof app ? 1 : app.editor.preview.scale, p = c.right - f.right, m = f.left - c.left if (p > 1) t.css('left', u ? '' : (f.right - c.right) / h + 'px'), t.css('right', u ? '' : 'auto'), t.addClass(n) else if (m > 1) t.css('left', u ? '' : '0px'), t.css('right', u ? '' : 'auto'), t.addClass(o) } } }) } }), (window.ResponsiveMenu = ResponsiveMenu) }, 956: function (t, e, n) { 'use strict' var i = n(17), ProductBadge t.exports.update = function update(t) { if (!t || !t.length) t = i('.u-product-badge[data-product-created]') t.each(function () { var t = i(this), e = t.attr('data-product-created'), n, o if (Date.now() - e <= 30 * (60 * 60 * 24 * 1e3)) t.removeClass('u-hidden-block') }) } }, 957: function (t, e, n) { 'use strict' function i() { this.$cart = $('.u-shopping-cart-icon').parent( '.u-shopping-cart[href^="#"]' ) } var o = n(12613) t.exports = i var cart = null ;(i.getCart = function () { if (!cart) cart = new i() return cart }), (i.prototype.init = function init(data) { var t = this.getProducts(), products = data.products, e = data.categories if (t && products && products.length) { var n = [] t.forEach( function (product) { var index = products.findIndex(function (t) { return product.id === t.id }) if (-1 !== index) { var t = products[index] if (((t.quantity = product.quantity || 1), !t.categoriesData)) t.categoriesData = this.getCategoriesData(t.categories, e) n.push(t) } }.bind(this) ), this.addProducts(n) } this.update() }), (i.prototype.getCategoriesData = function t(productCategories, e) { var n = [], i = (document.body.getAttribute('data-path-to-root') || './') + 'products/products.html#/1///' if ( ((productCategories || []).forEach(function (id) { var t = e.find(function (t) { return t.id === id }) if (t) n.push({ link: i + t.id, title: t.title }) }), !n.length) ) n.push({ link: i, title: 'Uncategorized' }) return n }), (i.prototype.clear = function t() { o.remove(), this.update() }), (i.prototype.update = function update() { if (this.$cart.length) this.$cart.find('.u-shopping-cart-count').text(this.count()) }), (i.prototype.count = function t() { var products = this.getProducts() if (!products) return 0 else return products.reduce(function (t, product) { return t + product.quantity }, 0) }), (i.prototype.addProduct = function addProduct(product) { var products = this.getProducts() || [], t = product.name, e = products.filter(function (el) { return el.name === t })[0] if (e) e.quantity += 1 else products.push(product) this.addProducts(products), this.update() }), (i.prototype.addProducts = function addProduct(products) { o.add(JSON.stringify(products)) }), (i.prototype.getProducts = function t() { var storage = o.get() if (!storage) return null else return JSON.parse(storage) }), (i.prototype.removeProductById = function t(id) { var products, e = (this.getProducts() || []).filter(function (product) { return product.id !== id }) if (!e.length) this.clear() else this.addProducts(e) this.update() }), (window.PaymentCart = i) }, }) //products slideshows let currentSlideIndex = 0; function moveSlide(direction) { const carousel = document.querySelector('.carousel'); const items = document.querySelectorAll('.carousel-item'); const itemWidth = items[0].offsetWidth; const totalItems = items.length; // Number of visible items on the screen const visibleItems = Math.round(carousel.offsetWidth / itemWidth); // Adjust currentSlideIndex to handle direction currentSlideIndex += direction; // Ensure the index stays within bounds of available items if (currentSlideIndex < 0) { currentSlideIndex = 0; } else if (currentSlideIndex > totalItems - visibleItems) { currentSlideIndex = totalItems - visibleItems; if (currentSlideIndex < 0) { currentSlideIndex = 0; } } const offset = -(currentSlideIndex * itemWidth); carousel.style.transform = `translateX(${offset}px)`; } // Recalculate on window resize to ensure responsiveness window.addEventListener('resize', function() { currentSlideIndex = 0; // Reset to the first item when resizing moveSlide(0); // Recalculate the carousel's item width and layout }); // Slideshow functionality for each box document.querySelectorAll('.image-slideshow').forEach(function (slideshow, i) { let slides = slideshow.querySelectorAll('.slide'); let dots = slideshow.querySelectorAll('.dot'); let currentSlide = 0; function showSlide(index) { slides.forEach((slide, i) => { slide.style.display = 'none'; dots[i].classList.remove('active'); }); slides[index].style.display = 'block'; dots[index].classList.add('active'); } showSlide(currentSlide); dots.forEach((dot, index) => { dot.addEventListener('click', function () { currentSlide = index; showSlide(currentSlide); }); }); }); // Lightbox functionality const lightbox = document.getElementById('lightbox') const lightboxImg = document.getElementById('lightbox-img') const closeLightbox = document.querySelector('.close-lightbox') // Show lightbox when an image is clicked document.querySelectorAll('.image-slideshow img').forEach((img) => { img.addEventListener('click', function () { lightbox.style.display = 'flex' // Show lightbox lightboxImg.src = this.src // Set lightbox image source to clicked image }) }) // Close lightbox when "X" is clicked closeLightbox.addEventListener('click', function () { lightbox.style.display = 'none' // Hide lightbox }) // Optional: Close lightbox when clicking outside the image lightbox.addEventListener('click', function (e) { if (e.target !== lightboxImg) { lightbox.style.display = 'none' // Hide lightbox } })