"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var echarts = require("../../../components/ec-canvas/echarts.js"); function PeopleChart1(chart) { var option = { series: [ { type: 'pie', itemStyle: { normal: { color: function (params) { var colorList = [ "#FFC600", "#29B9A5" ]; return colorList[params.dataIndex]; }, borderColor: '#fff', borderWidth: '2', } }, data: [{ name: '20', value: 20 }, { name: '50', value: 50 }], clickable: false, minAngle: 15, avoidLabelOverlap: true, hoverAnimation: false, silent: true, center: ['50%', '50%'], radius: '60%', labelLine: { normal: { length: 12, length2: 8 } }, label: { position: 'outer', alignTo: 'none', bleedMargin: 5 }, left: 0, right: '50%', top: '-20%', bottom: 0, }, { type: 'pie', itemStyle: { normal: { color: function (params) { var colorList = [ "#AD6DFE", "#FFA270" ]; return colorList[params.dataIndex]; }, borderColor: '#fff', borderWidth: '2', } }, data: [{ name: '20', value: 20 }, { name: '50', value: 50 }], clickable: false, minAngle: 15, avoidLabelOverlap: true, hoverAnimation: false, silent: true, center: ['50%', '50%'], radius: ['30%', '40%'], labelLine: { normal: { length: 12, length2: 8 } }, label: { position: 'outer', alignTo: 'none', bleedMargin: 5 }, left: '50%', right: 0, top: '-20%', bottom: 0 } ] }; chart.setOption(option); return chart; } exports.PeopleChart1 = PeopleChart1; function PeopleChart2(chart, colorData, peopleLeft, colorData2, peopleright) { var option = { series: [ { type: 'pie', itemStyle: { normal: { color: function (params) { var colorList = colorData; return colorList[params.dataIndex]; }, borderColor: '#fff', borderWidth: '2', } }, data: peopleLeft, clickable: false, minAngle: 15, avoidLabelOverlap: true, hoverAnimation: false, silent: true, center: ['50%', '50%'], radius: '60%', labelLine: { normal: { length: 12, length2: 8 } }, label: { position: 'outer', alignTo: 'none', bleedMargin: 5 }, left: 0, right: '50%', top: '-10%', bottom: 0, }, { type: 'pie', itemStyle: { normal: { color: function (params) { var colorList = colorData2; return colorList[params.dataIndex]; }, borderColor: '#fff', borderWidth: '2', } }, data: peopleright, clickable: false, minAngle: 15, avoidLabelOverlap: true, hoverAnimation: false, silent: true, center: ['50%', '50%'], radius: ['30%', '40%'], labelLine: { normal: { length: 12, length2: 8 } }, label: { position: 'outer', alignTo: 'none', bleedMargin: 5 }, left: '50%', right: 0, top: '-10%', bottom: 0 } ] }; chart.setOption(option); return chart; } exports.PeopleChart2 = PeopleChart2; function getPeopleChart2(chart, colorData, chartsData) { var option = { color: colorData, series: [ { type: 'pie', radius: ['50%', '70%'], silent: true, avoidLabelOverlap: false, label: { show: false }, labelLine: { show: false, normal: { show: false } }, itemStyle: { borderColor: '#fff', borderWidth: '2', }, data: chartsData, } ] }; chart.setOption(option); return chart; } exports.getPeopleChart2 = getPeopleChart2; function getparticipation(chart, data1, data2, data3, data4, xData) { console.log(xData); var option = { background: '#fff', grid: { top: '20%', left: '3%', right: '4%', bottom: '5%', containLabel: true }, yAxis: { type: 'value', data: ['0', '10', '20', '30', '40', '50'], axisTick: { show: false }, splitLine: { show: true, lineStyle: { type: 'solid', color: '#E9E9E9' } }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#B5B7BF' } } }, xAxis: { type: 'category', data: xData, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#E9E9E9' } } }, series: [{ name: '党员', type: 'bar', stack: 'sum', barWidth: 13, data: data1, color: '#FFC600', }, { name: '党员参与', type: 'bar', barWidth: 13, stack: 'sum', data: data2, color: '#FFA270', itemStyle: { barWidth: 18, normal: { barBorderRadius: [9, 9, 0, 0] }, }, }, { name: '居民', type: 'bar', color: '#63CFED', stack: 'sum1', barWidth: 13, data: data3 }, { name: '居民参与', type: 'bar', color: '#679CF7', stack: 'sum1', barWidth: 13, data: data4, itemStyle: { barWidth: 18, normal: { barBorderRadius: [9, 9, 0, 0] }, }, }, ] }; chart.setOption(option); return chart; } exports.getparticipation = getparticipation; function getparticipation2(chart, yLineData, yData1, yData2, xData) { var option = { grid: { top: '20%', left: '3%', right: '4%', bottom: '5%', containLabel: true }, yAxis: [{ type: 'value', axisTick: { show: false }, splitLine: { show: true, lineStyle: { type: 'solid', color: '#E9E9E9' } }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#B5B7BF' } } }, { type: 'value', axisTick: { show: false }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff', } }, axisLabel: { formatter: '{value} %', show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, } ], xAxis: { type: 'category', data: xData, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#E9E9E9' } } }, series: [ { data: yLineData, type: 'line', color: '#FFA270', yAxisIndex: 1 }, { name: '党员参与', type: 'bar', barWidth: 13, stack: 'sum', data: yData1, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#02C9B4' }, { offset: 1, color: '#01AECC' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } } }, { name: '居民参与', type: 'bar', stack: 'sum1', barWidth: 13, data: yData2, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#2970FF' }, { offset: 1, color: '#81A2FF' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } }, }, ] }; chart.setOption(option); return chart; } exports.getparticipation2 = getparticipation2; function getVoiceActive(chart) { var option = { series: [ { type: 'pie', radius: ['70%', '95%'], silent: true, avoidLabelOverlap: false, label: { show: false }, labelLine: { show: false, normal: { show: false } }, itemStyle: { borderColor: '#fff', borderWidth: '2', }, data: [{ name: '好好', value: '20' }, { name: '非常好好', value: '10' }, { name: '好', value: '30' }] } ] }; chart.setOption(option); return chart; } exports.getVoiceActive = getVoiceActive; function getVoiceActiveA(chart) { var option = { color: ["#FFC600", "#29B9A5"], series: [ { type: 'pie', center: ['50%', '50%'], radius: ['0%', '100%'], silent: true, avoidLabelOverlap: false, label: { show: false }, labelLine: { show: false, normal: { show: false } }, itemStyle: { borderColor: '#fff', borderWidth: '2', }, data: [{ name: '好好', value: '20' }, { name: '好', value: '30' }] } ] }; chart.setOption(option); return chart; } exports.getVoiceActiveA = getVoiceActiveA; function getparticipationPercent(chart) { var data2 = [30, 60, 60, 70,]; var data3 = [70, 60, 90, 100,]; var xData = ['第一周', '第二周', '第三周', '第四周']; var option = { grid: { top: '20%', left: '3%', right: '4%', bottom: '5%', containLabel: true }, yAxis: [{ type: 'value', axisTick: { show: false }, splitLine: { show: true, lineStyle: { type: 'solid', color: '#E9E9E9' } }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#B5B7BF' } } }, { type: 'value', axisTick: { show: false }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff', } }, axisLabel: { formatter: '{value}%', max: 100, show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } } } ], xAxis: { type: 'category', data: xData, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#E9E9E9' } } }, series: [ { data: [10, 16, 50, 90], type: 'line', color: '#FFA270', yAxisIndex: 1, markPoint: { data: [ { type: 'max', name: '最大值' }, ], silent: true, symbolOffset: [-5, 0], label: { color: '#fff', fontSize: 10 } }, }, { name: '党员参与', type: 'bar', barWidth: 13, stack: 'sum', label: {}, data: data2, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#02C9B4' }, { offset: 1, color: '#01AECC' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } }, markPoint: { data: [ { type: 'min', name: '最大值' }, ], silent: true, symbolOffset: [-5, 0], label: { color: '#fff', fontSize: 10 } }, }, { name: '居民参与', type: 'bar', stack: 'sum1', barWidth: 13, data: data3, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#2970FF' }, { offset: 1, color: '#81A2FF' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } }, }, ] }; chart.setOption(option); return chart; } exports.getparticipationPercent = getparticipationPercent; function voiceAnalyzeEcharts(chart) { var data2 = [30, 60, 60, 70,]; var data3 = [70, 60, 90, 100,]; var xData = ['第一周', '第二周', '第三周', '第四周']; var option = { grid: { top: '20%', left: '3%', right: '1%', bottom: '5%', containLabel: true }, yAxis: [{ type: 'value', axisTick: { show: false }, splitLine: { show: true, lineStyle: { type: 'solid', color: '#E9E9E9' } }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#B5B7BF' } } }, { show: false, type: 'value', axisTick: { show: false }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff', } }, axisLabel: { formatter: '{value}%', max: 100, show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } } } ], xAxis: { type: 'category', data: xData, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: '#B5B7BF', fontSize: 10 } }, axisLine: { show: false, lineStyle: { color: '#E9E9E9' } } }, series: [ { data: [10, 16, 50, 90], type: 'line', color: '#FFA270', yAxisIndex: 1, markPoint: { data: [ { type: 'max', name: '最大值' }, ], silent: true, symbolOffset: [-5, 0], label: { color: '#fff', fontSize: 10 } }, }, { name: '党员参与', type: 'bar', barWidth: 13, stack: 'sum', label: {}, data: data2, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#02C9B4' }, { offset: 1, color: '#01AECC' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } }, markPoint: { data: [ { type: 'min', name: '最大值' }, ], silent: true, symbolOffset: [-5, 0], label: { color: '#fff', fontSize: 10 } }, }, { name: '居民参与', type: 'bar', stack: 'sum1', barWidth: 13, data: data3, color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: '#2970FF' }, { offset: 1, color: '#81A2FF' } ]), itemStyle: { barWidth: 13, normal: { barBorderRadius: [9, 9, 0, 0] } }, }, ] }; chart.setOption(option); return chart; } exports.voiceAnalyzeEcharts = voiceAnalyzeEcharts; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjaGFydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxrRUFBbUU7QUFFbkUsU0FBZ0IsWUFBWSxDQUFDLEtBQVU7SUFDbkMsSUFBSSxNQUFNLEdBQUc7UUFDWCxNQUFNLEVBQUU7WUFDTjtnQkFDQSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUU7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxVQUFVLE1BQXVDOzRCQUV0RCxJQUFJLFNBQVMsR0FBRztnQ0FDZCxTQUFTLEVBQUUsU0FBUzs2QkFDckIsQ0FBQzs0QkFDRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7d0JBQ3BDLENBQUM7d0JBQ0QsV0FBVyxFQUFFLE1BQU07d0JBQ25CLFdBQVcsRUFBRSxHQUFHO3FCQUNqQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsQ0FBQzt3QkFDTCxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsRUFBRTtxQkFDVixDQUFDO2dCQUNGLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixRQUFRLEVBQUUsRUFBRTtnQkFDWixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixjQUFjLEVBQUUsS0FBSztnQkFDckIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQkFDdEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsRUFBRTt3QkFDVixPQUFPLEVBQUUsQ0FBQztxQkFDWDtpQkFDRjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLE9BQU8sRUFBRSxNQUFNO29CQUNmLFdBQVcsRUFBRSxDQUFDO2lCQUNm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LEtBQUs7Z0JBQ1gsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNwRCxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtvQkFDL0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7aUJBQ2hDLENBQUM7Z0JBQ0YsU0FBUyxFQUFFO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLE1BQU0sRUFBRTt3QkFDTixlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzlCO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXpLRCxrREF5S0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXHJcbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9lYy1jYW52YXMvZWNoYXJ0cy5qcydcclxuLyoqKioqKuWFmuWRmOWPguS4juS6uuaVsCzlhZrlu7rlo7Dpn7Plj4LkuI7kurrmlbAgKioqKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFBlb3BsZUNoYXJ0MShjaGFydDogYW55KSB7XHJcbiAgICB2YXIgb3B0aW9uID0ge1xyXG4gICAgICBzZXJpZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgY29sb3I6IGZ1bmN0aW9uIChwYXJhbXM6IHsgZGF0YUluZGV4OiBzdHJpbmcgfCBudW1iZXI7IH0pIHtcclxuICAgICAgICAgICAgICAvL+iHquWumuS5ieminOiJslxyXG4gICAgICAgICAgICAgIHZhciBjb2xvckxpc3QgPSBbXHJcbiAgICAgICAgICAgICAgICBcIiNGRkM2MDBcIiwgXCIjMjlCOUE1XCJcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgIHJldHVybiBjb2xvckxpc3RbcGFyYW1zLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7XHJcbiAgICAgICAgICBuYW1lOiAnMjAnLFxyXG4gICAgICAgICAgdmFsdWU6IDIwXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnNTAnLFxyXG4gICAgICAgICAgdmFsdWU6IDUwXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgY2xpY2thYmxlOiBmYWxzZSzjgIDjgIDjgIDjgIDjgIDjgIAgLy/mmK/lkKblvIDlkK/ngrnlh7tcclxuICAgICAgICBtaW5BbmdsZTogMTUsICAgICAgICAgICDjgIDjgIAgLy/mnIDlsI/nmoTmiYfljLrop5LluqbvvIgwIH4gMzYw77yJ77yM55So5LqO6Ziy5q2i5p+Q5Liq5YC86L+H5bCP5a+86Ie05omH5Yy65aSq5bCP5b2x5ZON5Lqk5LqSXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2Us44CA44CAICAvL+aYr+WQpuW8gOWQryBob3ZlciDlnKjmiYfljLrkuIrnmoTmlL7lpKfliqjnlLvmlYjmnpzjgIJcclxuICAgICAgICBzaWxlbnQ6IHRydWUs44CA44CA44CA44CA44CA44CA44CA44CALy/lm77lvaLmmK/lkKbkuI3lk43lupTlkozop6blj5HpvKDmoIfkuovku7ZcclxuICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgIHJhZGl1czogJzYwJScsXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7IC8vIOiuvue9ruaMh+ekuue6v+eahOmVv+W6plxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGxlbmd0aDogMTIsXHJcbiAgICAgICAgICAgIGxlbmd0aDI6IDhcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICAgIGFsaWduVG86ICdub25lJyxcclxuICAgICAgICAgIGJsZWVkTWFyZ2luOiA1XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWZ0OiAwLFxyXG4gICAgICAgIHJpZ2h0OiAnNTAlJyxcclxuICAgICAgICB0b3A6ICctMjAlJyxcclxuICAgICAgICBib3R0b206IDAsXHJcbiAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgICAgY29sb3I6IGZ1bmN0aW9uIChwYXJhbXM6IHsgZGF0YUluZGV4OiBzdHJpbmcgfCBudW1iZXI7IH0pIHtcclxuICAgICAgICAgICAgICAgIC8v6Ieq5a6a5LmJ6aKc6ImyXHJcbiAgICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gW1xyXG4gICAgICAgICAgICAgICAgICBcIiNBRDZERkVcIiwgXCIjRkZBMjcwXCJcclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhOiBbe1xyXG4gICAgICAgICAgICBuYW1lOiAnMjAnLFxyXG4gICAgICAgICAgICB2YWx1ZTogMjBcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICc1MCcsXHJcbiAgICAgICAgICAgIHZhbHVlOiA1MFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICBjbGlja2FibGU6IGZhbHNlLOOAgOOAgOOAgOOAgOOAgOOAgCAvL+aYr+WQpuW8gOWQr+eCueWHu1xyXG4gICAgICAgICAgbWluQW5nbGU6IDE1LCAgICAgICAgICAg44CA44CAIC8v5pyA5bCP55qE5omH5Yy66KeS5bqm77yIMCB+IDM2MO+8ie+8jOeUqOS6jumYsuatouafkOS4quWAvOi/h+Wwj+WvvOiHtOaJh+WMuuWkquWwj+W9seWTjeS6pOS6klxyXG4gICAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSzjgIDjgIAgIC8v5piv5ZCm5byA5ZCvIGhvdmVyIOWcqOaJh+WMuuS4iueahOaUvuWkp+WKqOeUu+aViOaenOOAglxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgC8v5Zu+5b2i5piv5ZCm5LiN5ZON5bqU5ZKM6Kem5Y+R6byg5qCH5LqL5Lu2XHJcbiAgICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgICAgcmFkaXVzOiBbJzMwJScsICc0MCUnXSxcclxuICAgICAgICAgIGxhYmVsTGluZTogeyAvLyDorr7nva7mjIfnpLrnur/nmoTplb/luqZcclxuICAgICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgICAgbGVuZ3RoOiAxMixcclxuICAgICAgICAgICAgICBsZW5ndGgyOiA4XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICAgICAgYWxpZ25UbzogJ25vbmUnLFxyXG4gICAgICAgICAgICBibGVlZE1hcmdpbjogNVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxlZnQ6ICc1MCUnLFxyXG4gICAgICAgICAgcmlnaHQ6IDAsXHJcbiAgICAgICAgICB0b3A6ICctMjAlJyxcclxuICAgICAgICAgIGJvdHRvbTogMFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIGNoYXJ0LnNldE9wdGlvbihvcHRpb24pO1xyXG4gICAgcmV0dXJuIGNoYXJ0O1xyXG4gIC8vIHZhciBvcHRpb24gPSB7XHJcbiAgLy8gICBjb2xvcjogW1wiI0ZGQzYwMFwiLCBcIiMyOUI5QTVcIl0sXHJcbiAgLy8gICBzZXJpZXM6IFtcclxuICAvLyAgICAge1xyXG4gIC8vICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gIC8vICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgLy8gICAgICAgcmFkaXVzOiBbJzAlJywgJzEwMCUnXSxcclxuICAvLyAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgLy8gICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gIC8vICAgICAgIGxhYmVsOiB7XHJcbiAgLy8gICAgICAgICBzaG93OiBmYWxzZVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgLy8gICAgICAgICBzaG93OiBmYWxzZSxcclxuICAvLyAgICAgICAgIG5vcm1hbDoge1xyXG4gIC8vICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgLy8gICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gIC8vICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAvLyAgICAgICB9LFxyXG4gIC8vICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICBdXHJcbiAgLy8gfTtcclxuICAvLyBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICAvLyByZXR1cm4gY2hhcnQ7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIFBlb3BsZUNoYXJ0MihjaGFydDogYW55LGNvbG9yRGF0YTphbnkscGVvcGxlTGVmdDphbnksY29sb3JEYXRhMjphbnkscGVvcGxlcmlnaHQ6YW55KSB7XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgIC8v6Ieq5a6a5LmJ6aKc6ImyXHJcbiAgICAgICAgICAgIHZhciBjb2xvckxpc3QgPSBjb2xvckRhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBjb2xvckxpc3RbcGFyYW1zLmRhdGFJbmRleF1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHBlb3BsZUxlZnQsXHJcbiAgICAgIGNsaWNrYWJsZTogZmFsc2Us44CA44CA44CA44CA44CA44CAIC8v5piv5ZCm5byA5ZCv54K55Ye7XHJcbiAgICAgIG1pbkFuZ2xlOiAxNSwgICAgICAgICAgIOOAgOOAgCAvL+acgOWwj+eahOaJh+WMuuinkuW6pu+8iDAgfiAzNjDvvInvvIznlKjkuo7pmLLmraLmn5DkuKrlgLzov4flsI/lr7zoh7TmiYfljLrlpKrlsI/lvbHlk43kuqTkupJcclxuICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLOOAgOOAgCAgLy/mmK/lkKblvIDlkK8gaG92ZXIg5Zyo5omH5Yy65LiK55qE5pS+5aSn5Yqo55S75pWI5p6c44CCXHJcbiAgICAgIHNpbGVudDogdHJ1ZSzjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIAvL+WbvuW9ouaYr+WQpuS4jeWTjeW6lOWSjOinpuWPkem8oOagh+S6i+S7tlxyXG4gICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICByYWRpdXM6ICc2MCUnLFxyXG4gICAgICBsYWJlbExpbmU6IHsgLy8g6K6+572u5oyH56S657q/55qE6ZW/5bqmXHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBsZW5ndGg6IDEyLFxyXG4gICAgICAgICAgbGVuZ3RoMjogOFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGFiZWw6IHtcclxuICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICBhbGlnblRvOiAnbm9uZScsXHJcbiAgICAgICAgYmxlZWRNYXJnaW46IDVcclxuICAgICAgfSxcclxuICAgICAgbGVmdDogMCxcclxuICAgICAgcmlnaHQ6ICc1MCUnLFxyXG4gICAgICB0b3A6ICctMTAlJyxcclxuICAgICAgYm90dG9tOiAwLFxyXG4gICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgICAgLy/oh6rlrprkuYnpopzoibJcclxuICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gY29sb3JEYXRhMjtcclxuICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBwZW9wbGVyaWdodCxcclxuICAgICAgICBjbGlja2FibGU6IGZhbHNlLOOAgOOAgOOAgOOAgOOAgOOAgCAvL+aYr+WQpuW8gOWQr+eCueWHu1xyXG4gICAgICAgIG1pbkFuZ2xlOiAxNSwgICAgICAgICAgIOOAgOOAgCAvL+acgOWwj+eahOaJh+WMuuinkuW6pu+8iDAgfiAzNjDvvInvvIznlKjkuo7pmLLmraLmn5DkuKrlgLzov4flsI/lr7zoh7TmiYfljLrlpKrlsI/lvbHlk43kuqTkupJcclxuICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogdHJ1ZSwgICAvL+aYr+WQpuWQr+eUqOmYsuatouagh+etvumHjeWPoOetlueVpVxyXG4gICAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSzjgIDjgIAgIC8v5piv5ZCm5byA5ZCvIGhvdmVyIOWcqOaJh+WMuuS4iueahOaUvuWkp+WKqOeUu+aViOaenOOAglxyXG4gICAgICAgIHNpbGVudDogdHJ1ZSzjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIAvL+WbvuW9ouaYr+WQpuS4jeWTjeW6lOWSjOinpuWPkem8oOagh+S6i+S7tlxyXG4gICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgICAgICAgcmFkaXVzOiBbJzMwJScsICc0MCUnXSxcclxuICAgICAgICBsYWJlbExpbmU6IHsgLy8g6K6+572u5oyH56S657q/55qE6ZW/5bqmXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgbGVuZ3RoOiAxMixcclxuICAgICAgICAgICAgbGVuZ3RoMjogOFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIHBvc2l0aW9uOiAnb3V0ZXInLFxyXG4gICAgICAgICAgYWxpZ25UbzogJ25vbmUnLFxyXG4gICAgICAgICAgYmxlZWRNYXJnaW46IDVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZnQ6ICc1MCUnLFxyXG4gICAgICAgIHJpZ2h0OiAwLFxyXG4gICAgICAgIHRvcDogJy0xMCUnLFxyXG4gICAgICAgIGJvdHRvbTogMFxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuLyoqKioqKuWFmuWRmOWPguS4juS6uuaVsCzlhZrlu7rlo7Dpn7Plj4LkuI7mg4XlhrUs5YWa5ZGY5Lqu6Lqr5Lu95Y+C5LiO6K6u5LqL5oOF5Ya1LOWFmuWRmOe+pOWbouW4puWKqOaDheWGtSAqKioqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVvcGxlQ2hhcnQyKGNoYXJ0OiBhbnksY29sb3JEYXRhOmFueSxjaGFydHNEYXRhOmFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBjb2xvcjogY29sb3JEYXRhLFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAncGllJyxcclxuICAgICAgICByYWRpdXM6IFsnNTAlJywgJzcwJSddLFxyXG4gICAgICAgIHNpbGVudDogdHJ1ZSxcclxuICAgICAgICBhdm9pZExhYmVsT3ZlcmxhcDogZmFsc2UsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbExpbmU6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgICBib3JkZXJXaWR0aDogJzInLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTpjaGFydHNEYXRhLFxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRwYXJ0aWNpcGF0aW9uKGNoYXJ0OiBhbnksZGF0YTE6QW55QXJyYXksZGF0YTI6QW55QXJyYXksZGF0YTM6QW55QXJyYXksZGF0YTQ6QW55QXJyYXkseERhdGE6QW55QXJyYXkpIHtcclxuICBjb25zb2xlLmxvZyh4RGF0YSlcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgLy8gY29sb3I6IFsnI0ZGQzYwMCcsICcjRkZBMjcwJywgJyM2M0NGRUQnLCAnIzY3OUNGNyddLFxyXG4gICAgLy8gdG9vbHRpcDoge1xyXG4gICAgLy8gICB0cmlnZ2VyOiAnYXhpcycsXHJcbiAgICAvLyB9LFxyXG4gICAgYmFja2dyb3VuZDogJyNmZmYnLFxyXG4gICAgZ3JpZDogeyAvL+WbvuihqOeahOS9jee9rlxyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzQlJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczoge1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBkYXRhOiBbJzAnLCAnMTAnLCAnMjAnLCAnMzAnLCAnNDAnLCAnNTAnXSwgLy9jYXRlZ29yeSzorr7nva7ml6DmlbDmja7ml7bpu5jorqTlgLxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSAvLy8v5piv5ZCm5pi+56S65Z2Q5qCH6L206L2057q/XHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZTogeyAvLyDnvZHmoLznur9cclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDogeyAvL+WdkOagh+i9tOWIu+W6puagh+etvueahOebuOWFs+iuvue9ruOAglxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZTogeyAvL+WdkOagh+i9tOi9tOe6v+ebuOWFs+iuvue9ruOAglxyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHhBeGlzOiB7XHJcbiAgICAgIHR5cGU6ICdjYXRlZ29yeScsXHJcbiAgICAgIGRhdGE6IHhEYXRhLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlIC8vIOaYr+WQpuaYvuekuuWdkOagh+i9tOi9tOe6v1xyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHsgLy/lnZDmoIfovbTliLvluqbmoIfnrb7nmoTnm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHsgLy/lnZDmoIfovbTovbTnur/nm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IFt7XHJcbiAgICAgIG5hbWU6ICflhZrlkZgnLFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgc3RhY2s6ICdzdW0nLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGExLFxyXG4gICAgICBjb2xvcjogJyNGRkM2MDAnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WFmuWRmOWPguS4jicsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgZGF0YTogZGF0YTIsXHJcbiAgICAgIGNvbG9yOiAnI0ZGQTI3MCcsXHJcbiAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgIGJhcldpZHRoOiAxOCxcclxuICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdIC8v77yI6aG65pe26ZKI5bem5LiK77yM5Y+z5LiK77yM5Y+z5LiL77yM5bem5LiL77yJXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgLy8gbWFya1BvaW50OiB7XHJcbiAgICAgIC8vICAgZGF0YTogW1xyXG4gICAgICAvLyAgICAgeyB0eXBlOiAnbWF4JywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgLy8gICBdLFxyXG4gICAgICAvLyAgIHNpbGVudDp0cnVlLFxyXG4gICAgICAvLyAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgIC8vICAgc3ltYm9sT2Zmc2V0OlswLC0zMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAvLyAgIGxhYmVsOntcclxuICAgICAgLy8gICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAvLyAgICAgLy8gZGlzdGFuY2U6MTBcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0sXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WxheawkScsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBjb2xvcjogJyM2M0NGRUQnLFxyXG4gICAgICBzdGFjazogJ3N1bTEnLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGEzXHJcblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBjb2xvcjogJyM2NzlDRjcnLFxyXG4gICAgICBzdGFjazogJ3N1bTEnLFxyXG4gICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgIGRhdGE6IGRhdGE0LFxyXG4gICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICBiYXJXaWR0aDogMTgsXHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXSAvL++8iOmhuuaXtumSiOW3puS4iu+8jOWPs+S4iu+8jOWPs+S4i++8jOW3puS4i++8iVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1hcmtQb2ludDoge1xyXG4gICAgICAvLyAgIGRhdGE6IFtcclxuICAgICAgLy8gICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgIC8vICAgXSxcclxuICAgICAgLy8gICBzaWxlbnQ6dHJ1ZSxcclxuICAgICAgLy8gICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAvLyAgIHN5bWJvbE9mZnNldDpbMCwtMzBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgLy8gICBsYWJlbDp7XHJcbiAgICAgIC8vICAgICAvLyBwb3NpdGlvbjondG9wJyxcclxuICAgICAgLy8gICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9LFxyXG5cclxuICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcbi8qKioqKioqKioqKioq5YWa5ZGY5Y+C5LiO5Y2g5q+U5YiG5p6QKioqKioqKioqKioqKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldHBhcnRpY2lwYXRpb24yKGNoYXJ0OiBhbnksIHlMaW5lRGF0YTogQW55QXJyYXksIHlEYXRhMTogQW55QXJyYXksIHlEYXRhMjogQW55QXJyYXksIHhEYXRhOiBBbnlBcnJheSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBncmlkOiB7XHJcbiAgICAgIHRvcDogJzIwJScsXHJcbiAgICAgIGxlZnQ6ICczJScsXHJcbiAgICAgIHJpZ2h0OiAnNCUnLFxyXG4gICAgICBib3R0b206ICc1JScsXHJcbiAgICAgIGNvbnRhaW5MYWJlbDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHlBeGlzOiBbe1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICB0eXBlOiAnc29saWQnLFxyXG4gICAgICAgICAgY29sb3I6ICcjRTlFOUU5J1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCB7XHJcbiAgICAgIHR5cGU6ICd2YWx1ZScsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBmb3JtYXR0ZXI6ICd7dmFsdWV9ICUnLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG5cclxuICAgIH1cclxuICAgIF0sXHJcbiAgICB4QXhpczoge1xyXG4gICAgICB0eXBlOiAnY2F0ZWdvcnknLFxyXG4gICAgICBkYXRhOiB4RGF0YSxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHlMaW5lRGF0YSxcclxuICAgICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgICAgY29sb3I6ICcjRkZBMjcwJyxcclxuICAgICAgICB5QXhpc0luZGV4OiAxXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAn5YWa5ZGY5Y+C5LiOJyxcclxuICAgICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0nLFxyXG4gICAgICAgIGRhdGE6IHlEYXRhMSxcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMDJDOUI0JyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzAxQUVDQycgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgZGF0YTogeURhdGEyLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMyOTcwRkYnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjODFBMkZGJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2ljZUFjdGl2ZShjaGFydDogYW55KSB7XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIC8vIGNvbG9yOiBjb2xvcixcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgcmFkaXVzOiBbJzcwJScsICc5NSUnXSxcclxuICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICfpnZ7luLjlpb3lpb0nLCB2YWx1ZTogJzEwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWb2ljZUFjdGl2ZUEoY2hhcnQ6IGFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBjb2xvcjogW1wiI0ZGQzYwMFwiLCBcIiMyOUI5QTVcIl0sXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIGNlbnRlcjogWyc1MCUnLCAnNTAlJ10sXHJcbiAgICAgICAgcmFkaXVzOiBbJzAlJywgJzEwMCUnXSxcclxuICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IFt7IG5hbWU6ICflpb3lpb0nLCB2YWx1ZTogJzIwJyB9LCB7IG5hbWU6ICflpb0nLCB2YWx1ZTogJzMwJyB9XVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRwYXJ0aWNpcGF0aW9uUGVyY2VudChjaGFydDogYW55KSB7XHJcblxyXG4gIHZhciBkYXRhMiA9IFszMCwgNjAsIDYwLCA3MCxdO1xyXG4gIHZhciBkYXRhMyA9IFs3MCwgNjAsIDkwLCAxMDAsXTtcclxuXHJcbiAgdmFyIHhEYXRhID0gWyfnrKzkuIDlkagnLCAn56ys5LqM5ZGoJywgJ+esrOS4ieWRqCcsICfnrKzlm5vlkagnXTtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgZ3JpZDoge1xyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzQlJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczogW3tcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNmZmYnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfSUnLFxyXG4gICAgICAgIG1heDogMTAwLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBdLFxyXG4gICAgeEF4aXM6IHtcclxuICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgZGF0YTogeERhdGEsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLy8gZGF0YVpvb206IFtcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIHR5cGU6IFwiaW5zaWRlXCIsXHJcbiAgICAvLyAgICAgc3RhcnQ6IDUwLFxyXG4gICAgLy8gICAgIGVuZDogMTAwXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICBzaG93OiB0cnVlLFxyXG4gICAgLy8gICAgIHR5cGU6IFwic2xpZGVyXCIsXHJcbiAgICAvLyAgICAgeTogXCI5MCVcIixcclxuICAgIC8vICAgICBzdGFydDogNTAsXHJcbiAgICAvLyAgICAgZW5kOiAxMDBcclxuICAgIC8vICAgfVxyXG4gICAgLy8gXSxcclxuICAgIFxyXG4gICAgXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IFsxMCwgMTYsIDUwLCA5MF0sXHJcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICAgIGNvbG9yOiAnI0ZGQTI3MCcsXHJcbiAgICAgICAgeUF4aXNJbmRleDogMSxcclxuICAgICAgICBtYXJrUG9pbnQ6IHtcclxuICAgICAgICAgIGRhdGE6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWF4JywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgICAgICBzeW1ib2xPZmZzZXQ6IFstNSwgMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgLy8gcG9zaXRpb246J3RvcCcsXHJcbiAgICAgICAgICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgICAgICAgIGNvbG9yOicjZmZmJyxcclxuICAgICAgICAgICAgZm9udFNpemU6MTBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WFmuWRmOWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgLy8gYmFja2dyb3VuZENvbG9yOiB7IGltYWdlOiAnZGVtby5wbmcnIH0sXHJcbiAgICAgICAgICAvLyBub3JtYWw6IHtcclxuICAgICAgICAgIC8vICAgc2hvdzogdHJ1ZSwgICAgICAgICAgICAvL+aYvuekuuaVsOWtl1xyXG4gICAgICAgICAgLy8gICBwb3NpdGlvbjogJ3RvcCcsICAgICAgICAvL+i/memHjOWPr+S7peiHquW3semAieaLqeS9jee9rlxyXG4gICAgICAgICAgLy8gICBjb2xvcjogJ3JlZCcsXHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBkYXRhMixcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMDJDOUI0JyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzAxQUVDQycgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBtYXJrUG9pbnQ6IHtcclxuICAgICAgICAgIGRhdGE6IFtcclxuICAgICAgICAgICAgeyB0eXBlOiAnbWluJywgbmFtZTogJ+acgOWkp+WAvCcgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIHN5bWJvbDonaW1hZ2U6Ly9kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQW1DQVlBQUFCMHhKMlpBQUFDRzBsRVFWUm9RKzJhc1dzVVFSVEd2Mi9HUkxRSklsaFlHQkJiQTZhd3llVUtoYnNqZ21BWHdmOGdoQkFsallVSXR1SFFFUCtEZ0tDV0NYR1hOTG5kZ0VyUVF1MlQxQ0tDR0ltNDgyVE9DeGpRYkhZQ2V6QTdVK3pCelh1ejcvdmR6UHRZYm9uZTBFbDhHNUFwQWE0QU9MMy92V2VmdXdUZUEzeWFqVGVlV1cyMEY1VkdDeEJNZXliMmNEbkNSVk52VEZOM29ra2h1alNxTmtoTVVpZFJLc0JZMWNUM3R2OEdWUko5OS9qTTUvMnVQeXdBeVl2eWVUNEFDRHNnSElIUUEwSVQ5TG5MNTJrTExoQmNJTGhBY0lIZ0FubWQwdWY1NEFMQkJZSUxCQmNJTHVCemw4L1RabDNnRndDZEYranBmRWFWeEZ1QURIc3FNRWNXdDZuU3FBM0JiRFVCU0p0NHMzWlcvY3plQWJoUU1RZzdabENQZHY4YXc4YktzRFo2U2NCYUZTQVFrbVlxdTRPeEc5dC9BT3lQenF0UnJYaFpCQ2VQRFlLMGE1K25TRXVBcThkZUQvZ0VZQW5BRjllMVNPeGxSajZnM3JJN3Zqc09BbkJkT1NkUEovRXRnY3dEdU9oMkMybWJiK1krSmliMjNQTC9uMVVLZ083dGsrVXp4SWtYQks4WEVDR2czRFcxMXVNQ09ZVkN5d05neTlyY0hPRHU1NWNrYng2eHloa3ozbHc0WXF4VFdMa0FiSWtmbncveTY5QXFCZGNPclpoOFlHcU5SMDZxQ2lTVkQ2QjNISlFNdkFWeDZaKzFDdVpOdlRsWFFJZHphSDhBMkhJN3F5T0s2aldBVXdlcmx5ZW0xcHdGV2NwRFd2OEEyRmR6a25nS2tNVWVBQVB5WVJuYi9tL2dmUVVBRVRLTlZ3aWNNOEo3cURmV25mZXlZK0p2dVpTMWR5MS8wMWNBQUFBQVNVVk9SSzVDWUlJPScsXHJcbiAgICAgICAgICBzeW1ib2xPZmZzZXQ6IFstNSwgMF0sLy8wIOaYr+W3puWPsyAzMOaYr+S4ilxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgLy8gcG9zaXRpb246J3RvcCcsXHJcbiAgICAgICAgICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgICAgICAgIGNvbG9yOicjZmZmJyxcclxuICAgICAgICAgICAgZm9udFNpemU6MTBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WxheawkeWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgZGF0YTogZGF0YTMsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzI5NzBGRicgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyM4MUEyRkYnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICByZXR1cm4gY2hhcnQ7XHJcbn1cclxuXHJcbi8vIOWFmuW7uuWjsOmfs+WPguS4juS6uuasoeWIhuaekFxyXG5leHBvcnQgZnVuY3Rpb24gdm9pY2VBbmFseXplRWNoYXJ0cyhjaGFydDogYW55KSB7XHJcblxyXG4gIFxyXG4gIHZhciBkYXRhMiA9IFszMCwgNjAsIDYwLCA3MCxdO1xyXG4gIHZhciBkYXRhMyA9IFs3MCwgNjAsIDkwLCAxMDAsXTtcclxuXHJcbiAgdmFyIHhEYXRhID0gWyfnrKzkuIDlkagnLCAn56ys5LqM5ZGoJywgJ+esrOS4ieWRqCcsICfnrKzlm5vlkagnXTtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgZ3JpZDoge1xyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzElJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczogW3tcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgICB7XHJcbiAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNmZmYnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfSUnLFxyXG4gICAgICAgIG1heDogMTAwLFxyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBdLFxyXG4gICAgeEF4aXM6IHtcclxuICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgZGF0YTogeERhdGEsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiBbMTAsIDE2LCA1MCwgOTBdLFxyXG4gICAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgICBjb2xvcjogJyNGRkEyNzAnLFxyXG4gICAgICAgIHlBeGlzSW5kZXg6IDEsXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflhZrlkZjlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICBzdGFjazogJ3N1bScsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIC8vIGJhY2tncm91bmRDb2xvcjogeyBpbWFnZTogJ2RlbW8ucG5nJyB9LFxyXG4gICAgICAgICAgLy8gbm9ybWFsOiB7XHJcbiAgICAgICAgICAvLyAgIHNob3c6IHRydWUsICAgICAgICAgICAgLy/mmL7npLrmlbDlrZdcclxuICAgICAgICAgIC8vICAgcG9zaXRpb246ICd0b3AnLCAgICAgICAgLy/ov5nph4zlj6/ku6Xoh6rlt7HpgInmi6nkvY3nva5cclxuICAgICAgICAgIC8vICAgY29sb3I6ICdyZWQnLFxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogZGF0YTIsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzAyQzlCNCcgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyMwMUFFQ0MnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbicsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflsYXmsJHlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtMScsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIGRhdGE6IGRhdGEzLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMyOTcwRkYnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjODFBMkZGJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG4iXX0=