overwatch-api-server
Version:
An Unoffical Overwatch HTTP API
12 lines • 32.7 kB
JavaScript
"use strict";function cov_1bhgu5ov2t(){var path="C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\svg.js";var hash="93354193be207b9da27363e43ed201f30b45b4a7";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\svg.js",statementMap:{"0":{start:{line:3,column:0},end:{line:5,column:3}},"1":{start:{line:6,column:0},end:{line:6,column:52}},"2":{start:{line:8,column:17},end:{line:8,column:39}},"3":{start:{line:10,column:16},end:{line:18,column:1}},"4":{start:{line:19,column:13},end:{line:26,column:1}},"5":{start:{line:29,column:26},end:{line:29,column:65}},"6":{start:{line:30,column:23},end:{line:30,column:59}},"7":{start:{line:31,column:21},end:{line:31,column:55}},"8":{start:{line:32,column:2},end:{line:48,column:4}},"9":{start:{line:53,column:12},end:{line:53,column:36}},"10":{start:{line:54,column:2},end:{line:54,column:27}},"11":{start:{line:56,column:2},end:{line:65,column:5}},"12":{start:{line:67,column:2},end:{line:76,column:5}},"13":{start:{line:78,column:2},end:{line:87,column:5}},"14":{start:{line:89,column:2},end:{line:100,column:28}},"15":{start:{line:102,column:12},end:{line:102,column:60}},"16":{start:{line:103,column:2},end:{line:103,column:50}},"17":{start:{line:107,column:16},end:{line:107,column:43}},"18":{start:{line:108,column:12},end:{line:108,column:29}},"19":{start:{line:109,column:2},end:{line:109,column:13}}},fnMap:{"0":{name:"getSVGData",decl:{start:{line:28,column:9},end:{line:28,column:19}},loc:{start:{line:28,column:37},end:{line:49,column:1}},line:28},"1":{name:"buildSVG",decl:{start:{line:52,column:9},end:{line:52,column:17}},loc:{start:{line:52,column:24},end:{line:104,column:1}},line:52},"2":{name:"createEndorsementSVG",decl:{start:{line:106,column:9},end:{line:106,column:29}},loc:{start:{line:106,column:47},end:{line:110,column:1}},line:106}},branchMap:{"0":{loc:{start:{line:29,column:26},end:{line:29,column:65}},type:"binary-expr",locations:[{start:{line:29,column:26},end:{line:29,column:60}},{start:{line:29,column:64},end:{line:29,column:65}}],line:29},"1":{loc:{start:{line:30,column:23},end:{line:30,column:59}},type:"binary-expr",locations:[{start:{line:30,column:23},end:{line:30,column:54}},{start:{line:30,column:58},end:{line:30,column:59}}],line:30},"2":{loc:{start:{line:31,column:21},end:{line:31,column:55}},type:"binary-expr",locations:[{start:{line:31,column:21},end:{line:31,column:50}},{start:{line:31,column:54},end:{line:31,column:55}}],line:31}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},f:{"0":0,"1":0,"2":0},b:{"0":[0,0],"1":[0,0],"2":[0,0]},inputSourceMap:{version:3,sources:["svg.js"],names:["svgBuilder","require","Constants","r","width","height","offset","strokeWidth","cx","cy","Colors","gray","orange","magenta","green","white","transparent","getSVGData","endorsementsObj","sportsmanshipRate","sportsmanship","rate","shotcallerRate","shotcaller","teammateRate","teammate","level","dasharray","Math","round","dashoffset","buildSVG","data","svg","newInstance","circle","fill","stroke","text","x","y","dy","b64","Buffer","from","render","toString","createEndorsementSVG","svgData"],mappings:"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",sourceRoot:"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\",sourcesContent:["const svgBuilder = require('svg-builder');\r\n\r\nconst Constants = {\r\n r: 15.91549430918954,\r\n width: 40,\r\n height: 40,\r\n offset: 25,\r\n strokeWidth: 3,\r\n cx: '50%',\r\n cy: '50%',\r\n};\r\n\r\nconst Colors = {\r\n gray: '#2a2b2e',\r\n orange: '#f19512',\r\n magenta: '#c81af5',\r\n green: '#40ce44',\r\n white: '#f6f6f6',\r\n transparent: 'transparent',\r\n};\r\n\r\n// Builds data to be used by the svg-builder in svg.buildSVG.\r\nfunction getSVGData(endorsementsObj) {\r\n const sportsmanshipRate = endorsementsObj.sportsmanship.rate || 0;\r\n const shotcallerRate = endorsementsObj.shotcaller.rate || 0;\r\n const teammateRate = endorsementsObj.teammate.rate || 0;\r\n\r\n return {\r\n level: endorsementsObj.level,\r\n shotcaller: {\r\n dasharray: `${Math.round(shotcallerRate)} ${Math.round(100 - shotcallerRate)}`,\r\n dashoffset: 25, // Start offset at 12 o'clock.\r\n },\r\n teammate: {\r\n dasharray: `${Math.round(teammateRate)} ${Math.round(100 - teammateRate)}`,\r\n dashoffset: 100 - Math.round(shotcallerRate) + 25, // Bump offset. \r\n },\r\n sportsmanship: {\r\n dasharray: `${Math.round(sportsmanshipRate)} ${Math.round(100 - sportsmanshipRate)}`,\r\n dashoffset: 100 - Math.round(shotcallerRate + teammateRate) + 25,\r\n }\r\n }\r\n}\r\n\r\n// Builds the SVG endorements icon using data from svg.getSVGData.\r\nfunction buildSVG(data) {\r\n const svg = svgBuilder.newInstance()\r\n svg.width(40).height(40);\r\n\r\n // Shot caller circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.gray,\r\n 'stroke-dasharray': data.shotcaller.dasharray,\r\n 'stroke-dashoffset': data.shotcaller.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.orange,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Teammate circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.transparent,\r\n 'stroke-dasharray': data.teammate.dasharray,\r\n 'stroke-dashoffset': data.teammate.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.magenta,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Sportsmanship circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.transparent,\r\n 'stroke-dasharray': data.sportsmanship.dasharray,\r\n 'stroke-dashoffset': data.sportsmanship.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.green,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Centered text with endorsement level.\r\n svg.text({\r\n x: '50%',\r\n y: '50%',\r\n dy: '.3em',\r\n 'font-family': 'century gothic,arial,sans-serif',\r\n 'font-weight': 300,\r\n 'font-size': 16,\r\n stroke: Colors.white,\r\n 'stroke-width': '1',\r\n fill: Colors.white,\r\n 'text-anchor': 'middle',\r\n }, `${data.level}`);\r\n\r\n // Output SVG as a base64 encoded data URI.\r\n const b64 = new Buffer.from(svg.render()).toString('base64');\r\n return `data:image/svg+xml;base64,${b64}`;\r\n}\r\n\r\nexport function createEndorsementSVG(endorsementsObj) {\r\n const svgData = getSVGData(endorsementsObj);\r\n const svg = buildSVG(svgData);\r\n return svg;\r\n}"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"93354193be207b9da27363e43ed201f30b45b4a7"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
cov_1bhgu5ov2t=function(){return actualCoverage;};}return actualCoverage;}cov_1bhgu5ov2t();cov_1bhgu5ov2t().s[0]++;Object.defineProperty(exports,"__esModule",{value:true});cov_1bhgu5ov2t().s[1]++;exports.createEndorsementSVG=createEndorsementSVG;var svgBuilder=(cov_1bhgu5ov2t().s[2]++,require('svg-builder'));var Constants=(cov_1bhgu5ov2t().s[3]++,{r:15.91549430918954,width:40,height:40,offset:25,strokeWidth:3,cx:'50%',cy:'50%'});var Colors=(cov_1bhgu5ov2t().s[4]++,{gray:'#2a2b2e',orange:'#f19512',magenta:'#c81af5',green:'#40ce44',white:'#f6f6f6',transparent:'transparent'});// Builds data to be used by the svg-builder in svg.buildSVG.
function getSVGData(endorsementsObj){cov_1bhgu5ov2t().f[0]++;var sportsmanshipRate=(cov_1bhgu5ov2t().s[5]++,(cov_1bhgu5ov2t().b[0][0]++,endorsementsObj.sportsmanship.rate)||(cov_1bhgu5ov2t().b[0][1]++,0));var shotcallerRate=(cov_1bhgu5ov2t().s[6]++,(cov_1bhgu5ov2t().b[1][0]++,endorsementsObj.shotcaller.rate)||(cov_1bhgu5ov2t().b[1][1]++,0));var teammateRate=(cov_1bhgu5ov2t().s[7]++,(cov_1bhgu5ov2t().b[2][0]++,endorsementsObj.teammate.rate)||(cov_1bhgu5ov2t().b[2][1]++,0));cov_1bhgu5ov2t().s[8]++;return{level:endorsementsObj.level,shotcaller:{dasharray:"".concat(Math.round(shotcallerRate)," ").concat(Math.round(100-shotcallerRate)),dashoffset:25// Start offset at 12 o'clock.
},teammate:{dasharray:"".concat(Math.round(teammateRate)," ").concat(Math.round(100-teammateRate)),dashoffset:100-Math.round(shotcallerRate)+25// Bump offset.
},sportsmanship:{dasharray:"".concat(Math.round(sportsmanshipRate)," ").concat(Math.round(100-sportsmanshipRate)),dashoffset:100-Math.round(shotcallerRate+teammateRate)+25}};}// Builds the SVG endorements icon using data from svg.getSVGData.
function buildSVG(data){cov_1bhgu5ov2t().f[1]++;var svg=(cov_1bhgu5ov2t().s[9]++,svgBuilder.newInstance());cov_1bhgu5ov2t().s[10]++;svg.width(40).height(40);// Shot caller circle.
cov_1bhgu5ov2t().s[11]++;svg.circle({r:Constants.r,fill:Colors.gray,'stroke-dasharray':data.shotcaller.dasharray,'stroke-dashoffset':data.shotcaller.dashoffset,'stroke-width':Constants.strokeWidth,stroke:Colors.orange,cx:Constants.cx,cy:Constants.cy});// Teammate circle.
cov_1bhgu5ov2t().s[12]++;svg.circle({r:Constants.r,fill:Colors.transparent,'stroke-dasharray':data.teammate.dasharray,'stroke-dashoffset':data.teammate.dashoffset,'stroke-width':Constants.strokeWidth,stroke:Colors.magenta,cx:Constants.cx,cy:Constants.cy});// Sportsmanship circle.
cov_1bhgu5ov2t().s[13]++;svg.circle({r:Constants.r,fill:Colors.transparent,'stroke-dasharray':data.sportsmanship.dasharray,'stroke-dashoffset':data.sportsmanship.dashoffset,'stroke-width':Constants.strokeWidth,stroke:Colors.green,cx:Constants.cx,cy:Constants.cy});// Centered text with endorsement level.
cov_1bhgu5ov2t().s[14]++;svg.text({x:'50%',y:'50%',dy:'.3em','font-family':'century gothic,arial,sans-serif','font-weight':300,'font-size':16,stroke:Colors.white,'stroke-width':'1',fill:Colors.white,'text-anchor':'middle'},"".concat(data.level));// Output SVG as a base64 encoded data URI.
var b64=(cov_1bhgu5ov2t().s[15]++,new Buffer.from(svg.render()).toString('base64'));cov_1bhgu5ov2t().s[16]++;return"data:image/svg+xml;base64,".concat(b64);}function createEndorsementSVG(endorsementsObj){cov_1bhgu5ov2t().f[2]++;var svgData=(cov_1bhgu5ov2t().s[17]++,getSVGData(endorsementsObj));var svg=(cov_1bhgu5ov2t().s[18]++,buildSVG(svgData));cov_1bhgu5ov2t().s[19]++;return svg;}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN2Zy5qcyJdLCJuYW1lcyI6WyJzdmdCdWlsZGVyIiwicmVxdWlyZSIsIkNvbnN0YW50cyIsInIiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldCIsInN0cm9rZVdpZHRoIiwiY3giLCJjeSIsIkNvbG9ycyIsImdyYXkiLCJvcmFuZ2UiLCJtYWdlbnRhIiwiZ3JlZW4iLCJ3aGl0ZSIsInRyYW5zcGFyZW50IiwiZ2V0U1ZHRGF0YSIsImVuZG9yc2VtZW50c09iaiIsInNwb3J0c21hbnNoaXBSYXRlIiwic3BvcnRzbWFuc2hpcCIsInJhdGUiLCJzaG90Y2FsbGVyUmF0ZSIsInNob3RjYWxsZXIiLCJ0ZWFtbWF0ZVJhdGUiLCJ0ZWFtbWF0ZSIsImxldmVsIiwiZGFzaGFycmF5IiwiTWF0aCIsInJvdW5kIiwiZGFzaG9mZnNldCIsImJ1aWxkU1ZHIiwiZGF0YSIsInN2ZyIsIm5ld0luc3RhbmNlIiwiY2lyY2xlIiwiZmlsbCIsInN0cm9rZSIsInRleHQiLCJ4IiwieSIsImR5IiwiYjY0IiwiQnVmZmVyIiwiZnJvbSIsInJlbmRlciIsInRvU3RyaW5nIiwiY3JlYXRlRW5kb3JzZW1lbnRTVkciLCJzdmdEYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUExQjs7QUFFQSxJQUFNQyxTQUFTLEdBQUc7QUFDaEJDLEVBQUFBLENBQUMsRUFBRSxpQkFEYTtBQUVoQkMsRUFBQUEsS0FBSyxFQUFFLEVBRlM7QUFHaEJDLEVBQUFBLE1BQU0sRUFBRSxFQUhRO0FBSWhCQyxFQUFBQSxNQUFNLEVBQUUsRUFKUTtBQUtoQkMsRUFBQUEsV0FBVyxFQUFFLENBTEc7QUFNaEJDLEVBQUFBLEVBQUUsRUFBRSxLQU5ZO0FBT2hCQyxFQUFBQSxFQUFFLEVBQUU7QUFQWSxDQUFsQjtBQVVBLElBQU1DLE1BQU0sR0FBRztBQUNiQyxFQUFBQSxJQUFJLEVBQUUsU0FETztBQUViQyxFQUFBQSxNQUFNLEVBQUUsU0FGSztBQUdi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UUFBdkMsQ0FBWjtBQUNBLDZDQUFvQ0osR0FBcEM7QUFDRDs7QUFFTSxTQUFTSyxvQkFBVCxDQUE4QjdCLGVBQTlCLEVBQStDO0FBQ3BELE1BQU04QixPQUFPLEdBQUcvQixVQUFVLENBQUNDLGVBQUQsQ0FBMUI7QUFDQSxNQUFNZSxHQUFHLEdBQUdGLFFBQVEsQ0FBQ2lCLE9BQUQsQ0FBcEI7QUFDQSxTQUFPZixHQUFQO0FBQ0QiLCJzb3VyY2VSb290IjoiQzpcXFVzZXJzXFxBbGZcXFNvdXJjZVxcb3ZlcndhdGNoLWFwaVxcYXBpXFxzcmNcXHBhcnNlclxcIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3ZnQnVpbGRlciA9IHJlcXVpcmUoJ3N2Zy1idWlsZGVyJyk7XHJcblxyXG5jb25zdCBDb25zdGFudHMgPSB7XHJcbiAgcjogMTUuOTE1NDk0MzA5MTg5NTQsXHJcbiAgd2lkdGg6IDQwLFxyXG4gIGhlaWdodDogNDAsXHJcbiAgb2Zmc2V0OiAyNSxcclxuICBzdHJva2VXaWR0aDogMyxcclxuICBjeDogJzUwJScsXHJcbiAgY3k6ICc1MCUnLFxyXG59O1xyXG5cclxuY29uc3QgQ29sb3JzID0ge1xyXG4gIGdyYXk6ICcjMmEyYjJlJyxcclxuICBvcmFuZ2U6ICcjZjE5NTEyJyxcclxuICBtYWdlbnRhOiAnI2M4MWFmNScsXHJcbiAgZ3JlZW46ICcjNDBjZTQ0JyxcclxuICB3aGl0ZTogJyNmNmY2ZjYnLFxyXG4gIHRyYW5zcGFyZW50OiAndHJhbnNwYXJlbnQnLFxyXG59O1xyXG5cclxuLy8gQnVpbGRzIGRhdGEgdG8gYmUgdXNlZCBieSB0aGUgc3ZnLWJ1aWxkZXIgaW4gc3ZnLmJ1aWxkU1ZHLlxyXG5mdW5jdGlvbiBnZXRTVkdEYXRhKGVuZG9yc2VtZW50c09iaikge1xyXG4gIGNvbnN0IHNwb3J0c21hbnNoaXBSYXRlID0gZW5kb3JzZW1lbnRzT2JqLnNwb3J0c21hbnNoaXAucmF0ZSB8fCAwO1xyXG4gIGNvbnN0IHNob3RjYWxsZXJSYXRlID0gZW5kb3JzZW1lbnRzT2JqLnNob3RjYWxsZXIucmF0ZSB8fCAwO1xyXG4gIGNvbnN0IHRlYW1tYXRlUmF0ZSA9IGVuZG9yc2VtZW50c09iai50ZWFtbWF0ZS5yYXRlIHx8IDA7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBsZXZlbDogZW5kb3JzZW1lbnRzT2JqLmxldmVsLFxyXG4gICAgc2hvdGNhbGxlcjoge1xyXG4gICAgICBkYXNoYXJyYXk6IGAke01hdGgucm91bmQoc2hvdGNhbGxlclJhdGUpfSAke01hdGgucm91bmQoMTAwIC0gc2hvdGNhbGxlclJhdGUpfWAsXHJcbiAgICAgIGRhc2hvZmZzZXQ6IDI1LCAvLyBTdGFydCBvZmZzZXQgYXQgMTIgbydjbG9jay5cclxuICAgIH0sXHJcbiAgICB0ZWFtbWF0ZToge1xyXG4gICAgICBkYXNoYXJyYXk6IGAke01hdGgucm91bmQodGVhbW1hdGVSYXRlKX0gJHtNYXRoLnJvdW5kKDEwMCAtIHRlYW1tYXRlUmF0ZSl9YCxcclxuICAgICAgZGFzaG9mZnNldDogMTAwIC0gTWF0aC5yb3VuZChzaG90Y2FsbGVyUmF0ZSkgKyAyNSwgLy8gQnVtcCBvZmZzZXQuIFxyXG4gICAgfSxcclxuICAgIHNwb3J0c21hbnNoaXA6IHtcclxuICAgICAgZGFzaGFycmF5OiBgJHtNYXRoLnJvdW5kKHNwb3J0c21hbnNoaXBSYXRlKX0gJHtNYXRoLnJvdW5kKDEwMCAtIHNwb3J0c21hbnNoaXBSYXRlKX1gLFxyXG4gICAgICBkYXNob2Zmc2V0OiAxMDAgLSBNYXRoLnJvdW5kKHNob3RjYWxsZXJSYXRlICsgdGVhbW1hdGVSYXRlKSArIDI1LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQnVpbGRzIHRoZSBTVkcgZW5kb3JlbWVudHMgaWNvbiB1c2luZyBkYXRhIGZyb20gc3ZnLmdldFNWR0RhdGEuXHJcbmZ1bmN0aW9uIGJ1aWxkU1ZHKGRhdGEpIHtcclxuICBjb25zdCBzdmcgPSBzdmdCdWlsZGVyLm5ld0luc3RhbmNlKClcclxuICBzdmcud2lkdGgoNDApLmhlaWdodCg0MCk7XHJcblxyXG4gIC8vIFNob3QgY2FsbGVyIGNpcmNsZS5cclxuICBzdmcuY2lyY2xlKHtcclxuICAgIHI6IENvbnN0YW50cy5yLFxyXG4gICAgZmlsbDogQ29sb3JzLmdyYXksXHJcbiAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IGRhdGEuc2hvdGNhbGxlci5kYXNoYXJyYXksXHJcbiAgICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiBkYXRhLnNob3RjYWxsZXIuZGFzaG9mZnNldCxcclxuICAgICdzdHJva2Utd2lkdGgnOiBDb25zdGFudHMuc3Ryb2tlV2lkdGgsIFxyXG4gICAgc3Ryb2tlOiBDb2xvcnMub3JhbmdlLFxyXG4gICAgY3g6IENvbnN0YW50cy5jeCxcclxuICAgIGN5OiBDb25zdGFudHMuY3ksXHJcbiAgfSk7XHJcblxyXG4gIC8vIFRlYW1tYXRlIGNpcmNsZS5cclxuICBzdmcuY2lyY2xlKHtcclxuICAgIHI6IENvbnN0YW50cy5yLFxyXG4gICAgZmlsbDogQ29sb3JzLnRyYW5zcGFyZW50LFxyXG4gICAgJ3N0cm9rZS1kYXNoYXJyYXknOiBkYXRhLnRlYW1tYXRlLmRhc2hhcnJheSxcclxuICAgICdzdHJva2UtZGFzaG9mZnNldCc6IGRhdGEudGVhbW1hdGUuZGFzaG9mZnNldCxcclxuICAgICdzdHJva2Utd2lkdGgnOiBDb25zdGFudHMuc3Ryb2tlV2lkdGgsIFxyXG4gICAgc3Ryb2tlOiBDb2xvcnMubWFnZW50YSxcclxuICAgIGN4OiBDb25zdGFudHMuY3gsXHJcbiAgICBjeTogQ29uc3RhbnRzLmN5LFxyXG4gIH0pO1xyXG5cclxuICAvLyBTcG9ydHNtYW5zaGlwIGNpcmNsZS5cclxuICBzdmcuY2lyY2xlKHtcclxuICAgIHI6IENvbnN0YW50cy5yLFxyXG4gICAgZmlsbDogQ29sb3JzLnRyYW5zcGFyZW50LFxyXG4gICAgJ3N0cm9rZS1kYXNoYXJyYXknOiBkYXRhLnNwb3J0c21hbnNoaXAuZGFzaGFycmF5LFxyXG4gICAgJ3N0cm9rZS1kYXNob2Zmc2V0JzogZGF0YS5zcG9ydHNtYW5zaGlwLmRhc2hvZmZzZXQsXHJcbiAgICAnc3Ryb2tlLXdpZHRoJzogQ29uc3RhbnRzLnN0cm9rZVdpZHRoLCBcclxuICAgIHN0cm9rZTogQ29sb3JzLmdyZWVuLFxyXG4gICAgY3g6IENvbnN0YW50cy5jeCxcclxuICAgIGN5OiBDb25zdGFudHMuY3ksXHJcbiAgfSk7XHJcblxyXG4gIC8vIENlbnRlcmVkIHRleHQgd2l0aCBlbmRvcnNlbWVudCBsZXZlbC5cclxuICBzdmcudGV4dCh7XHJcbiAgICB4OiAnNTAlJyxcclxuICAgIHk6ICc1MCUnLFxyXG4gICAgZHk6ICcuM2VtJyxcclxuICAgICdmb250LWZhbWlseSc6ICdjZW50dXJ5IGdvdGhpYyxhcmlhbCxzYW5zLXNlcmlmJyxcclxuICAgICdmb250LXdlaWdodCc6IDMwMCxcclxuICAgICdmb250LXNpemUnOiAxNixcclxuICAgIHN0cm9rZTogQ29sb3JzLndoaXRlLFxyXG4gICAgJ3N0cm9rZS13aWR0aCc6ICcxJyxcclxuICAgIGZpbGw6IENvbG9ycy53aGl0ZSxcclxuICAgICd0ZXh0LWFuY2hvcic6ICdtaWRkbGUnLFxyXG4gIH0sIGAke2RhdGEubGV2ZWx9YCk7XHJcblxyXG4gIC8vIE91dHB1dCBTVkcgYXMgYSBiYXNlNjQgZW5jb2RlZCBkYXRhIFVSSS5cclxuICBjb25zdCBiNjQgPSBuZXcgQnVmZmVyLmZyb20oc3ZnLnJlbmRlcigpKS50b1N0cmluZygnYmFzZTY0Jyk7XHJcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCR7YjY0fWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbmRvcnNlbWVudFNWRyhlbmRvcnNlbWVudHNPYmopIHtcclxuICBjb25zdCBzdmdEYXRhID0gZ2V0U1ZHRGF0YShlbmRvcnNlbWVudHNPYmopO1xyXG4gIGNvbnN0IHN2ZyA9IGJ1aWxkU1ZHKHN2Z0RhdGEpO1xyXG4gIHJldHVybiBzdmc7XHJcbn0iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN2Zy5qcyJdLCJuYW1lcyI6WyJzdmdCdWlsZGVyIiwicmVxdWlyZSIsIkNvbnN0YW50cyIsInIiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldCIsInN0cm9rZVdpZHRoIiwiY3giLCJjeSIsIkNvbG9ycyIsImdyYXkiLCJvcmFuZ2UiLCJtYWdlbnRhIiwiZ3JlZW4iLCJ3aGl0ZSIsInRyYW5zcGFyZW50Iiwic3BvcnRzbWFuc2hpcFJhdGUiLCJlbmRvcnNlbWVudHNPYmoiLCJzaG90Y2FsbGVyUmF0ZSIsInRlYW1tYXRlUmF0ZSIsImxldmVsIiwic2hvdGNhbGxlciIsImRhc2hhcnJheSIsIk1hdGgiLCJkYXNob2Zmc2V0IiwidGVhbW1hdGUiLCJzcG9ydHNtYW5zaGlwIiwic3ZnIiwiZmlsbCIsImRhdGEiLCJzdHJva2UiLCJ4IiwieSIsImR5IiwiYjY0IiwiQnVmZmVyIiwic3ZnRGF0YSIsImdldFNWR0RhdGEiLCJidWlsZFNWRyJdLCJtYXBwaW5ncyI6IjY1VEFFa0I7c1BBRmxCLEdBQU1BLENBQUFBLFVBQVUsMEJBQUdDLE9BQU8sQ0FBMUIsYUFBMEIsQ0FBVixDQUFoQixDQUVBLEdBQU1DLENBQUFBLFNBQVMsMEJBQUcsQ0FDaEJDLENBQUMsQ0FEZSxpQkFBQSxDQUVoQkMsS0FBSyxDQUZXLEVBQUEsQ0FHaEJDLE1BQU0sQ0FIVSxFQUFBLENBSWhCQyxNQUFNLENBSlUsRUFBQSxDQUtoQkMsV0FBVyxDQUxLLENBQUEsQ0FNaEJDLEVBQUUsQ0FOYyxLQUFBLENBT2hCQyxFQUFFLENBQUUsS0FQWSxDQUFILENBQWYsQ0FVQSxHQUFNQyxDQUFBQSxNQUFNLDBCQUFHLENBQ2JDLElBQUksQ0FEUyxTQUFBLENBRWJDLE1BQU0sQ0FGTyxTQUFBLENBR2JDLE9BQU8sQ0FITSxTQUFBLENBSWJDLEtBQUssQ0FKUSxTQUFBLENBS2JDLEtBQUssQ0FMUSxTQUFBLENBTWJDLFdBQVcsQ0FBRSxhQU5BLENBQUgsQ0FBWixDQVNBO0FBQ0EsUUFBQSxDQUFBLFVBQUEs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Q0FBMUIsZUFBMEIsQ0FBYixDQUFiLENBQ0EsR0FBTVYsQ0FBQUEsR0FBRywyQkFBR1csUUFBUSxDQUFwQixPQUFvQixDQUFYLENBQVQsQ0FGb0QseUJBR3BELE1BQUEsQ0FBQSxHQUFBLENBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN2Z0J1aWxkZXIgPSByZXF1aXJlKCdzdmctYnVpbGRlcicpO1xyXG5cclxuY29uc3QgQ29uc3RhbnRzID0ge1xyXG4gIHI6IDE1LjkxNTQ5NDMwOTE4OTU0LFxyXG4gIHdpZHRoOiA0MCxcclxuICBoZWlnaHQ6IDQwLFxyXG4gIG9mZnNldDogMjUsXHJcbiAgc3Ryb2tlV2lkdGg6IDMsXHJcbiAgY3g6ICc1MCUnLFxyXG4gIGN5OiAnNTAlJyxcclxufTtcclxuXHJcbmNvbnN0IENvbG9ycyA9IHtcclxuICBncmF5OiAnIzJhMmIyZScsXHJcbiAgb3JhbmdlOiAnI2YxOTUxMicsXHJcbiAgbWFnZW50YTogJyNjODFhZjUnLFxyXG4gIGdyZWVuOiAnIzQwY2U0NCcsXHJcbiAgd2hpdGU6ICcjZjZmNmY2JyxcclxuICB0cmFuc3BhcmVudDogJ3RyYW5zcGFyZW50JyxcclxufTtcclxuXHJcbi8vIEJ1aWxkcyBkYXRhIHRvIGJlIHVzZWQgYnkgdGhlIHN2Zy1idWlsZGVyIGluIHN2Zy5idWlsZFNWRy5cclxuZnVuY3Rpb24gZ2V0U1ZHRGF0YShlbmRvcnNlbWVudHNPYmopIHtcclxuICBjb25zdCBzcG9ydHNtYW5zaGlwUmF0ZSA9IGVuZG9yc2VtZW50c09iai5zcG9ydHNtYW5zaGlwLnJhdGUgfHwgMDtcclxuICBjb25zdCBzaG90Y2FsbGVyUmF0ZSA9IGVuZG9yc2VtZW50c09iai5zaG90Y2FsbGVyLnJhdGUgfHwgMDtcclxuICBjb25zdCB0ZWFtbWF0ZVJhdGUgPSBlbmRvcnNlbWVudHNPYmoudGVhbW1hdGUucmF0ZSB8fCAwO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgbGV2ZWw6IGVuZG9yc2VtZW50c09iai5sZXZlbCxcclxuICAgIHNob3RjYWxsZXI6IHtcclxuICAgICAgZGFzaGFycmF5OiBgJHtNYXRoLnJvdW5kKHNob3RjYWxsZXJSYXRlKX0gJHtNYXRoLnJvdW5kKDEwMCAtIHNob3RjYWxsZXJSYXRlKX1gLFxyXG4gICAgICBkYXNob2Zmc2V0OiAyNSwgLy8gU3RhcnQgb2Zmc2V0IGF0IDEyIG8nY2xvY2suXHJcbiAgICB9LFxyXG4gICAgdGVhbW1hdGU6IHtcclxuICAgICAgZGFzaGFycmF5OiBgJHtNYXRoLnJvdW5kKHRlYW1tYXRlUmF0ZSl9ICR7TWF0aC5yb3VuZCgxMDAgLSB0ZWFtbWF0ZVJhdGUpfWAsXHJcbiAgICAgIGRhc2hvZmZzZXQ6IDEwMCAtIE1hdGgucm91bmQoc2hvdGNhbGxlclJhdGUpICsgMjUsIC8vIEJ1bXAgb2Zmc2V0LiBcclxuICAgIH0sXHJcbiAgICBzcG9ydHNtYW5zaGlwOiB7XHJcbiAgICAgIGRhc2hhcnJheTogYCR7TWF0aC5yb3VuZChzcG9ydHNtYW5zaGlwUmF0ZSl9ICR7TWF0aC5yb3VuZCgxMDAgLSBzcG9ydHNtYW5zaGlwUmF0ZSl9YCxcclxuICAgICAgZGFzaG9mZnNldDogMTAwIC0gTWF0aC5yb3VuZChzaG90Y2FsbGVyUmF0ZSArIHRlYW1tYXRlUmF0ZSkgKyAyNSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEJ1aWxkcyB0aGUgU1ZHIGVuZG9yZW1lbnRzIGljb24gdXNpbmcgZGF0YSBmcm9tIHN2Zy5nZXRTVkdEYXRhLlxyXG5mdW5jdGlvbiBidWlsZFNWRyhkYXRhKSB7XHJcbiAgY29uc3Qgc3ZnID0gc3ZnQnVpbGRlci5uZXdJbnN0YW5jZSgpXHJcbiAgc3ZnLndpZHRoKDQwKS5oZWlnaHQoNDApO1xyXG5cclxuICAvLyBTaG90IGNhbGxlciBjaXJjbGUuXHJcbiAgc3ZnLmNpcmNsZSh7XHJcbiAgICByOiBDb25zdGFudHMucixcclxuICAgIGZpbGw6IENvbG9ycy5ncmF5LFxyXG4gICAgJ3N0cm9rZS1kYXNoYXJyYXknOiBkYXRhLnNob3RjYWxsZXIuZGFzaGFycmF5LFxyXG4gICAgJ3N0cm9rZS1kYXNob2Zmc2V0JzogZGF0YS5zaG90Y2FsbGVyLmRhc2hvZmZzZXQsXHJcbiAgICAnc3Ryb2tlLXdpZHRoJzogQ29uc3RhbnRzLnN0cm9rZVdpZHRoLCBcclxuICAgIHN0cm9rZTogQ29sb3JzLm9yYW5nZSxcclxuICAgIGN4OiBDb25zdGFudHMuY3gsXHJcbiAgICBjeTogQ29uc3RhbnRzLmN5LFxyXG4gIH0pO1xyXG5cclxuICAvLyBUZWFtbWF0ZSBjaXJjbGUuXHJcbiAgc3ZnLmNpcmNsZSh7XHJcbiAgICByOiBDb25zdGFudHMucixcclxuICAgIGZpbGw6IENvbG9ycy50cmFuc3BhcmVudCxcclxuICAgICdzdHJva2UtZGFzaGFycmF5JzogZGF0YS50ZWFtbWF0ZS5kYXNoYXJyYXksXHJcbiAgICAnc3Ryb2tlLWRhc2hvZmZzZXQnOiBkYXRhLnRlYW1tYXRlLmRhc2hvZmZzZXQsXHJcbiAgICAnc3Ryb2tlLXdpZHRoJzogQ29uc3RhbnRzLnN0cm9rZVdpZHRoLCBcclxuICAgIHN0cm9rZTogQ29sb3JzLm1hZ2VudGEsXHJcbiAgICBjeDogQ29uc3RhbnRzLmN4LFxyXG4gICAgY3k6IENvbnN0YW50cy5jeSxcclxuICB9KTtcclxuXHJcbiAgLy8gU3BvcnRzbWFuc2hpcCBjaXJjbGUuXHJcbiAgc3ZnLmNpcmNsZSh7XHJcbiAgICByOiBDb25zdGFudHMucixcclxuICAgIGZpbGw6IENvbG9ycy50cmFuc3BhcmVudCxcclxuICAgICdzdHJva2UtZGFzaGFycmF5JzogZGF0YS5zcG9ydHNtYW5zaGlwLmRhc2hhcnJheSxcclxuICAgICdzdHJva2UtZGFzaG9mZnNldCc6IGRhdGEuc3BvcnRzbWFuc2hpcC5kYXNob2Zmc2V0LFxyXG4gICAgJ3N0cm9rZS13aWR0aCc6IENvbnN0YW50cy5zdHJva2VXaWR0aCwgXHJcbiAgICBzdHJva2U6IENvbG9ycy5ncmVlbixcclxuICAgIGN4OiBDb25zdGFudHMuY3gsXHJcbiAgICBjeTogQ29uc3RhbnRzLmN5LFxyXG4gIH0pO1xyXG5cclxuICAvLyBDZW50ZXJlZCB0ZXh0IHdpdGggZW5kb3JzZW1lbnQgbGV2ZWwuXHJcbiAgc3ZnLnRleHQoe1xyXG4gICAgeDogJzUwJScsXHJcbiAgICB5OiAnNTAlJyxcclxuICAgIGR5OiAnLjNlbScsXHJcbiAgICAnZm9udC1mYW1pbHknOiAnY2VudHVyeSBnb3RoaWMsYXJpYWwsc2Fucy1zZXJpZicsXHJcbiAgICAnZm9udC13ZWlnaHQnOiAzMDAsXHJcbiAgICAnZm9udC1zaXplJzogMTYsXHJcbiAgICBzdHJva2U6IENvbG9ycy53aGl0ZSxcclxuICAgICdzdHJva2Utd2lkdGgnOiAnMScsXHJcbiAgICBmaWxsOiBDb2xvcnMud2hpdGUsXHJcbiAgICAndGV4dC1hbmNob3InOiAnbWlkZGxlJyxcclxuICB9LCBgJHtkYXRhLmxldmVsfWApO1xyXG5cclxuICAvLyBPdXRwdXQgU1ZHIGFzIGEgYmFzZTY0IGVuY29kZWQgZGF0YSBVUkkuXHJcbiAgY29uc3QgYjY0ID0gbmV3IEJ1ZmZlci5mcm9tKHN2Zy5yZW5kZXIoKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xyXG4gIHJldHVybiBgZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwke2I2NH1gO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW5kb3JzZW1lbnRTVkcoZW5kb3JzZW1lbnRzT2JqKSB7XHJcbiAgY29uc3Qgc3ZnRGF0YSA9IGdldFNWR0RhdGEoZW5kb3JzZW1lbnRzT2JqKTtcclxuICBjb25zdCBzdmcgPSBidWlsZFNWRyhzdmdEYXRhKTtcclxuICByZXR1cm4gc3ZnO1xyXG59Il0sInNvdXJjZVJvb3QiOiJDOlxcVXNlcnNcXEFsZlxcU291cmNlXFxvdmVyd2F0Y2gtYXBpXFxhcGlcXHNyY1xccGFyc2VyXFwifQ==