!function (a) { var b, c = { _breaker: { }, _start: null, each: function () { var a, b = function (b, d) { return b === c._breaker || Boolean(d) && c.elapsed() > a }; return function (d, e, f) { var g, h, i = c.type(d); if (1 === arguments.length) return void (a = arguments[0]); if (f = c.extend({ timeout: !1 }, f), 'object' === i && d.hasOwnProperty) { for (g in d) if (d.hasOwnProperty(g) && b(e(d[g], g), f.timeout)) return } else if (d) for (g = 0, h = d.length; g < h; g++) if (b(e(d[g], g), f.timeout)) return } }(), extend: function (a) { var b, c, d, e, f = arguments.length; for (a = a || { }, c = 1; c < f; c++) if (e = arguments[c], void 0 !== e && null !== e) for (d in e) b = e[d], a !== b && void 0 !== b && (a[d] = b); return a }, noop: function () { }, type: function () { var a = function (a, b) { try { return ('function' == typeof window[b] || 'object' == typeof window[b]) && a instanceof window[b] } catch (c) { } return !1 }, b = function (b) { return a(b, 'HTMLDocument') || 'object' == typeof b && ('defaultView' in b || 'parentWindow' in b) }, c = function (b) { return a(b, 'HTMLElement') || 'object' == typeof b && 1 === b.nodeType && 'string' == typeof b.nodeName }, d = function (a) { return a == a.window }, e = function (a) { return Object.prototype.toString.call(a).slice(8, - 1).toLowerCase() }; return function (a) { return null === a ? 'null' : void 0 === a ? 'undefined' : c(a) ? 'element' : d(a) ? 'window' : b(a) ? 'document' : e(a) } }() }; c.extend(c, { addClass: function (a, b) { c.hasClass(a, b) || (a.className = (a.className ? a.className + ' ' : '') + b) }, all: function (a, b) { var d = 'array' === c.type(a) ? [ ] : { }; return c.each(a, function (a, e) { b(a, e) && ('array' === c.type(d) ? d.push(a) : d[e] = a) }), d }, ancestors: function (a) { for (var b = [ a ]; (a = a.parentNode) && 1 === a.nodeType; ) b.push(a); return b }, apiCallback: function (a, b) { return function (d) { 'string' === c.type(d) && (d = { response: [ d ] }), a.apply(b, d.response.concat(d.data)) } }, attributes: function (a, b) { var d; b = b || { }; for (d in b) 'function' === c.type(a.setAttribute) ? a.setAttribute(d, b[d]) : a['class' === d ? 'className' : d] = b[d] }, attrValues: function (a, b, c) { return c = c || ' ', b = a[b], b && b.split ? b.split(c) : [ ] }, batchable: function (a, b) { b = b || c.noop; var d = function () { return c.extend({ batch: !0, timeout: 100 }, b()) }, e = c.traits.cors && c.traits.json, f = [ ], g = null, h = function (b) { a.apply(null, b) }, i = function () { null !== g && (clearTimeout(g), g = null), 1 === f.length ? h(f[0].arguments) : f.length > 1 && h(f), f = [ ] }, j = function () { f.push({ arguments: c.toArray(arguments), batch: !0 }), e && d().batch ? null === g && (g = setTimeout(c.entryPoint(c.bind(function () { i() }, this)), d().timeout)) : i() }; return c.extend(j, { flush: i, now: a }), j }, batchArgs: function (a, b) { return c.map(a, function (a) { return void 0 === b ? a.arguments : a.arguments[b] }) }, batchCallType: function (a) { var b; return c.reduce(null, a, function (a, c) { return b = c[0], null !== a && b !== a ? 'batch' : b }) }, batched: function (a) { if (a = c.toArray(a), 'array' === c.type(a)) return c.all(a, function (a) { return 'object' === c.type(a) && a.batch && 'array' === c.type(a.arguments) }).length === a.length }, bind: function (a, b) { return function () { return a.apply(b, arguments) } }, cache: function () { var a = { }, b = 'vglnk_' + (new Date).getTime(), d = 0; return function (e, f, g) { e && 'string' !== c.type(e) || (g = f, f = e, e = a); var h = e[b]; if (h || void 0 !== g) return h || (h = ++d), a[h] || (e[b] = h, a[h] = { }), void 0 !== g && (a[h][f] = g), 'string' == typeof f ? a[h][f] : a[h] } }(), canonicalizeHostname: function () { var a = { }; return function (b) { 'string' == typeof b && (b = c.createA(b)); try { return a[b.hostname] || (a[b.hostname] = b.hostname ? b.hostname.toString().toLowerCase().replace(/^www\./, '').replace(/:.*$/, '') : ''), a[b.hostname] } catch (d) { return '' } } }(), clone: function (a) { return c.extend({ }, a) }, commonParams: function (a, b) { var d; return b = b || { }, d = { drKey: b.key ? null : b.dr_key, key: b.key, libId: b.library_id, subId: b.sub_id }, 'click' !== a && 'ping' !== a || c.extend(d, { cuid: b.cuid, loc: window.document.location.href, v: 1 }, d), d }, contains: function (a, b, d) { return Boolean(c.find(a, function (a) { return a === b }, d)) }, context: function (a) { if ('element' === c.type(a) && (a = a.ownerDocument), 'document' === c.type(a) && (a = a.defaultView || a.parentWindow), 'window' === c.type(a)) return a }, contextIsAncestor: function (a, b) { for (var c = a.self; c.parent && c.parent !== c; ) if (c = c.parent, c === b) return !0; return !1 }, cors: function (a, b, d) { var e, f = function () { var a, b = c.noop, f = [ ]; d ? d(e.responseText) : 'string' === c.type(e.responseText) && (a = e.responseText.match(/^\s*(?:\/\*\*\/)?([^(\s]+)\s*\((.*)\);?\s*$/)) && (b = a[1].replace(/(^\s+|\s+$)/g, ''), f = c.fromJSON('[' + a[2] + ']'), window[b].apply(window, f)) }; e = new window.XMLHttpRequest, e.onreadystatechange = function () { 4 === e.readyState && 200 === e.status && f() }; try { return e.open('POST', a), e.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'), e.withCredentials = !0, e.send(b), !0 } catch (g) { return !1 } }, createA: function (a, b) { return c.createEl('a', { href: a, target: b }) }, createEl: function (a, b, d, e) { var f = (e || document).createElement(a); return c.attributes(f, b), c.css(f, d), f }, css: function (a, b) { var d, e, f, g; if ('object' === c.type(b)) for (d in b) try { a.style[d] = b[d] } catch (h) { } else try { return e = window.getComputedStyle(a), f = c.toArray(arguments).slice(1), g = c.reduce({ }, f, function (a, b) { return a[b] = e.getPropertyValue(b), a }), 1 === f.length ? g[f[0]] : g } catch (h) { return } return a }, destructing: function (a) { return function (a) { var b, c = !1; return function () { return c || (b = a.apply(null, arguments), c = !0), b } }(a) }, elapsed: function (a) { var b = a || this._start; return b ? (new Date).getTime() - b.getTime() : 0 }, entryPoint: function (a) { return c.exceptionLogger(function () { var b; return c._start = new Date, c.observer.pause(), b = a.apply(this, arguments), c.observer.resume(), b }) }, escapeRegExp: function () { var a; return function (b) { return a = a || new RegExp('([.*+?^${}()|[\\]\\\\])', 'g'), b.replace(a, '\\$1') } }(), eventLink: function (a) { var b, c, d = a.target || a.srcElement; do { try { b = d.nodeType } catch (e) { return } if (1 === b && (c = d.tagName.toUpperCase(), 'A' === c || 'AREA' === c)) return d; d = d.parentNode } while (d) }, every: function (a, b) { return Boolean(!c.some(a, function (a) { return !b(a) })) }, exceptionLogger: function () { var a = !1, b = c.noop; return function (c, d) { return void 0 === d ? function () { if (!a) return c.apply(this, arguments); try { return c.apply(this, arguments) } catch (d) { b(d) } } : (a = d, void (b = c)) } }(), find: function (a, b, d) { var e; return c.each(a, function (a, d) { if (b(a, d)) return e = a, c._breaker }, d), e }, generateNodeFilter: function () { var a = function (a, c) { var d, e; for (c = ',' + c.join(',') + ',', d = 0, e = a.length; d < e; d++) if (b(a[d], c)) return !0; return !1 }, b = function (a, b) { return b.indexOf(',' + a + ',') !== - 1 }, d = function (b, d) { var e = c.attrValues(b, 'className'); return a(d, e) }, e = function (a, c) { return b(a.nodeName.toLowerCase(), c) }, f = function (b, d) { var f = c.attrValues(b, 'rel'); return e(b, ',a,') && a(d, f) }, g = function (a, b) { return b && b.length && c.contains(b, a) }; return function (a) { var b; return a = c.extend({ custom: null, classes: [ ], rels: [ ], selectors: [ ], tags: [ ] }, a), a.tags.length && (a.tags = ',' + a.tags.join(',').toLowerCase() + ','), c.isArray(a.selectors) && (a.selectors = a.selectors.join(',')), a.selectors && a.selectors.length && (b = c.select(a.selectors)), function (b, h, i) { h = c.extend({ ancestors: !0, self: !0 }, h), i = c.extend({ }, i); var j, k = { passed: !0 }, l = function (b, h, i, k) { return !(j && g(b, j) || a.tags && a.tags.length && e(b, a.tags) || a.classes && a.classes.length && d(b, a.classes) || a.rels && a.rels.length && f(b, a.rels) || 'function' === c.type(a.custom) && a.custom(b, h, i, k)) }; if (h.self && !l(b, !0, k, i)) return !1; if (h.ancestors) for (; b.parentNode; ) if (b = b.parentNode, 1 === b.nodeType && !l(b, !1, k, i)) return !1; return k.passed } } }(), fromJSON: function (a) { if (c.traits.json) try { return window.JSON.parse(a) } catch (b) { } }, fromQuery: function (a) { '?' === a.substr(0, 1) && (a = a.substr(1)); var b = a.split('&'), d = { }; return c.each(b, function (a) { var b = a.split('='); d[decodeURIComponent(b[0])] = decodeURIComponent(b[1]) }), d }, geometry: function () { var a, b, d = arguments.length, e = 1 / 0, f = 1 / 0, g = - (1 / 0), h = - (1 / 0); for (a = 0; a < d; a++) b = c.position(arguments[a]), e = Math.min(e, b.x), f = Math.min(f, b.y), g = Math.max(g, b.x + arguments[a].offsetWidth), h = Math.max(h, b.y + arguments[a].offsetHeight); return { x: e, y: f, w: g - e, h: h - f, x1: e, y1: f, x2: g, y2: h } }, getActualHref: function (a) { return c.cache(a, 'href') || a.href }, hasAttrValue: function (a, b, d, e) { return !!b && c.contains(c.attrValues(a, b, e), d) }, hasClass: function (a, b) { return c.hasAttrValue(a, 'className', b) }, hasRel: function (a, b) { return c.hasAttrValue(a, 'rel', b) }, isArray: function (a) { return 'array' === c.type(a) }, isDefaultPrevented: function (a) { return a.isDefaultPrevented && a.isDefaultPrevented() || a.returnValue === !1 || a.defaultPrevented === !0 }, isInDom: function (a) { return Boolean(a && a.offsetParent) }, isVisible: function (a) { return Boolean(a.offsetHeight || a.offsetWidth || !a.getClientRects || a.getClientRects().length) }, jsonp: function (a) { var b = document.getElementsByTagName('script') [0], d = c.createEl('script', { type: 'text/javascript', src: a }); b.parentNode.insertBefore(d, b) }, links: function () { var a = [ 'http:', 'https:' ], b = function (b, d) { return c.all(b, function (b) { return b.href && (!d.filter_by_scheme || c.contains(a, b.protocol)) && (!d.filter_homepages || '/' !== b.pathname) && (!d.filter_internal || b.hostname !== c.context(b).location.hostname) }) }; return function (a, d, e) { d = d || ''; var f = c.extend({ filter_homepages: !0, filter_internal: !0, filter_by_scheme: !0 }, e), g = c.map(d.split(','), function (a) { return a + ' a[href]' }).join(','); return b(c.withScope(a, g, { ancestors: !1, consolidate: !0 }), f) } }(), map: function (a, b, d) { return c.reduce([], a, function (a, c, d) { return a.push(b(c, d)), a }, d) }, matches: function (a, b) { if ('element' !== c.type(a)) return !1; try { return this.Sizzle.matchesSelector(a, b) } catch (d) { return !0 } }, mergeable: function (a) { var b = function () { return c.extend({ batchable: !0, batchFn: c.noop, nonBatchFn: c.noop, timeout: 100 }, a()) }; return c.batchable(function () { c.batched(arguments) && b().batchable ? c.each(c.batchArgs(arguments), function (a) { b().batchFn.apply(this, a) }) : b().nonBatchFn.apply(this, arguments) }, function () { return { batch: !0, timeout: b().timeout } }) }, mergeParams: function (a) { var b, d, e, f = arguments.length, g = function (d, e) { b = a[e], a.hasOwnProperty(e) && c.isArray(d) && c.isArray(b) ? a[e] = c.unique(b.concat(d)) : a[e] = d }; for (d = 1; d < f; d++) e = arguments[d], c.each(e, g); return c.prune(a) }, nodesOfType: function (a) { var b = c.toArray(arguments).slice(1); return c.all(a, function (a) { return c.contains(b, a.nodeType) }) }, on: function () { var a; return function (b, d, e) { var f, g, h; if (1 === arguments.length) return void (a = b); if (2 === arguments.length) { if (!a) return; e = d, d = b, b = a } else f = c.toArray(arguments).slice(3, arguments.length); try { g = b['on' + d] } catch (i) { } 'function' == typeof g && (b['on' + d] = c.bind(function (a) { a = a || window.event; var d = g.apply(b, arguments); this.exceptionLogger(function () { return a ? (void 0 !== d && a.returnValue !== !1 && (a.returnValue = d), c.isDefaultPrevented(a) && 'function' === c.type(a.preventDefault) && a.preventDefault(), a.returnValue) : d }) () }, this)), h = c.entryPoint(function () { if (a.enabled()) return e.apply(null, c.toArray(arguments).concat(f || [ ])) }), b.addEventListener ? b.addEventListener(d, h, !1) : b.attachEvent && b.attachEvent('on' + d, h) } }(), packageArgs: function () { return c.toArray(arguments) }, position: function (a, b) { var d, e = 0, f = 0, g = 0, h = 0; if (b = b || document, !c.isInDom(a)) return !1; d = a; do e += d.offsetLeft, f += d.offsetTop, d = d.offsetParent; while (d); d = a; do g += d.scrollLeft, h += d.scrollTop, d = d.parentNode; while (d && d !== b.body); return { x: e - g, y: f - h } }, preventDefault: function (a) { return a.preventDefault && a.preventDefault(), a.returnValue = !1, !1 }, prune: function (a) { return c.each(a, function (b, c) { null !== b && void 0 !== b || delete a[c] }), a }, ready: function () { var a, b, d, e, f, g = !1, h = [ ], i = !1; return document.addEventListener ? d = function () { document.removeEventListener('DOMContentLoaded', d, !1), f() } : document.attachEvent && (e = function () { 'complete' === document.readyState && (document.detachEvent('onreadystatechange', e), f()) }), a = function () { if (!g) { if (g = !0, 'interactive' === document.readyState || 'complete' === document.readyState) return f(); if (document.addEventListener) document.addEventListener('DOMContentLoaded', d, !1); else if (document.attachEvent) { document.attachEvent('onreadystatechange', e); var a = !1; try { a = null === window.frameElement } catch (h) { } document.documentElement.doScroll && a && b() } c.on(window, 'load', f) } }, b = function () { if (!i) { try { document.documentElement.doScroll('left') } catch (a) { return void setTimeout(c.entryPoint(b), 1) } f() } }, f = function () { if (!i) { if (!document.body) return setTimeout(c.entryPoint(f), 13); i = !0, h && (c.each(h, function (a) { a() }), h = null) } }, function (b) { a(), i ? b() : h.push(b) } }(), reduce: function (a, b, d, e) { return c.each(b, function (b, c) { a = d(a, b, c) }, e), a }, reformatKeys: function (a) { var b, d, e = function (a) { return '_' + a.toLowerCase() }; for (b in a) d = b.replace(/([A-Z])/g, e), 'object' === c.type(a[b]) && (a[b] = c.reformatKeys(a[b])), d !== b && (a[d] = a[b], delete a[b]); return a }, removeClass: function (a, b) { if (c.hasClass(a, b)) { var d, e, f = c.attrValues(a, 'className'); for (d = 0, e = f.length; d < e; d++) f[d] === b && delete f[d]; a.className = f.join(' ') } }, request: function (a, b, d) { var e, f, g, h = c.uniqid('vglnk_'), i = c.toArray(arguments).slice(3, arguments.length), j = function (a, b, d) { var e, f, g = { }, h = !!b.length, i = d === !0 || d === !1; return (h || i) && (e = c.createA(a), h && (g.search = '?' + b), i && (f = e.protocol || c.context(e).location.protocol || 'http:', g.protocol = f.replace(/s?:$/, function () { return d ? 's:' : ':' })), a = c.extend(e, g).href), a }, k = function (a, b) { var d = { }, e = c.commonParams(); return d[b] = { }, c.each(a, function (a, c) { c in e ? d[c] = a : d[b][c] = a }), d[b] = c.toJSON(d[b]), c.prune(d) }; return d = c.extend({ fn: c.noop, json_payload: null, jsonp: !0, 'return': !1, ssl: null, timeout: null }, d), 'string' == typeof d.fn ? (e = window[d.fn], h = d.fn) : 'function' == typeof d.fn && (e = d.fn), 'function' === c.type(e) && (g = c.entryPoint(c.destructing(function () { var a, f; d.json_payload && (f = d.json_payload, a = c.fromJSON(b[f]), b = c.extend(b, a), delete b[f]), e({ response: c.toArray(arguments), data: i, args: b }), window[h] && (window[h] = void 0) })), null !== d.timeout && setTimeout(g, d.timeout)), d.json_payload && c.traits.cors && (b = k(b, d.json_payload)), d.jsonp === !0 && (window[h] = g, b = c.extend({ format: 'jsonp', jsonp: h }, b)), f = c.toQuery(b), d['return'] ? j(a, f, d.ssl) : !!(c.traits.json && c.traits.cors && c.cors(j(a, '', d.ssl), f, d.jsonp ? null : g)) || c.jsonp(j(a, f, d.ssl)) }, rootContext: function (a) { var b = this.context(a); try { for (; b && b.parent !== b; ) b = b.parent } catch (c) { } return b }, select: function () { try { return this.Sizzle.apply(this.Sizzle, arguments) } catch (a) { return [] } }, some: function (a, b) { return Boolean(c.find(a, function (a) { return b(a) })) }, stopPropagation: function (a) { a && a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0 }, time: function () { return (new Date).getTime() }, toArray: function (a) { if (a && void 0 !== a.length) try { return Array.prototype.slice.call(a, 0) } catch (b) { var c, d, e = [ ]; for (c = 0, d = a.length; c < d; c++) e[c] = a[c]; return e } }, toJSON: function (a) { if (c.traits.json) try { return window.JSON.stringify(a) } catch (b) { } }, toQuery: function (a) { var b = ''; return c.each(c.prune(a), function (a, c) { b += '&' + encodeURIComponent(c) + '=' + encodeURIComponent(a) }), b.substr(1) }, updateUrl: function (a, b) { return c.extend(c.createA(a), b).href }, uniqid: function () { var a = 0; return function (b) { return (b || '') + (new Date).getTime() + a++ } }(), unique: function (a) { return c.reduce([], a, function (a, b) { return c.contains(a, b) || a.push(b), a }) }, unlink: function (a) { var b, c = document.createDocumentFragment(); if (a.parentNode) { for (; null !== (b = a.firstChild); ) c.appendChild(b); a.parentNode.insertBefore(c, a), a.parentNode.removeChild(a) } }, withScope: function () { var a = function (a, b, d) { return d.self && c.contains(b, a, { timeout: !0 }) ? a : d.ancestors ? c.find(c.ancestors(a).slice(0), function (a) { return c.contains(b, a, { timeout: !0 }) }, { timeout: !0 }) : void 0 }; return function (b, d, e) { var f, g, h = c.select(d); return e = c.extend({ ancestors: !0, consolidate: !1, descendants: !0, self: !0 }, e), e.descendants && (g = c.map(h, function (a) { return [a, c.ancestors(a)] }, { timeout: !0 })), f = c.all(c.map(b, function (b) { var d, f = [ ]; return (d = a(b, h, e)) ? f.push(d) : 1 === b.nodeType && e.descendants && c.each(g, function (a) { var d = a[0], e = a[1]; c.contains(e, b, { timeout: !0 }) && f.push(d) }, { timeout: !0 }), [ b, f ] }, { timeout: !0 }), function (a) { return a[1].length > 0 }, { timeout: !0 }), e.consolidate ? c.unique(c.reduce([], f, function (a, b) { return a.concat(b[1]) }, { timeout: !0 })) : f } }() }); var d = function () { var a = c.find(c.toArray(arguments), function (a) { return 'function' === c.type(a) }); a && (c.Sizzle = a()) }; d.amd = !0, function (a) { function b(a, b, c, d) { var e, f, g, h, i, j, k, m, o, p; if ((b ? b.ownerDocument || b : P) !== H && G(b), b = b || H, c = c || [ ], !a || 'string' != typeof a) return c; if (1 !== (h = b.nodeType) && 9 !== h) return []; if (J && !d) { if (e = sa.exec(a)) if (g = e[1]) { if (9 === h) { if (f = b.getElementById(g), !f || !f.parentNode) return c; if (f.id === g) return c.push(f), c } else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && N(b, f) && f.id === g) return c.push(f), c } else { if (e[2]) return aa.apply(c, b.getElementsByTagName(a)), c; if ((g = e[3]) && w.getElementsByClassName && b.getElementsByClassName) return aa.apply(c, b.getElementsByClassName(g)), c } if (w.qsa && (!K || !K.test(a))) { if (m = k = O, o = b, p = 9 === h && a, 1 === h && 'object' !== b.nodeName.toLowerCase()) { for (j = A(a), (k = b.getAttribute('id')) ? m = k.replace(ua, '\\$&') : b.setAttribute('id', m), m = '[id=\'' + m + '\'] ', i = j.length; i--; ) j[i] = m + n(j[i]); o = ta.test(a) && l(b.parentNode) || b, p = j.join(',') } if (p) try { return aa.apply(c, o.querySelectorAll(p)), c } catch (q) { } finally { k || b.removeAttribute('id') } } } return C(a.replace(ia, '$1'), b, c, d) } function c() { function a(c, d) { return b.push(c + ' ') > x.cacheLength && delete a[b.shift()], a[c + ' '] = d } var b = [ ]; return a } function e(a) { return a[O] = !0, a } function f(a) { var b = H.createElement('div'); try { return !!a(b) } catch (c) { return !1 } finally { b.parentNode && b.parentNode.removeChild(b), b = null } } function g(a, b) { for (var c = a.split('|'), d = a.length; d--; ) x.attrHandle[c[d]] = b } function h(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || X) - (~a.sourceIndex || X); if (d) return d; if (c) for (; c = c.nextSibling; ) if (c === b) return - 1; return a ? 1 : - 1 } function i(a) { return function (b) { var c = b.nodeName.toLowerCase(); return 'input' === c && b.type === a } } function j(a) { return function (b) { var c = b.nodeName.toLowerCase(); return ('input' === c || 'button' === c) && b.type === a } } function k(a) { return e(function (b) { return b = + b, e(function (c, d) { for (var e, f = a([], c.length, b), g = f.length; g--; ) c[e = f[g]] && (c[e] = !(d[e] = c[e])) }) }) } function l(a) { return a && typeof a.getElementsByTagName !== W && a } function m() { } function n(a) { for (var b = 0, c = a.length, d = ''; b < c; b++) d += a[b].value; return d } function o(a, b, c) { var d = b.dir, e = c && 'parentNode' === d, f = R++; return b.first ? function (b, c, f) { for (; b = b[d]; ) if (1 === b.nodeType || e) return a(b, c, f) } : function (b, c, g) { var h, i, j = [ Q, f ]; if (g) { for (; b = b[d]; ) if ((1 === b.nodeType || e) && a(b, c, g)) return !0 } else for (; b = b[d]; ) if (1 === b.nodeType || e) { if (i = b[O] || (b[O] = { }), (h = i[d]) && h[0] === Q && h[1] === f) return j[2] = h[2]; if (i[d] = j, j[2] = a(b, c, g)) return !0 } } } function p(a) { return a.length > 1 ? function (b, c, d) { for (var e = a.length; e--; ) if (!a[e](b, c, d)) return !1; return !0 } : a[0] } function q(a, c, d) { for (var e = 0, f = c.length; e < f; e++) b(a, c[e], d); return d } function r(a, b, c, d, e) { for (var f, g = [ ], h = 0, i = a.length, j = null != b; h < i; h++) (f = a[h]) && (c && !c(f, d, e) || (g.push(f), j && b.push(h))); return g } function s(a, b, c, d, f, g) { return d && !d[O] && (d = s(d)), f && !f[O] && (f = s(f, g)), e(function (e, g, h, i) { var j, k, l, m = [ ], n = [ ], o = g.length, p = e || q(b || '*', h.nodeType ? [ h ] : h, [ ]), s = !a || !e && b ? p : r(p, m, a, h, i), t = c ? f || (e ? a : o || d) ? [ ] : g : s; if (c && c(s, t, h, i), d) for (j = r(t, n), d(j, [ ], h, i), k = j.length; k--; ) (l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); if (e) { if (f || a) { if (f) { for (j = [ ], k = t.length; k--; ) (l = t[k]) && j.push(s[k] = l); f(null, t = [ ], j, i) } for (k = t.length; k--; ) (l = t[k]) && (j = f ? ca.call(e, l) : m[k]) > - 1 && (e[j] = !(g[j] = l)) } } else t = r(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : aa.apply(g, t) }) } function t(a) { for (var b, c, d, e = a.length, f = x.relative[a[0].type], g = f || x.relative[' '], h = f ? 1 : 0, i = o(function (a) { return a === b }, g, !0), j = o(function (a) { return ca.call(b, a) > - 1 }, g, !0), k = [ function (a, c, d) { return !f && (d || c !== D) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)) } ]; h < e; h++) if (c = x.relative[a[h].type]) k = [ o(p(k), c) ]; else { if (c = x.filter[a[h].type].apply(null, a[h].matches), c[O]) { for (d = ++h; d < e && !x.relative[a[d].type]; d++); return s(h > 1 && p(k), h > 1 && n(a.slice(0, h - 1).concat({ value: ' ' === a[h - 2].type ? '*' : '' })).replace(ia, '$1'), c, h < d && t(a.slice(h, d)), d < e && t(a = a.slice(d)), d < e && n(a)) } k.push(c) } return p(k) } function u(a, c) { var d = c.length > 0, f = a.length > 0, g = function (e, g, h, i, j) { var k, l, m, n = 0, o = '0', p = e && [ ], q = [ ], s = D, t = e || f && x.find.TAG('*', j), u = Q += null == s ? 1 : Math.random() || 0.1, v = t.length; for (j && (D = g !== H && g); o !== v && null != (k = t[o]); o++) { if (f && k) { for (l = 0; m = a[l++]; ) if (m(k, g, h)) { i.push(k); break } j && (Q = u) } d && ((k = !m && k) && n--, e && p.push(k)) } if (n += o, d && o !== n) { for (l = 0; m = c[l++]; ) m(p, q, g, h); if (e) { if (n > 0) for (; o--; ) p[o] || q[o] || (q[o] = $.call(i)); q = r(q) } aa.apply(i, q), j && !e && q.length > 0 && n + c.length > 1 && b.uniqueSort(i) } return j && (Q = u, D = s), p }; return d ? e(g) : g } var v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O = 'sizzle' + - new Date, P = a.document, Q = 0, R = 0, S = c(), T = c(), U = c(), V = function (a, b) { return a === b && (F = !0), 0 }, W = 'undefined', X = 1 << 31, Y = { }.hasOwnProperty, Z = [ ], $ = Z.pop, _ = Z.push, aa = Z.push, ba = Z.slice, ca = Z.indexOf || function (a) { for (var b = 0, c = this.length; b < c; b++) if (this[b] === a) return b; return - 1 }, da = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', ea = '[\\x20\\t\\r\\n\\f]', fa = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+', ga = '\\[' + ea + '*(' + fa + ')(?:' + ea + '*([*^$|!~]?=)' + ea + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + fa + '))|)' + ea + '*\\]', ha = ':(' + fa + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + ga + ')*)|.*)\\)|)', ia = new RegExp('^' + ea + '+|((?:^|[^\\\\])(?:\\\\.)*)' + ea + '+$', 'g'), ja = new RegExp('^' + ea + '*,' + ea + '*'), ka = new RegExp('^' + ea + '*([>+~]|' + ea + ')' + ea + '*'), la = new RegExp('=' + ea + '*([^\\]\'"]*?)' + ea + '*\\]', 'g'), ma = new RegExp(ha), na = new RegExp('^' + fa + '$'), oa = { ID: new RegExp('^#(' + fa + ')'), CLASS: new RegExp('^\\.(' + fa + ')'), TAG: new RegExp('^(' + fa + '|[*])'), ATTR: new RegExp('^' + ga), PSEUDO: new RegExp('^' + ha), CHILD: new RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + ea + '*(even|odd|(([+-]|)(\\d*)n|)' + ea + '*(?:([+-]|)' + ea + '*(\\d+)|))' + ea + '*\\)|)', 'i'), bool: new RegExp('^(?:' + da + ')$', 'i'), needsContext: new RegExp('^' + ea + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + ea + '*((?:-\\d)?\\d*)' + ea + '*\\)|)(?=[^-]|$)', 'i') }, pa = /^(?:input|select|textarea|button)$/i, qa = /^h\d$/i, ra = /^[^{]+\{\s*\[native \w/, sa = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ta = /[+~]/, ua = /'|\\/g, va = new RegExp('\\\\([\\da-f]{1,6}' + ea + '?|(' + ea + ')|.)', 'ig'), wa = function (a, b, c) { var d = '0x' + b - 65536; return d !== d || c ? b : d < 0 ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) }; try { aa.apply(Z = ba.call(P.childNodes), P.childNodes), Z[P.childNodes.length].nodeType } catch (xa) { aa = { apply: Z.length ? function (a, b) { _.apply(a, ba.call(b)) } : function (a, b) { for (var c = a.length, d = 0; a[c++] = b[d++]; ); a.length = c - 1 } } } w = b.support = { }, z = b.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return !!b && 'HTML' !== b.nodeName }, G = b.setDocument = function (a) { var b, c = a ? a.ownerDocument || a : P, d = c.defaultView; return c !== H && 9 === c.nodeType && c.documentElement ? (H = c, I = c.documentElement, J = !z(c), d && d !== d.top && (d.addEventListener ? d.addEventListener('unload', function () { G() }, !1) : d.attachEvent && d.attachEvent('onunload', function () { G() })), w.attributes = f(function (a) { return a.className = 'i', !a.getAttribute('className') }), w.getElementsByTagName = f(function (a) { return a.appendChild(c.createComment('')), !a.getElementsByTagName('*').length }), w.getElementsByClassName = ra.test(c.getElementsByClassName) && f(function (a) { return a.innerHTML = '<div class=\'a\'></div><div class=\'a i\'></div>', a.firstChild.className = 'i', 2 === a.getElementsByClassName('i').length }), w.getById = f(function (a) { return I.appendChild(a).id = O, !c.getElementsByName || !c.getElementsByName(O).length }), w.getById ? (x.find.ID = function (a, b) { if (typeof b.getElementById !== W && J) { var c = b.getElementById(a); return c && c.parentNode ? [ c ] : [ ] } }, x.filter.ID = function (a) { var b = a.replace(va, wa); return function (a) { return a.getAttribute('id') === b } }) : (delete x.find.ID, x.filter.ID = function (a) { var b = a.replace(va, wa); return function (a) { var c = typeof a.getAttributeNode !== W && a.getAttributeNode('id'); return c && c.value === b } }), x.find.TAG = w.getElementsByTagName ? function (a, b) { if (typeof b.getElementsByTagName !== W) return b.getElementsByTagName(a) } : function (a, b) { var c, d = [ ], e = 0, f = b.getElementsByTagName(a); if ('*' === a) { for (; c = f[e++]; ) 1 === c.nodeType && d.push(c); return d } return f }, x.find.CLASS = w.getElementsByClassName && function (a, b) { if (typeof b.getElementsByClassName !== W && J) return b.getElementsByClassName(a) }, L = [ ], K = [ ], (w.qsa = ra.test(c.querySelectorAll)) && (f(function (a) { a.innerHTML = '<select msallowclip=\'\'><option selected=\'\'></option></select>', a.querySelectorAll('[msallowclip^=\'\']').length && K.push('[*^$]=' + ea + '*(?:\'\'|"")'), a.querySelectorAll('[selected]').length || K.push('\\[' + ea + '*(?:value|' + da + ')'), a.querySelectorAll(':checked').length || K.push(':checked') }), f(function (a) { var b = c.createElement('input'); b.setAttribute('type', 'hidden'), a.appendChild(b).setAttribute('name', 'D'), a.querySelectorAll('[name=d]').length && K.push('name' + ea + '*[*^$|!~]?='), a.querySelectorAll(':enabled').length || K.push(':enabled', ':disabled'), a.querySelectorAll('*,:x'), K.push(',.*:') })), (w.matchesSelector = ra.test(M = I.matches || I.webkitMatchesSelector || I.mozMatchesSelector || I.oMatchesSelector || I.msMatchesSelector)) && f(function (a) { w.disconnectedMatch = M.call(a, 'div'), M.call(a, '[s!=\'\']:x'), L.push('!=', ha) }), K = K.length && new RegExp(K.join('|')), L = L.length && new RegExp(L.join('|')), b = ra.test(I.compareDocumentPosition), N = b || ra.test(I.contains) ? function (a, b) { var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) } : function (a, b) { if (b) for (; b = b.parentNode; ) if (b === a) return !0; return !1 }, V = b ? function (a, b) { if (a === b) return F = !0, 0; var d = !a.compareDocumentPosition - !b.compareDocumentPosition; return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !w.sortDetached && b.compareDocumentPosition(a) === d ? a === c || a.ownerDocument === P && N(P, a) ? - 1 : b === c || b.ownerDocument === P && N(P, b) ? 1 : E ? ca.call(E, a) - ca.call(E, b) : 0 : 4 & d ? - 1 : 1) } : function (a, b) { if (a === b) return F = !0, 0; var d, e = 0, f = a.parentNode, g = b.parentNode, i = [ a ], j = [ b ]; if (!f || !g) return a === c ? - 1 : b === c ? 1 : f ? - 1 : g ? 1 : E ? ca.call(E, a) - ca.call(E, b) : 0; if (f === g) return h(a, b); for (d = a; d = d.parentNode; ) i.unshift(d); for (d = b; d = d.parentNode; ) j.unshift(d); for (; i[e] === j[e]; ) e++; return e ? h(i[e], j[e]) : i[e] === P ? - 1 : j[e] === P ? 1 : 0 }, c) : H }, b.matches = function (a, c) { return b(a, null, null, c) }, b.matchesSelector = function (a, c) { if ((a.ownerDocument || a) !== H && G(a), c = c.replace(la, '=\'$1\']'), w.matchesSelector && J && (!L || !L.test(c)) && (!K || !K.test(c))) try { var d = M.call(a, c); if (d || w.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d } catch (e) { } return b(c, H, null, [ a ]).length > 0 }, b.contains = function (a, b) { return (a.ownerDocument || a) !== H && G(a), N(a, b) }, b.attr = function (a, b) { (a.ownerDocument || a) !== H && G(a); var c = x.attrHandle[b.toLowerCase()], d = c && Y.call(x.attrHandle, b.toLowerCase()) ? c(a, b, !J) : void 0; return void 0 !== d ? d : w.attributes || !J ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }, b.error = function (a) { throw new Error('Syntax error, unrecognized expression: ' + a) }, b.uniqueSort = function (a) { var b, c = [ ], d = 0, e = 0; if (F = !w.detectDuplicates, E = !w.sortStable && a.slice(0), a.sort(V), F) { for (; b = a[e++]; ) b === a[e] && (d = c.push(e)); for (; d--; ) a.splice(c[d], 1) } return E = null, a }, y = b.getText = function (a) { var b, c = '', d = 0, e = a.nodeType; if (e) { if (1 === e || 9 === e || 11 === e) { if ('string' == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling) c += y(a) } else if (3 === e || 4 === e) return a.nodeValue } else for (; b = a[d++]; ) c += y(b); return c }, x = b.selectors = { cacheLength: 50, createPseudo: e, match: oa, attrHandle: { }, find: { }, relative: { '>': { dir: 'parentNode', first: !0 }, ' ': { dir: 'parentNode' }, '+': { dir: 'previousSibling', first: !0 }, '~': { dir: 'previousSibling' } }, preFilter: { ATTR: function (a) { return a[1] = a[1].replace(va, wa), a[3] = (a[3] || a[4] || a[5] || '').replace(va, wa), '~=' === a[2] && (a[3] = ' ' + a[3] + ' '), a.slice(0, 4) }, CHILD: function (a) { return a[1] = a[1].toLowerCase(), 'nth' === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = + (a[4] ? a[5] + (a[6] || 1) : 2 * ('even' === a[3] || 'odd' === a[3])), a[5] = + (a[7] + a[8] || 'odd' === a[3])) : a[3] && b.error(a[0]), a }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return oa.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || '' : c && ma.test(c) && (b = A(c, !0)) && (b = c.indexOf(')', c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) } }, filter: { TAG: function (a) { var b = a.replace(va, wa).toLowerCase(); return '*' === a ? function () { return !0 } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b } }, CLASS: function (a) { var b = S[a + ' ']; return b || (b = new RegExp('(^|' + ea + ')' + a + '(' + ea + '|$)')) && S(a, function (a) { return b.test('string' == typeof a.className && a.className || typeof a.getAttribute !== W && a.getAttribute('class') || '') }) }, ATTR: function (a, c, d) { return function (e) { var f = b.attr(e, a); return null == f ? '!=' === c : !c || (f += '', '=' === c ? f === d : '!=' === c ? f !== d : '^=' === c ? d && 0 === f.indexOf(d) : '*=' === c ? d && f.indexOf(d) > - 1 : '$=' === c ? d && f.slice( - d.length) === d : '~=' === c ? (' ' + f + ' ').indexOf(d) > - 1 : '|=' === c && (f === d || f.slice(0, d.length + 1) === d + '-')) } }, CHILD: function (a, b, c, d, e) { var f = 'nth' !== a.slice(0, 3), g = 'last' !== a.slice( - 4), h = 'of-type' === b; return 1 === d && 0 === e ? function (a) { return !!a.parentNode } : function (b, c, i) { var j, k, l, m, n, o, p = f !== g ? 'nextSibling' : 'previousSibling', q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; if (q) { if (f) { for (; p; ) { for (l = b; l = l[p]; ) if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; o = p = 'only' === a && !o && 'nextSibling' } return !0 } if (o = [ g ? q.firstChild : q.lastChild ], g && s) { for (k = q[O] || (q[O] = { }), j = k[a] || [ ], n = j[0] === Q && j[1], m = j[0] === Q && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop(); ) if (1 === l.nodeType && ++m && l === b) { k[a] = [ Q, n, m ]; break } } else if (s && (j = (b[O] || (b[O] = { })) [a]) && j[0] === Q) m = j[1]; else for (; (l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[O] || (l[O] = { })) [a] = [ Q, m ]), l !== b)); ); return m -= e, m === d || m % d === 0 && m / d >= 0 } } }, PSEUDO: function (a, c) { var d, f = x.pseudos[a] || x.setFilters[a.toLowerCase()] || b.error('unsupported pseudo: ' + a); return f[O] ? f(c) : f.length > 1 ? (d = [ a, a, '', c ], x.setFilters.hasOwnProperty(a.toLowerCase()) ? e(function (a, b) { for (var d, e = f(a, c), g = e.length; g--; ) d = ca.call(a, e[g]), a[d] = !(b[d] = e[g]) }) : function (a) { return f(a, 0, d) }) : f } }, pseudos: { not: e(function (a) { var b = [ ], c = [ ], d = B(a.replace(ia, '$1')); return d[O] ? e(function (a, b, c, e) { for (var f, g = d(a, null, e, [ ]), h = a.length; h--; ) (f = g[h]) && (a[h] = !(b[h] = f)) }) : function (a, e, f) { return b[0] = a, d(b, null, f, c), !c.pop() } }), has: e(function (a) { return function (c) { return b(a, c).length > 0 } }), contains: e(function (a) { return a = a.replace(va, wa), function (b) { return (b.textContent || b.innerText || y(b)).indexOf(a) > - 1 } }), lang: e(function (a) { return na.test(a || '') || b.error('unsupported lang: ' + a), a = a.replace(va, wa).toLowerCase(), function (b) { var c; do if (c = J ? b.lang : b.getAttribute('xml:lang') || b.getAttribute('lang')) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + '-'); while ((b = b.parentNode) && 1 === b.nodeType); return !1 } }), target: function (b) { var c = a.location && a.location.hash; return c && c.slice(1) === b.id }, root: function (a) { return a === I }, focus: function (a) { return a === H.activeElement && (!H.hasFocus || H.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) }, enabled: function (a) { return a.disabled === !1 }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { var b = a.nodeName.toLowerCase(); return 'input' === b && !!a.checked || 'option' === b && !!a.selected }, selected: function (a) { return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 }, empty: function (a) { for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1; return !0 }, parent: function (a) { return !x.pseudos.empty(a) }, header: function (a) { return qa.test(a.nodeName) }, input: function (a) { return pa.test(a.nodeName) }, button: function (a) { var b = a.nodeName.toLowerCase(); return 'input' === b && 'button' === a.type || 'button' === b }, text: function (a) { var b; return 'input' === a.nodeName.toLowerCase() && 'text' === a.type && (null == (b = a.getAttribute('type')) || 'text' === b.toLowerCase()) }, first: k(function () { return [0] }), last: k(function (a, b) { return [b - 1] }), eq: k(function (a, b, c) { return [c < 0 ? c + b : c] }), even: k(function (a, b) { for (var c = 0; c < b; c += 2) a.push(c); return a }), odd: k(function (a, b) { for (var c = 1; c < b; c += 2) a.push(c); return a }), lt: k(function (a, b, c) { for (var d = c < 0 ? c + b : c; --d >= 0; ) a.push(d); return a }), gt: k(function (a, b, c) { for (var d = c < 0 ? c + b : c; ++d < b; ) a.push(d); return a }) } }, x.pseudos.nth = x.pseudos.eq; for (v in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) x.pseudos[v] = i(v); for (v in { submit: !0, reset: !0 }) x.pseudos[v] = j(v); m.prototype = x.filters = x.pseudos, x.setFilters = new m, A = b.tokenize = function (a, c) { var d, e, f, g, h, i, j, k = T[a + ' ']; if (k) return c ? 0 : k.slice(0); for (h = a, i = [ ], j = x.preFilter; h; ) { d && !(e = ja.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [ ])), d = !1, (e = ka.exec(h)) && (d = e.shift(), f.push({ value: d, type: e[0].replace(ia, ' ') }), h = h.slice(d.length)); for (g in x.filter) !(e = oa[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({ value: d, type: g, matches: e }), h = h.slice(d.length)); if (!d) break } return c ? h.length : h ? b.error(a) : T(a, i).slice(0) }, B = b.compile = function (a, b) { var c, d = [ ], e = [ ], f = U[a + ' ']; if (!f) { for (b || (b = A(a)), c = b.length; c--; ) f = t(b[c]), f[O] ? d.push(f) : e.push(f); f = U(a, u(e, d)), f.selector = a } return f }, C = b.select = function (a, b, c, d) { var e, f, g, h, i, j = 'function' == typeof a && a, k = !d && A(a = j.selector || a); if (c = c || [ ], 1 === k.length) { if (f = k[0] = k[0].slice(0), f.length > 2 && 'ID' === (g = f[0]).type && w.getById && 9 === b.nodeType && J && x.relative[f[1].type]) { if (b = (x.find.ID(g.matches[0].replace(va, wa), b) || [ ]) [0], !b) return c; j && (b = b.parentNode), a = a.slice(f.shift().value.length) } for (e = oa.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !x.relative[h = g.type]); ) if ((i = x.find[h]) && (d = i(g.matches[0].replace(va, wa), ta.test(f[0].type) && l(b.parentNode) || b))) { if (f.splice(e, 1), a = d.length && n(f), !a) return aa.apply(c, d), c; break } } return (j || B(a, k)) (d, b, !J, c, ta.test(a) && l(b.parentNode) || b), c }, w.sortStable = O.split('').sort(V).join('') === O, w.detectDuplicates = !!F, G(), w.sortDetached = f(function (a) { return 1 & a.compareDocumentPosition(H.createElement('div')) }), f(function (a) { return a.innerHTML = '<a href=\'#\'></a>', '#' === a.firstChild.getAttribute('href') }) || g('type|href|height|width', function (a, b, c) { if (!c) return a.getAttribute(b, 'type' === b.toLowerCase() ? 1 : 2) }), w.attributes && f(function (a) { return a.innerHTML = '<input/>', a.firstChild.setAttribute('value', ''), '' === a.firstChild.getAttribute('value') }) || g('value', function (a, b, c) { if (!c && 'input' === a.nodeName.toLowerCase()) return a.defaultValue }), f(function (a) { return null == a.getAttribute('disabled') }) || g(da, function (a, b, c) { var d; if (!c) return a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }), 'function' == typeof d && d.amd ? d(function () { return b }) : 'undefined' != typeof module && module.exports ? module.exports = b : a.Sizzle = b }(window), c.browser = function () { var a, b = { }, d = navigator.userAgent.toLowerCase().replace(/\s*[()]\s*/g, '; ').replace(/(\/[\w.]+)\s+/g, '$1; ').replace(/\;\s*$/, '').split(/;\s*/); return c.each(d, function (c) { a = (/[\/ :]([^\/ :]+)$/.exec(c) || [ ]) [1], b[a ? c.substr(0, c.length - a.length - 1).replace(/\d*$/, '') : c] = a || !0 }), { aol: b.aol, blackberry: b.blackberry, firefox: b.firefox, ie: Boolean(b.msie || b.trident), ios: Boolean(b.applewebkit && b.mobile), opera: b.opera, playstation: b.playstation, version: parseFloat(b.version || b.crios || b.msie || b.rv || b.firefox) || !1 } }(), c.page = function () { var a, b = c.rootContext(window), d = function () { return c.map(c.select('meta[name=\'description\' i]').slice(0, 1), function (a) { return a.getAttribute('content') }) [0] }, e = function () { var a = c.css(document.body, 'font-size'); if (a) return parseFloat(a) }, f = { description: d(), font_size: e(), referrer: b.document.referrer, title: b.document.title }; for (a in f) f[a] = f[a] || null; return f }(), c.harmony = { PASSIVE: 1, UNSAFE_QUIRKSMODE_EVENTS: 0.5, COMMERCIAL_LINK_EVENTS: 0.1, LINK_EVENTS: - 1, AGGRESSIVE: - 1 }, c.harmony.DEFAULT = 0, c.pii = function () { var a = { email: /[A-Z0-9._%+-]+(?:%(?:25)*40|@)[A-Z0-9.-]+\.[A-Z]{2,4}/, numeric: /\d([^0-9A-Z]{0,4}\d){6,18}/ }, b = { contains: function (a, b) { return this.regexp(b).test(a) }, redact: function (a, b) { return a.replace(this.regexp(b), '___') }, regexp: function (b) { var b = c.extend({ }, b), d = c.map(c.all(a, function (a, c) { return b[c] !== !1 }), function (a) { return a.source }); return new RegExp('(\\b' + d.join('\\b|\\b') + '\\b)', 'gi') }, transmits: function (a, b) { return this.contains(a + ' ' + document.referrer, b || { numeric: !1 }) } }; return { contains: c.bind(b.contains, b), redact: c.bind(b.redact, b), transmits: c.bind(b.transmits, b) } }(), c.platforms = function () { var a = ' ', b = { NONE: { id: 'full', scope: 'body', spec: { selector: 'body' } }, bbp: { spec: { parser: /^post-(\d+)$/, selector: 'div[id^=\'post-\']' }, scope: 'li .post' }, hdlr: { spec: { parser: /^post_(\d+)$/, selector: 'div[id^=\'post_\']' }, scope: '.post-content-area' }, ipb: { spec: { parser: /^post_id_(\d+)$/, selector: 'div[id^=\'post_id_\']' }, scope: '.post_body .post' }, phpb: { spec: { parser: /^p(\d+)$/, selector: 'div.post[id^=\'p\']' }, scope: [ '.postbody .content', '.postbody .signature' ].join(',') }, ubb: { spec: { parser: /^number(\d+)$/, parse_el: 'span[id^=number]', selector: 'a[name^=\'Post\'] ~ table' }, scope: [ '.post_inner *[id^=\'body\']', '.post_inner .signature' ].join(',') }, vb3: { spec: { parser: /^post_message_(\d+)$/, selector: [ 'div[id^=\'post_message_\'], table[id^=\'post_message_\']', 'section[id^=\'post_message_\']' ].join(',') }, scope: [ 'div[id^=\'post_message_\']', 'div[id^=\'post_message_\'] ~ div:not([class])' ].join(',') }, vb4: { spec: { parser: /^post_(\d+)$/, selector: 'li[id^=\'post_\']' }, scope: [ '.post-content', '.postbody .content', '.postbody .signature', 'ul.conversation-list .list-item-body' ].join(',') }, wppr: { spec: { attributes: [ 'id', 'className' ], parser: /(?:^|\s)post-(\d+)(?:\s|$)/, selector: 'article[class*=\'post-\'], div[id^=\'post-\']' } } }, d = { getPostId: function (b) { var d, e; return this === c.platforms.NONE ? a : (e = this.spec.parse_el ? c.select(this.spec.parse_el, b) [0] : b, c.find(this.spec.attributes || [ 'id' ], c.bind(function (a) { return d = e[a] ? e[a].match(this.spec.parser) : null, Boolean(d) }, this)), d ? d[1] : void 0) }, getPostIds: function (a) { var b = [ ]; return c.each(this.getPosts(a), c.bind(function (a) { var d = this.getPostId(a); d && !c.contains(b, d) && b.push(d) }, this)), b.length ? b : null }, getPosts: function (a) { var b = [ ]; return !a && document && document.body && (a = [ document.body ]), a && this.spec && (b = c.withScope(a, this.spec.selector, { consolidate: !0 })), b } }; return c.each(b, function (a, e) { a.id = a.id || e, c.each(d, function (b, d) { a[d] = c.bind(b, a) }), b[e] = a }), b.DEFAULT_POST_ID = a, b.findById = function (a) { return c.find(c.platforms, function (b) { return b.id === a }) }, b }(), c.observer = function () { var a, b = [ ], d = 0, e = function () { a || (a = new MutationObserver(c.entryPoint(function (a) { var d = [ ]; c.each(a, function (a) { var b = [ ]; 'characterData' === a.type ? a.target && (b = [ a.target ]) : 'attributes' === a.type ? b = [ a.target ] : a.addedNodes && a.addedNodes.length && (b = c.toArray(a.addedNodes)), b.length && (d = d.concat(b)) }), d.length > 0 && c.each(b, function (a) { a.callback(d) }) }))) }, f = function (b) { var f = { attributes: !1, characterData: !1, childList: !1, subtree: !0 }; d || (e(), b.opts.attributes && (f = c.extend(f, { attributes: !0 }), 'array' === c.type(b.opts.attributes) && (f = c.extend(f, { attributeFilter: b.opts.attributes }))), b.opts.content && (f = c.extend(f, { characterData: !0, childList: !0 })), a.observe(b.context, f)) }; return { start: function (a, d, e) { a.document && (a = a.document); var g, d = c.extend({ attributes: !1, content: !0 }, d); c.traits.mutation && c.contains(['document', 'element'], c.type(a)) && (g = { callback: e, context: a, opts: d }, b.push(g), f(g)) }, pause: function () { d++, a && a.disconnect() }, resume: function () { d--, c.each(b, f) } } }(), c.traits = { basicCompatibility: !(c.browser.blackberry || c.browser.playstation), cors: window.XMLHttpRequest && void 0 !== (new window.XMLHttpRequest).withCredentials, crossWindowCommunication: !c.browser.ios, fastRegexp: !c.browser.firefox, json: Boolean(window.JSON) && Boolean(window.JSON.stringify) && Boolean(window.JSON.parse), jsRedirectSetsReferrer: c.browser.aol || !(c.browser.ie || c.browser.opera), mutation: window.MutationObserver && !c.browser.ie, performanceTimingApi: Boolean(window.performance && window.performance.mark && window.performance.measure && window.performance.now && window.performance.getEntriesByName), performanceNavigationTiming: Boolean(window.performance && window.performance.getEntriesByType && window.performance.getEntriesByType('navigation') && window.performance.getEntriesByType('navigation') [0] && window.performance.getEntriesByType('navigation') [0].domInteractive), referrerPolicy: !c.browser.ie, quirksMode: !Boolean(window.addEventListener), windowLevelHandlers: Boolean(window.addEventListener) }; var e, f, g, h, b; b = { EVENT_LEVEL_LINK: 1, EVENT_LEVEL_TOP: 2, PLUGIN_MANUAL: 1, TYPE_ACCEPTABLE: 'l', allowed: function () { var a; return function () { return a || (a = c.generateNodeFilter({ classes: [ 'novig' ], rels: [ 'novig' ], selectors: e.exclude_scope, tags: [ 'applet', 'embed', 'noscript', 'object', 'head', 'img', 'input', 'link', 'meta', 'param', 'select', 'button', 'iframe', 'option', 'script', 'style', 'svg', 'textarea', 'title' ], custom: function (a, d, f, g) { if (!e.whitelist || g.skipWhitelist) return !1; if (d) f.passed = !1; else if (f.passed) return !1; var h = b.whitelistNodes(); return f.passed = f.passed || h && h.length && c.contains(h, a), !1 } })), a.apply(b, arguments) } }(), api: function () { var a, b = function () { var a = { optimize: 'content', domains: 'content' }, b = function (a, b) { return b = c.extend(c.commonParams(a, e), b), b.subId && b.key !== e.key && (b.subId = null), b }; return function (d, e, g) { var h = c.toArray(arguments).slice(3, arguments.length), i = a[d]; return Boolean(i) && (g = c.extend({ }, g, { json_payload: i })), { data: h, method: d, opts: f(g), params: b(d, e) } } }(), d = function (a) { var b = { }, d = { }; return c.each(a, function (a) { var g = a[0], h = a[1], i = a[2] || { }, j = c.toArray(a).slice(3, a.length); d[g] = c.mergeParams(d[g] || c.commonParams(g, e), h), b[g] = b[g] || [ ], b[g].push({ data: j, opts: f(i) }) }), { calls: b, params: d } }, f = function (a) { return a = a || { }, 'function' === c.type(a.fn) && (a.fn = function (b) { return function (d) { var e, f = d.response ? d.response[0] : null; return 'object' === c.type(f) && 'array' === c.type(f.crawl) && 'object' === c.type(h.crawler) && 'function' === c.type(h.crawler.crawl) && (e = c.map(f.crawl, function (a) { return a + '' }), delete f.crawl, h.crawler.crawl(e)), b.apply(a, arguments) } }(a.fn)), a }, g = function (a) { var b, d = a.opts.base_url || e.api_url, f = a.opts.path || '/' + a.method; return delete a.opts.base_url, b = [ d + f, a.params, a.opts ], c.request.apply(c, b.concat(a.data)) }, i = function (a, b, d) { c.each(b, function (b) { b && b.opts && b.opts.fn && a && b.opts.fn({ response: c.packageArgs(a), data: b.data, args: d }) }) }; return a = { batch: function () { var a = function (a) { var b = a.data[0].params, d = a.data[0].calls, e = c.fromJSON(a.response[0]) || { }; c.each(e, function (a, e) { var f, g = b[e], h = d[e]; 'string' === c.type(a) && (f = a.match(/^[^(]+\((.*)\);?\s*$/)) && (a = c.fromJSON(f[1])), i(a, h, g) }) }; return function (b) { var f = d(b, !0); g({ data: f, method: 'batch', params: c.extend(c.commonParams('batch', e), f.params), opts: { json_payload: 'batch', jsonp: !1, fn: c.bind(a, window) } }) } }(), merge: function (a, e, f) { var h, j = d(a, !1); return h = c.reduce({ }, j.calls[f], function (a, b) { return { jsonp: a.jsonp || !b.opts || b.opts.jsonp !== !1, ssl: a.ssl || !b.opts || b.opts.ssl !== !1 } }), g(b(e, j.params[e], { fn: function (a) { i(a.response[0], j.calls[e], j.params[e]) }, jsonp: h.jsonp, ssl: h.ssl }, j)) }, single: function () { return g(b.apply(this, arguments)) } }, c.batchable(function () { var b, d; return c.batched(arguments) ? (b = c.batchArgs(arguments), d = c.batchCallType(b), 'batch' === d ? a.batch.call(this, b) : a.merge.call(this, b, d)) : a.single.apply(this, arguments) }, function () { return { batch: e.batch_calls, timeout: e.batch_call_timeout } }) }(), addEventListener: function (a, b) { this.fire(a, b) }, click: function () { var a = function (a, b) { if (!('_self' === b || c.traits.crossWindowCommunication && c.traits.jsRedirectSetsReferrer)) return 'go'; try { if (void 0 === a.document) throw !0; return 'jsonp' } catch (d) { return 'go' } }, d = function (a, b) { if ('_self' === b) return a; if (c.traits.crossWindowCommunication && c.traits.jsRedirectSetsReferrer) { var d = a.open('', b); return d.focus(), d } }, f = function (a) { var d, e = a.previousSibling, f = a.nextSibling, g = [ '', a.textContent, '' ], h = 10, i = function (a, b) { for (var c = a, d = c.data; (c = c[b + 'Sibling']) && 3 === c.nodeType; ) d += c.data; return d }, j = function (a, b, c) { var d = function (a) { return a.replace(/\s+/g, ' ') }; return a = d(a), b = d(b), c = d(c), a = a.replace(/^\s+/, ''), ' ' === b.substr(0, 1) && (b = b.substr(1), a += ' ' !== a.substr(a.length - 1, 1) ? ' ' : ''), ' ' === b.substr(b.length - 1, 1) && (b = b.substr(0, b.length - 1), c = (' ' !== c.substr(0, 1) ? ' ' : '') + c), c = c.replace(/\s+$/, ''), [ a, b, c ] }; void 0 !== g[1] && (g[0] = e && 3 === e.nodeType ? i(e, 'previous') : '', g[2] = f && 3 === f.nodeType ? i(f, 'next') : '', g = j.apply(this, g), '' !== g[0] && '' !== g[2] && (g[0] = g[0].split(' ').reverse().slice(0, h + (' ' === g[0].substr(g[0].length - 1, 1) ? 1 : 0)).reverse().join(' '), g[2] = g[2].split(' ').slice(0, h).join(' '), d = { type: 'context', itype: (c.cache(a, 'params') || { }).type, before: g[0], after: g[2], txt: g[1], loc: window.document.location.href, out: c.getActualHref(a), v: 2 }, b.log('info', c.toQuery(d)))) }; return function (b, g) { var h, i, j, k, l, m = { }, n = c.context(b) || window; if (g = b.target || g, g = !g || g === n.name || '_top' === g && n.top === n || '_parent' === g && n.parent === n ? '_self' : g, k = d(n, g), l = a(k, g), h = c.destructing(c.apiCallback(function () { this.eventTimer.stop('clk'); var a = c.toArray(arguments); a.unshift(b, k, g), this.onApiClick.apply(this, a) }, this)), c.cache(this, 'link', 'string' == typeof b ? b : c.getActualHref(b)), 'string' == typeof b && (b = c.createA(b, g), !this.processLink(b))) return h(); if (!e.enabled) return h(); if (!c.traits.referrerPolicy && this.isPrivate(b) && (l = 'go'), i = this.clickParams(b, l), this.eventTimer.start('clk'), e.log_context && f(b), 'go' === l) j = this.redirectUrl(i, m), this.redirect(j, n, k, g); else if (k === n) this.api.now('click', i, c.extend(m, { fn: h, timeout: e.click_timeout })); else { if (c.contextIsAncestor(n, k)) return this.redirect(c.getActualHref(b), n, k, g); h = c.entryPoint(h), setTimeout(function () { h() }, e.click_timeout), k.document.open(), k.callback = h, k.document.write('<html><head><title>' + c.getActualHref(b) + '</title><script type="text/javascript" src="' + this.api.now('click', i, c.extend(m, { fn: 'callback', 'return': !0 })) + '"></script></head></html>'), k.document.close() } } }(), clickParams: function (a, b) { var d = c.extend(c.cache(a, 'params'), c.cache('opt_params'), { format: b, out: c.getActualHref(a), reaf: e.reaffiliate || null, ref: c.page.referrer || null, rewrit: c.cache(a, 'rewrit'), title: c.page.title, txt: a.innerHTML }); return d.txt.length > 128 && (d.txt = d.txt.replace(/<[^>]+>/g, ''), d.txt = d.txt.length > 128 ? d.txt.substr(0, 125) + '...' : d.txt), d }, detectFiltering: function () { var a; try { a = { }, a = new function () { this.detect = function (a, b) { function c(a, b) { 0 == f || b > 1000 ? a(0 == f && e) : setTimeout(function () { c(a, 2 * b) }, 2 * b) } function d() { --f || (e = !g && h) } var e = !1, f = 2, g = !1, h = !1; if ('function' == typeof b) { a += '?ch=*&rn=*'; var i = 11 * Math.random(), j = new Image; j.onload = d, j.onerror = function () { g = !0, d() }, j.src = a.replace(/\*/, 1).replace(/\*/, i); var k = new Image; k.onload = d, k.onerror = function () { h = !0, d() }, k.src = a.replace(/\*/, 2).replace(/\*/, i), c(b, 250) } } } } catch (b) { a = { detect: function (a, b) { b(!0) } } } return function (b) { var d = c.updateUrl(e.asset_url, { pathname: '/images/pixel.gif' }); a.detect(d, b) } }(), enabled: function () { return e.enabled && g !== window && window.vglnk && (window.vglnk.key || 'function' == typeof window.vglnk) && (e.enabled = !1), e.enabled }, expose: function () { var a = function (a, b) { return 'function' === c.type(a) ? c.entryPoint(c.bind(a, b)) : a }; return function (c, d) { d = d || this[c], d && !h[c] && (h[c] = a(d, b)) } }(), fire: function () { var a = { }; return function (b, d) { b = b.toLowerCase(); var e = a[b] || { fired: !1, listeners: [ ] }, f = function (a) { a({ type: b }) }; 'function' == typeof d ? e.fired ? setTimeout(function () { f(d) }, 0) : e.listeners.push(d) : (e.fired = !0, c.each(e.listeners, function (a) { 'function' == typeof a && f(a) }), e.listeners = [ ]), a[b] = e } }(), handleRightClick: function (a, b) { if (e.rewrite_modified && a && b) switch (b) { case 'setup': c.cache(a, 'href') || c.cache(a, 'href', a.href), a.href = this.redirectUrl(this.clickParams(a, 'go')), setTimeout(c.entryPoint(c.bind(function () { this.handleRightClick(a, 'teardown') }, this)), 0); break; case 'teardown': c.cache(a, 'href') && (a.href = c.cache(a, 'href')) } }, harmony: function (a) { return e.harmony_level <= a }, init: function () { var a = function () { var a = '__v5k', b = c.rootContext(window), d = b[a] === !0; return b[a] = !0, !d }; return function () { var b = this; if (f = { }, a()) { try { b.initLibEvents(), b.initNamespace(), b.initOptions() } catch (d) { } return c.exceptionLogger(c.bind(b.logException, b), !e.dev), c.each(e.script_timeout), c.entryPoint(function () { b.initProcessors(), b.initDRApi(), b.initApi(), b.enabled() && (b.initLegacyCallbacks(), b.ping()) }) () } } }(), initApi: function () { var d, f = { }; if (window.vglnk) for (d in window.vglnk) '_plugin' === d.substr( - 7) && (f[d] = window.vglnk[d]); h = g[a] = c.noop, this.expose('click'), this.expose('link', c.bind(function (a) { 'element' === c.type(a) && a.href && (this.initContext(c.context(a)), this.processLink(a)) }, this)), this.expose('open', c.bind(this.click, this)), this.expose('$', c.clone(c)), this.expose('allowed'), this.expose('api'), this.expose('apiNow', c.bind(this.api.now, this.api)), this.expose('harmony'), this.expose('isBlacklisted'), this.expose('isCommercial'), this.expose('initLinks'), this.expose('opt'), this.expose('platform'), this.expose('sendLinks'), this.expose('clickParams', function () { return c.extend(c.commonParams('click', e), b.clickParams.apply(b, arguments)) }), this.expose('registerProcessor', function () { if (arguments.length > 0) return b.registerProcessor.apply(b, arguments) }), c.extend(h, h === window.vglnk ? f : { }) }, initContext: function () { var a = [ ]; return function (b) { return void 0 === b ? a : void (b && !c.contains(a, b) && (a.push(b), this.initLinks(b), this.initEvents(b))) } }(), initDomObserver: function (a, d) { c.observer.start(a, d, c.batchable(function (a) { c.batched(arguments) && (a = c.reduce([], c.batchArgs(arguments, 0), function (a, b) { return a.concat(b) })), e.whitelist && b.whitelistNodes(!0), a = c.all(c.unique(a), function (a) { return Boolean(a.parentNode) && b.allowed(a) }), a.length > 0 && (b.processLinks(c.links(a)), c.each(f, function (c, d) { c.opts.mode !== b.PLUGIN_MANUAL && b.runPlugin(d, a) })) }, function () { return { batch: e.batch_mutation, timeout: e.batch_mutation_timeout } })) }, initDRApi: function () { var a = !1; window.DrivingRevenue = c.entryPoint(c.destructing(c.bind(function () { a = !0, e.dr_key = window.DR_id, this.enabled() && this.ping() }, this))), c.on('DOMReady', function () { if (!a) try { delete window.DrivingRevenue } catch (b) { window.DrivingRevenue = void 0 } }) }, initEvents: function (a) { var d = c.traits.windowLevelHandlers ? a : a.document, f = function (d) { d = d || a.event; var e = c.eventLink(d); e && !c.cache(e, 'evented') && (h(b.EVENT_LEVEL_LINK, e), c.cache(e, 'evented', !0)) }, g = function (a, d) { return function () { var e = [ a ].concat(c.toArray(arguments)); d.apply(b, e) } }, h = function (a, d) { c.on(d, 'click', g(a, b.onClick)), c.on(d, 'contextmenu', g(a, b.onContextmenu)) }; e.dynamic && c.on('DOMReady', function () { b.initDomObserver(a), e.dynamic_scope && c.each(c.select(e.dynamic_scope, a.document), function (a) { b.initDomObserver(a, { attributes: [ 'class', 'id', 'style' ], content: !1 }) }) }), c.on(d, 'copy', c.bind(b.onCopy, b)), c.on(d, 'mousedown', f), c.on('DOMReady', function () { c.each(a.document.links, function (a) { c.on(a, 'mousedown', f) }) }), c.traits.quirksMode && !b.harmony(c.harmony.UNSAFE_QUIRKSMODE_EVENTS) || h(b.EVENT_LEVEL_TOP, d) }, initLegacyOptions: function () { var a, b = { DR_id: 'dr_key', vglnk_api_key: 'key', vglnk_cuid: 'cuid', vglnk_domain: 'api_url', vglnk_reaf: 'reaffiliate', vglnk_subid: 'sub_id' }; for (a in b) void 0 !== window[a] && (h[b[a]] = window[a], 'vglnk_domain' === a && (h[b[a]] += '/api')) }, initLegacyCallbacks: function () { var a, b = { vl_cB: c.bind(this.onApiClick, this), vl_disable: function () { e.enabled = !1 } }; for (a in b) window[a] = b[a] }, initLibEvents: function () { c.on(b), c.ready(c.bind(function () { this.fire('DOMReady') }, this)) }, initLinks: function (a) { var b = c.bind(function (a) { this.processLinks(c.toArray(a.document.links)) }, this); void 0 === a ? c.each(this.initContext(), b) : b(a) }, initNamespace: function () { window.vglnk && window.vglnk.key && (a = 'vglnk'); var b, c = window, d = a.split('.'); for (a = d.pop(); d.length > 0; ) b = d.shift(), c[b] = c[b] || { }, c = c[b]; g = c, h = g[a] = g[a] || { } }, initOptions: function () { var a; this.initLegacyOptions(), e = c.extend(this.publicOptions({ anywhere_url: '//redirect.viglink.com', api_url: '//api.viglink.com/api', asset_url: '//cdn.viglink.com/api', cuid: null, dev: !1, dr_key: null, enabled: c.traits.basicCompatibility, key: null, link_urls: !0, partner: null, platform: c.platforms.NONE.id, reaffiliate: !1, sub_id: null, sync_url: '//api.viglink.com/api', whitelist: !1, blacklist_domains: null, commercial_domains: null, harmony_level: c.harmony.DEFAULT, link_target: null, private_domains: null, rewrite_any: !0, rewrite_modified: !1, rewrite_original: !0 }), e, h, { batch_calls: !0, batch_call_timeout: 100, batch_links: !1, batch_mutation: !0, batch_mutation_timeout: 250, click_timeout: 1000, debug: !1, debug_performance: !1, declare_handler: !1, dynamic: !0, dynamic_scope: null, exclude_scope: null, hop_timeout: 2000, insert_host: 'i.viglink.com', library_id: null, links_merge_timeout: 75, links_version: '3.2', log_context: !0, nofollow: { }, norewrite: { }, script_timeout: 2000, testing_js: [ ], time: !1, time_log_timeout: 3000, plugins: { crawler: { }, harmony: { }, link_affiliation: { }, modified_clicks: { } } }), e.sync_url = e.sync_url || e.api_url; for (a in e) '_plugin' === a.substr( - 7) && delete e[a] }, initPlugins: function () { var a, d = 100, g = 5000, i = 1, j = { link_affiliation: 'convert', link_optimization: 'optimize', page_harmony: 'harmony', partner_integration: 'partners', product_linker: 'insert', product_widget: 'spotlight' }, k = [ 'spotlight' ], l = [ 'harmony' ], m = function (b) { return function (b) { return function () { delete f[b].opts.mode, i = 1, clearTimeout(a), o() } }(b) }, n = function (a) { var b; return c.find(j, function (a, c) { return 'insert' === a && (b = c) }), a[b] || (a[b] = { enabled: !0, key: e.key, link_phrases: !1 }), a[b].link_urls = e.link_urls, a }, o = function () { var j = { _ran: !1, init: c.noop, initDocuments: c.noop, initNodes: c.noop, 'public': { } }, k = function (a, d) { a.setup = a.setup || (window.vglnk ? window.vglnk[d + '_plugin'] : null), n(a) && (p(a) || (a = c.extend(a, j, a.setup(c.reformatKeys(a.opts), c.clone(c), h, m(e.key))), a['public'] && b.expose(d, a['public'], !1)), a.opts.mode !== b.PLUGIN_MANUAL && b.runPlugin(d)) }, m = function (a) { var d = function () { if (a) { var d = c.toArray(arguments); d.unshift('custom', a), b.log.apply(this, d) } }; return d.eventTimer = b.eventTimer, d }, n = function (a) { return 'function' === c.type(a.setup) }, p = function (a) { return Boolean(a.initDocuments) }, q = function (a) { return Boolean(a._ran) }, r = function (a) { return !q(a) }; a = null, c.each(l, function (a) { var b = f[a]; b && r(b) && k(b, a) }), c.each(c.all(f, r), k), c.find(f, r) && (a = setTimeout(c.entryPoint(o), Math.min(Math.max(Math.pow(2, ++i), d), g))) }, p = function () { var a = !1, d = 100; setTimeout(function () { b.api.flush() }, d), o(), c.on('DOMReady', function () { a = !0, setTimeout(b.api.flush, 0) }) }; return function (a) { a = n(a), c.each(a, c.bind(function (a, b) { b = j[b] || b, 'object' == typeof a && a.enabled !== !1 && (f[b] = { opts: a }, c.contains(k, b) && c.jsonp(this.opt('asset_url') + '/plugins/' + b + '.js'), a.mode === this.PLUGIN_MANUAL && this.expose('init_' + b, m(b))) }, this)), p() } }(), initProcessors: function () { this.registerProcessor(function (a) { var b, d = c.createA(e.api_url); '/api/click' !== a.pathname || a.hostname !== d.hostname && !a.hostname.match(/(^|\.)(api|cdn|apicdn)\.viglink\.com$/) || (b = c.fromQuery(a.search), void 0 !== b.out && (a.href = b.out, delete b.out, c.cache(a, 'params', b))) }), this.registerProcessor(function (a) { e.nofollow[a.href] && !c.hasRel(a, 'nofollow') && (a.rel = (a.rel ? a.rel + ' ' : '') + 'nofollow') }), this.registerProcessor(function (a) { e.declare_handler && c.attributes(a, { 'data-hl': 'viglink' }) }), this.registerProcessor(function (a) { window.IPBoard && window.IPBoard.prototype && window.IPBoard.prototype.delegate && c.hasRel(a, 'external') && (a.rel = a.rel.replace(/(^| )external( |$)/, ''), a.target = '_blank') }), this.registerProcessor(function () { c.each(c.select('.vl_disclosure'), function (a) { var b, d; b = c.createEl(a.tagName, { height: 0, visibility: 'hidden' }), document.body.appendChild(b), d = c.css(b, 'display'), document.body.removeChild(b), c.css(a, { display: d }) }) }) }, isAuctionLink: function (a) { return c.cache(a, 'auctioned') === !0 }, isBlacklisted: function (a) { return 'object' === c.type(e.blacklist_domains) && e.blacklist_domains[c.canonicalizeHostname(a)] }, isCommercial: function (a) { return this.loadedCommercial() && e.commercial_domains[c.canonicalizeHostname(a)] }, isPrivate: function (a) { if ('array' !== c.type(e.private_domains)) return !1; var b = c.canonicalizeHostname(a); return c.find(e.private_domains, function (a) { return new RegExp('(^|\\.)' + c.escapeRegExp(a) + '$', 'i').test(b) }) }, isRewritable: function () { var a = c.canonicalizeHostname(document.location), d = function (a) { var b = c.cache(a, 'type'), d = c.cache(a, 'params') || { }; return Boolean(b || d.type) }, f = c.generateNodeFilter({ classes: [ 'norewrite' ], rels: [ 'norewrite', 'noskim' ], custom: function (f, g) { if (!g) return !1; var h = c.canonicalizeHostname(f), i = '', j = !1; try { i = f.protocol, h.charAt(0) } catch (k) { return !0 } return j = Boolean('' === h || !i.match(/^https?:$/i) || e.norewrite[h]), j || d(f) || (j = Boolean(a === h || !e.rewrite_original || !e.rewrite_any && !b.isCommercial(f))), j } }); return function (a) { return f(a) } }(), loadedCommercial: function () { return 'object' === c.type(e.commercial_domains) }, log: function (a, b, d, f) { var g, h, i, j = c.toQuery({ libId: e.library_id, nocache: c.uniqid() }), k = 'pixel.gif'; if ('custom' === a) h = b, a = d, j += '&' + c.toQuery({ key: h, type: a }), c.each('array' === c.type(f) ? f : [ f ], function (a) { c.each(['e', 'i', 'o'], function (b) { delete a[b] }), j += '&' + c.toQuery(a) }); else { if (j += '&' + c.toQuery({ key: e.key, drKey: e.key ? null : e.dr_key, subId: e.sub_id }), 'time' === a && c.traits.json) k = 'time.gif', g = { e: c.toJSON(b), v: 2 }; else if ('exception' === a) g = { e: b, o: d }; else { if ('info' !== a) return; g = { i: b } } j += '&' + c.toQuery(g) } i = e.api_url + '/' + k + '?' + j, c.pii.transmits(i) || (c.createEl('img').src = i) }, eventTimer: function () { var a, d, f = !1, g = { }, h = 'viglink-', i = '-start', j = '-stop', k = function (a, b) { return function () { if (c.traits[b]) return a.apply(this, arguments) } }, l = function (a, b) { return function () { var d = c.reduce(!1, b, function (a, b) { return a || e[b] }); if (d) return a.apply(this, arguments) } }, m = c.batchable(function () { var a, d = c.batched(arguments) ? c.batchArgs(arguments) : [ arguments ]; a = c.map(d, function (a) { return c.prune({ event: a[0], time: a[1], total: a[2] }) }), a.length && b.log('time', a) }, function () { return { timeout: e.time_log_timeout } }), n = l(m, [ 'time' ]), o = function (a) { var b = h + a + i; window.performance.mark(b) }, p = function (b, e) { var k, l = g[b] || 0, m = h + b, o = h + b + i, p = h + b + j; window.performance.mark(p), window.performance.measure(m, o, p), k = window.performance.getEntriesByName(m, 'measure'), k = k.slice(l), g[b] = l + k.length, e || c.each(k, function (c) { var d = c.duration, e = c.startTime - a; n(b, d, e) }), f || (f = !0, n('load', d - a, d - a)) }; return a = c.traits.performanceNavigationTiming ? window.performance.getEntriesByType('navigation') [0].domInteractive : 0, c.traits.performanceTimingApi && (d = window.performance.now()), { force: k(o, 'performanceTimingApi'), start: k(l(o, [ 'debug_performance', 'time' ]), 'performanceTimingApi'), stop: k(l(p, [ 'debug_performance', 'time' ]), 'performanceTimingApi') } }(), logException: function (a) { if (e.debug) { var b = { link: c.cache(this, 'link'), loc: window.document.location.href, UA: navigator.userAgent }; 'string' == typeof a ? b.message = a : b = c.extend(b, a), this.log('exception', a, c.toQuery(b)) } }, onApiClick: function (a, b, d, f, g) { var h, i = f || c.getActualHref(a), j = c.bind(function () { this.redirect(i, c.context(a), b, d) }, this); 'object' == typeof g && (g.tracking || g.image) ? (h = c.createEl(g.tracking ? 'iframe' : 'img', { src: g.tracking || g.image }, { height: 0, width: 0, visibility: 'hidden' }), document.body.appendChild(h), setTimeout(c.entryPoint(j), g.timeout || e.hop_timeout)) : j() }, onApiPing: function (a, d, f, g, h, i) { e.rewrite_original = !1, h = c.reformatKeys(h || { }); var j, k, l, m; k = function (a) { var b = { }, d = function (a) { c.isArray(a) ? b[a[0]] = a[1] : b[a] = 1 }; return c.isArray(a) && c.each(a, d), b }, c.exceptionLogger(function () { c.canonicalizeHostname(window.location).match(/(^|\.)cnn\.com$/) && (e.exclude_scope = [ '#optanon', '.OUTBRAIN', '*[class*=outbrain]', '*[class*=partner]', '*[class*=sponsored]' ].join(',')) }) (), c.exceptionLogger(function () { c.canonicalizeHostname(window.location).match(/^(www\.)?msn\.com$/) && (e.dynamic_scope = [ '.gallery-container > .gallerydata', 'section.gallery:first-child ~ .gallerydata' ].join(','), e.exclude_scope = [ '*[class^=stb-]', '.sticky-footer' ].join(','), e.declare_handler = !0) }) (), l = c.extend(e.plugins, h.plugins), e = c.extend(e, h), delete e.plugins, e.click_timeout = d, e.library_id = a, this.eventTimer.stop('png'), 'array' === c.type(e.testing_js) && e.testing_js.length > 0 && c.each(e.testing_js, function (a) { c.jsonp(a) }), c.extend(e.nofollow, k(i)), c.extend(e.norewrite, k(f)); for (j in e) 'on' === j.toLowerCase().substr(0, 2) && j.length > 2 && 'function' === c.type(e[j]) && (c.on(b, j.toLowerCase().substr(2), c.bind(e[j], window)), delete e[j]); this.initPlugins(l), this.initContext(window), (m = c.rootContext(window)) && m !== window && this.initContext(m), this.fire('libready') }, onClick: function (a, b) { b = b || window.event; var d = b.ctrlKey || b.metaKey || b.altKey || b.shiftKey, e = b.which && 1 === b.which || 0 === b.button, f = c.eventLink(b); if (f && e && !d && !c.isDefaultPrevented(b) && this.allowed(f) && this.isRewritable(f) && !this.isAuctionLink(f) && this.shouldHandleClick(a, f)) return this.click(f), c.preventDefault(b) }, onContextmenu: function (a, b) { var d = c.eventLink(b || window.event); d && this.allowed(d) && this.isRewritable(d) && !this.isAuctionLink(d) && this.shouldHandleClick(a, d) && this.handleRightClick(d, 'setup') }, onCopy: function (a) { a = a || window.event; var d, e, f, g, h = [ ], i = 128; if (window.getSelection) for (f = window.getSelection(), d = 0, e = f.rangeCount; d < e; d++) { try { g = f.getRangeAt(d).toString().replace(/((^)\s+|\s+$|\r)/g, '').replace(/\s*\n\s*/g, '\n') } catch (j) { } g.length > 0 && g.length <= i && h.push(g) } c.each(h, function (a) { b.log('info', c.toQuery({ type: 'selection', txt: a, loc: location.href })) }) }, opt: function (a, b) { return void 0 !== b && void 0 !== this.publicOptions() [a] && (e[a] = b), e[a] }, ping: function () { var a = !1; return function () { if (!a && (e.key || e.dr_key)) { var b = { ref: document.referrer || null, v: 2 }; if (a = !0, c.pii.transmits(this.api.now('ping', b, { 'return': !0 }))) return; this.eventTimer.force('png'), this.detectFiltering(c.bind(function (a) { a && (e.batch_calls = !1, b.type = this.TYPE_ACCEPTABLE), this.api.now('ping', b, { fn: c.apiCallback(this.onApiPing, this) }) }, this)) } } }(), platform: function () { return c.platforms.findById(e.platform) || c.platforms.NONE }, processLink: function (a) { var d = c.cache(a, 'processors') || { }, f = this.allowed(a), g = this.isRewritable(a); return c.each(this.registerProcessor(), function (h) { if (h.opts.any || e.rewrite_any || b.loadedCommercial()) { if (!d[h.id] && f && (g || h.opts.any)) { var i; h.opts.scope && 'body' !== h.opts.scope && (i = c.some([h.opts.scope + ' a', h.opts.scope], function (b) { return c.matches(a, b) })), i !== !1 && h.fn(a) } d[h.id] = !0 } }), c.cache(a, 'processors', d), a }, processLinks: function (a) { c.each(a, c.bind(this.processLink, this)) }, publicOptions: function () { var a = { }; return function (b) { return 'object' === c.type(b) && (a = b), c.extend({ }, a) } }(), redirect: function (a, d, e, f) { var g, h, i = function (a, d, e) { var f, g = [ ]; if (c.traits.referrerPolicy) { f = function (a) { var b = d.document.createElement('meta'); b.name = 'referrer', b.content = a, d.document.getElementsByTagName('head') [0].appendChild(b) }, b.isPrivate(a) && (g = [ f('no-referrer'), f('never') ]), e(); try { c.each(g, function (a) { a.parentNode.removeChild(a) }) } catch (h) { } } else e() }; d = d || window.top, c.traits.crossWindowCommunication || e ? c.traits.jsRedirectSetsReferrer ? setTimeout(c.entryPoint(function () { e && e !== d ? c.contextIsAncestor(d, e) ? e.location = a : e.location.replace(a) : i(a, d, function () { d.location = a }) }), 0) : ('_blank' === f && (f = c.uniqid('win_')), g = c.createA(a, f), g.rel = 'norewrite', d.document.body.appendChild(g), g.click(), g.parentNode.removeChild(g)) : (h = d.open(a, f), h.focus()) }, redirectUrl: function (a, b) { return b = b || { }, this.api.now('click', a, c.extend(b, { base_url: e.anywhere_url, path: '/' }, { 'return': !0 })) }, runPlugin: function (a, b) { var d = window.document, e = f[a]; e && e.initDocuments && (b ? e.initNodes(b) : (e.init(), 'function' === c.type(e.initDocuments) && 'document' === c.type(d) && e.initDocuments([d]), 'function' === c.type(e.initNodes) && 'element' === c.type(d.body) && c.on('DOMReady', function () { e.initNodes([d.body]) })), e._ran = !0) }, registerProcessor: function () { var a = !1, b = [ ], d = function (d, e) { return void 0 === d ? b : void ('function' === c.type(d) && (e = c.extend({ any: !1, scope: null }, e), b.push({ fn: d, id: c.uniqid(), opts: e }), a && this.initLinks())) }; return d(function () { a = !0 }, { any: !0 }), d }(), sendLinks: c.mergeable(function () { return { batchFn: b.api, nonBatchFn: b.api.now, batchable: e.batch_links, timeout: e.links_merge_timeout } }), shouldHandleClick: function (a, b) { var d = !0, e = 'inserted' === c.cache(b, 'type'); return a === this.EVENT_LEVEL_LINK && (d = this.harmony(c.harmony.LINK_EVENTS) || (this.isCommercial(b) || e) && this.harmony(c.harmony.COMMERCIAL_LINK_EVENTS)), d }, whitelistNodes: function () { var a, b = '.allowvig'; return function (d) { return a && !d || (a = c.select(b)), a } }() }, b.init(); try { delete window.vglnk_self } catch (i) { } }('undefined' == typeof vglnk_self ? 'vglnk' : vglnk_self), window.vglnk = window.vglnk || { }, window.vglnk.convert_plugin = function (a, b, c) { var d, e, f = { }, g = { seen: 1, called: 2 }; return a = b.extend({ any: !0, convert_minimum_bid: !1, check_exp_domains: !0 }, a), e = { getDomains: function () { var a = [ ]; b.each(f, function (b, c) { f[c] !== g.called && (a.push(c), f[c] = g.called) }), a.length > 0 && c.apiNow('domains', { domains: a.join('|'), v: '2' }, { fn: b.apiCallback(e.onDomainApi, e) }) }, init: function () { c.opt('link_target', a.link_target), c.opt('rewrite_any', a.any), c.opt('rewrite_original', !0), d = !a.any || c.harmony(b.harmony.COMMERCIAL_LINK_EVENTS) || a.convert_minimum_bid || a.check_exp_domains, d && c.registerProcessor(b.bind(function (a) { this.initDomainLookup(), this.saveDomain(a) }, this), { any: !0 }) }, initDomainLookup: function () { var a = !1; return function () { a || (a = !0, b.on('DOMReady', b.bind(this.getDomains, this))) } }(), onDomainApi: function () { var a = b.destructing(function () { c.initLinks() }); return function (d) { var e = c.opt('blacklist_domains'), f = c.opt('commercial_domains') || { }, g = b.destructing(function () { e = e || { } }); b.each(d.results, function (a, b) { f[b] = !0, a.unlink && (g(), e[b] = !0) }), c.opt('commercial_domains', f), c.opt('blacklist_domains', e), a() } }(), saveDomain: function (a) { var c = b.canonicalizeHostname(a); f[c] = f[c] || g.seen }, unlinkBlacklisted: function (a) { c.isBlacklisted(a) && b.unlink(a) } }, { init: b.bind(e.init, e), initNodes: function () { e.getDomains() } } }, window.vglnk = window.vglnk || { }, window.vglnk.crawler_plugin = function (a, b, c) { var d = [ ], e = c.platform(), f = { crawl: function (a) { if (e && 'array' === b.type(a) && 0 !== a.length) { a = b.all(a, function (a) { return !b.contains(d, a) }); var c = this.findPostsById(a); b.each(c, b.bind(function (a) { a.content = this.redact(a.el.innerHTML.replace(/(^\s+|\s+$)/g, '')), delete a.el }, this)), c = b.all(c, function (a) { return Boolean(a.content && a.id) }), c.length > 0 && this.processPosts(c) } }, findPostsById: function (a) { return b.all(b.map(e.getPosts(), function (a) { return { el: a, id: e.getPostId(a) } }), function (c) { return b.contains(a, c.id) }) }, processPosts: function (a) { a = b.map(a, function (a) { return d.push(a.id), { c: a.content, i: a.id } }), c.api('content', { content: b.toJSON({ ct: a, pt: e.id, u: window.document.location.href }) }, { jsonp: !1 }) }, redact: function (a) { return b.pii.redact(a) } }; return { 'public': { crawl: b.bind(f.crawl, f) } } }, window.vglnk = window.vglnk || { }, window.vglnk.modified_clicks_plugin = function (a, b, c) { return { init: function () { c.opt('rewrite_modified', !0) } } }, window.vglnk = window.vglnk || { }, window.vglnk.privacy_plugin = function (a, b, c) { return { init: function () { a.domains && c.opt('private_domains', a.domains) } } }, window.vglnk = window.vglnk || { }, window.vglnk.dr_search_box_plugin = function (a, b, c) { a = b.extend({ key: null }, a); var d = { init: function (a) { b.each(this.getDRSearchForms(a), function (a) { if (!b.cache(a, 'evented')) { var c = d.getInput(a), e = function () { c.value || b.css(c, { 'background-image': 'url(http://cdn.viglink.com/images/ebay_watermark.gif)' }) }; b.cache(a, 'evented', !0), a.onsubmit = null, c.onfocus = null, c.onblur = null, b.on(c, 'focus', function () { b.css(c, { 'background-image': 'none' }) }), b.on(c, 'blur', e), e(), b.on(a, 'submit', function (b) { d.onSubmit(b, a) }) } }) }, getDRSearchForms: function (a) { var c = [ ]; return b.each(a, function (a) { 'element' === b.type(a) && b.each(a.getElementsByTagName('form'), function (a) { d.getInput(a) && a.id.match(/^DR-ebay-search(CSS|2)?$/i) && c.push(a) }) }), c }, getInput: function (a) { return a.p || a.q2 }, onSubmit: function (e, f) { e = e || window.event; var g = 'http://shop.ebay.com/i.html?' + b.toQuery({ _nkw: d.getInput(f).value }), h = b.createA(g, '_blank'); return b.cache(h, 'params', { key: a.key }), c.click(h), b.preventDefault(e) } }; if (a.key) return { init: b.bind(d.init, d), initNodes: function (a) { d.init(a) } } }, window.vglnk = window.vglnk || { }, window.vglnk.harmony_plugin = function (a, b, c) { return a = b.extend({ level: b.harmony.DEFAULT }, a), { init: function () { var b = parseFloat(a.level, 10); isFinite(b) && c.opt('harmony_level', b) } } }, window.vglnk = window.vglnk || { }, window.vglnk.optimize_plugin = function (a, b) { var a = b.extend({ exclude_page_title: null, exclude_link_text: null }, a); return { init: function () { var c = { opt: !0 }; null !== a.exclude_page_title && b.extend(c, { optExTitle: a.exclude_page_title }), null !== a.exclude_link_text && b.extend(c, { optExText: a.exclude_link_text }), b.cache('opt_params', c) } } }, window.vglnk = window.vglnk || { }, window.vglnk.insert_plugin = function (a, b, c, d) { var e, f, g, h, i = { API: 'api', DOM_TRAVERSAL: 'dom' }, j = { LITE: 'L', HEAVY: 'H', URL: 'U', SEARCH: 'S', MANUAL: '0' }, k = { UNLINKED_URL_KEY: '&!UNLINKED!&', DEFAULT_IMP_ID: '-' }, l = '2.0', m = null, n = !1, o = null; if (a = b.extend({ cat: null, dynamic_sample_rate: 1, heading_threshold: 2, insertion_order: i.API, key: null, link_headings: !1, link_phrases: !0, link_target: null, link_urls: !0, manual_mode: 1 === a.mode, per_page: null, per_phrase: 5, proximity: null, same_proximity: 100, scope: null, ui: !0 }, a), a.insertion_order !== i.API && a.insertion_order !== i.DOM_TRAVERSAL && (a.insertion_order = i.API), a.key) return e = c.platform(), f = { cache: function () { var c, d = function () { c = { impressions: { }, post_mappings: { } } }, e = function (a, d) { var e, f = c.post_mappings, g = c.impressions, h = { }; return d = d || [ b.platforms.DEFAULT_POST_ID ], e = b.all(b.unique(b.map(d, function (a) { return f[a] })), function (a) { return null !== a }), b.find(e, function (c) { if (g[c] && g[c].data && g[c].order) { if (a) return h[a] = g[c].data[a], !0; b.each(g[c].order, function (a) { var b = g[c].data[a]; h[a] || (h[a] = b) }) } }), a ? h[a] : h }, f = function (a, d, e, f) { var g = c.impressions, h = c.post_mappings; return e = e || k.DEFAULT_IMP_ID, f = f || [ b.platforms.DEFAULT_POST_ID ], g[e] = g[e] || { data: { }, order: [ ] }, g[e].data[a] || (g[e].data[a] = d, g[e].order.push(a)), b.each(f, function (a) { h[a] = e }), !0 }, g = function (a, c, d, g) { var h = b.all(b.toArray(arguments), function (a) { return Boolean(a) }); return 'array' === b.type(h[h.length - 1]) && (g = h.pop()), a = h[0], c = h[1], h.length <= 1 ? e(a, g) : h.length >= 2 ? f(a, c, d, g) : void 0 }; return a.manual_mode && b.extend(g, { reset: d }), d(), g }(), enabled: function () { return a.link_phrases || a.link_urls }, focusLink: function (a) { a.id || (a.id = b.uniqid('vl-link-')), location.href.hash = '#' + a.id, window.scrollBy(0, - 150) }, getPartnerParams: function () { var a, b, d = c.opt('partner'), e = { }; for (a in d) break; if (a) for (b in d[a]) e[a + '_' + b] = d[a][b]; return e }, getPhrases: function (g, h) { d.eventTimer.start('ins'), c.api('insert', b.extend(f.getPartnerParams(), { cat: a.cat, i: h ? h.join('|') : null, mode: a.mode, pt: e.id, ps: a.product_source, u: window.document.location.href, v: l }), { fn: b.apiCallback(f.onInsertApi, f) }, g, h) }, hasCalled: function () { var c = { }, d = Math.random() < a.dynamic_sample_rate, e = function (a) { return d && b.isArray(a) ? b.map(a, function (a) { return e(a) }) : d && a === b.platforms.DEFAULT_POST_ID ? window.document.location.href : a }, f = function (a) { return a = e(a), b.isArray(a) && a.length ? Boolean(b.all(a, function (a) { return c[a] }).length === a.length) : Boolean(c[b.platforms.DEFAULT_POST_ID]) }, g = function (a) { a = e(a), b.isArray(a) && a.length ? b.each(a, function (a) { c[a] = !0 }) : c[b.platforms.DEFAULT_POST_ID] = !0 }; return function (a, b) { return b ? g(a) : f(a) } }(), init: function () { d.eventTimer.start('insert-init-run'), a.scope = a.scope || e.scope, a.link_urls && (h = function () { var a = { http_scheme: 'https?://', www_domain_part: 'www\\d{0,3}\\.', domain_part: '[a-z0-9-]+', tld: '[a-z]{2,4}', nonparen_path_char: '[^\\s()<>]', hard_start: '(?:^|\\s)\\W*', soft_start: '\\b' }; return a.balanced_parens = '\\((?:' + a.nonparen_path_char + '|(?:\\(' + a.nonparen_path_char + '+\\)))*\\)', a.domain_parts = '(?:' + a.domain_part + '\\.)+', new RegExp('(?:(?:' + a.soft_start + '(' + a.http_scheme + ')|' + a.hard_start + '(' + a.www_domain_part + '|' + a.domain_parts + a.tld + '/))((?:' + a.nonparen_path_char + '+|' + a.balanced_parens + ')+(?:' + a.balanced_parens + '|[^\\s`!()\\[\\]{};:\'".,<>?«»“â€â€˜â€™]))|' + a.hard_start + '(' + a.domain_parts + 'com\\b/?)(?!\\.' + a.domain_part + '))', 'i') }()) }, initLink: function () { var d = function (a) { var d = b.fromQuery(a.search), e = d.u || d.out; e && (delete d.format, delete d.out, delete d.u, b.extend(d, c.clickParams(a), { out: e }), a.search = '?' + b.toQuery(d)) }, e = function (a) { return a.auc === !0 }; return function (f, g, h) { var i = a.link_target; i = g.type === j.URL ? c.opt('link_target') : i || h, i && (f.target = i), f.href || (f.href = g.url), f.rel = 'nofollow', b.cache(f, 'params', { exp: m, iid: g.iid, key: a.key, mid: g.mid, type: g.type || null }), e(g) && (d(f), b.cache(f, 'auctioned', !0)), b.cache(f, 'href', f.href), c.link(f) } }(), insertLinks: function () { var e = b.generateNodeFilter({ classes: [ 'nolinks', 'atma-nolink', 'atma-nolinks' ], tags: [ 'map' ], custom: function (a) { return b.matches(a, 'a') && Boolean(a.href) } }), g = function (c, d, e, f) { var g = { phrase_to_nodes: { }, regexp_cache: { }, stats: { } }; return b.each(d, function (a) { m(c, a, e, f, g) }, { timeout: !0 }), a.insertion_order === i.API && l(e, g), g.stats }, l = function (a, c) { var d = q(a); d.push(k.UNLINKED_URL_KEY), b.each(d, function (d) { var e = c.phrase_to_nodes[d]; e && b.each(e, function (b) { s(b, b.data, a, c) }) }) }, m = function (a, b, d, f, g) { c.allowed(b, { }, { skipWhitelist: !0 }) && e(b, { ancestors: !Boolean(f), self: !0 }) && (3 === b.nodeType ? p(a, b, d, g) : 1 === b.nodeType && o(a, b, d, g)) }, o = function (a, b, c, d) { var e; for (b = b.firstChild; b; ) e = b.nextSibling, m(a, b, c, !0, d), b = e }, p = function () { var d = function (c, d) { var e = [ ]; return b.each(c, function (a) { var c, f; d[a] ? c = d[a] : (f = b.escapeRegExp(a).split(' ').join('\\s+'), f = '(?:^|[\\s"\'\\(])(' + f + ')(?=\\s|\\W*$|\\W{2})', c = new RegExp(f, 'i'), d[a] = c), e.push(c) }), a.link_urls && h && e.push(h), e }, e = function (a, c) { var d = q(c); return a = f.normalizePhrase(a), b.all(d, function (b) { return a.indexOf(b) !== - 1 }) }, g = function (a, b, c) { a[b] || (a[b] = [ ]), a[b].push(c) }; return function (h, j, l, m) { var n, o, p, q = !1, s = j.parentNode, t = m.phrase_to_nodes, u = m.regexp_cache; !s || c.opt('whitelist') && !c.allowed(j) || (j.data && (q = h.test(j.data.replace(/\s+/, ' '))), q && a.insertion_order === i.DOM_TRAVERSAL ? r(h, j, l, m) : q && a.insertion_order === i.API && (n = e(j.data, l), o = d(n, u), p = [ j ], b.each(o, function (a) { var c = [ ]; b.each(p, function (d) { for (var e, h, i, j, l, m; d && d.data && '' !== d.data && (Boolean(!b.traits.fastRegexp && (i = d.data.match(/^\s+/))) || Boolean(i = d.data.match(a))) && i.input !== e; ) e = i.input, h = i.slice(1).join(''), l = f.normalizePhrase(h), j = v(d, i), j.previous && j.previous.data && c.push(j.previous), d = j.next, m = b.contains(n, l) ? l : k.UNLINKED_URL_KEY, g(t, m, j.match); d && !i && c.push(d) }, { timeout: !0 }), p = c }))) } }(), q = function (a) { var c = f.cache(a); return b.map(c, function (a, b) { return b }) }, r = function (a, c, d, e) { for (var f, g, h, i; c && c.data && '' !== c.data && (Boolean(!b.traits.fastRegexp && (h = c.data.match(/^\s+/))) || Boolean(h = c.data.match(a))) && h.input !== f; ) f = h.input, g = h.slice(1).join(''), i = v(c, h), s(i.match, g, d, e), c = i.next }, s = function () { var d = function (c) { var d; return !(!a.link_headings && (d = b.css(c.parentElement, 'font-size'))) || (d = parseFloat(d), d <= 0 || d / b.page.font_size < a.heading_threshold) }, e = function (c, d) { var e, f; return !(!c || c.type !== j.URL) || (e = !c || !a.per_phrase || !d[c.phrase] || d[c.phrase].count < a.per_phrase, f = !a.per_page && 0 !== a.per_page || b.reduce(0, d, function (a, b) { var c = b.type !== j.URL ? b.count : 0; return a + c }) < a.per_page, e && f) }, g = function (d, e, g) { var h, i = Boolean(c.opt('dynamic_scope')), j = function (a) { return h.parentNode.insertBefore(e, h), h.parentNode.removeChild(h), a }, k = function () { var c, e, i = function (a, c, d) { return a = b.extend({ }, a), a.x1 -= d, a.y1 -= d, a.x2 += d, a.y2 += d, a.x1 < c.x2 && a.x2 > c.x1 && a.y1 < c.y2 && a.y2 > c.y1 }; return !g.phrase || ((a.proximity || a.same_proximity) && (e = b.geometry(h), b.find(f.cache(d), function (d) { var h, j; if (d.links) return h = f.normalizePhrase(d.phrase) === f.normalizePhrase(g.phrase), !(h && !a.same_proximity || !h && !a.proximity) && (j = h ? Math.max(a.same_proximity, a.proximity) : a.proximity, d.links = b.all(d.links, function (a) { var d = b.isInDom(a.el); return !c && d && (c = b.find(a.segments, function (a) { if (i(a.geometry, e, j)) return !0 })), d }), c) })), !c) }; return !!e.parentNode && (h = b.createEl('span'), e.parentNode.insertBefore(h, e), h.appendChild(e), j((!i || b.isVisible(h)) && k())) }, h = function (a, c) { var d, e, f, g, h = { el: a, segments: [ ] }, i = a.getElementsByTagName('span'), j = { els: [ ] }; for (d = 0, e = i.length; d < e; d++) f = i[d], void 0 === g || f.offsetTop === g.offsetTop ? j.els.push(f) : (h.segments.push(j), j = { els: [ f ] }), g = f; return j.geometry = b.geometry.apply(b, j.els), h.segments.push(j), c.links = c.links || [ ], c.links.push(h), c }; return function (a, i, k, l) { var m, n, o = l.stats, p = f.normalizePhrase(i), q = i ? f.cache(p, k) : null; i && !q && (q = { url: i.match(/^https?:\/\//i) ? i : 'http://' + i, type: j.URL }), q && q.url.match(/https?:\/\//i) && i && e(q, o) && g(k, a, q) && d(a) && (m = t(i, q), b.cache(m, 'unlinked') || c.isBlacklisted(m) || (u(m, a), h(m, q), n = q.phrase || q.url, o[n] = o[n] || { count: 0, iid: q.iid, imp: q.imp, phrase: q.phrase, url: q.url, type: q.type }, o[n].count++)) } }(), t = function (c, d) { var e; return e = b.createEl('a'), e.innerHTML = c.replace(/([a-z0-9]+ *|[^a-z0-9]+)/gi, '<span>$1</span>'), e.className = 'vglnk', b.cache(e, 'type', 'inserted'), b.cache(e, 'phrase', c), a.ui && d.type !== j.URL && (e.title = 'Link added by VigLink'), f.initLink(e, d), e }, u = function (a, b) { var c = b.parentNode; c.insertBefore(a, b), c.removeChild(b) }, v = function (a, b) { var c, d, e = b.slice(1).join(''), f = b[0], g = b.index + f.length - e.length; return g > 0 ? c = a.splitText(g) : (c = a, a = null), d = c.length <= e.length ? null : c.splitText(e.length), { previous: a, match: c, next: d } }; return function (c, h) { var i, j = { }; d.eventTimer.start('insert-run'), i = f.regexp(h), i && (c = b.all(c, e), c && c.length && (j = g(i, c, h, !1)), a.link_phrases && f.sendInsertedTerms(j)), d.eventTimer.stop('insert-run', !0), n || (n = !0, d.eventTimer.stop('insert-init-run', !0)) } }(), insertManually: function () { var c = !1, d = b.clone(a), e = function (a) { return b.map(a, function (a, b) { return { iid: '00000000', phrase: b, type: j.MANUAL, url: a } }) }, h = function (b) { a.same_proximity = b.same_proximity || a.same_proximity, a.proximity = b.proximity || a.proximity, a.per_page = b.per_page || a.per_page, a.per_phrase = b.per_phrase || a.per_phrase }; return function (i, j, k) { var l, m, n = !1; g.init(), a.manual_mode && !c && (c = !0, j = j || { }, h(j), m = j.target_node || document.body, l = e(i), f.loadPhrases(l, null, [ m ]), a = d, f.cache.reset(), n = !0, c = !1), 'function' === b.type(k) && k(n, m) } }(), loadPhrases: function (a, c, d, e) { b.each(a, function (a) { a.phrase && a.url && a.iid && (a.phrase = f.normalizePhrase(a.phrase), f.cache(a.phrase, { auc: a.auc, count: 0, iid: a.iid, imp: c, phrase: a.phrase, mid: a.mid, url: a.url, type: a.type || '' }, c, e)) }), f.hasCalled(e, !0), this.insertLinks(d, e) }, normalizePhrase: function (a) { return a.toLowerCase().replace(/(^\s+|\s+$)/g, '').split(/\s+/).join(' ') }, onInsertApi: function (a, c, e) { d.eventTimer.stop('ins'), 'object' === b.type(a) && (m = a.exp, o = a.imp_id, a.results && this.loadPhrases(a.results, o, c, e)) }, regexp: function (a) { var c, d, e, g = f.cache(a); return d = b.map(g, function (a, c) { return b.escapeRegExp(c).split(' ').join('\\s+') }), d.length > 0 && (c = '(?:^|[\\s"\'\\(])(' + d.join('|') + ')(?=\\s|\\W*$|\\W{2})', e = new RegExp(h ? '(?:' + c + '|' + h.source + ')' : c, 'i')), e || h }, sendInsertedTerms: function (d) { var e = b.map(d, function (a, b) { return { count: a.count, phrase: b, iid: a.iid, impId: a.imp, url: a.url, type: a.type } }); e.length && c.apiNow('inserted', { cat: a.cat, exp: m, terms: b.toJSON(e), u: window.document.location.href, v: l }) } }, g = { init: b.destructing(b.bind(f.init, f)), initNodes: function (d) { var g = [ ], h = [ ], i = [ ]; f.enabled() && (a.scope ? (b.each(d, function (c) { var d, e = b.withScope([c], a.scope, { ancestors: !0, consolidate: !0, descendants: !1, self: !0 }); e.length ? (i.push(c), h = h.concat(e)) : (d = b.withScope([c], a.scope, { ancestors: !1, consolidate: !0, descendants: !0, self: !1 }), d.length && (i = i.concat(d), h = h.concat(d))) }, { timeout: !0 }), i = b.unique(i), h = b.unique(h)) : (i = d, h = d), Boolean(c.opt('dynamic_scope')) && (i = b.all(i, function (a) { return !b.matches(a, ':has(a.vglnk)') }, { timeout: !0 })), i.length && (h.length && (g = e.getPostIds(h)), a.link_phrases && !f.hasCalled(g) ? f.getPhrases(i, g) : f.insertLinks(i, g))) } }, a.manual_mode && b.extend(g, { 'public': { run: f.insertManually } }), g }, window.vglnk = window.vglnk || { }, window.vglnk.partners_plugin = function (a, b, c) { var d, e = '/api/sync/status.gif', f = '/api/sync.gif', g = '/api/sync.js'; return a = b.extend({ log_links: !0, log_status: !1, pai_type: null, sync_type: null, scope: 'body' }, a), d = { initLinkLogger: function () { c.registerProcessor(function (a) { c.sendLinks('optimize', { desc: b.page.description, links: [ a.href ], mode: [ 'P' ], title: b.page.title, u: b.context(a).document.location.href, ver: c.opt('links_version') }, { jsonp: !1 }) }, { scope: a.scope }) }, logStatus: function (a) { b.createEl('img').src = b.updateUrl(c.opt('sync_url'), { pathname: e, search: '?' + b.toQuery({ st: a }) }) }, run: function () { a.log_links && d.initLinkLogger(), a.pai_type ? d.sync('partner', a.pai_type) : a.sync_type && d.sync(a.sync_type) }, sync: function () { var e = function (b, c, e) { a.log_status && d.logStatus(c), e && d.sync(b, e) }; return function (h, i) { var j, k, l, m, n = 'pixel'; if ('partner' === h) { if (!b.isArray(i) || !i.length) return; k = { partner_id: i.shift() }, l = f } else { if (!b.contains(['pixel', 'script'], h)) return; i = null, k = { key: c.opt('key') }, 'pixel' === h ? l = f : (n = 'script', l = g) } m = b.updateUrl(c.opt('sync_url'), { pathname: l, search: '?' + b.toQuery(k) }), a.log_status && d.logStatus('bg'), 'script' === n ? (d.sync('pixel', i), b.jsonp(m)) : (j = b.createEl('img'), b.on(j, 'load', function () { e(h, 'su', i) }), b.on(j, 'error', function () { e(h, 'fa', i) }), j.src = m) } }() }, { init: function () { d.run() } } };