{%- if site.rollbarToken -%} <script> var _rollbarConfig = { accessToken: "{{site.rollbarToken}}", captureUncaught: true, captureUnhandledRejections: true, payload: { environment: "production", }, }; !(function (r) { var e = {}; function o(n) { if (e[n]) return e[n].exports; var t = (e[n] = { i: n, l: !1, exports: {} }); return r[n].call(t.exports, t, t.exports, o), (t.l = !0), t.exports; } (o.m = r), (o.c = e), (o.d = function (r, e, n) { o.o(r, e) || Object.defineProperty(r, e, { enumerable: !0, get: n }); }), (o.r = function (r) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(r, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(r, "__esModule", { value: !0 }); }), (o.t = function (r, e) { if ((1 & e && (r = o(r)), 8 & e)) return r; if (4 & e && "object" == typeof r && r && r.__esModule) return r; var n = Object.create(null); if ( (o.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: r }), 2 & e && "string" != typeof r) ) for (var t in r) o.d( n, t, function (e) { return r[e]; }.bind(null, t) ); return n; }), (o.n = function (r) { var e = r && r.__esModule ? function () { return r.default; } : function () { return r; }; return o.d(e, "a", e), e; }), (o.o = function (r, e) { return Object.prototype.hasOwnProperty.call(r, e); }), (o.p = ""), o((o.s = 0)); })([ function (r, e, o) { "use strict"; var n = o(1), t = o(5); (_rollbarConfig = _rollbarConfig || {}), (_rollbarConfig.rollbarJsUrl = _rollbarConfig.rollbarJsUrl || "https://cdn.rollbar.com/rollbarjs/refs/tags/v2.25.2/rollbar.min.js"), (_rollbarConfig.async = void 0 === _rollbarConfig.async || _rollbarConfig.async); var a = n.setupShim(window, _rollbarConfig), l = t(_rollbarConfig); (window.rollbar = n.Rollbar), a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l); }, function (r, e, o) { "use strict"; var n = o(2), t = o(3); function a(r) { return function () { try { return r.apply(this, arguments); } catch (r) { try { console.error("[Rollbar]: Internal error", r); } catch (r) {} } }; } var l = 0; function i(r, e) { (this.options = r), (this._rollbarOldOnError = null); var o = l++; (this.shimId = function () { return o; }), "undefined" != typeof window && window._rollbarShims && (window._rollbarShims[o] = { handler: e, messages: [] }); } var s = o(4), d = function (r, e) { return new i(r, e); }, c = function (r) { return new s(d, r); }; function u(r) { return a(function () { var e = this, o = Array.prototype.slice.call(arguments, 0), n = { shim: e, method: r, args: o, ts: new Date() }; window._rollbarShims[this.shimId()].messages.push(n); }); } (i.prototype.loadFull = function (r, e, o, n, t) { var l = !1, i = e.createElement("script"), s = e.getElementsByTagName("script")[0], d = s.parentNode; (i.crossOrigin = ""), (i.src = n.rollbarJsUrl), o || (i.async = !0), (i.onload = i.onreadystatechange = a(function () { if ( !( l || (this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState) ) ) { i.onload = i.onreadystatechange = null; try { d.removeChild(i); } catch (r) {} (l = !0), (function () { var e; if (void 0 === r._rollbarDidLoad) { e = new Error("rollbar.js did not load"); for (var o, n, a, l, i = 0; (o = r._rollbarShims[i++]); ) for (o = o.messages || []; (n = o.shift()); ) for (a = n.args || [], i = 0; i < a.length; ++i) if ("function" == typeof (l = a[i])) { l(e); break; } } "function" == typeof t && t(e); })(); } })), d.insertBefore(i, s); }), (i.prototype.wrap = function (r, e, o) { try { var n; if ( ((n = "function" == typeof e ? e : function () { return e || {}; }), "function" != typeof r) ) return r; if (r._isWrap) return r; if ( !r._rollbar_wrapped && ((r._rollbar_wrapped = function () { o && "function" == typeof o && o.apply(this, arguments); try { return r.apply(this, arguments); } catch (o) { var e = o; throw ( (e && ("string" == typeof e && (e = new String(e)), (e._rollbarContext = n() || {}), (e._rollbarContext._wrappedSource = r.toString()), (window._rollbarWrappedError = e)), e) ); } }), (r._rollbar_wrapped._isWrap = !0), r.hasOwnProperty) ) for (var t in r) r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]); return r._rollbar_wrapped; } catch (e) { return r; } }); for ( var p = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split( "," ), f = 0; f < p.length; ++f ) i.prototype[p[f]] = u(p[f]); r.exports = { setupShim: function (r, e) { if (r) { var o = e.globalAlias || "Rollbar"; if ("object" == typeof r[o]) return r[o]; (r._rollbarShims = {}), (r._rollbarWrappedError = null); var l = new c(e); return a(function () { e.captureUncaught && ((l._rollbarOldOnError = r.onerror), n.captureUncaughtExceptions(r, l, !0), e.wrapGlobalEventHandlers && t(r, l, !0)), e.captureUnhandledRejections && n.captureUnhandledRejections(r, l, !0); var a = e.autoInstrument; return ( !1 !== e.enabled && (void 0 === a || !0 === a || (function (r) { return !( "object" != typeof r || (void 0 !== r.page && !r.page) ); })(a)) && r.addEventListener && (r.addEventListener("load", l.captureLoad.bind(l)), r.addEventListener( "DOMContentLoaded", l.captureDomContentLoaded.bind(l) )), (r[o] = l), l ); })(); } }, Rollbar: c, }; }, function (r, e, o) { "use strict"; function n(r, e, o, n) { r._rollbarWrappedError && (n[4] || (n[4] = r._rollbarWrappedError), n[5] || (n[5] = r._rollbarWrappedError._rollbarContext), (r._rollbarWrappedError = null)); var t = e.handleUncaughtException.apply(e, n); o && o.apply(r, n), "anonymous" === t && (e.anonymousErrorsPending += 1); } r.exports = { captureUncaughtExceptions: function (r, e, o) { if (r) { var t; if ("function" == typeof e._rollbarOldOnError) t = e._rollbarOldOnError; else if (r.onerror) { for (t = r.onerror; t._rollbarOldOnError; ) t = t._rollbarOldOnError; e._rollbarOldOnError = t; } e.handleAnonymousErrors(); var a = function () { var o = Array.prototype.slice.call(arguments, 0); n(r, e, t, o); }; o && (a._rollbarOldOnError = t), (r.onerror = a); } }, captureUnhandledRejections: function (r, e, o) { if (r) { "function" == typeof r._rollbarURH && r._rollbarURH.belongsToShim && r.removeEventListener("unhandledrejection", r._rollbarURH); var n = function (r) { var o, n, t; try { o = r.reason; } catch (r) { o = void 0; } try { n = r.promise; } catch (r) { n = "[unhandledrejection] error getting `promise` from event"; } try { (t = r.detail), !o && t && ((o = t.reason), (n = t.promise)); } catch (r) {} o || (o = "[unhandledrejection] error getting `reason` from event"), e && e.handleUnhandledRejection && e.handleUnhandledRejection(o, n); }; (n.belongsToShim = o), (r._rollbarURH = n), r.addEventListener("unhandledrejection", n); } }, }; }, function (r, e, o) { "use strict"; function n(r, e, o) { if (e.hasOwnProperty && e.hasOwnProperty("addEventListener")) { for ( var n = e.addEventListener; n._rollbarOldAdd && n.belongsToShim; ) n = n._rollbarOldAdd; var t = function (e, o, t) { n.call(this, e, r.wrap(o), t); }; (t._rollbarOldAdd = n), (t.belongsToShim = o), (e.addEventListener = t); for ( var a = e.removeEventListener; a._rollbarOldRemove && a.belongsToShim; ) a = a._rollbarOldRemove; var l = function (r, e, o) { a.call(this, r, (e && e._rollbar_wrapped) || e, o); }; (l._rollbarOldRemove = a), (l.belongsToShim = o), (e.removeEventListener = l); } } r.exports = function (r, e, o) { if (r) { var t, a, l = "EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split( "," ); for (t = 0; t < l.length; ++t) r[(a = l[t])] && r[a].prototype && n(e, r[a].prototype, o); } }; }, function (r, e, o) { "use strict"; function n(r, e) { (this.impl = r(e, this)), (this.options = e), (function (r) { for ( var e = function (r) { return function () { var e = Array.prototype.slice.call(arguments, 0); if (this.impl[r]) return this.impl[r].apply(this.impl, e); }; }, o = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split( "," ), n = 0; n < o.length; n++ ) r[o[n]] = e(o[n]); })(n.prototype); } (n.prototype._swapAndProcessMessages = function (r, e) { var o, n, t; for (this.impl = r(this.options); (o = e.shift()); ) (n = o.method), (t = o.args), this[n] && "function" == typeof this[n] && ("captureDomContentLoaded" === n || "captureLoad" === n ? this[n].apply(this, [t[0], o.ts]) : this[n].apply(this, t)); return this; }), (r.exports = n); }, function (r, e, o) { "use strict"; r.exports = function (r) { return function (e) { if (!e && !window._rollbarInitialized) { for ( var o, n, t = (r = r || {}).globalAlias || "Rollbar", a = window.rollbar, l = function (r) { return new a(r); }, i = 0; (o = window._rollbarShims[i++]); ) n || (n = o.handler), o.handler._swapAndProcessMessages(l, o.messages); (window[t] = n), (window._rollbarInitialized = !0); } }; }; }, ]); </script> {%- endif -%} {%- include adblocker.html -%} {% assign scriptData = site.data.[page.folderName][lang][file] %} {%- assign dataAtt = "data-folderName='$folderName' data-lang='$lang' data-fileName='$fileName' data-tool='$tool'" -%} {%- assign $folderName = '$folderName' -%} {%- if site.removeJquery != true -%} <script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" {%- if site.crossorigin -%} {{ }} crossorigin {%- endif -%} ></script> {%- endif -%} <script defer src="/assets/js/theme.js" crossorigin="anonymous"></script> {%- if site.userTrackingCount -%} <script defer src="/assets/js/usageTracking.js"></script> <script defer src="/assets/js/usageTrackingEvents.js"></script> <script defer src="/assets/js/sharePage.js"></script> {%- endif -%} {%- if site.removeBootstrapJs != true -%} <script defer="defer" src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous" ></script> {%- endif -%} {{site.data.customcdns.customcdns.jsfiles}} {%- if scriptData.jsfilepaths -%} {%- for path in scriptData.jsfilepaths -%} {%- assign asset_dir = path -%} {%- if site.versioning and asset_dir != "" -%} {%- if asset_dir contains "https" and asset_dir contains "https://" -%} <script defer src="{{path}}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}" data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if site.crossorigin -%} {{ }} crossorigin {%- endif -%} ></script> {%- else -%} <script defer src="{% ministamp { source_path: '{{ asset_dir }}', destination_path: '{{ asset_dir }}' } %}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}" data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if site.crossorigin -%} {{ }} crossorigin {%- endif -%} ></script> {%- endif -%} {%- else -%} <script defer src="{{path}}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}" data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if site.crossorigin -%} {{ }} crossorigin {%- endif -%} ></script> {%- endif -%} {%- endfor -%} {%- endif -%} {%- if scriptData.jscdns -%} {%- for item in scriptData.jscdns -%} {{item | replace:"$folderName", page.folderName | replace: "$fileName", page.fileName | replace: "$lang", page.lang | replace: "$tool", page.tool }} {%- endfor -%} {%- endif -%} {%- if page.layout == "frame" -%} {%- assign font = "PT Sans" -%} {%- endif -%} {%- if page.layout == "photo-effects-home" -%} {%- assign font = "PT Sans" -%} {%- endif -%} {%- if page.layout == "calculator" -%} <script defer src="/assets/js/calculator-tooltip.js"></script> {%- endif -%} {%- if page.layout == 'home-1' or page.layout == "feature-1" -%} {%- assign font = "Inter" -%} {%- endif -%} {%- if site.removeFontAwesome != true -%} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" referrerpolicy="no-referrer" /> {%- endif -%} {%- if page.layout == "feature" -%} <script> const toaster = document.querySelector(".toaster"); if ( !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ) ) { if (navigator.userAgent.indexOf("Mac OS X") != -1) { toaster.innerHTML = `Press Command + D to Bookmark this page`; } else { toaster.innerHTML = `Press Ctrl + D to Bookmark this page`; } } setTimeout(() => { toaster.style.display = "none"; }, 20000); </script> {%- endif -%}