browser-font-size-observer
Version:
Detect and observe changes to the browser font size setting
2 lines • 17.8 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(self,(()=>(()=>{"use strict";var e={607:function(e,t){var o,n,i,r,s,a,c,l,d,f=this&&this.__classPrivateFieldGet||function(e,t,o,n){if("a"===o&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?n:"a"===o?n.call(e):n?n.value:t.get(e)},h=this&&this.__classPrivateFieldSet||function(e,t,o,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,o):i?i.value=o:t.set(e,o),o};Object.defineProperty(t,"__esModule",{value:!0});class u{constructor(e){o.add(this),a.set(this,null),c.set(this,null),l.set(this,null);const t=f(u,n,"m",s).call(u),i=t.offsetWidth;f(this,o,"m",d).call(this,i),e&&h(this,l,e,"f"),h(this,c,new ResizeObserver((e=>{var t;for(const n of e){const e=n.borderBoxSize?n.borderBoxSize[0].inlineSize:n.target.offsetWidth;f(this,o,"m",d).call(this,e),null===(t=f(this,l,"f"))||void 0===t||t.call(this,f(this,a,"f"))}})),"f"),f(this,c,"f").observe(t)}disconnect(){h(this,l,null,"f")}get state(){return f(this,a,"f")}}n=u,a=new WeakMap,c=new WeakMap,l=new WeakMap,o=new WeakSet,s=function(){if(!f(u,n,"f",r)){const e=document.createElement(f(u,n,"f",i));Object.assign(e.style,{position:"fixed",left:"0",top:"0",width:"0px",height:"0px",overflow:"hidden",pointerEvents:"none",clip:"rect(0 0 0 0)",clipPath:"inset(50%)"});const t=e.attachShadow({mode:"closed"}),o=document.createElement("iframe");t.appendChild(o),document.documentElement.appendChild(e),o.contentWindow.document.write('<div style="width:1rem;height:1rem;"></div>');const s=o.contentWindow.document.querySelector("div");h(u,n,s,"f",r)}return f(u,n,"f",r)},d=function(e){h(this,a,{browserFontSize:e,ratio:e/16},"f")},i={value:"browser-font-size"},r={value:null},t.default=u}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var r=t[n]={exports:{}};return e[n].call(r.exports,r,r.exports,o),r.exports}var n={};return(()=>{const e=o(607),t=document.createElement("h1");t.innerHTML="Nothing yet.",document.body.appendChild(t),new e.default((e=>{t.innerHTML=`${e.browserFontSize} ${e.ratio}`}))})(),n.default})()));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVNDLEVBQVFBLEVBQU9ELFFBQVMyRSxHQUdwRTFFLEVBQU9ELE9BQ2YsQyxxQkNwQkEsTUFBTWdGLEVBQStCLEVBQVEsS0FDdkNDLEVBQUsvQixTQUFTQyxjQUFjLE1BQ2xDOEIsRUFBR0MsVUFBWSxlQUNmaEMsU0FBU2lDLEtBQUtoQixZQUFZYyxHQUNNLElBQUlELEVBQTZCSSxTQUFTakUsSUFDdEU4RCxFQUFHQyxVQUFZLEdBQUcvRCxFQUFNcUQsbUJBQW1CckQsRUFBTXNELE9BQU8sRyIsInNvdXJjZXMiOlsid2VicGFjazovL2Jyb3dzZXItZm9udC1zaXplLW9ic2VydmVyL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9icm93c2VyLWZvbnQtc2l6ZS1vYnNlcnZlci8uL3NyYy9pbmRleC50cyIsIndlYnBhY2s6Ly9icm93c2VyLWZvbnQtc2l6ZS1vYnNlcnZlci93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9icm93c2VyLWZvbnQtc2l6ZS1vYnNlcnZlci8uL3NyYy9kZW1vLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xufTtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcbn07XG52YXIgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2luc3RhbmNlcywgX2EsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9jdXN0b21FbGVtZW50TmFtZSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3BpeGVsLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3JlYXRlUGl4ZWwsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3Jlc2l6ZU9ic2VydmVyLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfb25DaGFuZ2VIYW5kbGVyLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc2V0U3RhdGU7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jbGFzcyBCcm93c2VyRm9udFNpemVPYnNlcnZlciB7XG4gICAgY29uc3RydWN0b3Iob25DaGFuZ2VIYW5kbGVyKSB7XG4gICAgICAgIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9pbnN0YW5jZXMuYWRkKHRoaXMpO1xuICAgICAgICBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc3RhdGUuc2V0KHRoaXMsIG51bGwpO1xuICAgICAgICBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcmVzaXplT2JzZXJ2ZXIuc2V0KHRoaXMsIG51bGwpO1xuICAgICAgICBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfb25DaGFuZ2VIYW5kbGVyLnNldCh0aGlzLCBudWxsKTtcbiAgICAgICAgY29uc3QgcGl4ZWwgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KEJyb3dzZXJGb250U2l6ZU9ic2VydmVyLCBfYSwgXCJtXCIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9jcmVhdGVQaXhlbCkuY2FsbChCcm93c2VyRm9udFNpemVPYnNlcnZlcik7XG4gICAgICAgIGNvbnN0IHNpemUgPSBwaXhlbC5vZmZzZXRXaWR0aDtcbiAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfaW5zdGFuY2VzLCBcIm1cIiwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3NldFN0YXRlKS5jYWxsKHRoaXMsIHNpemUpO1xuICAgICAgICBpZiAob25DaGFuZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9vbkNoYW5nZUhhbmRsZXIsIG9uQ2hhbmdlSGFuZGxlciwgXCJmXCIpO1xuICAgICAgICB9XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3Jlc2l6ZU9ic2VydmVyLCBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgIHZhciBfYjtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemUgPSBlbnRyeS5ib3JkZXJCb3hTaXplXG4gICAgICAgICAgICAgICAgICAgID8gZW50cnkuYm9yZGVyQm94U2l6ZVswXS5pbmxpbmVTaXplXG4gICAgICAgICAgICAgICAgICAgIDogZW50cnkudGFyZ2V0Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2luc3RhbmNlcywgXCJtXCIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zZXRTdGF0ZSkuY2FsbCh0aGlzLCBzaXplKTtcbiAgICAgICAgICAgICAgICAoX2IgPSBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9vbkNoYW5nZUhhbmRsZXIsIFwiZlwiKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGhpcywgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc3RhdGUsIFwiZlwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBcImZcIik7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3Jlc2l6ZU9ic2VydmVyLCBcImZcIikub2JzZXJ2ZShwaXhlbCk7XG4gICAgfVxuICAgIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX29uQ2hhbmdlSGFuZGxlciwgbnVsbCwgXCJmXCIpO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZSwgXCJmXCIpO1xuICAgIH1cbn1cbl9hID0gQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZSA9IG5ldyBXZWFrTWFwKCksIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9yZXNpemVPYnNlcnZlciA9IG5ldyBXZWFrTWFwKCksIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9vbkNoYW5nZUhhbmRsZXIgPSBuZXcgV2Vha01hcCgpLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfaW5zdGFuY2VzID0gbmV3IFdlYWtTZXQoKSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2NyZWF0ZVBpeGVsID0gZnVuY3Rpb24gX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2NyZWF0ZVBpeGVsKCkge1xuICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldChCcm93c2VyRm9udFNpemVPYnNlcnZlciwgX2EsIFwiZlwiLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwpKSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KF9fY2xhc3NQcml2YXRlRmllbGRHZXQoQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXIsIF9hLCBcImZcIiwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2N1c3RvbUVsZW1lbnROYW1lKSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY3VzdG9tRWxlbWVudC5zdHlsZSwge1xuICAgICAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMFwiLFxuICAgICAgICAgICAgdG9wOiBcIjBcIixcbiAgICAgICAgICAgIHdpZHRoOiBcIjBweFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjBweFwiLFxuICAgICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgICAgIGNsaXA6IFwicmVjdCgwIDAgMCAwKVwiLFxuICAgICAgICAgICAgY2xpcFBhdGg6IFwiaW5zZXQoNTAlKVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IGN1c3RvbUVsZW1lbnQuYXR0YWNoU2hhZG93KHsgbW9kZTogXCJjbG9zZWRcIiB9KTtcbiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcbiAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3VzdG9tRWxlbWVudCk7XG4gICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LndyaXRlKGA8ZGl2IHN0eWxlPVwid2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtcIj48L2Rpdj5gKTtcbiAgICAgICAgY29uc3QgcGl4ZWwgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KEJyb3dzZXJGb250U2l6ZU9ic2VydmVyLCBfYSwgcGl4ZWwsIFwiZlwiLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwpO1xuICAgIH1cbiAgICByZXR1cm4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChCcm93c2VyRm9udFNpemVPYnNlcnZlciwgX2EsIFwiZlwiLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwpO1xufSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3NldFN0YXRlID0gZnVuY3Rpb24gX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3NldFN0YXRlKHNpemUpIHtcbiAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZSwge1xuICAgICAgICBicm93c2VyRm9udFNpemU6IHNpemUsXG4gICAgICAgIHJhdGlvOiBzaXplIC8gMTYsXG4gICAgfSwgXCJmXCIpO1xufTtcbl9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9jdXN0b21FbGVtZW50TmFtZSA9IHsgdmFsdWU6IFwiYnJvd3Nlci1mb250LXNpemVcIiB9O1xuX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3BpeGVsID0geyB2YWx1ZTogbnVsbCB9O1xuZXhwb3J0cy5kZWZhdWx0ID0gQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXI7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBicm93c2VyX2ZvbnRfc2l6ZV9vYnNlcnZlcl8xID0gcmVxdWlyZShcImJyb3dzZXItZm9udC1zaXplLW9ic2VydmVyXCIpO1xuY29uc3QgaDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaDFcIik7XG5oMS5pbm5lckhUTUwgPSBcIk5vdGhpbmcgeWV0LlwiO1xuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoMSk7XG5jb25zdCBicm93c2VyRm9udFNpemVPYnNlcnZlciA9IG5ldyBicm93c2VyX2ZvbnRfc2l6ZV9vYnNlcnZlcl8xLmRlZmF1bHQoKHN0YXRlKSA9PiB7XG4gICAgaDEuaW5uZXJIVE1MID0gYCR7c3RhdGUuYnJvd3NlckZvbnRTaXplfSAke3N0YXRlLnJhdGlvfWA7XG59KTtcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsInNlbGYiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfaW5zdGFuY2VzIiwiX2EiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3VzdG9tRWxlbWVudE5hbWUiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3JlYXRlUGl4ZWwiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc3RhdGUiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcmVzaXplT2JzZXJ2ZXIiLCJfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfb25DaGFuZ2VIYW5kbGVyIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3NldFN0YXRlIiwiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIsInRoaXMiLCJyZWNlaXZlciIsInN0YXRlIiwia2luZCIsImYiLCJUeXBlRXJyb3IiLCJoYXMiLCJjYWxsIiwidmFsdWUiLCJnZXQiLCJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Iiwic2V0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJCcm93c2VyRm9udFNpemVPYnNlcnZlciIsImNvbnN0cnVjdG9yIiwib25DaGFuZ2VIYW5kbGVyIiwiYWRkIiwicGl4ZWwiLCJzaXplIiwib2Zmc2V0V2lkdGgiLCJSZXNpemVPYnNlcnZlciIsImVudHJpZXMiLCJfYiIsImVudHJ5IiwiYm9yZGVyQm94U2l6ZSIsImlubGluZVNpemUiLCJ0YXJnZXQiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCIsIldlYWtNYXAiLCJXZWFrU2V0IiwiY3VzdG9tRWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImFzc2lnbiIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsInBvaW50ZXJFdmVudHMiLCJjbGlwIiwiY2xpcFBhdGgiLCJzaGFkb3dSb290IiwiYXR0YWNoU2hhZG93IiwibW9kZSIsImlmcmFtZSIsImFwcGVuZENoaWxkIiwiZG9jdW1lbnRFbGVtZW50IiwiY29udGVudFdpbmRvdyIsIndyaXRlIiwicXVlcnlTZWxlY3RvciIsImJyb3dzZXJGb250U2l6ZSIsInJhdGlvIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwidW5kZWZpbmVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImJyb3dzZXJfZm9udF9zaXplX29ic2VydmVyXzEiLCJoMSIsImlubmVySFRNTCIsImJvZHkiLCJkZWZhdWx0Il0sInNvdXJjZVJvb3QiOiIifQ==