New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

boundless-button

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boundless-button - npm Package Compare versions

Comparing version 1.0.0-beta.4 to 1.0.0-beta.5

4

build/index.js

@@ -1,2 +0,2 @@

module.exports=function(e){function n(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r={};return n.m=e,n.c=r,n.i=function(e){return e},n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=5)}([function(e,n,r){"use strict";n.a=function(e){return"function"==typeof e}},function(e,n,r){"use strict";function t(){}n.a=t},function(e,n,r){"use strict";function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(r,t){return n.indexOf(t)===-1&&(r[t]=e[t]),r},{})}n.a=t},function(e,n){e.exports=require("react")},function(e,n){e.exports=require("classnames")},function(e,n,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var t=r(3),o=r.n(t),s=r(4),p=r.n(s),i=r(0),u=r(1),c=r(2),a=function(e){function n(){var e,t,o,s;babelHelpers.classCallCheck(this,n);for(var p=arguments.length,u=Array(p),c=0;c<p;c++)u[c]=arguments[c];return t=o=babelHelpers.possibleConstructorReturn(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(u))),o.handleClick=function(e){o.props.disabled||(o.toggleState(e),r.i(i.a)(o.props.onClick)&&o.props.onClick(e))},o.handleKeyDown=function(e){if(!o.props.disabled){switch(e.key){case"Enter":case"Space":e.preventDefault(),o.toggleState(e)}r.i(i.a)(o.props.onKeyDown)&&o.props.onKeyDown(e)}},s=t,babelHelpers.possibleConstructorReturn(o,s)}return babelHelpers.inherits(n,e),babelHelpers.createClass(n,[{key:"toggleState",value:function(e){this.props[this.props.pressed?"onUnpressed":"onPressed"](e)}},{key:"render",value:function(){return o.a.createElement(this.props.component,babelHelpers.extends({},r.i(c.a)(this.props,n.internalKeys),{ref:"button",className:p()("b-button",this.props.className,{"b-button-pressable":"undefined"!=typeof this.props.pressed,"b-button-pressed":this.props.pressed}),"aria-pressed":this.props.pressed,onKeyDown:this.handleKeyDown,onClick:this.handleClick}),this.props.children)}}]),n}(o.a.PureComponent);a.propTypes={children:t.PropTypes.node,component:t.PropTypes.oneOfType([t.PropTypes.string,t.PropTypes.func]),onClick:t.PropTypes.func,onPressed:t.PropTypes.func,onUnpressed:t.PropTypes.func,pressed:t.PropTypes.bool},a.defaultProps={children:null,component:"button",onClick:u.a,onPressed:u.a,onUnpressed:u.a,pressed:void 0},a.internalKeys=Object.keys(a.defaultProps),n.default=a}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDlmYWU2ZmNjZDY4NTRlZDEzOTg2Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1pcy1mdW5jdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtbm9vcC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwid2VicGFjazovLy9leHRlcm5hbCB7XCJhbWRcIjpcInJlYWN0XCIsXCJjb21tb25qczJcIjpcInJlYWN0XCIsXCJyb290XCI6XCJSZWFjdFwifSIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJjbGFzc25hbWVzXCJ9Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy1idXR0b24vaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsInRlc3QiLCJub29wIiwib21pdEtleXNGcm9tU291cmNlT2JqZWN0Iiwic291cmNlIiwib21pdHRlZEtleXMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJrZXlzIiwicmVkdWNlIiwiaGFzaCIsImtleSIsImluZGV4T2YiLCJyZXF1aXJlIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX2lzX2Z1bmN0aW9uX2luZGV4X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyIsIkJ1dHRvbiIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwiYmFiZWxIZWxwZXJzIiwiY2xhc3NDYWxsQ2hlY2siLCJ0aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsImhhbmRsZUNsaWNrIiwiZXZlbnQiLCJwcm9wcyIsImRpc2FibGVkIiwidG9nZ2xlU3RhdGUiLCJvbkNsaWNrIiwiaGFuZGxlS2V5RG93biIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwiaW5oZXJpdHMiLCJjcmVhdGVDbGFzcyIsInByZXNzZWQiLCJhIiwiY3JlYXRlRWxlbWVudCIsImNvbXBvbmVudCIsImV4dGVuZHMiLCJpbnRlcm5hbEtleXMiLCJyZWYiLCJjbGFzc05hbWUiLCJiLWJ1dHRvbi1wcmVzc2FibGUiLCJiLWJ1dHRvbi1wcmVzc2VkIiwiYXJpYS1wcmVzc2VkIiwiY2hpbGRyZW4iLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwibm9kZSIsIm9uZU9mVHlwZSIsInN0cmluZyIsImZ1bmMiLCJvblByZXNzZWQiLCJvblVucHJlc3NlZCIsImJvb2wiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiJBQUFBQSxPQUFPQyxRQUNFLFNBQVVDLEdDR25CLFFBQUFDLEdBQUFDLEdBR0EsR0FBQUMsRUFBQUQsR0FDQSxNQUFBQyxHQUFBRCxHQUFBSCxPQUdBLElBQUFELEdBQUFLLEVBQUFELElBQ0FFLEVBQUFGLEVBQ0FHLEdBQUEsRUFDQU4sV0FVQSxPQU5BQyxHQUFBRSxHQUFBSSxLQUFBUixFQUFBQyxRQUFBRCxJQUFBQyxRQUFBRSxHQUdBSCxFQUFBTyxHQUFBLEVBR0FQLEVBQUFDLFFBdkJBLEdBQUFJLEtBK0RBLE9BbkNBRixHQUFBTSxFQUFBUCxFQUdBQyxFQUFBTyxFQUFBTCxFQUdBRixFQUFBRyxFQUFBLFNBQUFLLEdBQTJDLE1BQUFBLElBRzNDUixFQUFBUyxFQUFBLFNBQUFYLEVBQUFZLEVBQUFDLEdBQ0FYLEVBQUFZLEVBQUFkLEVBQUFZLElBQ0FHLE9BQUFDLGVBQUFoQixFQUFBWSxHQUNBSyxjQUFBLEVBQ0FDLFlBQUEsRUFDQUMsSUFBQU4sS0FNQVgsRUFBQWtCLEVBQUEsU0FBQXJCLEdBQ0EsR0FBQWMsR0FBQWQsS0FBQXNCLFdBQ0EsV0FBMkIsTUFBQXRCLEdBQUEsU0FDM0IsV0FBaUMsTUFBQUEsR0FFakMsT0FEQUcsR0FBQVMsRUFBQUUsRUFBQSxJQUFBQSxHQUNBQSxHQUlBWCxFQUFBWSxFQUFBLFNBQUFRLEVBQUFDLEdBQXNELE1BQUFSLFFBQUFTLFVBQUFDLGVBQUFsQixLQUFBZSxFQUFBQyxJQUd0RHJCLEVBQUF3QixFQUFBLEdBR0F4QixJQUFBeUIsRUFBQSxLRE9NLFNBQVU1QixFQUFRNkIsRUFBcUIxQixHQUU3QyxZRXpFQTBCLEdBQUEsRUFBZSxTQUFDQyxHQUFELE1BQTBCLGtCQUFUQSxLRjhFMUIsU0FBVTlCLEVBQVE2QixFQUFxQjFCLEdBRTdDLFlHN0VlLFNBQVM0QixNSDhFU0YsRUFBdUIsRUFBSUUs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QUFVa0QsS0FLcEJYLFVBQVd2QyxFQUFBLFVBQVVtRCxXQUNqQm5ELEVBQUEsVUFBVW9ELE9BQ1ZwRCxFQUFBLFVBQVVxRCxPQUdkdkIsUUFBUzlCLEVBQUEsVUFBVXFELEtBS25CQyxVQUFXdEQsRUFBQSxVQUFVcUQsS0FLckJFLFlBQWF2RCxFQUFBLFVBQVVxRCxLQUt2QmpCLFFBQVNwQyxFQUFBLFVBQVV3RCxNQTNCTmpELEVBOEJWa0QsY0FDSFYsU0FBVSxLQUNWUixVQUFXLFNBQ1hULFFBQVN6QixFQUFBLEVBQ1RpRCxVQUFXakQsRUFBQSxFQUNYa0QsWUFBYWxELEVBQUEsRUFDYitCLFFBQVMzQyxRQXBDSWMsRUF1Q1ZrQyxhQUFlckUsT0FBT3NCLEtBQUthLEVBQU9rRCxjUDZDc3dGeEUsRUFBNkIsUU9wRjN6RnNCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPVxuLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aTogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuLyoqKioqKi8gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRnZXQ6IGdldHRlclxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDUpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBmdW5jdGlvbih0ZXN0KXtyZXR1cm4gdHlwZW9mIHRlc3Q9PT0nZnVuY3Rpb24nO307XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gbm9vcDtcbmZ1bmN0aW9uIG5vb3AoKXt9XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gb21pdEtleXNGcm9tU291cmNlT2JqZWN0O1xuZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSl7dmFyIG9taXR0ZWRLZXlzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTpbXTtyZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCxrZXkpe2lmKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KT09PS0xKXtoYXNoW2tleV09c291cmNlW2tleV07fXJldHVybiBoYXNoO30se30pO31cblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuLyoqKi8gfSksXG4vKiA1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fd2VicGFja19leHBvcnRzX18sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG52YXIgQnV0dG9uPWZ1bmN0aW9uKF9SZWFjdCRQdXJlQ29tcG9uZW50KXtiYWJlbEhlbHBlcnMuaW5oZXJpdHMoQnV0dG9uLF9SZWFjdCRQdXJlQ29tcG9uZW50KTtmdW5jdGlvbiBCdXR0b24oKXt2YXIgX3JlZjt2YXIgX3RlbXAsX3RoaXMsX3JldDtiYWJlbEhlbHBlcnMuY2xhc3NDYWxsQ2hlY2sodGhpcyxCdXR0b24pO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPWJhYmVsSGVscGVycy5wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9QnV0dG9uLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKEJ1dHRvbikpLmNhbGwuYXBwbHkoX3JlZixbdGhpc10uY29uY2F0KGFyZ3MpKSksX3RoaXMpLF90aGlzLmhhbmRsZUNsaWNrPWZ1bmN0aW9uKGV2ZW50KXtpZihfdGhpcy5wcm9wcy5kaXNhYmxlZCl7cmV0dXJuO31fdGhpcy50b2dnbGVTdGF0ZShldmVudCk7aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX2lzX2Z1bmN0aW9uX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKF90aGlzLnByb3BzLm9uQ2xpY2spKXtfdGhpcy5wcm9wcy5vbkNsaWNrKGV2ZW50KTt9fSxfdGhpcy5oYW5kbGVLZXlEb3duPWZ1bmN0aW9uKGV2ZW50KXtpZihfdGhpcy5wcm9wcy5kaXNhYmxlZCl7cmV0dXJuO31zd2l0Y2goZXZlbnQua2V5KXtjYXNlJ0VudGVyJzpjYXNlJ1NwYWNlJzpldmVudC5wcmV2ZW50RGVmYXVsdCgpO190aGlzLnRvZ2dsZVN0YXRlKGV2ZW50KTt9aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX2lzX2Z1bmN0aW9uX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKF90aGlzLnByb3BzLm9uS2V5RG93bikpe190aGlzLnByb3BzLm9uS2V5RG93bihldmVudCk7fX0sX3RlbXApLGJhYmVsSGVscGVycy5wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLF9yZXQpO31iYWJlbEhlbHBlcnMuY3JlYXRlQ2xhc3MoQnV0dG9uLFt7a2V5Oid0b2dnbGVTdGF0ZScsdmFsdWU6ZnVuY3Rpb24gdG9nZ2xlU3RhdGUoZXZlbnQpe3RoaXMucHJvcHNbdGhpcy5wcm9wcy5wcmVzc2VkPydvblVucHJlc3NlZCc6J29uUHJlc3NlZCddKGV2ZW50KTt9fSx7a2V5OidyZW5kZXInLHZhbHVlOmZ1bmN0aW9uIHJlbmRlcigpe3JldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuY3JlYXRlRWxlbWVudCh0aGlzLnByb3BzLmNvbXBvbmVudCxiYWJlbEhlbHBlcnMuZXh0ZW5kcyh7fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKHRoaXMucHJvcHMsQnV0dG9uLmludGVybmFsS2V5cykse3JlZjonYnV0dG9uJyxjbGFzc05hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItYnV0dG9uJyx0aGlzLnByb3BzLmNsYXNzTmFtZSx7J2ItYnV0dG9uLXByZXNzYWJsZSc6dHlwZW9mIHRoaXMucHJvcHMucHJlc3NlZCE9PSd1bmRlZmluZWQnLCdiLWJ1dHRvbi1wcmVzc2VkJzp0aGlzLnByb3BzLnByZXNzZWR9KSwnYXJpYS1wcmVzc2VkJzp0aGlzLnByb3BzLnByZXNzZWQsb25LZXlEb3duOnRoaXMuaGFuZGxlS2V5RG93bixvbkNsaWNrOnRoaXMuaGFuZGxlQ2xpY2t9KSx0aGlzLnByb3BzLmNoaWxkcmVuKTt9fV0pO3JldHVybiBCdXR0b247fShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuUHVyZUNvbXBvbmVudCk7QnV0dG9uLnByb3BUeXBlcz17Y2hpbGRyZW46X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0ubm9kZSxjb21wb25lbnQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0ub25lT2ZUeXBlKFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuY10pLG9uQ2xpY2s6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuYyxvblByZXNzZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuYyxvblVucHJlc3NlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLHByZXNzZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uYm9vbH07QnV0dG9uLmRlZmF1bHRQcm9wcz17Y2hpbGRyZW46bnVsbCxjb21wb25lbnQ6J2J1dHRvbicsb25DbGljazpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10sb25QcmVzc2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSxvblVucHJlc3NlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10scHJlc3NlZDp1bmRlZmluZWR9O0J1dHRvbi5pbnRlcm5hbEtleXM9T2JqZWN0LmtleXMoQnV0dG9uLmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IEJ1dHRvbjtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBpbmRleC5qcyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDUpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDlmYWU2ZmNjZDY4NTRlZDEzOTg2IiwiZXhwb3J0IGRlZmF1bHQgKHRlc3QpID0+IHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLWlzLWZ1bmN0aW9uL2luZGV4LmpzIiwiLyoqXG4gKiBBIGR1bW15IGZ1bmN0aW9uIHdpdGggbm8gc2lkZSBlZmZlY3RzLiBDb21tb25seSB1c2VkIHdoZW4gbW9ja2luZyBpbnRlcmZhY2VzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBub29wKCkge31cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4LmpzIiwiLyoqXG4gKiBSZXR1cm5zIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgc3VwcGxpZWQgb2JqZWN0IHdpdGhvdXQgdGhlIGdpdmVuIGtleXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2UsIG9taXR0ZWRLZXlzID0gW10pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCwga2V5KSB7XG4gICAgICAgIGlmIChvbWl0dGVkS2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICBoYXNoW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYXNoO1xuXG4gICAgfSwge30pO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImFtZFwiOlwicmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcInJvb3RcIjpcIlJlYWN0XCJ9XG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJjbGFzc25hbWVzXCJ9XG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBSZWFjdCwge1Byb3BUeXBlc30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQgaXNGdW5jdGlvbiBmcm9tICcuLi9ib3VuZGxlc3MtdXRpbHMtaXMtZnVuY3Rpb24vaW5kZXgnO1xuaW1wb3J0IG5vb3AgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXgnO1xuaW1wb3J0IG9taXQgZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleCc7XG5cbi8qKlxuIyBCdXR0b25cbl9fQSBjb250cm9sIHdpdGggXCJwcmVzc2VkXCIgc3RhdGUgc3VwcG9ydC5fX1xuXG5CdXR0b24gaGFzIHR3byBtb2RlcyBvZiBvcGVyYXRpb246XG5cbjEuIHN0YXRlbGVzcyAobGlrZSBhIG5vcm1hbCBgPGJ1dHRvbj5gKVxuICAgYGBganN4XG4gICA8QnV0dG9uIG9uUHJlc3NlZD17ZG9Tb21ldGhpbmd9PmZvbzwvQnV0dG9uPlxuICAgYGBgXG5cbiAgID4gTm90ZSB0aGF0IGluc3RlYWQgb2YgYG9uQ2xpY2tgLCBCdXR0b24gdXNlcyBgb25QcmVzc2VkYC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBjb21wb25lbnQgYWxzbyBsaXN0ZW5zIGZvciBrZXlib2FyZCA8a2JkPkVudGVyPC9rYmQ+IGV2ZW50cywgc28gYG9uQ2xpY2tgIG9ubHkgdGVsbHMgaGFsZiB0aGUgc3RvcnkuIFlvdSBjYW4gc3RpbGwgYmluZCB0byB0aGF0IHBhcnRpY3VsYXIgUmVhY3QgZXZlbnQgdGhvdWdoIGlmIHRoZXJlJ3MgYSBuZWVkIHRvIHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBjbGlja3MgYW5kIEVudGVyIHByZXNzZXMuXG5cbjIuIHN0YXRlZnVsIChsaWtlIGEgdG9nZ2xlLCBlLmcuIGJvbGQtbW9kZSBpbiBhIHJpY2ggdGV4dCBlZGl0b3IpXG5cbiAgIFwic3RhdGVmdWxcIiBtb2RlIGlzIHRyaWdnZXJlZCBieSBwYXNzaW5nIGEgYm9vbGVhbiB0byBgcHJlc3NlZGAuIFRoaXMgZW5hYmxlcyB0aGUgYnV0dG9uIHRvIGFjdCBsaWtlIGEgY29udHJvbGxlZCBjb21wb25lbnQuIFRoZSBgb25VbnByZXNzZWRgIGV2ZW50IGNhbGxiYWNrIHdpbGwgYWxzbyBub3cgYmUgZmlyZWQgd2hlbiBhcHByb3ByaWF0ZS5cblxuICAgYGBganN4XG4gICA8QnV0dG9uXG4gICAgICAgcHJlc3NlZD17dHJ1ZX1cbiAgICAgICBvblByZXNzZWQ9e2RvU29tZXRoaW5nfVxuICAgICAgIG9uVW5wcmVzc2VkPXtkb1NvbWV0aGluZ0Vsc2V9PlxuICAgICAgIGZvb1xuICAgPC9CdXR0b24+XG4gICBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnV0dG9uIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgICAgQW55IHZhbGlkIEhUTUwgdGFnIG5hbWUgb3IgYSBSZWFjdCBjb21wb25lbnQgZmFjdG9yeSwgYW55dGhpbmcgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBgUmVhY3QuY3JlYXRlRWxlbWVudGBcbiAgICAgICAgKi9cbiAgICAgICAgY29tcG9uZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgICAgICBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgXSksXG5cbiAgICAgICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNhbGxlZCB3aGVuIHRoZSBlbGVtZW50IGJlY29tZXMgXCJwcmVzc2VkXCIgb3IgdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyIChtb3VzZSBvciBrZXlib2FyZCk7IGJhY2tpbmcgZGF0YSBtdXN0IGJlIHVwZGF0ZWQgdG8gcGVyc2lzdCB0aGUgc3RhdGUgY2hhbmdlOyB0aGlzIGZ1bmN0aW9uIHdpbGwgc3RpbGwgYmUgY2FsbGVkIGlmIGBwcm9wcy5wcmVzc2VkYCBpcyBub3QgcGFzc2VkXG4gICAgICAgICAqL1xuICAgICAgICBvblByZXNzZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjYWxsZWQgd2hlbiB0aGUgZWxlbWVudCBiZWNvbWVzIFwidW5wcmVzc2VkXCI7IGJhY2tpbmcgZGF0YSBtdXN0IGJlIHVwZGF0ZWQgdG8gcGVyc2lzdCB0aGUgc3RhdGUgY2hhbmdlXG4gICAgICAgICAqL1xuICAgICAgICBvblVucHJlc3NlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGVuYWJsZXMgXCJwcmVzc2VkXCIgc3VwcG9ydCBhbmQgYWRkcyB0aGUgYGFyaWEtcHJlc3NlZGAgYXR0cmlidXRlIHRvIHRoZSBgLmItYnV0dG9uYCBub2RlOyBlc3NlbnRpYWxseSBhIFwic3RhdGVmdWxcIiBidXR0b24gKHNlZSB0aGUgXCJ1bnByZXNzZWQvcHJlc3NlZFwiIGV4YW1wbGUgZGVtbyBhYm92ZSlcbiAgICAgICAgICovXG4gICAgICAgIHByZXNzZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBjb21wb25lbnQ6ICdidXR0b24nLFxuICAgICAgICBvbkNsaWNrOiBub29wLFxuICAgICAgICBvblByZXNzZWQ6IG5vb3AsXG4gICAgICAgIG9uVW5wcmVzc2VkOiBub29wLFxuICAgICAgICBwcmVzc2VkOiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc3RhdGljIGludGVybmFsS2V5cyA9IE9iamVjdC5rZXlzKEJ1dHRvbi5kZWZhdWx0UHJvcHMpXG5cbiAgICB0b2dnbGVTdGF0ZShldmVudCkge1xuICAgICAgICB0aGlzLnByb3BzW3RoaXMucHJvcHMucHJlc3NlZCA/ICdvblVucHJlc3NlZCcgOiAnb25QcmVzc2VkJ10oZXZlbnQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMudG9nZ2xlU3RhdGUoZXZlbnQpO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMucHJvcHMub25DbGljaykpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljayhldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlU3RhdGUoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpcy5wcm9wcy5vbktleURvd24pKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uS2V5RG93bihldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8dGhpcy5wcm9wcy5jb21wb25lbnRcbiAgICAgICAgICAgICAgICB7Li4ub21pdCh0aGlzLnByb3BzLCBCdXR0b24uaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICByZWY9J2J1dHRvbidcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWJ1dHRvbicsIHRoaXMucHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICdiLWJ1dHRvbi1wcmVzc2FibGUnOiB0eXBlb2YgdGhpcy5wcm9wcy5wcmVzc2VkICE9PSAndW5kZWZpbmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ItYnV0dG9uLXByZXNzZWQnOiB0aGlzLnByb3BzLnByZXNzZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgYXJpYS1wcmVzc2VkPXt0aGlzLnByb3BzLnByZXNzZWR9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja30+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICAgICAgICA8L3RoaXMucHJvcHMuY29tcG9uZW50PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3BhY2thZ2VzL2JvdW5kbGVzcy1idXR0b24vaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9
module.exports=function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var t={};return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=5)}([function(e,n,t){"use strict";n.a=function(e){return"function"==typeof e}},function(e,n,t){"use strict";function r(){}n.a=r},function(e,n,t){"use strict";function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(t,r){return n.indexOf(r)===-1&&(t[r]=e[r]),t},{})}n.a=r},function(e,n){e.exports=require("classnames")},function(e,n){e.exports=require("react")},function(e,n,t){"use strict";function r(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function o(e,n){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!n||"object"!=typeof n&&"function"!=typeof n?e:n}function s(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function, not "+typeof n);e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(e,n):e.__proto__=n)}Object.defineProperty(n,"__esModule",{value:!0});var p=t(4),i=t.n(p),u=t(3),c=t.n(u),a=t(0),l=t(1),f=t(2),d=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},y=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),b=function(e){function n(){var e,s,p,i;r(this,n);for(var u=arguments.length,c=Array(u),l=0;l<u;l++)c[l]=arguments[l];return s=p=o(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(c))),p.handleClick=function(e){p.props.disabled||(p.toggleState(e),t.i(a.a)(p.props.onClick)&&p.props.onClick(e))},p.handleKeyDown=function(e){if(!p.props.disabled){switch(e.key){case"Enter":case"Space":e.preventDefault(),p.toggleState(e)}t.i(a.a)(p.props.onKeyDown)&&p.props.onKeyDown(e)}},i=s,o(p,i)}return s(n,e),y(n,[{key:"toggleState",value:function(e){this.props[this.props.pressed?"onUnpressed":"onPressed"](e)}},{key:"render",value:function(){return i.a.createElement(this.props.component,d({},t.i(f.a)(this.props,n.internalKeys),{ref:"button",className:c()("b-button",this.props.className,{"b-button-pressable":"undefined"!=typeof this.props.pressed,"b-button-pressed":this.props.pressed}),"aria-pressed":this.props.pressed,onKeyDown:this.handleKeyDown,onClick:this.handleClick}),this.props.children)}}]),n}(i.a.PureComponent);b.propTypes={children:p.PropTypes.node,component:p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.func]),onClick:p.PropTypes.func,onPressed:p.PropTypes.func,onUnpressed:p.PropTypes.func,pressed:p.PropTypes.bool},b.defaultProps={children:null,component:"button",onClick:l.a,onPressed:l.a,onUnpressed:l.a,pressed:void 0},b.internalKeys=Object.keys(b.defaultProps),n.default=b}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGZkN2EyNDI0Zjg0NWI5MzVjYWVmIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1pcy1mdW5jdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtbm9vcC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwid2VicGFjazovLy9leHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn0iLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn0iLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLWJ1dHRvbi9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImluc3RhbGxlZE1vZHVsZXMiLCJpIiwibCIsImNhbGwiLCJtIiwiYyIsInZhbHVlIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwiZ2V0IiwibiIsIl9fZXNNb2R1bGUiLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwidGVzdCIsIm5vb3AiLCJvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3QiLCJzb3VyY2UiLCJvbWl0dGVkS2V5cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImtleXMiLCJyZWR1Y2UiLCJoYXNoIiwia2V5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJzZWxmIiwiUmVmZXJlbmNlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsIndyaXRhYmxlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJ0YXJnZXQiLCJfY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJkZXNjcmlwdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiQnV0dG9uIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfcmVmIiwiX3RlbXAiLCJfdGhpcyIsIl9yZXQiLCJ0aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJnZXRQcm90b3R5cGVPZiIsImFwcGx5IiwiY29uY2F0IiwiaGFuZGxlQ2xpY2siLCJldmVudCIsImRpc2FibGVkIiwidG9nZ2xlU3RhdGUiLCJvbkNsaWNrIiwiaGFuZGxlS2V5RG93biIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwicHJlc3NlZCIsImEiLCJjcmVhdGVFbGVtZW50IiwiY29tcG9uZW50IiwiaW50ZXJuYWxLZXlzIiwicmVmIiwiY2xhc3NOYW1lIiwiYi1idXR0b24tcHJlc3NhYmxlIiwiYi1idXR0b24tcHJlc3NlZCIsImFyaWEtcHJlc3NlZCIsImNoaWxkcmVuIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsIm5vZGUiLCJvbmVPZlR5cGUiLCJzdHJpbmciLCJmdW5jIiwib25QcmVzc2VkIiwib25VbnByZXNzZWQiLCJib29sIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBT0MsUUFDRSxTQUFVQyxHQ0duQixRQUFBQyxHQUFBQyxHQUdBLEdBQUFDLEVBQUFELEdBQ0EsTUFBQUMsR0FBQUQsR0FBQUgsT0FHQSxJQUFBRCxHQUFBSyxFQUFBRCxJQUNBRSxFQUFBRixFQUNBRyxHQUFBLEVBQ0FOLFdBVUEsT0FOQUMsR0FBQUUsR0FBQUksS0FBQVIsRUFBQUMsUUFBQUQsSUFBQUMsUUFBQUUsR0FHQUgsRUFBQU8sR0FBQSxFQUdBUCxFQUFBQyxRQXZCQSxHQUFBSSxLQStEQSxPQW5DQUYsR0FBQU0sRUFBQVAsRUFHQUMsRUFBQU8sRUFBQUwsRUFHQUYsRUFBQUcsRUFBQSxTQUFBSyxHQUEyQyxNQUFBQSxJQUczQ1IsRUFBQVMsRUFBQSxTQUFBWCxFQUFBWSxFQUFBQyxHQUNBWCxFQUFBWSxFQUFBZCxFQUFBWSxJQUNBRyxPQUFBQyxlQUFBaEIsRUFBQVksR0FDQUssY0FBQSxFQUNBQyxZQUFBLEVBQ0FDLElBQUFOLEtBTUFYLEVBQUFrQixFQUFBLFNBQUFyQixHQUNBLEdBQUFjLEdBQUFkLEtBQUFzQixXQUNBLFdBQTJCLE1BQUF0QixHQUFBLFNBQzNCLFdBQWlDLE1BQUFBLEdBRWpDLE9BREFHLEdBQUFTLEVBQUFFLEVBQUEsSUFBQUEsR0FDQUEsR0FJQVgsRUFBQVksRUFBQSxTQUFBUSxFQUFBQyxHQUFzRCxNQUFBUixRQUFBUyxVQUFBQyxlQUFBbEIsS0FBQWUsRUFBQUMsSUFHdERyQixFQUFBd0Is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QixLQUFLVixNQUFNZ0MsV0FDakNDLHFCQUFvRCxtQkFBdkJ2QixNQUFLVixNQUFNMEIsUUFDeENRLG1CQUFvQnhCLEtBQUtWLE1BQU0wQixVQUVuQ1MsZUFBY3pCLEtBQUtWLE1BQU0wQixRQUN6QkQsVUFBV2YsS0FBS2EsY0FDaEJELFFBQVNaLEtBQUtRLGNBQ2JSLEtBQUtWLE1BQU1vQyxjUEUrdUdoQyxHT3BGdnVHZixFQUFBc0MsRUFBTVUsY0FBckJqQyxHQUNWa0MsV0FDSEYsU0FBVWhELEVBQUEsVUFBVW1ELEtBS3BCVixVQUFXekMsRUFBQSxVQUFVb0QsV0FDakJwRCxFQUFBLFVBQVVxRCxPQUNWckQsRUFBQSxVQUFVc0QsT0FHZHBCLFFBQVNsQyxFQUFBLFVBQVVzRCxLQUtuQkMsVUFBV3ZELEVBQUEsVUFBVXNELEtBS3JCRSxZQUFheEQsRUFBQSxVQUFVc0QsS0FLdkJoQixRQUFTdEMsRUFBQSxVQUFVeUQsTUEzQk56QyxFQThCVjBDLGNBQ0hWLFNBQVUsS0FDVlAsVUFBVyxTQUNYUCxRQUFTN0IsRUFBQSxFQUNUa0QsVUFBV2xELEVBQUEsRUFDWG1ELFlBQWFuRCxFQUFBLEVBQ2JpQyxRQUFTNUQsUUFwQ0lzQyxFQXVDVjBCLGFBQWVyRixPQUFPc0IsS0FBS3FDLEVBQU8wQyxjUDZDMHNJeEYsRUFBNkIsUU9wRi92SThDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPVxuLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aTogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuLyoqKioqKi8gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRnZXQ6IGdldHRlclxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDUpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBmdW5jdGlvbih0ZXN0KXtyZXR1cm4gdHlwZW9mIHRlc3Q9PT0nZnVuY3Rpb24nO307XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gbm9vcDtcbmZ1bmN0aW9uIG5vb3AoKXt9XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gb21pdEtleXNGcm9tU291cmNlT2JqZWN0O1xuZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSl7dmFyIG9taXR0ZWRLZXlzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTpbXTtyZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCxrZXkpe2lmKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KT09PS0xKXtoYXNoW2tleV09c291cmNlW2tleV07fXJldHVybiBoYXNoO30se30pO31cblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqKi8gfSksXG4vKiA1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fd2VicGFja19leHBvcnRzX18sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG52YXIgX2V4dGVuZHM9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odGFyZ2V0KXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgc291cmNlPWFyZ3VtZW50c1tpXTtmb3IodmFyIGtleSBpbiBzb3VyY2Upe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2Usa2V5KSl7dGFyZ2V0W2tleV09c291cmNlW2tleV07fX19cmV0dXJuIHRhcmdldDt9O3ZhciBfY3JlYXRlQ2xhc3M9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCxwcm9wcyl7Zm9yKHZhciBpPTA7aTxwcm9wcy5sZW5ndGg7aSsrKXt2YXIgZGVzY3JpcHRvcj1wcm9wc1tpXTtkZXNjcmlwdG9yLmVudW1lcmFibGU9ZGVzY3JpcHRvci5lbnVtZXJhYmxlfHxmYWxzZTtkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZT10cnVlO2lmKFwidmFsdWVcImluIGRlc2NyaXB0b3IpZGVzY3JpcHRvci53cml0YWJsZT10cnVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsZGVzY3JpcHRvci5rZXksZGVzY3JpcHRvcik7fX1yZXR1cm4gZnVuY3Rpb24oQ29uc3RydWN0b3IscHJvdG9Qcm9wcyxzdGF0aWNQcm9wcyl7aWYocHJvdG9Qcm9wcylkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSxwcm90b1Byb3BzKTtpZihzdGF0aWNQcm9wcylkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLHN0YXRpY1Byb3BzKTtyZXR1cm4gQ29uc3RydWN0b3I7fTt9KCk7ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLENvbnN0cnVjdG9yKXtpZighKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO319ZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZixjYWxsKXtpZighc2VsZil7dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO31yZXR1cm4gY2FsbCYmKHR5cGVvZiBjYWxsPT09XCJvYmplY3RcInx8dHlwZW9mIGNhbGw9PT1cImZ1bmN0aW9uXCIpP2NhbGw6c2VsZjt9ZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLHN1cGVyQ2xhc3Mpe2lmKHR5cGVvZiBzdXBlckNsYXNzIT09XCJmdW5jdGlvblwiJiZzdXBlckNsYXNzIT09bnVsbCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIrdHlwZW9mIHN1cGVyQ2xhc3MpO31zdWJDbGFzcy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzJiZzdXBlckNsYXNzLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnN1YkNsYXNzLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX19KTtpZihzdXBlckNsYXNzKU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3Msc3VwZXJDbGFzcyk6c3ViQ2xhc3MuX19wcm90b19fPXN1cGVyQ2xhc3M7fXZhciBCdXR0b249ZnVuY3Rpb24oX1JlYWN0JFB1cmVDb21wb25lbnQpe19pbmhlcml0cyhCdXR0b24sX1JlYWN0JFB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIEJ1dHRvbigpe3ZhciBfcmVmO3ZhciBfdGVtcCxfdGhpcyxfcmV0O19jbGFzc0NhbGxDaGVjayh0aGlzLEJ1dHRvbik7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKyl7YXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07fXJldHVybiBfcmV0PShfdGVtcD0oX3RoaXM9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywoX3JlZj1CdXR0b24uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQnV0dG9uKSkuY2FsbC5hcHBseShfcmVmLFt0aGlzXS5jb25jYXQoYXJncykpKSxfdGhpcyksX3RoaXMuaGFuZGxlQ2xpY2s9ZnVuY3Rpb24oZXZlbnQpe2lmKF90aGlzLnByb3BzLmRpc2FibGVkKXtyZXR1cm47fV90aGlzLnRvZ2dsZVN0YXRlKGV2ZW50KTtpZihfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkoX3RoaXMucHJvcHMub25DbGljaykpe190aGlzLnByb3BzLm9uQ2xpY2soZXZlbnQpO319LF90aGlzLmhhbmRsZUtleURvd249ZnVuY3Rpb24oZXZlbnQpe2lmKF90aGlzLnByb3BzLmRpc2FibGVkKXtyZXR1cm47fXN3aXRjaChldmVudC5rZXkpe2Nhc2UnRW50ZXInOmNhc2UnU3BhY2UnOmV2ZW50LnByZXZlbnREZWZhdWx0KCk7X3RoaXMudG9nZ2xlU3RhdGUoZXZlbnQpO31pZihfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkoX3RoaXMucHJvcHMub25LZXlEb3duKSl7X3RoaXMucHJvcHMub25LZXlEb3duKGV2ZW50KTt9fSxfdGVtcCksX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fV9jcmVhdGVDbGFzcyhCdXR0b24sW3trZXk6J3RvZ2dsZVN0YXRlJyx2YWx1ZTpmdW5jdGlvbiB0b2dnbGVTdGF0ZShldmVudCl7dGhpcy5wcm9wc1t0aGlzLnByb3BzLnByZXNzZWQ/J29uVW5wcmVzc2VkJzonb25QcmVzc2VkJ10oZXZlbnQpO319LHtrZXk6J3JlbmRlcicsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyKCl7cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KHRoaXMucHJvcHMuY29tcG9uZW50LF9leHRlbmRzKHt9LF9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkodGhpcy5wcm9wcyxCdXR0b24uaW50ZXJuYWxLZXlzKSx7cmVmOididXR0b24nLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1idXR0b24nLHRoaXMucHJvcHMuY2xhc3NOYW1lLHsnYi1idXR0b24tcHJlc3NhYmxlJzp0eXBlb2YgdGhpcy5wcm9wcy5wcmVzc2VkIT09J3VuZGVmaW5lZCcsJ2ItYnV0dG9uLXByZXNzZWQnOnRoaXMucHJvcHMucHJlc3NlZH0pLCdhcmlhLXByZXNzZWQnOnRoaXMucHJvcHMucHJlc3NlZCxvbktleURvd246dGhpcy5oYW5kbGVLZXlEb3duLG9uQ2xpY2s6dGhpcy5oYW5kbGVDbGlja30pLHRoaXMucHJvcHMuY2hpbGRyZW4pO319XSk7cmV0dXJuIEJ1dHRvbjt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5QdXJlQ29tcG9uZW50KTtCdXR0b24ucHJvcFR5cGVzPXtjaGlsZHJlbjpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ub2RlLGNvbXBvbmVudDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vbmVPZlR5cGUoW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZyxfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jXSksb25DbGljazpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLG9uUHJlc3NlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLG9uVW5wcmVzc2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMscHJlc3NlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ib29sfTtCdXR0b24uZGVmYXVsdFByb3BzPXtjaGlsZHJlbjpudWxsLGNvbXBvbmVudDonYnV0dG9uJyxvbkNsaWNrOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSxvblByZXNzZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLG9uVW5wcmVzc2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSxwcmVzc2VkOnVuZGVmaW5lZH07QnV0dG9uLmludGVybmFsS2V5cz1PYmplY3Qua2V5cyhCdXR0b24uZGVmYXVsdFByb3BzKTsvKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJkZWZhdWx0XCJdID0gQnV0dG9uO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgZmQ3YTI0MjRmODQ1YjkzNWNhZWYiLCJleHBvcnQgZGVmYXVsdCAodGVzdCkgPT4gdHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtaXMtZnVuY3Rpb24vaW5kZXguanMiLCIvKipcbiAqIEEgZHVtbXkgZnVuY3Rpb24gd2l0aCBubyBzaWRlIGVmZmVjdHMuIENvbW1vbmx5IHVzZWQgd2hlbiBtb2NraW5nIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXguanMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn1cbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJyZWFjdFwifVxuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJpbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi4vYm91bmRsZXNzLXV0aWxzLWlzLWZ1bmN0aW9uL2luZGV4JztcbmltcG9ydCBub29wIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1ub29wL2luZGV4JztcbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG4vKipcbiMgQnV0dG9uXG5fX0EgY29udHJvbCB3aXRoIFwicHJlc3NlZFwiIHN0YXRlIHN1cHBvcnQuX19cblxuQnV0dG9uIGhhcyB0d28gbW9kZXMgb2Ygb3BlcmF0aW9uOlxuXG4xLiBzdGF0ZWxlc3MgKGxpa2UgYSBub3JtYWwgYDxidXR0b24+YClcbiAgIGBgYGpzeFxuICAgPEJ1dHRvbiBvblByZXNzZWQ9e2RvU29tZXRoaW5nfT5mb288L0J1dHRvbj5cbiAgIGBgYFxuXG4gICA+IE5vdGUgdGhhdCBpbnN0ZWFkIG9mIGBvbkNsaWNrYCwgQnV0dG9uIHVzZXMgYG9uUHJlc3NlZGAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgY29tcG9uZW50IGFsc28gbGlzdGVucyBmb3Iga2V5Ym9hcmQgPGtiZD5FbnRlcjwva2JkPiBldmVudHMsIHNvIGBvbkNsaWNrYCBvbmx5IHRlbGxzIGhhbGYgdGhlIHN0b3J5LiBZb3UgY2FuIHN0aWxsIGJpbmQgdG8gdGhhdCBwYXJ0aWN1bGFyIFJlYWN0IGV2ZW50IHRob3VnaCBpZiB0aGVyZSdzIGEgbmVlZCB0byB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gY2xpY2tzIGFuZCBFbnRlciBwcmVzc2VzLlxuXG4yLiBzdGF0ZWZ1bCAobGlrZSBhIHRvZ2dsZSwgZS5nLiBib2xkLW1vZGUgaW4gYSByaWNoIHRleHQgZWRpdG9yKVxuXG4gICBcInN0YXRlZnVsXCIgbW9kZSBpcyB0cmlnZ2VyZWQgYnkgcGFzc2luZyBhIGJvb2xlYW4gdG8gYHByZXNzZWRgLiBUaGlzIGVuYWJsZXMgdGhlIGJ1dHRvbiB0byBhY3QgbGlrZSBhIGNvbnRyb2xsZWQgY29tcG9uZW50LiBUaGUgYG9uVW5wcmVzc2VkYCBldmVudCBjYWxsYmFjayB3aWxsIGFsc28gbm93IGJlIGZpcmVkIHdoZW4gYXBwcm9wcmlhdGUuXG5cbiAgIGBgYGpzeFxuICAgPEJ1dHRvblxuICAgICAgIHByZXNzZWQ9e3RydWV9XG4gICAgICAgb25QcmVzc2VkPXtkb1NvbWV0aGluZ31cbiAgICAgICBvblVucHJlc3NlZD17ZG9Tb21ldGhpbmdFbHNlfT5cbiAgICAgICBmb29cbiAgIDwvQnV0dG9uPlxuICAgYGBgXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJ1dHRvbiBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAgICAgICAvKipcbiAgICAgICAgICAgIEFueSB2YWxpZCBIVE1MIHRhZyBuYW1lIG9yIGEgUmVhY3QgY29tcG9uZW50IGZhY3RvcnksIGFueXRoaW5nIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gYFJlYWN0LmNyZWF0ZUVsZW1lbnRgXG4gICAgICAgICovXG4gICAgICAgIGNvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAgICAgUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIF0pLFxuXG4gICAgICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjYWxsZWQgd2hlbiB0aGUgZWxlbWVudCBiZWNvbWVzIFwicHJlc3NlZFwiIG9yIHRyaWdnZXJlZCBieSB0aGUgdXNlciAobW91c2Ugb3Iga2V5Ym9hcmQpOyBiYWNraW5nIGRhdGEgbXVzdCBiZSB1cGRhdGVkIHRvIHBlcnNpc3QgdGhlIHN0YXRlIGNoYW5nZTsgdGhpcyBmdW5jdGlvbiB3aWxsIHN0aWxsIGJlIGNhbGxlZCBpZiBgcHJvcHMucHJlc3NlZGAgaXMgbm90IHBhc3NlZFxuICAgICAgICAgKi9cbiAgICAgICAgb25QcmVzc2VkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2FsbGVkIHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyBcInVucHJlc3NlZFwiOyBiYWNraW5nIGRhdGEgbXVzdCBiZSB1cGRhdGVkIHRvIHBlcnNpc3QgdGhlIHN0YXRlIGNoYW5nZVxuICAgICAgICAgKi9cbiAgICAgICAgb25VbnByZXNzZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBlbmFibGVzIFwicHJlc3NlZFwiIHN1cHBvcnQgYW5kIGFkZHMgdGhlIGBhcmlhLXByZXNzZWRgIGF0dHJpYnV0ZSB0byB0aGUgYC5iLWJ1dHRvbmAgbm9kZTsgZXNzZW50aWFsbHkgYSBcInN0YXRlZnVsXCIgYnV0dG9uIChzZWUgdGhlIFwidW5wcmVzc2VkL3ByZXNzZWRcIiBleGFtcGxlIGRlbW8gYWJvdmUpXG4gICAgICAgICAqL1xuICAgICAgICBwcmVzc2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB9XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgICAgY29tcG9uZW50OiAnYnV0dG9uJyxcbiAgICAgICAgb25DbGljazogbm9vcCxcbiAgICAgICAgb25QcmVzc2VkOiBub29wLFxuICAgICAgICBvblVucHJlc3NlZDogbm9vcCxcbiAgICAgICAgcHJlc3NlZDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhCdXR0b24uZGVmYXVsdFByb3BzKVxuXG4gICAgdG9nZ2xlU3RhdGUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5wcm9wc1t0aGlzLnByb3BzLnByZXNzZWQgPyAnb25VbnByZXNzZWQnIDogJ29uUHJlc3NlZCddKGV2ZW50KTtcbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayA9IChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzLnByb3BzLm9uQ2xpY2spKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMucHJvcHMub25LZXlEb3duKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbktleURvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHRoaXMucHJvcHMuY29tcG9uZW50XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcywgQnV0dG9uLmludGVybmFsS2V5cyl9XG4gICAgICAgICAgICAgICAgcmVmPSdidXR0b24nXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1idXR0b24nLCB0aGlzLnByb3BzLmNsYXNzTmFtZSwge1xuICAgICAgICAgICAgICAgICAgICAnYi1idXR0b24tcHJlc3NhYmxlJzogdHlwZW9mIHRoaXMucHJvcHMucHJlc3NlZCAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICAgICAgICAgICAgICAgICdiLWJ1dHRvbi1wcmVzc2VkJzogdGhpcy5wcm9wcy5wcmVzc2VkLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIGFyaWEtcHJlc3NlZD17dGhpcy5wcm9wcy5wcmVzc2VkfVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17dGhpcy5oYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2xpY2t9PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgPC90aGlzLnByb3BzLmNvbXBvbmVudD5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtYnV0dG9uL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
{
"name": "boundless-button",
"version": "1.0.0-beta.4",
"version": "1.0.0-beta.5",
"description": "A control with \"pressed\" state support.",
"main": "build/index.js",
"browser": "build/index.js",
"repository": {

@@ -18,3 +18,3 @@ "type": "git",

"contributors": [
"Evan Scott <evan.scott@enigma.io>",
"Evan Scott <glitterbyte@gmail.com> (http://yaycmyk.com)",
"Abe Rubenstein <abe.rubenstein@enigma.io>",

@@ -29,6 +29,8 @@ "Jenn Creighton <jenn.creighton@enigma.io>"

"dependencies": {
"classnames": "^2.1.5"
},
"devDependencies": {
"boundless-utils-is-function": "^1.0.0",
"boundless-utils-noop": "^1.0.0",
"boundless-utils-omit-keys": "^1.0.0-beta.3",
"classnames": "^2.1.5"
"boundless-utils-omit-keys": "^1.0.0-beta.3"
},

@@ -35,0 +37,0 @@ "peerDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc