coloration-lib
Advanced tools
Comparing version 0.1.2 to 0.1.3
@@ -330,48 +330,56 @@ (function (global, factory) { | ||
}; | ||
/** | ||
* CSS color list | ||
*/ | ||
Coloration.colorsName = { | ||
// CSS 1 | ||
black: '#000000', silver: '#c0c0c0', gray: '#808080', white: '#ffffff', maroon: '#800000', red: '#ff0000', | ||
purple: '#800080', fuchsia: '#ff00ff', green: '#008000', lime: '#00ff00', olive: '#808000', yellow: '#ffff00', | ||
navy: '#000080', blue: '#0000ff', teal: '#008080', aqua: '#00ffff', | ||
// CSS 2 (Revision 1) | ||
orange: '#ffa500', | ||
// CSS 3 | ||
aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', | ||
bisque: '#ffe4c4', blanchedalmond: '#ffebcd', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', | ||
cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', | ||
cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff', deaqua: '#00ffff', darkblue: '#00008b', | ||
darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', | ||
darkkhaki: '#bdb76b', darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00', | ||
darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a', darkseagreen: '#8fbc8f', | ||
darkslateblue: '#483d8b', darkslategray: '#2f4f4f', darkslategrey: '#2f4f4f', darkturquoise: '#00ced1', | ||
darkviolet: '#9400d3', deeppink: '#ff1493', deepskyblue: '#00bfff', dimgray: '#696969', dimgrey: '#696969', | ||
dodgerblue: '#1e90ff', firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22', | ||
gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', greenyellow: '#adff2f', | ||
grey: '#808080', honeydew: '#f0fff0', hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082', | ||
ivory: '#fffff0', khaki: '#f0e68c', lavender: '#e6e6fa', lavenderblush: '#fff0f5', lawngreen: '#7cfc00', | ||
lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff', | ||
lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90', lightgrey: '#d3d3d3', | ||
lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', | ||
lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', | ||
limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', defuchsia: '#ff00ff', mediumaquamarine: '#66cdaa', | ||
mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', mediumseagreen: '#3cb371', | ||
mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', | ||
mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1', | ||
moccasin: '#ffe4b5', navajowhite: '#ffdead', oldlace: '#fdf5e6', olivedrab: '#6b8e23', orangered: '#ff4500', | ||
orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee', | ||
palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', | ||
plum: '#dda0dd', powderblue: '#b0e0e6', rosybrown: '#bc8f8f', royalblue: '#4169e1', saddlebrown: '#8b4513', | ||
salmon: '#fa8072', sandybrown: '#f4a460', seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', | ||
skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', slategrey: '#708090', snow: '#fffafa', | ||
springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', thistle: '#d8bfd8', tomato: '#ff6347', | ||
turquoise: '#40e0d0', violet: '#ee82ee', wheat: '#f5deb3', whitesmoke: '#f5f5f5', yellowgreen: '#9acd32', | ||
// CSS 4 | ||
rebeccapurple: '#663399' | ||
}; | ||
return Coloration; | ||
}()); | ||
/** | ||
* CSS color list | ||
*/ | ||
Coloration.colorsName = { | ||
// CSS 1 | ||
black: '#000000', silver: '#c0c0c0', gray: '#808080', white: '#ffffff', maroon: '#800000', red: '#ff0000', | ||
purple: '#800080', fuchsia: '#ff00ff', green: '#008000', lime: '#00ff00', olive: '#808000', yellow: '#ffff00', | ||
navy: '#000080', blue: '#0000ff', teal: '#008080', aqua: '#00ffff', | ||
// CSS 2 (Revision 1) | ||
orange: '#ffa500', | ||
// CSS 3 | ||
aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', | ||
bisque: '#ffe4c4', blanchedalmond: '#ffebcd', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', | ||
cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', | ||
cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff', deaqua: '#00ffff', darkblue: '#00008b', | ||
darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', | ||
darkkhaki: '#bdb76b', darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00', | ||
darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a', darkseagreen: '#8fbc8f', | ||
darkslateblue: '#483d8b', darkslategray: '#2f4f4f', darkslategrey: '#2f4f4f', darkturquoise: '#00ced1', | ||
darkviolet: '#9400d3', deeppink: '#ff1493', deepskyblue: '#00bfff', dimgray: '#696969', dimgrey: '#696969', | ||
dodgerblue: '#1e90ff', firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22', | ||
gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', greenyellow: '#adff2f', | ||
grey: '#808080', honeydew: '#f0fff0', hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082', | ||
ivory: '#fffff0', khaki: '#f0e68c', lavender: '#e6e6fa', lavenderblush: '#fff0f5', lawngreen: '#7cfc00', | ||
lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff', | ||
lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90', lightgrey: '#d3d3d3', | ||
lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', | ||
lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', | ||
limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', defuchsia: '#ff00ff', mediumaquamarine: '#66cdaa', | ||
mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', mediumseagreen: '#3cb371', | ||
mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', | ||
mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1', | ||
moccasin: '#ffe4b5', navajowhite: '#ffdead', oldlace: '#fdf5e6', olivedrab: '#6b8e23', orangered: '#ff4500', | ||
orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee', | ||
palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', | ||
plum: '#dda0dd', powderblue: '#b0e0e6', rosybrown: '#bc8f8f', royalblue: '#4169e1', saddlebrown: '#8b4513', | ||
salmon: '#fa8072', sandybrown: '#f4a460', seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', | ||
skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', slategrey: '#708090', snow: '#fffafa', | ||
springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', thistle: '#d8bfd8', tomato: '#ff6347', | ||
turquoise: '#40e0d0', violet: '#ee82ee', wheat: '#f5deb3', whitesmoke: '#f5f5f5', yellowgreen: '#9acd32', | ||
// CSS 4 | ||
rebeccapurple: '#663399' | ||
}; | ||
/* | ||
* Public API Surface of coloration | ||
*/ | ||
/** | ||
* Generated bundle index. Do not edit. | ||
*/ | ||
exports.Coloration = Coloration; | ||
@@ -378,0 +386,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("coloration-lib",["exports"],t):t((e=e||self)["coloration-lib"]={})}(this,(function(e){"use strict";var t=/^#?(([\da-f]{3})(([\da-f]{3})([\da-f]{2})?|[\da-f]{1})?)$/i,r=/^rgba?\(([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)((,\s*)([\d]*(\.[\d]+)?))?\)$/i,a=/^hsla?\(([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)\%(,?\s*|\s+)([\d]*(\.[\d]+)?)\%((,\s*)([\d]*(\.[\d]+)?))?\)$/i,o=function(){function e(e){this.color=e,this.rgb={r:0,g:0,b:0,a:1},this.hsv={h:0,s:0,v:0,a:1},this.reset()}return e.prototype.reset=function(){this.color&&(this.calcColor=this.parseColor(this.color),this.updateColor())},e.prototype.changeLuminosity=function(e){return e=this.minmax(e,-1,1),this.maskColor(e<0?"#000":"#FFF",Math.abs(e)),this},e.prototype.maskColor=function(e,t){if(void 0===t&&(t=1),this.calcColor){var r=this.calcColor,a=this.parseColor(e),o=this.minmax(t,0,1),i=r.intColor>>16,f=r.intColor>>8&255,s=255&r.intColor;a.alpha&&(this.calcColor.alpha=this.minmax(r.alpha+a.alpha*t,0,1)),this.calcColor.intColor=this.rgbToInt(Math.round(((a.intColor>>16)-i)*o)+i,Math.round(((a.intColor>>8&255)-f)*o)+f,Math.round(((255&a.intColor)-s)*o)+s),this.updateColor()}return this},e.prototype.addColor=function(e){return this.calcColor&&(e.luminosity&&this.changeLuminosity(e.luminosity),e.maskColor&&this.maskColor(e.maskColor,this.minmax(e.maskOpacity||0,0,1)),(e.r||e.g||e.b)&&(e.r&&(this.rgb.r=this.minmax(this.rgb.r+ +e.r,0,255)),e.g&&(this.rgb.g=this.minmax(this.rgb.g+ +e.g,0,255)),e.b&&(this.rgb.b=this.minmax(this.rgb.b+ +e.b,0,255)),this.calcColor.intColor=this.rgbToInt(this.rgb.r,this.rgb.g,this.rgb.b),this.updateColor()),(e.h||e.s||e.v)&&(e.h&&(this.hsv.h=(this.hsv.h+ +e.h+360)%360),e.s&&(this.hsv.s=this.minmax(this.hsv.s+ +e.s,0,100)),e.v&&(this.hsv.v=this.minmax(this.hsv.v+ +e.v,0,100)),this.calcColor.intColor=this.hsvToInt(this.hsv.h,this.hsv.s,this.hsv.v),this.updateColor()),e.alpha&&(this.hsv.a=this.rgb.a=this.calcColor.alpha=this.minmax(this.calcColor.alpha+ +e.alpha,0,1))),this},e.prototype.getRGB=function(){var e=this;return this.calcColor?this.value((function(){return Object.assign({},e.rgb)})):null},e.prototype.getHSV=function(){var e=this;return this.calcColor?this.value((function(){return Object.assign({},e.hsv)})):null},e.prototype.toHEX=function(){var e=this;return this.calcColor?this.value((function(){return"#"+(16777216+e.calcColor.intColor).toString(16).slice(1)+(e.calcColor.alpha<1?(256+Math.round(255*e.calcColor.alpha)).toString(16).slice(1):"")})):null},e.prototype.toHSL=function(){var e=this;return this.calcColor?this.value((function(){return"hsl("+e.hsv.h+", "+e.hsv.s+"%, "+e.hsv.v+"%"+(e.hsv.a<1?", "+e.hsv.a:"")+")"})):null},e.prototype.toRGB=function(){var e=this;return this.calcColor?this.value((function(){return"rgb("+e.rgb.r+", "+e.rgb.g+", "+e.rgb.b+(e.rgb.a<1?", "+e.rgb.a:"")+")"})):null},e.prototype.updateColor=function(){var e=this.calcColor.intColor;this.rgb.r=e>>16,this.rgb.g=e>>8&255,this.rgb.b=255&e,this.rgb.a=this.calcColor.alpha,this.hsv=this.rgb2hsv(this.rgb.r,this.rgb.g,this.rgb.b),this.hsv.a=this.calcColor.alpha},e.prototype.parseColor=function(o){e.colorsName[o]&&(o=e.colorsName[o]);var i,f=String(o).match(t),s=1;if(f){var l=f[4]?f[2]+f[4]:f[2][0]+f[2][0]+f[2][1]+f[2][1]+f[2][2]+f[2][2],n=f[4]?f[5]:f[3]?f[3][1]+f[3][1]:void 0;i=parseInt(l,16),s=void 0!==n?parseInt(n,16)/255:1}if(void 0===i){var h=String(o).match(r);h&&(i=this.rgbToInt(parseInt(h[1],10),parseInt(h[4],10),parseInt(h[7],10)),s=void 0!==h[11]?parseFloat(h[11]):1)}if(void 0===i){var d=String(o).match(a);d&&(i=this.hsvToInt(parseInt(d[1],10),parseInt(d[4],10),parseInt(d[7],10)),s=void 0!==d[11]?parseFloat(d[11]):1)}return{intColor:i,alpha:s}},e.prototype.hsvToInt=function(e,t,r){var a=(t=Math.max(0,t))/100,o=r/100,i=e/360;if(0===t)return this.rgbToInt(256*o,256*o,256*o);var f=o<.5?o*(1+a):o+a-o*a,s=2*o-f,l=this.hue2rgb(s,f,i+1/3),n=this.hue2rgb(s,f,i),h=this.hue2rgb(s,f,i-1/3);return this.rgbToInt(Math.round(255*l),Math.round(255*n),Math.round(255*h))},e.prototype.hue2rgb=function(e,t,r){return r<0?r+=1:r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e},e.prototype.rgb2hsv=function(e,t,r){e/=255,t/=255,r/=255;var a,o,i=Math.max(e,t,r),f=Math.min(e,t,r),s=(i+f)/2;if(i===f)a=0,o=0;else{var l=i-f;switch(o=l/(1-Math.abs(2*s-1)),i){case e:a=(t-r)/l+(t<r?6:0);break;case t:a=(r-e)/l+2;break;case r:a=(e-t)/l+4}}return{h:Math.round(60*a),s:Math.round(100*o),v:Math.round(100*s)}},e.prototype.rgbToInt=function(e,t,r){return 65536*Math.round(e)+256*Math.round(t)+Math.round(r)},e.prototype.minmax=function(e,t,r,a){return void 0===a&&(a=0),Math.min(Math.max(e||a,t),r)},e.prototype.value=function(e){return isNaN(this.calcColor.intColor)?null:e()},e.colorsName={black:"#000000",silver:"#c0c0c0",gray:"#808080",white:"#ffffff",maroon:"#800000",red:"#ff0000",purple:"#800080",fuchsia:"#ff00ff",green:"#008000",lime:"#00ff00",olive:"#808000",yellow:"#ffff00",navy:"#000080",blue:"#0000ff",teal:"#008080",aqua:"#00ffff",orange:"#ffa500",aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",deaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",defuchsia:"#ff00ff",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",oldlace:"#fdf5e6",olivedrab:"#6b8e23",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellowgreen:"#9acd32",rebeccapurple:"#663399"},e}();e.Coloration=o,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("coloration-lib",["exports"],t):t((e=e||self)["coloration-lib"]={})}(this,(function(e){"use strict";var t=/^#?(([\da-f]{3})(([\da-f]{3})([\da-f]{2})?|[\da-f]{1})?)$/i,r=/^rgba?\(([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)((,\s*)([\d]*(\.[\d]+)?))?\)$/i,a=/^hsla?\(([\d]*(\.[\d]+)?)(,?\s*|\s+)([\d]*(\.[\d]+)?)\%(,?\s*|\s+)([\d]*(\.[\d]+)?)\%((,\s*)([\d]*(\.[\d]+)?))?\)$/i,o=function(){function e(e){this.color=e,this.rgb={r:0,g:0,b:0,a:1},this.hsv={h:0,s:0,v:0,a:1},this.reset()}return e.prototype.reset=function(){this.color&&(this.calcColor=this.parseColor(this.color),this.updateColor())},e.prototype.changeLuminosity=function(e){return e=this.minmax(e,-1,1),this.maskColor(e<0?"#000":"#FFF",Math.abs(e)),this},e.prototype.maskColor=function(e,t){if(void 0===t&&(t=1),this.calcColor){var r=this.calcColor,a=this.parseColor(e),o=this.minmax(t,0,1),i=r.intColor>>16,f=r.intColor>>8&255,s=255&r.intColor;a.alpha&&(this.calcColor.alpha=this.minmax(r.alpha+a.alpha*t,0,1)),this.calcColor.intColor=this.rgbToInt(Math.round(((a.intColor>>16)-i)*o)+i,Math.round(((a.intColor>>8&255)-f)*o)+f,Math.round(((255&a.intColor)-s)*o)+s),this.updateColor()}return this},e.prototype.addColor=function(e){return this.calcColor&&(e.luminosity&&this.changeLuminosity(e.luminosity),e.maskColor&&this.maskColor(e.maskColor,this.minmax(e.maskOpacity||0,0,1)),(e.r||e.g||e.b)&&(e.r&&(this.rgb.r=this.minmax(this.rgb.r+ +e.r,0,255)),e.g&&(this.rgb.g=this.minmax(this.rgb.g+ +e.g,0,255)),e.b&&(this.rgb.b=this.minmax(this.rgb.b+ +e.b,0,255)),this.calcColor.intColor=this.rgbToInt(this.rgb.r,this.rgb.g,this.rgb.b),this.updateColor()),(e.h||e.s||e.v)&&(e.h&&(this.hsv.h=(this.hsv.h+ +e.h+360)%360),e.s&&(this.hsv.s=this.minmax(this.hsv.s+ +e.s,0,100)),e.v&&(this.hsv.v=this.minmax(this.hsv.v+ +e.v,0,100)),this.calcColor.intColor=this.hsvToInt(this.hsv.h,this.hsv.s,this.hsv.v),this.updateColor()),e.alpha&&(this.hsv.a=this.rgb.a=this.calcColor.alpha=this.minmax(this.calcColor.alpha+ +e.alpha,0,1))),this},e.prototype.getRGB=function(){var e=this;return this.calcColor?this.value((function(){return Object.assign({},e.rgb)})):null},e.prototype.getHSV=function(){var e=this;return this.calcColor?this.value((function(){return Object.assign({},e.hsv)})):null},e.prototype.toHEX=function(){var e=this;return this.calcColor?this.value((function(){return"#"+(16777216+e.calcColor.intColor).toString(16).slice(1)+(e.calcColor.alpha<1?(256+Math.round(255*e.calcColor.alpha)).toString(16).slice(1):"")})):null},e.prototype.toHSL=function(){var e=this;return this.calcColor?this.value((function(){return"hsl("+e.hsv.h+", "+e.hsv.s+"%, "+e.hsv.v+"%"+(e.hsv.a<1?", "+e.hsv.a:"")+")"})):null},e.prototype.toRGB=function(){var e=this;return this.calcColor?this.value((function(){return"rgb("+e.rgb.r+", "+e.rgb.g+", "+e.rgb.b+(e.rgb.a<1?", "+e.rgb.a:"")+")"})):null},e.prototype.updateColor=function(){var e=this.calcColor.intColor;this.rgb.r=e>>16,this.rgb.g=e>>8&255,this.rgb.b=255&e,this.rgb.a=this.calcColor.alpha,this.hsv=this.rgb2hsv(this.rgb.r,this.rgb.g,this.rgb.b),this.hsv.a=this.calcColor.alpha},e.prototype.parseColor=function(o){e.colorsName[o]&&(o=e.colorsName[o]);var i,f=String(o).match(t),s=1;if(f){var l=f[4]?f[2]+f[4]:f[2][0]+f[2][0]+f[2][1]+f[2][1]+f[2][2]+f[2][2],n=f[4]?f[5]:f[3]?f[3][1]+f[3][1]:void 0;i=parseInt(l,16),s=void 0!==n?parseInt(n,16)/255:1}if(void 0===i){var h=String(o).match(r);h&&(i=this.rgbToInt(parseInt(h[1],10),parseInt(h[4],10),parseInt(h[7],10)),s=void 0!==h[11]?parseFloat(h[11]):1)}if(void 0===i){var d=String(o).match(a);d&&(i=this.hsvToInt(parseInt(d[1],10),parseInt(d[4],10),parseInt(d[7],10)),s=void 0!==d[11]?parseFloat(d[11]):1)}return{intColor:i,alpha:s}},e.prototype.hsvToInt=function(e,t,r){var a=(t=Math.max(0,t))/100,o=r/100,i=e/360;if(0===t)return this.rgbToInt(256*o,256*o,256*o);var f=o<.5?o*(1+a):o+a-o*a,s=2*o-f,l=this.hue2rgb(s,f,i+1/3),n=this.hue2rgb(s,f,i),h=this.hue2rgb(s,f,i-1/3);return this.rgbToInt(Math.round(255*l),Math.round(255*n),Math.round(255*h))},e.prototype.hue2rgb=function(e,t,r){return r<0?r+=1:r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e},e.prototype.rgb2hsv=function(e,t,r){e/=255,t/=255,r/=255;var a,o,i=Math.max(e,t,r),f=Math.min(e,t,r),s=(i+f)/2;if(i===f)a=0,o=0;else{var l=i-f;switch(o=l/(1-Math.abs(2*s-1)),i){case e:a=(t-r)/l+(t<r?6:0);break;case t:a=(r-e)/l+2;break;case r:a=(e-t)/l+4}}return{h:Math.round(60*a),s:Math.round(100*o),v:Math.round(100*s)}},e.prototype.rgbToInt=function(e,t,r){return 65536*Math.round(e)+256*Math.round(t)+Math.round(r)},e.prototype.minmax=function(e,t,r,a){return void 0===a&&(a=0),Math.min(Math.max(e||a,t),r)},e.prototype.value=function(e){return isNaN(this.calcColor.intColor)?null:e()},e}();o.colorsName={black:"#000000",silver:"#c0c0c0",gray:"#808080",white:"#ffffff",maroon:"#800000",red:"#ff0000",purple:"#800080",fuchsia:"#ff00ff",green:"#008000",lime:"#00ff00",olive:"#808000",yellow:"#ffff00",navy:"#000080",blue:"#0000ff",teal:"#008080",aqua:"#00ffff",orange:"#ffa500",aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",deaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",defuchsia:"#ff00ff",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",oldlace:"#fdf5e6",olivedrab:"#6b8e23",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellowgreen:"#9acd32",rebeccapurple:"#663399"},e.Coloration=o,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=coloration-lib.umd.min.js.map |
# Changelog of coloration-lib | ||
## V0.1.3 (2020-06-02) | ||
### Corrections | ||
- tslint `^2.0.0` | ||
## V0.1.2 (2020-05-04) | ||
@@ -7,3 +13,3 @@ | ||
- fix alpha calculation for `toHEX()` | ||
- fix alpha calculation for `toHEX()` | ||
@@ -10,0 +16,0 @@ ## V0.1.1 (2020-05-02) |
@@ -5,2 +5,2 @@ /** | ||
export * from './public_api'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JhdGlvbi1saWIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb2xvcmF0aW9uLWxpYi8iLCJzb3VyY2VzIjpbImNvbG9yYXRpb24tbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JhdGlvbi1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb2xvcmF0aW9uL3NyYy9jb2xvcmF0aW9uLWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19 |
@@ -361,2 +361,2 @@ // tslint:disable:no-bitwise | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbG9yYXRpb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbG9yYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsNEJBQTRCO0FBRTVCLE1BQU0sT0FBTyxHQUFHO0lBQ1osSUFBSSxFQUFFLDREQUE0RDtJQUNsRSxJQUFJLEVBQUUsaUhBQWlIO0lBQ3ZILElBQUksRUFBRSxxSEFBcUg7Q0FDOUgsQ0FBQztBQW9DRixNQUFNLE9BQU8sVUFBVTtJQWtEbkIsWUFBbUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFIeEIsUUFBRyxHQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3RDLFFBQUcsR0FBUSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUcxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ3hCLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FB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QUMsS0FBSyxDQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUs7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQzlCLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2NBQ2pFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ2pILENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUM5QixHQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FDdkcsQ0FBQyxDQUFDLENB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VUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVM7SUFDMUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztJQUNyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTO0lBQ3JHLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7SUFDbkcsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUztJQUN4RyxRQUFRO0lBQ1IsYUFBYSxFQUFFLFNBQVM7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZVxuXG5jb25zdCBwYXR0ZXJuID0ge1xuICAgIGhleGE6IC9eIz8oKFtcXGRhLWZdezN9KSgoW1xcZGEtZl17M30pKFtcXGRhLWZdezJ9KT98W1xcZGEtZl17MX0pPykkL2ksXG4gICAgcmdiYTogL15yZ2JhP1xcKChbXFxkXSooXFwuW1xcZF0rKT8pKCw/XFxzKnxcXHMrKShbXFxkXSooXFwuW1xcZF0rKT8pKCw/XFxzKnxcXHMrKShbXFxkXSooXFwuW1xcZF0rKT8pKCgsXFxzKikoW1xcZF0qKFxcLltcXGRdKyk/KSk/XFwpJC9pLFxuICAgIGhzdmE6IC9eaHNsYT9cXCgoW1xcZF0qKFxcLltcXGRdKyk/KSgsP1xccyp8XFxzKykoW1xcZF0qKFxcLltcXGRdKyk/KVxcJSgsP1xccyp8XFxzKykoW1xcZF0qKFxcLltcXGRdKyk/KVxcJSgoLFxccyopKFtcXGRdKihcXC5bXFxkXSspPykpP1xcKSQvaVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSR0Ige1xuICAgIC8qKiBSZWQgY29sb3IgdmFsdWUgWzAsMjU1XSAgICovIHI6IG51bWJlcjtcbiAgICAvKiogR3JlZW4gY29sb3IgdmFsdWUgWzAsMjU1XSAqLyBnOiBudW1iZXI7XG4gICAgLyoqIEJsdWUgY29sb3IgdmFsdWUgWzAsMjU1XSAgKi8gYjogbnVtYmVyO1xuICAgIC8qKiBBbHBoYSBjb2xvciB2YWx1ZSBbMCwxXSAgICovIGE/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhTViB7XG4gICAgLyoqIEh1ZSBjb2xvciB2YWx1ZSBbMCwzNjBdICAgICAgICAgICAgICovIGg6IG51bWJlcjtcbiAgICAvKiogU2FsdXJhdGlvbiBjb2xvciB2YWx1ZSBbMCwxMDBdICAgICAgKi8gczogbnVtYmVyO1xuICAgIC8qKiBWYWx1ZS9saWdodG5lc3MgY29sb3IgdmFsdWUgWzAsMTAwXSAqLyB2OiBudW1iZXI7XG4gICAgLyoqIEFscGhhIGNvbG9yIHZhbHVlIFswLDFdICAgICAgICAgICAgICovIGE/OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbG9yRGF0YSB7XG4gICAgLy8gUkdCXG4gICAgLyoqIFJlZCBjb2xvciB2YWx1ZSBbLTI1NiwyNTVdICAgICAgICovIHI/OiBudW1iZXI7XG4gICAgLyoqIEdyZWVuIGNvbG9yIHZhbHVlIFstMjU2LDI1NV0gICAgICovIGc/OiBudW1iZXI7XG4gICAgLyoqIEJsdWUgY29sb3IgdmFsdWUgWy0yNTYsMjU1XSAgICAgICovIGI/OiBudW1iZXI7XG4gICAgLy8gSFNWL0hTTFxuICAgIC8qKiBIdWUgdmFsdWUgWy0zNjAsMzYwXSAgICAgICAgICAgICAqLyBoPzogbnVtYmVyO1xuICAgIC8qKiBTYWx1cmF0aW9uIHZhbHVlIFstMTAwLDEwMF0gICAgICAqLyBzPzogbnVtYmVyO1xuICAgIC8qKiBWYWx1ZS9saWdodG5lc3MgdmFsdWUgWy0xMDAsMTAwXSAqLyB2PzogbnVtYmVyO1xuICAgIC8vIE90aGVyXG4gICAgLyoqIGx1bWlub3NpdHkgdmFsdWUgWy0xLDFdICAgICAgICAgICovIGx1bWlub3NpdHk/OiBudW1iZXI7XG4gICAgLyoqIGNvbG9yIG1hc2sgICAgICAgICAgICAgICAgICAgICAgICovIG1hc2tDb2xvcj86IHN0cmluZztcbiAgICAvKiogY29sb3IgbWFzayBvcGFjaXR5IFswLDFdICAgICAgICAgKi8gbWFza09wYWNpdHk/OiBudW1iZXI7XG4gICAgLy8gYWxwaGFcbiAgICAvKiogY29sb3IgbWFzayBhbHBoYSBbLTEsMV0gICAgICAgICAgKi8gYWxwaGE/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JOdW1iZXIge1xuICAgICAvKiogaW50Y29sb3IgKi8gaW50Q29sb3I6IG51bWJlcjtcbiAgICAgLyoqIEFscGhhIGNvbG9yIHZhbHVlIFswLDFdICovIGFscGhhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvcmF0aW9uIHtcblxuICAgIC8qKlxuICAgICAqIENTUyBjb2xvciBsaXN0XG4gICAgICovXG4gICAgc3RhdGljIGNvbG9yc05hbWU6IGFueSA9IHtcbiAgICAgICAgLy8gQ1NTIDFcbiAgICAgICAgYmxhY2s6ICcjMDAwMDAwJywgc2lsdmVyOiAnI2MwYzBjMCcsIGdyYXk6ICcjODA4MDgwJywgd2hpdGU6ICcjZmZmZmZmJywgbWFyb29uOiAnIzgwMDAwMCcsIHJlZDogJyNmZjAwMDAnLFxuICAgICAgICBwdXJwbGU6ICcjODAwMDgwJywgZnVjaHNpYTogJyNmZjAwZmYnLCBncmVlbjogJyMwMDgwMDAnLCBsaW1lOiAnIzAwZmYwMCcsIG9saXZlOiAnIzgwODAwMCcsIHllbGxvdzogJyNmZmZmMDAnLFxuICAgICAgICBuYXZ5OiAnIzAwMDA4MCcsIGJsdWU6ICcjMDAwMGZmJywgdGVhbDogJyMwMDgwODAnLCBhcXVhOiAnIzAwZmZmZicsXG4gICAgICAgIC8vIENTUyAyIChSZXZpc2lvbiAxKVxuICAgICAgICBvcmFuZ2U6ICcjZmZhNTAwJyxcbiAgICAgICAgLy8gQ1NTIDNcbiAgICAgICAgYWxpY2VibHVlOiAnI2YwZjhmZicsIGFudGlxdWV3aGl0ZTogJyNmYWViZDcnLCBhcXVhbWFyaW5lOiAnIzdmZmZkNCcsIGF6dXJlOiAnI2YwZmZmZicsIGJlaWdlOiAnI2Y1ZjVkYycsXG4gICAgICAgIGJpc3F1ZTogJyNmZmU0YzQnLCBibGFuY2hlZGFsbW9uZDogJyNmZmViY2QnLCBibHVldmlvbGV0OiAnIzhhMmJlMicsIGJyb3duOiAnI2E1MmEyYScsIGJ1cmx5d29vZDogJyNkZWI4ODcnLFxuICAgICAgICBjYWRldGJsdWU6ICcjNWY5ZWEwJywgY2hhcnRyZXVzZTogJyM3ZmZmMDAnLCBjaG9jb2xhdGU6ICcjZDI2OTFlJywgY29yYWw6ICcjZmY3ZjUwJywgY29ybmZsb3dlcmJsdWU6ICcjNjQ5NWVkJyxcbiAgICAgICAgY29ybnNpbGs6ICcjZmZmOGRjJywgY3JpbXNvbjogJyNkYzE0M2MnLCBjeWFuOiAnIzAwZmZmZicsIGRlYXF1YTogJyMwMGZmZmYnLCBkYXJrYmx1ZTogJyMwMDAwOGInLFxuICAgICAgICBkYXJrY3lhbjogJyMwMDhiOGInLCBkYXJrZ29sZGVucm9kOiAnI2I4ODYwYicsIGRhcmtncmF5OiAnI2E5YTlhOScsIGRhcmtncmVlbjogJyMwMDY0MDAnLCBkYXJrZ3JleTogJyNhOWE5YTknLFxuICAgICAgICBkYXJra2hha2k6ICcjYmRiNzZiJywgZGFya21hZ2VudGE6ICcjOGIwMDhiJywgZGFya29saXZlZ3JlZW46ICcjNTU2YjJmJywgZGFya29yYW5nZTogJyNmZjhjMDAnLFxuICAgICAgICBkYXJrb3JjaGlkOiAnIzk5MzJjYycsIGRhcmtyZWQ6ICcjOGIwMDAwJywgZGFya3NhbG1vbjogJyNlOTk2N2EnLCBkYXJrc2VhZ3JlZW46ICcjOGZiYzhmJyxcbiAgICAgICAgZGFya3NsYXRlYmx1ZTogJyM0ODNkOGInLCBkYXJrc2xhdGVncmF5OiAnIzJmNGY0ZicsIGRhcmtzbGF0ZWdyZXk6ICcjMmY0ZjRmJywgZGFya3R1cnF1b2lzZTogJyMwMGNlZDEnLFxuICAgICAgICBkYXJrdmlvbGV0OiAnIzk0MDBkMycsIGRlZXBwaW5rOiAnI2ZmMTQ5MycsIGRlZXBza3libHVlOiAnIzAwYmZmZicsIGRpbWdyYXk6ICcjNjk2OTY5JywgZGltZ3JleTogJyM2OTY5NjknLFxuICAgICAgICBkb2RnZXJibHVlOiAnIzFlOTBmZicsIGZpcmVicmljazogJyNiMjIyMjInLCBmbG9yYWx3aGl0ZTogJyNmZmZhZjAnLCBmb3Jlc3RncmVlbjogJyMyMjhiMjInLFxuICAgICAgICBnYWluc2Jvcm86ICcjZGNkY2RjJywgZ2hvc3R3aGl0ZTogJyNmOGY4ZmYnLCBnb2xkOiAnI2ZmZDcwMCcsIGdvbGRlbnJvZDogJyNkYWE1MjAnLCBncmVlbnllbGxvdzogJyNhZGZmMmYnLFxuICAgICAgICBncmV5OiAnIzgwODA4MCcsIGhvbmV5ZGV3OiAnI2YwZmZmMCcsIGhvdHBpbms6ICcjZmY2OWI0JywgaW5kaWFucmVkOiAnI2NkNWM1YycsIGluZGlnbzogJyM0YjAwODInLFxuICAgICAgICBpdm9yeTogJyNmZmZmZjAnLCBraGFraTogJyNmMGU2OGMnLCBsYXZlbmRlcjogJyNlNmU2ZmEnLCBsYXZlbmRlcmJsdXNoOiAnI2ZmZjBmNScsIGxhd25ncmVlbjogJyM3Y2ZjMDAnLFxuICAgICAgICBsZW1vbmNoaWZmb246ICcjZmZmYWNkJywgbGlnaHRibHVlOiAnI2FkZDhlNicsIGxpZ2h0Y29yYWw6ICcjZjA4MDgwJywgbGlnaHRjeWFuOiAnI2UwZmZmZicsXG4gICAgICAgIGxpZ2h0Z29sZGVucm9keWVsbG93OiAnI2ZhZmFkMicsIGxpZ2h0Z3JheTogJyNkM2QzZDMnLCBsaWdodGdyZWVuOiAnIzkwZWU5MCcsIGxpZ2h0Z3JleTogJyNkM2QzZDMnLFxuICAgICAgICBsaWdodHBpbms6ICcjZmZiNmMxJywgbGlnaHRzYWxtb246ICcjZmZhMDdhJywgbGlnaHRzZWFncmVlbjogJyMyMGIyYWEnLCBsaWdodHNreWJsdWU6ICcjODdjZWZhJyxcbiAgICAgICAgbGlnaHRzbGF0ZWdyYXk6ICcjNzc4ODk5JywgbGlnaHRzbGF0ZWdyZXk6ICcjNzc4ODk5JywgbGlnaHRzdGVlbGJsdWU6ICcjYjBjNGRlJywgbGlnaHR5ZWxsb3c6ICcjZmZmZmUwJyxcbiAgICAgICAgbGltZWdyZWVuOiAnIzMyY2QzMicsIGxpbmVuOiAnI2ZhZjBlNicsIG1hZ2VudGE6ICcjZmYwMGZmJywgZGVmdWNoc2lhOiAnI2ZmMDBmZicsIG1lZGl1bWFxdWFtYXJpbmU6ICcjNjZjZGFhJyxcbiAgICAgICAgbWVkaXVtYmx1ZTogJyMwMDAwY2QnLCBtZWRpdW1vcmNoaWQ6ICcjYmE1NWQzJywgbWVkaXVtcHVycGxlOiAnIzkzNzBkYicsIG1lZGl1bXNlYWdyZWVuOiAnIzNjYjM3MScsXG4gICAgICAgIG1lZGl1bXNsYXRlYmx1ZTogJyM3YjY4ZWUnLCBtZWRpdW1zcHJpbmdncmVlbjogJyMwMGZhOWEnLCBtZWRpdW10dXJxdW9pc2U6ICcjNDhkMWNjJyxcbiAgICAgICAgbWVkaXVtdmlvbGV0cmVkOiAnI2M3MTU4NScsIG1pZG5pZ2h0Ymx1ZTogJyMxOTE5NzAnLCBtaW50Y3JlYW06ICcjZjVmZmZhJywgbWlzdHlyb3NlOiAnI2ZmZTRlMScsXG4gICAgICAgIG1vY2Nhc2luOiAnI2ZmZTRiNScsIG5hdmFqb3doaXRlOiAnI2ZmZGVhZCcsIG9sZGxhY2U6ICcjZmRmNWU2Jywgb2xpdmVkcmFiOiAnIzZiOGUyMycsIG9yYW5nZXJlZDogJyNmZjQ1MDAnLFxuICAgICAgICBvcmNoaWQ6ICcjZGE3MGQ2JywgcGFsZWdvbGRlbnJvZDogJyNlZWU4YWEnLCBwYWxlZ3JlZW46ICcjOThmYjk4JywgcGFsZXR1cnF1b2lzZTogJyNhZmVlZWUnLFxuICAgICAgICBwYWxldmlvbGV0cmVkOiAnI2RiNzA5MycsIHBhcGF5YXdoaXA6ICcjZmZlZmQ1JywgcGVhY2hwdWZmOiAnI2ZmZGFiOScsIHBlcnU6ICcjY2Q4NTNmJywgcGluazogJyNmZmMwY2InLFxuICAgICAgICBwbHVtOiAnI2RkYTBkZCcsIHBvd2RlcmJsdWU6ICcjYjBlMGU2Jywgcm9zeWJyb3duOiAnI2JjOGY4ZicsIHJveWFsYmx1ZTogJyM0MTY5ZTEnLCBzYWRkbGVicm93bjogJyM4YjQ1MTMnLFxuICAgICAgICBzYWxtb246ICcjZmE4MDcyJywgc2FuZHlicm93bjogJyNmNGE0NjAnLCBzZWFncmVlbjogJyMyZThiNTcnLCBzZWFzaGVsbDogJyNmZmY1ZWUnLCBzaWVubmE6ICcjYTA1MjJkJyxcbiAgICAgICAgc2t5Ymx1ZTogJyM4N2NlZWInLCBzbGF0ZWJsdWU6ICcjNmE1YWNkJywgc2xhdGVncmF5OiAnIzcwODA5MCcsIHNsYXRlZ3JleTogJyM3MDgwOTAnLCBzbm93OiAnI2ZmZmFmYScsXG4gICAgICAgIHNwcmluZ2dyZWVuOiAnIzAwZmY3ZicsIHN0ZWVsYmx1ZTogJyM0NjgyYjQnLCB0YW46ICcjZDJiNDhjJywgdGhpc3RsZTogJyNkOGJmZDgnLCB0b21hdG86ICcjZmY2MzQ3JyxcbiAgICAgICAgdHVycXVvaXNlOiAnIzQwZTBkMCcsIHZpb2xldDogJyNlZTgyZWUnLCB3aGVhdDogJyNmNWRlYjMnLCB3aGl0ZXNtb2tlOiAnI2Y1ZjVmNScsIHllbGxvd2dyZWVuOiAnIzlhY2QzMicsXG4gICAgICAgIC8vIENTUyA0XG4gICAgICAgIHJlYmVjY2FwdXJwbGU6ICcjNjYzMzk5J1xuICAgIH07XG5cbiAgICBwcml2YXRlIGNhbGNDb2xvcjogQ29sb3JOdW1iZXI7XG4gICAgcHJpdmF0ZSByZ2I6IFJHQiA9IHsgcjogMCwgZzogMCwgYjogMCwgYTogMSB9O1xuICAgIHByaXZhdGUgaHN2OiBIU1YgPSB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWluaXQgdG8gYmFzZSBjb2xvclxuICAgICAqL1xuICAgIHJlc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5jb2xvcikge1xuICAgICAgICAgICAgdGhpcy5jYWxjQ29sb3IgPSB0aGlzLnBhcnNlQ29sb3IodGhpcy5jb2xvcik7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGFuZ2UgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvclxuICAgICAqIEBwYXJhbSBsdW0gdmFsdWUgYmV0d2VlbiAtMSBhbmQgMVxuICAgICAqIEByZXR1cm5zIENvbG9yYXRpb25cbiAgICAgKi9cbiAgICBjaGFuZ2VMdW1pbm9zaXR5KGx1bTogbnVtYmVyKTogQ29sb3JhdGlvbiB7XG4gICAgICAgIGx1bSA9IHRoaXMubWlubWF4KGx1bSwgLTEsIDEpO1xuICAgICAgICB0aGlzLm1hc2tDb2xvcihsdW0gPCAwID8gJyMwMDAnIDogJyNGRkYnLCBNYXRoLmFicyhsdW0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWRkIGNvbG9yIHdpdGggYSBtYXJrXG4gICAgICogQHBhcmFtIGNvbG9yIGFkZGl0aW9uYWwgY29sb3JcbiAgICAgKiBAcGFyYW0gb3BhY2l0eSB2YWx1ZSBvZiBvcGFjaXR5IGJldHdlZW4gMCBhbmQgMSBmb3IgdGhlIGFkZGl0aW9uYWwgY29sb3JcbiAgICAgKiBAcmV0dXJucyBDb2xvcmF0aW9uXG4gICAgICovXG4gICAgbWFza0NvbG9yKGNvbG9yOiBzdHJpbmcsIG9wYWNpdHk6IG51bWJlciA9IDEpOiBDb2xvcmF0aW9uIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsY0NvbG9yKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlQ29sb3IgPSB0aGlzLmNhbGNDb2xvcjtcbiAgICAgICAgICAgIGNvbnN0IGFkZGl0aW9uYWxDb2xvciA9IHRoaXMucGFyc2VDb2xvcihjb2xvcik7XG5cbiAgICAgICAgICAgIGNvbnN0IGx1bSA9IHRoaXMubWlubWF4KG9wYWNpdHksIDAsIDEpO1xuXG4gICAgICAgICAgICBjb25zdCBSID0gYmFzZUNvbG9yLmludENvbG9yID4+IDE2O1xuICAgICAgICAgICAgY29uc3QgRyA9IGJhc2VDb2xvci5pbnRDb2xvciA+PiA4ICYgMHgwMEZGO1xuICAgICAgICAgICAgY29uc3QgQiA9IGJhc2VDb2xvci5pbnRDb2xvciAmIDB4MDAwMEZGO1xuXG4gICAgICAgICAgICBpZiAoYWRkaXRpb25hbENvbG9yLmFscGhhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjQ29sb3IuYWxwaGEgPSB0aGlzLm1pbm1heChiYXNlQ29sb3IuYWxwaGEgKyBhZGRpdGlvbmFsQ29sb3IuYWxwaGEgKiBvcGFjaXR5LCAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2FsY0NvbG9yLmludENvbG9yID0gdGhpcy5yZ2JUb0ludChcbiAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKCgoYWRkaXRpb25hbENvbG9yLmludENvbG9yID4+IDE2KSAtIFIpICogbHVtKSArIFIsXG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgoKGFkZGl0aW9uYWxDb2xvci5pbnRDb2xvciA+PiA4ICYgMHgwMEZGKSAtIEcpICogbHVtKSArIEcsXG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgoKGFkZGl0aW9uYWxDb2xvci5pbnRDb2xvciAmIDB4MDAwMEZGKSAtIEIpICogbHVtKSArIEJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hhbmdlIGNvbG9yIHdpdGggY29sb3IgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBjb2xvckRhdGEgYWRkaXRpb25uYWwgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm5zIENvbG9yYXRpb25cbiAgICAgKi9cbiAgICBhZGRDb2xvcihjb2xvckRhdGE6IENvbG9yRGF0YSkge1xuICAgICAgICBpZiAodGhpcy5jYWxjQ29sb3IpIHtcbiAgICAgICAgICAgIGlmIChjb2xvckRhdGEubHVtaW5vc2l0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlTHVtaW5vc2l0eShjb2xvckRhdGEubHVtaW5vc2l0eSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb2xvckRhdGEubWFza0NvbG9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrQ29sb3IoY29sb3JEYXRhLm1hc2tDb2xvciwgdGhpcy5taW5tYXgoY29sb3JEYXRhLm1hc2tPcGFjaXR5IHx8IDAsIDAsIDEpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5yIHx8IGNvbG9yRGF0YS5nIHx8IGNvbG9yRGF0YS5iKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmdiLnIgPSB0aGlzLm1pbm1heCh0aGlzLnJnYi5yICsgKCtjb2xvckRhdGEuciksIDAsIDI1NSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb2xvckRhdGEuZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJnYi5nID0gdGhpcy5taW5tYXgodGhpcy5yZ2IuZyArICgrY29sb3JEYXRhLmcpLCAwLCAyNTUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29sb3JEYXRhLmIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZ2IuYiA9IHRoaXMubWlubWF4KHRoaXMucmdiLmIgKyAoK2NvbG9yRGF0YS5iKSwgMCwgMjU1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjQ29sb3IuaW50Q29sb3IgPSB0aGlzLnJnYlRvSW50KHRoaXMucmdiLnIsIHRoaXMucmdiLmcsIHRoaXMucmdiLmIpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sb3IoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5oIHx8IGNvbG9yRGF0YS5zIHx8IGNvbG9yRGF0YS52KSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5oKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaHN2LmggPSAodGhpcy5oc3YuaCArICgrY29sb3JEYXRhLmgpICsgMzYwKSAlIDM2MDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaHN2LnMgPSB0aGlzLm1pbm1heCh0aGlzLmhzdi5zICsgKCtjb2xvckRhdGEucyksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb2xvckRhdGEudikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhzdi52ID0gdGhpcy5taW5tYXgodGhpcy5oc3YudiArICgrY29sb3JEYXRhLnYpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGNDb2xvci5pbnRDb2xvciA9IHRoaXMuaHN2VG9JbnQodGhpcy5oc3YuaCwgdGhpcy5oc3YucywgdGhpcy5oc3Yudik7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb2xvcigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29sb3JEYXRhLmFscGhhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oc3YuYSA9IHRoaXMucmdiLmEgPSB0aGlzLmNhbGNDb2xvci5hbHBoYSA9IHRoaXMubWlubWF4KHRoaXMuY2FsY0NvbG9yLmFscGhhICsgKCtjb2xvckRhdGEuYWxwaGEpLCAwLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSR0IgaW5mb3JtYXRpb25zXG4gICAgICogQHJldHVybnMgUkdCXG4gICAgICovXG4gICAgZ2V0UkdCKCk6IFJHQiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGNDb2xvciA/IHRoaXMudmFsdWU8UkdCPigoKSA9PiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnJnYikpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIU1YgaW5mb3JtYXRpb25zXG4gICAgICogQHJldHVybnMgSFNWXG4gICAgICovXG4gICAgZ2V0SFNWKCk6IEhTViB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGNDb2xvciA/IHRoaXMudmFsdWU8SFNWPigoKSA9PiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmhzdikpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb2xvciBpbiAjSEVYIGZvcm1hdFxuICAgICAqIEByZXR1cm5zIHN0cmluZyBvZiAjSEVYXG4gICAgICovXG4gICAgdG9IRVgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY0NvbG9yID8gdGhpcy52YWx1ZTxzdHJpbmc+KFxuICAgICAgICAgICAgKCkgPT4gJyMnICsgKDB4MTAwMDAwMCArIHRoaXMuY2FsY0NvbG9yLmludENvbG9yKS50b1N0cmluZygxNikuc2xpY2UoMSlcbiAgICAgICAgICAgICAgICArICh0aGlzLmNhbGNDb2xvci5hbHBoYSA8IDEgPyAoMHgxMDAgKyBNYXRoLnJvdW5kKHRoaXMuY2FsY0NvbG9yLmFscGhhICogMjU1KSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpIDogJycpXG4gICAgICAgICkgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbG9yIGluIEhWTCgpIGZvcm1hdFxuICAgICAqIEByZXR1cm5zIHN0cmluZyBvZiBIVkwoSCwgUyUsIFYlKVxuICAgICAqL1xuICAgIHRvSFNMKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGNDb2xvciA/IHRoaXMudmFsdWU8c3RyaW5nPihcbiAgICAgICAgICAgICgpID0+IGBoc2woJHt0aGlzLmhzdi5ofSwgJHt0aGlzLmhzdi5zfSUsICR7dGhpcy5oc3Yudn0lJHt0aGlzLmhzdi5hIDwgMSA/ICcsICcgKyB0aGlzLmhzdi5hIDogJyd9KWBcbiAgICAgICAgKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29sb3IgaW4gUkdCKCkgZm9ybWF0XG4gICAgICogQHJldHVybnMgc3RyaW5nIG9mIFJHQihSLCBHLCBCKVxuICAgICAqL1xuICAgIHRvUkdCKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGNDb2xvciA/IHRoaXMudmFsdWU8c3RyaW5nPihcbiAgICAgICAgICAgICgpID0+IGByZ2IoJHt0aGlzLnJnYi5yfSwgJHt0aGlzLnJnYi5nfSwgJHt0aGlzLnJnYi5ifSR7dGhpcy5yZ2IuYSA8IDEgPyAnLCAnICsgdGhpcy5yZ2IuYSA6ICcnfSlgXG4gICAgICAgICkgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHVwZGF0ZSBjb2xvcnMgZGF0YSA6IFJHQiBhbmQgSFNMXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVDb2xvcigpIHtcbiAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLmNhbGNDb2xvci5pbnRDb2xvcjtcbiAgICAgICAgLy8gdXBkYXRlIFJHQlxuICAgICAgICB0aGlzLnJnYi5yID0gY29sb3IgPj4gMTY7XG4gICAgICAgIHRoaXMucmdiLmcgPSBjb2xvciA+PiA4ICYgMHgwMEZGO1xuICAgICAgICB0aGlzLnJnYi5iID0gY29sb3IgJiAweDAwMDBGRjtcbiAgICAgICAgdGhpcy5yZ2IuYSA9IHRoaXMuY2FsY0NvbG9yLmFscGhhO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBIU0xcbiAgICAgICAgdGhpcy5oc3YgPSB0aGlzLnJnYjJoc3YodGhpcy5yZ2IuciwgdGhpcy5yZ2IuZywgdGhpcy5yZ2IuYik7XG4gICAgICAgIHRoaXMuaHN2LmEgPSB0aGlzLmNhbGNDb2xvci5hbHBoYTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGFuZ2UgY29sb3JcbiAgICAgKiBAcGFyYW0gY29sb3IgcGFyc2UgY29sb3IgOiBuYW1lLCAjSEVYQSwgcmdiYSgpXG4gICAgICogQHJldHVybnMgaW50IGNvbG9yXG4gICAgICovXG4gICAgcHJpdmF0ZSBwYXJzZUNvbG9yKGNvbG9yOiBzdHJpbmcpOiBDb2xvck51bWJlciB7XG5cbiAgICAgICAgLy8gc2kgbmFtZWQgY29sb3JcbiAgICAgICAgaWYgKENvbG9yYXRpb24uY29sb3JzTmFtZVtjb2xvcl0pIHtcbiAgICAgICAgICAgIGNvbG9yID0gQ29sb3JhdGlvbi5jb2xvcnNOYW1lW2NvbG9yXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkYXRlIGhleGEgc3RyaW5nICNSR0IsICNSR0JBLCAjUlJHR0JCLCAjUlJHR0JCQUEgKGlnbm9yZSBhbHBoYSlcbiAgICAgICAgY29uc3QgbWF0Y2hIZXggPSBTdHJpbmcoY29sb3IpLm1hdGNoKHBhdHRlcm4uaGV4YSk7XG4gICAgICAgIGxldCBpbnRDb2xvcjogbnVtYmVyO1xuICAgICAgICBsZXQgYWxwaGEgPSAxO1xuICAgICAgICBpZiAobWF0Y2hIZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhleGFDb2xvciA9IG1hdGNoSGV4WzRdXG4gICAgICAgICAgICAgICAgPyBtYXRjaEhleFsyXSArIG1hdGNoSGV4WzRdXG4gICAgICAgICAgICAgICAgOiBtYXRjaEhleFsyXVswXSArIG1hdGNoSGV4WzJdWzBdICsgbWF0Y2hIZXhbMl1bMV0gKyBtYXRjaEhleFsyXVsxXSArIG1hdGNoSGV4WzJdWzJdICsgbWF0Y2hIZXhbMl1bMl07XG4gICAgICAgICAgICBjb25zdCBoZXhhQWxwaGEgPSBtYXRjaEhleFs0XVxuICAgICAgICAgICAgICAgID8gbWF0Y2hIZXhbNV1cbiAgICAgICAgICAgICAgICA6IChtYXRjaEhleFszXSA/IG1hdGNoSGV4WzNdWzFdICsgbWF0Y2hIZXhbM11bMV0gOiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgaW50Q29sb3IgPSBwYXJzZUludChoZXhhQ29sb3IsIDE2KTtcbiAgICAgICAgICAgIGFscGhhID0gaGV4YUFscGhhICE9PSB1bmRlZmluZWQgPyBwYXJzZUludChoZXhhQWxwaGEsIDE2KSAvIDI1NSA6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW50Q29sb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gdmFsaWRhdGUgcmdiKCkgLyByZ2JhKClcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoUmdiID0gU3RyaW5nKGNvbG9yKS5tYXRjaChwYXR0ZXJuLnJnYmEpO1xuICAgICAgICAgICAgaWYgKG1hdGNoUmdiKSB7XG4gICAgICAgICAgICAgICAgaW50Q29sb3IgPSB0aGlzLnJnYlRvSW50KHBhcnNlSW50KG1hdGNoUmdiWzFdLCAxMCksIHBhcnNlSW50KG1hdGNoUmdiWzRdLCAxMCksIHBhcnNlSW50KG1hdGNoUmdiWzddLCAxMCkpO1xuICAgICAgICAgICAgICAgIGFscGhhID0gbWF0Y2hSZ2JbMTFdICE9PSB1bmRlZmluZWQgPyBwYXJzZUZsb2F0KG1hdGNoUmdiWzExXSkgOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGludENvbG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIGhzdigpIC8gaHN2YSgpXG4gICAgICAgICAgICBjb25zdCBtYXRjaEhzdiA9IFN0cmluZyhjb2xvcikubWF0Y2gocGF0dGVybi5oc3ZhKTtcbiAgICAgICAgICAgIGlmIChtYXRjaEhzdikge1xuICAgICAgICAgICAgICAgIGludENvbG9yID0gdGhpcy5oc3ZUb0ludChwYXJzZUludChtYXRjaEhzdlsxXSwgMTApLCBwYXJzZUludChtYXRjaEhzdls0XSwgMTApLCBwYXJzZUludChtYXRjaEhzdls3XSwgMTApKTtcbiAgICAgICAgICAgICAgICBhbHBoYSA9IG1hdGNoSHN2WzExXSAhPT0gdW5kZWZpbmVkID8gcGFyc2VGbG9hdChtYXRjaEhzdlsxMV0pIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGludENvbG9yLCBhbHBoYSB9O1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydCBIU1YvSFNMIHRvIGludCBSR0JcbiAgICAgKiBAcGFyYW0gaHVlIEh1ZSBbMCwgMzYwXVxuICAgICAqIEBwYXJhbSBzYXR1cmF0aW9uIFNhdHVyYXRpb24gWzAsIDEwMF1cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgWzAsIDEwMF1cbiAgICAgKiBAcmV0dXJucyBpbnQgUkdCXG4gICAgICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMzUzMjExL2hzbC10by1yZ2ItY29sb3ItY29udmVyc2lvblxuICAgICAqL1xuICAgIHByaXZhdGUgaHN2VG9JbnQoaHVlOiBudW1iZXIsIHNhdHVyYXRpb246IG51bWJlciwgdmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHNhdHVyYXRpb24gPSBNYXRoLm1heCgwLCBzYXR1cmF0aW9uKTtcblxuICAgICAgICBjb25zdCBzID0gc2F0dXJhdGlvbiAvIDEwMDtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlIC8gMTAwO1xuICAgICAgICBjb25zdCBoID0gaHVlIC8gMzYwO1xuXG4gICAgICAgIGlmIChzYXR1cmF0aW9uID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZ2JUb0ludCh2ICogMjU2LCB2ICogMjU2LCB2ICogMjU2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHEgPSB2IDwgMC41ID8gdiAqICgxICsgcykgOiB2ICsgcyAtIHYgKiBzO1xuICAgICAgICBjb25zdCBwID0gMiAqIHYgLSBxO1xuICAgICAgICBjb25zdCByID0gdGhpcy5odWUycmdiKHAsIHEsIGggKyAxIC8gMyk7XG4gICAgICAgIGNvbnN0IGcgPSB0aGlzLmh1ZTJyZ2IocCwgcSwgaCk7XG4gICAgICAgIGNvbnN0IGIgPSB0aGlzLmh1ZTJyZ2IocCwgcSwgaCAtIDEgLyAzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZ2JUb0ludChNYXRoLnJvdW5kKHIgKiAyNTUpLCBNYXRoLnJvdW5kKGcgKiAyNTUpLCBNYXRoLnJvdW5kKGIgKiAyNTUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBodWUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0gcCBudW1iZXJcbiAgICAgKiBAcGFyYW0gcSBudW1iZXJcbiAgICAgKiBAcGFyYW0gdCBudW1iZXJcbiAgICAgKiBAcmV0dXJucyBpbnQgY29sb3IgWzAsIDI1NV1cbiAgICAgKi9cbiAgICBwcml2YXRlIGh1ZTJyZ2IocDogbnVtYmVyLCBxOiBudW1iZXIsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICh0IDwgMCkgeyB0ICs9IDE7IH0gZWxzZSBpZiAodCA+IDEpIHsgdCAtPSAxOyB9XG4gICAgICAgIGlmICh0IDwgMSAvIDYpIHsgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7IH1cbiAgICAgICAgaWYgKHQgPCAxIC8gMikgeyByZXR1cm4gcTsgfVxuICAgICAgICBpZiAodCA8IDIgLyAzKSB7IHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjsgfVxuICAgICAgICByZXR1cm4gcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IFJHQiB0byBIU1ZcbiAgICAgKiBAcGFyYW0gciByZWQgWzAsIDI1NV1cbiAgICAgKiBAcGFyYW0gZyBncmVlbiBbMCwgMjU1XVxuICAgICAqIEBwYXJhbSBiIGJsdWUgWzAsIDI1NV1cbiAgICAgKiBAcmV0dXJucyBIU1YgZGF0YVxuICAgICAqIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzkxMTg1MjgvcmdiLXRvLWhzbC1jb252ZXJzaW9uXG4gICAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfYW5kX0hTViNGb3JtYWxfZGVyaXZhdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmdiMmhzdihyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKTogSFNWIHtcblxuICAgICAgICAvLyBjb252ZXJ0IHIsZyxiIFswLDI1NV0gcmFuZ2UgdG8gWzAsMV1cbiAgICAgICAgciA9IHIgLyAyNTU7XG4gICAgICAgIGcgPSBnIC8gMjU1O1xuICAgICAgICBiID0gYiAvIDI1NTtcblxuICAgICAgICAvLyBnZXQgdGhlIG1pbiBhbmQgbWF4IG9mIHIsZyxiXG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcblxuICAgICAgICAvLyBsaWdodG5lc3MgaXMgdGhlIGF2ZXJhZ2Ugb2YgdGhlIGxhcmdlc3QgYW5kIHNtYWxsZXN0IGNvbG9yIGNvbXBvbmVudHNcbiAgICAgICAgY29uc3QgdmFsID0gKG1heCArIG1pbikgLyAyO1xuICAgICAgICBsZXQgaHVlOiBudW1iZXI7XG4gICAgICAgIGxldCBzYXQ6IG51bWJlcjtcblxuICAgICAgICBpZiAobWF4ID09PSBtaW4pIHsgLy8gbm8gc2F0dXJhdGlvblxuICAgICAgICAgICAgaHVlID0gMDtcbiAgICAgICAgICAgIHNhdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjID0gbWF4IC0gbWluOyAvLyBjaHJvbWFcbiAgICAgICAgICAgIC8vIHNhdHVyYXRpb24gaXMgc2ltcGx5IHRoZSBjaHJvbWEgc2NhbGVkIHRvIGZpbGxcbiAgICAgICAgICAgIC8vIHRoZSBpbnRlcnZhbCBbMCwgMV0gZm9yIGV2ZXJ5IGNvbWJpbmF0aW9uIG9mIGh1ZSBhbmQgbGlnaHRuZXNzXG4gICAgICAgICAgICBzYXQgPSBjIC8gKDEgLSBNYXRoLmFicygyICogdmFsIC0gMSkpO1xuICAgICAgICAgICAgc3dpdGNoIChtYXgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIHI6XG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IChnIC0gYikgLyBjICsgKGcgPCBiID8gNiA6IDApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIGc6XG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IChiIC0gcikgLyBjICsgMjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBiOlxuICAgICAgICAgICAgICAgICAgICBodWUgPSAociAtIGcpIC8gYyArIDQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGg6IE1hdGgucm91bmQoaHVlICogNjApLCAgLy8gwrBcbiAgICAgICAgICAgIHM6IE1hdGgucm91bmQoc2F0ICogMTAwKSwgLy8gJVxuICAgICAgICAgICAgdjogTWF0aC5yb3VuZCh2YWwgKiAxMDApICAvLyAlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29udmVydCBSR0IgZGF0YSB0byBpbnQgdmFsdWVcbiAgICAgKiBAcGFyYW0gciByZWQgWzAsIDI1NV1cbiAgICAgKiBAcGFyYW0gZyBncmVlbiBbMCwgMjU1XVxuICAgICAqIEBwYXJhbSBiIGJsdWUgWzAsIDI1NV1cbiAgICAgKiBAcmV0dXJucyBpbnQgdmFsdWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJnYlRvSW50KHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChyKSAqIDB4MTAwMDAgKyBNYXRoLnJvdW5kKGcpICogMHgxMDAgKyBNYXRoLnJvdW5kKGIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGJvdW5kIGEgdmFsdWUgYmV0d2VlbiB0d28gdmFsdWVzXG4gICAgICogQHBhcmFtIHZhbHVlIHZhbHVlXG4gICAgICogQHBhcmFtIG1pbiBtaW4gdmFsdWVcbiAgICAgKiBAcGFyYW0gbWF4IG1heCB2YWx1ZVxuICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgcmVwbGFjZSBhbiBpbnZhbGlkIHZ2YWx1ZVxuICAgICAqIEByZXR1cm5zIHZhbHVlIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgICAgKi9cbiAgICBwcml2YXRlIG1pbm1heCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIGRlZmF1bHRWYWx1ZSA9IDApIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHZhbHVlIHx8IGRlZmF1bHRWYWx1ZSwgbWluKSwgbWF4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0ZXN0IGlzIGludENvbG9yIGlzIHZhbGlkIGZvciByZXR1cm4gYSB2bGF1ZVxuICAgICAqIEBwYXJhbSB2YWx1ZSBjYWxsYmFjayBvZiB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHZhbHVlIG9yIG51bGxcbiAgICAgKi9cbiAgICBwcml2YXRlIHZhbHVlPEw+KHZhbHVlOiAoKSA9PiBMKTogTCB7XG4gICAgICAgIHJldHVybiAhaXNOYU4odGhpcy5jYWxjQ29sb3IuaW50Q29sb3IpID8gdmFsdWUoKSA6IG51bGw7XG4gICAgfVxuXG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbG9yYXRpb24vc3JjL2xpYi9jb2xvcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLDRCQUE0QjtBQUU1QixNQUFNLE9BQU8sR0FBRztJQUNaLElBQUksRUFBRSw0REFBNEQ7SUFDbEUsSUFBSSxFQUFFLGlIQUFpSDtJQUN2SCxJQUFJLEVBQUUscUhBQXFIO0NBQzlILENBQUM7QUFvQ0YsTUFBTSxPQUFPLFVBQVU7SUFrRG5CLFlBQW1CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSHhCLFFBQUcsR0FBUSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxRQUFHLEdBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFHMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENB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M0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELENBQUM7O0FBdllEOztHQUVHO0FBQ0kscUJBQVUsR0FBUTtJQUNyQixRQUFRO0lBQ1IsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTO0lBQ3pHLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztJQUM3RyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUztJQUNsRSxxQkFBcUI7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsUUFBUTtJQUNSLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVM7SUFDeEcsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMzRyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTO0lBQzlHLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxT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LEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTO0lBQzFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7SUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUztJQUNyRyxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQ25HLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVM7SUFDeEcsUUFBUTtJQUNSLGFBQWEsRUFBRSxTQUFTO0NBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2VcblxuY29uc3QgcGF0dGVybiA9IHtcbiAgICBoZXhhOiAvXiM/KChbXFxkYS1mXXszfSkoKFtcXGRhLWZdezN9KShbXFxkYS1mXXsyfSk/fFtcXGRhLWZdezF9KT8pJC9pLFxuICAgIHJnYmE6IC9ecmdiYT9cXCgoW1xcZF0qKFxcLltcXGRdKyk/KSgsP1xccyp8XFxzKykoW1xcZF0qKFxcLltcXGRdKyk/KSgsP1xccyp8XFxzKykoW1xcZF0qKFxcLltcXGRdKyk/KSgoLFxccyopKFtcXGRdKihcXC5bXFxkXSspPykpP1xcKSQvaSxcbiAgICBoc3ZhOiAvXmhzbGE/XFwoKFtcXGRdKihcXC5bXFxkXSspPykoLD9cXHMqfFxccyspKFtcXGRdKihcXC5bXFxkXSspPylcXCUoLD9cXHMqfFxccyspKFtcXGRdKihcXC5bXFxkXSspPylcXCUoKCxcXHMqKShbXFxkXSooXFwuW1xcZF0rKT8pKT9cXCkkL2lcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUkdCIHtcbiAgICAvKiogUmVkIGNvbG9yIHZhbHVlIFswLDI1NV0gICAqLyByOiBudW1iZXI7XG4gICAgLyoqIEdyZWVuIGNvbG9yIHZhbHVlIFswLDI1NV0gKi8gZzogbnVtYmVyO1xuICAgIC8qKiBCbHVlIGNvbG9yIHZhbHVlIFswLDI1NV0gICovIGI6IG51bWJlcjtcbiAgICAvKiogQWxwaGEgY29sb3IgdmFsdWUgWzAsMV0gICAqLyBhPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBIU1Yge1xuICAgIC8qKiBIdWUgY29sb3IgdmFsdWUgWzAsMzYwXSAgICAgICAgICAgICAqLyBoOiBudW1iZXI7XG4gICAgLyoqIFNhbHVyYXRpb24gY29sb3IgdmFsdWUgWzAsMTAwXSAgICAgICovIHM6IG51bWJlcjtcbiAgICAvKiogVmFsdWUvbGlnaHRuZXNzIGNvbG9yIHZhbHVlIFswLDEwMF0gKi8gdjogbnVtYmVyO1xuICAgIC8qKiBBbHBoYSBjb2xvciB2YWx1ZSBbMCwxXSAgICAgICAgICAgICAqLyBhPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xvckRhdGEge1xuICAgIC8vIFJHQlxuICAgIC8qKiBSZWQgY29sb3IgdmFsdWUgWy0yNTYsMjU1XSAgICAgICAqLyByPzogbnVtYmVyO1xuICAgIC8qKiBHcmVlbiBjb2xvciB2YWx1ZSBbLTI1NiwyNTVdICAgICAqLyBnPzogbnVtYmVyO1xuICAgIC8qKiBCbHVlIGNvbG9yIHZhbHVlIFstMjU2LDI1NV0gICAgICAqLyBiPzogbnVtYmVyO1xuICAgIC8vIEhTVi9IU0xcbiAgICAvKiogSHVlIHZhbHVlIFstMzYwLDM2MF0gICAgICAgICAgICAgKi8gaD86IG51bWJlcjtcbiAgICAvKiogU2FsdXJhdGlvbiB2YWx1ZSBbLTEwMCwxMDBdICAgICAgKi8gcz86IG51bWJlcjtcbiAgICAvKiogVmFsdWUvbGlnaHRuZXNzIHZhbHVlIFstMTAwLDEwMF0gKi8gdj86IG51bWJlcjtcbiAgICAvLyBPdGhlclxuICAgIC8qKiBsdW1pbm9zaXR5IHZhbHVlIFstMSwxXSAgICAgICAgICAqLyBsdW1pbm9zaXR5PzogbnVtYmVyO1xuICAgIC8qKiBjb2xvciBtYXNrICAgICAgICAgICAgICAgICAgICAgICAqLyBtYXNrQ29sb3I/OiBzdHJpbmc7XG4gICAgLyoqIGNvbG9yIG1hc2sgb3BhY2l0eSBbMCwxXSAgICAgICAgICovIG1hc2tPcGFjaXR5PzogbnVtYmVyO1xuICAgIC8vIGFscGhhXG4gICAgLyoqIGNvbG9yIG1hc2sgYWxwaGEgWy0xLDFdICAgICAgICAgICovIGFscGhhPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yTnVtYmVyIHtcbiAgICAgLyoqIGludGNvbG9yICovIGludENvbG9yOiBudW1iZXI7XG4gICAgIC8qKiBBbHBoYSBjb2xvciB2YWx1ZSBbMCwxXSAqLyBhbHBoYTogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQ29sb3JhdGlvbiB7XG5cbiAgICAvKipcbiAgICAgKiBDU1MgY29sb3IgbGlzdFxuICAgICAqL1xuICAgIHN0YXRpYyBjb2xvcnNOYW1lOiBhbnkgPSB7XG4gICAgICAgIC8vIENTUyAxXG4gICAgICAgIGJsYWNrOiAnIzAwMDAwMCcsIHNpbHZlcjogJyNjMGMwYzAnLCBncmF5OiAnIzgwODA4MCcsIHdoaXRlOiAnI2ZmZmZmZicsIG1hcm9vbjogJyM4MDAwMDAnLCByZWQ6ICcjZmYwMDAwJyxcbiAgICAgICAgcHVycGxlOiAnIzgwMDA4MCcsIGZ1Y2hzaWE6ICcjZmYwMGZmJywgZ3JlZW46ICcjMDA4MDAwJywgbGltZTogJyMwMGZmMDAnLCBvbGl2ZTogJyM4MDgwMDAnLCB5ZWxsb3c6ICcjZmZmZjAwJyxcbiAgICAgICAgbmF2eTogJyMwMDAwODAnLCBibHVlOiAnIzAwMDBmZicsIHRlYWw6ICcjMDA4MDgwJywgYXF1YTogJyMwMGZmZmYnLFxuICAgICAgICAvLyBDU1MgMiAoUmV2aXNpb24gMSlcbiAgICAgICAgb3JhbmdlOiAnI2ZmYTUwMCcsXG4gICAgICAgIC8vIENTUyAzXG4gICAgICAgIGFsaWNlYmx1ZTogJyNmMGY4ZmYnLCBhbnRpcXVld2hpdGU6ICcjZmFlYmQ3JywgYXF1YW1hcmluZTogJyM3ZmZmZDQnLCBhenVyZTogJyNmMGZmZmYnLCBiZWlnZTogJyNmNWY1ZGMnLFxuICAgICAgICBiaXNxdWU6ICcjZmZlNGM0JywgYmxhbmNoZWRhbG1vbmQ6ICcjZmZlYmNkJywgYmx1ZXZpb2xldDogJyM4YTJiZTInLCBicm93bjogJyNhNTJhMmEnLCBidXJseXdvb2Q6ICcjZGViODg3JyxcbiAgICAgICAgY2FkZXRibHVlOiAnIzVmOWVhMCcsIGNoYXJ0cmV1c2U6ICcjN2ZmZjAwJywgY2hvY29sYXRlOiAnI2QyNjkxZScsIGNvcmFsOiAnI2ZmN2Y1MCcsIGNvcm5mbG93ZXJibHVlOiAnIzY0OTVlZCcsXG4gICAgICAgIGNvcm5zaWxrOiAnI2ZmZjhkYycsIGNyaW1zb246ICcjZGMxNDNjJywgY3lhbjogJyMwMGZmZmYnLCBkZWFxdWE6ICcjMDBmZmZmJywgZGFya2JsdWU6ICcjMDAwMDhiJyxcbiAgICAgICAgZGFya2N5YW46ICcjMDA4YjhiJywgZGFya2dvbGRlbnJvZDogJyNiODg2MGInLCBkYXJrZ3JheTogJyNhOWE5YTknLCBkYXJrZ3JlZW46ICcjMDA2NDAwJywgZGFya2dyZXk6ICcjYTlhOWE5JyxcbiAgICAgICAgZGFya2toYWtpOiAnI2JkYjc2YicsIGRhcmttYWdlbnRhOiAnIzhiMDA4YicsIGRhcmtvbGl2ZWdyZWVuOiAnIzU1NmIyZicsIGRhcmtvcmFuZ2U6ICcjZmY4YzAwJyxcbiAgICAgICAgZGFya29yY2hpZDogJyM5OTMyY2MnLCBkYXJrcmVkOiAnIzhiMDAwMCcsIGRhcmtzYWxtb246ICcjZTk5NjdhJywgZGFya3NlYWdyZWVuOiAnIzhmYmM4ZicsXG4gICAgICAgIGRhcmtzbGF0ZWJsdWU6ICcjNDgzZDhiJywgZGFya3NsYXRlZ3JheTogJyMyZjRmNGYnLCBkYXJrc2xhdGVncmV5OiAnIzJmNGY0ZicsIGRhcmt0dXJxdW9pc2U6ICcjMDBjZWQxJyxcbiAgICAgICAgZGFya3Zpb2xldDogJyM5NDAwZDMnLCBkZWVwcGluazogJyNmZjE0OTMnLCBkZWVwc2t5Ymx1ZTogJyMwMGJmZmYnLCBkaW1ncmF5OiAnIzY5Njk2OScsIGRpbWdyZXk6ICcjNjk2OTY5JyxcbiAgICAgICAgZG9kZ2VyYmx1ZTogJyMxZTkwZmYnLCBmaXJlYnJpY2s6ICcjYjIyMjIyJywgZmxvcmFsd2hpdGU6ICcjZmZmYWYwJywgZm9yZXN0Z3JlZW46ICcjMjI4YjIyJyxcbiAgICAgICAgZ2FpbnNib3JvOiAnI2RjZGNkYycsIGdob3N0d2hpdGU6ICcjZjhmOGZmJywgZ29sZDogJyNmZmQ3MDAnLCBnb2xkZW5yb2Q6ICcjZGFhNTIwJywgZ3JlZW55ZWxsb3c6ICcjYWRmZjJmJyxcbiAgICAgICAgZ3JleTogJyM4MDgwODAnLCBob25leWRldzogJyNmMGZmZjAnLCBob3RwaW5rOiAnI2ZmNjliNCcsIGluZGlhbnJlZDogJyNjZDVjNWMnLCBpbmRpZ286ICcjNGIwMDgyJyxcbiAgICAgICAgaXZvcnk6ICcjZmZmZmYwJywga2hha2k6ICcjZjBlNjhjJywgbGF2ZW5kZXI6ICcjZTZlNmZhJywgbGF2ZW5kZXJibHVzaDogJyNmZmYwZjUnLCBsYXduZ3JlZW46ICcjN2NmYzAwJyxcbiAgICAgICAgbGVtb25jaGlmZm9uOiAnI2ZmZmFjZCcsIGxpZ2h0Ymx1ZTogJyNhZGQ4ZTYnLCBsaWdodGNvcmFsOiAnI2YwODA4MCcsIGxpZ2h0Y3lhbjogJyNlMGZmZmYnLFxuICAgICAgICBsaWdodGdvbGRlbnJvZHllbGxvdzogJyNmYWZhZDInLCBsaWdodGdyYXk6ICcjZDNkM2QzJywgbGlnaHRncmVlbjogJyM5MGVlOTAnLCBsaWdodGdyZXk6ICcjZDNkM2QzJyxcbiAgICAgICAgbGlnaHRwaW5rOiAnI2ZmYjZjMScsIGxpZ2h0c2FsbW9uOiAnI2ZmYTA3YScsIGxpZ2h0c2VhZ3JlZW46ICcjMjBiMmFhJywgbGlnaHRza3libHVlOiAnIzg3Y2VmYScsXG4gICAgICAgIGxpZ2h0c2xhdGVncmF5OiAnIzc3ODg5OScsIGxpZ2h0c2xhdGVncmV5OiAnIzc3ODg5OScsIGxpZ2h0c3RlZWxibHVlOiAnI2IwYzRkZScsIGxpZ2h0eWVsbG93OiAnI2ZmZmZlMCcsXG4gICAgICAgIGxpbWVncmVlbjogJyMzMmNkMzInLCBsaW5lbjogJyNmYWYwZTYnLCBtYWdlbnRhOiAnI2ZmMDBmZicsIGRlZnVjaHNpYTogJyNmZjAwZmYnLCBtZWRpdW1hcXVhbWFyaW5lOiAnIzY2Y2RhYScsXG4gICAgICAgIG1lZGl1bWJsdWU6ICcjMDAwMGNkJywgbWVkaXVtb3JjaGlkOiAnI2JhNTVkMycsIG1lZGl1bXB1cnBsZTogJyM5MzcwZGInLCBtZWRpdW1zZWFncmVlbjogJyMzY2IzNzEnLFxuICAgICAgICBtZWRpdW1zbGF0ZWJsdWU6ICcjN2I2OGVlJywgbWVkaXVtc3ByaW5nZ3JlZW46ICcjMDBmYTlhJywgbWVkaXVtdHVycXVvaXNlOiAnIzQ4ZDFjYycsXG4gICAgICAgIG1lZGl1bXZpb2xldHJlZDogJyNjNzE1ODUnLCBtaWRuaWdodGJsdWU6ICcjMTkxOTcwJywgbWludGNyZWFtOiAnI2Y1ZmZmYScsIG1pc3R5cm9zZTogJyNmZmU0ZTEnLFxuICAgICAgICBtb2NjYXNpbjogJyNmZmU0YjUnLCBuYXZham93aGl0ZTogJyNmZmRlYWQnLCBvbGRsYWNlOiAnI2ZkZjVlNicsIG9saXZlZHJhYjogJyM2YjhlMjMnLCBvcmFuZ2VyZWQ6ICcjZmY0NTAwJyxcbiAgICAgICAgb3JjaGlkOiAnI2RhNzBkNicsIHBhbGVnb2xkZW5yb2Q6ICcjZWVlOGFhJywgcGFsZWdyZWVuOiAnIzk4ZmI5OCcsIHBhbGV0dXJxdW9pc2U6ICcjYWZlZWVlJyxcbiAgICAgICAgcGFsZXZpb2xldHJlZDogJyNkYjcwOTMnLCBwYXBheWF3aGlwOiAnI2ZmZWZkNScsIHBlYWNocHVmZjogJyNmZmRhYjknLCBwZXJ1OiAnI2NkODUzZicsIHBpbms6ICcjZmZjMGNiJyxcbiAgICAgICAgcGx1bTogJyNkZGEwZGQnLCBwb3dkZXJibHVlOiAnI2IwZTBlNicsIHJvc3licm93bjogJyNiYzhmOGYnLCByb3lhbGJsdWU6ICcjNDE2OWUxJywgc2FkZGxlYnJvd246ICcjOGI0NTEzJyxcbiAgICAgICAgc2FsbW9uOiAnI2ZhODA3MicsIHNhbmR5YnJvd246ICcjZjRhNDYwJywgc2VhZ3JlZW46ICcjMmU4YjU3Jywgc2Vhc2hlbGw6ICcjZmZmNWVlJywgc2llbm5hOiAnI2EwNTIyZCcsXG4gICAgICAgIHNreWJsdWU6ICcjODdjZWViJywgc2xhdGVibHVlOiAnIzZhNWFjZCcsIHNsYXRlZ3JheTogJyM3MDgwOTAnLCBzbGF0ZWdyZXk6ICcjNzA4MDkwJywgc25vdzogJyNmZmZhZmEnLFxuICAgICAgICBzcHJpbmdncmVlbjogJyMwMGZmN2YnLCBzdGVlbGJsdWU6ICcjNDY4MmI0JywgdGFuOiAnI2QyYjQ4YycsIHRoaXN0bGU6ICcjZDhiZmQ4JywgdG9tYXRvOiAnI2ZmNjM0NycsXG4gICAgICAgIHR1cnF1b2lzZTogJyM0MGUwZDAnLCB2aW9sZXQ6ICcjZWU4MmVlJywgd2hlYXQ6ICcjZjVkZWIzJywgd2hpdGVzbW9rZTogJyNmNWY1ZjUnLCB5ZWxsb3dncmVlbjogJyM5YWNkMzInLFxuICAgICAgICAvLyBDU1MgNFxuICAgICAgICByZWJlY2NhcHVycGxlOiAnIzY2MzM5OSdcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBjYWxjQ29sb3I6IENvbG9yTnVtYmVyO1xuICAgIHByaXZhdGUgcmdiOiBSR0IgPSB7IHI6IDAsIGc6IDAsIGI6IDAsIGE6IDEgfTtcbiAgICBwcml2YXRlIGhzdjogSFNWID0geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29sb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVpbml0IHRvIGJhc2UgY29sb3JcbiAgICAgKi9cbiAgICByZXNldCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY0NvbG9yID0gdGhpcy5wYXJzZUNvbG9yKHRoaXMuY29sb3IpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDb2xvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hhbmdlIHRoZSBsdW1pbm9zaXR5IG9mIGEgY29sb3JcbiAgICAgKiBAcGFyYW0gbHVtIHZhbHVlIGJldHdlZW4gLTEgYW5kIDFcbiAgICAgKiBAcmV0dXJucyBDb2xvcmF0aW9uXG4gICAgICovXG4gICAgY2hhbmdlTHVtaW5vc2l0eShsdW06IG51bWJlcik6IENvbG9yYXRpb24ge1xuICAgICAgICBsdW0gPSB0aGlzLm1pbm1heChsdW0sIC0xLCAxKTtcbiAgICAgICAgdGhpcy5tYXNrQ29sb3IobHVtIDwgMCA/ICcjMDAwJyA6ICcjRkZGJywgTWF0aC5hYnMobHVtKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZCBjb2xvciB3aXRoIGEgbWFya1xuICAgICAqIEBwYXJhbSBjb2xvciBhZGRpdGlvbmFsIGNvbG9yXG4gICAgICogQHBhcmFtIG9wYWNpdHkgdmFsdWUgb2Ygb3BhY2l0eSBiZXR3ZWVuIDAgYW5kIDEgZm9yIHRoZSBhZGRpdGlvbmFsIGNvbG9yXG4gICAgICogQHJldHVybnMgQ29sb3JhdGlvblxuICAgICAqL1xuICAgIG1hc2tDb2xvcihjb2xvcjogc3RyaW5nLCBvcGFjaXR5OiBudW1iZXIgPSAxKTogQ29sb3JhdGlvbiB7XG4gICAgICAgIGlmICh0aGlzLmNhbGNDb2xvcikge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbG9yID0gdGhpcy5jYWxjQ29sb3I7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsQ29sb3IgPSB0aGlzLnBhcnNlQ29sb3IoY29sb3IpO1xuXG4gICAgICAgICAgICBjb25zdCBsdW0gPSB0aGlzLm1pbm1heChvcGFjaXR5LCAwLCAxKTtcblxuICAgICAgICAgICAgY29uc3QgUiA9IGJhc2VDb2xvci5pbnRDb2xvciA+PiAxNjtcbiAgICAgICAgICAgIGNvbnN0IEcgPSBiYXNlQ29sb3IuaW50Q29sb3IgPj4gOCAmIDB4MDBGRjtcbiAgICAgICAgICAgIGNvbnN0IEIgPSBiYXNlQ29sb3IuaW50Q29sb3IgJiAweDAwMDBGRjtcblxuICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxDb2xvci5hbHBoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY0NvbG9yLmFscGhhID0gdGhpcy5taW5tYXgoYmFzZUNvbG9yLmFscGhhICsgYWRkaXRpb25hbENvbG9yLmFscGhhICogb3BhY2l0eSwgMCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNhbGNDb2xvci5pbnRDb2xvciA9IHRoaXMucmdiVG9JbnQoXG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgoKGFkZGl0aW9uYWxDb2xvci5pbnRDb2xvciA+PiAxNikgLSBSKSAqIGx1bSkgKyBSLFxuICAgICAgICAgICAgICAgIE1hdGgucm91bmQoKChhZGRpdGlvbmFsQ29sb3IuaW50Q29sb3IgPj4gOCAmIDB4MDBGRikgLSBHKSAqIGx1bSkgKyBHLFxuICAgICAgICAgICAgICAgIE1hdGgucm91bmQoKChhZGRpdGlvbmFsQ29sb3IuaW50Q29sb3IgJiAweDAwMDBGRikgLSBCKSAqIGx1bSkgKyBCXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDb2xvcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoYW5nZSBjb2xvciB3aXRoIGNvbG9yIHBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gY29sb3JEYXRhIGFkZGl0aW9ubmFsIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBDb2xvcmF0aW9uXG4gICAgICovXG4gICAgYWRkQ29sb3IoY29sb3JEYXRhOiBDb2xvckRhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsY0NvbG9yKSB7XG4gICAgICAgICAgICBpZiAoY29sb3JEYXRhLmx1bWlub3NpdHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUx1bWlub3NpdHkoY29sb3JEYXRhLmx1bWlub3NpdHkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29sb3JEYXRhLm1hc2tDb2xvcikge1xuICAgICAgICAgICAgICAgIHRoaXMubWFza0NvbG9yKGNvbG9yRGF0YS5tYXNrQ29sb3IsIHRoaXMubWlubWF4KGNvbG9yRGF0YS5tYXNrT3BhY2l0eSB8fCAwLCAwLCAxKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb2xvckRhdGEuciB8fCBjb2xvckRhdGEuZyB8fCBjb2xvckRhdGEuYikge1xuICAgICAgICAgICAgICAgIGlmIChjb2xvckRhdGEucikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJnYi5yID0gdGhpcy5taW5tYXgodGhpcy5yZ2IuciArICgrY29sb3JEYXRhLnIpLCAwLCAyNTUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29sb3JEYXRhLmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZ2IuZyA9IHRoaXMubWlubWF4KHRoaXMucmdiLmcgKyAoK2NvbG9yRGF0YS5nKSwgMCwgMjU1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5iKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmdiLmIgPSB0aGlzLm1pbm1heCh0aGlzLnJnYi5iICsgKCtjb2xvckRhdGEuYiksIDAsIDI1NSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2FsY0NvbG9yLmludENvbG9yID0gdGhpcy5yZ2JUb0ludCh0aGlzLnJnYi5yLCB0aGlzLnJnYi5nLCB0aGlzLnJnYi5iKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbG9yKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb2xvckRhdGEuaCB8fCBjb2xvckRhdGEucyB8fCBjb2xvckRhdGEudikge1xuICAgICAgICAgICAgICAgIGlmIChjb2xvckRhdGEuaCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhzdi5oID0gKHRoaXMuaHN2LmggKyAoK2NvbG9yRGF0YS5oKSArIDM2MCkgJSAzNjA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb2xvckRhdGEucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhzdi5zID0gdGhpcy5taW5tYXgodGhpcy5oc3YucyArICgrY29sb3JEYXRhLnMpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29sb3JEYXRhLnYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oc3YudiA9IHRoaXMubWlubWF4KHRoaXMuaHN2LnYgKyAoK2NvbG9yRGF0YS52KSwgMCwgMTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjQ29sb3IuaW50Q29sb3IgPSB0aGlzLmhzdlRvSW50KHRoaXMuaHN2LmgsIHRoaXMuaHN2LnMsIHRoaXMuaHN2LnYpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sb3IoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbG9yRGF0YS5hbHBoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaHN2LmEgPSB0aGlzLnJnYi5hID0gdGhpcy5jYWxjQ29sb3IuYWxwaGEgPSB0aGlzLm1pbm1heCh0aGlzLmNhbGNDb2xvci5hbHBoYSArICgrY29sb3JEYXRhLmFscGhhKSwgMCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUkdCIGluZm9ybWF0aW9uc1xuICAgICAqIEByZXR1cm5zIFJHQlxuICAgICAqL1xuICAgIGdldFJHQigpOiBSR0Ige1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjQ29sb3IgPyB0aGlzLnZhbHVlPFJHQj4oKCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5yZ2IpKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSFNWIGluZm9ybWF0aW9uc1xuICAgICAqIEByZXR1cm5zIEhTVlxuICAgICAqL1xuICAgIGdldEhTVigpOiBIU1Yge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjQ29sb3IgPyB0aGlzLnZhbHVlPEhTVj4oKCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oc3YpKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29sb3IgaW4gI0hFWCBmb3JtYXRcbiAgICAgKiBAcmV0dXJucyBzdHJpbmcgb2YgI0hFWFxuICAgICAqL1xuICAgIHRvSEVYKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGNDb2xvciA/IHRoaXMudmFsdWU8c3RyaW5nPihcbiAgICAgICAgICAgICgpID0+ICcjJyArICgweDEwMDAwMDAgKyB0aGlzLmNhbGNDb2xvci5pbnRDb2xvcikudG9TdHJpbmcoMTYpLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgKyAodGhpcy5jYWxjQ29sb3IuYWxwaGEgPCAxID8gKDB4MTAwICsgTWF0aC5yb3VuZCh0aGlzLmNhbGNDb2xvci5hbHBoYSAqIDI1NSkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKSA6ICcnKVxuICAgICAgICApIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjb2xvciBpbiBIVkwoKSBmb3JtYXRcbiAgICAgKiBAcmV0dXJucyBzdHJpbmcgb2YgSFZMKEgsIFMlLCBWJSlcbiAgICAgKi9cbiAgICB0b0hTTCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjQ29sb3IgPyB0aGlzLnZhbHVlPHN0cmluZz4oXG4gICAgICAgICAgICAoKSA9PiBgaHNsKCR7dGhpcy5oc3YuaH0sICR7dGhpcy5oc3Yuc30lLCAke3RoaXMuaHN2LnZ9JSR7dGhpcy5oc3YuYSA8IDEgPyAnLCAnICsgdGhpcy5oc3YuYSA6ICcnfSlgXG4gICAgICAgICkgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbG9yIGluIFJHQigpIGZvcm1hdFxuICAgICAqIEByZXR1cm5zIHN0cmluZyBvZiBSR0IoUiwgRywgQilcbiAgICAgKi9cbiAgICB0b1JHQigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjQ29sb3IgPyB0aGlzLnZhbHVlPHN0cmluZz4oXG4gICAgICAgICAgICAoKSA9PiBgcmdiKCR7dGhpcy5yZ2Iucn0sICR7dGhpcy5yZ2IuZ30sICR7dGhpcy5yZ2IuYn0ke3RoaXMucmdiLmEgPCAxID8gJywgJyArIHRoaXMucmdiLmEgOiAnJ30pYFxuICAgICAgICApIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB1cGRhdGUgY29sb3JzIGRhdGEgOiBSR0IgYW5kIEhTTFxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlQ29sb3IoKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gdGhpcy5jYWxjQ29sb3IuaW50Q29sb3I7XG4gICAgICAgIC8vIHVwZGF0ZSBSR0JcbiAgICAgICAgdGhpcy5yZ2IuciA9IGNvbG9yID4+IDE2O1xuICAgICAgICB0aGlzLnJnYi5nID0gY29sb3IgPj4gOCAmIDB4MDBGRjtcbiAgICAgICAgdGhpcy5yZ2IuYiA9IGNvbG9yICYgMHgwMDAwRkY7XG4gICAgICAgIHRoaXMucmdiLmEgPSB0aGlzLmNhbGNDb2xvci5hbHBoYTtcblxuICAgICAgICAvLyB1cGRhdGUgSFNMXG4gICAgICAgIHRoaXMuaHN2ID0gdGhpcy5yZ2IyaHN2KHRoaXMucmdiLnIsIHRoaXMucmdiLmcsIHRoaXMucmdiLmIpO1xuICAgICAgICB0aGlzLmhzdi5hID0gdGhpcy5jYWxjQ29sb3IuYWxwaGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2hhbmdlIGNvbG9yXG4gICAgICogQHBhcmFtIGNvbG9yIHBhcnNlIGNvbG9yIDogbmFtZSwgI0hFWEEsIHJnYmEoKVxuICAgICAqIEByZXR1cm5zIGludCBjb2xvclxuICAgICAqL1xuICAgIHByaXZhdGUgcGFyc2VDb2xvcihjb2xvcjogc3RyaW5nKTogQ29sb3JOdW1iZXIge1xuXG4gICAgICAgIC8vIHNpIG5hbWVkIGNvbG9yXG4gICAgICAgIGlmIChDb2xvcmF0aW9uLmNvbG9yc05hbWVbY29sb3JdKSB7XG4gICAgICAgICAgICBjb2xvciA9IENvbG9yYXRpb24uY29sb3JzTmFtZVtjb2xvcl07XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YWxpZGF0ZSBoZXhhIHN0cmluZyAjUkdCLCAjUkdCQSwgI1JSR0dCQiwgI1JSR0dCQkFBIChpZ25vcmUgYWxwaGEpXG4gICAgICAgIGNvbnN0IG1hdGNoSGV4ID0gU3RyaW5nKGNvbG9yKS5tYXRjaChwYXR0ZXJuLmhleGEpO1xuICAgICAgICBsZXQgaW50Q29sb3I6IG51bWJlcjtcbiAgICAgICAgbGV0IGFscGhhID0gMTtcbiAgICAgICAgaWYgKG1hdGNoSGV4KSB7XG4gICAgICAgICAgICBjb25zdCBoZXhhQ29sb3IgPSBtYXRjaEhleFs0XVxuICAgICAgICAgICAgICAgID8gbWF0Y2hIZXhbMl0gKyBtYXRjaEhleFs0XVxuICAgICAgICAgICAgICAgIDogbWF0Y2hIZXhbMl1bMF0gKyBtYXRjaEhleFsyXVswXSArIG1hdGNoSGV4WzJdWzFdICsgbWF0Y2hIZXhbMl1bMV0gKyBtYXRjaEhleFsyXVsyXSArIG1hdGNoSGV4WzJdWzJdO1xuICAgICAgICAgICAgY29uc3QgaGV4YUFscGhhID0gbWF0Y2hIZXhbNF1cbiAgICAgICAgICAgICAgICA/IG1hdGNoSGV4WzVdXG4gICAgICAgICAgICAgICAgOiAobWF0Y2hIZXhbM10gPyBtYXRjaEhleFszXVsxXSArIG1hdGNoSGV4WzNdWzFdIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGludENvbG9yID0gcGFyc2VJbnQoaGV4YUNvbG9yLCAxNik7XG4gICAgICAgICAgICBhbHBoYSA9IGhleGFBbHBoYSAhPT0gdW5kZWZpbmVkID8gcGFyc2VJbnQoaGV4YUFscGhhLCAxNikgLyAyNTUgOiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGludENvbG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlIHJnYigpIC8gcmdiYSgpXG4gICAgICAgICAgICBjb25zdCBtYXRjaFJnYiA9IFN0cmluZyhjb2xvcikubWF0Y2gocGF0dGVybi5yZ2JhKTtcbiAgICAgICAgICAgIGlmIChtYXRjaFJnYikge1xuICAgICAgICAgICAgICAgIGludENvbG9yID0gdGhpcy5yZ2JUb0ludChwYXJzZUludChtYXRjaFJnYlsxXSwgMTApLCBwYXJzZUludChtYXRjaFJnYls0XSwgMTApLCBwYXJzZUludChtYXRjaFJnYls3XSwgMTApKTtcbiAgICAgICAgICAgICAgICBhbHBoYSA9IG1hdGNoUmdiWzExXSAhPT0gdW5kZWZpbmVkID8gcGFyc2VGbG9hdChtYXRjaFJnYlsxMV0pIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnRDb2xvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyB2YWxpZGF0ZSBoc3YoKSAvIGhzdmEoKVxuICAgICAgICAgICAgY29uc3QgbWF0Y2hIc3YgPSBTdHJpbmcoY29sb3IpLm1hdGNoKHBhdHRlcm4uaHN2YSk7XG4gICAgICAgICAgICBpZiAobWF0Y2hIc3YpIHtcbiAgICAgICAgICAgICAgICBpbnRDb2xvciA9IHRoaXMuaHN2VG9JbnQocGFyc2VJbnQobWF0Y2hIc3ZbMV0sIDEwKSwgcGFyc2VJbnQobWF0Y2hIc3ZbNF0sIDEwKSwgcGFyc2VJbnQobWF0Y2hIc3ZbN10sIDEwKSk7XG4gICAgICAgICAgICAgICAgYWxwaGEgPSBtYXRjaEhzdlsxMV0gIT09IHVuZGVmaW5lZCA/IHBhcnNlRmxvYXQobWF0Y2hIc3ZbMTFdKSA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBpbnRDb2xvciwgYWxwaGEgfTtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgSFNWL0hTTCB0byBpbnQgUkdCXG4gICAgICogQHBhcmFtIGh1ZSBIdWUgWzAsIDM2MF1cbiAgICAgKiBAcGFyYW0gc2F0dXJhdGlvbiBTYXR1cmF0aW9uIFswLCAxMDBdXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIFswLCAxMDBdXG4gICAgICogQHJldHVybnMgaW50IFJHQlxuICAgICAqIEBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjM1MzIxMS9oc2wtdG8tcmdiLWNvbG9yLWNvbnZlcnNpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIGhzdlRvSW50KGh1ZTogbnVtYmVyLCBzYXR1cmF0aW9uOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBzYXR1cmF0aW9uID0gTWF0aC5tYXgoMCwgc2F0dXJhdGlvbik7XG5cbiAgICAgICAgY29uc3QgcyA9IHNhdHVyYXRpb24gLyAxMDA7XG4gICAgICAgIGNvbnN0IHYgPSB2YWx1ZSAvIDEwMDtcbiAgICAgICAgY29uc3QgaCA9IGh1ZSAvIDM2MDtcblxuICAgICAgICBpZiAoc2F0dXJhdGlvbiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmdiVG9JbnQodiAqIDI1NiwgdiAqIDI1NiwgdiAqIDI1Nik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxID0gdiA8IDAuNSA/IHYgKiAoMSArIHMpIDogdiArIHMgLSB2ICogcztcbiAgICAgICAgY29uc3QgcCA9IDIgKiB2IC0gcTtcbiAgICAgICAgY29uc3QgciA9IHRoaXMuaHVlMnJnYihwLCBxLCBoICsgMSAvIDMpO1xuICAgICAgICBjb25zdCBnID0gdGhpcy5odWUycmdiKHAsIHEsIGgpO1xuICAgICAgICBjb25zdCBiID0gdGhpcy5odWUycmdiKHAsIHEsIGggLSAxIC8gMyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmdiVG9JbnQoTWF0aC5yb3VuZChyICogMjU1KSwgTWF0aC5yb3VuZChnICogMjU1KSwgTWF0aC5yb3VuZChiICogMjU1KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaHVlIGNvbG9yIGNhbGN1bGF0aW9uXG4gICAgICogQHBhcmFtIHAgbnVtYmVyXG4gICAgICogQHBhcmFtIHEgbnVtYmVyXG4gICAgICogQHBhcmFtIHQgbnVtYmVyXG4gICAgICogQHJldHVybnMgaW50IGNvbG9yIFswLCAyNTVdXG4gICAgICovXG4gICAgcHJpdmF0ZSBodWUycmdiKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodCA8IDApIHsgdCArPSAxOyB9IGVsc2UgaWYgKHQgPiAxKSB7IHQgLT0gMTsgfVxuICAgICAgICBpZiAodCA8IDEgLyA2KSB7IHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0OyB9XG4gICAgICAgIGlmICh0IDwgMSAvIDIpIHsgcmV0dXJuIHE7IH1cbiAgICAgICAgaWYgKHQgPCAyIC8gMykgeyByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7IH1cbiAgICAgICAgcmV0dXJuIHA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBSR0IgdG8gSFNWXG4gICAgICogQHBhcmFtIHIgcmVkIFswLCAyNTVdXG4gICAgICogQHBhcmFtIGcgZ3JlZW4gWzAsIDI1NV1cbiAgICAgKiBAcGFyYW0gYiBibHVlIFswLCAyNTVdXG4gICAgICogQHJldHVybnMgSFNWIGRhdGFcbiAgICAgKiBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM5MTE4NTI4L3JnYi10by1oc2wtY29udmVyc2lvblxuICAgICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFNMX2FuZF9IU1YjRm9ybWFsX2Rlcml2YXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJnYjJoc3YocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcik6IEhTViB7XG5cbiAgICAgICAgLy8gY29udmVydCByLGcsYiBbMCwyNTVdIHJhbmdlIHRvIFswLDFdXG4gICAgICAgIHIgPSByIC8gMjU1O1xuICAgICAgICBnID0gZyAvIDI1NTtcbiAgICAgICAgYiA9IGIgLyAyNTU7XG5cbiAgICAgICAgLy8gZ2V0IHRoZSBtaW4gYW5kIG1heCBvZiByLGcsYlxuICAgICAgICBjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgICAgICAgY29uc3QgbWluID0gTWF0aC5taW4ociwgZywgYik7XG5cbiAgICAgICAgLy8gbGlnaHRuZXNzIGlzIHRoZSBhdmVyYWdlIG9mIHRoZSBsYXJnZXN0IGFuZCBzbWFsbGVzdCBjb2xvciBjb21wb25lbnRzXG4gICAgICAgIGNvbnN0IHZhbCA9IChtYXggKyBtaW4pIC8gMjtcbiAgICAgICAgbGV0IGh1ZTogbnVtYmVyO1xuICAgICAgICBsZXQgc2F0OiBudW1iZXI7XG5cbiAgICAgICAgaWYgKG1heCA9PT0gbWluKSB7IC8vIG5vIHNhdHVyYXRpb25cbiAgICAgICAgICAgIGh1ZSA9IDA7XG4gICAgICAgICAgICBzYXQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYyA9IG1heCAtIG1pbjsgLy8gY2hyb21hXG4gICAgICAgICAgICAvLyBzYXR1cmF0aW9uIGlzIHNpbXBseSB0aGUgY2hyb21hIHNjYWxlZCB0byBmaWxsXG4gICAgICAgICAgICAvLyB0aGUgaW50ZXJ2YWwgWzAsIDFdIGZvciBldmVyeSBjb21iaW5hdGlvbiBvZiBodWUgYW5kIGxpZ2h0bmVzc1xuICAgICAgICAgICAgc2F0ID0gYyAvICgxIC0gTWF0aC5hYnMoMiAqIHZhbCAtIDEpKTtcbiAgICAgICAgICAgIHN3aXRjaCAobWF4KSB7XG4gICAgICAgICAgICAgICAgY2FzZSByOlxuICAgICAgICAgICAgICAgICAgICBodWUgPSAoZyAtIGIpIC8gYyArIChnIDwgYiA/IDYgOiAwKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBnOlxuICAgICAgICAgICAgICAgICAgICBodWUgPSAoYiAtIHIpIC8gYyArIDI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgYjpcbiAgICAgICAgICAgICAgICAgICAgaHVlID0gKHIgLSBnKSAvIGMgKyA0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoOiBNYXRoLnJvdW5kKGh1ZSAqIDYwKSwgIC8vIMKwXG4gICAgICAgICAgICBzOiBNYXRoLnJvdW5kKHNhdCAqIDEwMCksIC8vICVcbiAgICAgICAgICAgIHY6IE1hdGgucm91bmQodmFsICogMTAwKSAgLy8gJVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbnZlcnQgUkdCIGRhdGEgdG8gaW50IHZhbHVlXG4gICAgICogQHBhcmFtIHIgcmVkIFswLCAyNTVdXG4gICAgICogQHBhcmFtIGcgZ3JlZW4gWzAsIDI1NV1cbiAgICAgKiBAcGFyYW0gYiBibHVlIFswLCAyNTVdXG4gICAgICogQHJldHVybnMgaW50IHZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZ2JUb0ludChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQocikgKiAweDEwMDAwICsgTWF0aC5yb3VuZChnKSAqIDB4MTAwICsgTWF0aC5yb3VuZChiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBib3VuZCBhIHZhbHVlIGJldHdlZW4gdHdvIHZhbHVlc1xuICAgICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZVxuICAgICAqIEBwYXJhbSBtaW4gbWluIHZhbHVlXG4gICAgICogQHBhcmFtIG1heCBtYXggdmFsdWVcbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHJlcGxhY2UgYW4gaW52YWxpZCB2dmFsdWVcbiAgICAgKiBAcmV0dXJucyB2YWx1ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4XG4gICAgICovXG4gICAgcHJpdmF0ZSBtaW5tYXgodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyLCBkZWZhdWx0VmFsdWUgPSAwKSB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCh2YWx1ZSB8fCBkZWZhdWx0VmFsdWUsIG1pbiksIG1heCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGVzdCBpcyBpbnRDb2xvciBpcyB2YWxpZCBmb3IgcmV0dXJuIGEgdmxhdWVcbiAgICAgKiBAcGFyYW0gdmFsdWUgY2FsbGJhY2sgb2YgdmFsdWVcbiAgICAgKiBAcmV0dXJucyB2YWx1ZSBvciBudWxsXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWx1ZTxMPih2YWx1ZTogKCkgPT4gTCk6IEwge1xuICAgICAgICByZXR1cm4gIWlzTmFOKHRoaXMuY2FsY0NvbG9yLmludENvbG9yKSA/IHZhbHVlKCkgOiBudWxsO1xuICAgIH1cblxufVxuIl19 |
@@ -5,2 +5,2 @@ /* | ||
export * from './lib/coloration'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbG9yYXRpb24tbGliLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvbG9yYXRpb25cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xvcmF0aW9uJztcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbG9yYXRpb24vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb2xvcmF0aW9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sb3JhdGlvbic7XG4iXX0= |
{ | ||
"name": "coloration-lib", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"license": "MIT", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://git.ikilote.net/angular/coloration" | ||
"url": "https://git.ikilote.net/typescript/coloration" | ||
}, | ||
"peerDependencies": { | ||
"tslib": "^1.10.0" | ||
"peerDependencies": {}, | ||
"dependencies": { | ||
"tslib": "^2.0.0" | ||
}, | ||
"publishConfig": { | ||
"registry": "https://registry.npmjs.org" | ||
}, | ||
"bugs": { | ||
"url": "https://git.ikilote.net/typescript/coloration/-/issues" | ||
}, | ||
"homepage": "https://git.ikilote.net/typescript/coloration", | ||
"keywords": [ | ||
"typescript", | ||
"color" | ||
], | ||
"main": "bundles/coloration-lib.umd.js", | ||
"module": "fesm5/coloration-lib.js", | ||
"module": "fesm2015/coloration-lib.js", | ||
"es2015": "fesm2015/coloration-lib.js", | ||
"esm5": "esm5/coloration-lib.js", | ||
"esm2015": "esm2015/coloration-lib.js", | ||
"fesm5": "fesm5/coloration-lib.js", | ||
"fesm2015": "fesm2015/coloration-lib.js", | ||
@@ -19,0 +29,0 @@ "typings": "coloration-lib.d.ts", |
@@ -57,4 +57,3 @@ [![npm version](https://badge.fury.io/js/coloration-lib.svg)](https://badge.fury.io/js/coloration-lib) [![Downloads](https://img.shields.io/npm/dm/coloration-lib.svg)](https://www.npmjs.com/package/coloration-lib) [![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](https://git.ikilote.net/angular/coloration/raw/master/LICENSE) | ||
``` | ||
ng build coloration --prod | ||
cp *.md dist/coloration | ||
npm run build:lib | ||
cd dist/coloration | ||
@@ -61,0 +60,0 @@ npm publish |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
1
1
201877
16
1302
71
+ Addedtslib@^2.0.0
+ Addedtslib@2.8.1(transitive)
- Removedtslib@1.14.1(transitive)