browser-font-size-observer
Version:
Detect and observe changes to the browser font size setting
2 lines • 15.5 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 i=t();for(var o in i)("object"==typeof exports?exports:e)[o]=i[o]}}(self,(()=>(()=>{"use strict";var e={};return{607:function(e,t){var i,o,n,r,s,a,l,c,f,d=this&&this.__classPrivateFieldGet||function(e,t,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(e):o?o.value:t.get(e)},h=this&&this.__classPrivateFieldSet||function(e,t,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,i):n?n.value=i:t.set(e,i),i};Object.defineProperty(t,"__esModule",{value:!0});class u{constructor(e){i.add(this),a.set(this,null),l.set(this,null),c.set(this,null);const t=d(u,o,"m",s).call(u),n=t.offsetWidth;d(this,i,"m",f).call(this,n),e&&h(this,c,e,"f"),h(this,l,new ResizeObserver((e=>{var t;for(const o of e){const e=o.borderBoxSize?o.borderBoxSize[0].inlineSize:o.target.offsetWidth;d(this,i,"m",f).call(this,e),null===(t=d(this,c,"f"))||void 0===t||t.call(this,d(this,a,"f"))}})),"f"),d(this,l,"f").observe(t)}disconnect(){h(this,c,null,"f")}get state(){return d(this,a,"f")}}o=u,a=new WeakMap,l=new WeakMap,c=new WeakMap,i=new WeakSet,s=function(){if(!d(u,o,"f",r)){const e=document.createElement(d(u,o,"f",n));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"}),i=document.createElement("iframe");t.appendChild(i),document.documentElement.appendChild(e),i.contentWindow.document.write('<div style="width:1rem;height:1rem;"></div>');const s=i.contentWindow.document.querySelector("div");h(u,o,s,"f",r)}return d(u,o,"f",r)},f=function(e){h(this,a,{browserFontSize:e,ratio:e/16},"f")},n={value:"browser-font-size"},r={value:null},t.default=u}}[607](0,e),e.default})()));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBMkMsSUFBSWlDLFFBQVd4QyxFQUFxQyxJQUFJeUMsUUFBV3JDLEVBQXVDLFdBQ3hSLElBQUtLLEVBQXVCZSxFQUF5QnZCLEVBQUksSUFBS0UsR0FBaUMsQ0FDM0YsTUFBTXVDLEVBQWdCQyxTQUFTQyxjQUFjbkMsRUFBdUJlLEVBQXlCdkIsRUFBSSxJQUFLQyxJQUN0R29CLE9BQU91QixPQUFPSCxFQUFjSSxNQUFPLENBQy9CQyxTQUFVLFFBQ1ZDLEtBQU0sSUFDTkMsSUFBSyxJQUNMQyxNQUFPLE1BQ1BDLE9BQVEsTUFDUkMsU0FBVSxTQUNWQyxjQUFlLE9BQ2ZDLEtBQU0sZ0JBQ05DLFNBQVUsZUFFZCxNQUFNQyxFQUFhZCxFQUFjZSxhQUFhLENBQUVDLEtBQU0sV0FDaERDLEVBQVNoQixTQUFTQyxjQUFjLFVBQ3RDWSxFQUFXSSxZQUFZRCxHQUN2QmhCLFNBQVNrQixnQkFBZ0JELFlBQVlsQixHQUNyQ2lCLEVBQU9HLGNBQWNuQixTQUFTb0IsTUFBTSwrQ0FDcEMsTUFBTW5DLEVBQVErQixFQUFPRyxjQUFjbkIsU0FBU3FCLGNBQWMsT0FDMUQ1QyxFQUF1QkksRUFBeUJ2QixFQUFJMkIsRUFBTyxJQUFLekIsRUFDcEUsQ0FDQSxPQUFPTSxFQUF1QmUsRUFBeUJ2QixFQUFJLElBQUtFLEVBQ3BFLEVBQUdLLEVBQW9DLFNBQTJDcUIsR0FDOUVULEVBQXVCVixLQUFNTCxFQUFnQyxDQUN6RDRELGdCQUFpQnBDLEVBQ2pCcUMsTUFBT3JDLEVBQU8sSUFDZixJQUNQLEVBQ0EzQixFQUE2QyxDQUFFZ0IsTUFBTyxxQkFDdERmLEVBQWlDLENBQUVlLE1BQU8sTUFDMUMxQixFQUFBLFFBQWtCZ0MsQyxHRHhFRSxLQUFLLEVBQUd6QixHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYnJvd3Nlci1mb250LXNpemUtb2JzZXJ2ZXIvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL2Jyb3dzZXItZm9udC1zaXplLW9ic2VydmVyL3dlYnBhY2svc3RhcnR1cCIsIndlYnBhY2s6Ly9icm93c2VyLWZvbnQtc2l6ZS1vYnNlcnZlci8uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gZmFjdG9yeSgpO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBtb2R1bGVzIHNvIGl0IGNhbid0IGJlIGlubGluZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0ge307XG5fX3dlYnBhY2tfbW9kdWxlc19fWzYwN10oMCwgX193ZWJwYWNrX2V4cG9ydHNfXyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59O1xudmFyIF9fY2xhc3NQcml2YXRlRmllbGRTZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRTZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xufTtcbnZhciBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfaW5zdGFuY2VzLCBfYSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2N1c3RvbUVsZW1lbnROYW1lLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9jcmVhdGVQaXhlbCwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3N0YXRlLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcmVzaXplT2JzZXJ2ZXIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9vbkNoYW5nZUhhbmRsZXIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zZXRTdGF0ZTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNsYXNzIEJyb3dzZXJGb250U2l6ZU9ic2VydmVyIHtcbiAgICBjb25zdHJ1Y3RvcihvbkNoYW5nZUhhbmRsZXIpIHtcbiAgICAgICAgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2luc3RhbmNlcy5hZGQodGhpcyk7XG4gICAgICAgIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZS5zZXQodGhpcywgbnVsbCk7XG4gICAgICAgIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9yZXNpemVPYnNlcnZlci5zZXQodGhpcywgbnVsbCk7XG4gICAgICAgIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9vbkNoYW5nZUhhbmRsZXIuc2V0KHRoaXMsIG51bGwpO1xuICAgICAgICBjb25zdCBwaXhlbCA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQoQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXIsIF9hLCBcIm1cIiwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2NyZWF0ZVBpeGVsKS5jYWxsKEJyb3dzZXJGb250U2l6ZU9ic2VydmVyKTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHBpeGVsLm9mZnNldFdpZHRoO1xuICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9pbnN0YW5jZXMsIFwibVwiLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc2V0U3RhdGUpLmNhbGwodGhpcywgc2l6ZSk7XG4gICAgICAgIGlmIChvbkNoYW5nZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX29uQ2hhbmdlSGFuZGxlciwgb25DaGFuZ2VIYW5kbGVyLCBcImZcIik7XG4gICAgICAgIH1cbiAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcmVzaXplT2JzZXJ2ZXIsIG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICAgICAgdmFyIF9iO1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGVudHJ5LmJvcmRlckJveFNpemVcbiAgICAgICAgICAgICAgICAgICAgPyBlbnRyeS5ib3JkZXJCb3hTaXplWzBdLmlubGluZVNpemVcbiAgICAgICAgICAgICAgICAgICAgOiBlbnRyeS50YXJnZXQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfaW5zdGFuY2VzLCBcIm1cIiwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3NldFN0YXRlKS5jYWxsKHRoaXMsIHNpemUpO1xuICAgICAgICAgICAgICAgIChfYiA9IF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX29uQ2hhbmdlSGFuZGxlciwgXCJmXCIpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbCh0aGlzLCBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zdGF0ZSwgXCJmXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIFwiZlwiKTtcbiAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcmVzaXplT2JzZXJ2ZXIsIFwiZlwiKS5vYnNlcnZlKHBpeGVsKTtcbiAgICB9XG4gICAgZGlzY29ubmVjdCgpIHtcbiAgICAgICAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfb25DaGFuZ2VIYW5kbGVyLCBudWxsLCBcImZcIik7XG4gICAgfVxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3N0YXRlLCBcImZcIik7XG4gICAgfVxufVxuX2EgPSBCcm93c2VyRm9udFNpemVPYnNlcnZlciwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3N0YXRlID0gbmV3IFdlYWtNYXAoKSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFdlYWtNYXAoKSwgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX29uQ2hhbmdlSGFuZGxlciA9IG5ldyBXZWFrTWFwKCksIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9pbnN0YW5jZXMgPSBuZXcgV2Vha1NldCgpLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3JlYXRlUGl4ZWwgPSBmdW5jdGlvbiBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3JlYXRlUGl4ZWwoKSB7XG4gICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KEJyb3dzZXJGb250U2l6ZU9ic2VydmVyLCBfYSwgXCJmXCIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9waXhlbCkpIHtcbiAgICAgICAgY29uc3QgY3VzdG9tRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoX19jbGFzc1ByaXZhdGVGaWVsZEdldChCcm93c2VyRm9udFNpemVPYnNlcnZlciwgX2EsIFwiZlwiLCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfY3VzdG9tRWxlbWVudE5hbWUpKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjdXN0b21FbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICAgICAgbGVmdDogXCIwXCIsXG4gICAgICAgICAgICB0b3A6IFwiMFwiLFxuICAgICAgICAgICAgd2lkdGg6IFwiMHB4XCIsXG4gICAgICAgICAgICBoZWlnaHQ6IFwiMHB4XCIsXG4gICAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgICAgICAgICAgY2xpcDogXCJyZWN0KDAgMCAwIDApXCIsXG4gICAgICAgICAgICBjbGlwUGF0aDogXCJpbnNldCg1MCUpXCIsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzaGFkb3dSb290ID0gY3VzdG9tRWxlbWVudC5hdHRhY2hTaGFkb3coeyBtb2RlOiBcImNsb3NlZFwiIH0pO1xuICAgICAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO1xuICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChjdXN0b21FbGVtZW50KTtcbiAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQud3JpdGUoYDxkaXYgc3R5bGU9XCJ3aWR0aDoxcmVtO2hlaWdodDoxcmVtO1wiPjwvZGl2PmApO1xuICAgICAgICBjb25zdCBwaXhlbCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXZcIik7XG4gICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQoQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXIsIF9hLCBwaXhlbCwgXCJmXCIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9waXhlbCk7XG4gICAgfVxuICAgIHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KEJyb3dzZXJGb250U2l6ZU9ic2VydmVyLCBfYSwgXCJmXCIsIF9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9waXhlbCk7XG59LCBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc2V0U3RhdGUgPSBmdW5jdGlvbiBfQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfc2V0U3RhdGUoc2l6ZSkge1xuICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3N0YXRlLCB7XG4gICAgICAgIGJyb3dzZXJGb250U2l6ZTogc2l6ZSxcbiAgICAgICAgcmF0aW86IHNpemUgLyAxNixcbiAgICB9LCBcImZcIik7XG59O1xuX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2N1c3RvbUVsZW1lbnROYW1lID0geyB2YWx1ZTogXCJicm93c2VyLWZvbnQtc2l6ZVwiIH07XG5fQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXJfcGl4ZWwgPSB7IHZhbHVlOiBudWxsIH07XG5leHBvcnRzLmRlZmF1bHQgPSBCcm93c2VyRm9udFNpemVPYnNlcnZlcjtcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsInNlbGYiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2luc3RhbmNlcyIsIl9hIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2N1c3RvbUVsZW1lbnROYW1lIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3BpeGVsIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX2NyZWF0ZVBpeGVsIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3N0YXRlIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX3Jlc2l6ZU9ic2VydmVyIiwiX0Jyb3dzZXJGb250U2l6ZU9ic2VydmVyX29uQ2hhbmdlSGFuZGxlciIsIl9Ccm93c2VyRm9udFNpemVPYnNlcnZlcl9zZXRTdGF0ZSIsIl9fY2xhc3NQcml2YXRlRmllbGRHZXQiLCJ0aGlzIiwicmVjZWl2ZXIiLCJzdGF0ZSIsImtpbmQiLCJmIiwiVHlwZUVycm9yIiwiaGFzIiwiY2FsbCIsInZhbHVlIiwiZ2V0IiwiX19jbGFzc1ByaXZhdGVGaWVsZFNldCIsInNldCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiQnJvd3NlckZvbnRTaXplT2JzZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsIm9uQ2hhbmdlSGFuZGxlciIsImFkZCIsInBpeGVsIiwic2l6ZSIsIm9mZnNldFdpZHRoIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiX2IiLCJlbnRyeSIsImJvcmRlckJveFNpemUiLCJpbmxpbmVTaXplIiwidGFyZ2V0Iiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJXZWFrTWFwIiwiV2Vha1NldCIsImN1c3RvbUVsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3ciLCJwb2ludGVyRXZlbnRzIiwiY2xpcCIsImNsaXBQYXRoIiwic2hhZG93Um9vdCIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJpZnJhbWUiLCJhcHBlbmRDaGlsZCIsImRvY3VtZW50RWxlbWVudCIsImNvbnRlbnRXaW5kb3ciLCJ3cml0ZSIsInF1ZXJ5U2VsZWN0b3IiLCJicm93c2VyRm9udFNpemUiLCJyYXRpbyJdLCJzb3VyY2VSb290IjoiIn0=