ibp-tms 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/tms.js +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ibp-tms",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Style & JS optimized",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/tms.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(function(){let t,e,n=[],o=null;function c(o,c){const d=Date.now();if(t&&e){const i=o-t.x,l=c-t.y,u=d-e,s=Math.sqrt(i*i+l*l)/u;n.push({dx:i,dy:l,dt:u,velocity:s}),n.length>100&&n.shift()}t={x:o,y:c},e=d}function d(){if(function(t){if(n.length<(t||20))return!1;let e=n.some(((t,e,n)=>e>0&&Math.abs(t.velocity-n[e-1].velocity)>.05)),o=n.some(((t,e,n)=>e>1&&(Math.abs(t.dx-n[e-1].dx)>.1||Math.abs(t.dy-n[e-1].dy)>.1))),c=n.some((t=>t.dt>50&&t.dt<500));return e&&o&&c}()){let t="/tfp/"+function(){let t=function(t){let e=0,n=0,o=0,c=0,d=[];t.forEach((t=>{e+=t.dx,n+=t.dy,o+=t.dt;let i=Math.sqrt(t.dx*t.dx+t.dy*t.dy);c+=i,d.push(i/(t.dt||1e-5))}));let i=d.length?d.reduce(((t,e)=>t+e),0)/d.length:0,l=Math.atan2(n,e);return[Math.round(255*Math.min(1,i/5)),Math.round(255*(l+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,c/100))]}(n),e=function(t,e,n){const o=.299*t+.587*e+.114*n;return Math.round(o/255*100)}(t[0],t[1],t[2]);return btoa(`C100|${e}|${t[0]}|${t[1]}|${t[2]}|7`).replace(/[^A-z0-9\.]/gi,"-e")}()+".png";(new Image).src=t}}let i=0;function l(){d(),i++,i<10&&setTimeout((()=>{l()}),5e3*i)}function u(){l(),document.addEventListener("click",(()=>{d()})),document.addEventListener("touchend",(()=>{d()}))}o=null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM")),null!=o&&o.valid||(document.addEventListener("mousemove",(t=>c(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];c(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];c(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];c(e.clientX,e.clientY)})),document.addEventListener("scroll",(t=>{c(window.scrollX,window.scrollY)})),u())}(),{})));
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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U1gsT0FBT1ksUUFBUSxJQXVEOUNmLElBTVAsQ0FySkQsRyIsInNvdXJjZXMiOlsid2VicGFjazovLy93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vLy4vc3JjL3Rtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gZmFjdG9yeSgpO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsIlxyXG4oZnVuY3Rpb24oKXtcclxuIFxyXG4gICAgXHJcbiAgbGV0IG1vdmVtZW50cyA9IFtdO1xyXG5cclxuICBsZXQgdHNtID0gbnVsbDtcclxuXHJcbiAgbGV0IGxhc3RQb3M7XHJcblxyXG4gIGxldCBsYXN0VGltZTtcclxuICBcclxuICBmdW5jdGlvbiBnZXRTaWduYXR1cmUoKSB7XHJcblxyXG4gICAgICB2YXIgc2luZ25hdHVyZVNhbXBsZXMgPSBtb3ZlbWVudHMuZmlsdGVyKCh4LCBpKSA9PiB7IHJldHVybiBpIDwgMTYgfSk7XHJcbiAgICAgIHZhciBzaWduYXR1cmVWYWx1ZSA9IHNpbmduYXR1cmVTYW1wbGVzLnJlZHVjZSgoeCwgeSwgaSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHggKyAnfCcgKyBNYXRoLnJvdW5kKHkuZHggKyB5LmR5ICsgeS5kdCArIHkudmVsb2NpdHkpO1xyXG4gICAgICB9LCAnJyk7XHJcbiAgICAgIHJldHVybiBidG9hKHNpZ25hdHVyZVZhbHVlKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlY29yZE1vdmVtZW50KHgsIHkpIHtcclxuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgICAgaWYgKGxhc3RQb3MgJiYgbGFzdFRpbWUpIHtcclxuICAgICAgICAgIGNvbnN0IGR4ID0geCAtIGxhc3RQb3MueDtcclxuICAgICAgICAgIGNvbnN0IGR5ID0geSAtIGxhc3RQb3MueTtcclxuICAgICAgICAgIGNvbnN0IGR0ID0gbm93IC0gbGFzdFRpbWU7XHJcbiAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XHJcbiAgICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IGRpc3RhbmNlIC8gZHQ7XHJcbiAgICAgICAgICBtb3ZlbWVudHMucHVzaCh7IGR4LCBkeSwgZHQsIHZlbG9jaXR5IH0pO1xyXG4gICAgICAgICAgaWYobW92ZW1lbnRzLmxlbmd0aD4xMDApbW92ZW1lbnRzLnNoaWZ0KCk7XHJcbiAgICAgIH1cclxuICAgICAgbGFzdFBvcyA9IHsgeCwgeSB9O1xyXG4gICAgICBsYXN0VGltZSA9IG5vdztcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGh1cmlzdGljQWRhcHRpb24ocG9pbnRzKSB7XHJcbiAgICBsZXQgdG90YWxEeCA9IDAsIHRvdGFsRHkgPSAwLCB0b3RhbER0ID0gMDtcclxuICAgIGxldCB0b3RhbERpc3QgPSAwO1xyXG4gICAgbGV0IHZlbG9jaXRpZXMgPSBbXTtcclxuICAgIHBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgIHRvdGFsRHggKz0gcC5keDtcclxuICAgICAgICB0b3RhbER5ICs9IHAuZHk7XHJcbiAgICAgICAgdG90YWxEdCArPSBwLmR0O1xyXG4gICAgICAgIGxldCBkaXN0ID0gTWF0aC5zcXJ0KHAuZHggKiBwLmR4ICsgcC5keSAqIHAuZHkpO1xyXG4gICAgICAgIHRvdGFsRGlzdCArPSBkaXN0O1xyXG4gICAgICAgIHZlbG9jaXRpZXMucHVzaChkaXN0IC8gKHAuZHQgfHwgMWUtNSkpOyAvLyBhdm9pZCBkaXZpZGUgYnkgemVyb1xyXG4gICAgfSk7XHJcbiAgICAvLyBGZWF0dXJlIGV4dHJhY3Rpb25cclxuICAgIGxldCBhdmdWZWwgPSB2ZWxvY2l0aWVzLmxlbmd0aCA/IHZlbG9jaXRpZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkgLyB2ZWxvY2l0aWVzLmxlbmd0aCA6IDA7XHJcbiAgICBsZXQgZGlyZWN0aW9uID0gTWF0aC5hdGFuMih0b3RhbER5LCB0b3RhbER4KTsgLy8gYW5nbGUgaW4gcmFkaWFucywgLc+AIHRvIM+AXHJcblxyXG4gICAgLy8gTm9uLWxpbmVhciBzY2FsaW5nIGFuZCBub3JtYWxpemF0aW9uXHJcbiAgICAvLyB2ZWxvY2l0eTogWzAsIG1heF0sIGRpcmVjdGlvbjogWy3PgCwgz4BdLCB0b3RhbERpc3Q6IHNjYWxlIGFzIHlvdSB3aXNoXHJcbiAgICBsZXQgciA9IE1hdGgucm91bmQoMjU1ICogTWF0aC5taW4oMSwgYXZnVmVsIC8gNSkpOyAvLyBzY2FsZSB2ZWxvY2l0eSwgb3IgdXNlIG90aGVyIG5vbi1saW5lYXIgKGxvZ2lzdGljLCBzcXJ0LCBldGMpXHJcbiAgICBsZXQgZyA9IE1hdGgucm91bmQoMjU1ICogKGRpcmVjdGlvbiArIE1hdGguUEkpIC8gKDIgKiBNYXRoLlBJKSk7IC8vIG5vcm1hbGl6ZSBhbmdsZSB0byBbMCwxXVxyXG4gICAgbGV0IGIgPSBNYXRoLnJvdW5kKDI1NSAqIE1hdGgubWluKDEsIHRvdGFsRGlzdCAvIDEwMCkpOyAvLyBzY2FsZSB0b3RhbCBkaXN0YW5jZSwgb3IgYW5vdGhlciBmZWF0dXJlXHJcblxyXG4gICAgcmV0dXJuIFtyLCBnLCBiXTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiByZ2JUb0dyYXlXaWdodChyLCBnLCBiKSB7XHJcbiAgICBjb25zdCBncmF5ID0gMC4yOTkgKiByICsgMC41ODcgKiBnICsgMC4xMTQgKiBiOyAgLy8gQWNjdXJhdGUgZ3JheXNjYWxlXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChncmF5IC8gMjU1ICogMTAwKTsgIC8vIFNjYWxlIHRvIDAtMTAwXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBvblJlY29yZCgpXHJcbiAge1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBlID0+IHJlY29yZE1vdmVtZW50KGUuY2xpZW50WCwgZS5jbGllbnRZKSk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBlID0+IHtcclxuICAgICAgICBjb25zdCB0ID0gZS50b3VjaGVzWzBdO1xyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHQuY2xpZW50WCwgdC5jbGllbnRZKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBlID0+IHtcclxuICAgICAgICBjb25zdCB0ID0gZS50b3VjaGVzWzBdO1xyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHQuY2xpZW50WCwgdC5jbGllbnRZKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgZSA9PiB7XHJcbiAgICAgICAgY29uc3QgdCA9IGUudG91Y2hlc1swXTtcclxuICAgICAgICByZWNvcmRNb3ZlbWVudCh0LmNsaWVudFgsIHQuY2xpZW50WSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGU9PnsgICAgICAgIFxyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHdpbmRvdy5zY3JvbGxYLCB3aW5kb3cuc2Nyb2xsWSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzSHVtYW4obGltaXQpIHtcclxuICAgICAgaWYgKG1vdmVtZW50cy5sZW5ndGggPCAobGltaXQ/bGltaXQ6MjApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGxldCB2YXJ5aW5nID0gbW92ZW1lbnRzLnNvbWUoKG0sIGksIGFycikgPT4gaSA+IDAgJiYgKE1hdGguYWJzKG0udmVsb2NpdHkgLSBhcnJbaSAtIDFdLnZlbG9jaXR5KSA+IDAuMDUpKTtcclxuICAgICAgbGV0IG5vbkxpbmVhciA9IG1vdmVtZW50cy5zb21lKChtLCBpLCBhcnIpID0+IGkgPiAxICYmIChNYXRoLmFicyhtLmR4IC0gYXJyW2kgLSAxXS5keCkgPiAwLjEgfHwgTWF0aC5hYnMobS5keSAtIGFycltpIC0gMV0uZHkpID4gMC4xKSk7XHJcbiAgICAgIGxldCBpcnJlZ3VsYXIgPSBtb3ZlbWVudHMuc29tZShtID0+IG0uZHQgPiA1MCAmJiBtLmR0IDwgNTAwKTsgICAgICBcclxuICAgICAgcmV0dXJuIHZhcnlpbmcgJiYgbm9uTGluZWFyICYmIGlycmVndWxhcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVNjb3JlKCl7XHJcbiAgICBpZihpc0h1bWFuKCkpeyAgICAgICAgXHJcbiAgICAgICAgbGV0IHNyYyA9IFwiL3RmcC9cIitnZXRIYXNoKCkrJy5wbmcnO1xyXG4gICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgIGltYWdlLnNyYyA9IHNyYztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGdldEhhc2goKXtcclxuICAgIGxldCByZ2IgPSBodXJpc3RpY0FkYXB0aW9uKG1vdmVtZW50cyk7XHJcbiAgICBsZXQgc2NvcmUgPSByZ2JUb0dyYXlXaWdodChyZ2JbMF0scmdiWzFdLHJnYlsyXSk7ICAgIFxyXG4gICAgcmV0dXJuIGJ0b2EoYEMxMDB8JHtzY29yZX18JHtyZ2JbMF19fCR7cmdiWzFdfXwke3JnYlsyXX18N2ApLnJlcGxhY2UoL1teQS16MC05XFwuXS9naSwnLWUnKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGdldEN1cnJlbnRWYWx1ZSgpXHJcbiAge1xyXG4gICAgaWYod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiVFNNXCIpPT1udWxsKXJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiVFNNXCIpKTtcclxuICB9XHJcblxyXG4gIGxldCBzdGFydFBlcmlvZCA9IDUwMDA7XHJcbiAgbGV0IHN0YXJ0SW5kZXggPSAxMDtcclxuICBsZXQgY3VycmVudEluZGV4ID0gMDtcclxuXHJcbiAgZnVuY3Rpb24gYXV0b1VwZGF0ZSgpe1xyXG4gICAgdXBkYXRlU2NvcmUoKTtcclxuICAgIGN1cnJlbnRJbmRleCsrO1xyXG4gICAgaWYoY3VycmVudEluZGV4PHN0YXJ0SW5kZXgpXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBhdXRvVXBkYXRlKCk7ICAgICAgICBcclxuICAgIH0sIHN0YXJ0UGVyaW9kKmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBzdGFydCgpe1xyXG4gICAgYXV0b1VwZGF0ZSgpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT57dXBkYXRlU2NvcmUoKTt9KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywoKT0+e3VwZGF0ZVNjb3JlKCk7fSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpbml0KCl7XHJcbiAgICB0c20gPSBnZXRDdXJyZW50VmFsdWUoKTtcclxuICAgIGlmKHRzbT09bnVsbHx8IXRzbS52YWxpZCl7XHJcbiAgICAgICAgb25SZWNvcmQoKTtcclxuICAgICAgICBzdGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIGluaXQoKTtcclxuXHJcbn0pKCk7XHJcblxyXG5cclxuIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsImEiLCJpIiwic2VsZiIsImxhc3RQb3MiLCJsYXN0VGltZSIsIm1vdmVtZW50cyIsInRzbSIsInJlY29yZE1vdmVtZW50IiwieCIsInkiLCJub3ciLCJEYXRlIiwiZHgiLCJkeSIsImR0IiwidmVsb2NpdHkiLCJNYXRoIiwic3FydCIsInB1c2giLCJsZW5ndGgiLCJzaGlmdCIsInVwZGF0ZVNjb3JlIiwibGltaXQiLCJ2YXJ5aW5nIiwic29tZSIsIm0iLCJhcnIiLCJhYnMiLCJub25MaW5lYXIiLCJpcnJlZ3VsYXIiLCJpc0h1bWFuIiwic3JjIiwicmdiIiwicG9pbnRzIiwidG90YWxEeCIsInRvdGFsRHkiLCJ0b3RhbER0IiwidG90YWxEaXN0IiwidmVsb2NpdGllcyIsImZvckVhY2giLCJwIiwiZGlzdCIsImF2Z1ZlbCIsInJlZHVjZSIsImIiLCJkaXJlY3Rpb24iLCJhdGFuMiIsInJvdW5kIiwibWluIiwiUEkiLCJodXJpc3RpY0FkYXB0aW9uIiwic2NvcmUiLCJyIiwiZyIsImdyYXkiLCJyZ2JUb0dyYXlXaWdodCIsImJ0b2EiLCJyZXBsYWNlIiwiZ2V0SGFzaCIsIkltYWdlIiwiY3VycmVudEluZGV4IiwiYXV0b1VwZGF0ZSIsInNldFRpbWVvdXQiLCJzdGFydCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJKU09OIiwicGFyc2UiLCJ2YWxpZCIsImUiLCJjbGllbnRYIiwiY2xpZW50WSIsInQiLCJ0b3VjaGVzIiwic2Nyb2xsWCIsInNjcm9sbFkiXSwic291cmNlUm9vdCI6IiJ9
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(()=>(function(){let e,t,n=[],o=null,c=300;function r(o,c){const r=Date.now();if(e&&t){const d=o-e.x,i=c-e.y,l=r-t,a=Math.sqrt(d*d+i*i)/l;n.push({dx:d,dy:i,dt:l,velocity:a}),n.length>100&&n.shift()}e={x:o,y:c},t=r}function d(){if(function(e){if(c>0&&(e=c),n.length<(e||20))return!1;let t=n.some(((e,t,n)=>t>0&&Math.abs(e.velocity-n[t-1].velocity)>.05)),o=n.some(((e,t,n)=>t>1&&(Math.abs(e.dx-n[t-1].dx)>.1||Math.abs(e.dy-n[t-1].dy)>.1))),r=n.some((e=>e.dt>50&&e.dt<500));return t&&o&&r}()){let e="/tfp/"+function(){let e=function(e){let t=0,n=0,o=0,c=0,r=[];e.forEach((e=>{t+=e.dx,n+=e.dy,o+=e.dt;let d=Math.sqrt(e.dx*e.dx+e.dy*e.dy);c+=d,r.push(d/(e.dt||1e-5))}));let d=r.length?r.reduce(((e,t)=>e+t),0)/r.length:0,i=Math.atan2(n,t);return[Math.round(255*Math.min(1,d/5)),Math.round(255*(i+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,c/100))]}(n),t=function(e,t,n){const o=.299*e+.587*t+.114*n;return Math.round(o/255*100)}(e[0],e[1],e[2]);return btoa(`C100|${t}|${e[0]}|${e[1]}|${e[2]}|7`).replace(/[^A-z0-9\.]/gi,"-e")}()+".png";(new Image).src=e}}let i=0;function l(){d(),i++,i<10&&setTimeout((()=>{l()}),5e3*i)}function a(){l(),document.addEventListener("click",(()=>{d()})),document.addEventListener("touchend",(()=>{d()}))}o=null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM")),c=function(){if(navigator.webdriver)return 1e3;if(0==navigator.languages?.length)return 500;try{const e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(t){const e=t.getExtension("WEBGL_debug_renderer_info");if((e?t.getParameter(e.UNMASKED_RENDERER_WEBGL):"").includes("Mesa OffScreen"))return 700}}catch(t){}let e=!1;const t=new Error;return Object.defineProperty(t,"stack",{get(){e=!0}}),e?400:0}(),null!=o&&o.valid||(document.addEventListener("mousemove",(e=>r(e.clientX,e.clientY))),document.addEventListener("touchstart",(e=>{const t=e.touches[0];r(t.clientX,t.clientY)})),document.addEventListener("touchend",(e=>{const t=e.touches[0];r(t.clientX,t.clientY)})),document.addEventListener("touchmove",(e=>{const t=e.touches[0];r(t.clientX,t.clientY)})),document.addEventListener("scroll",(e=>{r(window.scrollX,window.scrollY)})),a())}(),{})));
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQzlCLEdBQUFLLEdBQ0lKLEdBQWMsQ0FDbEIsSUFFREEsRUFDTSxJQUNGLENBQ1QsQ0FvRGlCSyxHQUNQLE1BQUxwRixHQUFZQSxFQUFJcUYsUUFuR25CMUIsU0FBU0MsaUJBQWlCLGFBQWFrQixHQUFLNUUsRUFBZTRFLEVBQUVRLFFBQVNSLEVBQUVTLFdBQ3hFNUIsU0FBU0MsaUJBQWlCLGNBQWNrQixJQUNwQyxNQUFNVSxFQUFJVixFQUFFVyxRQUFRLEdBQ3BCdkYsRUFBZXNGLEVBQUVGLFFBQVNFLEVBQUVELFFBQVEsSUFHeEM1QixTQUFTQyxpQkFBaUIsWUFBWWtCLElBQ2xDLE1BQU1VLEVBQUlWLEVBQUVXLFFBQVEsR0FDcEJ2RixFQUFlc0YsRUFBRUYsUUFBU0UsRUFBRUQsUUFBUSxJQUd4QzVCLFNBQVNDLGlCQUFpQixhQUFha0IsSUFDbkMsTUFBTVUsRUFBSVYsRUFBRVcsUUFBUSxHQUNwQnZGLEVBQWVzRixFQUFFRixRQUFTRSxFQUFFRCxRQUFRLElBR3hDNUIsU0FBU0MsaUJBQWlCLFVBQVVrQixJQUNoQzVFLEVBQWUyRCxPQUFPNkIsUUFBUzdCLE9BQU84QixRQUFRLElBb0Y5Q2pDLElBTVAsQ0FwTEQsRyIsInNvdXJjZXMiOlsid2VicGFjazovLy93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vLy4vc3JjL3Rtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gZmFjdG9yeSgpO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsIlxyXG4oZnVuY3Rpb24oKXtcclxuIFxyXG4gICAgXHJcbiAgbGV0IG1vdmVtZW50cyA9IFtdO1xyXG5cclxuICBsZXQgdHNtID0gbnVsbDtcclxuXHJcbiAgbGV0IGxhc3RQb3M7XHJcblxyXG4gIGxldCBsYXN0VGltZTtcclxuXHJcbiAgbGV0IHN1c3BlY3RTY29yZSA9IDMwMDtcclxuICBcclxuICBmdW5jdGlvbiBnZXRTaWduYXR1cmUoKSB7XHJcblxyXG4gICAgICB2YXIgc2luZ25hdHVyZVNhbXBsZXMgPSBtb3ZlbWVudHMuZmlsdGVyKCh4LCBpKSA9PiB7IHJldHVybiBpIDwgMTYgfSk7XHJcbiAgICAgIHZhciBzaWduYXR1cmVWYWx1ZSA9IHNpbmduYXR1cmVTYW1wbGVzLnJlZHVjZSgoeCwgeSwgaSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHggKyAnfCcgKyBNYXRoLnJvdW5kKHkuZHggKyB5LmR5ICsgeS5kdCArIHkudmVsb2NpdHkpO1xyXG4gICAgICB9LCAnJyk7XHJcbiAgICAgIHJldHVybiBidG9hKHNpZ25hdHVyZVZhbHVlKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlY29yZE1vdmVtZW50KHgsIHkpIHtcclxuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcclxuICAgICAgaWYgKGxhc3RQb3MgJiYgbGFzdFRpbWUpIHtcclxuICAgICAgICAgIGNvbnN0IGR4ID0geCAtIGxhc3RQb3MueDtcclxuICAgICAgICAgIGNvbnN0IGR5ID0geSAtIGxhc3RQb3MueTtcclxuICAgICAgICAgIGNvbnN0IGR0ID0gbm93IC0gbGFzdFRpbWU7XHJcbiAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XHJcbiAgICAgICAgICBjb25zdCB2ZWxvY2l0eSA9IGRpc3RhbmNlIC8gZHQ7XHJcbiAgICAgICAgICBtb3ZlbWVudHMucHVzaCh7IGR4LCBkeSwgZHQsIHZlbG9jaXR5IH0pO1xyXG4gICAgICAgICAgaWYobW92ZW1lbnRzLmxlbmd0aD4xMDApbW92ZW1lbnRzLnNoaWZ0KCk7XHJcbiAgICAgIH1cclxuICAgICAgbGFzdFBvcyA9IHsgeCwgeSB9O1xyXG4gICAgICBsYXN0VGltZSA9IG5vdztcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGh1cmlzdGljQWRhcHRpb24ocG9pbnRzKSB7XHJcbiAgICBsZXQgdG90YWxEeCA9IDAsIHRvdGFsRHkgPSAwLCB0b3RhbER0ID0gMDtcclxuICAgIGxldCB0b3RhbERpc3QgPSAwO1xyXG4gICAgbGV0IHZlbG9jaXRpZXMgPSBbXTtcclxuICAgIHBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgIHRvdGFsRHggKz0gcC5keDtcclxuICAgICAgICB0b3RhbER5ICs9IHAuZHk7XHJcbiAgICAgICAgdG90YWxEdCArPSBwLmR0O1xyXG4gICAgICAgIGxldCBkaXN0ID0gTWF0aC5zcXJ0KHAuZHggKiBwLmR4ICsgcC5keSAqIHAuZHkpO1xyXG4gICAgICAgIHRvdGFsRGlzdCArPSBkaXN0O1xyXG4gICAgICAgIHZlbG9jaXRpZXMucHVzaChkaXN0IC8gKHAuZHQgfHwgMWUtNSkpOyAvLyBhdm9pZCBkaXZpZGUgYnkgemVyb1xyXG4gICAgfSk7XHJcbiAgICAvLyBGZWF0dXJlIGV4dHJhY3Rpb25cclxuICAgIGxldCBhdmdWZWwgPSB2ZWxvY2l0aWVzLmxlbmd0aCA/IHZlbG9jaXRpZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkgLyB2ZWxvY2l0aWVzLmxlbmd0aCA6IDA7XHJcbiAgICBsZXQgZGlyZWN0aW9uID0gTWF0aC5hdGFuMih0b3RhbER5LCB0b3RhbER4KTsgLy8gYW5nbGUgaW4gcmFkaWFucywgLc+AIHRvIM+AXHJcblxyXG4gICAgLy8gTm9uLWxpbmVhciBzY2FsaW5nIGFuZCBub3JtYWxpemF0aW9uXHJcbiAgICAvLyB2ZWxvY2l0eTogWzAsIG1heF0sIGRpcmVjdGlvbjogWy3PgCwgz4BdLCB0b3RhbERpc3Q6IHNjYWxlIGFzIHlvdSB3aXNoXHJcbiAgICBsZXQgciA9IE1hdGgucm91bmQoMjU1ICogTWF0aC5taW4oMSwgYXZnVmVsIC8gNSkpOyAvLyBzY2FsZSB2ZWxvY2l0eSwgb3IgdXNlIG90aGVyIG5vbi1saW5lYXIgKGxvZ2lzdGljLCBzcXJ0LCBldGMpXHJcbiAgICBsZXQgZyA9IE1hdGgucm91bmQoMjU1ICogKGRpcmVjdGlvbiArIE1hdGguUEkpIC8gKDIgKiBNYXRoLlBJKSk7IC8vIG5vcm1hbGl6ZSBhbmdsZSB0byBbMCwxXVxyXG4gICAgbGV0IGIgPSBNYXRoLnJvdW5kKDI1NSAqIE1hdGgubWluKDEsIHRvdGFsRGlzdCAvIDEwMCkpOyAvLyBzY2FsZSB0b3RhbCBkaXN0YW5jZSwgb3IgYW5vdGhlciBmZWF0dXJlXHJcblxyXG4gICAgcmV0dXJuIFtyLCBnLCBiXTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiByZ2JUb0dyYXlXaWdodChyLCBnLCBiKSB7XHJcbiAgICBjb25zdCBncmF5ID0gMC4yOTkgKiByICsgMC41ODcgKiBnICsgMC4xMTQgKiBiOyAgLy8gQWNjdXJhdGUgZ3JheXNjYWxlXHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChncmF5IC8gMjU1ICogMTAwKTsgIC8vIFNjYWxlIHRvIDAtMTAwXHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBvblJlY29yZCgpXHJcbiAge1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBlID0+IHJlY29yZE1vdmVtZW50KGUuY2xpZW50WCwgZS5jbGllbnRZKSk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBlID0+IHtcclxuICAgICAgICBjb25zdCB0ID0gZS50b3VjaGVzWzBdO1xyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHQuY2xpZW50WCwgdC5jbGllbnRZKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBlID0+IHtcclxuICAgICAgICBjb25zdCB0ID0gZS50b3VjaGVzWzBdO1xyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHQuY2xpZW50WCwgdC5jbGllbnRZKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgZSA9PiB7XHJcbiAgICAgICAgY29uc3QgdCA9IGUudG91Y2hlc1swXTtcclxuICAgICAgICByZWNvcmRNb3ZlbWVudCh0LmNsaWVudFgsIHQuY2xpZW50WSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGU9PnsgICAgICAgIFxyXG4gICAgICAgIHJlY29yZE1vdmVtZW50KHdpbmRvdy5zY3JvbGxYLCB3aW5kb3cuc2Nyb2xsWSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGdldFN1c3BlY3RBdXRvbWF0aW9uU2NvcmUoKXtcclxuICAgIGlmKG5hdmlnYXRvci53ZWJkcml2ZXIpcmV0dXJuIDEwMDA7XHJcbiAgICBpZihuYXZpZ2F0b3IubGFuZ3VhZ2VzPy5sZW5ndGg9PTApcmV0dXJuIDUwMDtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKSB8fCBjYW52YXMuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJyk7XHJcbiAgICAgICAgaWYgKGdsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlYnVnSW5mbyA9IGdsLmdldEV4dGVuc2lvbignV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbycpO1xyXG4gICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IGRlYnVnSW5mbyA/IGdsLmdldFBhcmFtZXRlcihkZWJ1Z0luZm8uVU5NQVNLRURfUkVOREVSRVJfV0VCR0wpIDogJyc7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChyZW5kZXJlci5pbmNsdWRlcygnTWVzYSBPZmZTY3JlZW4nKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDcwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHsgICAgICAgIFxyXG4gICAgfVxyXG4gICAgbGV0IGNkcERldGVjdGVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBlID0gbmV3IEVycm9yKCk7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgJ3N0YWNrJywge1xyXG4gICAgICAgIGdldCgpIHtcclxuICAgICAgICAgICAgY2RwRGV0ZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYoY2RwRGV0ZWN0ZWQpXHJcbiAgICAgIHJldHVybiA0MDA7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzSHVtYW4obGltaXQpIHtcclxuICAgICAgaWYoc3VzcGVjdFNjb3JlPjApbGltaXQgPSBzdXNwZWN0U2NvcmU7XHJcbiAgICAgIGlmIChtb3ZlbWVudHMubGVuZ3RoIDwgKGxpbWl0P2xpbWl0OjIwKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBsZXQgdmFyeWluZyA9IG1vdmVtZW50cy5zb21lKChtLCBpLCBhcnIpID0+IGkgPiAwICYmIChNYXRoLmFicyhtLnZlbG9jaXR5IC0gYXJyW2kgLSAxXS52ZWxvY2l0eSkgPiAwLjA1KSk7XHJcbiAgICAgIGxldCBub25MaW5lYXIgPSBtb3ZlbWVudHMuc29tZSgobSwgaSwgYXJyKSA9PiBpID4gMSAmJiAoTWF0aC5hYnMobS5keCAtIGFycltpIC0gMV0uZHgpID4gMC4xIHx8IE1hdGguYWJzKG0uZHkgLSBhcnJbaSAtIDFdLmR5KSA+IDAuMSkpO1xyXG4gICAgICBsZXQgaXJyZWd1bGFyID0gbW92ZW1lbnRzLnNvbWUobSA9PiBtLmR0ID4gNTAgJiYgbS5kdCA8IDUwMCk7ICAgICAgXHJcbiAgICAgIHJldHVybiB2YXJ5aW5nICYmIG5vbkxpbmVhciAmJiBpcnJlZ3VsYXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTY29yZSgpe1xyXG4gICAgaWYoaXNIdW1hbigpKXsgICAgICAgIFxyXG4gICAgICAgIGxldCBzcmMgPSBcIi90ZnAvXCIrZ2V0SGFzaCgpKycucG5nJztcclxuICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWFnZS5zcmMgPSBzcmM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRIYXNoKCl7XHJcbiAgICBsZXQgcmdiID0gaHVyaXN0aWNBZGFwdGlvbihtb3ZlbWVudHMpO1xyXG4gICAgbGV0IHNjb3JlID0gcmdiVG9HcmF5V2lnaHQocmdiWzBdLHJnYlsxXSxyZ2JbMl0pOyAgICBcclxuICAgIHJldHVybiBidG9hKGBDMTAwfCR7c2NvcmV9fCR7cmdiWzBdfXwke3JnYlsxXX18JHtyZ2JbMl19fDdgKS5yZXBsYWNlKC9bXkEtejAtOVxcLl0vZ2ksJy1lJyk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRDdXJyZW50VmFsdWUoKVxyXG4gIHtcclxuICAgIGlmKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlRTTVwiKT09bnVsbClyZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlRTTVwiKSk7XHJcbiAgfVxyXG5cclxuICBsZXQgc3RhcnRQZXJpb2QgPSA1MDAwO1xyXG4gIGxldCBzdGFydEluZGV4ID0gMTA7XHJcbiAgbGV0IGN1cnJlbnRJbmRleCA9IDA7XHJcblxyXG4gIGZ1bmN0aW9uIGF1dG9VcGRhdGUoKXtcclxuICAgIHVwZGF0ZVNjb3JlKCk7XHJcbiAgICBjdXJyZW50SW5kZXgrKztcclxuICAgIGlmKGN1cnJlbnRJbmRleDxzdGFydEluZGV4KVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgYXV0b1VwZGF0ZSgpOyAgICAgICAgXHJcbiAgICB9LCBzdGFydFBlcmlvZCpjdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gc3RhcnQoKXtcclxuICAgIGF1dG9VcGRhdGUoKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e3VwZGF0ZVNjb3JlKCk7fSk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsKCk9Pnt1cGRhdGVTY29yZSgpO30pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaW5pdCgpe1xyXG4gICAgdHNtID0gZ2V0Q3VycmVudFZhbHVlKCk7XHJcbiAgICBzdXNwZWN0U2NvcmUgPSBnZXRTdXNwZWN0QXV0b21hdGlvblNjb3JlKCk7XHJcbiAgICBpZih0c209PW51bGx8fCF0c20udmFsaWQpe1xyXG4gICAgICAgIG9uUmVjb3JkKCk7XHJcbiAgICAgICAgc3RhcnQoKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBpbml0KCk7XHJcblxyXG59KSgpO1xyXG5cclxuXHJcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJhIiwiaSIsInNlbGYiLCJsYXN0UG9zIiwibGFzdFRpbWUiLCJtb3ZlbWVudHMiLCJ0c20iLCJzdXNwZWN0U2NvcmUiLCJyZWNvcmRNb3ZlbWVudCIsIngiLCJ5Iiwibm93IiwiRGF0ZSIsImR4IiwiZHkiLCJkdCIsInZlbG9jaXR5IiwiTWF0aCIsInNxcnQiLCJwdXNoIiwibGVuZ3RoIiwic2hpZnQiLCJ1cGRhdGVTY29yZSIsImxpbWl0IiwidmFyeWluZyIsInNvbWUiLCJtIiwiYXJyIiwiYWJzIiwibm9uTGluZWFyIiwiaXJyZWd1bGFyIiwiaXNIdW1hbiIsInNyYyIsInJnYiIsInBvaW50cyIsInRvdGFsRHgiLCJ0b3RhbER5IiwidG90YWxEdCIsInRvdGFsRGlzdCIsInZlbG9jaXRpZXMiLCJmb3JFYWNoIiwicCIsImRpc3QiLCJhdmdWZWwiLCJyZWR1Y2UiLCJiIiwiZGlyZWN0aW9uIiwiYXRhbjIiLCJyb3VuZCIsIm1pbiIsIlBJIiwiaHVyaXN0aWNBZGFwdGlvbiIsInNjb3JlIiwiciIsImciLCJncmF5IiwicmdiVG9HcmF5V2lnaHQiLCJidG9hIiwicmVwbGFjZSIsImdldEhhc2giLCJJbWFnZSIsImN1cnJlbnRJbmRleCIsImF1dG9VcGRhdGUiLCJzZXRUaW1lb3V0Iiwic3RhcnQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiSlNPTiIsInBhcnNlIiwibmF2aWdhdG9yIiwid2ViZHJpdmVyIiwibGFuZ3VhZ2VzIiwiY2FudmFzIiwiY3JlYXRlRWxlbWVudCIsImdsIiwiZ2V0Q29udGV4dCIsImRlYnVnSW5mbyIsImdldEV4dGVuc2lvbiIsImdldFBhcmFtZXRlciIsIlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMIiwiaW5jbHVkZXMiLCJlIiwiY2RwRGV0ZWN0ZWQiLCJFcnJvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwiZ2V0U3VzcGVjdEF1dG9tYXRpb25TY29yZSIsInZhbGlkIiwiY2xpZW50WCIsImNsaWVudFkiLCJ0IiwidG91Y2hlcyIsInNjcm9sbFgiLCJzY3JvbGxZIl0sInNvdXJjZVJvb3QiOiIifQ==