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

boundless-checkbox

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-checkbox - npm Package Compare versions

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

4

build/index.js

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

module.exports=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t,n){"use strict";t.a=function(e){return"function"==typeof e}},function(e,t,n){"use strict";function r(){}t.a=r},function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(n,r){return t.indexOf(r)===-1&&(n[r]=e[r]),n},{})}t.a=r},function(e,t,n){"use strict";function r(){return"b-"+([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^16*Math.random()>>e/4).toString(16)})}t.a=r},function(e,t){e.exports=require("classnames")},function(e,t){e.exports=require("react")},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var p=n(5),s=n.n(p),a=n(4),c=n.n(a),u=n(0),l=n(1),f=n(2),h=n(3),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),P=function(e){function t(){var e,i,p,s;r(this,t);for(var a=arguments.length,c=Array(a),l=0;l<a;l++)c[l]=arguments[l];return i=p=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(c))),p.id=n.i(h.a)(),p.handleChange=function(e){p.props.inputProps.disabled||(p.props[p.props.inputProps.checked?"onUnchecked":"onChecked"](p.props.inputProps.name),n.i(u.a)(p.props.inputProps.onChange)&&p.props.inputProps.onChange(e))},p.handleClick=function(e){p.props.inputProps.disabled||(p.refs.input.focus(),n.i(u.a)(p.props.inputProps.onClick)&&p.props.inputProps.onClick(e))},s=i,o(p,s)}return i(t,e),b(t,[{key:"componentDidMount",value:function(){this.props.inputProps.indeterminate&&this.setIndeterminate()}},{key:"componentDidUpdate",value:function(e){e.inputProps.indeterminate!==this.props.inputProps.indeterminate&&this.setIndeterminate()}},{key:"setIndeterminate",value:function(){this.refs.input.indeterminate=!!this.props.inputProps.indeterminate}},{key:"getAriaState",value:function(){return this.props.inputProps.indeterminate?"mixed":String(this.props.inputProps.checked)}},{key:"renderInput",value:function(){return s.a.createElement("input",d({},n.i(f.a)(this.props.inputProps,"indeterminate"),{ref:"input",type:"checkbox",className:c()("b-checkbox",this.props.inputProps.className,{"b-checkbox-mixed":this.props.inputProps.indeterminate,"b-checkbox-checked":this.props.inputProps.checked,"b-checkbox-unchecked":!this.props.inputProps.indeterminate&&!this.props.inputProps.checked}),id:this.props.inputProps.id||this.id,"aria-checked":this.getAriaState(),onChange:this.handleChange,onClick:this.handleClick}))}},{key:"renderLabel",value:function(){if(this.props.label)return s.a.createElement("label",d({},this.props.labelProps,{ref:"label",className:c()("b-checkbox-label",this.props.labelProps.className),htmlFor:this.props.inputProps.id||this.id}),this.props.label)}},{key:"render",value:function(){return s.a.createElement("div",d({},n.i(f.a)(this.props,t.internalKeys),{ref:"wrapper",className:c()("b-checkbox-wrapper",this.props.className)}),this.renderInput(),this.renderLabel())}}]),t}(s.a.PureComponent);P.propTypes={inputProps:p.PropTypes.shape({checked:p.PropTypes.bool,className:p.PropTypes.string,disabled:p.PropTypes.bool,id:p.PropTypes.string,indeterminate:p.PropTypes.bool,onChange:p.PropTypes.func,onClick:p.PropTypes.func,name:p.PropTypes.string,value:p.PropTypes.string}),label:p.PropTypes.node,labelProps:p.PropTypes.object,onChecked:p.PropTypes.func,onUnchecked:p.PropTypes.func},P.defaultProps={inputProps:{checked:!1,indeterminate:!1},label:null,labelProps:{},onChecked:l.a,onUnchecked:l.a},P.internalKeys=Object.keys(P.defaultProps),t.default=P}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGI3NmMzYTVmMWQ1YzdjNzNiMzc1Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1pcy1mdW5jdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtbm9vcC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy11dWlkL2luZGV4LmpzIiwid2VicGFjazovLy9leHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn0iLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn0iLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLWNoZWNrYm94L2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaW5zdGFsbGVkTW9kdWxlcyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwidmFsdWUiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXQiLCJuIiwiX19lc01vZHVsZSIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsIl9fd2VicGFja19leHBvcnRzX18iLCJ0ZXN0Iiwibm9vcCIsIm9taXRLZXlzRnJvbVNvdXJjZU9iamVjdCIsInNvdXJjZSIsIm9taXR0ZWRLZXlzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwia2V5cyIsInJlZHVjZSIsImhhc2giLCJrZXkiLCJpbmRleE9mIiwidXVpZCIsInJlcGxhY2UiLCJhIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwicmVxdWlyZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwid3JpdGFibGUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19pc19mdW5jdGlvbl9pbmRleF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X18iLCJfZXh0ZW5kcyIsImFzc2lnbiIsInRhcmdldCIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJDaGVja2JveCIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsImlkIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJpbnB1dFByb3BzIiwiZGlzYWJsZWQiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJoYW5kbGVDbGljayIsInJlZnMiLCJpbnB1dCIsImZvY3VzIiwib25DbGljayIsImluZGV0ZXJtaW5hdGUiLCJzZXRJbmRldGVybWluYXRlIiwicHJldlByb3BzIiwiU3RyaW5nIiwiY3JlYXRlRWxlbWVudCIsInJlZiIsInR5cGUiLCJjbGFzc05hbWUiLCJiLWNoZWNrYm94LW1peGVkIiwiYi1jaGVja2JveC1jaGVja2VkIiwiYi1jaGVja2JveC11bmNoZWNrZWQiLCJhcmlhLWNoZWNrZWQiLCJnZXRBcmlhU3RhdGUiLCJsYWJlbCIsImxhYmVsUHJvcHMiLCJodG1sRm9yIiwiaW50ZXJuYWxLZXlzIiwicmVuZGVySW5wdXQiLCJyZW5kZXJMYWJlbCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzaGFwZSIsImJvb2wiLCJzdHJpbmciLCJmdW5jIiwibm9kZSIsIm9uQ2hlY2tlZCIsIm9uVW5jaGVja2VkIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBT0MsUUFDRSxTQUFVQyxHQ0duQixRQUFBQyxHQUFBQyxHQUdBLEdBQUFDLEVBQUFELEdBQ0EsTUFBQUMsR0FBQUQsR0FBQUgsT0FHQSxJQUFBRCxHQUFBSyxFQUFBRCxJQUNBRSxFQUFBRixFQUNBRyxHQUFBLEVBQ0FOLFdBVUEsT0FOQUMsR0FBQUUsR0FBQUksS0FBQVIsRUFBQUMsUUFBQUQsSUFBQUMsUUFBQUUsR0FHQUgsRUFBQU8sR0FBQSxFQUdBUCxFQUFBQyxRQXZCQSxHQUFBSSxLQStEQSxPQW5DQUYsR0FBQU0sRUFBQVAsRUFHQUMsRUFBQU8sRUFBQUwsRUFHQUYsRUFBQUcsRUFBQSxTQUFBSyxHQUEyQyxNQUFBQSxJQUczQ1IsRUFBQVMsRUFBQSxTQUFBWCxFQUFBWSxFQUFB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QUFBLFVBQVVtRSxLQUtuQnZILEtBQU1vRCxFQUFBLFVBQVVrRSxPQUtoQnhILE1BQU9zRCxFQUFBLFVBQVVrRSxTQU1yQlYsTUFBT3hELEVBQUEsVUFBVW9FLEtBS2pCWCxXQUFZekQsRUFBQSxVQUFVMUMsT0FLdEIrRyxVQUFXckUsRUFBQSxVQUFVbUUsS0FLckJHLFlBQWF0RSxFQUFBLFVBQVVtRSxNQXpEVmxELEVBNERWc0QsY0FDSHJDLFlBQ0lFLFNBQVMsRUFDVE8sZUFBZSxHQUVuQmEsTUFBTyxLQUNQQyxjQUNBWSxVQUFXaEUsRUFBQSxFQUNYaUUsWUFBYWpFLEVBQUEsR0FwRUFZLEVBdUVWMEMsYUFBZTVHLE9BQU9zQixLQUFLNEMsRUFBU3NELGNSdUNxbE0zRyxFQUE2QixRUTlHNW9NcUQiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9XG4vKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRpOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGw6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge31cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cbi8qKioqKiovXG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNik7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIChbXG4vKiAwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IGZ1bmN0aW9uKHRlc3Qpe3JldHVybiB0eXBlb2YgdGVzdD09PSdmdW5jdGlvbic7fTtcblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBub29wO1xuZnVuY3Rpb24gbm9vcCgpe31cblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Q7XG5mdW5jdGlvbiBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Qoc291cmNlKXt2YXIgb21pdHRlZEtleXM9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzFdOltdO3JldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLGtleSl7aWYob21pdHRlZEtleXMuaW5kZXhPZihrZXkpPT09LTEpe2hhc2hba2V5XT1zb3VyY2Vba2V5XTt9cmV0dXJuIGhhc2g7fSx7fSk7fVxuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IHV1aWQ7XG5mdW5jdGlvbiB1dWlkKCl7cmV0dXJuJ2ItJysoWzFlN10rLTFlMystNGUzKy04ZTMrLTFlMTEpLnJlcGxhY2UoL1swMThdL2csZnVuY3Rpb24oYSl7cmV0dXJuKGFeTWF0aC5yYW5kb20oKSoxNj4+YS80KS50b1N0cmluZygxNik7fSk7fVxuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuLyoqKi8gfSksXG4vKiA1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG4vKioqLyB9KSxcbi8qIDYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19pc19mdW5jdGlvbl9pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2JvdW5kbGVzc191dGlsc19ub29wX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xudmFyIF9leHRlbmRzPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLGtleSkpe3RhcmdldFtrZXldPXNvdXJjZVtrZXldO319fXJldHVybiB0YXJnZXQ7fTt2YXIgX2NyZWF0ZUNsYXNzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQscHJvcHMpe2Zvcih2YXIgaT0wO2k8cHJvcHMubGVuZ3RoO2krKyl7dmFyIGRlc2NyaXB0b3I9cHJvcHNbaV07ZGVzY3JpcHRvci5lbnVtZXJhYmxlPWRlc2NyaXB0b3IuZW51bWVyYWJsZXx8ZmFsc2U7ZGVzY3JpcHRvci5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBkZXNjcmlwdG9yKWRlc2NyaXB0b3Iud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGRlc2NyaXB0b3Iua2V5LGRlc2NyaXB0b3IpO319cmV0dXJuIGZ1bmN0aW9uKENvbnN0cnVjdG9yLHByb3RvUHJvcHMsc3RhdGljUHJvcHMpe2lmKHByb3RvUHJvcHMpZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUscHJvdG9Qcm9wcyk7aWYoc3RhdGljUHJvcHMpZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3RvcixzdGF0aWNQcm9wcyk7cmV0dXJuIENvbnN0cnVjdG9yO307fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSxDb25zdHJ1Y3Rvcil7aWYoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTt9fWZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsY2FsbCl7aWYoIXNlbGYpe3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTt9cmV0dXJuIGNhbGwmJih0eXBlb2YgY2FsbD09PVwib2JqZWN0XCJ8fHR5cGVvZiBjYWxsPT09XCJmdW5jdGlvblwiKT9jYWxsOnNlbGY7fWZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcyxzdXBlckNsYXNzKXtpZih0eXBlb2Ygc3VwZXJDbGFzcyE9PVwiZnVuY3Rpb25cIiYmc3VwZXJDbGFzcyE9PW51bGwpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBzdXBlckNsYXNzKTt9c3ViQ2xhc3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyYmc3VwZXJDbGFzcy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzdWJDbGFzcyxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9fSk7aWYoc3VwZXJDbGFzcylPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLHN1cGVyQ2xhc3MpOnN1YkNsYXNzLl9fcHJvdG9fXz1zdXBlckNsYXNzO312YXIgQ2hlY2tib3g9ZnVuY3Rpb24oX1JlYWN0JFB1cmVDb21wb25lbnQpe19pbmhlcml0cyhDaGVja2JveCxfUmVhY3QkUHVyZUNvbXBvbmVudCk7ZnVuY3Rpb24gQ2hlY2tib3goKXt2YXIgX3JlZjt2YXIgX3RlbXAsX3RoaXMsX3JldDtfY2xhc3NDYWxsQ2hlY2sodGhpcyxDaGVja2JveCk7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKyl7YXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07fXJldHVybiBfcmV0PShfdGVtcD0oX3RoaXM9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywoX3JlZj1DaGVja2JveC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihDaGVja2JveCkpLmNhbGwuYXBwbHkoX3JlZixbdGhpc10uY29uY2F0KGFyZ3MpKSksX3RoaXMpLF90aGlzLmlkPV9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2JvdW5kbGVzc191dGlsc191dWlkX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKCksX3RoaXMuaGFuZGxlQ2hhbmdlPWZ1bmN0aW9uKGV2ZW50KXtpZihfdGhpcy5wcm9wcy5pbnB1dFByb3BzLmRpc2FibGVkKXtyZXR1cm47fV90aGlzLnByb3BzWyFfdGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWQ/J29uQ2hlY2tlZCc6J29uVW5jaGVja2VkJ10oX3RoaXMucHJvcHMuaW5wdXRQcm9wcy5uYW1lKTtpZihfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkoX3RoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNoYW5nZSkpe190aGlzLnByb3BzLmlucHV0UHJvcHMub25DaGFuZ2UoZXZlbnQpO319LF90aGlzLmhhbmRsZUNsaWNrPWZ1bmN0aW9uKGV2ZW50KXtpZihfdGhpcy5wcm9wcy5pbnB1dFByb3BzLmRpc2FibGVkKXtyZXR1cm47fV90aGlzLnJlZnMuaW5wdXQuZm9jdXMoKTtpZihfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfaXNfZnVuY3Rpb25faW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkoX3RoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNsaWNrKSl7X3RoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNsaWNrKGV2ZW50KTt9fSxfdGVtcCksX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fV9jcmVhdGVDbGFzcyhDaGVja2JveCxbe2tleTonY29tcG9uZW50RGlkTW91bnQnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCl7aWYodGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUpe3RoaXMuc2V0SW5kZXRlcm1pbmF0ZSgpO319fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpe2lmKHByZXZQcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUhPT10aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSl7dGhpcy5zZXRJbmRldGVybWluYXRlKCk7fX19LHtrZXk6J3NldEluZGV0ZXJtaW5hdGUnLHZhbHVlOmZ1bmN0aW9uIHNldEluZGV0ZXJtaW5hdGUoKXt0aGlzLnJlZnMuaW5wdXQuaW5kZXRlcm1pbmF0ZT0hIXRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlO319LHtrZXk6J2dldEFyaWFTdGF0ZScsdmFsdWU6ZnVuY3Rpb24gZ2V0QXJpYVN0YXRlKCl7cmV0dXJuIHRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlPydtaXhlZCc6U3RyaW5nKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkKTt9fSx7a2V5OidyZW5kZXJJbnB1dCcsdmFsdWU6ZnVuY3Rpb24gcmVuZGVySW5wdXQoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyxfZXh0ZW5kcyh7fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKHRoaXMucHJvcHMuaW5wdXRQcm9wcywnaW5kZXRlcm1pbmF0ZScpLHtyZWY6J2lucHV0Jyx0eXBlOidjaGVja2JveCcsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWNoZWNrYm94Jyx0aGlzLnByb3BzLmlucHV0UHJvcHMuY2xhc3NOYW1lLHsnYi1jaGVja2JveC1taXhlZCc6dGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUsJ2ItY2hlY2tib3gtY2hlY2tlZCc6dGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWQsJ2ItY2hlY2tib3gtdW5jaGVja2VkJzohdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUmJiF0aGlzLnByb3BzLmlucHV0UHJvcHMuY2hlY2tlZH0pLGlkOnRoaXMucHJvcHMuaW5wdXRQcm9wcy5pZHx8dGhpcy5pZCwnYXJpYS1jaGVja2VkJzp0aGlzLmdldEFyaWFTdGF0ZSgpLG9uQ2hhbmdlOnRoaXMuaGFuZGxlQ2hhbmdlLG9uQ2xpY2s6dGhpcy5oYW5kbGVDbGlja30pKTt9fSx7a2V5OidyZW5kZXJMYWJlbCcsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyTGFiZWwoKXtpZih0aGlzLnByb3BzLmxhYmVsKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyxfZXh0ZW5kcyh7fSx0aGlzLnByb3BzLmxhYmVsUHJvcHMse3JlZjonbGFiZWwnLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1jaGVja2JveC1sYWJlbCcsdGhpcy5wcm9wcy5sYWJlbFByb3BzLmNsYXNzTmFtZSksaHRtbEZvcjp0aGlzLnByb3BzLmlucHV0UHJvcHMuaWR8fHRoaXMuaWR9KSx0aGlzLnByb3BzLmxhYmVsKTt9fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsX2V4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLENoZWNrYm94LmludGVybmFsS2V5cykse3JlZjond3JhcHBlcicsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWNoZWNrYm94LXdyYXBwZXInLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0pLHRoaXMucmVuZGVySW5wdXQoKSx0aGlzLnJlbmRlckxhYmVsKCkpO319XSk7cmV0dXJuIENoZWNrYm94O30oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLlB1cmVDb21wb25lbnQpO0NoZWNrYm94LnByb3BUeXBlcz17aW5wdXRQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zaGFwZSh7Y2hlY2tlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ib29sLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsZGlzYWJsZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uYm9vbCxpZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsaW5kZXRlcm1pbmF0ZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ib29sLG9uQ2hhbmdlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsb25DbGljazpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLG5hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uc3RyaW5nLHZhbHVlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZ30pLGxhYmVsOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm5vZGUsbGFiZWxQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vYmplY3Qsb25DaGVja2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsb25VbmNoZWNrZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuY307Q2hlY2tib3guZGVmYXVsdFByb3BzPXtpbnB1dFByb3BzOntjaGVja2VkOmZhbHNlLGluZGV0ZXJtaW5hdGU6ZmFsc2V9LGxhYmVsOm51bGwsbGFiZWxQcm9wczp7fSxvbkNoZWNrZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19ib3VuZGxlc3NfdXRpbHNfbm9vcF9pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLG9uVW5jaGVja2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYm91bmRsZXNzX3V0aWxzX25vb3BfaW5kZXhfX1tcImFcIiAvKiBkZWZhdWx0ICovXX07Q2hlY2tib3guaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKENoZWNrYm94LmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IENoZWNrYm94O1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgYjc2YzNhNWYxZDVjN2M3M2IzNzUiLCJleHBvcnQgZGVmYXVsdCAodGVzdCkgPT4gdHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtaXMtZnVuY3Rpb24vaW5kZXguanMiLCIvKipcbiAqIEEgZHVtbXkgZnVuY3Rpb24gd2l0aCBubyBzaWRlIGVmZmVjdHMuIENvbW1vbmx5IHVzZWQgd2hlbiBtb2NraW5nIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW5vb3AvaW5kZXguanMiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwiLyoqXG4gKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIEFkZHMgYSBwcmVmaXggc28gaXQgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyBhbiBIVE1MIElELlxuICogQmFzZWQgb24ge0BsaW5rIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2plZC85ODI4ODMgdGhpcyBpbXBsZW1lbnRhdGlvbn0uXG4gKlxuICogQHJldHVybiB7c3RyaW5nfSBhIHVuaXF1ZSBpZGVudGlmaWVyXG4gKlxuICogQGV4YW1wbGVcbiAqIHV1aWQoKTsgLy8gYi0xZjJjZDI3Zi0wNzU0LTQzNDQtOWQyMC00MzZhMjAxYjJmODBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHJldHVybiAnYi0nICsgKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLGE9PihhXk1hdGgucmFuZG9tKCkqMTY+PmEvNCkudG9TdHJpbmcoMTYpKTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtdXVpZC9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJjbGFzc25hbWVzXCJ9XG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1pcy1mdW5jdGlvbi9pbmRleCc7XG5pbXBvcnQgbm9vcCBmcm9tICcuLi9ib3VuZGxlc3MtdXRpbHMtbm9vcC9pbmRleCc7XG5pbXBvcnQgb21pdCBmcm9tICcuLi9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4JztcbmltcG9ydCB1dWlkIGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy11dWlkL2luZGV4JztcblxuLyoqXG4jIENoZWNrYm94XG5fX0FuIGFjY2Vzc2libGUgY2hlY2tib3ggd2l0aCBpbmRldGVybWluYXRlIHN1cHBvcnQuX19cblxuQ2hlY2tib3ggaXMgaW1wbGVtZW50ZWQgYXMgYSBcImNvbnRyb2xsZWQgaW5wdXRcIiwgbWVhbmluZyBpdCBpcyBhIGRpcmVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbW9kZWwgZGF0YSBwYXNzZWRcbmluc2lkZS4gVXNlciBpbnRlcmFjdGlvbiB3aWxsIGJ1YmJsZSBjaGFuZ2VzIGluIHRoZSBmb3JtIG9mIGBvbkNoZWNrZWRgIGFuZCBgb25VbmNoZWNrZWRgIHRoYXQgYSBjb250cm9sbGVyXG52aWV3IG11c3QgaW50ZXJjZXB0IGFuZCBhcHBseSBhZ2FpbnN0IHRoZSBkYXRhIHByb3ZpZGVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGVja2JveCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbGwgaW5wdXQtc3BlY2lmaWMgcHJvcHMgbGlrZSBgdmFsdWVgLCBgbmFtZWAsIGV0YyBzaG91bGQgYmUgcGFzc2VkIGhlcmUgLS0gY29tbW9uIG9uZXMgYXJlIGxpc3RlZCBiZWxvdy5cbiAgICAgICAgICogQWxzbyBzdXBwb3J0cyBhbnkgW1JlYWN0LXN1cHBvcnRlZCBhdHRyaWJ1dGVdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdGFncy1hbmQtYXR0cmlidXRlcy5odG1sI2h0bWwtYXR0cmlidXRlcyk7IGFwcGxpZWQgdG8gdGhlIGAuYi1jaGVja2JveGAgbm9kZVxuICAgICAgICAgKi9cbiAgICAgICAgaW5wdXRQcm9wczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogZGV0ZXJtaW5lcyBpZiB0aGUgY2hlY2tib3ggaXMgcmVuZGVyZWQgYXMgY2hlY2tlZC91bmNoZWNrZWQsIHNlZSBSZWFjdCBbXCJjb250cm9sbGVkIGlucHV0c1wiXShodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby9yZWFjdC9kb2NzL2Zvcm1zLmh0bWwjY29udHJvbGxlZC1jb21wb25lbnRzKSlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAgICAgICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBwcmV2ZW50cyB0aGUgYG9ue0NoZWNrZWQsVW5jaGVja2VkfWAgZXZlbnRzIGZyb20gZmlyaW5nIHdoZW4gYHRydWVgXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGVuYWJsZXMgb3IgZGlzYWJsZXMgXCJtaXhlZFwiIGNoZWNrYm94IHN0YXRlLCByZWFkIHRoaXMgW0NTUy1Ucmlja3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9pbmRldGVybWluYXRlLWNoZWNrYm94ZXMvKSAgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZGV0ZXJtaW5hdGU6IFByb3BUeXBlcy5ib29sLFxuXG4gICAgICAgICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgICAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiByZW5kZXJlZCBhcyB0aGUgaW5wdXQgY29udHJvbCdzIGZvcm0gbmFtZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqICBwYXNzZWQtdGhyb3VnaCB0byB0aGUgaW5wdXQgbm9kZSwgbGlrZSBgbmFtZWBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbnkgUmVhY3QtcmVuZGVyYWJsZSBjb250ZW50LCBtb3N0IGNvbW1vbmx5IGEgc2ltcGxlIHN0cmluZ1xuICAgICAgICAgKi9cbiAgICAgICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbnkgW1JlYWN0LXN1cHBvcnRlZCBhdHRyaWJ1dGVdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdGFncy1hbmQtYXR0cmlidXRlcy5odG1sI2h0bWwtYXR0cmlidXRlcyk7IGFwcGxpZWQgdG8gdGhlIGAuYi1jaGVja2JveC1sYWJlbGAgbm9kZVxuICAgICAgICAgKi9cbiAgICAgICAgbGFiZWxQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2FsbGVkIHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyBjaGVja2VkOyBiYWNraW5nIGRhdGEgbXVzdCBiZSB1cGRhdGVkIHRvIHBlcnNpc3QgdGhlIHN0YXRlIGNoYW5nZVxuICAgICAgICAgKi9cbiAgICAgICAgb25DaGVja2VkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2FsbGVkIHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB1bmNoZWNrZWQ7IGJhY2tpbmcgZGF0YSBtdXN0IGJlIHVwZGF0ZWQgdG8gcGVyc2lzdCB0aGUgc3RhdGUgY2hhbmdlXG4gICAgICAgICAqL1xuICAgICAgICBvblVuY2hlY2tlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgfVxuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaW5wdXRQcm9wczoge1xuICAgICAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgICAgICBpbmRldGVybWluYXRlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IG51bGwsXG4gICAgICAgIGxhYmVsUHJvcHM6IHt9LFxuICAgICAgICBvbkNoZWNrZWQ6IG5vb3AsXG4gICAgICAgIG9uVW5jaGVja2VkOiBub29wLFxuICAgIH1cblxuICAgIHN0YXRpYyBpbnRlcm5hbEtleXMgPSBPYmplY3Qua2V5cyhDaGVja2JveC5kZWZhdWx0UHJvcHMpXG5cbiAgICBpZCA9IHV1aWQoKVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRJbmRldGVybWluYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICAgIGlmIChwcmV2UHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlICE9PSB0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRJbmRldGVybWluYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJbmRldGVybWluYXRlKCkge1xuICAgICAgICB0aGlzLnJlZnMuaW5wdXQuaW5kZXRlcm1pbmF0ZSA9ICEhdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGU7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2hhbmdlID0gKGV2ZW50KSA9PiB7IC8vIFNlbmQgdGhlIG9wcG9zaXRlIHNpZ25hbCBmcm9tIHdoYXQgd2FzIHBhc3NlZCB0byB0b2dnbGUgdGhlIGRhdGFcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnByb3BzWyF0aGlzLnByb3BzLmlucHV0UHJvcHMuY2hlY2tlZCA/ICdvbkNoZWNrZWQnIDogJ29uVW5jaGVja2VkJ10odGhpcy5wcm9wcy5pbnB1dFByb3BzLm5hbWUpO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNoYW5nZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayA9IChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5pbnB1dFByb3BzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmVmcy5pbnB1dC5mb2N1cygpO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5vbkNsaWNrKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QXJpYVN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUgPyAnbWl4ZWQnIDogU3RyaW5nKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkKTtcbiAgICB9XG5cbiAgICByZW5kZXJJbnB1dCgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHsuLi5vbWl0KHRoaXMucHJvcHMuaW5wdXRQcm9wcywgJ2luZGV0ZXJtaW5hdGUnKX1cbiAgICAgICAgICAgICAgICByZWY9J2lucHV0J1xuICAgICAgICAgICAgICAgIHR5cGU9J2NoZWNrYm94J1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItY2hlY2tib3gnLCB0aGlzLnByb3BzLmlucHV0UHJvcHMuY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICdiLWNoZWNrYm94LW1peGVkJzogdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUsXG4gICAgICAgICAgICAgICAgICAgICdiLWNoZWNrYm94LWNoZWNrZWQnOiB0aGlzLnByb3BzLmlucHV0UHJvcHMuY2hlY2tlZCxcbiAgICAgICAgICAgICAgICAgICAgJ2ItY2hlY2tib3gtdW5jaGVja2VkJzogIXRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlICYmICF0aGlzLnByb3BzLmlucHV0UHJvcHMuY2hlY2tlZCxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBpZD17dGhpcy5wcm9wcy5pbnB1dFByb3BzLmlkIHx8IHRoaXMuaWR9XG4gICAgICAgICAgICAgICAgYXJpYS1jaGVja2VkPXt0aGlzLmdldEFyaWFTdGF0ZSgpfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfSAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlbmRlckxhYmVsKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5sYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMubGFiZWxQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgcmVmPSdsYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1jaGVja2JveC1sYWJlbCcsIHRoaXMucHJvcHMubGFiZWxQcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICAgICAgICAgICAgICBodG1sRm9yPXt0aGlzLnByb3BzLmlucHV0UHJvcHMuaWQgfHwgdGhpcy5pZH0+XG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHsuLi5vbWl0KHRoaXMucHJvcHMsIENoZWNrYm94LmludGVybmFsS2V5cyl9XG4gICAgICAgICAgICAgICAgcmVmPSd3cmFwcGVyJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goJ2ItY2hlY2tib3gtd3JhcHBlcicsIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVySW5wdXQoKX1cbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJMYWJlbCgpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLWNoZWNrYm94L2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
module.exports=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,n){"use strict";function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(n,r){return t.indexOf(r)===-1&&(n[r]=e[r]),n},{})}t.a=r},function(e,t,n){"use strict";function r(){return"b-"+([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^16*Math.random()>>e/4).toString(16)})}t.a=r},function(e,t){e.exports=require("classnames")},function(e,t){e.exports=require("react")},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(3),s=n.n(i),a=n(2),c=n.n(a),u=n(0),l=n(1),f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),d=function(e){return"function"==typeof e},b=function(){},P=function(e){function t(){var e,p,i,s;r(this,t);for(var a=arguments.length,c=Array(a),u=0;u<a;u++)c[u]=arguments[u];return p=i=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(c))),i.id=n.i(l.a)(),i.handleChange=function(e){i.props.inputProps.disabled||(i.props[i.props.inputProps.checked?"onUnchecked":"onChecked"](i.props.inputProps.name),d(i.props.inputProps.onChange)&&i.props.inputProps.onChange(e))},i.handleClick=function(e){i.props.inputProps.disabled||(i.refs.input.focus(),d(i.props.inputProps.onClick)&&i.props.inputProps.onClick(e))},s=p,o(i,s)}return p(t,e),h(t,[{key:"componentDidMount",value:function(){this.props.inputProps.indeterminate&&this.setIndeterminate()}},{key:"componentDidUpdate",value:function(e){e.inputProps.indeterminate!==this.props.inputProps.indeterminate&&this.setIndeterminate()}},{key:"setIndeterminate",value:function(){this.refs.input.indeterminate=!!this.props.inputProps.indeterminate}},{key:"getAriaState",value:function(){return this.props.inputProps.indeterminate?"mixed":String(this.props.inputProps.checked)}},{key:"renderInput",value:function(){return s.a.createElement("input",f({},n.i(u.a)(this.props.inputProps,"indeterminate"),{ref:"input",type:"checkbox",className:c()("b-checkbox",this.props.inputProps.className,{"b-checkbox-mixed":this.props.inputProps.indeterminate,"b-checkbox-checked":this.props.inputProps.checked,"b-checkbox-unchecked":!this.props.inputProps.indeterminate&&!this.props.inputProps.checked}),id:this.props.inputProps.id||this.id,"aria-checked":this.getAriaState(),onChange:this.handleChange,onClick:this.handleClick}))}},{key:"renderLabel",value:function(){if(this.props.label)return s.a.createElement("label",f({},this.props.labelProps,{ref:"label",className:c()("b-checkbox-label",this.props.labelProps.className),htmlFor:this.props.inputProps.id||this.id}),this.props.label)}},{key:"render",value:function(){return s.a.createElement("div",f({},n.i(u.a)(this.props,t.internalKeys),{ref:"wrapper",className:c()("b-checkbox-wrapper",this.props.className)}),this.renderInput(),this.renderLabel())}}]),t}(s.a.PureComponent);P.propTypes={inputProps:i.PropTypes.shape({checked:i.PropTypes.bool,className:i.PropTypes.string,disabled:i.PropTypes.bool,id:i.PropTypes.string,indeterminate:i.PropTypes.bool,onChange:i.PropTypes.func,onClick:i.PropTypes.func,name:i.PropTypes.string,value:i.PropTypes.string}),label:i.PropTypes.node,labelProps:i.PropTypes.object,onChecked:i.PropTypes.func,onUnchecked:i.PropTypes.func},P.defaultProps={inputProps:{checked:!1,indeterminate:!1},label:null,labelProps:{},onChecked:b,onUnchecked:b},P.internalKeys=Object.keys(P.defaultProps),t.default=P}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDM2MmUyOThiZTVkMGUxZDI5MDJjIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLXV1aWQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwiY2xhc3NuYW1lc1wifSIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtY2hlY2tib3gvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIm9taXRLZXlzRnJvbVNvdXJjZU9iamVjdCIsInNvdXJjZSIsIm9taXR0ZWRLZXlzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwia2V5cyIsInJlZHVjZSIsImhhc2giLCJrZXkiLCJpbmRleE9mIiwidXVpZCIsInJlcGxhY2UiLCJhIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwicmVxdWlyZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwid3JpdGFibGUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX2JvdW5kbGVzc191dGlsc191dWlkX18iLCJfZXh0ZW5kcyIsImFzc2lnbiIsInRhcmdldCIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJpc0Z1bmN0aW9uIiwieCIsIm5vb3AiLCJDaGVja2JveCIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwidGhpcyIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsImlkIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJpbnB1dFByb3BzIiwiZGlzYWJsZWQiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJoYW5kbGVDbGljayIsInJlZnMiLCJpbnB1dCIsImZvY3VzIiwib25DbGljayIsImluZGV0ZXJtaW5hdGUiLCJzZXRJbmRldGVybWluYXRlIiwicHJldlByb3BzIiwiU3RyaW5nIiwiY3JlYXRlRWxlbWVudCIsInJlZiIsInR5cGUiLCJjbGFzc05hbWUiLCJiLWNoZWNrYm94LW1peGVkIiwiYi1jaGVja2JveC1jaGVja2VkIiwiYi1jaGVja2JveC11bmNoZWNrZWQiLCJhcmlhLWNoZWNrZWQiLCJnZXRBcmlhU3RhdGUiLCJsYWJlbCIsImxhYmVsUHJvcHMiLCJodG1sRm9yIiwiaW50ZXJuYWxLZXlzIiwicmVuZGVySW5wdXQiLCJyZW5kZXJMYWJlbCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzaGFwZSIsImJvb2wiLCJzdHJpbmciLCJmdW5jIiwibm9kZSIsIm9uQ2hlY2tlZCIsIm9uVW5jaGVja2VkIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBT0MsUUFDRSxTQUFVQyxHQ0duQixRQUFBQyxHQUFBQyxHQUdBLEdBQUFDLEVBQUFELEdBQ0EsTUFBQUMsR0FBQUQsR0FBQUgsT0FHQSxJQUFBRCxHQUFBSyxFQUFBRCxJQUNBRSxFQUFBRixFQUNBRyxHQUFBLEVBQ0FOLFdBVUEsT0FOQUMsR0FBQUUsR0FBQUksS0FBQVIsRUFBQUMsUUFBQUQsSUFBQUMsUUFBQUUsR0FHQUgsRUFBQU8sR0FBQSxFQUdBUCxFQUFBQyxRQXZCQSxHQUFBSSxLQStEQSxPQW5DQUYsR0FBQU0sRUFBQVAsRUFHQUMsRUFBQU8sRUFBQUwsRUFHQUYsRUFBQUcsRUFBQSxTQUFBSyxHQUEyQyxNQUFBQSxJQUczQ1IsRUFBQVMsRUFBQSxTQUFBWCxFQUFBWSxFQUFBQyxHQUNBWCxFQUFBWSxFQUFBZCxFQUFBWSxJQUNBRyxPQUFBQyxlQUFBaEIsRUFBQVksR0FDQUssY0FBQSxFQUNBQyxZQUFBLEVBQ0FDLElBQUFOLEtBTUFYLEVBQUFrQixFQUFBLFNBQUFyQixHQUNBLEdBQUFjLEdBQUFkLEtBQUFzQixXQUNBLFdBQTJCLE1BQUF0QixHQUFBLFNBQzNCLFdBQWlDLE1BQUFBLEdBRWpDLE9BREFHLEdBQUFTLEVBQUFFLEVBQUEsSUFBQUEsR0FDQUEsR0FJQVgsRUFBQVksRUFBQSxTQUFBUSxFQUFBQyxH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USxLQUN6Q1IsS0FBS2IsTUFBTThDLFVOakRzd0lqRixJQUFJLFNBQVM1QixNQUFNLFdNd0RqekksTUFDSXFELEdBQUFyQixFQUFBb0UsY0FBQSxNQUFBMUMsS0FDUWxFLEVBQUFHLEVBQUE2RCxFQUFBLEdBQUtvQixLQUFLYixNQUFPTyxFQUFTMEMsZUFDOUJYLElBQUksVUFDSkUsVUFBV2hELElBQUcscUJBQXNCcUIsS0FBS2IsTUFBTXdDLGFBQzlDM0IsS0FBS3FDLGNBQ0xyQyxLQUFLc0MsbUJOOUQwcko1QyxHTTVGMXFKakIsRUFBQXJCLEVBQU1tRixjQUF2QjdDLEdBQ1Y4QyxXQUtIN0IsV0FBWW5DLEVBQUEsVUFBVWlFLE9BSWxCNUIsUUFBU3JDLEVBQUEsVUFBVWtFLEtBRW5CZixVQUFXbkQsRUFBQSxVQUFVbUUsT0FLckIvQixTQUFVcEMsRUFBQSxVQUFVa0UsS0FDcEJsQyxHQUFJaEMsRUFBQSxVQUFVbUUsT0FLZHZCLGNBQWU1QyxFQUFBLFVBQVVrRSxLQUV6QjVCLFNBQVV0QyxFQUFBLFVBQVVvRSxLQUNwQnpCLFFBQVMzQyxFQUFBLFVBQVVvRSxLQUtuQnRILEtBQU1rRCxFQUFBLFVBQVVtRSxPQUtoQnZILE1BQU9vRCxFQUFBLFVBQVVtRSxTQU1yQlYsTUFBT3pELEVBQUEsVUFBVXFFLEtBS2pCWCxXQUFZMUQsRUFBQSxVQUFVeEMsT0FLdEI4RyxVQUFXdEUsRUFBQSxVQUFVb0UsS0FLckJHLFlBQWF2RSxFQUFBLFVBQVVvRSxNQXpEVmxELEVBNERWc0QsY0FDSHJDLFlBQ0lFLFNBQVMsRUFDVE8sZUFBZSxHQUVuQmEsTUFBTyxLQUNQQyxjQUNBWSxVQUFXckQsRUFDWHNELFlBQWF0RCxHQXBFQUMsRUF1RVYwQyxhQUFlM0csT0FBT29CLEtBQUs2QyxFQUFTc0QsY05xQmcxTDFHLEVBQTZCLFFNNUZ2NExvRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID1cbi8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4vKioqKioqLyBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbi8qKioqKiovIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuLyoqKioqKi8gXHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdDtcbmZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2Upe3ZhciBvbWl0dGVkS2V5cz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMV06W107cmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsa2V5KXtpZihvbWl0dGVkS2V5cy5pbmRleE9mKGtleSk9PT0tMSl7aGFzaFtrZXldPXNvdXJjZVtrZXldO31yZXR1cm4gaGFzaDt9LHt9KTt9XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gdXVpZDtcbmZ1bmN0aW9uIHV1aWQoKXtyZXR1cm4nYi0nKyhbMWU3XSstMWUzKy00ZTMrLThlMystMWUxMSkucmVwbGFjZSgvWzAxOF0vZyxmdW5jdGlvbihhKXtyZXR1cm4oYV5NYXRoLnJhbmRvbSgpKjE2Pj5hLzQpLnRvU3RyaW5nKDE2KTt9KTt9XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpO1xuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfZXhwb3J0c19fLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19ib3VuZGxlc3NfdXRpbHNfdXVpZF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbnZhciBfZXh0ZW5kcz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0YXJnZXQpe2Zvcih2YXIgaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBzb3VyY2U9YXJndW1lbnRzW2ldO2Zvcih2YXIga2V5IGluIHNvdXJjZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSxrZXkpKXt0YXJnZXRba2V5XT1zb3VyY2Vba2V5XTt9fX1yZXR1cm4gdGFyZ2V0O307dmFyIF9jcmVhdGVDbGFzcz1mdW5jdGlvbigpe2Z1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LHByb3BzKXtmb3IodmFyIGk9MDtpPHByb3BzLmxlbmd0aDtpKyspe3ZhciBkZXNjcmlwdG9yPXByb3BzW2ldO2Rlc2NyaXB0b3IuZW51bWVyYWJsZT1kZXNjcmlwdG9yLmVudW1lcmFibGV8fGZhbHNlO2Rlc2NyaXB0b3IuY29uZmlndXJhYmxlPXRydWU7aWYoXCJ2YWx1ZVwiaW4gZGVzY3JpcHRvcilkZXNjcmlwdG9yLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCxkZXNjcmlwdG9yLmtleSxkZXNjcmlwdG9yKTt9fXJldHVybiBmdW5jdGlvbihDb25zdHJ1Y3Rvcixwcm90b1Byb3BzLHN0YXRpY1Byb3BzKXtpZihwcm90b1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLHByb3RvUHJvcHMpO2lmKHN0YXRpY1Byb3BzKWRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3Isc3RhdGljUHJvcHMpO3JldHVybiBDb25zdHJ1Y3Rvcjt9O30oKTtmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsQ29uc3RydWN0b3Ipe2lmKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3Rvcikpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7fX1mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLGNhbGwpe2lmKCFzZWxmKXt0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7fXJldHVybiBjYWxsJiYodHlwZW9mIGNhbGw9PT1cIm9iamVjdFwifHx0eXBlb2YgY2FsbD09PVwiZnVuY3Rpb25cIik/Y2FsbDpzZWxmO31mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3Msc3VwZXJDbGFzcyl7aWYodHlwZW9mIHN1cGVyQ2xhc3MhPT1cImZ1bmN0aW9uXCImJnN1cGVyQ2xhc3MhPT1udWxsKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2Ygc3VwZXJDbGFzcyk7fXN1YkNsYXNzLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MmJnN1cGVyQ2xhc3MucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6c3ViQ2xhc3MsZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfX0pO2lmKHN1cGVyQ2xhc3MpT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcyxzdXBlckNsYXNzKTpzdWJDbGFzcy5fX3Byb3RvX189c3VwZXJDbGFzczt9dmFyIGlzRnVuY3Rpb249ZnVuY3Rpb24gaXNGdW5jdGlvbih4KXtyZXR1cm4gdHlwZW9mIHg9PT0nZnVuY3Rpb24nO307dmFyIG5vb3A9ZnVuY3Rpb24gbm9vcCgpe307dmFyIENoZWNrYm94PWZ1bmN0aW9uKF9SZWFjdCRQdXJlQ29tcG9uZW50KXtfaW5oZXJpdHMoQ2hlY2tib3gsX1JlYWN0JFB1cmVDb21wb25lbnQpO2Z1bmN0aW9uIENoZWNrYm94KCl7dmFyIF9yZWY7dmFyIF90ZW1wLF90aGlzLF9yZXQ7X2NsYXNzQ2FsbENoZWNrKHRoaXMsQ2hlY2tib3gpO2Zvcih2YXIgX2xlbj1hcmd1bWVudHMubGVuZ3RoLGFyZ3M9QXJyYXkoX2xlbiksX2tleT0wO19rZXk8X2xlbjtfa2V5Kyspe2FyZ3NbX2tleV09YXJndW1lbnRzW19rZXldO31yZXR1cm4gX3JldD0oX3RlbXA9KF90aGlzPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKF9yZWY9Q2hlY2tib3guX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ2hlY2tib3gpKS5jYWxsLmFwcGx5KF9yZWYsW3RoaXNdLmNvbmNhdChhcmdzKSkpLF90aGlzKSxfdGhpcy5pZD1fX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX2JvdW5kbGVzc191dGlsc191dWlkX19bXCJhXCIgLyogZGVmYXVsdCAqL10pKCksX3RoaXMuaGFuZGxlQ2hhbmdlPWZ1bmN0aW9uKGV2ZW50KXtpZihfdGhpcy5wcm9wcy5pbnB1dFByb3BzLmRpc2FibGVkKXtyZXR1cm47fV90aGlzLnByb3BzWyFfdGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWQ/J29uQ2hlY2tlZCc6J29uVW5jaGVja2VkJ10oX3RoaXMucHJvcHMuaW5wdXRQcm9wcy5uYW1lKTtpZihpc0Z1bmN0aW9uKF90aGlzLnByb3BzLmlucHV0UHJvcHMub25DaGFuZ2UpKXtfdGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2hhbmdlKGV2ZW50KTt9fSxfdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihldmVudCl7aWYoX3RoaXMucHJvcHMuaW5wdXRQcm9wcy5kaXNhYmxlZCl7cmV0dXJuO31fdGhpcy5yZWZzLmlucHV0LmZvY3VzKCk7aWYoaXNGdW5jdGlvbihfdGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2xpY2spKXtfdGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2xpY2soZXZlbnQpO319LF90ZW1wKSxfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihfdGhpcyxfcmV0KTt9X2NyZWF0ZUNsYXNzKENoZWNrYm94LFt7a2V5Oidjb21wb25lbnREaWRNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKXtpZih0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSl7dGhpcy5zZXRJbmRldGVybWluYXRlKCk7fX19LHtrZXk6J2NvbXBvbmVudERpZFVwZGF0ZScsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcyl7aWYocHJldlByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSE9PXRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlKXt0aGlzLnNldEluZGV0ZXJtaW5hdGUoKTt9fX0se2tleTonc2V0SW5kZXRlcm1pbmF0ZScsdmFsdWU6ZnVuY3Rpb24gc2V0SW5kZXRlcm1pbmF0ZSgpe3RoaXMucmVmcy5pbnB1dC5pbmRldGVybWluYXRlPSEhdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGU7fX0se2tleTonZ2V0QXJpYVN0YXRlJyx2YWx1ZTpmdW5jdGlvbiBnZXRBcmlhU3RhdGUoKXtyZXR1cm4gdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGU/J21peGVkJzpTdHJpbmcodGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWQpO319LHtrZXk6J3JlbmRlcklucHV0Jyx2YWx1ZTpmdW5jdGlvbiByZW5kZXJJbnB1dCgpe3JldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuY3JlYXRlRWxlbWVudCgnaW5wdXQnLF9leHRlbmRzKHt9LF9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLmlucHV0UHJvcHMsJ2luZGV0ZXJtaW5hdGUnKSx7cmVmOidpbnB1dCcsdHlwZTonY2hlY2tib3gnLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQoKSgnYi1jaGVja2JveCcsdGhpcy5wcm9wcy5pbnB1dFByb3BzLmNsYXNzTmFtZSx7J2ItY2hlY2tib3gtbWl4ZWQnOnRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlLCdiLWNoZWNrYm94LWNoZWNrZWQnOnRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkLCdiLWNoZWNrYm94LXVuY2hlY2tlZCc6IXRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlJiYhdGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWR9KSxpZDp0aGlzLnByb3BzLmlucHV0UHJvcHMuaWR8fHRoaXMuaWQsJ2FyaWEtY2hlY2tlZCc6dGhpcy5nZXRBcmlhU3RhdGUoKSxvbkNoYW5nZTp0aGlzLmhhbmRsZUNoYW5nZSxvbkNsaWNrOnRoaXMuaGFuZGxlQ2xpY2t9KSk7fX0se2tleToncmVuZGVyTGFiZWwnLHZhbHVlOmZ1bmN0aW9uIHJlbmRlckxhYmVsKCl7aWYodGhpcy5wcm9wcy5sYWJlbCl7cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdsYWJlbCcsX2V4dGVuZHMoe30sdGhpcy5wcm9wcy5sYWJlbFByb3BzLHtyZWY6J2xhYmVsJyxjbGFzc05hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItY2hlY2tib3gtbGFiZWwnLHRoaXMucHJvcHMubGFiZWxQcm9wcy5jbGFzc05hbWUpLGh0bWxGb3I6dGhpcy5wcm9wcy5pbnB1dFByb3BzLmlkfHx0aGlzLmlkfSksdGhpcy5wcm9wcy5sYWJlbCk7fX19LHtrZXk6J3JlbmRlcicsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyKCl7cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jcmVhdGVFbGVtZW50KCdkaXYnLF9leHRlbmRzKHt9LF9fd2VicGFja19yZXF1aXJlX18uaShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLENoZWNrYm94LmludGVybmFsS2V5cykse3JlZjond3JhcHBlcicsY2xhc3NOYW1lOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWNoZWNrYm94LXdyYXBwZXInLHRoaXMucHJvcHMuY2xhc3NOYW1lKX0pLHRoaXMucmVuZGVySW5wdXQoKSx0aGlzLnJlbmRlckxhYmVsKCkpO319XSk7cmV0dXJuIENoZWNrYm94O30oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLlB1cmVDb21wb25lbnQpO0NoZWNrYm94LnByb3BUeXBlcz17aW5wdXRQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zaGFwZSh7Y2hlY2tlZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ib29sLGNsYXNzTmFtZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsZGlzYWJsZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uYm9vbCxpZDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5zdHJpbmcsaW5kZXRlcm1pbmF0ZTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ib29sLG9uQ2hhbmdlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsb25DbGljazpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLG5hbWU6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uc3RyaW5nLHZhbHVlOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLnN0cmluZ30pLGxhYmVsOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm5vZGUsbGFiZWxQcm9wczpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5vYmplY3Qsb25DaGVja2VkOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsb25VbmNoZWNrZWQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuY307Q2hlY2tib3guZGVmYXVsdFByb3BzPXtpbnB1dFByb3BzOntjaGVja2VkOmZhbHNlLGluZGV0ZXJtaW5hdGU6ZmFsc2V9LGxhYmVsOm51bGwsbGFiZWxQcm9wczp7fSxvbkNoZWNrZWQ6bm9vcCxvblVuY2hlY2tlZDpub29wfTtDaGVja2JveC5pbnRlcm5hbEtleXM9T2JqZWN0LmtleXMoQ2hlY2tib3guZGVmYXVsdFByb3BzKTsvKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJkZWZhdWx0XCJdID0gQ2hlY2tib3g7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gaW5kZXguanMiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCAzNjJlMjk4YmU1ZDBlMWQyOTAyYyIsIi8qKlxuICogUmV0dXJucyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIHN1cHBsaWVkIG9iamVjdCB3aXRob3V0IHRoZSBnaXZlbiBrZXlzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3Qoc291cmNlLCBvbWl0dGVkS2V5cyA9IFtdKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsIGtleSkge1xuICAgICAgICBpZiAob21pdHRlZEtleXMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICAgICAgaGFzaFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGFzaDtcbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwiLyoqXG4gKiBHZW5lcmF0ZXMgYSB1bmlxdWUgSUQuIEFkZHMgYSBwcmVmaXggc28gaXQgaXMgc3VpdGFibGUgZm9yIHVzZSBhcyBhbiBIVE1MIElELlxuICogQmFzZWQgb24ge0BsaW5rIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2plZC85ODI4ODMgdGhpcyBpbXBsZW1lbnRhdGlvbn0uXG4gKlxuICogQHJldHVybiB7c3RyaW5nfSBhIHVuaXF1ZSBpZGVudGlmaWVyXG4gKlxuICogQGV4YW1wbGVcbiAqIHV1aWQoKTsgLy8gYi0xZjJjZDI3Zi0wNzU0LTQzNDQtOWQyMC00MzZhMjAxYjJmODBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXVpZCgpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHJldHVybiAnYi0nICsgKFsxZTddKy0xZTMrLTRlMystOGUzKy0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLGE9PihhXk1hdGgucmFuZG9tKCkqMTY+PmEvNCkudG9TdHJpbmcoMTYpKTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtdXVpZC9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJjbGFzc25hbWVzXCJ9XG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBvbWl0IGZyb20gJ2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMnO1xuaW1wb3J0IHV1aWQgZnJvbSAnYm91bmRsZXNzLXV0aWxzLXV1aWQnO1xuXG5jb25zdCBpc0Z1bmN0aW9uID0gKHgpID0+IHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG4vKipcbiMgQ2hlY2tib3hcbl9fQW4gYWNjZXNzaWJsZSBjaGVja2JveCB3aXRoIGluZGV0ZXJtaW5hdGUgc3VwcG9ydC5fX1xuXG5DaGVja2JveCBpcyBpbXBsZW1lbnRlZCBhcyBhIFwiY29udHJvbGxlZCBpbnB1dFwiLCBtZWFuaW5nIGl0IGlzIGEgZGlyZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbCBkYXRhIHBhc3NlZFxuaW5zaWRlLiBVc2VyIGludGVyYWN0aW9uIHdpbGwgYnViYmxlIGNoYW5nZXMgaW4gdGhlIGZvcm0gb2YgYG9uQ2hlY2tlZGAgYW5kIGBvblVuY2hlY2tlZGAgdGhhdCBhIGNvbnRyb2xsZXJcbnZpZXcgbXVzdCBpbnRlcmNlcHQgYW5kIGFwcGx5IGFnYWluc3QgdGhlIGRhdGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENoZWNrYm94IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFsbCBpbnB1dC1zcGVjaWZpYyBwcm9wcyBsaWtlIGB2YWx1ZWAsIGBuYW1lYCwgZXRjIHNob3VsZCBiZSBwYXNzZWQgaGVyZSAtLSBjb21tb24gb25lcyBhcmUgbGlzdGVkIGJlbG93LlxuICAgICAgICAgKiBBbHNvIHN1cHBvcnRzIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWNoZWNrYm94YCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBpbnB1dFByb3BzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBkZXRlcm1pbmVzIGlmIHRoZSBjaGVja2JveCBpcyByZW5kZXJlZCBhcyBjaGVja2VkL3VuY2hlY2tlZCwgc2VlIFJlYWN0IFtcImNvbnRyb2xsZWQgaW5wdXRzXCJdKGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvZm9ybXMuaHRtbCNjb250cm9sbGVkLWNvbXBvbmVudHMpKVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjaGVja2VkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAgICAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHByZXZlbnRzIHRoZSBgb257Q2hlY2tlZCxVbmNoZWNrZWR9YCBldmVudHMgZnJvbSBmaXJpbmcgd2hlbiBgdHJ1ZWBcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogZW5hYmxlcyBvciBkaXNhYmxlcyBcIm1peGVkXCIgY2hlY2tib3ggc3RhdGUsIHJlYWQgdGhpcyBbQ1NTLVRyaWNrcyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2luZGV0ZXJtaW5hdGUtY2hlY2tib3hlcy8pICBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZXhhbXBsZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaW5kZXRlcm1pbmF0ZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAgICAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHJlbmRlcmVkIGFzIHRoZSBpbnB1dCBjb250cm9sJ3MgZm9ybSBuYW1lXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogIHBhc3NlZC10aHJvdWdoIHRvIHRoZSBpbnB1dCBub2RlLCBsaWtlIGBuYW1lYFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgfSksXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBSZWFjdC1yZW5kZXJhYmxlIGNvbnRlbnQsIG1vc3QgY29tbW9ubHkgYSBzaW1wbGUgc3RyaW5nXG4gICAgICAgICAqL1xuICAgICAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFueSBbUmVhY3Qtc3VwcG9ydGVkIGF0dHJpYnV0ZV0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90YWdzLWFuZC1hdHRyaWJ1dGVzLmh0bWwjaHRtbC1hdHRyaWJ1dGVzKTsgYXBwbGllZCB0byB0aGUgYC5iLWNoZWNrYm94LWxhYmVsYCBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBsYWJlbFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjYWxsZWQgd2hlbiB0aGUgZWxlbWVudCBiZWNvbWVzIGNoZWNrZWQ7IGJhY2tpbmcgZGF0YSBtdXN0IGJlIHVwZGF0ZWQgdG8gcGVyc2lzdCB0aGUgc3RhdGUgY2hhbmdlXG4gICAgICAgICAqL1xuICAgICAgICBvbkNoZWNrZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjYWxsZWQgd2hlbiB0aGUgZWxlbWVudCBiZWNvbWVzIHVuY2hlY2tlZDsgYmFja2luZyBkYXRhIG11c3QgYmUgdXBkYXRlZCB0byBwZXJzaXN0IHRoZSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICovXG4gICAgICAgIG9uVW5jaGVja2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB9XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBpbnB1dFByb3BzOiB7XG4gICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgICAgIGluZGV0ZXJtaW5hdGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogbnVsbCxcbiAgICAgICAgbGFiZWxQcm9wczoge30sXG4gICAgICAgIG9uQ2hlY2tlZDogbm9vcCxcbiAgICAgICAgb25VbmNoZWNrZWQ6IG5vb3AsXG4gICAgfVxuXG4gICAgc3RhdGljIGludGVybmFsS2V5cyA9IE9iamVjdC5rZXlzKENoZWNrYm94LmRlZmF1bHRQcm9wcylcblxuICAgIGlkID0gdXVpZCgpXG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEluZGV0ZXJtaW5hdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgICAgaWYgKHByZXZQcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUgIT09IHRoaXMucHJvcHMuaW5wdXRQcm9wcy5pbmRldGVybWluYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEluZGV0ZXJtaW5hdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEluZGV0ZXJtaW5hdGUoKSB7XG4gICAgICAgIHRoaXMucmVmcy5pbnB1dC5pbmRldGVybWluYXRlID0gISF0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHsgLy8gU2VuZCB0aGUgb3Bwb3NpdGUgc2lnbmFsIGZyb20gd2hhdCB3YXMgcGFzc2VkIHRvIHRvZ2dsZSB0aGUgZGF0YVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5pbnB1dFByb3BzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucHJvcHNbIXRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkID8gJ29uQ2hlY2tlZCcgOiAnb25VbmNoZWNrZWQnXSh0aGlzLnByb3BzLmlucHV0UHJvcHMubmFtZSk7XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2hhbmdlKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmlucHV0UHJvcHMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5yZWZzLmlucHV0LmZvY3VzKCk7XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpcy5wcm9wcy5pbnB1dFByb3BzLm9uQ2xpY2spKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmlucHV0UHJvcHMub25DbGljayhldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRBcmlhU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiBTdHJpbmcodGhpcy5wcm9wcy5pbnB1dFByb3BzLmNoZWNrZWQpO1xuICAgIH1cblxuICAgIHJlbmRlcklucHV0KCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcy5pbnB1dFByb3BzLCAnaW5kZXRlcm1pbmF0ZScpfVxuICAgICAgICAgICAgICAgIHJlZj0naW5wdXQnXG4gICAgICAgICAgICAgICAgdHlwZT0nY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1jaGVja2JveCcsIHRoaXMucHJvcHMuaW5wdXRQcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgJ2ItY2hlY2tib3gtbWl4ZWQnOiB0aGlzLnByb3BzLmlucHV0UHJvcHMuaW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgJ2ItY2hlY2tib3gtY2hlY2tlZCc6IHRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkLFxuICAgICAgICAgICAgICAgICAgICAnYi1jaGVja2JveC11bmNoZWNrZWQnOiAhdGhpcy5wcm9wcy5pbnB1dFByb3BzLmluZGV0ZXJtaW5hdGUgJiYgIXRoaXMucHJvcHMuaW5wdXRQcm9wcy5jaGVja2VkLFxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIGlkPXt0aGlzLnByb3BzLmlucHV0UHJvcHMuaWQgfHwgdGhpcy5pZH1cbiAgICAgICAgICAgICAgICBhcmlhLWNoZWNrZWQ9e3RoaXMuZ2V0QXJpYVN0YXRlKCl9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2xpY2t9IC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyTGFiZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5sYWJlbFByb3BzfVxuICAgICAgICAgICAgICAgICAgICByZWY9J2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KCdiLWNoZWNrYm94LWxhYmVsJywgdGhpcy5wcm9wcy5sYWJlbFByb3BzLmNsYXNzTmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIGh0bWxGb3I9e3RoaXMucHJvcHMuaW5wdXRQcm9wcy5pZCB8fCB0aGlzLmlkfT5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMubGFiZWx9XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgey4uLm9taXQodGhpcy5wcm9wcywgQ2hlY2tib3guaW50ZXJuYWxLZXlzKX1cbiAgICAgICAgICAgICAgICByZWY9J3dyYXBwZXInXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeCgnYi1jaGVja2JveC13cmFwcGVyJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJJbnB1dCgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtY2hlY2tib3gvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9
import React, {PropTypes} from 'react';
import cx from 'classnames';
import isFunction from '../boundless-utils-is-function/index';
import noop from '../boundless-utils-noop/index';
import omit from '../boundless-utils-omit-keys/index';
import uuid from '../boundless-utils-uuid/index';
import omit from 'boundless-utils-omit-keys';
import uuid from 'boundless-utils-uuid';
const isFunction = (x) => typeof x === 'function';
const noop = () => {};
/**

@@ -10,0 +11,0 @@ # Checkbox

@@ -5,2 +5,3 @@ /* eslint no-unused-expressions:0 */

import ReactDOM from 'react-dom';
import sinon from 'sinon';

@@ -10,4 +11,2 @@ import Checkbox from './index';

import sinon from 'sinon';
describe('Checkbox component', () => {

@@ -14,0 +13,0 @@ const mountNode = document.body.appendChild(document.createElement('div'));

{
"name": "boundless-checkbox",
"version": "1.0.0-beta.5",
"version": "1.0.0-beta.6",
"description": "An accessible checkbox with indeterminate support.",
"browser": "build/index.js",
"main": "build/index.js",
"module": "index.js",
"repository": {

@@ -26,10 +27,6 @@ "type": "git",

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

@@ -36,0 +33,0 @@ "react": ">= 15.3",

@@ -57,3 +57,3 @@ THIS IS AN AUTOGENERATED FILE. EDIT INDEX.JS INSTEAD.

<td><pre><code>function</code></pre></td>
<td><pre><code class="language-js">noop</code></pre></td>
<td><pre><code class="language-js">() => {}</code></pre></td>
<td>called when the element becomes checked; backing data must be updated to persist the state change</td>

@@ -65,3 +65,3 @@ </tr>

<td><pre><code>function</code></pre></td>
<td><pre><code class="language-js">noop</code></pre></td>
<td><pre><code class="language-js">() => {}</code></pre></td>
<td>called when the element becomes unchecked; backing data must be updated to persist the state change</td>

@@ -72,1 +72,2 @@ </tr>

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