!function(e){var n={};function l(I){if(n[I])return n[I].exports;var t=n[I]={i:I,l:!1,exports:{}};return e[I].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,n,I){l.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:I})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,n){if(1&n&&(e=l(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var I=Object.create(null);if(l.r(I),Object.defineProperty(I,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var t in e)l.d(I,t,function(n){return e[n]}.bind(null,t));return I},l.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(n,"a",n),n},l.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},l.p="",l(l.s=38)}([function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return request; });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar request = function request(data) {\n data.method = data.methods || 'POST';\n return new Promise(function (resolve) {\n $.ajax(_objectSpread(_objectSpread({}, data), {}, {\n success: function success(res) {\n resolve(res);\n }\n }));\n });\n};\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3JlcXVlc3QuanM/MmI3YyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZXF1ZXN0ID0gZnVuY3Rpb24oZGF0YSkge1xyXG4gIGRhdGEubWV0aG9kID0gZGF0YS5tZXRob2RzIHx8ICdQT1NUJ1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7XHJcbiAgICAkLmFqYXgoe1xyXG4gICAgICAuLi5kYXRhLFxyXG4gICAgICBzdWNjZXNzKHJlcykge1xyXG4gICAgICAgIHJlc29sdmUocmVzKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH0pXHJcbn1cclxuXHJcbmV4cG9ydCB7IHJlcXVlc3QgfVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBO0FBQ0E7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n")},function(module,exports){eval('function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n}\n\nmodule.exports = _classCallCheck;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanM/NWMzOSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjazsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n')},function(module,exports){eval('function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanM/NGY5MSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICByZXR1cm4gQ29uc3RydWN0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2NyZWF0ZUNsYXNzOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('var studentLevelListHeadTpl = "
  • \\n
    \\n
    \\u5B66\\u751F\\u5C42\\u6B21
    \\n
    \\n
    \\n
    \\u5212\\u5206\\u89C4\\u5219
    \\n
    \\n
  • ";\nvar studentLevelListItemTpl = "
  • \\n
    \\n
    {level}
    \\n
    \\n
    \\n
    \\n
    \\n \\u73ED\\u7EA7\\u6392\\u540D\\uFF1A\\n \\u5F97\\u5206\\u7387\\uFF1A\\n \\n %\\n \\n \\n %\\n \\u540D\\n
    \\n
    \\n
    \\n
  • ";\nvar errorPushTableHeadTpl = "
  • \\n
    \\n
    \\u5B66\\u751F\\u5C42\\u6B21
    \\n
    \\n
    \\n
    \\u9519\\u9898\\u63A8\\u9001\\uFF08\\u53EF\\u8BBE\\u7F6E\\u8FC7\\u6EE4\\u6761\\u4EF6\\uFF0C\\u51CF\\u5C11\\u5B66\\u751F\\u7684\\u9519\\u9898\\u63A8\\u9001\\uFF09
    \\n
    \\n
    \\n
    \\u62D3\\u5C55\\u8BAD\\u7EC3\\u9898\\u63A8\\u9001\\uFF08\\u5F97\\u6EE1\\u5206\\u6216\\u9519\\u9898\\u5C11\\u7684\\u5B66\\u751F\\uFF0C\\u53EF\\u63A8\\u90013\\u9053\\u7EC3\\u4E60\\u9898\\uFF09
    \\n
    \\n
  • ";\nvar errorPushItem = "
  • \\n
    \\n
    {level}
    \\n
    \\n
    \\n
    \\n
    \\n {errorPushLimit}\\n \\u8BBE\\u7F6E\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
  • ";\nvar modalTpl = "
    \\n
    \\n

    \\u9519\\u9898\\u63A8\\u9001\\u89C4\\u5219\\u8BBE\\u7F6EX

    \\n
    \\n
    \\n \\u9009\\u62E9\\u9898:\\n
    \\n
    \\n
    \\n \\u6263\\u4E86\\u5206\\u5C31\\u63A8\\n
    \\n
    \\n \\u53EA\\u63A8\\u5F970\\u5206\\u7684\\n
    \\n
    \\n \\u4E0D\\u63A8\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\u586B\\u7A7A\\u9898:\\n
    \\n
    \\n
    \\n \\u6263\\u4E86\\u5206\\u5C31\\u63A8\\n
    \\n
    \\n \\u53EA\\u63A8\\u5F970\\u5206\\u7684\\n
    \\n
    \\n \\u4E0D\\u63A8\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\u89E3\\u7B54\\u9898:\\n
    \\n
    \\n
    \\n \\u6263\\u4E86\\u5206\\u5C31\\u63A8\\n
    \\n
    \\n \\u62633\\u5206\\u4EE5\\u4E0A\\u624D\\u63A8\\n
    \\n
    \\n \\u6263\\u4E00\\u534A\\u4EE5\\u4E0A\\u5206\\u624D\\u63A8\\n
    \\n
    \\n \\u4E0D\\u63A8\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\u9009\\u505A\\u9898:\\n
    \\n
    \\n
    \\n \\u6263\\u4E86\\u5206\\u5C31\\u63A8\\n
    \\n
    \\n \\u62633\\u5206\\u4EE5\\u4E0A\\u624D\\u63A8\\n
    \\n
    \\n \\u6263\\u4E00\\u534A\\u4EE5\\u4E0A\\u5206\\u624D\\u63A8\\n
    \\n
    \\n \\u4E0D\\u63A8\\n
    \\n
    \\n
    \\n
    \\n
    \\n \\u9519\\u9898\\u96BE\\u5EA6:\\n
    \\n
    \\n
    \\n \\u63A8\\u57FA\\u7840\\u9898\\n
    \\n
    \\n \\u63A8\\u4E2D\\u6863\\u9898\\n
    \\n
    \\n \\u63A8\\u57F9\\u4F18\\u9898\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\u4FDD\\u5B58
    \\n
    \\n
    \\n
    \\n
    ";\nvar trainPushRuleHeadTpl = "
  • \\n
    \\u5B66\\u751F\\u5C42\\u6B21
    \\n
    \\n
    \\n
    \\u63A8\\u9001\\u6570\\u91CF
    \\n
    \\n
    \\n
    \\u63A8\\u9001\\u96BE\\u5EA6
    \\n
    \\n
  • ";\nvar trainPushRuleItemTpl = "
  • \\n
    \\n
    {label}
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\u9009\\u62E9\\u9898\\n \\n
    \\n
    \\n \\u586B\\u7A7A\\u9898\\n \\n
    \\n
    \\n \\u89E3\\u7B54\\u9898\\n \\n
    \\n
    \\n \\u9009\\u505A\\u9898\\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n {pushDifficultyOptions}\\n
    \\n
    \\n
    \\n
  • ";\nvar trainPushDifficultyItemTpl = "
    \\n\\u7B2C{titleNumber}\\u9898\\n\\n
    ";\nvar errorTemplateItemTpl = "
    \\n
    \\n \\"\\"\\n {targetTypeText}\\n
    \\n
    \\n

    {template_name}

    \\n \\n
    \\n
    \\n \\u590D\\u5236\\n \\u6539\\u540D\\n \\u5220\\u9664\\n \\u8BBE\\u7F6E\\n
    \\n
    ";\nvar errorTemplateItemTplForCustom = "
    \\n
    \\n \\"\\"\\n {template_target}\\n
    \\n
    {template_name}
    \\n
    ";\nvar selectOptionItemTpl = "";\nvar customMadeListHeadForClassTpl = "
  • \\n
    \\n
    \\u5E74\\u7EA7
    \\n
    \\n
    \\n
    \\u73ED\\u7EA7
    \\n
    \\n
    \\n
    \\u73ED\\u7EA7\\u5C42\\u6B21
    \\n
    \\n
    \\n
    \\u9519\\u9898\\u672C\\u6A21\\u7248
    \\n
    \\n
    \\n
    \\u4E24\\u6B65\\u63D0\\u5206\\u5B9D\\u6A21\\u7248
    \\n
    \\n
    \\n
    \\u4E09\\u6B65\\u63D0\\u5206\\u5B9D\\u6A21\\u7248
    \\n
    \\n
  • ";\nvar customMadeListHeadForStudentTpl = "
  • \\n
    \\n
    \\u5B66\\u751F\\u59D3\\u540D
    \\n
    \\n
    \\n
    \\u7CFB\\u7EDF\\u51C6\\u8003\\u8BC1\\u53F7
    \\n
    \\n
    \\n
    \\u5E74\\u7EA7
    \\n
    \\n
    \\n
    \\u73ED\\u7EA7
    \\n
    \\n
    \\n
    \\u9519\\u9898\\u672C\\u6A21\\u7248
    \\n
    \\n
    \\n
    \\u4E24\\u6B65\\u63D0\\u5206\\u5B9D\\u6A21\\u7248
    \\n
    \\n
    \\n
    \\u4E09\\u6B65\\u63D0\\u5206\\u5B9D\\u6A21\\u7248
    \\n
    \\n
  • ";\nvar studentOptionalCardHeadTpl = "
  • \\n
    \\n
    \\u5B66\\u751F\\u59D3\\u540D
    \\n
    \\n
    \\n
    \\u7CFB\\u7EDF\\u51C6\\u8003\\u8BC1\\u53F7
    \\n
    \\n
    \\n
    \\u5E74\\u7EA7
    \\n
    \\n
    \\n
    \\u73ED\\u7EA7
    \\n
    \\n
    \\n
    \\u64CD\\u4F5C
    \\n
    \\n
  • ";\nvar customMadeListItemForClassTpl = "
  • \\n
    \\n
    {grade_value}
    \\n
    \\n
    \\n
    {class_name}
    \\n
    \\n
    \\n
    {level}
    \\n
    \\n
    \\n
    {error_book_name}
    \\n
    \\n
    \\n
    {step2_name}
    \\n
    \\n
    \\n
    {step3_name}
    \\n
    \\n
  • ";\nvar customMadeListItemForStudentTpl = "
  • \\n
    \\n
    {student_name}
    \\n
    \\n
    \\n
    {student_card}
    \\n
    \\n
    \\n
    {grade_value}
    \\n
    \\n
    \\n
    {class_name}
    \\n
    \\n
    \\n
    {error_book_name}
    \\n
    \\n
    \\n
    {step2_name}
    \\n
    \\n
    \\n
    {step3_name}
    \\n
    \\n
  • ";\nvar studentOptionalCardItemTpl = "
  • \\n
    \\n
    {student_name}
    \\n
    \\n
    \\n
    {student_card}
    \\n
    \\n
    \\n
    {grade_name}
    \\n
    \\n
    \\n
    {class_name}
    \\n
    \\n
    \\n \\n
    \\n
  • ";\nvar studentBaseInfoTpl = " \\u59D3\\u540D\\uFF1A{student_name} \\n\\u7CFB\\u7EDF\\u51C6\\u8003\\u8BC1\\u53F7\\uFF1A{student_card} \\n\\u5E74\\u7EA7\\uFF1A{grade_name}\\n\\u73ED\\u7EA7\\uFF1A{class_name}";\nvar radioItemTpl = "
    \\n{text}\\n
    ";\nvar modifySingleOptionCardItem = "
  • \\n{num}\\u3001{key}\\n
    \\n {radioContent} \\n
    \\n
  • ";\nvar checkItemTpl = "
    \\n{text}\\n
    ";\nvar modifyMoreOptionCardItem = "
  • \\n{num}\\u3001{key}\\n
    \\n {radioContent} \\n
    \\n
  • ";\n/* harmony default export */ __webpack_exports__["a"] = ({\n studentLevelListHeadTpl: studentLevelListHeadTpl,\n studentLevelListItemTpl: studentLevelListItemTpl,\n errorPushTableHeadTpl: errorPushTableHeadTpl,\n errorPushItem: errorPushItem,\n modalTpl: modalTpl,\n trainPushRuleHeadTpl: trainPushRuleHeadTpl,\n trainPushRuleItemTpl: trainPushRuleItemTpl,\n trainPushDifficultyItemTpl: trainPushDifficultyItemTpl,\n errorTemplateItemTpl: errorTemplateItemTpl,\n errorTemplateItemTplForCustom: errorTemplateItemTplForCustom,\n selectOptionItemTpl: selectOptionItemTpl,\n customMadeListHeadForClassTpl: customMadeListHeadForClassTpl,\n customMadeListItemForClassTpl: customMadeListItemForClassTpl,\n customMadeListHeadForStudentTpl: customMadeListHeadForStudentTpl,\n customMadeListItemForStudentTpl: customMadeListItemForStudentTpl,\n studentOptionalCardHeadTpl: studentOptionalCardHeadTpl,\n studentOptionalCardItemTpl: studentOptionalCardItemTpl,\n studentBaseInfoTpl: studentBaseInfoTpl,\n modifySingleOptionCardItem: modifySingleOptionCardItem,\n radioItemTpl: radioItemTpl,\n modifyMoreOptionCardItem: modifyMoreOptionCardItem,\n checkItemTpl: checkItemTpl\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3RlbXBsYXRlLmpzP2E3MTkiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHN0dWRlbnRMZXZlbExpc3RIZWFkVHBsID0gYDxsaSBjbGFzcz1cInJvdyB0aXRsZVwiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lrabnlJ/lsYLmrKE8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7liJLliIbop4TliJk8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5sZXQgc3R1ZGVudExldmVsTGlzdEl0ZW1UcGwgPSBgPGxpIGNsYXNzPVwicm93XCI+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHcxMDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntsZXZlbH08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZUl0ZW1cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7Z3JhZGVDbGFzc31cIj7nj63nuqfmjpLlkI3vvJo8L2k+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3Njb3JlQ2xhc3N9XCI+5b6X5YiG546H77yaPC9pPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRhLXZhbHVlPVwidmFsdWVTdGFydFwiIHtpc0dyYWRlRGlzYWJsZWR9IHtpc0VuZERpc2FibGVkfSBkYXRhLWluZGV4PVwie2luZGV4fVwiIHZhbHVlPVwie3ZhbHVlU3Rhcn1cIiAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cIntzY29yZUNsYXNzfVwiPiU8L2k+XHJcbiAgICAgICAgICAgIDxsYWJlbD5+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGF0YS12YWx1ZT1cInZhbHVlRW5kXCIge2lzU3RhcnREaXNhYmxlZH0gZGF0YS1pbmRleD1cIntpbmRleH1cIiB2YWx1ZT1cInt2YWx1ZUVufVwiIC8+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3Njb3JlQ2xhc3N9XCI+JTwvaT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7Z3JhZGVDbGFzc31cIj7lkI08L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5cclxubGV0IGVycm9yUHVzaFRhYmxlSGVhZFRwbCA9IGA8bGkgY2xhc3M9XCJyb3cgdGl0bGVcIj5cclxuPGRpdiBjbGFzcz1cImNlbGwgdzEwMCB7c3R1ZGVudEhpZGVDbGFzc31cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPuWtpueUn+WxguasoTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPumUmemimOaOqOmAge+8iOWPr+iuvue9rui/h+a7pOadoeS7tu+8jOWHj+WwkeWtpueUn+eahOmUmemimOaOqOmAge+8iTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPuaLk+Wxleiuree7g+mimOaOqOmAge+8iOW+l+a7oeWIhuaIlumUmemimOWwkeeahOWtpueUn++8jOWPr+aOqOmAgTPpgZPnu4PkuaDpopjvvIk8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5sZXQgZXJyb3JQdXNoSXRlbSA9IGA8bGkgY2xhc3M9XCJyb3dcIj5cclxuPGRpdiBjbGFzcz1cImNlbGwgdzEwMCB7c3R1ZGVudEhpZGVDbGFzc31cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntsZXZlbH08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHVzaFRpcFwiPlxyXG4gICAgICAgICAgICA8aT57ZXJyb3JQdXNoTGltaXR9PC9pPlxyXG4gICAgICAgICAgICA8ZW0gZGF0YS1pbmRleD1cIntpbmRleH1cIj7orr7nva48L2VtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhfc3dpdGNoIHtkaXNhYmVsZENsYXNzfVwiIGNsYXNzPVwie2lzQ3VycmVudH1cIiBkYXRhLWluZGV4PVwie2luZGV4fVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48L2xpPmBcclxuXHJcbmxldCBtb2RhbFRwbCA9IGA8ZGl2IGlkPVwiaGdjX21vZGFsQm94XCI+XHJcbjxkaXYgY2xhc3M9XCJoZ2NfbW9kYWxcIj5cclxuICAgIDxoMiBjbGFzcz1cInRpdGxlXCI+6ZSZ6aKY5o6o6YCB6KeE5YiZ6K6+572uPGkgY2xhc3M9XCJoY2xvc2VcIj5YPC9pPjwvaDI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxDb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcG9ydEl0ZW1cIj5cclxuICAgICAgICAgICAgPGVtIGNsYXNzPVwib3B0aW9uVGl0bGVcIj7pgInmi6npopg6PC9lbT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNDb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9yYWRpb0JveFwiIGRhdGEtbmFtZT1cInNlbGVjdFwiIGlkPVwic2VsZWN0VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvSXRlbSBydWxlSXRlbVwiIGRhdGEtdmFsdWU9XCJwdXNoTG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aT48L2k+PGVtPuaJo+S6huWIhuWwseaOqDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2haZXJvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5Y+q5o6o5b6XMOWIhueahDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2hOb25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5LiN5o6oPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwb3J0SXRlbVwiPlxyXG4gICAgICAgICAgICA8ZW0gY2xhc3M9XCJvcHRpb25UaXRsZVwiPuWhq+epuumimDo8L2VtPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0NvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvQm94XCIgZGF0YS1uYW1lPVwiZmlsbEluQmxhbmtcIiBpZD1cImZpbGxJbkJsYW5rVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvSXRlbSBydWxlSXRlbVwiIGRhdGEtdmFsdWU9XCJwdXNoTG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aT48L2k+PGVtPuaJo+S6huWIhuWwseaOqDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2haZXJvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5Y+q5o6o5b6XMOWIhueahDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2hOb25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5LiN5o6oPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwb3J0SXRlbVwiPlxyXG4gICAgICAgICAgICA8ZW0gY2xhc3M9XCJvcHRpb25UaXRsZVwiPuino+etlOmimDo8L2VtPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc0NvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvQm94XCIgZGF0YS1uYW1lPVwiYW5zd2VyXCIgaWQ9XCJhbnN3ZXJUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2hMb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5omj5LqG5YiG5bCx5o6oPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9yYWRpb0l0ZW0gcnVsZUl0ZW1cIiBkYXRhLXZhbHVlPVwicHVzaFRocmVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5omjM+WIhuS7peS4iuaJjeaOqDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9JdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cInB1c2hIYWxmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5omj5LiA5Y2K5Lul5LiK5YiG5omN5o6oPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9yYWRpb0l0ZW0gcnVsZUl0ZW1cIiBkYXRhLXZhbHVlPVwicHVzaE5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPjxlbT7kuI3mjqg8L2VtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBvcnRJdGVtXCI+XHJcbiAgICAgICAgICAgIDxlbSBjbGFzcz1cIm9wdGlvblRpdGxlXCI+6YCJ5YGa6aKYOjwvZW0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zQ29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfcmFkaW9Cb3hcIiBkYXRhLW5hbWU9XCJjaG9vc2VBbnN3ZXJcIiBpZD1cImNob29zZUFuc3dlclR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9yYWRpb0l0ZW0gcnVsZUl0ZW1cIiBkYXRhLXZhbHVlPVwicHVzaExvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPjxlbT7miaPkuobliIblsLHmjqg8L2VtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvSXRlbSBydWxlSXRlbVwiIGRhdGEtdmFsdWU9XCJwdXNoVGhyZWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPjxlbT7miaMz5YiG5Lul5LiK5omN5o6oPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9yYWRpb0l0ZW0gcnVsZUl0ZW1cIiBkYXRhLXZhbHVlPVwicHVzaEhhbGZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPjxlbT7miaPkuIDljYrku6XkuIrliIbmiY3mjqg8L2VtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX3JhZGlvSXRlbSBydWxlSXRlbVwiIGRhdGEtdmFsdWU9XCJwdXNoTm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aT48L2k+PGVtPuS4jeaOqDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcG9ydEl0ZW1cIj5cclxuICAgICAgICAgICAgPGVtIGNsYXNzPVwib3B0aW9uVGl0bGVcIj7plJnpopjpmr7luqY6PC9lbT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNDb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9jaGVja0JveFwiIGRhdGEtbmFtZT1cImRpZmZpY3VsdHlcIiBpZD1cImVycm9yVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoX2NoZWNrSXRlbSBydWxlSXRlbVwiIGRhdGEtdmFsdWU9XCIxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPjwvaT48ZW0+5o6o5Z+656GA6aKYPC9lbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaF9jaGVja0l0ZW0gcnVsZUl0ZW1cIiBkYXRhLXZhbHVlPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aT48L2k+PGVtPuaOqOS4reaho+mimDwvZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhfY2hlY2tJdGVtIHJ1bGVJdGVtXCIgZGF0YS12YWx1ZT1cIjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPjxlbT7mjqjln7nkvJjpopg8L2VtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXRCdG5zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYnRuIGVuc3VyZVwiPuS/neWtmDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48L2Rpdj5gXHJcblxyXG5sZXQgdHJhaW5QdXNoUnVsZUhlYWRUcGwgPSBgPGxpIGNsYXNzPVwicm93IHRpdGxlXCI+PGRpdiBjbGFzcz1cImNlbGwgdzgwIHtzdHVkZW50SGlkZUNsYXNzfVwiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lrabnlJ/lsYLmrKE8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHc0OTBcIj5cclxuPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+5o6o6YCB5pWw6YePPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7mjqjpgIHpmr7luqY8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5cclxubGV0IHRyYWluUHVzaFJ1bGVJdGVtVHBsID0gYDxsaSBjbGFzcz1cInJvd1wiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3ODAge3N0dWRlbnRIaWRlQ2xhc3N9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57bGFiZWx9PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3NDkwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHVzaFNldFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcERvd24gcHVzaE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPumAieaLqemimDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgZGF0YS1pbmRleD1cIntpbmRleH1cIiBkYXRhLXZhbHVlPVwic2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIiB7aXNPbmVTZWxlY3RTZWxlY3RlZH0+MemFjTE8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiIHtpc1R3b05vU2VsZWN0U2VsZWN0ZWR9PjHphY0yPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIiB7aXNUaHJlZVNlbGVjdFNlbGVjdGVkfT4x6YWNMzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcERvd24gcHVzaE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPuWhq+epuumimDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgZGF0YS1pbmRleD1cIntpbmRleH1cIiBkYXRhLXZhbHVlPVwiZmlsbEluQmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiIHtpc09uZUZpbGxJbkJsYW5rU2VsZWN0ZWR9PjHphY0xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIiB7aXNUd29GaWxsSW5CbGFua1NlbGVjdGVkfT4x6YWNMjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCIge2lzVGhyZWVGaWxsSW5CbGFua1NlbGVjdGVkfT4x6YWNMzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcERvd24gcHVzaE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPuino+etlOmimDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgZGF0YS1pbmRleD1cIntpbmRleH1cIiBkYXRhLXZhbHVlPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIiB7aXNPbmVBbnN3ZXJTZWxlY3RlZH0+MemFjTE8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiIHtpc1R3b0Fuc3dlclNlbGVjdGVkfT4x6YWNMjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCIge2lzVGhyZWVBbnN3ZXJTZWxlY3RlZH0+MemFjTM8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3BEb3duIHB1c2hOdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj7pgInlgZrpopg8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGRhdGEtaW5kZXg9XCJ7aW5kZXh9XCIgZGF0YS12YWx1ZT1cImNob29zZUFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCIge2lzT25lQ2hvb3NlQW5zd2VyU2VsZWN0ZWR9PjHphY0xPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIiB7aXNUd29DaG9vc2VBbnN3ZXJTZWxlY3RlZH0+MemFjTI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiIHtpc1RocmVlQ2hvb3NlQW5zd2VyU2VsZWN0ZWR9PjHphY0zPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHVzaFNldFwiPlxyXG4gICAgICAgICAgICB7cHVzaERpZmZpY3VsdHlPcHRpb25zfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48L2xpPmBcclxubGV0IHRyYWluUHVzaERpZmZpY3VsdHlJdGVtVHBsID0gYDxkaXYgY2xhc3M9XCJkcm9wRG93biBwdXNoRGlmZmljdWx0eVwiPlxyXG48c3BhbiBjbGFzcz1cInZhbHVlXCI+56yse3RpdGxlTnVtYmVyfemimDwvc3Bhbj5cclxuPHNlbGVjdCBkYXRhLWluZGV4PVwie2luZGV4fVwiIGRhdGEtcGFyZW50SW5kZXg9XCJ7cGFyZW50SW5kZXh9XCI+XHJcbiAgICA8b3B0aW9uIHZhbHVlPVwiMFwiIHtkaWZmY3VsdHlEZWZhdWx0U2VsZWN0fT7kuI7plJnpopjpmr7luqbnm7jlkIw8L29wdGlvbj5cclxuICAgIDxvcHRpb24gdmFsdWU9XCIxXCIge2RpZmZjdWx0eVplcm9TZWxlY3R9PumZjeS9juS4gOe6p+mavuW6pjwvb3B0aW9uPlxyXG4gICAgPG9wdGlvbiB2YWx1ZT1cIjNcIiB7ZGlmZmN1bHR5VHdvU2VsZWN0fT7lop7liqDkuIDnuqfpmr7luqY8L29wdGlvbj5cclxuPC9zZWxlY3Q+XHJcbjwvZGl2PmBcclxubGV0IGVycm9yVGVtcGxhdGVJdGVtVHBsID0gYDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZUl0ZW1cIiBzdHlsZT1cInotaW5kZXg6e2luZGV4fVwiPlxyXG48ZGl2IGNsYXNzPVwicGljXCI+XHJcbiAgICA8aW1nIHNyYz1cIntpbWdVcmx9XCIgYWx0PVwiXCI+XHJcbiAgICA8aT57dGFyZ2V0VHlwZVRleHR9PC9pPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRleHRcIj5cclxuICAgIDxwIGNsYXNzPVwidGVtcHZhbHVlIHRlbXBOYW1lT3V0cHV0IHRlbXBOYW1lXCI+e3RlbXBsYXRlX25hbWV9PC9wPlxyXG4gICAgPHRleHRhcmVhIGNsYXNzPVwidGVtcHZhbHVlIHRlbXBOYW1lSW5wdXQgdGVtcE5hbWVcIiBtYXhMZW5ndGg9XCIxNVwiIGRhdGEtaWQ9XCJ7dGVtcGxhdGVfaWR9XCI+e3RlbXBsYXRlX25hbWV9PC90ZXh0YXJlYT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJzZXRCdG5zXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInRoZW1lIGNvcHlcIiBkYXRhLWlkPVwie3RlbXBsYXRlX2lkfVwiPuWkjeWItjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwidGhlbWUgY2hhbmdlXCIgZGF0YS1pZD1cInt0ZW1wbGF0ZV9pZH1cIj7mlLnlkI08L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cInRoZW1lIGRlbFwiIGRhdGEtaWQ9XCJ7dGVtcGxhdGVfaWR9XCI+5Yig6ZmkPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0aGVtZSBzZXRcIiBkYXRhLWlkPVwie3RlbXBsYXRlX2lkfVwiIGRhdGEtdGFyZ2V0VHlwZT1cInt0YXJnZXRfdHlwZX1cIiBkYXRhLXByb2R1Y3RUeXBlPVwie3Byb2R1Y3RfdHlwZX1cIj7orr7nva48L3NwYW4+XHJcbjwvZGl2PlxyXG48L2Rpdj5gXHJcblxyXG5sZXQgZXJyb3JUZW1wbGF0ZUl0ZW1UcGxGb3JDdXN0b20gPSBgPGRpdiBjbGFzcz1cInRlbXBsYXRlSXRlbSB7Y3VycmVudFN0YXR1c31cIiBkYXRhLWlkPVwie3RlbXBsYXRlX2lkfVwiPlxyXG48ZGl2IGNsYXNzPVwicGljXCI+XHJcbiAgICA8aW1nIHNyYz1cIntpbWdVcmx9XCIgYWx0PVwiXCI+XHJcbiAgICA8aT57dGVtcGxhdGVfdGFyZ2V0fTwvaT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0ZXh0XCI+e3RlbXBsYXRlX25hbWV9PC9kaXY+XHJcbjwvZGl2PmBcclxuXHJcbmxldCBzZWxlY3RPcHRpb25JdGVtVHBsID0gYDxvcHRpb24gdmFsdWU9XCJ7Y2xhc3NfaWR9XCI+e2NsYXNzX25hbWV9PC9vcHRpb24+YFxyXG5cclxubGV0IGN1c3RvbU1hZGVMaXN0SGVhZEZvckNsYXNzVHBsID0gYDxsaSBjbGFzcz1cInJvdyB0aXRsZVwiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lubTnuqc8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHcxMDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPuePree6pzwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGwgdzEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+54+t57qn5bGC5qyhPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+6ZSZ6aKY5pys5qih54mIPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+5Lik5q2l5o+Q5YiG5a6d5qih54mIPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+5LiJ5q2l5o+Q5YiG5a6d5qih54mIPC9kaXY+XHJcbjwvZGl2PlxyXG48L2xpPmBcclxuXHJcbmxldCBjdXN0b21NYWRlTGlzdEhlYWRGb3JTdHVkZW50VHBsID0gYDxsaSBjbGFzcz1cInJvdyB0aXRsZVwiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lrabnlJ/lp5PlkI08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHcxNTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPuezu+e7n+WHhuiAg+ivgeWPtzwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGwgdzEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+5bm057qnPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7nj63nuqc8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7plJnpopjmnKzmqKHniYg8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7kuKTmraXmj5DliIblrp3mqKHniYg8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7kuInmraXmj5DliIblrp3mqKHniYg8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5sZXQgc3R1ZGVudE9wdGlvbmFsQ2FyZEhlYWRUcGwgPSBgPGxpIGNsYXNzPVwicm93IHRpdGxlXCI+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lrabnlJ/lp5PlkI08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7ns7vnu5/lh4bogIPor4Hlj7c8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7lubTnuqc8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7nj63nuqc8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj7mk43kvZw8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5sZXQgY3VzdG9tTWFkZUxpc3RJdGVtRm9yQ2xhc3NUcGwgPSBgIDxsaSBjbGFzcz1cInJvd1wiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57Z3JhZGVfdmFsdWV9PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57Y2xhc3NfbmFtZX08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHcxMDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntsZXZlbH08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57ZXJyb3JfYm9va19uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntzdGVwMl9uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntzdGVwM19uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPC9saT5gXHJcblxyXG5sZXQgY3VzdG9tTWFkZUxpc3RJdGVtRm9yU3R1ZGVudFRwbCA9IGA8bGkgY2xhc3M9XCJyb3dcIj5cclxuPGRpdiBjbGFzcz1cImNlbGwgdzEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+e3N0dWRlbnRfbmFtZX08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsIHcxNTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntzdHVkZW50X2NhcmR9PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57Z3JhZGVfdmFsdWV9PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2VsbCB3MTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57Y2xhc3NfbmFtZX08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57ZXJyb3JfYm9va19uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntzdGVwMl9uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntzdGVwM19uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPC9saT5gXHJcblxyXG5sZXQgc3R1ZGVudE9wdGlvbmFsQ2FyZEl0ZW1UcGwgPSBgIDxsaSBjbGFzcz1cInJvd1wiPlxyXG48ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbGxJdGVtXCI+e3N0dWRlbnRfbmFtZX08L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2VsbEl0ZW1cIj57c3R1ZGVudF9jYXJkfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntncmFkZV9uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPntjbGFzc19uYW1lfTwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjZWxsSXRlbVwiPlxyXG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBkYXRhLWlkPVwie3N0dWRlbnRfaWR9XCIgY2xhc3M9XCJsb29rQnRuIHRoZW1lIGJ0blwiPuafpeecizwvYT5cclxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgZGF0YS1pZD1cIntzdHVkZW50X2lkfVwiIGNsYXNzPVwiZWRpdEJ0biB0aGVtZSBidG5cIj7kv67mlLk8L2E+XHJcbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIGRhdGEtaWQ9XCJ7c3R1ZGVudF9pZH1cIiBjbGFzcz1cImRlbEJ0biB0aGVtZSBidG5cIj7liKDpmaQ8L2E+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5sZXQgc3R1ZGVudEJhc2VJbmZvVHBsID0gYCA8Yj7lp5PlkI3vvJp7c3R1ZGVudF9uYW1lfTwvYj4gXHJcbjxiPuezu+e7n+WHhuiAg+ivgeWPt++8mntzdHVkZW50X2NhcmR9PC9iPiAgXHJcbjxiPuW5tOe6p++8mntncmFkZV9uYW1lfTwvYj5cclxuPGI+54+t57qn77yae2NsYXNzX25hbWV9PC9iPmBcclxuXHJcblxyXG5sZXQgcmFkaW9JdGVtVHBsID0gYDxkaXYgY2xhc3M9XCJoX3JhZGlvSXRlbSB7Y2hlY2tlZENsYXNzfVwiIGRhdGEtdmFsdWU9XCJ7dmFsdWV9XCI+XHJcbjxpPjwvaT48ZW0+e3RleHR9PC9lbT5cclxuPC9kaXY+YFxyXG5sZXQgbW9kaWZ5U2luZ2xlT3B0aW9uQ2FyZEl0ZW0gPSBgPGxpIGRhdGEtbnVtPVwie251bX1cIj5cclxuPHNwYW4gY2xhc3M9XCJrZXlcIj57bnVtfeOAgXtrZXl9PC9zcGFuPlxyXG48ZGl2IGNsYXNzPVwiaF9yYWRpb0JveFwiPlxyXG4gICAge3JhZGlvQ29udGVudH0gICAgXHJcbjwvZGl2PlxyXG48L2xpPmBcclxubGV0IGNoZWNrSXRlbVRwbCA9IGA8ZGl2IGNsYXNzPVwiaF9jaGVja0l0ZW0ge2NoZWNrZWRDbGFzc31cIiBkYXRhLXZhbHVlPVwie3ZhbHVlfVwiPlxyXG48aT48L2k+PGVtPnt0ZXh0fTwvZW0+XHJcbjwvZGl2PmBcclxubGV0IG1vZGlmeU1vcmVPcHRpb25DYXJkSXRlbSA9IGA8bGkgZGF0YS1udW09XCJ7bnVtfVwiPlxyXG48c3BhbiBjbGFzcz1cImtleVwiPntudW1944CBe2tleX08L3NwYW4+XHJcbjxkaXYgY2xhc3M9XCJoX2NoZWNrQm94XCI+XHJcbiAgICB7cmFkaW9Db250ZW50fSAgICBcclxuPC9kaXY+XHJcbjwvbGk+YFxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHN0dWRlbnRMZXZlbExpc3RIZWFkVHBsLFxyXG4gIHN0dWRlbnRMZXZlbExpc3RJdGVtVHBsLFxyXG4gIGVycm9yUHVzaFRhYmxlSGVhZFRwbCxcclxuICBlcnJvclB1c2hJdGVtLFxyXG4gIG1vZGFsVHBsLFxyXG4gIHRyYWluUHVzaFJ1bGVIZWFkVHBsLFxyXG4gIHRyYWluUHVzaFJ1bGVJdGVtVHBsLFxyXG4gIHRyYWluUHVzaERpZmZpY3VsdHlJdGVtVHBsLFxyXG4gIGVycm9yVGVtcGxhdGVJdGVtVHBsLFxyXG4gIGVycm9yVGVtcGxhdGVJdGVtVHBsRm9yQ3VzdG9tLFxyXG4gIHNlbGVjdE9wdGlvbkl0ZW1UcGwsXHJcbiAgY3VzdG9tTWFkZUxpc3RIZWFkRm9yQ2xhc3NUcGwsXHJcbiAgY3VzdG9tTWFkZUxpc3RJdGVtRm9yQ2xhc3NUcGwsXHJcbiAgY3VzdG9tTWFkZUxpc3RIZWFkRm9yU3R1ZGVudFRwbCxcclxuICBjdXN0b21NYWRlTGlzdEl0ZW1Gb3JTdHVkZW50VHBsLFxyXG4gIHN0dWRlbnRPcHRpb25hbENhcmRIZWFkVHBsLFxyXG4gIHN0dWRlbnRPcHRpb25hbENhcmRJdGVtVHBsLFxyXG4gIHN0dWRlbnRCYXNlSW5mb1RwbCxcclxuICBtb2RpZnlTaW5nbGVPcHRpb25DYXJkSXRlbSxcclxuICByYWRpb0l0ZW1UcGwsXHJcbiAgbW9kaWZ5TW9yZU9wdGlvbkNhcmRJdGVtLFxyXG4gIGNoZWNrSXRlbVRwbFxyXG59XHJcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFRQTtBQW9CQTtBQVdBO0FBbUJBO0FBaUdBO0FBV0E7QUFrREE7QUFRQTtBQWlCQTtBQVFBO0FBRUE7QUFxQkE7QUF1QkE7QUFpQkE7QUFxQkE7QUF3QkE7QUFxQkE7QUFNQTtBQUdBO0FBTUE7QUFHQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n')},function(module,exports){eval("module.exports = jQuery;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy9leHRlcm5hbCBcImpRdWVyeVwiP2NkMGMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBqUXVlcnk7Il0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4\n")},function(module,exports,__webpack_require__){eval("var arrayWithoutHoles = __webpack_require__(21);\n\nvar iterableToArray = __webpack_require__(22);\n\nvar unsupportedIterableToArray = __webpack_require__(23);\n\nvar nonIterableSpread = __webpack_require__(24);\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanM/NmNlYiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXJyYXlXaXRob3V0SG9sZXMgPSByZXF1aXJlKFwiLi9hcnJheVdpdGhvdXRIb2xlc1wiKTtcblxudmFyIGl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheVwiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXlcIik7XG5cbnZhciBub25JdGVyYWJsZVNwcmVhZCA9IHJlcXVpcmUoXCIuL25vbkl0ZXJhYmxlU3ByZWFkXCIpO1xuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdG9Db25zdW1hYmxlQXJyYXk7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return mix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return simpleCopy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GetQueryString; });\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);\n/* harmony import */ var layer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(layer__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\nwindow.hgc_layer = layer__WEBPACK_IMPORTED_MODULE_3___default.a;\n\nString.prototype.substitute = function (data) {\n if (data && _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1___default()(data) == \'object\') {\n return this.replace(/\\{([^{}]+)\\}/g, function (match, key) {\n var value = data[key];\n return value !== undefined ? \'\' + value : \'\';\n });\n } else {\n return this.toString();\n }\n};\n\nfunction mix() {\n for (var _len = arguments.length, mixins = new Array(_len), _key = 0; _key < _len; _key++) {\n mixins[_key] = arguments[_key];\n }\n\n var Mix = function Mix() {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, Mix);\n\n var _iterator = _createForOfIteratorHelper(mixins),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var mixin = _step.value;\n copyProperties(this, new mixin()); // 拷贝实例属性\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n };\n\n for (var _i = 0, _mixins = mixins; _i < _mixins.length; _i++) {\n var mixin = _mixins[_i];\n copyProperties(Mix, mixin); // 拷贝静态属性\n\n copyProperties(Mix.prototype, mixin.prototype); // 拷贝原型属性\n }\n\n return Mix;\n}\n\nfunction copyProperties(target, source) {\n var _iterator2 = _createForOfIteratorHelper(Reflect.ownKeys(source)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var key = _step2.value;\n\n if (key !== \'constructor\' && key !== \'prototype\' && key !== \'name\') {\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n}\n\nfunction simpleCopy(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction GetQueryString(name) {\n var reg = new RegExp(\'(^|&)\' + name + \'=([^&]*)(&|$)\');\n var r = window.location.search.substr(1).match(reg); //search,查询?后面的参数,并匹配正则\n\n if (r != null) return unescape(r[2]);\n return null;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3V0aWxzLmpzP2EyYjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpRdWVyeSBmcm9tICdqcXVlcnknXHJcbmltcG9ydCBsYXllciBmcm9tICdsYXllcidcclxud2luZG93LmhnY19sYXllciA9IGxheWVyXHJcblN0cmluZy5wcm90b3R5cGUuc3Vic3RpdHV0ZSA9IGZ1bmN0aW9uKGRhdGEpIHtcclxuICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIHRoaXMucmVwbGFjZSgvXFx7KFtee31dKylcXH0vZywgZnVuY3Rpb24obWF0Y2gsIGtleSkge1xyXG4gICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1cclxuICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPyAnJyArIHZhbHVlIDogJydcclxuICAgIH0pXHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKClcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1peCguLi5taXhpbnMpIHtcclxuICBjbGFzcyBNaXgge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIGZvciAobGV0IG1peGluIG9mIG1peGlucykge1xyXG4gICAgICAgIGNvcHlQcm9wZXJ0aWVzKHRoaXMsIG5ldyBtaXhpbigpKSAvLyDmi7fotJ3lrp7kvovlsZ7mgKdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9yIChsZXQgbWl4aW4gb2YgbWl4aW5zKSB7XHJcbiAgICBjb3B5UHJvcGVydGllcyhNaXgsIG1peGluKSAvLyDmi7fotJ3pnZnmgIHlsZ7mgKdcclxuICAgIGNvcHlQcm9wZXJ0aWVzKE1peC5wcm90b3R5cGUsIG1peGluLnByb3RvdHlwZSkgLy8g5ou36LSd5Y6f5Z6L5bGe5oCnXHJcbiAgfVxyXG5cclxuICByZXR1cm4gTWl4XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvcHlQcm9wZXJ0aWVzKHRhcmdldCwgc291cmNlKSB7XHJcbiAgZm9yIChsZXQga2V5IG9mIFJlZmxlY3Qub3duS2V5cyhzb3VyY2UpKSB7XHJcbiAgICBpZiAoa2V5ICE9PSAnY29uc3RydWN0b3InICYmIGtleSAhPT0gJ3Byb3RvdHlwZScgJiYga2V5ICE9PSAnbmFtZScpIHtcclxuICAgICAgbGV0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KVxyXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGRlc2MpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBzaW1wbGVDb3B5KG9iaikge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpXHJcbn1cclxuZnVuY3Rpb24gR2V0UXVlcnlTdHJpbmcobmFtZSkge1xyXG4gIHZhciByZWcgPSBuZXcgUmVnRXhwKCcoXnwmKScgKyBuYW1lICsgJz0oW14mXSopKCZ8JCknKVxyXG4gIHZhciByID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHIoMSkubWF0Y2gocmVnKSAvL3NlYXJjaCzmn6Xor6LvvJ/lkI7pnaLnmoTlj4LmlbDvvIzlubbljLnphY3mraPliJlcclxuICBpZiAociAhPSBudWxsKSByZXR1cm4gdW5lc2NhcGUoclsyXSlcclxuICByZXR1cm4gbnVsbFxyXG59XHJcbmV4cG9ydCB7IG1peCwgc2ltcGxlQ29weSwgR2V0UXVlcnlTdHJpbmcgfVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBRUE7QUFDQTtBQURBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFIQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6\n')},function(module,exports){eval('function _typeof(obj) {\n "@babel/helpers - typeof";\n\n if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzP2ExZmEiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n')},function(module,exports){eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanM/MDhhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfZGVmaW5lUHJvcGVydHk7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8\n")},function(module,exports,__webpack_require__){eval("module.exports = __webpack_require__(25);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9fQGJhYmVsX3J1bnRpbWVANy4xMS4yQEBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yL2luZGV4LmpzPzU0MTIiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZVwiKTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n")},function(module,exports){eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzPzNmZWQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2dldFByb3RvdHlwZU9mOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///10\n")},function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function($) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CheckBoxItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return RadioBoxItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Switch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return Transfer; });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);\n\n\n\n\n//复选\nvar CheckBoxItem = /*#__PURE__*/function () {\n function CheckBoxItem($checkBox, allFn, singleFn) {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, CheckBoxItem);\n\n this.allFn = allFn || function () {};\n\n this.singleFn = singleFn || function () {};\n\n this.$checBox = $checkBox; //除了 全选 禁用按钮以外的其他按钮的集合\n\n this.totalCount = this.$checBox.find('.h_checkItem:not(\".checkAll\"):not(\".disabled\")').length;\n this.checkedItemsCount = 0;\n this.bindEvent();\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(CheckBoxItem, [{\n key: \"bindEvent\",\n value: function bindEvent() {\n var self = this;\n this.$checBox.off('click').on('click', '.h_checkItem', function () {\n var isDisabled = $(this).hasClass('disabled');\n var isChecked = $(this).hasClass('checked');\n var isCheckAllEl = $(this).hasClass('checkAll');\n if (isDisabled) return;\n $(this)[isChecked ? 'removeClass' : 'addClass']('checked');\n\n if (isCheckAllEl) {\n var checkItems = $(this).siblings('.h_checkItem');\n checkItems[isChecked ? 'removeClass' : 'addClass']('checked');\n self.checkedItemsCount = isChecked ? 0 : checkItems.length;\n self.allFn($(this), !isChecked);\n } else {\n var checkAll = $(this).siblings('.checkAll');\n !isChecked ? self.checkedItemsCount++ : self.checkedItemsCount--;\n var isCheckAllStatus = self.checkedItemsCount >= self.totalCount;\n checkAll[isCheckAllStatus ? 'addClass' : 'removeClass']('checked');\n self.singleFn($(this), !isChecked);\n }\n });\n }\n }]);\n\n return CheckBoxItem;\n}(); // 单选\n\n\nvar RadioBoxItem = /*#__PURE__*/function () {\n function RadioBoxItem($radioBox, fn) {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, RadioBoxItem);\n\n this.$radioBox = $radioBox;\n this.cb = fn;\n this.bindEvent();\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(RadioBoxItem, [{\n key: \"bindEvent\",\n value: function bindEvent() {\n var self = this;\n this.$radioBox.on('click', '.h_radioItem', function () {\n $(this).addClass('checked').siblings('.h_radioItem').removeClass('checked');\n self.cb && self.cb($(this));\n });\n }\n }]);\n\n return RadioBoxItem;\n}(); // 切换\n\n\nvar Switch = /*#__PURE__*/function () {\n function Switch($switch, fn, defaultstatus) {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, Switch);\n\n this.$switch = $switch;\n this.status = defaultstatus || false;\n\n this.cb = fn || function () {};\n\n this.bindEvent();\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(Switch, [{\n key: \"bindEvent\",\n value: function bindEvent() {\n var self = this;\n this.$switch.unbind().click(function () {\n if ($(this).hasClass('disabled')) return;\n $(this).toggleClass('open');\n self.status = !self.status;\n self.cb && self.cb(self.status);\n });\n }\n }]);\n\n return Switch;\n}(); //穿梭框\n\n\n\n/**\r\n * json{\r\n * provideData {label,id}\r\n * injectData {label,id}\r\n * }\r\n * cb(newProvideData,newInjectData)\r\n */\n\nvar Transfer = /*#__PURE__*/function () {\n function Transfer(json, cb) {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, Transfer);\n\n this.transferJson = json;\n this.cb = cb;\n this.provideData = this.transferJson.provideData;\n this.injectData = this.transferJson.injectData;\n this.seledProvideDataOptions = [];\n this.seledInjectOptions = [];\n this.initTpls();\n this.initDom();\n this.render();\n this.bindEvent();\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(Transfer, [{\n key: \"initTpls\",\n value: function initTpls() {\n this.transferItemTpl = \"
    \\n {label}\\n
    \";\n }\n }, {\n key: \"initDom\",\n value: function initDom() {\n this.$canSelOptions = $('#h_transfer .canSelOptions .h_checkBox');\n this.$seledOptions = $('#h_transfer .seledOptions .h_checkBox');\n }\n }, {\n key: \"render\",\n value: function render() {\n this.renderCanSelOptions();\n this.renderSeledOptions();\n }\n }, {\n key: \"renderCanSelOptions\",\n value: function renderCanSelOptions() {\n var _this = this;\n\n var canSelOptionsHtml = this.provideData.reduce(function (totalStr, curData, index) {\n var hasRepeat = ~_this.injectData.findIndex(function (v) {\n return v.id === curData.id;\n });\n if (hasRepeat) return totalStr;\n curData.index = index;\n totalStr += _this.transferItemTpl.substitute(curData);\n return totalStr;\n }, '');\n this.$canSelOptions.html(canSelOptionsHtml);\n }\n }, {\n key: \"renderSeledOptions\",\n value: function renderSeledOptions() {\n var _this2 = this;\n\n var seledOptionsHtml = this.injectData.reduce(function (totalStr, curData, index) {\n curData.index = index;\n totalStr += _this2.transferItemTpl.substitute(curData);\n return totalStr;\n }, '');\n this.$seledOptions.html(seledOptionsHtml);\n }\n }, {\n key: \"bindEvent\",\n value: function bindEvent() {\n var self = this;\n $('#h_transfer .transferBtns span').click(function () {\n if ($(this).hasClass('lose')) {\n self.transferLose();\n } else {\n self.transferRecover();\n }\n });\n this.eventForProvideOptions();\n this.eventForInjectOptions();\n }\n }, {\n key: \"transferLose\",\n value: function transferLose() {\n var _this3 = this;\n\n if (!this.seledProvideDataOptions.length) return;\n this.injectData = [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.injectData), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.seledProvideDataOptions));\n this.seledProvideDataOptions.forEach(function (option) {\n var removeIndex = _this3.provideData.findIndex(function (v) {\n return v.id === option.id;\n });\n\n if (~removeIndex) {\n _this3.provideData.splice(removeIndex, 1);\n }\n });\n this.render();\n this.cb(this.provideData, this.injectData);\n this.seledProvideDataOptions = [];\n }\n }, {\n key: \"transferRecover\",\n value: function transferRecover() {\n var _this4 = this;\n\n if (!this.seledInjectOptions.length) return;\n this.provideData = [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.provideData), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.seledInjectOptions));\n this.seledInjectOptions.forEach(function (option) {\n var removeIndex = _this4.injectData.findIndex(function (v) {\n return v.id === option.id;\n });\n\n if (~removeIndex) {\n _this4.injectData.splice(removeIndex, 1);\n }\n });\n this.render();\n this.cb(this.provideData, this.injectData);\n this.seledInjectOptions = [];\n }\n }, {\n key: \"eventForProvideOptions\",\n value: function eventForProvideOptions() {\n var _this5 = this;\n\n new CheckBoxItem(this.$canSelOptions, function ($this, status) {}, function ($this, singleStatus) {\n var index = +$this.attr('data-index');\n\n if (singleStatus) {\n _this5.seledProvideDataOptions.push(Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* simpleCopy */ \"c\"])(_this5.provideData[index]));\n } else {\n var curData = _this5.provideData[index];\n\n var cancelIndex = _this5.seledProvideDataOptions.findIndex(function (v) {\n return curData.id == v.id;\n });\n\n _this5.seledProvideDataOptions.splice(cancelIndex, 1);\n }\n });\n }\n }, {\n key: \"eventForInjectOptions\",\n value: function eventForInjectOptions() {\n var _this6 = this;\n\n new CheckBoxItem(this.$seledOptions, function ($this, status) {}, function ($this, singleStatus) {\n var index = +$this.attr('data-index');\n\n if (singleStatus) {\n _this6.seledInjectOptions.push(Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* simpleCopy */ \"c\"])(_this6.injectData[index]));\n } else {\n var curData = _this6.injectData[index];\n\n var cancelIndex = _this6.seledInjectOptions.findIndex(function (v) {\n return curData.id == v.id;\n });\n\n _this6.seledInjectOptions.splice(cancelIndex, 1);\n }\n });\n }\n }]);\n\n return Transfer;\n}();\n\nvar transferJson = {\n provideData: [{\n id: 1,\n label: '项目1',\n select: false\n }, {\n id: 2,\n label: '项目2',\n select: false\n }, {\n id: 3,\n label: '项目3',\n select: false\n }],\n injectData: [{\n id: 4,\n label: '项目4',\n select: true\n }]\n}; // new Transfer(transferJson, function(newProvideData, newInjectData) {\n// console.log(newProvideData, newInjectData)\n// })\n\n\nvar json = {//变式训练题推送规则\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaGVscGVycy9jb21wb25lbnQuanM/ODU5ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvL+WkjemAiVxyXG5jbGFzcyBDaGVja0JveEl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKCRjaGVja0JveCwgYWxsRm4sIHNpbmdsZUZuKSB7XHJcbiAgICB0aGlzLmFsbEZuID0gYWxsRm4gfHwgZnVuY3Rpb24oKSB7fVxyXG4gICAgdGhpcy5zaW5nbGVGbiA9IHNpbmdsZUZuIHx8IGZ1bmN0aW9uKCkge31cclxuICAgIHRoaXMuJGNoZWNCb3ggPSAkY2hlY2tCb3hcclxuICAgIC8v6Zmk5LqGIOWFqOmAiSDnpoHnlKjmjInpkq7ku6XlpJbnmoTlhbbku5bmjInpkq7nmoTpm4blkIhcclxuICAgIHRoaXMudG90YWxDb3VudCA9IHRoaXMuJGNoZWNCb3guZmluZChcclxuICAgICAgJy5oX2NoZWNrSXRlbTpub3QoXCIuY2hlY2tBbGxcIik6bm90KFwiLmRpc2FibGVkXCIpJ1xyXG4gICAgKS5sZW5ndGhcclxuICAgIHRoaXMuY2hlY2tlZEl0ZW1zQ291bnQgPSAwXHJcbiAgICB0aGlzLmJpbmRFdmVudCgpXHJcbiAgfVxyXG4gIGJpbmRFdmVudCgpIHtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzXHJcbiAgICB0aGlzLiRjaGVjQm94Lm9mZignY2xpY2snKS5vbignY2xpY2snLCAnLmhfY2hlY2tJdGVtJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgIGxldCBpc0Rpc2FibGVkID0gJCh0aGlzKS5oYXNDbGFzcygnZGlzYWJsZWQnKVxyXG4gICAgICBsZXQgaXNDaGVja2VkID0gJCh0aGlzKS5oYXNDbGFzcygnY2hlY2tlZCcpXHJcbiAgICAgIGxldCBpc0NoZWNrQWxsRWwgPSAkKHRoaXMpLmhhc0NsYXNzKCdjaGVja0FsbCcpXHJcbiAgICAgIGlmIChpc0Rpc2FibGVkKSByZXR1cm5cclxuICAgICAgJCh0aGlzKVtpc0NoZWNrZWQgPyAncmVtb3ZlQ2xhc3MnIDogJ2FkZENsYXNzJ10oJ2NoZWNrZWQnKVxyXG4gICAgICBpZiAoaXNDaGVja0FsbEVsKSB7XHJcbiAgICAgICAgbGV0IGNoZWNrSXRlbXMgPSAkKHRoaXMpLnNpYmxpbmdzKCcuaF9jaGVja0l0ZW0nKVxyXG4gICAgICAgIGNoZWNrSXRlbXNbaXNDaGVja2VkID8gJ3JlbW92ZUNsYXNzJyA6ICdhZGRDbGFzcyddKCdjaGVja2VkJylcclxuICAgICAgICBzZWxmLmNoZWNrZWRJdGVtc0NvdW50ID0gaXNDaGVja2VkID8gMCA6IGNoZWNrSXRlbXMubGVuZ3RoXHJcbiAgICAgICAgc2VsZi5hbGxGbigkKHRoaXMpLCAhaXNDaGVja2VkKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBjaGVja0FsbCA9ICQodGhpcykuc2libGluZ3MoJy5jaGVja0FsbCcpXHJcbiAgICAgICAgIWlzQ2hlY2tlZCA/IHNlbGYuY2hlY2tlZEl0ZW1zQ291bnQrKyA6IHNlbGYuY2hlY2tlZEl0ZW1zQ291bnQtLVxyXG4gICAgICAgIGxldCBpc0NoZWNrQWxsU3RhdHVzID0gc2VsZi5jaGVja2VkSXRlbXNDb3VudCA+PSBzZWxmLnRvdGFsQ291bnRcclxuICAgICAgICBjaGVja0FsbFtpc0NoZWNrQWxsU3RhdHVzID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKCdjaGVja2VkJylcclxuICAgICAgICBzZWxmLnNpbmdsZUZuKCQodGhpcyksICFpc0NoZWNrZWQpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbi8vIOWNlemAiVxyXG5jbGFzcyBSYWRpb0JveEl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKCRyYWRpb0JveCwgZm4pIHtcclxuICAgIHRoaXMuJHJhZGlvQm94ID0gJHJhZGlvQm94XHJcblxyXG4gICAgdGhpcy5jYiA9IGZuXHJcblxyXG4gICAgdGhpcy5iaW5kRXZlbnQoKVxyXG4gIH1cclxuICBiaW5kRXZlbnQoKSB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpc1xyXG4gICAgdGhpcy4kcmFkaW9Cb3gub24oJ2NsaWNrJywgJy5oX3JhZGlvSXRlbScsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAkKHRoaXMpXHJcbiAgICAgICAgLmFkZENsYXNzKCdjaGVja2VkJylcclxuICAgICAgICAuc2libGluZ3MoJy5oX3JhZGlvSXRlbScpXHJcbiAgICAgICAgLnJlbW92ZUNsYXNzKCdjaGVja2VkJylcclxuICAgICAgc2VsZi5jYiAmJiBzZWxmLmNiKCQodGhpcykpXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4vLyDliIfmjaJcclxuY2xhc3MgU3dpdGNoIHtcclxuICBjb25zdHJ1Y3Rvcigkc3dpdGNoLCBmbiwgZGVmYXVsdHN0YXR1cykge1xyXG4gICAgdGhpcy4kc3dpdGNoID0gJHN3aXRjaFxyXG4gICAgdGhpcy5zdGF0dXMgPSBkZWZhdWx0c3RhdHVzIHx8IGZhbHNlXHJcbiAgICB0aGlzLmNiID0gZm4gfHwgZnVuY3Rpb24oKSB7fVxyXG4gICAgdGhpcy5iaW5kRXZlbnQoKVxyXG4gIH1cclxuICBiaW5kRXZlbnQoKSB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpc1xyXG4gICAgdGhpcy4kc3dpdGNoLnVuYmluZCgpLmNsaWNrKGZ1bmN0aW9uKCkge1xyXG4gICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnZGlzYWJsZWQnKSkgcmV0dXJuXHJcbiAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ29wZW4nKVxyXG4gICAgICBzZWxmLnN0YXR1cyA9ICFzZWxmLnN0YXR1c1xyXG4gICAgICBzZWxmLmNiICYmIHNlbGYuY2Ioc2VsZi5zdGF0dXMpXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG5cclxuLy/nqb/moq3moYZcclxuaW1wb3J0IHsgc2ltcGxlQ29weSB9IGZyb20gJy4vdXRpbHMnXHJcbi8qKlxyXG4gKiBqc29ue1xyXG4gKiAgcHJvdmlkZURhdGEge2xhYmVsLGlkfVxyXG4gKiBpbmplY3REYXRhIHtsYWJlbCxpZH1cclxuICogfVxyXG4gKiBjYihuZXdQcm92aWRlRGF0YSxuZXdJbmplY3REYXRhKVxyXG4gKi9cclxuY2xhc3MgVHJhbnNmZXIge1xyXG4gIGNvbnN0cnVjdG9yKGpzb24sIGNiKSB7XHJcbiAgICB0aGlzLnRyYW5zZmVySnNvbiA9IGpzb25cclxuXHJcbiAgICB0aGlzLmNiID0gY2JcclxuXHJcbiAgICB0aGlzLnByb3ZpZGVEYXRhID0gdGhpcy50cmFuc2Zlckpzb24ucHJvdmlkZURhdGFcclxuICAgIHRoaXMuaW5qZWN0RGF0YSA9IHRoaXMudHJhbnNmZXJKc29uLmluamVjdERhdGFcclxuXHJcbiAgICB0aGlzLnNlbGVkUHJvdmlkZURhdGFPcHRpb25zID0gW11cclxuICAgIHRoaXMuc2VsZWRJbmplY3RPcHRpb25zID0gW11cclxuXHJcbiAgICB0aGlzLmluaXRUcGxzKClcclxuXHJcbiAgICB0aGlzLmluaXREb20oKVxyXG5cclxuICAgIHRoaXMucmVuZGVyKClcclxuXHJcbiAgICB0aGlzLmJpbmRFdmVudCgpXHJcbiAgfVxyXG4gIGluaXRUcGxzKCkge1xyXG4gICAgdGhpcy50cmFuc2Zlckl0ZW1UcGwgPSBgPGRpdiBjbGFzcz1cImhfY2hlY2tJdGVtXCIgZGF0YS1pbmRleD1cIntpbmRleH1cIj5cclxuICAgICAgICA8aT48L2k+PGVtPntsYWJlbH08L2VtPlxyXG4gICAgPC9kaXY+YFxyXG4gIH1cclxuICBpbml0RG9tKCkge1xyXG4gICAgdGhpcy4kY2FuU2VsT3B0aW9ucyA9ICQoJyNoX3RyYW5zZmVyIC5jYW5TZWxPcHRpb25zIC5oX2NoZWNrQm94JylcclxuICAgIHRoaXMuJHNlbGVkT3B0aW9ucyA9ICQoJyNoX3RyYW5zZmVyIC5zZWxlZE9wdGlvbnMgLmhfY2hlY2tCb3gnKVxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICB0aGlzLnJlbmRlckNhblNlbE9wdGlvbnMoKVxyXG4gICAgdGhpcy5yZW5kZXJTZWxlZE9wdGlvbnMoKVxyXG4gIH1cclxuICByZW5kZXJDYW5TZWxPcHRpb25zKCkge1xyXG4gICAgbGV0IGNhblNlbE9wdGlvbnNIdG1sID0gdGhpcy5wcm92aWRlRGF0YS5yZWR1Y2UoXHJcbiAgICAgICh0b3RhbFN0ciwgY3VyRGF0YSwgaW5kZXgpID0+IHtcclxuICAgICAgICBsZXQgaGFzUmVwZWF0ID0gfnRoaXMuaW5qZWN0RGF0YS5maW5kSW5kZXgodiA9PiB2LmlkID09PSBjdXJEYXRhLmlkKVxyXG4gICAgICAgIGlmIChoYXNSZXBlYXQpIHJldHVybiB0b3RhbFN0clxyXG4gICAgICAgIGN1ckRhdGEuaW5kZXggPSBpbmRleFxyXG4gICAgICAgIHRvdGFsU3RyICs9IHRoaXMudHJhbnNmZXJJdGVtVHBsLnN1YnN0aXR1dGUoY3VyRGF0YSlcclxuICAgICAgICByZXR1cm4gdG90YWxTdHJcclxuICAgICAgfSxcclxuICAgICAgJydcclxuICAgIClcclxuICAgIHRoaXMuJGNhblNlbE9wdGlvbnMuaHRtbChjYW5TZWxPcHRpb25zSHRtbClcclxuICB9XHJcbiAgcmVuZGVyU2VsZWRPcHRpb25zKCkge1xyXG4gICAgbGV0IHNlbGVkT3B0aW9uc0h0bWwgPSB0aGlzLmluamVjdERhdGEucmVkdWNlKFxyXG4gICAgICAodG90YWxTdHIsIGN1ckRhdGEsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY3VyRGF0YS5pbmRleCA9IGluZGV4XHJcbiAgICAgICAgdG90YWxTdHIgKz0gdGhpcy50cmFuc2Zlckl0ZW1UcGwuc3Vic3RpdHV0ZShjdXJEYXRhKVxyXG4gICAgICAgIHJldHVybiB0b3RhbFN0clxyXG4gICAgICB9LFxyXG4gICAgICAnJ1xyXG4gICAgKVxyXG4gICAgdGhpcy4kc2VsZWRPcHRpb25zLmh0bWwoc2VsZWRPcHRpb25zSHRtbClcclxuICB9XHJcbiAgYmluZEV2ZW50KCkge1xyXG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcclxuICAgICQoJyNoX3RyYW5zZmVyIC50cmFuc2ZlckJ0bnMgc3BhbicpLmNsaWNrKGZ1bmN0aW9uKCkge1xyXG4gICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnbG9zZScpKSB7XHJcbiAgICAgICAgc2VsZi50cmFuc2Zlckxvc2UoKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGYudHJhbnNmZXJSZWNvdmVyKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmV2ZW50Rm9yUHJvdmlkZU9wdGlvbnMoKVxyXG5cclxuICAgIHRoaXMuZXZlbnRGb3JJbmplY3RPcHRpb25zKClcclxuICB9XHJcbiAgdHJhbnNmZXJMb3NlKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVkUHJvdmlkZURhdGFPcHRpb25zLmxlbmd0aCkgcmV0dXJuXHJcbiAgICB0aGlzLmluamVjdERhdGEgPSBbLi4udGhpcy5pbmplY3REYXRhLCAuLi50aGlzLnNlbGVkUHJvdmlkZURhdGFPcHRpb25zXVxyXG4gICAgdGhpcy5zZWxlZFByb3ZpZGVEYXRhT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgIGxldCByZW1vdmVJbmRleCA9IHRoaXMucHJvdmlkZURhdGEuZmluZEluZGV4KHYgPT4gdi5pZCA9PT0gb3B0aW9uLmlkKVxyXG4gICAgICBpZiAofnJlbW92ZUluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5wcm92aWRlRGF0YS5zcGxpY2UocmVtb3ZlSW5kZXgsIDEpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnJlbmRlcigpXHJcbiAgICB0aGlzLmNiKHRoaXMucHJvdmlkZURhdGEsIHRoaXMuaW5qZWN0RGF0YSlcclxuICAgIHRoaXMuc2VsZWRQcm92aWRlRGF0YU9wdGlvbnMgPSBbXVxyXG4gIH1cclxuICB0cmFuc2ZlclJlY292ZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWRJbmplY3RPcHRpb25zLmxlbmd0aCkgcmV0dXJuXHJcbiAgICB0aGlzLnByb3ZpZGVEYXRhID0gWy4uLnRoaXMucHJvdmlkZURhdGEsIC4uLnRoaXMuc2VsZWRJbmplY3RPcHRpb25zXVxyXG4gICAgdGhpcy5zZWxlZEluamVjdE9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xyXG4gICAgICBsZXQgcmVtb3ZlSW5kZXggPSB0aGlzLmluamVjdERhdGEuZmluZEluZGV4KHYgPT4gdi5pZCA9PT0gb3B0aW9uLmlkKVxyXG4gICAgICBpZiAofnJlbW92ZUluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5pbmplY3REYXRhLnNwbGljZShyZW1vdmVJbmRleCwgMSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMucmVuZGVyKClcclxuICAgIHRoaXMuY2IodGhpcy5wcm92aWRlRGF0YSwgdGhpcy5pbmplY3REYXRhKVxyXG4gICAgdGhpcy5zZWxlZEluamVjdE9wdGlvbnMgPSBbXVxyXG4gIH1cclxuICBldmVudEZvclByb3ZpZGVPcHRpb25zKCkge1xyXG4gICAgbmV3IENoZWNrQm94SXRlbShcclxuICAgICAgdGhpcy4kY2FuU2VsT3B0aW9ucyxcclxuICAgICAgKCR0aGlzLCBzdGF0dXMpID0+IHt9LFxyXG4gICAgICAoJHRoaXMsIHNpbmdsZVN0YXR1cykgPT4ge1xyXG4gICAgICAgIGxldCBpbmRleCA9ICskdGhpcy5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgICAgICBpZiAoc2luZ2xlU3RhdHVzKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVkUHJvdmlkZURhdGFPcHRpb25zLnB1c2goc2ltcGxlQ29weSh0aGlzLnByb3ZpZGVEYXRhW2luZGV4XSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBjdXJEYXRhID0gdGhpcy5wcm92aWRlRGF0YVtpbmRleF1cclxuICAgICAgICAgIGxldCBjYW5jZWxJbmRleCA9IHRoaXMuc2VsZWRQcm92aWRlRGF0YU9wdGlvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICB2ID0+IGN1ckRhdGEuaWQgPT0gdi5pZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgdGhpcy5zZWxlZFByb3ZpZGVEYXRhT3B0aW9ucy5zcGxpY2UoY2FuY2VsSW5kZXgsIDEpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIGV2ZW50Rm9ySW5qZWN0T3B0aW9ucygpIHtcclxuICAgIG5ldyBDaGVja0JveEl0ZW0oXHJcbiAgICAgIHRoaXMuJHNlbGVkT3B0aW9ucyxcclxuICAgICAgKCR0aGlzLCBzdGF0dXMpID0+IHt9LFxyXG4gICAgICAoJHRoaXMsIHNpbmdsZVN0YXR1cykgPT4ge1xyXG4gICAgICAgIGxldCBpbmRleCA9ICskdGhpcy5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgICAgICBpZiAoc2luZ2xlU3RhdHVzKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVkSW5qZWN0T3B0aW9ucy5wdXNoKHNpbXBsZUNvcHkodGhpcy5pbmplY3REYXRhW2luZGV4XSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBjdXJEYXRhID0gdGhpcy5pbmplY3REYXRhW2luZGV4XVxyXG4gICAgICAgICAgbGV0IGNhbmNlbEluZGV4ID0gdGhpcy5zZWxlZEluamVjdE9wdGlvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICB2ID0+IGN1ckRhdGEuaWQgPT0gdi5pZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgdGhpcy5zZWxlZEluamVjdE9wdGlvbnMuc3BsaWNlKGNhbmNlbEluZGV4LCAxKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxufVxyXG52YXIgdHJhbnNmZXJKc29uID0ge1xyXG4gIHByb3ZpZGVEYXRhOiBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxLFxyXG4gICAgICBsYWJlbDogJ+mhueebrjEnLFxyXG4gICAgICBzZWxlY3Q6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMixcclxuICAgICAgbGFiZWw6ICfpobnnm64yJyxcclxuICAgICAgc2VsZWN0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDMsXHJcbiAgICAgIGxhYmVsOiAn6aG555uuMycsXHJcbiAgICAgIHNlbGVjdDogZmFsc2VcclxuICAgIH1cclxuICBdLFxyXG4gIGluamVjdERhdGE6IFtcclxuICAgIHtcclxuICAgICAgaWQ6IDQsXHJcbiAgICAgIGxhYmVsOiAn6aG555uuNCcsXHJcbiAgICAgIHNlbGVjdDogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufVxyXG4vLyBuZXcgVHJhbnNmZXIodHJhbnNmZXJKc29uLCBmdW5jdGlvbihuZXdQcm92aWRlRGF0YSwgbmV3SW5qZWN0RGF0YSkge1xyXG4vLyAgIGNvbnNvbGUubG9nKG5ld1Byb3ZpZGVEYXRhLCBuZXdJbmplY3REYXRhKVxyXG4vLyB9KVxyXG5cclxuZXhwb3J0IHsgQ2hlY2tCb3hJdGVtLCBSYWRpb0JveEl0ZW0sIFN3aXRjaCwgVHJhbnNmZXIgfVxyXG5cclxubGV0IGpzb24gPSB7XHJcbiAgLy/lj5jlvI/orq3nu4PpopjmjqjpgIHop4TliJlcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBOzs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBRUE7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUNBOzs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBR0E7QUFDQTtBQUNBO0FBREE7QUFDQTs7Ozs7Ozs7QUFPQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTs7O0FBQUE7QUFDQTtBQUdBOzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBOzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUhBO0FBbkJBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///11\n")},function(module,exports){eval("module.exports = layer;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJsYXllclwiPzFjMWYiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBsYXllcjsiXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///12\n")},function(module,exports,__webpack_require__){eval('var setPrototypeOf = __webpack_require__(19);\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzPzVlNzciXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2ZcIik7XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaW5oZXJpdHM7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n')},function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n\n\n\n\nvar Api = /*#__PURE__*/function () {\n function Api() {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, Api);\n\n this.token = \'\';\n this.domain = \'/index.php\';\n\n if (false) {}\n\n this.publicPath = \'/productset\';\n this.commonPath = this.domain + this.publicPath;\n this.getTemplateDataApi = this.commonPath + \'/getTemplate\' + this.token; //获取模版\n\n this.getTemplateByTypeApi = this.commonPath + \'/getTemplateByType\' + this.token; //复制模版\n\n this.copyTemplateApi = this.commonPath + \'/copyTemplate\' + this.token; //重命名\n\n this.renameTemplateAPi = this.commonPath + \'/reNameTemplate\' + this.token; //删除\n\n this.delTemplateAPi = this.commonPath + \'/delTemplate\' + this.token; //删除模板--二次确认接口\n\n this.beforeDelTemplateApi = this.commonPath + \'/BeforeDelTemplate\' + this.token; //获取班级定制列表\n\n this.getClassCustomListApi = this.commonPath + \'/productClassSet\' + this.token; //获取学生定制列表\n\n this.getStudentCustomListApi = this.commonPath + \'/productStudentSet\' + this.token; //恢复班级默认地址\n\n this.resetClassSetApi = this.commonPath + \'/resetClassSet\' + this.token; //恢复学生默认地址\n\n this.resetStudentSetApi = this.commonPath + \'/resetStudentSet\' + this.token; //保存班级定制\n\n this.saveClassCustomApi = this.commonPath + \'/saveClassSet\' + this.token; //保存学生定制\n\n this.saveStudentCustomApi = this.commonPath + \'/saveStudentSet\' + this.token; //根据年级获取班级\n\n this.getClassByGradeApi = this.commonPath + \'/getClassByGrade\' + this.token; //根据班级获取学生\n\n this.getStudentsByClassApi = this.domain + \'/studentinfo/getStudent\' + this.token; //读取模板信息\n\n this.getTemplateByIdApi = this.commonPath + \'/ajaxGetTemplateById\' + this.token; //保存模板接口\n\n this.saveTemplateApi = this.commonPath + \'/saveTemplate\' + this.token; //学生自选卡信息\n\n this.getStudentOptionalCardApi = this.commonPath + \'/customProductStudentSet\' + this.token; //删除学生自选卡\n\n this.delStudentOptionalCardApi = this.commonPath + \'/delStudentOptionalCard\' + this.token; //切换版本\n\n this.changeVersionApi = this.commonPath + \'/switchEdition\' + this.token; //下载自选卡模板\n\n this.downLoadStudentOptionalCardUrl = this.commonPath + \'/downPdf\' + this.token;\n this.saveOptionalCard = this.commonPath + \'/SaveOptionalCard\' + this.token;\n } //获取学生自选卡信息\n\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(Api, [{\n key: "getStudentOptionalCard",\n value: function getStudentOptionalCard(_ref) {\n var _ref$page = _ref.page,\n page = _ref$page === void 0 ? 1 : _ref$page,\n _ref$class_id = _ref.class_id,\n class_id = _ref$class_id === void 0 ? \'\' : _ref$class_id,\n student_name = _ref.student_name,\n _ref$grade_id = _ref.grade_id,\n grade_id = _ref$grade_id === void 0 ? \'\' : _ref$grade_id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getStudentOptionalCardApi,\n data: {\n page: page,\n class_id: class_id,\n student_name: student_name,\n grade_id: grade_id\n }\n });\n } //下载自选卡模板\n\n }, {\n key: "downLoadStudentOptionalCard",\n value: function downLoadStudentOptionalCard() {\n location.href = this.downLoadStudentOptionalCardUrl;\n } //删除学生自选卡信息\n\n }, {\n key: "delStudentOptionalCard",\n value: function delStudentOptionalCard(_ref2) {\n var student_id = _ref2.student_id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.delStudentOptionalCardApi,\n data: {\n student_id: student_id\n }\n });\n } //获取模版\n\n }, {\n key: "getTemplateByType",\n value: function getTemplateByType(_ref3) {\n var type = _ref3.type,\n target_type = _ref3.target_type;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getTemplateByTypeApi,\n data: {\n type: type,\n target_type: target_type\n }\n });\n } //复制模版\n\n }, {\n key: "copyTemplate",\n value: function copyTemplate(_ref4) {\n var id = _ref4.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.copyTemplateApi,\n data: {\n id: id\n }\n });\n } //重命名\n\n }, {\n key: "renameTemplate",\n value: function renameTemplate(_ref5) {\n var name = _ref5.name,\n id = _ref5.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.renameTemplateAPi,\n data: {\n id: id,\n name: name\n }\n });\n } //删除\n\n }, {\n key: "delTemplate",\n value: function delTemplate(_ref6) {\n var id = _ref6.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.delTemplateAPi,\n data: {\n id: id\n }\n });\n }\n }, {\n key: "beforeDelTemplate",\n value: function beforeDelTemplate(_ref7) {\n var id = _ref7.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.beforeDelTemplateApi,\n data: {\n id: id\n }\n });\n } //根据年级获取班级\n\n }, {\n key: "getClassByGrade",\n value: function getClassByGrade(_ref8) {\n var grade_id = _ref8.grade_id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getClassByGradeApi,\n data: {\n grade_id: grade_id\n }\n });\n } //根据班级获取学生\n\n }, {\n key: "getStudentsByClass",\n value: function getStudentsByClass(_ref9) {\n var cid = _ref9.cid;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getStudentsByClassApi,\n data: {\n cid: cid\n }\n });\n } //保存班级定制\n\n }, {\n key: "saveClassCustom",\n value: function saveClassCustom(params) {\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.saveClassCustomApi,\n data: params\n });\n } //保存学生定制\n\n }, {\n key: "saveStudentCustom",\n value: function saveStudentCustom(params) {\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.saveStudentCustomApi,\n data: params\n });\n } //获取班级定制列表\n\n }, {\n key: "getClassCustomList",\n value: function getClassCustomList(_ref10) {\n var _ref10$page = _ref10.page,\n page = _ref10$page === void 0 ? 1 : _ref10$page,\n _ref10$class_id = _ref10.class_id,\n class_id = _ref10$class_id === void 0 ? \'\' : _ref10$class_id,\n _ref10$grade_id = _ref10.grade_id,\n grade_id = _ref10$grade_id === void 0 ? \'\' : _ref10$grade_id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getClassCustomListApi,\n data: {\n page: page,\n class_id: class_id,\n grade_id: grade_id\n }\n });\n } //获取学生定制列表\n\n }, {\n key: "getStudentCustomList",\n value: function getStudentCustomList(_ref11) {\n var _ref11$page = _ref11.page,\n page = _ref11$page === void 0 ? 1 : _ref11$page,\n _ref11$class_id = _ref11.class_id,\n class_id = _ref11$class_id === void 0 ? \'\' : _ref11$class_id,\n _ref11$grade_id = _ref11.grade_id,\n grade_id = _ref11$grade_id === void 0 ? \'\' : _ref11$grade_id,\n _ref11$student_name = _ref11.student_name,\n student_name = _ref11$student_name === void 0 ? \'\' : _ref11$student_name;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getStudentCustomListApi,\n data: {\n page: page,\n class_id: class_id,\n grade_id: grade_id,\n student_name: student_name\n }\n });\n } //恢复班级默认\n\n }, {\n key: "resetClassSet",\n value: function resetClassSet() {\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.resetClassSetApi\n });\n } //恢复学生默认\n\n }, {\n key: "resetStudentSet",\n value: function resetStudentSet() {\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.resetStudentSetApi\n });\n } //废弃\n\n }, {\n key: "getTemplateData",\n value: function getTemplateData(_ref12) {\n var id = _ref12.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getTemplateDataApi,\n data: {\n id: id\n }\n });\n } //获取模板信息\n\n }, {\n key: "getTemplateById",\n value: function getTemplateById(_ref13) {\n var id = _ref13.id;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.getTemplateByIdApi,\n data: {\n id: id\n }\n });\n } //保存模板\n\n }, {\n key: "saveTemplate",\n value: function saveTemplate(formData) {\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n processData: false,\n contentType: false,\n dataType: \'json\',\n url: this.saveTemplateApi,\n data: formData\n });\n } //切换设置版本\n\n }, {\n key: "changeVersion",\n value: function changeVersion(_ref14) {\n var edition = _ref14.edition;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.changeVersionApi,\n data: {\n edition: edition\n }\n });\n }\n }, {\n key: "saveChangeOptionalCard",\n value: function saveChangeOptionalCard(_ref15) {\n var studentId = _ref15.studentId,\n json = _ref15.json;\n return Object(_request__WEBPACK_IMPORTED_MODULE_2__[/* request */ "a"])({\n url: this.saveOptionalCard,\n data: {\n studentId: studentId,\n json: json\n }\n });\n }\n }]);\n\n return Api;\n}();\n\n/* harmony default export */ __webpack_exports__["a"] = (Api);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaGVscGVycy9hcGkuanM/ZjljNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0J1xyXG5jbGFzcyBBcGkge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy50b2tlbiA9ICcnXHJcblxyXG4gICAgdGhpcy5kb21haW4gPSAnL2luZGV4LnBocCdcclxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xyXG4gICAgICB0aGlzLmRvbWFpbiA9ICcnXHJcbiAgICAgIC8vdGhpcy50b2tlbiA9ICcvdXNlcm5hbWUveGxsL3RpbWUvMTU3MDc1OTQ0NC9zaWcvMWU1ZTdkMGEyOTdjZmQ5N2Q2OTk4ZDNhMjk3YWY5YjMvc2Vzc2lvbmlkL3Nlc3Npb25fYjU2OTljNzc1ZjNkNzcwYWIyOGI0YmJhMWU1OGU1YjEnXHJcbiAgICAgIHRoaXMudG9rZW4gPSAnL3VzZXJuYW1lL3plbmd5dXF1bi90aW1lLzE1NzUyNTU1MjAvc2lnLzIwODRlZTJiMGVmMmQ4NTIwODFmMzk5MWI4YmNlMWY0L3Nlc3Npb25pZC9zZXNzaW9uXzk5NDdiOThkMDkyZjQ2MWYyODVlOGVkNDc4ZmVlMjFhJ1xyXG4gICAgICAvL2h0dHA6Ly96c3lhczIudGVzdGluZy54dWVwaW5nLmNvbS9pbmRleC5waHAvY2xhc3Nlcy9pbmRleC91c2VybmFtZS94aWFveWFuL3RpbWUvMTU4ODE3MjU2Mi9zaWcvNmYxMjI2ZWVjZjFjZTkwMzE5MGI5MDUxNmVhMjkwOWYvc2Vzc2lvbmlkL3Nlc3Npb25fYzA4MzJjNTM3MWI3YjM1MDRkMmIwNzZhMmNjYjAwNzhcclxuICAgICAgLy90aGlzLnRva2VuID0gJy91c2VybmFtZS8zODY1MDAwL3RpbWUvMTU3NDMyMzQ1Mi9zaWcvZWUyM2ZkOTQ5NDQ3Zjg2YmVjN2M2YWIwYmNmN2IxN2Ivc2Vzc2lvbmlkL3Nlc3Npb25fM2Q0NGNlOGFkMmU2OTk3MmJmNmMyZmRlMTQ1ZjM0ZTYnXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wdWJsaWNQYXRoID0gJy9wcm9kdWN0c2V0J1xyXG4gICAgdGhpcy5jb21tb25QYXRoID0gdGhpcy5kb21haW4gKyB0aGlzLnB1YmxpY1BhdGhcclxuXHJcbiAgICB0aGlzLmdldFRlbXBsYXRlRGF0YUFwaSA9IHRoaXMuY29tbW9uUGF0aCArICcvZ2V0VGVtcGxhdGUnICsgdGhpcy50b2tlblxyXG4gICAgLy/ojrflj5bmqKHniYhcclxuICAgIHRoaXMuZ2V0VGVtcGxhdGVCeVR5cGVBcGkgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL2dldFRlbXBsYXRlQnlUeXBlJyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+WkjeWItuaooeeJiFxyXG4gICAgdGhpcy5jb3B5VGVtcGxhdGVBcGkgPSB0aGlzLmNvbW1vblBhdGggKyAnL2NvcHlUZW1wbGF0ZScgKyB0aGlzLnRva2VuXHJcbiAgICAvL+mHjeWRveWQjVxyXG4gICAgdGhpcy5yZW5hbWVUZW1wbGF0ZUFQaSA9IHRoaXMuY29tbW9uUGF0aCArICcvcmVOYW1lVGVtcGxhdGUnICsgdGhpcy50b2tlblxyXG4gICAgLy/liKDpmaRcclxuICAgIHRoaXMuZGVsVGVtcGxhdGVBUGkgPSB0aGlzLmNvbW1vblBhdGggKyAnL2RlbFRlbXBsYXRlJyArIHRoaXMudG9rZW5cclxuICAgIC8v5Yig6Zmk5qih5p2/LS3kuozmrKHnoa7orqTmjqXlj6NcclxuICAgIHRoaXMuYmVmb3JlRGVsVGVtcGxhdGVBcGkgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL0JlZm9yZURlbFRlbXBsYXRlJyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+iOt+WPluePree6p+WumuWItuWIl+ihqFxyXG4gICAgdGhpcy5nZXRDbGFzc0N1c3RvbUxpc3RBcGkgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL3Byb2R1Y3RDbGFzc1NldCcgKyB0aGlzLnRva2VuXHJcbiAgICAvL+iOt+WPluWtpueUn+WumuWItuWIl+ihqFxyXG4gICAgdGhpcy5nZXRTdHVkZW50Q3VzdG9tTGlzdEFwaSA9XHJcbiAgICAgIHRoaXMuY29tbW9uUGF0aCArICcvcHJvZHVjdFN0dWRlbnRTZXQnICsgdGhpcy50b2tlblxyXG4gICAgLy/mgaLlpI3nj63nuqfpu5jorqTlnLDlnYBcclxuICAgIHRoaXMucmVzZXRDbGFzc1NldEFwaSA9IHRoaXMuY29tbW9uUGF0aCArICcvcmVzZXRDbGFzc1NldCcgKyB0aGlzLnRva2VuXHJcbiAgICAvL+aBouWkjeWtpueUn+m7mOiupOWcsOWdgFxyXG4gICAgdGhpcy5yZXNldFN0dWRlbnRTZXRBcGkgPSB0aGlzLmNvbW1vblBhdGggKyAnL3Jlc2V0U3R1ZGVudFNldCcgKyB0aGlzLnRva2VuXHJcbiAgICAvL+S/neWtmOePree6p+WumuWItlxyXG4gICAgdGhpcy5zYXZlQ2xhc3NDdXN0b21BcGkgPSB0aGlzLmNvbW1vblBhdGggKyAnL3NhdmVDbGFzc1NldCcgKyB0aGlzLnRva2VuXHJcbiAgICAvL+S/neWtmOWtpueUn+WumuWItlxyXG4gICAgdGhpcy5zYXZlU3R1ZGVudEN1c3RvbUFwaSA9IHRoaXMuY29tbW9uUGF0aCArICcvc2F2ZVN0dWRlbnRTZXQnICsgdGhpcy50b2tlblxyXG5cclxuICAgIC8v5qC55o2u5bm057qn6I635Y+W54+t57qnXHJcbiAgICB0aGlzLmdldENsYXNzQnlHcmFkZUFwaSA9IHRoaXMuY29tbW9uUGF0aCArICcvZ2V0Q2xhc3NCeUdyYWRlJyArIHRoaXMudG9rZW5cclxuICAgIC8v5qC55o2u54+t57qn6I635Y+W5a2m55SfXHJcbiAgICB0aGlzLmdldFN0dWRlbnRzQnlDbGFzc0FwaSA9XHJcbiAgICAgIHRoaXMuZG9tYWluICsgJy9zdHVkZW50aW5mby9nZXRTdHVkZW50JyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+ivu+WPluaooeadv+S/oeaBr1xyXG4gICAgdGhpcy5nZXRUZW1wbGF0ZUJ5SWRBcGkgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL2FqYXhHZXRUZW1wbGF0ZUJ5SWQnICsgdGhpcy50b2tlblxyXG4gICAgLy/kv53lrZjmqKHmnb/mjqXlj6NcclxuICAgIHRoaXMuc2F2ZVRlbXBsYXRlQXBpID0gdGhpcy5jb21tb25QYXRoICsgJy9zYXZlVGVtcGxhdGUnICsgdGhpcy50b2tlblxyXG5cclxuICAgIC8v5a2m55Sf6Ieq6YCJ5Y2h5L+h5oGvXHJcbiAgICB0aGlzLmdldFN0dWRlbnRPcHRpb25hbENhcmRBcGkgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL2N1c3RvbVByb2R1Y3RTdHVkZW50U2V0JyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+WIoOmZpOWtpueUn+iHqumAieWNoVxyXG4gICAgdGhpcy5kZWxTdHVkZW50T3B0aW9uYWxDYXJkQXBpID1cclxuICAgICAgdGhpcy5jb21tb25QYXRoICsgJy9kZWxTdHVkZW50T3B0aW9uYWxDYXJkJyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+WIh+aNoueJiOacrFxyXG4gICAgdGhpcy5jaGFuZ2VWZXJzaW9uQXBpID0gdGhpcy5jb21tb25QYXRoICsgJy9zd2l0Y2hFZGl0aW9uJyArIHRoaXMudG9rZW5cclxuXHJcbiAgICAvL+S4i+i9veiHqumAieWNoeaooeadv1xyXG4gICAgdGhpcy5kb3duTG9hZFN0dWRlbnRPcHRpb25hbENhcmRVcmwgPVxyXG4gICAgICB0aGlzLmNvbW1vblBhdGggKyAnL2Rvd25QZGYnICsgdGhpcy50b2tlblxyXG5cclxuICAgIHRoaXMuc2F2ZU9wdGlvbmFsQ2FyZCA9IHRoaXMuY29tbW9uUGF0aCArICcvU2F2ZU9wdGlvbmFsQ2FyZCcgKyB0aGlzLnRva2VuXHJcbiAgfVxyXG4gIC8v6I635Y+W5a2m55Sf6Ieq6YCJ5Y2h5L+h5oGvXHJcbiAgZ2V0U3R1ZGVudE9wdGlvbmFsQ2FyZCh7XHJcbiAgICBwYWdlID0gMSxcclxuICAgIGNsYXNzX2lkID0gJycsXHJcbiAgICBzdHVkZW50X25hbWUsXHJcbiAgICBncmFkZV9pZCA9ICcnXHJcbiAgfSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IHRoaXMuZ2V0U3R1ZGVudE9wdGlvbmFsQ2FyZEFwaSxcclxuICAgICAgZGF0YTogeyBwYWdlLCBjbGFzc19pZCwgc3R1ZGVudF9uYW1lLCBncmFkZV9pZCB9XHJcbiAgICB9KVxyXG4gIH1cclxuICAvL+S4i+i9veiHqumAieWNoeaooeadv1xyXG4gIGRvd25Mb2FkU3R1ZGVudE9wdGlvbmFsQ2FyZCgpIHtcclxuICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLmRvd25Mb2FkU3R1ZGVudE9wdGlvbmFsQ2FyZFVybFxyXG4gIH1cclxuICAvL+WIoOmZpOWtpueUn+iHqumAieWNoeS/oeaBr1xyXG4gIGRlbFN0dWRlbnRPcHRpb25hbENhcmQoeyBzdHVkZW50X2lkIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLmRlbFN0dWRlbnRPcHRpb25hbENhcmRBcGksXHJcbiAgICAgIGRhdGE6IHsgc3R1ZGVudF9pZCB9XHJcbiAgICB9KVxyXG4gIH1cclxuICAvL+iOt+WPluaooeeJiFxyXG4gIGdldFRlbXBsYXRlQnlUeXBlKHsgdHlwZSwgdGFyZ2V0X3R5cGUgfSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IHRoaXMuZ2V0VGVtcGxhdGVCeVR5cGVBcGksXHJcbiAgICAgIGRhdGE6IHsgdHlwZSwgdGFyZ2V0X3R5cGUgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/lpI3liLbmqKHniYhcclxuICBjb3B5VGVtcGxhdGUoeyBpZCB9KSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5jb3B5VGVtcGxhdGVBcGksXHJcbiAgICAgIGRhdGE6IHsgaWQgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/ph43lkb3lkI1cclxuICByZW5hbWVUZW1wbGF0ZSh7IG5hbWUsIGlkIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLnJlbmFtZVRlbXBsYXRlQVBpLFxyXG4gICAgICBkYXRhOiB7IGlkLCBuYW1lIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIC8v5Yig6ZmkXHJcbiAgZGVsVGVtcGxhdGUoeyBpZCB9KSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5kZWxUZW1wbGF0ZUFQaSxcclxuICAgICAgZGF0YTogeyBpZCB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBiZWZvcmVEZWxUZW1wbGF0ZSh7IGlkIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLmJlZm9yZURlbFRlbXBsYXRlQXBpLFxyXG4gICAgICBkYXRhOiB7IGlkIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIC8v5qC55o2u5bm057qn6I635Y+W54+t57qnXHJcbiAgZ2V0Q2xhc3NCeUdyYWRlKHsgZ3JhZGVfaWQgfSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IHRoaXMuZ2V0Q2xhc3NCeUdyYWRlQXBpLFxyXG4gICAgICBkYXRhOiB7IGdyYWRlX2lkIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIC8v5qC55o2u54+t57qn6I635Y+W5a2m55SfXHJcbiAgZ2V0U3R1ZGVudHNCeUNsYXNzKHsgY2lkIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLmdldFN0dWRlbnRzQnlDbGFzc0FwaSxcclxuICAgICAgZGF0YTogeyBjaWQgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/kv53lrZjnj63nuqflrprliLZcclxuICBzYXZlQ2xhc3NDdXN0b20ocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5zYXZlQ2xhc3NDdXN0b21BcGksXHJcbiAgICAgIGRhdGE6IHBhcmFtc1xyXG4gICAgfSlcclxuICB9XHJcbiAgLy/kv53lrZjlrabnlJ/lrprliLZcclxuICBzYXZlU3R1ZGVudEN1c3RvbShwYXJhbXMpIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLnNhdmVTdHVkZW50Q3VzdG9tQXBpLFxyXG4gICAgICBkYXRhOiBwYXJhbXNcclxuICAgIH0pXHJcbiAgfVxyXG4gIC8v6I635Y+W54+t57qn5a6a5Yi25YiX6KGoXHJcbiAgZ2V0Q2xhc3NDdXN0b21MaXN0KHsgcGFnZSA9IDEsIGNsYXNzX2lkID0gJycsIGdyYWRlX2lkID0gJycgfSkge1xyXG4gICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IHRoaXMuZ2V0Q2xhc3NDdXN0b21MaXN0QXBpLFxyXG4gICAgICBkYXRhOiB7IHBhZ2UsIGNsYXNzX2lkLCBncmFkZV9pZCB9XHJcbiAgICB9KVxyXG4gIH1cclxuICAvL+iOt+WPluWtpueUn+WumuWItuWIl+ihqFxyXG4gIGdldFN0dWRlbnRDdXN0b21MaXN0KHtcclxuICAgIHBhZ2UgPSAxLFxyXG4gICAgY2xhc3NfaWQgPSAnJyxcclxuICAgIGdyYWRlX2lkID0gJycsXHJcbiAgICBzdHVkZW50X25hbWUgPSAnJ1xyXG4gIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLmdldFN0dWRlbnRDdXN0b21MaXN0QXBpLFxyXG4gICAgICBkYXRhOiB7IHBhZ2UsIGNsYXNzX2lkLCBncmFkZV9pZCwgc3R1ZGVudF9uYW1lIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvL+aBouWkjeePree6p+m7mOiupFxyXG4gIHJlc2V0Q2xhc3NTZXQoKSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5yZXNldENsYXNzU2V0QXBpXHJcbiAgICB9KVxyXG4gIH1cclxuICAvL+aBouWkjeWtpueUn+m7mOiupFxyXG4gIHJlc2V0U3R1ZGVudFNldCgpIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLnJlc2V0U3R1ZGVudFNldEFwaVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/lup/lvINcclxuICBnZXRUZW1wbGF0ZURhdGEoeyBpZCB9KSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5nZXRUZW1wbGF0ZURhdGFBcGksXHJcbiAgICAgIGRhdGE6IHsgaWQgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/ojrflj5bmqKHmnb/kv6Hmga9cclxuICBnZXRUZW1wbGF0ZUJ5SWQoeyBpZCB9KSB7XHJcbiAgICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICAgIHVybDogdGhpcy5nZXRUZW1wbGF0ZUJ5SWRBcGksXHJcbiAgICAgIGRhdGE6IHsgaWQgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy/kv53lrZjmqKHmnb9cclxuICBzYXZlVGVtcGxhdGUoZm9ybURhdGEpIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgcHJvY2Vzc0RhdGE6IGZhbHNlLFxyXG4gICAgICBjb250ZW50VHlwZTogZmFsc2UsXHJcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXHJcbiAgICAgIHVybDogdGhpcy5zYXZlVGVtcGxhdGVBcGksXHJcbiAgICAgIGRhdGE6IGZvcm1EYXRhXHJcbiAgICB9KVxyXG4gIH1cclxuICAvL+WIh+aNouiuvue9rueJiOacrFxyXG4gIGNoYW5nZVZlcnNpb24oeyBlZGl0aW9uIH0pIHtcclxuICAgIHJldHVybiByZXF1ZXN0KHtcclxuICAgICAgdXJsOiB0aGlzLmNoYW5nZVZlcnNpb25BcGksXHJcbiAgICAgIGRhdGE6IHsgZWRpdGlvbiB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzYXZlQ2hhbmdlT3B0aW9uYWxDYXJkKHtzdHVkZW50SWQsanNvbn0pe1xyXG4gICAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgICAgIHVybDogdGhpcy5zYXZlT3B0aW9uYWxDYXJkLFxyXG4gICAgICAgIGRhdGE6IHsgc3R1ZGVudElkLGpzb24gfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEFwaVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFBQSxpQkFNQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBOzs7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUZBO0FBSUE7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFGQTtBQUlBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFGQTtBQUlBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFJQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQUlBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUZBO0FBSUE7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBOzs7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFFQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQUlBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRkE7QUFJQTtBQUNBOzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFDQTs7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFGQTtBQUlBOzs7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFGQTtBQUlBOzs7Ozs7QUFHQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///14\n')},function(module,exports){eval("function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanM/MmZjZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXk7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///15\n")},function(module,exports,__webpack_require__){eval('var _typeof = __webpack_require__(7);\n\nvar assertThisInitialized = __webpack_require__(20);\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === "object" || typeof call === "function")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanM/MmNmMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3R5cGVvZlwiKTtcblxudmFyIGFzc2VydFRoaXNJbml0aWFsaXplZCA9IHJlcXVpcmUoXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZFwiKTtcblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///16\n')},function(module,exports){eval('function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3IuanM/ZTQxNyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5mby5kb25lKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG5cbiAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgIH1cblxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXN5bmNUb0dlbmVyYXRvcjsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///17\n')},function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvcmVwb3J0LnNjc3M/YWMwNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///18\n")},function(module,exports){eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzPzQ0ZGUiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2Y7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///19\n")},function(module,exports){eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcz9mMTQyIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///20\n")},function(module,exports,__webpack_require__){eval("var arrayLikeToArray = __webpack_require__(15);\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzP2E0ZDAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5XCIpO1xuXG5mdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5V2l0aG91dEhvbGVzOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///21\n")},function(module,exports){eval('function _iterableToArray(iter) {\n if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheS5qcz8wZmQ5Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGl0ZXIpKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaXRlcmFibGVUb0FycmF5OyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///22\n')},function(module,exports,__webpack_require__){eval('var arrayLikeToArray = __webpack_require__(15);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === "string") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === "Object" && o.constructor) n = o.constructor.name;\n if (n === "Map" || n === "Set") return Array.from(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzP2U3ZGEiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5XCIpO1xuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///23\n')},function(module,exports){eval('function _nonIterableSpread() {\n throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n}\n\nmodule.exports = _nonIterableSpread;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX0BiYWJlbF9ydW50aW1lQDcuMTEuMkBAYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlU3ByZWFkLmpzPzViMjYiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVTcHJlYWQ7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n')},function(module,exports,__webpack_require__){eval('/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n "use strict";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === "function" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || "@@iterator";\n var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";\n var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, "");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there\'s no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don\'t have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: "normal", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: "throw", arg: err };\n }\n }\n\n var GenStateSuspendedStart = "suspendedStart";\n var GenStateSuspendedYield = "suspendedYield";\n var GenStateExecuting = "executing";\n var GenStateCompleted = "completed";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don\'t natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n "GeneratorFunction"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n ["next", "throw", "return"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === "function" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === "GeneratorFunction"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, "GeneratorFunction");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, "__await")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === "throw") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === "object" &&\n hasOwn.call(value, "__await")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke("next", value, resolve, reject);\n }, function(err) {\n invoke("throw", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke("throw", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error("Generator is already running");\n }\n\n if (state === GenStateCompleted) {\n if (method === "throw") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === "next") {\n // Setting context._sent for legacy support of Babel\'s\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === "throw") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === "return") {\n context.abrupt("return", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === "normal") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === "throw") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = "throw";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === "throw") {\n // Note: ["return"] must be used for ES3 parsing compatibility.\n if (delegate.iterator["return"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = "return";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === "throw") {\n // If maybeInvokeDelegate(context) changed context.method from\n // "return" to "throw", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = "throw";\n context.arg = new TypeError(\n "The iterator does not provide a \'throw\' method");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === "throw") {\n context.method = "throw";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = "throw";\n context.arg = new TypeError("iterator result is not an object");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was "throw" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was "next", forget context.arg since it has been\n // "consumed" by the delegate iterator. If context.method was\n // "return", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== "return") {\n context.method = "next";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, "Generator");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers\' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn\'t happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return "[object Generator]";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = "normal";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: "root" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === "function") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel\'s\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = "next";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === "t" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === "throw") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = "throw";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = "next";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === "root") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle("end");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, "catchLoc");\n var hasFinally = hasOwn.call(entry, "finallyLoc");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error("try statement without catch or finally");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, "finallyLoc") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === "break" ||\n type === "continue") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = "next";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === "throw") {\n throw record.arg;\n }\n\n if (record.type === "break" ||\n record.type === "continue") {\n this.next = record.arg;\n } else if (record.type === "return") {\n this.rval = this.arg = record.arg;\n this.method = "return";\n this.next = "end";\n } else if (record.type === "normal" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n "catch": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === "throw") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error("illegal catch attempt");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === "next") {\n // Deliberately forget the last sent value so that we don\'t\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : undefined\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you\'ve misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you\'re not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function("r", "regeneratorRuntime = r")(runtime);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvX3JlZ2VuZXJhdG9yLXJ1bnRpbWVAMC4xMy43QHJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZS5qcz82YTYxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxudmFyIHJ1bnRpbWUgPSAoZnVuY3Rpb24gKGV4cG9ydHMpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgdmFyIE9wID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgdmFyIGhhc093biA9IE9wLmhhc093blByb3BlcnR5O1xuICB2YXIgdW5kZWZpbmVkOyAvLyBNb3JlIGNvbXByZXNzaWJsZSB0aGFuIHZvaWQgMC5cbiAgdmFyICRTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgPyBTeW1ib2wgOiB7fTtcbiAgdmFyIGl0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5pdGVyYXRvciB8fCBcIkBAaXRlcmF0b3JcIjtcbiAgdmFyIGFzeW5jSXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLmFzeW5jSXRlcmF0b3IgfHwgXCJAQGFzeW5jSXRlcmF0b3JcIjtcbiAgdmFyIHRvU3RyaW5nVGFnU3ltYm9sID0gJFN5bWJvbC50b1N0cmluZ1RhZyB8fCBcIkBAdG9TdHJpbmdUYWdcIjtcblxuICBmdW5jdGlvbiBkZWZpbmUob2JqLCBrZXksIHZhbHVlKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gb2JqW2tleV07XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBJRSA4IGhhcyBhIGJyb2tlbiBPYmplY3QuZGVmaW5lUHJvcGVydHkgdGhhdCBvbmx5IHdvcmtzIG9uIERPTSBvYmplY3RzLlxuICAgIGRlZmluZSh7fSwgXCJcIik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGRlZmluZSA9IGZ1bmN0aW9uKG9iaiwga2V5LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIG9ialtrZXldID0gdmFsdWU7XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHtcbiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci5cbiAgICB2YXIgcHJvdG9HZW5lcmF0b3IgPSBvdXRlckZuICYmIG91dGVyRm4ucHJvdG90eXBlIGluc3RhbmNlb2YgR2VuZXJhdG9yID8gb3V0ZXJGbiA6IEdlbmVyYXRvcjtcbiAgICB2YXIgZ2VuZXJhdG9yID0gT2JqZWN0LmNyZWF0ZShwcm90b0dlbmVyYXRvci5wcm90b3R5cGUpO1xuICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pO1xuXG4gICAgLy8gVGhlIC5faW52b2tlIG1ldGhvZCB1bmlmaWVzIHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIC5uZXh0LFxuICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy5cbiAgICBnZW5lcmF0b3IuX2ludm9rZSA9IG1ha2VJbnZva2VNZXRob2QoaW5uZXJGbiwgc2VsZiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9yO1xuICB9XG4gIGV4cG9ydHMud3JhcCA9IHdyYXA7XG5cbiAgLy8gVHJ5L2NhdGNoIGhlbHBlciB0byBtaW5pbWl6ZSBkZW9wdGltaXphdGlvbnMuIFJldHVybnMgYSBjb21wbGV0aW9uXG4gIC8vIHJlY29yZCBsaWtlIGNvbnRleHQudHJ5RW50cmllc1tpXS5jb21wbGV0aW9uLiBUaGlzIGludGVyZmFjZSBjb3VsZFxuICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmVcbiAgLy8gaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cywgYnV0IGluIGFsbCB0aGUgY2FzZXMgd2UgY2FyZSBhYm91dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYW4gZXhpc3RpbmcgbWV0aG9kIHdlIHdhbnQgdG8gY2FsbCwgc28gdGhlcmUncyBubyBuZWVkXG4gIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmdcbiAgLy8gdGhlIG1ldGhvZCB0YWtlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgc2luY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHRydWVcbiAgLy8gaW4gZXZlcnkgY2FzZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0b3VjaCB0aGUgYXJndW1lbnRzIG9iamVjdC4gVGhlXG4gIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2hcbiAgLy8gaGFzIGEgc3RhYmxlIHNoYXBlIGFuZCBzbyBob3BlZnVsbHkgc2hvdWxkIGJlIGNoZWFwIHRvIGFsbG9jYXRlLlxuICBmdW5jdGlvbiB0cnlDYXRjaChmbiwgb2JqLCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJub3JtYWxcIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIHsgdHlwZTogXCJ0aHJvd1wiLCBhcmc6IGVyciB9O1xuICAgIH1cbiAgfVxuXG4gIHZhciBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0ID0gXCJzdXNwZW5kZWRTdGFydFwiO1xuICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRZaWVsZCA9IFwic3VzcGVuZGVkWWllbGRcIjtcbiAgdmFyIEdlblN0YXRlRXhlY3V0aW5nID0gXCJleGVjdXRpbmdcIjtcbiAgdmFyIEdlblN0YXRlQ29tcGxldGVkID0gXCJjb21wbGV0ZWRcIjtcblxuICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzXG4gIC8vIGJyZWFraW5nIG91dCBvZiB0aGUgZGlzcGF0Y2ggc3dpdGNoIHN0YXRlbWVudC5cbiAgdmFyIENvbnRpbnVlU2VudGluZWwgPSB7fTtcblxuICAvLyBEdW1teSBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCB3ZSB1c2UgYXMgdGhlIC5jb25zdHJ1Y3RvciBhbmRcbiAgLy8gLmNvbnN0cnVjdG9yLnByb3RvdHlwZSBwcm9wZXJ0aWVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gR2VuZXJhdG9yXG4gIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyXG4gIC8vIG1pbmlmaWVyIG5vdCB0byBtYW5nbGUgdGhlIG5hbWVzIG9mIHRoZXNlIHR3byBmdW5jdGlvbnMuXG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuXG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXRcbiAgLy8gZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCBpdC5cbiAgdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG4gIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICB2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gIHZhciBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvICYmIGdldFByb3RvKGdldFByb3RvKHZhbHVlcyhbXSkpKTtcbiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmXG4gICAgICBOYXRpdmVJdGVyYXRvclByb3RvdHlwZSAhPT0gT3AgJiZcbiAgICAgIGhhc093bi5jYWxsKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlLCBpdGVyYXRvclN5bWJvbCkpIHtcbiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBwb2x5ZmlsbC5cbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG5cbiAgdmFyIEdwID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUucHJvdG90eXBlID1cbiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7XG4gIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdwLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7XG4gIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gR2VuZXJhdG9yRnVuY3Rpb247XG4gIEdlbmVyYXRvckZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gZGVmaW5lKFxuICAgIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLFxuICAgIHRvU3RyaW5nVGFnU3ltYm9sLFxuICAgIFwiR2VuZXJhdG9yRnVuY3Rpb25cIlxuICApO1xuXG4gIC8vIEhlbHBlciBmb3IgZGVmaW5pbmcgdGhlIC5uZXh0LCAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMgb2YgdGhlXG4gIC8vIEl0ZXJhdG9yIGludGVyZmFjZSBpbiB0ZXJtcyBvZiBhIHNpbmdsZSAuX2ludm9rZSBtZXRob2QuXG4gIGZ1bmN0aW9uIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhwcm90b3R5cGUpIHtcbiAgICBbXCJuZXh0XCIsIFwidGhyb3dcIiwgXCJyZXR1cm5cIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICAgIGRlZmluZShwcm90b3R5cGUsIG1ldGhvZCwgZnVuY3Rpb24oYXJnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZva2UobWV0aG9kLCBhcmcpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRzLmlzR2VuZXJhdG9yRnVuY3Rpb24gPSBmdW5jdGlvbihnZW5GdW4pIHtcbiAgICB2YXIgY3RvciA9IHR5cGVvZiBnZW5GdW4gPT09IFwiZnVuY3Rpb25cIiAmJiBnZW5GdW4uY29uc3RydWN0b3I7XG4gICAgcmV0dXJuIGN0b3JcbiAgICAgID8gY3RvciA9PT0gR2VuZXJhdG9yRnVuY3Rpb24gfHxcbiAgICAgICAgLy8gRm9yIHRoZSBuYXRpdmUgR2VuZXJhdG9yRnVuY3Rpb24gY29uc3RydWN0b3IsIHRoZSBiZXN0IHdlIGNhblxuICAgICAgICAvLyBkbyBpcyB0byBjaGVjayBpdHMgLm5hbWUgcHJvcGVydHkuXG4gICAgICAgIChjdG9yLmRpc3BsYXlOYW1lIHx8IGN0b3IubmFtZSkgPT09IFwiR2VuZXJhdG9yRnVuY3Rpb25cIlxuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuICBleHBvcnRzLm1hcmsgPSBmdW5jdGlvbihnZW5GdW4pIHtcbiAgICBpZiAoT2JqZWN0LnNldFByb3RvdHlwZU9mKSB7XG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2VuRnVuLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdlbkZ1bi5fX3Byb3RvX18gPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTtcbiAgICAgIGRlZmluZShnZW5GdW4sIHRvU3RyaW5nVGFnU3ltYm9sLCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpO1xuICAgIH1cbiAgICBnZW5GdW4ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShHcCk7XG4gICAgcmV0dXJuIGdlbkZ1bjtcbiAgfTtcblxuICAvLyBXaXRoaW4gdGhlIGJvZHkgb2YgYW55IGFzeW5jIGZ1bmN0aW9uLCBgYXdhaXQgeGAgaXMgdHJhbnNmb3JtZWQgdG9cbiAgLy8gYHlpZWxkIHJlZ2VuZXJhdG9yUnVudGltZS5hd3JhcCh4KWAsIHNvIHRoYXQgdGhlIHJ1bnRpbWUgY2FuIHRlc3RcbiAgLy8gYGhhc093bi5jYWxsKHZhbHVlLCBcIl9fYXdhaXRcIilgIHRvIGRldGVybWluZSBpZiB0aGUgeWllbGRlZCB2YWx1ZSBpc1xuICAvLyBtZWFudCB0byBiZSBhd2FpdGVkLlxuICBleHBvcnRzLmF3cmFwID0gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIHsgX19hd2FpdDogYXJnIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcihnZW5lcmF0b3IsIFByb21pc2VJbXBsKSB7XG4gICAgZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChnZW5lcmF0b3JbbWV0aG9kXSwgZ2VuZXJhdG9yLCBhcmcpO1xuICAgICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgcmVqZWN0KHJlY29yZC5hcmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlY29yZC5hcmc7XG4gICAgICAgIHZhciB2YWx1ZSA9IHJlc3VsdC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgIGhhc093bi5jYWxsKHZhbHVlLCBcIl9fYXdhaXRcIikpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZUltcGwucmVzb2x2ZSh2YWx1ZS5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICBpbnZva2UoXCJuZXh0XCIsIHZhbHVlLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgaW52b2tlKFwidGhyb3dcIiwgZXJyLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2VJbXBsLnJlc29sdmUodmFsdWUpLnRoZW4oZnVuY3Rpb24odW53cmFwcGVkKSB7XG4gICAgICAgICAgLy8gV2hlbiBhIHlpZWxkZWQgUHJvbWlzZSBpcyByZXNvbHZlZCwgaXRzIGZpbmFsIHZhbHVlIGJlY29tZXNcbiAgICAgICAgICAvLyB0aGUgLnZhbHVlIG9mIHRoZSBQcm9taXNlPHt2YWx1ZSxkb25lfT4gcmVzdWx0IGZvciB0aGVcbiAgICAgICAgICAvLyBjdXJyZW50IGl0ZXJhdGlvbi5cbiAgICAgICAgICByZXN1bHQudmFsdWUgPSB1bndyYXBwZWQ7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9LCBmdW5jdGlvbihlcnJvcikge1xuICAgICAgICAgIC8vIElmIGEgcmVqZWN0ZWQgUHJvbWlzZSB3YXMgeWllbGRlZCwgdGhyb3cgdGhlIHJlamVjdGlvbiBiYWNrXG4gICAgICAgICAgLy8gaW50byB0aGUgYXN5bmMgZ2VuZXJhdG9yIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSBoYW5kbGVkIHRoZXJlLlxuICAgICAgICAgIHJldHVybiBpbnZva2UoXCJ0aHJvd1wiLCBlcnJvciwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHByZXZpb3VzUHJvbWlzZTtcblxuICAgIGZ1bmN0aW9uIGVucXVldWUobWV0aG9kLCBhcmcpIHtcbiAgICAgIGZ1bmN0aW9uIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2VJbXBsKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIGludm9rZShtZXRob2QsIGFyZywgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmV2aW91c1Byb21pc2UgPVxuICAgICAgICAvLyBJZiBlbnF1ZXVlIGhhcyBiZWVuIGNhbGxlZCBiZWZvcmUsIHRoZW4gd2Ugd2FudCB0byB3YWl0IHVudGlsXG4gICAgICAgIC8vIGFsbCBwcmV2aW91cyBQcm9taXNlcyBoYXZlIGJlZW4gcmVzb2x2ZWQgYmVmb3JlIGNhbGxpbmcgaW52b2tlLFxuICAgICAgICAvLyBzbyB0aGF0IHJlc3VsdHMgYXJlIGFsd2F5cyBkZWxpdmVyZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIElmXG4gICAgICAgIC8vIGVucXVldWUgaGFzIG5vdCBiZWVuIGNhbGxlZCBiZWZvcmUsIHRoZW4gaXQgaXMgaW1wb3J0YW50IHRvXG4gICAgICAgIC8vIGNhbGwgaW52b2tlIGltbWVkaWF0ZWx5LCB3aXRob3V0IHdhaXRpbmcgb24gYSBjYWxsYmFjayB0byBmaXJlLFxuICAgICAgICAvLyBzbyB0aGF0IHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gaGFzIHRoZSBvcHBvcnR1bml0eSB0byBkb1xuICAgICAgICAvLyBhbnkgbmVjZXNzYXJ5IHNldHVwIGluIGEgcHJlZGljdGFibGUgd2F5LiBUaGlzIHByZWRpY3RhYmlsaXR5XG4gICAgICAgIC8vIGlzIHdoeSB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBzeW5jaHJvbm91c2x5IGludm9rZXMgaXRzXG4gICAgICAgIC8vIGV4ZWN1dG9yIGNhbGxiYWNrLCBhbmQgd2h5IGFzeW5jIGZ1bmN0aW9ucyBzeW5jaHJvbm91c2x5XG4gICAgICAgIC8vIGV4ZWN1dGUgY29kZSBiZWZvcmUgdGhlIGZpcnN0IGF3YWl0LiBTaW5jZSB3ZSBpbXBsZW1lbnQgc2ltcGxlXG4gICAgICAgIC8vIGFzeW5jIGZ1bmN0aW9ucyBpbiB0ZXJtcyBvZiBhc3luYyBnZW5lcmF0b3JzLCBpdCBpcyBlc3BlY2lhbGx5XG4gICAgICAgIC8vIGltcG9ydGFudCB0byBnZXQgdGhpcyByaWdodCwgZXZlbiB0aG91Z2ggaXQgcmVxdWlyZXMgY2FyZS5cbiAgICAgICAgcHJldmlvdXNQcm9taXNlID8gcHJldmlvdXNQcm9taXNlLnRoZW4oXG4gICAgICAgICAgY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcsXG4gICAgICAgICAgLy8gQXZvaWQgcHJvcGFnYXRpbmcgZmFpbHVyZXMgdG8gUHJvbWlzZXMgcmV0dXJuZWQgYnkgbGF0ZXJcbiAgICAgICAgICAvLyBpbnZvY2F0aW9ucyBvZiB0aGUgaXRlcmF0b3IuXG4gICAgICAgICAgY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmdcbiAgICAgICAgKSA6IGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCk7XG4gICAgfVxuXG4gICAgLy8gRGVmaW5lIHRoZSB1bmlmaWVkIGhlbHBlciBtZXRob2QgdGhhdCBpcyB1c2VkIHRvIGltcGxlbWVudCAubmV4dCxcbiAgICAvLyAudGhyb3csIGFuZCAucmV0dXJuIChzZWUgZGVmaW5lSXRlcmF0b3JNZXRob2RzKS5cbiAgICB0aGlzLl9pbnZva2UgPSBlbnF1ZXVlO1xuICB9XG5cbiAgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEFzeW5jSXRlcmF0b3IucHJvdG90eXBlKTtcbiAgQXN5bmNJdGVyYXRvci5wcm90b3R5cGVbYXN5bmNJdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIGV4cG9ydHMuQXN5bmNJdGVyYXRvciA9IEFzeW5jSXRlcmF0b3I7XG5cbiAgLy8gTm90ZSB0aGF0IHNpbXBsZSBhc3luYyBmdW5jdGlvbnMgYXJlIGltcGxlbWVudGVkIG9uIHRvcCBvZlxuICAvLyBBc3luY0l0ZXJhdG9yIG9iamVjdHM7IHRoZXkganVzdCByZXR1cm4gYSBQcm9taXNlIGZvciB0aGUgdmFsdWUgb2ZcbiAgLy8gdGhlIGZpbmFsIHJlc3VsdCBwcm9kdWNlZCBieSB0aGUgaXRlcmF0b3IuXG4gIGV4cG9ydHMuYXN5bmMgPSBmdW5jdGlvbihpbm5lckZuLCBvdXRlckZuLCBzZWxmLCB0cnlMb2NzTGlzdCwgUHJvbWlzZUltcGwpIHtcbiAgICBpZiAoUHJvbWlzZUltcGwgPT09IHZvaWQgMCkgUHJvbWlzZUltcGwgPSBQcm9taXNlO1xuXG4gICAgdmFyIGl0ZXIgPSBuZXcgQXN5bmNJdGVyYXRvcihcbiAgICAgIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpLFxuICAgICAgUHJvbWlzZUltcGxcbiAgICApO1xuXG4gICAgcmV0dXJuIGV4cG9ydHMuaXNHZW5lcmF0b3JGdW5jdGlvbihvdXRlckZuKVxuICAgICAgPyBpdGVyIC8vIElmIG91dGVyRm4gaXMgYSBnZW5lcmF0b3IsIHJldHVybiB0aGUgZnVsbCBpdGVyYXRvci5cbiAgICAgIDogaXRlci5uZXh0KCkudGhlbihmdW5jdGlvbihyZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmRvbmUgPyByZXN1bHQudmFsdWUgOiBpdGVyLm5leHQoKTtcbiAgICAgICAgfSk7XG4gIH07XG5cbiAgZnVuY3Rpb24gbWFrZUludm9rZU1ldGhvZChpbm5lckZuLCBzZWxmLCBjb250ZXh0KSB7XG4gICAgdmFyIHN0YXRlID0gR2VuU3RhdGVTdXNwZW5kZWRTdGFydDtcblxuICAgIHJldHVybiBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcpIHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gR2VuU3RhdGVFeGVjdXRpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZ1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUNvbXBsZXRlZCkge1xuICAgICAgICBpZiAobWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICB0aHJvdyBhcmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCZSBmb3JnaXZpbmcsIHBlciAyNS4zLjMuMy4zIG9mIHRoZSBzcGVjOlxuICAgICAgICAvLyBodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtZ2VuZXJhdG9ycmVzdW1lXG4gICAgICAgIHJldHVybiBkb25lUmVzdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQubWV0aG9kID0gbWV0aG9kO1xuICAgICAgY29udGV4dC5hcmcgPSBhcmc7XG5cbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHZhciBkZWxlZ2F0ZSA9IGNvbnRleHQuZGVsZWdhdGU7XG4gICAgICAgIGlmIChkZWxlZ2F0ZSkge1xuICAgICAgICAgIHZhciBkZWxlZ2F0ZVJlc3VsdCA9IG1heWJlSW52b2tlRGVsZWdhdGUoZGVsZWdhdGUsIGNvbnRleHQpO1xuICAgICAgICAgIGlmIChkZWxlZ2F0ZVJlc3VsdCkge1xuICAgICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0ID09PSBDb250aW51ZVNlbnRpbmVsKSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZVJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09IFwibmV4dFwiKSB7XG4gICAgICAgICAgLy8gU2V0dGluZyBjb250ZXh0Ll9zZW50IGZvciBsZWdhY3kgc3VwcG9ydCBvZiBCYWJlbCdzXG4gICAgICAgICAgLy8gZnVuY3Rpb24uc2VudCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICBjb250ZXh0LnNlbnQgPSBjb250ZXh0Ll9zZW50ID0gY29udGV4dC5hcmc7XG5cbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0KSB7XG4gICAgICAgICAgICBzdGF0ZSA9IEdlblN0YXRlQ29tcGxldGVkO1xuICAgICAgICAgICAgdGhyb3cgY29udGV4dC5hcmc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZyk7XG5cbiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJyZXR1cm5cIikge1xuICAgICAgICAgIGNvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIGNvbnRleHQuYXJnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlID0gR2VuU3RhdGVFeGVjdXRpbmc7XG5cbiAgICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGlubmVyRm4sIHNlbGYsIGNvbnRleHQpO1xuICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwibm9ybWFsXCIpIHtcbiAgICAgICAgICAvLyBJZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIGZyb20gaW5uZXJGbiwgd2UgbGVhdmUgc3RhdGUgPT09XG4gICAgICAgICAgLy8gR2VuU3RhdGVFeGVjdXRpbmcgYW5kIGxvb3AgYmFjayBmb3IgYW5vdGhlciBpbnZvY2F0aW9uLlxuICAgICAgICAgIHN0YXRlID0gY29udGV4dC5kb25lXG4gICAgICAgICAgICA/IEdlblN0YXRlQ29tcGxldGVkXG4gICAgICAgICAgICA6IEdlblN0YXRlU3VzcGVuZGVkWWllbGQ7XG5cbiAgICAgICAgICBpZiAocmVjb3JkLmFyZyA9PT0gQ29udGludWVTZW50aW5lbCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiByZWNvcmQuYXJnLFxuICAgICAgICAgICAgZG9uZTogY29udGV4dC5kb25lXG4gICAgICAgICAgfTtcblxuICAgICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICBzdGF0ZSA9IEdlblN0YXRlQ29tcGxldGVkO1xuICAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBleGNlcHRpb24gYnkgbG9vcGluZyBiYWNrIGFyb3VuZCB0byB0aGVcbiAgICAgICAgICAvLyBjb250ZXh0LmRpc3BhdGNoRXhjZXB0aW9uKGNvbnRleHQuYXJnKSBjYWxsIGFib3ZlLlxuICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBDYWxsIGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXShjb250ZXh0LmFyZykgYW5kIGhhbmRsZSB0aGVcbiAgLy8gcmVzdWx0LCBlaXRoZXIgYnkgcmV0dXJuaW5nIGEgeyB2YWx1ZSwgZG9uZSB9IHJlc3VsdCBmcm9tIHRoZVxuICAvLyBkZWxlZ2F0ZSBpdGVyYXRvciwgb3IgYnkgbW9kaWZ5aW5nIGNvbnRleHQubWV0aG9kIGFuZCBjb250ZXh0LmFyZyxcbiAgLy8gc2V0dGluZyBjb250ZXh0LmRlbGVnYXRlIHRvIG51bGwsIGFuZCByZXR1cm5pbmcgdGhlIENvbnRpbnVlU2VudGluZWwuXG4gIGZ1bmN0aW9uIG1heWJlSW52b2tlRGVsZWdhdGUoZGVsZWdhdGUsIGNvbnRleHQpIHtcbiAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGUuaXRlcmF0b3JbY29udGV4dC5tZXRob2RdO1xuICAgIGlmIChtZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gQSAudGhyb3cgb3IgLnJldHVybiB3aGVuIHRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBoYXMgbm8gLnRocm93XG4gICAgICAvLyBtZXRob2QgYWx3YXlzIHRlcm1pbmF0ZXMgdGhlIHlpZWxkKiBsb29wLlxuICAgICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG5cbiAgICAgIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIC8vIE5vdGU6IFtcInJldHVyblwiXSBtdXN0IGJlIHVzZWQgZm9yIEVTMyBwYXJzaW5nIGNvbXBhdGliaWxpdHkuXG4gICAgICAgIGlmIChkZWxlZ2F0ZS5pdGVyYXRvcltcInJldHVyblwiXSkge1xuICAgICAgICAgIC8vIElmIHRoZSBkZWxlZ2F0ZSBpdGVyYXRvciBoYXMgYSByZXR1cm4gbWV0aG9kLCBnaXZlIGl0IGFcbiAgICAgICAgICAvLyBjaGFuY2UgdG8gY2xlYW4gdXAuXG4gICAgICAgICAgY29udGV4dC5tZXRob2QgPSBcInJldHVyblwiO1xuICAgICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgICAgIG1heWJlSW52b2tlRGVsZWdhdGUoZGVsZWdhdGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSBcInRocm93XCIpIHtcbiAgICAgICAgICAgIC8vIElmIG1heWJlSW52b2tlRGVsZWdhdGUoY29udGV4dCkgY2hhbmdlZCBjb250ZXh0Lm1ldGhvZCBmcm9tXG4gICAgICAgICAgICAvLyBcInJldHVyblwiIHRvIFwidGhyb3dcIiwgbGV0IHRoYXQgb3ZlcnJpZGUgdGhlIFR5cGVFcnJvciBiZWxvdy5cbiAgICAgICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgICBjb250ZXh0LmFyZyA9IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgXCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICd0aHJvdycgbWV0aG9kXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICB9XG5cbiAgICB2YXIgcmVjb3JkID0gdHJ5Q2F0Y2gobWV0aG9kLCBkZWxlZ2F0ZS5pdGVyYXRvciwgY29udGV4dC5hcmcpO1xuXG4gICAgaWYgKHJlY29yZC50eXBlID09PSBcInRocm93XCIpIHtcbiAgICAgIGNvbnRleHQubWV0aG9kID0gXCJ0aHJvd1wiO1xuICAgICAgY29udGV4dC5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICB9XG5cbiAgICB2YXIgaW5mbyA9IHJlY29yZC5hcmc7XG5cbiAgICBpZiAoISBpbmZvKSB7XG4gICAgICBjb250ZXh0Lm1ldGhvZCA9IFwidGhyb3dcIjtcbiAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpO1xuICAgICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7XG4gICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICB9XG5cbiAgICBpZiAoaW5mby5kb25lKSB7XG4gICAgICAvLyBBc3NpZ24gdGhlIHJlc3VsdCBvZiB0aGUgZmluaXNoZWQgZGVsZWdhdGUgdG8gdGhlIHRlbXBvcmFyeVxuICAgICAgLy8gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IGRlbGVnYXRlLnJlc3VsdE5hbWUgKHNlZSBkZWxlZ2F0ZVlpZWxkKS5cbiAgICAgIGNvbnRleHRbZGVsZWdhdGUucmVzdWx0TmFtZV0gPSBpbmZvLnZhbHVlO1xuXG4gICAgICAvLyBSZXN1bWUgZXhlY3V0aW9uIGF0IHRoZSBkZXNpcmVkIGxvY2F0aW9uIChzZWUgZGVsZWdhdGVZaWVsZCkuXG4gICAgICBjb250ZXh0Lm5leHQgPSBkZWxlZ2F0ZS5uZXh0TG9jO1xuXG4gICAgICAvLyBJZiBjb250ZXh0Lm1ldGhvZCB3YXMgXCJ0aHJvd1wiIGJ1dCB0aGUgZGVsZWdhdGUgaGFuZGxlZCB0aGVcbiAgICAgIC8vIGV4Y2VwdGlvbiwgbGV0IHRoZSBvdXRlciBnZW5lcmF0b3IgcHJvY2VlZCBub3JtYWxseS4gSWZcbiAgICAgIC8vIGNvbnRleHQubWV0aG9kIHdhcyBcIm5leHRcIiwgZm9yZ2V0IGNvbnRleHQuYXJnIHNpbmNlIGl0IGhhcyBiZWVuXG4gICAgICAvLyBcImNvbnN1bWVkXCIgYnkgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yLiBJZiBjb250ZXh0Lm1ldGhvZCB3YXNcbiAgICAgIC8vIFwicmV0dXJuXCIsIGFsbG93IHRoZSBvcmlnaW5hbCAucmV0dXJuIGNhbGwgdG8gY29udGludWUgaW4gdGhlXG4gICAgICAvLyBvdXRlciBnZW5lcmF0b3IuXG4gICAgICBpZiAoY29udGV4dC5tZXRob2QgIT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgY29udGV4dC5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmUteWllbGQgdGhlIHJlc3VsdCByZXR1cm5lZCBieSB0aGUgZGVsZWdhdGUgbWV0aG9kLlxuICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxuXG4gICAgLy8gVGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGlzIGZpbmlzaGVkLCBzbyBmb3JnZXQgaXQgYW5kIGNvbnRpbnVlIHdpdGhcbiAgICAvLyB0aGUgb3V0ZXIgZ2VuZXJhdG9yLlxuICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsO1xuICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsO1xuICB9XG5cbiAgLy8gRGVmaW5lIEdlbmVyYXRvci5wcm90b3R5cGUue25leHQsdGhyb3cscmV0dXJufSBpbiB0ZXJtcyBvZiB0aGVcbiAgLy8gdW5pZmllZCAuX2ludm9rZSBoZWxwZXIgbWV0aG9kLlxuICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoR3ApO1xuXG4gIGRlZmluZShHcCwgdG9TdHJpbmdUYWdTeW1ib2wsIFwiR2VuZXJhdG9yXCIpO1xuXG4gIC8vIEEgR2VuZXJhdG9yIHNob3VsZCBhbHdheXMgcmV0dXJuIGl0c2VsZiBhcyB0aGUgaXRlcmF0b3Igb2JqZWN0IHdoZW4gdGhlXG4gIC8vIEBAaXRlcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGl0LiBTb21lIGJyb3dzZXJzJyBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlXG4gIC8vIGl0ZXJhdG9yIHByb3RvdHlwZSBjaGFpbiBpbmNvcnJlY3RseSBpbXBsZW1lbnQgdGhpcywgY2F1c2luZyB0aGUgR2VuZXJhdG9yXG4gIC8vIG9iamVjdCB0byBub3QgYmUgcmV0dXJuZWQgZnJvbSB0aGlzIGNhbGwuIFRoaXMgZW5zdXJlcyB0aGF0IGRvZXNuJ3QgaGFwcGVuLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2lzc3Vlcy8yNzQgZm9yIG1vcmUgZGV0YWlscy5cbiAgR3BbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgR3AudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gXCJbb2JqZWN0IEdlbmVyYXRvcl1cIjtcbiAgfTtcblxuICBmdW5jdGlvbiBwdXNoVHJ5RW50cnkobG9jcykge1xuICAgIHZhciBlbnRyeSA9IHsgdHJ5TG9jOiBsb2NzWzBdIH07XG5cbiAgICBpZiAoMSBpbiBsb2NzKSB7XG4gICAgICBlbnRyeS5jYXRjaExvYyA9IGxvY3NbMV07XG4gICAgfVxuXG4gICAgaWYgKDIgaW4gbG9jcykge1xuICAgICAgZW50cnkuZmluYWxseUxvYyA9IGxvY3NbMl07XG4gICAgICBlbnRyeS5hZnRlckxvYyA9IGxvY3NbM107XG4gICAgfVxuXG4gICAgdGhpcy50cnlFbnRyaWVzLnB1c2goZW50cnkpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzZXRUcnlFbnRyeShlbnRyeSkge1xuICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uIHx8IHt9O1xuICAgIHJlY29yZC50eXBlID0gXCJub3JtYWxcIjtcbiAgICBkZWxldGUgcmVjb3JkLmFyZztcbiAgICBlbnRyeS5jb21wbGV0aW9uID0gcmVjb3JkO1xuICB9XG5cbiAgZnVuY3Rpb24gQ29udGV4dCh0cnlMb2NzTGlzdCkge1xuICAgIC8vIFRoZSByb290IGVudHJ5IG9iamVjdCAoZWZmZWN0aXZlbHkgYSB0cnkgc3RhdGVtZW50IHdpdGhvdXQgYSBjYXRjaFxuICAgIC8vIG9yIGEgZmluYWxseSBibG9jaykgZ2l2ZXMgdXMgYSBwbGFjZSB0byBzdG9yZSB2YWx1ZXMgdGhyb3duIGZyb21cbiAgICAvLyBsb2NhdGlvbnMgd2hlcmUgdGhlcmUgaXMgbm8gZW5jbG9zaW5nIHRyeSBzdGF0ZW1lbnQuXG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3sgdHJ5TG9jOiBcInJvb3RcIiB9XTtcbiAgICB0cnlMb2NzTGlzdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyk7XG4gICAgdGhpcy5yZXNldCh0cnVlKTtcbiAgfVxuXG4gIGV4cG9ydHMua2V5cyA9IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHZhciBrZXlzID0gW107XG4gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGtleXMucmV2ZXJzZSgpO1xuXG4gICAgLy8gUmF0aGVyIHRoYW4gcmV0dXJuaW5nIGFuIG9iamVjdCB3aXRoIGEgbmV4dCBtZXRob2QsIHdlIGtlZXBcbiAgICAvLyB0aGluZ3Mgc2ltcGxlIGFuZCByZXR1cm4gdGhlIG5leHQgZnVuY3Rpb24gaXRzZWxmLlxuICAgIHJldHVybiBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgd2hpbGUgKGtleXMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSBrZXlzLnBvcCgpO1xuICAgICAgICBpZiAoa2V5IGluIG9iamVjdCkge1xuICAgICAgICAgIG5leHQudmFsdWUgPSBrZXk7XG4gICAgICAgICAgbmV4dC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVG8gYXZvaWQgY3JlYXRpbmcgYW4gYWRkaXRpb25hbCBvYmplY3QsIHdlIGp1c3QgaGFuZyB0aGUgLnZhbHVlXG4gICAgICAvLyBhbmQgLmRvbmUgcHJvcGVydGllcyBvZmYgdGhlIG5leHQgZnVuY3Rpb24gb2JqZWN0IGl0c2VsZi4gVGhpc1xuICAgICAgLy8gYWxzbyBlbnN1cmVzIHRoYXQgdGhlIG1pbmlmaWVyIHdpbGwgbm90IGFub255bWl6ZSB0aGUgZnVuY3Rpb24uXG4gICAgICBuZXh0LmRvbmUgPSB0cnVlO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiB2YWx1ZXMoaXRlcmFibGUpIHtcbiAgICBpZiAoaXRlcmFibGUpIHtcbiAgICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZXJhYmxlW2l0ZXJhdG9yU3ltYm9sXTtcbiAgICAgIGlmIChpdGVyYXRvck1ldGhvZCkge1xuICAgICAgICByZXR1cm4gaXRlcmF0b3JNZXRob2QuY2FsbChpdGVyYWJsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlcmFibGUubmV4dCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBpdGVyYWJsZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc05hTihpdGVyYWJsZS5sZW5ndGgpKSB7XG4gICAgICAgIHZhciBpID0gLTEsIG5leHQgPSBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgICAgIHdoaWxlICgrK2kgPCBpdGVyYWJsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd24uY2FsbChpdGVyYWJsZSwgaSkpIHtcbiAgICAgICAgICAgICAgbmV4dC52YWx1ZSA9IGl0ZXJhYmxlW2ldO1xuICAgICAgICAgICAgICBuZXh0LmRvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBuZXh0LmRvbmUgPSB0cnVlO1xuXG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5leHQubmV4dCA9IG5leHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGFuIGl0ZXJhdG9yIHdpdGggbm8gdmFsdWVzLlxuICAgIHJldHVybiB7IG5leHQ6IGRvbmVSZXN1bHQgfTtcbiAgfVxuICBleHBvcnRzLnZhbHVlcyA9IHZhbHVlcztcblxuICBmdW5jdGlvbiBkb25lUmVzdWx0KCkge1xuICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgfVxuXG4gIENvbnRleHQucHJvdG90eXBlID0ge1xuICAgIGNvbnN0cnVjdG9yOiBDb250ZXh0LFxuXG4gICAgcmVzZXQ6IGZ1bmN0aW9uKHNraXBUZW1wUmVzZXQpIHtcbiAgICAgIHRoaXMucHJldiA9IDA7XG4gICAgICB0aGlzLm5leHQgPSAwO1xuICAgICAgLy8gUmVzZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3NcbiAgICAgIC8vIGZ1bmN0aW9uLnNlbnQgaW1wbGVtZW50YXRpb24uXG4gICAgICB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICB0aGlzLmRlbGVnYXRlID0gbnVsbDtcblxuICAgICAgdGhpcy5tZXRob2QgPSBcIm5leHRcIjtcbiAgICAgIHRoaXMuYXJnID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChyZXNldFRyeUVudHJ5KTtcblxuICAgICAgaWYgKCFza2lwVGVtcFJlc2V0KSB7XG4gICAgICAgIGZvciAodmFyIG5hbWUgaW4gdGhpcykge1xuICAgICAgICAgIC8vIE5vdCBzdXJlIGFib3V0IHRoZSBvcHRpbWFsIG9yZGVyIG9mIHRoZXNlIGNvbmRpdGlvbnM6XG4gICAgICAgICAgaWYgKG5hbWUuY2hhckF0KDApID09PSBcInRcIiAmJlxuICAgICAgICAgICAgICBoYXNPd24uY2FsbCh0aGlzLCBuYW1lKSAmJlxuICAgICAgICAgICAgICAhaXNOYU4oK25hbWUuc2xpY2UoMSkpKSB7XG4gICAgICAgICAgICB0aGlzW25hbWVdID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBzdG9wOiBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG5cbiAgICAgIHZhciByb290RW50cnkgPSB0aGlzLnRyeUVudHJpZXNbMF07XG4gICAgICB2YXIgcm9vdFJlY29yZCA9IHJvb3RFbnRyeS5jb21wbGV0aW9uO1xuICAgICAgaWYgKHJvb3RSZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgIHRocm93IHJvb3RSZWNvcmQuYXJnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5ydmFsO1xuICAgIH0sXG5cbiAgICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24oZXhjZXB0aW9uKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbnRleHQgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKGxvYywgY2F1Z2h0KSB7XG4gICAgICAgIHJlY29yZC50eXBlID0gXCJ0aHJvd1wiO1xuICAgICAgICByZWNvcmQuYXJnID0gZXhjZXB0aW9uO1xuICAgICAgICBjb250ZXh0Lm5leHQgPSBsb2M7XG5cbiAgICAgICAgaWYgKGNhdWdodCkge1xuICAgICAgICAgIC8vIElmIHRoZSBkaXNwYXRjaGVkIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0IGJ5IGEgY2F0Y2ggYmxvY2ssXG4gICAgICAgICAgLy8gdGhlbiBsZXQgdGhhdCBjYXRjaCBibG9jayBoYW5kbGUgdGhlIGV4Y2VwdGlvbiBub3JtYWxseS5cbiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICEhIGNhdWdodDtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uO1xuXG4gICAgICAgIGlmIChlbnRyeS50cnlMb2MgPT09IFwicm9vdFwiKSB7XG4gICAgICAgICAgLy8gRXhjZXB0aW9uIHRocm93biBvdXRzaWRlIG9mIGFueSB0cnkgYmxvY2sgdGhhdCBjb3VsZCBoYW5kbGVcbiAgICAgICAgICAvLyBpdCwgc28gc2V0IHRoZSBjb21wbGV0aW9uIHZhbHVlIG9mIHRoZSBlbnRpcmUgZnVuY3Rpb24gdG9cbiAgICAgICAgICAvLyB0aHJvdyB0aGUgZXhjZXB0aW9uLlxuICAgICAgICAgIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50cnkudHJ5TG9jIDw9IHRoaXMucHJldikge1xuICAgICAgICAgIHZhciBoYXNDYXRjaCA9IGhhc093bi5jYWxsKGVudHJ5LCBcImNhdGNoTG9jXCIpO1xuICAgICAgICAgIHZhciBoYXNGaW5hbGx5ID0gaGFzT3duLmNhbGwoZW50cnksIFwiZmluYWxseUxvY1wiKTtcblxuICAgICAgICAgIGlmIChoYXNDYXRjaCAmJiBoYXNGaW5hbGx5KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ2F0Y2gpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBlbnRyeS5jYXRjaExvYykge1xuICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlKGVudHJ5LmNhdGNoTG9jLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAoaGFzRmluYWxseSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgYWJydXB0OiBmdW5jdGlvbih0eXBlLCBhcmcpIHtcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRyeUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldO1xuICAgICAgICBpZiAoZW50cnkudHJ5TG9jIDw9IHRoaXMucHJldiAmJlxuICAgICAgICAgICAgaGFzT3duLmNhbGwoZW50cnksIFwiZmluYWxseUxvY1wiKSAmJlxuICAgICAgICAgICAgdGhpcy5wcmV2IDwgZW50cnkuZmluYWxseUxvYykge1xuICAgICAgICAgIHZhciBmaW5hbGx5RW50cnkgPSBlbnRyeTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZmluYWxseUVudHJ5ICYmXG4gICAgICAgICAgKHR5cGUgPT09IFwiYnJlYWtcIiB8fFxuICAgICAgICAgICB0eXBlID09PSBcImNvbnRpbnVlXCIpICYmXG4gICAgICAgICAgZmluYWxseUVudHJ5LnRyeUxvYyA8PSBhcmcgJiZcbiAgICAgICAgICBhcmcgPD0gZmluYWxseUVudHJ5LmZpbmFsbHlMb2MpIHtcbiAgICAgICAgLy8gSWdub3JlIHRoZSBmaW5hbGx5IGVudHJ5IGlmIGNvbnRyb2wgaXMgbm90IGp1bXBpbmcgdG8gYVxuICAgICAgICAvLyBsb2NhdGlvbiBvdXRzaWRlIHRoZSB0cnkvY2F0Y2ggYmxvY2suXG4gICAgICAgIGZpbmFsbHlFbnRyeSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHZhciByZWNvcmQgPSBmaW5hbGx5RW50cnkgPyBmaW5hbGx5RW50cnkuY29tcGxldGlvbiA6IHt9O1xuICAgICAgcmVjb3JkLnR5cGUgPSB0eXBlO1xuICAgICAgcmVjb3JkLmFyZyA9IGFyZztcblxuICAgICAgaWYgKGZpbmFsbHlFbnRyeSkge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IFwibmV4dFwiO1xuICAgICAgICB0aGlzLm5leHQgPSBmaW5hbGx5RW50cnkuZmluYWxseUxvYztcbiAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBsZXRlKHJlY29yZCk7XG4gICAgfSxcblxuICAgIGNvbXBsZXRlOiBmdW5jdGlvbihyZWNvcmQsIGFmdGVyTG9jKSB7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwidGhyb3dcIikge1xuICAgICAgICB0aHJvdyByZWNvcmQuYXJnO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFwiYnJlYWtcIiB8fFxuICAgICAgICAgIHJlY29yZC50eXBlID09PSBcImNvbnRpbnVlXCIpIHtcbiAgICAgICAgdGhpcy5uZXh0ID0gcmVjb3JkLmFyZztcbiAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09IFwicmV0dXJuXCIpIHtcbiAgICAgICAgdGhpcy5ydmFsID0gdGhpcy5hcmcgPSByZWNvcmQuYXJnO1xuICAgICAgICB0aGlzLm1ldGhvZCA9IFwicmV0dXJuXCI7XG4gICAgICAgIHRoaXMubmV4dCA9IFwiZW5kXCI7XG4gICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSBcIm5vcm1hbFwiICYmIGFmdGVyTG9jKSB7XG4gICAgICAgIHRoaXMubmV4dCA9IGFmdGVyTG9jO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICB9LFxuXG4gICAgZmluaXNoOiBmdW5jdGlvbihmaW5hbGx5TG9jKSB7XG4gICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTtcbiAgICAgICAgaWYgKGVudHJ5LmZpbmFsbHlMb2MgPT09IGZpbmFsbHlMb2MpIHtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlKGVudHJ5LmNvbXBsZXRpb24sIGVudHJ5LmFmdGVyTG9jKTtcbiAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTtcbiAgICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBcImNhdGNoXCI6IGZ1bmN0aW9uKHRyeUxvYykge1xuICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnRyeUVudHJpZXNbaV07XG4gICAgICAgIGlmIChlbnRyeS50cnlMb2MgPT09IHRyeUxvYykge1xuICAgICAgICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uO1xuICAgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gXCJ0aHJvd1wiKSB7XG4gICAgICAgICAgICB2YXIgdGhyb3duID0gcmVjb3JkLmFyZztcbiAgICAgICAgICAgIHJlc2V0VHJ5RW50cnkoZW50cnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhyb3duO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBjb250ZXh0LmNhdGNoIG1ldGhvZCBtdXN0IG9ubHkgYmUgY2FsbGVkIHdpdGggYSBsb2NhdGlvblxuICAgICAgLy8gYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byBhIGtub3duIGNhdGNoIGJsb2NrLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCBjYXRjaCBhdHRlbXB0XCIpO1xuICAgIH0sXG5cbiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbihpdGVyYWJsZSwgcmVzdWx0TmFtZSwgbmV4dExvYykge1xuICAgICAgdGhpcy5kZWxlZ2F0ZSA9IHtcbiAgICAgICAgaXRlcmF0b3I6IHZhbHVlcyhpdGVyYWJsZSksXG4gICAgICAgIHJlc3VsdE5hbWU6IHJlc3VsdE5hbWUsXG4gICAgICAgIG5leHRMb2M6IG5leHRMb2NcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gXCJuZXh0XCIpIHtcbiAgICAgICAgLy8gRGVsaWJlcmF0ZWx5IGZvcmdldCB0aGUgbGFzdCBzZW50IHZhbHVlIHNvIHRoYXQgd2UgZG9uJ3RcbiAgICAgICAgLy8gYWNjaWRlbnRhbGx5IHBhc3MgaXQgb24gdG8gdGhlIGRlbGVnYXRlLlxuICAgICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7XG4gICAgfVxuICB9O1xuXG4gIC8vIFJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGlzIHNjcmlwdCBpcyBleGVjdXRpbmcgYXMgYSBDb21tb25KUyBtb2R1bGVcbiAgLy8gb3Igbm90LCByZXR1cm4gdGhlIHJ1bnRpbWUgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIGRlY2xhcmUgdGhlIHZhcmlhYmxlXG4gIC8vIHJlZ2VuZXJhdG9yUnVudGltZSBpbiB0aGUgb3V0ZXIgc2NvcGUsIHdoaWNoIGFsbG93cyB0aGlzIG1vZHVsZSB0byBiZVxuICAvLyBpbmplY3RlZCBlYXNpbHkgYnkgYGJpbi9yZWdlbmVyYXRvciAtLWluY2x1ZGUtcnVudGltZSBzY3JpcHQuanNgLlxuICByZXR1cm4gZXhwb3J0cztcblxufShcbiAgLy8gSWYgdGhpcyBzY3JpcHQgaXMgZXhlY3V0aW5nIGFzIGEgQ29tbW9uSlMgbW9kdWxlLCB1c2UgbW9kdWxlLmV4cG9ydHNcbiAgLy8gYXMgdGhlIHJlZ2VuZXJhdG9yUnVudGltZSBuYW1lc3BhY2UuIE90aGVyd2lzZSBjcmVhdGUgYSBuZXcgZW1wdHlcbiAgLy8gb2JqZWN0LiBFaXRoZXIgd2F5LCB0aGUgcmVzdWx0aW5nIG9iamVjdCB3aWxsIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZVxuICAvLyB0aGUgcmVnZW5lcmF0b3JSdW50aW1lIHZhcmlhYmxlIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLlxuICB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiID8gbW9kdWxlLmV4cG9ydHMgOiB7fVxuKSk7XG5cbnRyeSB7XG4gIHJlZ2VuZXJhdG9yUnVudGltZSA9IHJ1bnRpbWU7XG59IGNhdGNoIChhY2NpZGVudGFsU3RyaWN0TW9kZSkge1xuICAvLyBUaGlzIG1vZHVsZSBzaG91bGQgbm90IGJlIHJ1bm5pbmcgaW4gc3RyaWN0IG1vZGUsIHNvIHRoZSBhYm92ZVxuICAvLyBhc3NpZ25tZW50IHNob3VsZCBhbHdheXMgd29yayB1bmxlc3Mgc29tZXRoaW5nIGlzIG1pc2NvbmZpZ3VyZWQuIEp1c3RcbiAgLy8gaW4gY2FzZSBydW50aW1lLmpzIGFjY2lkZW50YWxseSBydW5zIGluIHN0cmljdCBtb2RlLCB3ZSBjYW4gZXNjYXBlXG4gIC8vIHN0cmljdCBtb2RlIHVzaW5nIGEgZ2xvYmFsIEZ1bmN0aW9uIGNhbGwuIFRoaXMgY291bGQgY29uY2VpdmFibHkgZmFpbFxuICAvLyBpZiBhIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGZvcmJpZHMgdXNpbmcgRnVuY3Rpb24sIGJ1dCBpbiB0aGF0IGNhc2VcbiAgLy8gdGhlIHByb3BlciBzb2x1dGlvbiBpcyB0byBmaXggdGhlIGFjY2lkZW50YWwgc3RyaWN0IG1vZGUgcHJvYmxlbS4gSWZcbiAgLy8geW91J3ZlIG1pc2NvbmZpZ3VyZWQgeW91ciBidW5kbGVyIHRvIGZvcmNlIHN0cmljdCBtb2RlIGFuZCBhcHBsaWVkIGFcbiAgLy8gQ1NQIHRvIGZvcmJpZCBGdW5jdGlvbiwgYW5kIHlvdSdyZSBub3Qgd2lsbGluZyB0byBmaXggZWl0aGVyIG9mIHRob3NlXG4gIC8vIHByb2JsZW1zLCBwbGVhc2UgZGV0YWlsIHlvdXIgdW5pcXVlIHByZWRpY2FtZW50IGluIGEgR2l0SHViIGlzc3VlLlxuICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///25\n')},,,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval('var errorJSON = {\n "hasEncourage": true,\n "hasRankingChange": true,\n "hasAchievementChange": true,\n "hasGoodKnowledge": true,\n "hasLoseKnowledge": true,\n "hasScoreDetail": true,\n "hasErrorOriginNote": true,\n "hasDividePage": true,\n "examinationDifficulty": true,\n "testVideo": true,\n "scoreOfCollege": true,\n "classmateOptimization": true,\n "commonProblems": true\n};\nvar addPoint2JSON = {\n "hasEncourage": true,\n "hasRankingChange": true,\n "hasAchievementChange": true,\n "hasGoodKnowledge": true,\n "hasLoseKnowledge": true,\n "hasScoreDetail": true,\n "hasDividePage": true,\n "examinationDifficulty": true,\n "testVideo": true,\n "scoreOfCollege": true,\n "classmateOptimization": true,\n "commonProblems": true\n};\nvar addPoint3JSON = {\n "hasEncourage": true,\n "hasRankingChange": true,\n "hasAchievementChange": true,\n "hasGoodKnowledge": true,\n "hasLoseKnowledge": true,\n "hasScoreDetail": true,\n "hasErrorOriginNote": true,\n "hasTrainTypesetting": true,\n "hasDividePage": true,\n "examinationDifficulty": true,\n "testVideo": true,\n "scoreOfCollege": true,\n "classmateOptimization": true,\n "commonProblems": true\n};\n/* harmony default export */ __webpack_exports__["a"] = ({\n 1: errorJSON,\n 2: addPoint2JSON,\n 3: addPoint3JSON\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaGVscGVycy9kZWZhdWx0SlNPTi5qcz9lNzAzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBlcnJvckpTT04gPSB7XHJcbiAgICBcImhhc0VuY291cmFnZVwiOnRydWUsXHJcbiAgICBcImhhc1JhbmtpbmdDaGFuZ2VcIjp0cnVlLFxyXG4gICAgXCJoYXNBY2hpZXZlbWVudENoYW5nZVwiOnRydWUsXHJcbiAgICBcImhhc0dvb2RLbm93bGVkZ2VcIjp0cnVlLFxyXG4gICAgXCJoYXNMb3NlS25vd2xlZGdlXCI6dHJ1ZSxcclxuICAgIFwiaGFzU2NvcmVEZXRhaWxcIjp0cnVlLFxyXG4gICAgXCJoYXNFcnJvck9yaWdpbk5vdGVcIjp0cnVlLFxyXG4gICAgXCJoYXNEaXZpZGVQYWdlXCI6dHJ1ZSxcclxuICAgIFwiZXhhbWluYXRpb25EaWZmaWN1bHR5XCI6dHJ1ZSxcclxuICAgIFwidGVzdFZpZGVvXCI6dHJ1ZSxcclxuICAgIFwic2NvcmVPZkNvbGxlZ2VcIjp0cnVlLFxyXG4gICAgXCJjbGFzc21hdGVPcHRpbWl6YXRpb25cIjp0cnVlLFxyXG4gICAgXCJjb21tb25Qcm9ibGVtc1wiOnRydWVcclxufVxyXG5sZXQgYWRkUG9pbnQySlNPTiA9IHtcclxuICAgIFwiaGFzRW5jb3VyYWdlXCI6dHJ1ZSxcclxuICAgIFwiaGFzUmFua2luZ0NoYW5nZVwiOnRydWUsXHJcbiAgICBcImhhc0FjaGlldmVtZW50Q2hhbmdlXCI6dHJ1ZSxcclxuICAgIFwiaGFzR29vZEtub3dsZWRnZVwiOnRydWUsXHJcbiAgICBcImhhc0xvc2VLbm93bGVkZ2VcIjp0cnVlLFxyXG4gICAgXCJoYXNTY29yZURldGFpbFwiOnRydWUsXHJcbiAgICBcImhhc0RpdmlkZVBhZ2VcIjp0cnVlLFxyXG4gICAgXCJleGFtaW5hdGlvbkRpZmZpY3VsdHlcIjp0cnVlLFxyXG4gICAgXCJ0ZXN0VmlkZW9cIjp0cnVlLFxyXG4gICAgXCJzY29yZU9mQ29sbGVnZVwiOnRydWUsXHJcbiAgICBcImNsYXNzbWF0ZU9wdGltaXphdGlvblwiOnRydWUsXHJcbiAgICBcImNvbW1vblByb2JsZW1zXCI6dHJ1ZVxyXG59XHJcbmxldCBhZGRQb2ludDNKU09OID0ge1xyXG4gICAgXCJoYXNFbmNvdXJhZ2VcIjp0cnVlLFxyXG4gICAgXCJoYXNSYW5raW5nQ2hhbmdlXCI6dHJ1ZSxcclxuICAgIFwiaGFzQWNoaWV2ZW1lbnRDaGFuZ2VcIjp0cnVlLFxyXG4gICAgXCJoYXNHb29kS25vd2xlZGdlXCI6dHJ1ZSxcclxuICAgIFwiaGFzTG9zZUtub3dsZWRnZVwiOnRydWUsXHJcbiAgICBcImhhc1Njb3JlRGV0YWlsXCI6dHJ1ZSxcclxuICAgIFwiaGFzRXJyb3JPcmlnaW5Ob3RlXCI6dHJ1ZSxcclxuICAgIFwiaGFzVHJhaW5UeXBlc2V0dGluZ1wiOnRydWUsXHJcbiAgICBcImhhc0RpdmlkZVBhZ2VcIjp0cnVlLFxyXG4gICAgXCJleGFtaW5hdGlvbkRpZmZpY3VsdHlcIjp0cnVlLFxyXG4gICAgXCJ0ZXN0VmlkZW9cIjp0cnVlLFxyXG4gICAgXCJzY29yZU9mQ29sbGVnZVwiOnRydWUsXHJcbiAgICBcImNsYXNzbWF0ZU9wdGltaXphdGlvblwiOnRydWUsXHJcbiAgICBcImNvbW1vblByb2JsZW1zXCI6dHJ1ZVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICAgIDE6ZXJyb3JKU09OLFxyXG4gICAgMjphZGRQb2ludDJKU09OLFxyXG4gICAgMzphZGRQb2ludDNKU09OXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFtQkE7QUFDQTtBQUNBO0FBQ0E7QUFIQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///32\n')},,,,,,function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _helpers_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14);\n/* harmony import */ var _helpers_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11);\n/* harmony import */ var _helpers_defaultJSON__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(32);\n/* harmony import */ var _helpers_template__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(3);\n/* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(6);\n/* harmony import */ var _report_scss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18);\n/* harmony import */ var _report_scss__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_report_scss__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\n\n\n // for (var json in defaultJSON) {\n// console.log(json, JSON.stringify(defaultJSON[json], null, 4))\n// }\n//分为学生版和班级版本 还有个性化学习宝和错题本的区别\n\n/**\r\n * currentVersionName\r\n * 学生版本没有 学生层次划分规则模块 class\r\n * 错题本没有 变式训练推送规则模块 error\r\n */\n//通过 error|class 这两个字段判断错题本和个性化学习宝 学生版和班级版本\n\nvar SETTING_VERSION = currentVersionName;\n\nvar Modal = /*#__PURE__*/function () {\n function Modal() {\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6___default()(this, Modal);\n\n this._index = 0;\n /**\r\n * errorPushDetail: {\r\n //pushLose--扣丢分 pushZero--推0分 pushNone--不推\r\n //pushThree--扣三分才推 pushHalf--扣一半以上分才推\r\n //选择题\r\n select: ['pushLose'],\r\n //填空题\r\n fillInBlank: ['pushLose'],\r\n //解答题\r\n answer: ['pushLose'],\r\n //选做题\r\n chooseAnswer: ['pushLose'],\r\n //错题难度\r\n //按难度 1--基础题 2--中档题 3--培优题 0--都推\r\n difficulty: [1, 2, 3,0]\r\n }\r\n */\n\n this.select = ['pushLose', 'pushZero', 'pushNone'];\n this.fillInBlank = ['pushLose', 'pushZero', 'pushNone'];\n this.answer = ['pushLose', 'pushThree', 'pushHalf', 'pushNone'];\n this.chooseAnswer = ['pushLose', 'pushThree', 'pushHalf', 'pushNone'];\n this.difficulty = [1, 2, 3];\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7___default()(Modal, [{\n key: \"initModal\",\n value: function initModal(_index, levelItem) {\n this._index = _index;\n this.levelItem = JSON.parse(JSON.stringify(levelItem));\n $('.hgc_settingBox').append(_helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].modalTpl);\n this.initSelOptions();\n this.modalEvent();\n }\n }, {\n key: \"initSelOptions\",\n value: function initSelOptions() {\n var errorPushDetail = this.levelItem.errorPushDetail;\n var options = [];\n var diffcultyZero = errorPushDetail.difficulty[0];\n\n if (!diffcultyZero && typeof diffcultyZero === 'number') {\n errorPushDetail.difficulty = [1, 2, 3];\n } //初始化题型\n\n\n $('#hgc_modalBox .h_radioBox').each(function () {\n var typeKey = $(this).attr('data-name');\n $(this).children('.ruleItem').each(function () {\n var name = $(this).attr('data-value');\n\n if (errorPushDetail[typeKey].includes(name)) {\n $(this).addClass('checked');\n return;\n }\n });\n });\n $('#hgc_modalBox .h_checkBox').children('.ruleItem').each(function () {\n var name = +$(this).attr('data-value');\n\n if (errorPushDetail.difficulty.includes(name)) {\n $(this).addClass('checked');\n }\n });\n }\n }, {\n key: \"judgeIsDefault\",\n value: function judgeIsDefault(errorPushDetail) {\n var defaultOptionMap = {\n answer: ['pushLose'],\n chooseAnswer: ['pushLose'],\n fillInBlank: ['pushLose'],\n select: ['pushLose'],\n difficulty: '123'\n };\n var isDefault = true;\n\n for (var type in errorPushDetail) {\n if (type === 'difficulty') {\n if (errorPushDetail[type].sort().join('') !== defaultOptionMap[type]) {\n isDefault = false;\n }\n\n break;\n } else if (defaultOptionMap[type].toString() !== errorPushDetail[type].toString()) {\n isDefault = false;\n break;\n }\n }\n\n return isDefault;\n }\n }, {\n key: \"modalEvent\",\n value: function modalEvent() {\n var self = this;\n var errorPushDetail = self.levelItem.errorPushDetail; //选择题\n\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* RadioBoxItem */ \"b\"]($('#selectType'), function ($radioItem, status) {\n var name = $radioItem.attr('data-value');\n errorPushDetail['select'] = [name];\n }); //填空题\n\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* RadioBoxItem */ \"b\"]($('#fillInBlankType'), function ($this, singleStatus) {\n var name = $this.attr('data-value');\n errorPushDetail['fillInBlank'] = [name];\n }); //解答题\n\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* RadioBoxItem */ \"b\"]($('#answerType'), function ($this, singleStatus) {\n var name = $this.attr('data-value');\n errorPushDetail['answer'] = [name];\n }); //选做题\n\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* RadioBoxItem */ \"b\"]($('#chooseAnswerType'), function ($this, singleStatus) {\n var name = $this.attr('data-value');\n errorPushDetail['chooseAnswer'] = [name];\n }); //错题难度\n\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* CheckBoxItem */ \"a\"]($('#errorType'), function ($this, status) {}, function ($this, singleStatus) {\n var name = +$this.attr('data-value');\n var diffcultyDetail = errorPushDetail['difficulty'];\n\n if (singleStatus) {\n diffcultyDetail.push(name);\n } else {\n var curIndex = diffcultyDetail.findIndex(function (v) {\n return v == name;\n });\n diffcultyDetail.splice(curIndex, 1);\n }\n });\n $('#hgc_modalBox .hclose').click(function () {\n $('#hgc_modalBox').remove();\n });\n $('#hgc_modalBox .submitBtns .ensure').click(function () {\n console.log(self.judgeIsDefault(errorPushDetail));\n self.levelItem.isPushTrain = self.judgeIsDefault(errorPushDetail);\n self.pageData.studentLevelDivide.levelDetails[self._index] = self.levelItem;\n self.renderErrorPushRule();\n $('#hgc_modalBox').remove();\n });\n }\n }]);\n\n return Modal;\n}();\n\nvar AddPointSetting = /*#__PURE__*/function (_mix) {\n _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default()(AddPointSetting, _mix);\n\n var _super = _createSuper(AddPointSetting);\n\n function AddPointSetting() {\n var _this;\n\n _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6___default()(this, AddPointSetting);\n\n _this = _super.call(this); //页面数据\n\n _this.pageData = {}; //是否个性化学习宝\n\n _this.IS_ADDPOINT = !~SETTING_VERSION.indexOf('error'); //是否学生版本\n\n _this.IS_CLASS = ~SETTING_VERSION.indexOf('class');\n _this.id = Object(_helpers_utils__WEBPACK_IMPORTED_MODULE_12__[/* GetQueryString */ \"a\"])('id') || 2; //1 错题本 2 个性化学习方案 3 个性化学习宝\n\n _this.productType = Object(_helpers_utils__WEBPACK_IMPORTED_MODULE_12__[/* GetQueryString */ \"a\"])('product_type');\n _this.defaultStudentsLevelData = {\n valueStart: {\n score: '0',\n grade: ''\n },\n valueEnd: {\n score: '',\n grade: ''\n },\n //是否推送拓展训练题\n isPushTrain: true,\n //错题推送选项\n errorPushDetail: {\n //pushLose--扣丢分 pushZero--推0分 pushNone--不推\n //pushThree--扣三分才推 pushHalf--扣一半以上分才推\n //选择题\n select: ['pushLose'],\n //填空题\n fillInBlank: ['pushLose'],\n //解答题\n answer: ['pushLose'],\n //选做题\n chooseAnswer: ['pushLose'],\n //错题难度\n //按难度 1--基础题 2--中档题 3--培优题 0--都推\n difficulty: [1, 2, 3]\n }\n }; //个性化学习宝多了变式训练推送规则\n\n if (_this.IS_ADDPOINT) {\n _this.defaultStudentsLevelData = _objectSpread(_objectSpread({}, _this.defaultStudentsLevelData), {}, {\n trainPushDetail: {\n pushNumber: {\n select: 2,\n fillInBlank: 2,\n answer: 2,\n chooseAnswer: 2\n },\n pushDifficulty: {\n select: [0, 0]\n }\n }\n });\n }\n\n _this.initDom();\n\n _this.init();\n\n return _this;\n }\n\n _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7___default()(AddPointSetting, [{\n key: \"init\",\n value: function () {\n var _init = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() {\n var res, json;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.getTemplateById({\n id: this.id\n });\n\n case 2:\n res = _context.sent;\n json = JSON.parse(JSON.parse(res).data.config_text); //console.log(json)\n\n this.pageData = this.formatPageJson(json);\n\n if (this.pageData.errorTypeSetting.pushQuestionUpgrade === undefined) {\n this.pageData.errorTypeSetting.pushQuestionUpgrade = true;\n }\n\n this.render();\n this.renderErrorTypeSetting();\n this.bindEvent();\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function init() {\n return _init.apply(this, arguments);\n }\n\n return init;\n }()\n }, {\n key: \"formatPageJson\",\n value: function formatPageJson(json) {\n json.studentLevelDivide.levelDetails = json.studentLevelDivide.levelDetails.map(function (v) {\n var difficultyZero = v.errorPushDetail.difficulty[0];\n if (!difficultyZero && typeof difficultyZero === 'number') v.errorPushDetail.difficulty = [1, 2, 3];\n return v;\n });\n return json;\n }\n }, {\n key: \"initDom\",\n value: function initDom() {\n this.$errorPushSwitchBox = $('#errorPushList .h_switch');\n this.$errorTypeSettingBox = $('#errorTypeSetting .h_switch');\n this.$PushQuestionUpgradeBox = $('#PushQuestionUpgradeBox .h_switch');\n }\n }, {\n key: \"bindEvent\",\n value: function bindEvent() {\n var self = this;\n var levelDetails = self.pageData.studentLevelDivide.levelDetails;\n\n if (self.IS_CLASS) {\n //学生版事件绑定\n self.bindEventForStudent();\n }\n\n if (self.IS_ADDPOINT) {\n //个性化学习宝事件绑定\n self.bindEventForAddPoint();\n } //错题推送规则 点击设置\n\n\n $('#errorPushList').on('click', '.pushTip em', function () {\n var index = +$(this).attr('data-index');\n self.initModal(index, levelDetails[index]);\n });\n $('#saveSetting').click(function () {\n var errorTypeSetting = self.pageData.errorTypeSetting;\n\n if (self.IS_CLASS) {\n var _self$pageData$studen = self.pageData.studentLevelDivide,\n _levelDetails = _self$pageData$studen.levelDetails,\n rankBase = _self$pageData$studen.rankBase,\n _errorTypeSetting = _self$pageData$studen.errorTypeSetting;\n var levelIsContinue = self[rankBase + 'Validate'](_levelDetails);\n var tipMap = {\n grade: '班级排名划分不连续',\n score: '得分率划分区间不连续'\n };\n\n if (!levelIsContinue) {\n hgc_layer.alert(tipMap[rankBase]);\n return;\n }\n } //老数据同步新数据\n\n\n errorTypeSetting.hasDividePage = true;\n\n for (var filedKey in _helpers_defaultJSON__WEBPACK_IMPORTED_MODULE_10__[/* default */ \"a\"][self.productType]) {\n if (typeof errorTypeSetting[filedKey] === 'undefined') {\n errorTypeSetting[filedKey] = true;\n }\n }\n\n hgc_layer.msg('正在保存。。。', {\n time: 0,\n shade: 0.4\n });\n var formData = new FormData(); //console.log(JSON.stringify(self.pageData, null, 4))\n\n formData.append('config', JSON.stringify(self.pageData));\n formData.append('id', self.id);\n self.saveTemplate(formData).then(function (result) {\n hgc_layer.closeAll();\n hgc_layer.open({\n content: result.msg,\n yes: function yes(index, layero) {\n history.back(-1);\n layer.close(index); //如果设定了yes回调,需进行手工关闭\n }\n });\n });\n });\n }\n }, {\n key: \"gradeValidate\",\n value: function gradeValidate(levelDetails) {\n var index = 0;\n var maxIndex = levelDetails.length - 1;\n var validateReuslt = true;\n\n while (index < maxIndex) {\n var curStart = levelDetails[index].valueStart.grade;\n var curEnd = levelDetails[index].valueEnd.grade;\n var nextStart = void 0;\n\n if (index < maxIndex) {\n nextStart = levelDetails[index + 1].valueStart.grade;\n }\n\n if (curStart >= curEnd) {\n validateReuslt = false;\n break;\n }\n\n if (nextStart && nextStart - 1 !== curEnd) {\n validateReuslt = false;\n break;\n }\n\n index++;\n }\n\n return validateReuslt;\n }\n }, {\n key: \"scoreValidate\",\n value: function scoreValidate(levelDetails) {\n var index = 0;\n var scoreDetail = Object(_helpers_utils__WEBPACK_IMPORTED_MODULE_12__[/* simpleCopy */ \"c\"])(levelDetails).reverse();\n var maxIndex = scoreDetail.length - 1;\n var validateReuslt = true;\n\n while (index < maxIndex) {\n var curStart = scoreDetail[index].valueStart.score;\n var curEnd = scoreDetail[index].valueEnd.score;\n var nextStart = void 0;\n\n if (index < maxIndex) {\n nextStart = scoreDetail[index + 1].valueStart.score;\n }\n\n if (curStart >= curEnd) {\n validateReuslt = false;\n break;\n }\n\n if (nextStart && nextStart - 1 !== curEnd) {\n validateReuslt = false;\n break;\n }\n\n index++;\n }\n\n return validateReuslt;\n }\n }, {\n key: \"bindEventForAddPoint\",\n value: function bindEventForAddPoint() {\n var self = this;\n var levelDetails = self.pageData.studentLevelDivide.levelDetails; //变式训练题推送规则\n //推送数量\n\n $('#trainPushRuleBox').on('change', '.pushNumber select', function () {\n var name = $(this).attr('data-value');\n var index = +$(this).attr('data-index');\n var newPushNumber = +$(this).val();\n levelDetails[index].trainPushDetail.pushNumber[name] = newPushNumber; //重置推送数量难度\n\n var pushNumber = levelDetails[index].trainPushDetail.pushNumber;\n var pushMaxNum = Math.max.apply(null, Object.keys(pushNumber).map(function (v) {\n return pushNumber[v];\n }));\n var diffcultyKey = '';\n\n for (var key in pushNumber) {\n if (pushNumber[key] === pushMaxNum) {\n diffcultyKey = key;\n }\n } //type:'select'/'fillInBlank'/'answer'/'chooseAnswer'\n\n\n var newDifficulty = [];\n\n for (var i = 0; i < newPushNumber; i++) {\n newDifficulty.push(0);\n }\n\n levelDetails[index].trainPushDetail.pushDifficulty = {};\n levelDetails[index].trainPushDetail.pushDifficulty = _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()({}, diffcultyKey, newDifficulty);\n self.renderTrainPushRule();\n }); //推送难度\n\n $('#trainPushRuleBox').on('change', '.pushDifficulty select', function () {\n var val = +$(this).val();\n var index = +$(this).attr('data-index');\n var parentIndex = +$(this).attr('data-parentIndex');\n var diffcultyKey = Object.keys(levelDetails[parentIndex].trainPushDetail.pushDifficulty)[0];\n levelDetails[parentIndex].trainPushDetail.pushDifficulty[diffcultyKey][index] = val;\n self.renderTrainPushRule();\n });\n }\n }, {\n key: \"bindEventForStudent\",\n value: function bindEventForStudent() {\n var self = this;\n var levelDetails = self.pageData.studentLevelDivide.levelDetails; // 学生层次划分\n\n $('.hgc_settingBox .classify select').change(function () {\n var field = $(this).attr('data-name');\n var fieldVal = $(this).val();\n\n if (field === 'studentLevel') {\n var prevLevels = levelDetails.length;\n var curLevels = fieldVal;\n var difLevels = Math.abs(prevLevels - curLevels);\n\n if (curLevels > prevLevels) {\n //得分率划分的最后一个0 重置\n levelDetails[levelDetails.length - 1].valueStart.score = levelDetails[levelDetails.length - 1].valueEnd.score - 1;\n\n for (var i = 0; i < difLevels; i++) {\n var defaultLevel = _objectSpread(_objectSpread({}, Object(_helpers_utils__WEBPACK_IMPORTED_MODULE_12__[/* simpleCopy */ \"c\"])(self.defaultStudentsLevelData)), {}, {\n level: String.fromCharCode(65 + levelDetails.length)\n });\n\n defaultLevel.valueEnd.score = levelDetails[levelDetails.length - 1].valueStart.score - 1;\n defaultLevel.valueStart.score = defaultLevel.valueEnd.score - 1;\n levelDetails.push(defaultLevel);\n }\n\n levelDetails[levelDetails.length - 1].valueStart.score = '0';\n } else if (curLevels < prevLevels) {\n levelDetails.splice(prevLevels - difLevels, prevLevels);\n levelDetails[levelDetails.length - 1].valueStart.score = '0';\n }\n\n self.pageData.studentLevelDivide.studentLevel = curLevels;\n self.render();\n } else if (field === 'rankBase') {\n var curRankBase = fieldVal;\n self.pageData.studentLevelDivide.rankBase = curRankBase;\n self.renderStudentsLevel();\n } else {\n self.pageData.studentLevelDivide.statisticsMethods = fieldVal;\n }\n }); //划分规则调整\n\n $('#studentLevelList').on('blur', 'input', function () {\n if (self.pageData.studentLevelDivide.rankBase === 'score') {\n //let levelDetail = simpleCopy(levelDetails)\n self.validateScoreInput.call(this, levelDetails);\n } else {\n self.validateGradeInput.call(this, levelDetails);\n }\n\n self.renderStudentsLevel();\n });\n }\n }, {\n key: \"validateScoreInput\",\n value: function validateScoreInput(levelDetails) {\n //(0-100)的正整数\n var divisionType = 'score';\n var inputReg = /^[1-9]\\d*$/;\n var index = +$(this).attr('data-index');\n var name = $(this).attr('data-value');\n var val = +$(this).val();\n\n if (!inputReg.test(val) || val >= 100) {\n $(this).val(levelDetails[index][name][divisionType]);\n return;\n }\n\n levelDetails[index][name][divisionType] = val;\n return; //兼容首位最小数字为100 或 0\n\n if (val + (index + 1) * 2 >= 100 || val - (levelDetails.length - index) * 2 <= 0) {\n $(this).val(levelDetails[index][name][divisionType]);\n return;\n } //自动补充同一个索引下面的valuestart valueend\n\n\n if (name === 'valueStart') {\n if (levelDetails[index].valueEnd.score <= val) {\n levelDetails[index].valueEnd.score = val + 1;\n }\n } else {\n if (levelDetails[index].valueStart.score >= val) {\n levelDetails[index].valueStart.score = val - 1;\n }\n }\n\n levelDetails[index][name][divisionType] = val;\n var loopPreIndex = index;\n var loopNextIndex = index;\n loopNextIndex++;\n\n while (levelDetails[loopNextIndex]) {\n if (Math.abs(levelDetails[loopNextIndex].valueEnd.score - levelDetails[loopNextIndex - 1].valueStart.score) > 1) {\n levelDetails[loopNextIndex].valueEnd.score = levelDetails[loopNextIndex - 1].valueStart.score - 1;\n }\n\n if (levelDetails[loopNextIndex].valueStart.score >= levelDetails[loopNextIndex].valueEnd.score) {\n levelDetails[loopNextIndex].valueStart.score = levelDetails[loopNextIndex].valueEnd.score - 1;\n }\n\n loopNextIndex++;\n }\n\n loopPreIndex--;\n\n while (levelDetails[loopPreIndex]) {\n if (Math.abs(levelDetails[loopPreIndex].valueStart.score - levelDetails[loopPreIndex + 1].valueEnd.score) > 1) {\n levelDetails[loopPreIndex].valueStart.score = levelDetails[loopPreIndex + 1].valueEnd.score + 1;\n }\n\n if (levelDetails[loopPreIndex].valueEnd.score <= levelDetails[loopPreIndex].valueStart.score) {\n levelDetails[loopPreIndex].valueEnd.score = levelDetails[loopPreIndex].valueStart.score + 1;\n }\n\n loopPreIndex--;\n }\n }\n }, {\n key: \"validateGradeInput\",\n value: function validateGradeInput(levelDetails) {\n //(0-100)的正整数\n var inputReg = /^[1-9]\\d*$/;\n var index = +$(this).attr('data-index');\n var name = $(this).attr('data-value');\n var val = +$(this).val();\n\n if (!inputReg.test(val)) {\n $(this).val(levelDetails[index][name].grade);\n return;\n }\n\n levelDetails[index][name].grade = val;\n return;\n\n if (name === 'valueStart') {\n if (+levelDetails[index].valueEnd.grade <= val) {\n $(this).val(levelDetails[index][name].grade);\n return;\n }\n } else {\n if (val <= +levelDetails[index].valueStart.grade) {\n $(this).val(levelDetails[index][name].grade);\n return;\n }\n }\n\n levelDetails[index][name].grade = val;\n var loopPreIndex = index;\n var loopNextIndex = index; //向下兼容 数字连续\n\n loopPreIndex--;\n\n while (loopPreIndex >= 0) {\n if (levelDetails[loopPreIndex]['valueEnd'].grade >= levelDetails[loopPreIndex + 1]['valueStart'].grade) {\n levelDetails[loopPreIndex]['valueEnd'].grade = levelDetails[loopPreIndex + 1]['valueStart'].grade - 1;\n }\n\n if (levelDetails[loopPreIndex]['valueStart'].grade >= levelDetails[loopPreIndex]['valueEnd'].grade) {\n levelDetails[loopPreIndex]['valueStart'].grade = levelDetails[loopPreIndex]['valueEnd'].grade - 1;\n }\n\n loopPreIndex--;\n } //向上兼容数字连续\n\n\n loopNextIndex++;\n\n while (true) {\n if (!levelDetails[loopNextIndex]) break;\n\n if (levelDetails[loopNextIndex]['valueStart'].grade <= levelDetails[loopNextIndex - 1]['valueEnd'].grade) {\n levelDetails[loopNextIndex]['valueStart'].grade = levelDetails[loopNextIndex - 1]['valueEnd'].grade + 1;\n }\n\n if (levelDetails[loopNextIndex]['valueStart'].grade >= levelDetails[loopNextIndex]['valueEnd'].grade) {\n levelDetails[loopNextIndex]['valueEnd'].grade = levelDetails[loopNextIndex]['valueStart'].grade + 1;\n }\n\n loopNextIndex++;\n }\n } // 错题推送规则的switch切换\n\n }, {\n key: \"eventForErrorPush\",\n value: function eventForErrorPush() {\n var levelDetails = this.pageData.studentLevelDivide.levelDetails; // 错题推送\n\n var _loop = function _loop(index) {\n var errorPushItems = $('#errorPushList .h_switch').eq(index);\n var defaultStatus = levelDetails[index].isPushTrain;\n errorPushItems[defaultStatus ? 'addClass' : 'removeClass']('open');\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* Switch */ \"c\"]($(errorPushItems), function (status) {\n levelDetails[index].isPushTrain = status;\n }, defaultStatus);\n };\n\n for (var index = 0; index < $('#errorPushList .h_switch').length; index++) {\n _loop(index);\n }\n } // 错题排版的switch切换\n\n }, {\n key: \"eveltForTypeSetting\",\n value: function eveltForTypeSetting() {\n var _this2 = this;\n\n var errorTypeSetting = this.pageData.errorTypeSetting;\n\n var _loop2 = function _loop2(index) {\n var typeSettingItem = _this2.$errorTypeSettingBox.eq(index);\n\n var errorTypeName = typeSettingItem.attr('data-name');\n var defaultStatus = errorTypeSetting[errorTypeName];\n typeSettingItem[defaultStatus ? 'addClass' : 'removeClass']('open');\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* Switch */ \"c\"]($(typeSettingItem), function (status) {\n errorTypeSetting[errorTypeName] = status;\n }, errorTypeSetting[errorTypeName]);\n };\n\n for (var index = 0; index < this.$errorTypeSettingBox.length; index++) {\n _loop2(index);\n } //变式训练题排版方式特殊处理\n\n\n var trainStatus = errorTypeSetting['hasTrainTypesetting'];\n $('#hasTrainTypesetting').val(trainStatus ? '1' : '2');\n $('#hasDividePage').change(function () {\n var errorTypeName = $(this).attr('data-name');\n errorTypeSetting[errorTypeName] = $(this).val() === 'true';\n });\n $('#hasTrainTypesetting').change(function () {\n var errorTypeName = $(this).attr('data-name');\n errorTypeSetting[errorTypeName] = $(this).val() === '1';\n });\n } // 培优版设置switch切换\n\n }, {\n key: \"eventForPushQuestionUpgrade\",\n value: function eventForPushQuestionUpgrade() {\n var errorTypeSetting = this.pageData.errorTypeSetting;\n var errorPushItems = $('#PushQuestionUpgradeBox .h_switch').eq(0);\n var defaultStatus = errorTypeSetting.pushQuestionUpgrade;\n errorPushItems[defaultStatus ? 'addClass' : 'removeClass']('open');\n new _helpers_component__WEBPACK_IMPORTED_MODULE_9__[/* Switch */ \"c\"]($(errorPushItems), function (status) {\n errorTypeSetting.pushQuestionUpgrade = status;\n }, defaultStatus);\n }\n }, {\n key: \"render\",\n value: function render() {\n //班级层面才会有学生层级划分\n if (this.IS_CLASS) {\n this.renderStudentsLevel();\n }\n\n this.renderErrorPushRule(); //从renderErrorPushRule()剔除,移到render\n\n this.eventForErrorPush();\n\n if (this.IS_ADDPOINT) {\n this.renderTrainPushRule();\n }\n\n this.eventForPushQuestionUpgrade();\n } //学生划分层次渲染\n\n }, {\n key: \"renderStudentsLevel\",\n value: function renderStudentsLevel() {\n var self = this; //划分规则\n\n var _this$pageData$studen = this.pageData.studentLevelDivide,\n levelDetails = _this$pageData$studen.levelDetails,\n rankBase = _this$pageData$studen.rankBase,\n statisticsMethods = _this$pageData$studen.statisticsMethods,\n studentLevel = _this$pageData$studen.studentLevel; //如果划分规则是按照班级排名\n\n var isRuleForGrade = rankBase === 'grade'; //记忆学生层次,划分依据,统计方式的选择项\n\n $('#classify select').each(function () {\n var selectName = $(this).attr('data-name');\n var selectValue = self.pageData.studentLevelDivide[selectName];\n $(this).children('option[value=' + selectValue + ']').attr('selected', true);\n });\n var studentsLevelHtml = levelDetails.reduce(function (totalStr, curStudentInfo, index) {\n curStudentInfo = _objectSpread(_objectSpread({}, curStudentInfo), {}, {\n index: index,\n level: String.fromCharCode(65 + index),\n gradeClass: isRuleForGrade ? '' : 'hide',\n scoreClass: isRuleForGrade ? 'hide' : '',\n valueStar: curStudentInfo.valueStart[rankBase],\n valueEn: curStudentInfo.valueEnd[rankBase]\n }); //如果划分规则是按照得分率\n\n if (!isRuleForGrade) {\n if (!index) {\n curStudentInfo.isStartDisabled = 'disabled';\n } else if (index === levelDetails.length - 1) {\n curStudentInfo.isEndDisabled = 'disabled';\n }\n } else {\n if (!index) {\n curStudentInfo.isGradeDisabled = 'disabled';\n }\n }\n\n totalStr += _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].studentLevelListItemTpl.substitute(curStudentInfo);\n return totalStr;\n }, _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].studentLevelListHeadTpl);\n $('#studentLevelList').html(studentsLevelHtml); //console.log(studentsLevelHtml)\n }\n }, {\n key: \"judgeIsDefault\",\n value: function judgeIsDefault(errorPushDetail) {\n var defaultOptionMap = {\n answer: ['pushLose'],\n chooseAnswer: ['pushLose'],\n fillInBlank: ['pushLose'],\n select: ['pushLose'],\n difficulty: '123'\n };\n var isDefault = true;\n\n for (var type in errorPushDetail) {\n if (type === 'difficulty') {\n if (errorPushDetail[type].sort().join('') !== defaultOptionMap[type]) {\n isDefault = false;\n }\n\n break;\n } else if (defaultOptionMap[type].toString() !== errorPushDetail[type].toString()) {\n isDefault = false;\n break;\n }\n }\n\n return isDefault;\n } //错题推送规则渲染\n\n }, {\n key: \"renderErrorPushRule\",\n value: function renderErrorPushRule() {\n var _this3 = this;\n\n //pushLose--丢分就推 pushZero--推0分 pushNone--不推\n //pushThree--扣三分才推 pushHalf--扣一半以上分才推\n var errorPushRuleMap = {\n pushLose: '扣了分就推',\n pushZero: '只推得0分的',\n pushNone: '不推',\n pushThree: '扣3分以上才推',\n pushHalf: '扣一半以上分才推',\n 1: '推基础题',\n 2: '推中档题',\n 3: '推培优题'\n };\n var pushKeyFieldMap = {\n select: '选择题',\n fillInBlank: '填空题',\n answer: '解答题',\n chooseAnswer: '选做题',\n difficulty: '推送难度'\n };\n var levelDetails = this.pageData.studentLevelDivide.levelDetails; //是否学生版本,学生版本不需要划分学生等级,针对错题筛选规则和变式训练推送规则\n\n var studentHideClass = this.IS_CLASS ? '' : 'hide';\n var errorPushRuleHtml = levelDetails.reduce(function (totalStr, curObj, index) {\n // 判断是否为默认状态\n var isDefaultErrorPushRule = _this3.judgeIsDefault(curObj.errorPushDetail);\n\n console.log(curObj, isDefaultErrorPushRule);\n curObj = _objectSpread(_objectSpread({}, curObj), {}, {\n index: index,\n //只有默认状态下才开启\n // disabeldClass: isDefaultErrorPushRule ? '' : 'disabled',\n studentHideClass: studentHideClass,\n isCurrent: curObj.isPushTrain ? 'open' : '',\n level: String.fromCharCode(65 + index)\n }); //错题推送过滤条件\n\n curObj.errorPushLimit = function (errorPushDetail) {\n var pushLimitHtml = '';\n Object.keys(errorPushDetail).forEach(function (pushKey) {\n if (!errorPushDetail[pushKey].length) return;\n pushLimitHtml += errorPushDetail[pushKey].reduce(function (str, curKey) {\n str += errorPushRuleMap[curKey] + ';';\n return str;\n }, pushKeyFieldMap[pushKey] + ':');\n });\n return pushLimitHtml;\n }(curObj.errorPushDetail);\n\n totalStr += _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].errorPushItem.substitute(curObj);\n return totalStr;\n }, _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].errorPushTableHeadTpl.substitute({\n studentHideClass: studentHideClass\n }));\n $('#errorPushList').html(errorPushRuleHtml);\n this.eventForErrorPush();\n } //变式训练推送规则\n\n }, {\n key: \"renderTrainPushRule\",\n value: function renderTrainPushRule() {\n /**\r\n * trainPushRuleHeadTpl,\r\n trainPushRuleItemTpl,\r\n trainPushDifficultyItemTpl\r\n */\n //题型难度 keymap\n var diffcultyKeyMap = {\n 0: 'diffcultyDefaultSelect',\n 1: 'diffcultyZeroSelect',\n 2: 'diffcultyOneSelect',\n 3: 'diffcultyTwoSelect'\n }; //选择题匹配题目数量keymap\n\n var subjectKeyMap = {\n selectKeyMap: {\n 1: 'isOneSelectSelected',\n 2: 'isTwoNoSelectSelected',\n 3: 'isThreeSelectSelected'\n },\n fillInBlankKeyMap: {\n 1: 'isOneFillInBlankSelected',\n 2: 'isTwoFillInBlankSelected',\n 3: 'isThreeFillInBlankSelected'\n },\n answerKeyMap: {\n 1: 'isOneAnswerSelected',\n 2: 'isTwoAnswerSelected',\n 3: 'isThreeAnswerSelected'\n },\n chooseAnswerKeyMap: {\n 1: 'isOneChooseAnswerSelected',\n 2: 'isTwoChooseAnswerSelected',\n 3: 'isThreeChooseAnswerSelected'\n }\n };\n var levelDetails = this.pageData.studentLevelDivide.levelDetails; //是否学生版本,学生版本不需要划分学生等级,针对错题筛选规则和变式训练推送规则\n\n var studentHideClass = this.IS_CLASS ? '' : 'hide';\n var trainPushRuleHtml = levelDetails.reduce(function (totalStr, curObj, index) {\n var _curObj$trainPushDeta = curObj.trainPushDetail,\n pushDifficulty = _curObj$trainPushDeta.pushDifficulty,\n pushNumber = _curObj$trainPushDeta.pushNumber; //推送题目类型\n\n var pushType = Object.keys(pushDifficulty)[0]; //具体推送每题的推送难度\n\n var pushSubjectDiffculty = pushDifficulty[pushType]; //生成推送题的数量==>>根据选择题,填空题等各个题型的数量 谁匹配的数量多,取谁\n\n var pushDifficultyNumber = Math.max.apply(null, Object.keys(pushNumber).map(function (v) {\n return pushNumber[v];\n })); //判断是在原来推送题目数量的基础上增加还是减少\n\n var originPushDiffcultyLength = pushSubjectDiffculty.length;\n var pushDifficultyDiffLength = Math.abs(originPushDiffcultyLength - pushDifficultyNumber);\n\n if (originPushDiffcultyLength > pushDifficultyNumber) {\n pushSubjectDiffculty.splice(originPushDiffcultyLength - pushDifficultyDiffLength, originPushDiffcultyLength);\n } else {\n for (var i = 0; i < pushDifficultyDiffLength; i++) {\n pushSubjectDiffculty.push(0);\n }\n } //生成每题题推送难度\n\n\n var tranDifficultyHtml = pushSubjectDiffculty.map(function (v, i) {\n var selectItem = diffcultyKeyMap[v];\n return _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].trainPushDifficultyItemTpl.substitute(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()({\n index: i,\n titleNumber: i + 1,\n parentIndex: index\n }, selectItem, 'selected'));\n }).join('');\n var trainPushRuleData = {\n index: index,\n studentHideClass: studentHideClass,\n label: String.fromCharCode(65 + index),\n pushDifficultyOptions: tranDifficultyHtml\n }; //自动选择当前的匹配数量\n\n Object.keys(pushNumber).forEach(function (v) {\n trainPushRuleData[subjectKeyMap[v + 'KeyMap'][pushNumber[v]]] = 'selected';\n });\n totalStr += _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].trainPushRuleItemTpl.substitute(trainPushRuleData);\n return totalStr;\n }, _helpers_template__WEBPACK_IMPORTED_MODULE_11__[/* default */ \"a\"].trainPushRuleHeadTpl.substitute({\n studentHideClass: studentHideClass\n }));\n $('#trainPushRuleBox').html(trainPushRuleHtml);\n } // 错题排版\n\n }, {\n key: \"renderErrorTypeSetting\",\n value: function renderErrorTypeSetting() {\n //错题排版\n this.eveltForTypeSetting();\n }\n }]);\n\n return AddPointSetting;\n}(Object(_helpers_utils__WEBPACK_IMPORTED_MODULE_12__[/* mix */ \"b\"])(Modal, _helpers_api__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"]));\n\n$(function () {\n new AddPointSetting();\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvcmVwb3J0LmpzP2FmNmEiXSwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCBBUEkgZnJvbSAnLi4vaGVscGVycy9hcGknXHJcbmltcG9ydCB7IENoZWNrQm94SXRlbSwgUmFkaW9Cb3hJdGVtLCBTd2l0Y2ggfSBmcm9tICcuLi9oZWxwZXJzL2NvbXBvbmVudCdcclxuaW1wb3J0IGRlZmF1bHRKU09OIGZyb20gJy4uL2hlbHBlcnMvZGVmYXVsdEpTT04nXHJcbmltcG9ydCBUUExTIGZyb20gJy4uL2hlbHBlcnMvdGVtcGxhdGUnXHJcbmltcG9ydCB7IEdldFF1ZXJ5U3RyaW5nLCBtaXgsIHNpbXBsZUNvcHkgfSBmcm9tICcuLi9oZWxwZXJzL3V0aWxzJ1xyXG5pbXBvcnQgJy4uL3JlcG9ydC5zY3NzJ1xyXG5cclxuLy8gZm9yICh2YXIganNvbiBpbiBkZWZhdWx0SlNPTikge1xyXG4vLyAgIGNvbnNvbGUubG9nKGpzb24sIEpTT04uc3RyaW5naWZ5KGRlZmF1bHRKU09OW2pzb25dLCBudWxsLCA0KSlcclxuLy8gfVxyXG5cclxuLy/liIbkuLrlrabnlJ/niYjlkoznj63nuqfniYjmnKwg6L+Y5pyJ5o+Q5YiG5a6d5ZKM6ZSZ6aKY5pys55qE5Yy65YirXHJcbi8qKlxyXG4gKiBjdXJyZW50VmVyc2lvbk5hbWVcclxuICog5a2m55Sf54mI5pys5rKh5pyJIOWtpueUn+WxguasoeWIkuWIhuinhOWImeaooeWdlyBjbGFzc1xyXG4gKiDplJnpopjmnKzmsqHmnIkgIOWPmOW8j+iuree7g+aOqOmAgeinhOWImeaooeWdlyBlcnJvclxyXG4gKi9cclxuLy/pgJrov4cgZXJyb3J8Y2xhc3Mg6L+Z5Lik5Liq5a2X5q615Yik5pat6ZSZ6aKY5pys5ZKM5o+Q5YiG5a6dIOWtpueUn+eJiOWSjOePree6p+eJiOacrFxyXG5jb25zdCBTRVRUSU5HX1ZFUlNJT04gPSBjdXJyZW50VmVyc2lvbk5hbWVcclxuY2xhc3MgTW9kYWwge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5faW5kZXggPSAwXHJcbiAgICAvKipcclxuICAgICAqIGVycm9yUHVzaERldGFpbDoge1xyXG4gICAgICAgIC8vcHVzaExvc2UtLeaJo+S4ouWIhiAgcHVzaFplcm8tLeaOqDDliIYgIHB1c2hOb25lLS3kuI3mjqhcclxuICAgICAgICAvL3B1c2hUaHJlZS0t5omj5LiJ5YiG5omN5o6oICBwdXNoSGFsZi0t5omj5LiA5Y2K5Lul5LiK5YiG5omN5o6oXHJcbiAgICAgICAgLy/pgInmi6npophcclxuICAgICAgICBzZWxlY3Q6IFsncHVzaExvc2UnXSxcclxuICAgICAgICAvL+Whq+epuumimFxyXG4gICAgICAgIGZpbGxJbkJsYW5rOiBbJ3B1c2hMb3NlJ10sXHJcbiAgICAgICAgLy/op6PnrZTpophcclxuICAgICAgICBhbnN3ZXI6IFsncHVzaExvc2UnXSxcclxuICAgICAgICAvL+mAieWBmumimFxyXG4gICAgICAgIGNob29zZUFuc3dlcjogWydwdXNoTG9zZSddLFxyXG4gICAgICAgIC8v6ZSZ6aKY6Zq+5bqmXHJcbiAgICAgICAgLy/mjInpmr7luqYgMS0t5Z+656GA6aKYICAyLS3kuK3moaPpopggIDMtLeWfueS8mOmimCAwLS3pg73mjqhcclxuICAgICAgICBkaWZmaWN1bHR5OiBbMSwgMiwgMywwXVxyXG4gICAgICB9XHJcbiAgICAgKi9cclxuICAgIHRoaXMuc2VsZWN0ID0gWydwdXNoTG9zZScsICdwdXNoWmVybycsICdwdXNoTm9uZSddXHJcbiAgICB0aGlzLmZpbGxJbkJsYW5rID0gWydwdXNoTG9zZScsICdwdXNoWmVybycsICdwdXNoTm9uZSddXHJcbiAgICB0aGlzLmFuc3dlciA9IFsncHVzaExvc2UnLCAncHVzaFRocmVlJywgJ3B1c2hIYWxmJywgJ3B1c2hOb25lJ11cclxuICAgIHRoaXMuY2hvb3NlQW5zd2VyID0gWydwdXNoTG9zZScsICdwdXNoVGhyZWUnLCAncHVzaEhhbGYnLCAncHVzaE5vbmUnXVxyXG4gICAgdGhpcy5kaWZmaWN1bHR5ID0gWzEsIDIsIDNdXHJcbiAgfVxyXG4gIGluaXRNb2RhbChfaW5kZXgsIGxldmVsSXRlbSkge1xyXG4gICAgdGhpcy5faW5kZXggPSBfaW5kZXhcclxuICAgIHRoaXMubGV2ZWxJdGVtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsZXZlbEl0ZW0pKVxyXG5cclxuICAgICQoJy5oZ2Nfc2V0dGluZ0JveCcpLmFwcGVuZChUUExTLm1vZGFsVHBsKVxyXG5cclxuICAgIHRoaXMuaW5pdFNlbE9wdGlvbnMoKVxyXG5cclxuICAgIHRoaXMubW9kYWxFdmVudCgpXHJcbiAgfVxyXG4gIGluaXRTZWxPcHRpb25zKCkge1xyXG4gICAgbGV0IHsgZXJyb3JQdXNoRGV0YWlsIH0gPSB0aGlzLmxldmVsSXRlbVxyXG4gICAgbGV0IG9wdGlvbnMgPSBbXVxyXG4gICAgbGV0IGRpZmZjdWx0eVplcm8gPSBlcnJvclB1c2hEZXRhaWwuZGlmZmljdWx0eVswXVxyXG4gICAgaWYgKCFkaWZmY3VsdHlaZXJvICYmIHR5cGVvZiBkaWZmY3VsdHlaZXJvID09PSAnbnVtYmVyJykge1xyXG4gICAgICBlcnJvclB1c2hEZXRhaWwuZGlmZmljdWx0eSA9IFsxLCAyLCAzXVxyXG4gICAgfVxyXG4gICAgLy/liJ3lp4vljJbpopjlnotcclxuICAgICQoJyNoZ2NfbW9kYWxCb3ggLmhfcmFkaW9Cb3gnKS5lYWNoKGZ1bmN0aW9uKCkge1xyXG4gICAgICBsZXQgdHlwZUtleSA9ICQodGhpcykuYXR0cignZGF0YS1uYW1lJylcclxuICAgICAgJCh0aGlzKVxyXG4gICAgICAgIC5jaGlsZHJlbignLnJ1bGVJdGVtJylcclxuICAgICAgICAuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgIGxldCBuYW1lID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJylcclxuICAgICAgICAgIGlmIChlcnJvclB1c2hEZXRhaWxbdHlwZUtleV0uaW5jbHVkZXMobmFtZSkpIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnY2hlY2tlZCcpXHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgJCgnI2hnY19tb2RhbEJveCAuaF9jaGVja0JveCcpXHJcbiAgICAgIC5jaGlsZHJlbignLnJ1bGVJdGVtJylcclxuICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSArJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJylcclxuICAgICAgICBpZiAoZXJyb3JQdXNoRGV0YWlsLmRpZmZpY3VsdHkuaW5jbHVkZXMobmFtZSkpIHtcclxuICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2NoZWNrZWQnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAganVkZ2VJc0RlZmF1bHQoZXJyb3JQdXNoRGV0YWlsKSB7XHJcbiAgICBsZXQgZGVmYXVsdE9wdGlvbk1hcCA9IHtcclxuICAgICAgYW5zd2VyOiBbJ3B1c2hMb3NlJ10sXHJcbiAgICAgIGNob29zZUFuc3dlcjogWydwdXNoTG9zZSddLFxyXG4gICAgICBmaWxsSW5CbGFuazogWydwdXNoTG9zZSddLFxyXG4gICAgICBzZWxlY3Q6IFsncHVzaExvc2UnXSxcclxuICAgICAgZGlmZmljdWx0eTogJzEyMydcclxuICAgIH1cclxuICAgIGxldCBpc0RlZmF1bHQgPSB0cnVlXHJcbiAgICBmb3IgKGxldCB0eXBlIGluIGVycm9yUHVzaERldGFpbCkge1xyXG4gICAgICBpZiAodHlwZSA9PT0gJ2RpZmZpY3VsdHknKSB7XHJcbiAgICAgICAgaWYgKGVycm9yUHVzaERldGFpbFt0eXBlXS5zb3J0KCkuam9pbignJykgIT09IGRlZmF1bHRPcHRpb25NYXBbdHlwZV0pIHtcclxuICAgICAgICAgIGlzRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVha1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIGRlZmF1bHRPcHRpb25NYXBbdHlwZV0udG9TdHJpbmcoKSAhPT0gZXJyb3JQdXNoRGV0YWlsW3R5cGVdLnRvU3RyaW5nKClcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXNEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICBicmVha1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNEZWZhdWx0XHJcbiAgfVxyXG4gIG1vZGFsRXZlbnQoKSB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpc1xyXG4gICAgbGV0IHsgZXJyb3JQdXNoRGV0YWlsIH0gPSBzZWxmLmxldmVsSXRlbVxyXG4gICAgLy/pgInmi6npophcclxuICAgIG5ldyBSYWRpb0JveEl0ZW0oJCgnI3NlbGVjdFR5cGUnKSwgKCRyYWRpb0l0ZW0sIHN0YXR1cykgPT4ge1xyXG4gICAgICBsZXQgbmFtZSA9ICRyYWRpb0l0ZW0uYXR0cignZGF0YS12YWx1ZScpXHJcbiAgICAgIGVycm9yUHVzaERldGFpbFsnc2VsZWN0J10gPSBbbmFtZV1cclxuICAgIH0pXHJcbiAgICAvL+Whq+epuumimFxyXG4gICAgbmV3IFJhZGlvQm94SXRlbSgkKCcjZmlsbEluQmxhbmtUeXBlJyksICgkdGhpcywgc2luZ2xlU3RhdHVzKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lID0gJHRoaXMuYXR0cignZGF0YS12YWx1ZScpXHJcbiAgICAgIGVycm9yUHVzaERldGFpbFsnZmlsbEluQmxhbmsnXSA9IFtuYW1lXVxyXG4gICAgfSlcclxuICAgIC8v6Kej562U6aKYXHJcbiAgICBuZXcgUmFkaW9Cb3hJdGVtKCQoJyNhbnN3ZXJUeXBlJyksICgkdGhpcywgc2luZ2xlU3RhdHVzKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lID0gJHRoaXMuYXR0cignZGF0YS12YWx1ZScpXHJcbiAgICAgIGVycm9yUHVzaERldGFpbFsnYW5zd2VyJ10gPSBbbmFtZV1cclxuICAgIH0pXHJcbiAgICAvL+mAieWBmumimFxyXG4gICAgbmV3IFJhZGlvQm94SXRlbSgkKCcjY2hvb3NlQW5zd2VyVHlwZScpLCAoJHRoaXMsIHNpbmdsZVN0YXR1cykgPT4ge1xyXG4gICAgICBsZXQgbmFtZSA9ICR0aGlzLmF0dHIoJ2RhdGEtdmFsdWUnKVxyXG4gICAgICBlcnJvclB1c2hEZXRhaWxbJ2Nob29zZUFuc3dlciddID0gW25hbWVdXHJcbiAgICB9KVxyXG4gICAgLy/plJnpopjpmr7luqZcclxuICAgIG5ldyBDaGVja0JveEl0ZW0oXHJcbiAgICAgICQoJyNlcnJvclR5cGUnKSxcclxuICAgICAgKCR0aGlzLCBzdGF0dXMpID0+IHt9LFxyXG4gICAgICAoJHRoaXMsIHNpbmdsZVN0YXR1cykgPT4ge1xyXG4gICAgICAgIGxldCBuYW1lID0gKyR0aGlzLmF0dHIoJ2RhdGEtdmFsdWUnKVxyXG4gICAgICAgIGxldCBkaWZmY3VsdHlEZXRhaWwgPSBlcnJvclB1c2hEZXRhaWxbJ2RpZmZpY3VsdHknXVxyXG4gICAgICAgIGlmIChzaW5nbGVTdGF0dXMpIHtcclxuICAgICAgICAgIGRpZmZjdWx0eURldGFpbC5wdXNoKG5hbWUpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBjdXJJbmRleCA9IGRpZmZjdWx0eURldGFpbC5maW5kSW5kZXgodiA9PiB2ID09IG5hbWUpXHJcbiAgICAgICAgICBkaWZmY3VsdHlEZXRhaWwuc3BsaWNlKGN1ckluZGV4LCAxKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICAgICQoJyNoZ2NfbW9kYWxCb3ggLmhjbG9zZScpLmNsaWNrKGZ1bmN0aW9uKCkge1xyXG4gICAgICAkKCcjaGdjX21vZGFsQm94JykucmVtb3ZlKClcclxuICAgIH0pXHJcblxyXG4gICAgJCgnI2hnY19tb2RhbEJveCAuc3VibWl0QnRucyAuZW5zdXJlJykuY2xpY2soZnVuY3Rpb24oKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHNlbGYuanVkZ2VJc0RlZmF1bHQoZXJyb3JQdXNoRGV0YWlsKSlcclxuICAgICAgc2VsZi5sZXZlbEl0ZW0uaXNQdXNoVHJhaW4gPSBzZWxmLmp1ZGdlSXNEZWZhdWx0KGVycm9yUHVzaERldGFpbClcclxuICAgICAgc2VsZi5wYWdlRGF0YS5zdHVkZW50TGV2ZWxEaXZpZGUubGV2ZWxEZXRhaWxzW3NlbGYuX2luZGV4XSA9XHJcbiAgICAgICAgc2VsZi5sZXZlbEl0ZW1cclxuICAgICAgc2VsZi5yZW5kZXJFcnJvclB1c2hSdWxlKClcclxuICAgICAgJCgnI2hnY19tb2RhbEJveCcpLnJlbW92ZSgpXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgQWRkUG9pbnRTZXR0aW5nIGV4dGVuZHMgbWl4KE1vZGFsLCBBUEkpIHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKClcclxuICAgIC8v6aG16Z2i5pWw5o2uXHJcbiAgICB0aGlzLnBhZ2VEYXRhID0ge31cclxuXHJcbiAgICAvL+aYr+WQpuaPkOWIhuWunVxyXG4gICAgdGhpcy5JU19BRERQT0lOVCA9ICF+U0VUVElOR19WRVJTSU9OLmluZGV4T2YoJ2Vycm9yJylcclxuICAgIC8v5piv5ZCm5a2m55Sf54mI5pysXHJcbiAgICB0aGlzLklTX0NMQVNTID0gflNFVFRJTkdfVkVSU0lPTi5pbmRleE9mKCdjbGFzcycpXHJcblxyXG4gICAgdGhpcy5pZCA9IEdldFF1ZXJ5U3RyaW5nKCdpZCcpIHx8IDJcclxuICAgIC8vMSDplJnpopjmnKwgMiDkuKTmraXmj5DliIblrp0gMyDkuInmraXmj5DliIblrp1cclxuICAgIHRoaXMucHJvZHVjdFR5cGUgPSBHZXRRdWVyeVN0cmluZygncHJvZHVjdF90eXBlJylcclxuXHJcbiAgICB0aGlzLmRlZmF1bHRTdHVkZW50c0xldmVsRGF0YSA9IHtcclxuICAgICAgdmFsdWVTdGFydDoge1xyXG4gICAgICAgIHNjb3JlOiAnMCcsXHJcbiAgICAgICAgZ3JhZGU6ICcnXHJcbiAgICAgIH0sXHJcbiAgICAgIHZhbHVlRW5kOiB7XHJcbiAgICAgICAgc2NvcmU6ICcnLFxyXG4gICAgICAgIGdyYWRlOiAnJ1xyXG4gICAgICB9LFxyXG4gICAgICAvL+aYr+WQpuaOqOmAgeaLk+Wxleiuree7g+mimFxyXG4gICAgICBpc1B1c2hUcmFpbjogdHJ1ZSxcclxuICAgICAgLy/plJnpopjmjqjpgIHpgInpoblcclxuICAgICAgZXJyb3JQdXNoRGV0YWlsOiB7XHJcbiAgICAgICAgLy9wdXNoTG9zZS0t5omj5Lii5YiGICBwdXNoWmVyby0t5o6oMOWIhiAgcHVzaE5vbmUtLeS4jeaOqFxyXG4gICAgICAgIC8vcHVzaFRocmVlLS3miaPkuInliIbmiY3mjqggIHB1c2hIYWxmLS3miaPkuIDljYrku6XkuIrliIbmiY3mjqhcclxuICAgICAgICAvL+mAieaLqemimFxyXG4gICAgICAgIHNlbGVjdDogWydwdXNoTG9zZSddLFxyXG4gICAgICAgIC8v5aGr56m66aKYXHJcbiAgICAgICAgZmlsbEluQmxhbms6IFsncHVzaExvc2UnXSxcclxuICAgICAgICAvL+ino+etlOmimFxyXG4gICAgICAgIGFuc3dlcjogWydwdXNoTG9zZSddLFxyXG4gICAgICAgIC8v6YCJ5YGa6aKYXHJcbiAgICAgICAgY2hvb3NlQW5zd2VyOiBbJ3B1c2hMb3NlJ10sXHJcbiAgICAgICAgLy/plJnpopjpmr7luqZcclxuICAgICAgICAvL+aMiemavuW6piAxLS3ln7rnoYDpopggIDItLeS4reaho+mimCAgMy0t5Z+55LyY6aKYIDAtLemDveaOqFxyXG4gICAgICAgIGRpZmZpY3VsdHk6IFsxLCAyLCAzXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aPkOWIhuWuneWkmuS6huWPmOW8j+iuree7g+aOqOmAgeinhOWImVxyXG4gICAgaWYgKHRoaXMuSVNfQUREUE9JTlQpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U3R1ZGVudHNMZXZlbERhdGEgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0U3R1ZGVudHNMZXZlbERhdGEsXHJcbiAgICAgICAgdHJhaW5QdXNoRGV0YWlsOiB7XHJcbiAgICAgICAgICBwdXNoTnVtYmVyOiB7XHJcbiAgICAgICAgICAgIHNlbGVjdDogMixcclxuICAgICAgICAgICAgZmlsbEluQmxhbms6IDIsXHJcbiAgICAgICAgICAgIGFuc3dlcjogMixcclxuICAgICAgICAgICAgY2hvb3NlQW5zd2VyOiAyXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcHVzaERpZmZpY3VsdHk6IHsgc2VsZWN0OiBbMCwgMF0gfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0RG9tKClcclxuXHJcbiAgICB0aGlzLmluaXQoKVxyXG4gIH1cclxuICBhc3luYyBpbml0KCkge1xyXG4gICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMuZ2V0VGVtcGxhdGVCeUlkKHsgaWQ6IHRoaXMuaWQgfSlcclxuXHJcbiAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoSlNPTi5wYXJzZShyZXMpLmRhdGEuY29uZmlnX3RleHQpXHJcbiAgICAvL2NvbnNvbGUubG9nKGpzb24pXHJcbiAgICB0aGlzLnBhZ2VEYXRhID0gdGhpcy5mb3JtYXRQYWdlSnNvbihqc29uKVxyXG4gICAgaWYodGhpcy5wYWdlRGF0YS5lcnJvclR5cGVTZXR0aW5nLnB1c2hRdWVzdGlvblVwZ3JhZGU9PT11bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLnBhZ2VEYXRhLmVycm9yVHlwZVNldHRpbmcucHVzaFF1ZXN0aW9uVXBncmFkZSA9IHRydWVcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyKClcclxuXHJcbiAgICB0aGlzLnJlbmRlckVycm9yVHlwZVNldHRpbmcoKVxyXG5cclxuICAgIHRoaXMuYmluZEV2ZW50KClcclxuICB9XHJcbiAgZm9ybWF0UGFnZUpzb24oanNvbikge1xyXG4gICAganNvbi5zdHVkZW50TGV2ZWxEaXZpZGUubGV2ZWxEZXRhaWxzID0ganNvbi5zdHVkZW50TGV2ZWxEaXZpZGUubGV2ZWxEZXRhaWxzLm1hcChcclxuICAgICAgdiA9PiB7XHJcbiAgICAgICAgbGV0IGRpZmZpY3VsdHlaZXJvID0gdi5lcnJvclB1c2hEZXRhaWwuZGlmZmljdWx0eVswXVxyXG4gICAgICAgIGlmICghZGlmZmljdWx0eVplcm8gJiYgdHlwZW9mIGRpZmZpY3VsdHlaZXJvID09PSAnbnVtYmVyJylcclxuICAgICAgICAgIHYuZXJyb3JQdXNoRGV0YWlsLmRpZmZpY3VsdHkgPSBbMSwgMiwgM11cclxuICAgICAgICByZXR1cm4gdlxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgICByZXR1cm4ganNvblxyXG4gIH1cclxuICBpbml0RG9tKCkge1xyXG4gICAgdGhpcy4kZXJyb3JQdXNoU3dpdGNoQm94ID0gJCgnI2Vycm9yUHVzaExpc3QgLmhfc3dpdGNoJylcclxuXHJcbiAgICB0aGlzLiRlcnJvclR5cGVTZXR0aW5nQm94ID0gJCgnI2Vycm9yVHlwZVNldHRpbmcgLmhfc3dpdGNoJylcclxuXHJcbiAgICB0aGlzLiRQdXNoUXVlc3Rpb25VcGdyYWRlQm94ID0gJCgnI1B1c2hRdWVzdGlvblVwZ3JhZGVCb3ggLmhfc3dpdGNoJylcclxuICB9XHJcbiAgYmluZEV2ZW50KCkge1xyXG4gICAgY29uc3Qgc2VsZiA9IHRoaXNcclxuICAgIGNvbnN0IHsgbGV2ZWxEZXRhaWxzIH0gPSBzZWxmLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZVxyXG4gICAgaWYgKHNlbGYuSVNfQ0xBU1MpIHtcclxuICAgICAgLy/lrabnlJ/niYjkuovku7bnu5HlrppcclxuICAgICAgc2VsZi5iaW5kRXZlbnRGb3JTdHVkZW50KClcclxuICAgIH1cclxuICAgIGlmIChzZWxmLklTX0FERFBPSU5UKSB7XHJcbiAgICAgIC8v5o+Q5YiG5a6d5LqL5Lu257uR5a6aXHJcbiAgICAgIHNlbGYuYmluZEV2ZW50Rm9yQWRkUG9pbnQoKVxyXG4gICAgfVxyXG4gICAgLy/plJnpopjmjqjpgIHop4TliJkg54K55Ye76K6+572uXHJcbiAgICAkKCcjZXJyb3JQdXNoTGlzdCcpLm9uKCdjbGljaycsICcucHVzaFRpcCBlbScsIGZ1bmN0aW9uKCkge1xyXG4gICAgICBsZXQgaW5kZXggPSArJCh0aGlzKS5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgICAgc2VsZi5pbml0TW9kYWwoaW5kZXgsIGxldmVsRGV0YWlsc1tpbmRleF0pXHJcbiAgICB9KVxyXG4gICAgJCgnI3NhdmVTZXR0aW5nJykuY2xpY2soZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgbGV0IHsgZXJyb3JUeXBlU2V0dGluZ30gPSBzZWxmLnBhZ2VEYXRhXHJcbiAgICAgIGlmIChzZWxmLklTX0NMQVNTKSB7XHJcbiAgICAgICAgbGV0IHsgbGV2ZWxEZXRhaWxzLCByYW5rQmFzZSAsZXJyb3JUeXBlU2V0dGluZ30gPSBzZWxmLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZVxyXG4gICAgICAgIGxldCBsZXZlbElzQ29udGludWUgPSBzZWxmW3JhbmtCYXNlICsgJ1ZhbGlkYXRlJ10obGV2ZWxEZXRhaWxzKVxyXG4gICAgICAgIGxldCB0aXBNYXAgPSB7XHJcbiAgICAgICAgICBncmFkZTogJ+ePree6p+aOkuWQjeWIkuWIhuS4jei/nue7rScsXHJcbiAgICAgICAgICBzY29yZTogJ+W+l+WIhueOh+WIkuWIhuWMuumXtOS4jei/nue7rSdcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFsZXZlbElzQ29udGludWUpIHtcclxuICAgICAgICAgIGhnY19sYXllci5hbGVydCh0aXBNYXBbcmFua0Jhc2VdKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+iAgeaVsOaNruWQjOatpeaWsOaVsOaNrlxyXG4gICAgICBlcnJvclR5cGVTZXR0aW5nLmhhc0RpdmlkZVBhZ2UgPSB0cnVlO1xyXG4gICAgICBmb3IobGV0IGZpbGVkS2V5IGluIGRlZmF1bHRKU09OW3NlbGYucHJvZHVjdFR5cGVdKXtcclxuICAgICAgICAgIGlmKHR5cGVvZiBlcnJvclR5cGVTZXR0aW5nW2ZpbGVkS2V5XSA9PT0gJ3VuZGVmaW5lZCcpe1xyXG4gICAgICAgICAgICBlcnJvclR5cGVTZXR0aW5nW2ZpbGVkS2V5XSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGhnY19sYXllci5tc2coJ+ato+WcqOS/neWtmOOAguOAguOAgicsIHsgdGltZTogMCwgc2hhZGU6IDAuNCB9KVxyXG4gICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKVxyXG4gICAgICAvL2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHNlbGYucGFnZURhdGEsIG51bGwsIDQpKVxyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2NvbmZpZycsIEpTT04uc3RyaW5naWZ5KHNlbGYucGFnZURhdGEpKVxyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2lkJywgc2VsZi5pZClcclxuICAgICAgc2VsZi5zYXZlVGVtcGxhdGUoZm9ybURhdGEpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICBoZ2NfbGF5ZXIuY2xvc2VBbGwoKVxyXG4gICAgICAgIGhnY19sYXllci5vcGVuKHtcclxuICAgICAgICAgIGNvbnRlbnQ6IHJlc3VsdC5tc2csXHJcbiAgICAgICAgICB5ZXM6IGZ1bmN0aW9uKGluZGV4LCBsYXllcm8pIHtcclxuICAgICAgICAgICAgaGlzdG9yeS5iYWNrKC0xKVxyXG4gICAgICAgICAgICBsYXllci5jbG9zZShpbmRleCkgLy/lpoLmnpzorr7lrprkuoZ5ZXPlm57osIPvvIzpnIDov5vooYzmiYvlt6XlhbPpl61cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ3JhZGVWYWxpZGF0ZShsZXZlbERldGFpbHMpIHtcclxuICAgIGxldCBpbmRleCA9IDBcclxuICAgIGxldCBtYXhJbmRleCA9IGxldmVsRGV0YWlscy5sZW5ndGggLSAxXHJcbiAgICBsZXQgdmFsaWRhdGVSZXVzbHQgPSB0cnVlXHJcbiAgICB3aGlsZSAoaW5kZXggPCBtYXhJbmRleCkge1xyXG4gICAgICBsZXQgY3VyU3RhcnQgPSBsZXZlbERldGFpbHNbaW5kZXhdLnZhbHVlU3RhcnQuZ3JhZGVcclxuICAgICAgbGV0IGN1ckVuZCA9IGxldmVsRGV0YWlsc1tpbmRleF0udmFsdWVFbmQuZ3JhZGVcclxuICAgICAgbGV0IG5leHRTdGFydFxyXG4gICAgICBpZiAoaW5kZXggPCBtYXhJbmRleCkge1xyXG4gICAgICAgIG5leHRTdGFydCA9IGxldmVsRGV0YWlsc1tpbmRleCArIDFdLnZhbHVlU3RhcnQuZ3JhZGVcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VyU3RhcnQgPj0gY3VyRW5kKSB7XHJcbiAgICAgICAgdmFsaWRhdGVSZXVzbHQgPSBmYWxzZVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5leHRTdGFydCAmJiBuZXh0U3RhcnQgLSAxICE9PSBjdXJFbmQpIHtcclxuICAgICAgICB2YWxpZGF0ZVJldXNsdCA9IGZhbHNlXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgICBpbmRleCsrXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkYXRlUmV1c2x0XHJcbiAgfVxyXG4gIHNjb3JlVmFsaWRhdGUobGV2ZWxEZXRhaWxzKSB7XHJcbiAgICBsZXQgaW5kZXggPSAwXHJcbiAgICBsZXQgc2NvcmVEZXRhaWwgPSBzaW1wbGVDb3B5KGxldmVsRGV0YWlscykucmV2ZXJzZSgpXHJcbiAgICBsZXQgbWF4SW5kZXggPSBzY29yZURldGFpbC5sZW5ndGggLSAxXHJcbiAgICBsZXQgdmFsaWRhdGVSZXVzbHQgPSB0cnVlXHJcbiAgICB3aGlsZSAoaW5kZXggPCBtYXhJbmRleCkge1xyXG4gICAgICBsZXQgY3VyU3RhcnQgPSBzY29yZURldGFpbFtpbmRleF0udmFsdWVTdGFydC5zY29yZVxyXG4gICAgICBsZXQgY3VyRW5kID0gc2NvcmVEZXRhaWxbaW5kZXhdLnZhbHVlRW5kLnNjb3JlXHJcbiAgICAgIGxldCBuZXh0U3RhcnRcclxuICAgICAgaWYgKGluZGV4IDwgbWF4SW5kZXgpIHtcclxuICAgICAgICBuZXh0U3RhcnQgPSBzY29yZURldGFpbFtpbmRleCArIDFdLnZhbHVlU3RhcnQuc2NvcmVcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VyU3RhcnQgPj0gY3VyRW5kKSB7XHJcbiAgICAgICAgdmFsaWRhdGVSZXVzbHQgPSBmYWxzZVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5leHRTdGFydCAmJiBuZXh0U3RhcnQgLSAxICE9PSBjdXJFbmQpIHtcclxuICAgICAgICB2YWxpZGF0ZVJldXNsdCA9IGZhbHNlXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgICBpbmRleCsrXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRhdGVSZXVzbHRcclxuICB9XHJcbiAgYmluZEV2ZW50Rm9yQWRkUG9pbnQoKSB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpc1xyXG4gICAgY29uc3QgeyBsZXZlbERldGFpbHMgfSA9IHNlbGYucGFnZURhdGEuc3R1ZGVudExldmVsRGl2aWRlXHJcbiAgICAvL+WPmOW8j+iuree7g+mimOaOqOmAgeinhOWImVxyXG4gICAgLy/mjqjpgIHmlbDph49cclxuICAgICQoJyN0cmFpblB1c2hSdWxlQm94Jykub24oJ2NoYW5nZScsICcucHVzaE51bWJlciBzZWxlY3QnLCBmdW5jdGlvbigpIHtcclxuICAgICAgbGV0IG5hbWUgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtdmFsdWUnKVxyXG4gICAgICBsZXQgaW5kZXggPSArJCh0aGlzKS5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgICAgbGV0IG5ld1B1c2hOdW1iZXIgPSArJCh0aGlzKS52YWwoKVxyXG4gICAgICBsZXZlbERldGFpbHNbaW5kZXhdLnRyYWluUHVzaERldGFpbC5wdXNoTnVtYmVyW25hbWVdID0gbmV3UHVzaE51bWJlclxyXG4gICAgICAvL+mHjee9ruaOqOmAgeaVsOmHj+mavuW6plxyXG4gICAgICBsZXQgeyBwdXNoTnVtYmVyIH0gPSBsZXZlbERldGFpbHNbaW5kZXhdLnRyYWluUHVzaERldGFpbFxyXG4gICAgICBsZXQgcHVzaE1heE51bSA9IE1hdGgubWF4LmFwcGx5KFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgT2JqZWN0LmtleXMocHVzaE51bWJlcikubWFwKHYgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHB1c2hOdW1iZXJbdl1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIGxldCBkaWZmY3VsdHlLZXkgPSAnJ1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gcHVzaE51bWJlcikge1xyXG4gICAgICAgIGlmIChwdXNoTnVtYmVyW2tleV0gPT09IHB1c2hNYXhOdW0pIHtcclxuICAgICAgICAgIGRpZmZjdWx0eUtleSA9IGtleVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvL3R5cGU6J3NlbGVjdCcvJ2ZpbGxJbkJsYW5rJy8nYW5zd2VyJy8nY2hvb3NlQW5zd2VyJ1xyXG4gICAgICBsZXQgbmV3RGlmZmljdWx0eSA9IFtdXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3UHVzaE51bWJlcjsgaSsrKSBuZXdEaWZmaWN1bHR5LnB1c2goMClcclxuICAgICAgbGV2ZWxEZXRhaWxzW2luZGV4XS50cmFpblB1c2hEZXRhaWwucHVzaERpZmZpY3VsdHkgPSB7fVxyXG4gICAgICBsZXZlbERldGFpbHNbaW5kZXhdLnRyYWluUHVzaERldGFpbC5wdXNoRGlmZmljdWx0eSA9IHtcclxuICAgICAgICBbZGlmZmN1bHR5S2V5XTogbmV3RGlmZmljdWx0eVxyXG4gICAgICB9XHJcbiAgICAgIHNlbGYucmVuZGVyVHJhaW5QdXNoUnVsZSgpXHJcbiAgICB9KVxyXG4gICAgLy/mjqjpgIHpmr7luqZcclxuICAgICQoJyN0cmFpblB1c2hSdWxlQm94Jykub24oJ2NoYW5nZScsICcucHVzaERpZmZpY3VsdHkgc2VsZWN0JywgZnVuY3Rpb24oKSB7XHJcbiAgICAgIGxldCB2YWwgPSArJCh0aGlzKS52YWwoKVxyXG4gICAgICBsZXQgaW5kZXggPSArJCh0aGlzKS5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgICAgbGV0IHBhcmVudEluZGV4ID0gKyQodGhpcykuYXR0cignZGF0YS1wYXJlbnRJbmRleCcpXHJcbiAgICAgIGxldCBkaWZmY3VsdHlLZXkgPSBPYmplY3Qua2V5cyhcclxuICAgICAgICBsZXZlbERldGFpbHNbcGFyZW50SW5kZXhdLnRyYWluUHVzaERldGFpbC5wdXNoRGlmZmljdWx0eVxyXG4gICAgICApWzBdXHJcbiAgICAgIGxldmVsRGV0YWlsc1twYXJlbnRJbmRleF0udHJhaW5QdXNoRGV0YWlsLnB1c2hEaWZmaWN1bHR5W2RpZmZjdWx0eUtleV1bXHJcbiAgICAgICAgaW5kZXhcclxuICAgICAgXSA9IHZhbFxyXG4gICAgICBzZWxmLnJlbmRlclRyYWluUHVzaFJ1bGUoKVxyXG4gICAgfSlcclxuICB9XHJcbiAgYmluZEV2ZW50Rm9yU3R1ZGVudCgpIHtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzXHJcbiAgICBjb25zdCB7IGxldmVsRGV0YWlscyB9ID0gc2VsZi5wYWdlRGF0YS5zdHVkZW50TGV2ZWxEaXZpZGVcclxuXHJcbiAgICAvLyDlrabnlJ/lsYLmrKHliJLliIZcclxuICAgICQoJy5oZ2Nfc2V0dGluZ0JveCAuY2xhc3NpZnkgc2VsZWN0JykuY2hhbmdlKGZ1bmN0aW9uKCkge1xyXG4gICAgICBsZXQgZmllbGQgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtbmFtZScpXHJcbiAgICAgIGxldCBmaWVsZFZhbCA9ICQodGhpcykudmFsKClcclxuXHJcbiAgICAgIGlmIChmaWVsZCA9PT0gJ3N0dWRlbnRMZXZlbCcpIHtcclxuICAgICAgICBsZXQgcHJldkxldmVscyA9IGxldmVsRGV0YWlscy5sZW5ndGhcclxuICAgICAgICBsZXQgY3VyTGV2ZWxzID0gZmllbGRWYWxcclxuICAgICAgICBsZXQgZGlmTGV2ZWxzID0gTWF0aC5hYnMocHJldkxldmVscyAtIGN1ckxldmVscylcclxuICAgICAgICBpZiAoY3VyTGV2ZWxzID4gcHJldkxldmVscykge1xyXG4gICAgICAgICAgLy/lvpfliIbnjofliJLliIbnmoTmnIDlkI7kuIDkuKowIOmHjee9rlxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xldmVsRGV0YWlscy5sZW5ndGggLSAxXS52YWx1ZVN0YXJ0LnNjb3JlID1cclxuICAgICAgICAgICAgbGV2ZWxEZXRhaWxzW2xldmVsRGV0YWlscy5sZW5ndGggLSAxXS52YWx1ZUVuZC5zY29yZSAtIDFcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmTGV2ZWxzOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGRlZmF1bHRMZXZlbCA9IHtcclxuICAgICAgICAgICAgICAuLi5zaW1wbGVDb3B5KHNlbGYuZGVmYXVsdFN0dWRlbnRzTGV2ZWxEYXRhKSxcclxuICAgICAgICAgICAgICBsZXZlbDogU3RyaW5nLmZyb21DaGFyQ29kZSg2NSArIGxldmVsRGV0YWlscy5sZW5ndGgpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRlZmF1bHRMZXZlbC52YWx1ZUVuZC5zY29yZSA9XHJcbiAgICAgICAgICAgICAgbGV2ZWxEZXRhaWxzW2xldmVsRGV0YWlscy5sZW5ndGggLSAxXS52YWx1ZVN0YXJ0LnNjb3JlIC0gMVxyXG4gICAgICAgICAgICBkZWZhdWx0TGV2ZWwudmFsdWVTdGFydC5zY29yZSA9IGRlZmF1bHRMZXZlbC52YWx1ZUVuZC5zY29yZSAtIDFcclxuXHJcbiAgICAgICAgICAgIGxldmVsRGV0YWlscy5wdXNoKGRlZmF1bHRMZXZlbClcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBsZXZlbERldGFpbHNbbGV2ZWxEZXRhaWxzLmxlbmd0aCAtIDFdLnZhbHVlU3RhcnQuc2NvcmUgPSAnMCdcclxuICAgICAgICB9IGVsc2UgaWYgKGN1ckxldmVscyA8IHByZXZMZXZlbHMpIHtcclxuICAgICAgICAgIGxldmVsRGV0YWlscy5zcGxpY2UocHJldkxldmVscyAtIGRpZkxldmVscywgcHJldkxldmVscylcclxuICAgICAgICAgIGxldmVsRGV0YWlsc1tsZXZlbERldGFpbHMubGVuZ3RoIC0gMV0udmFsdWVTdGFydC5zY29yZSA9ICcwJ1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2VsZi5wYWdlRGF0YS5zdHVkZW50TGV2ZWxEaXZpZGUuc3R1ZGVudExldmVsID0gY3VyTGV2ZWxzXHJcbiAgICAgICAgc2VsZi5yZW5kZXIoKVxyXG4gICAgICB9IGVsc2UgaWYgKGZpZWxkID09PSAncmFua0Jhc2UnKSB7XHJcbiAgICAgICAgbGV0IGN1clJhbmtCYXNlID0gZmllbGRWYWxcclxuICAgICAgICBzZWxmLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZS5yYW5rQmFzZSA9IGN1clJhbmtCYXNlXHJcblxyXG4gICAgICAgIHNlbGYucmVuZGVyU3R1ZGVudHNMZXZlbCgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZi5wYWdlRGF0YS5zdHVkZW50TGV2ZWxEaXZpZGUuc3RhdGlzdGljc01ldGhvZHMgPSBmaWVsZFZhbFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIC8v5YiS5YiG6KeE5YiZ6LCD5pW0XHJcbiAgICAkKCcjc3R1ZGVudExldmVsTGlzdCcpLm9uKCdibHVyJywgJ2lucHV0JywgZnVuY3Rpb24oKSB7XHJcbiAgICAgIGlmIChzZWxmLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZS5yYW5rQmFzZSA9PT0gJ3Njb3JlJykge1xyXG4gICAgICAgIC8vbGV0IGxldmVsRGV0YWlsID0gc2ltcGxlQ29weShsZXZlbERldGFpbHMpXHJcbiAgICAgICAgc2VsZi52YWxpZGF0ZVNjb3JlSW5wdXQuY2FsbCh0aGlzLCBsZXZlbERldGFpbHMpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZi52YWxpZGF0ZUdyYWRlSW5wdXQuY2FsbCh0aGlzLCBsZXZlbERldGFpbHMpXHJcbiAgICAgIH1cclxuICAgICAgc2VsZi5yZW5kZXJTdHVkZW50c0xldmVsKClcclxuICAgIH0pXHJcbiAgfVxyXG4gIHZhbGlkYXRlU2NvcmVJbnB1dChsZXZlbERldGFpbHMpIHtcclxuICAgIC8vKDAtMTAwKeeahOato+aVtOaVsFxyXG4gICAgbGV0IGRpdmlzaW9uVHlwZSA9ICdzY29yZSdcclxuICAgIGxldCBpbnB1dFJlZyA9IC9eWzEtOV1cXGQqJC9cclxuICAgIGxldCBpbmRleCA9ICskKHRoaXMpLmF0dHIoJ2RhdGEtaW5kZXgnKVxyXG4gICAgbGV0IG5hbWUgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtdmFsdWUnKVxyXG4gICAgbGV0IHZhbCA9ICskKHRoaXMpLnZhbCgpXHJcblxyXG4gICAgaWYgKCFpbnB1dFJlZy50ZXN0KHZhbCkgfHwgdmFsID49IDEwMCkge1xyXG4gICAgICAkKHRoaXMpLnZhbChsZXZlbERldGFpbHNbaW5kZXhdW25hbWVdW2RpdmlzaW9uVHlwZV0pXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV2ZWxEZXRhaWxzW2luZGV4XVtuYW1lXVtkaXZpc2lvblR5cGVdID0gdmFsXHJcblxyXG4gICAgcmV0dXJuXHJcbiAgICAvL+WFvOWuuemmluS9jeacgOWwj+aVsOWtl+S4ujEwMCDmiJYgMFxyXG4gICAgaWYgKFxyXG4gICAgICB2YWwgKyAoaW5kZXggKyAxKSAqIDIgPj0gMTAwIHx8XHJcbiAgICAgIHZhbCAtIChsZXZlbERldGFpbHMubGVuZ3RoIC0gaW5kZXgpICogMiA8PSAwXHJcbiAgICApIHtcclxuICAgICAgJCh0aGlzKS52YWwobGV2ZWxEZXRhaWxzW2luZGV4XVtuYW1lXVtkaXZpc2lvblR5cGVdKVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIC8v6Ieq5Yqo6KGl5YWF5ZCM5LiA5Liq57Si5byV5LiL6Z2i55qEdmFsdWVzdGFydCB2YWx1ZWVuZFxyXG4gICAgaWYgKG5hbWUgPT09ICd2YWx1ZVN0YXJ0Jykge1xyXG4gICAgICBpZiAobGV2ZWxEZXRhaWxzW2luZGV4XS52YWx1ZUVuZC5zY29yZSA8PSB2YWwpIHtcclxuICAgICAgICBsZXZlbERldGFpbHNbaW5kZXhdLnZhbHVlRW5kLnNjb3JlID0gdmFsICsgMVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobGV2ZWxEZXRhaWxzW2luZGV4XS52YWx1ZVN0YXJ0LnNjb3JlID49IHZhbCkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tpbmRleF0udmFsdWVTdGFydC5zY29yZSA9IHZhbCAtIDFcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV2ZWxEZXRhaWxzW2luZGV4XVtuYW1lXVtkaXZpc2lvblR5cGVdID0gdmFsXHJcblxyXG4gICAgbGV0IGxvb3BQcmVJbmRleCA9IGluZGV4XHJcbiAgICBsZXQgbG9vcE5leHRJbmRleCA9IGluZGV4XHJcbiAgICBsb29wTmV4dEluZGV4KytcclxuICAgIHdoaWxlIChsZXZlbERldGFpbHNbbG9vcE5leHRJbmRleF0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIE1hdGguYWJzKFxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdLnZhbHVlRW5kLnNjb3JlIC1cclxuICAgICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXggLSAxXS52YWx1ZVN0YXJ0LnNjb3JlXHJcbiAgICAgICAgKSA+IDFcclxuICAgICAgKSB7XHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdLnZhbHVlRW5kLnNjb3JlID1cclxuICAgICAgICAgIGxldmVsRGV0YWlsc1tsb29wTmV4dEluZGV4IC0gMV0udmFsdWVTdGFydC5zY29yZSAtIDFcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdLnZhbHVlU3RhcnQuc2NvcmUgPj1cclxuICAgICAgICBsZXZlbERldGFpbHNbbG9vcE5leHRJbmRleF0udmFsdWVFbmQuc2NvcmVcclxuICAgICAgKSB7XHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdLnZhbHVlU3RhcnQuc2NvcmUgPVxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdLnZhbHVlRW5kLnNjb3JlIC0gMVxyXG4gICAgICB9XHJcbiAgICAgIGxvb3BOZXh0SW5kZXgrK1xyXG4gICAgfVxyXG5cclxuICAgIGxvb3BQcmVJbmRleC0tXHJcbiAgICB3aGlsZSAobGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIE1hdGguYWJzKFxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF0udmFsdWVTdGFydC5zY29yZSAtXHJcbiAgICAgICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXggKyAxXS52YWx1ZUVuZC5zY29yZVxyXG4gICAgICAgICkgPiAxXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXhdLnZhbHVlU3RhcnQuc2NvcmUgPVxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleCArIDFdLnZhbHVlRW5kLnNjb3JlICsgMVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF0udmFsdWVFbmQuc2NvcmUgPD1cclxuICAgICAgICBsZXZlbERldGFpbHNbbG9vcFByZUluZGV4XS52YWx1ZVN0YXJ0LnNjb3JlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXhdLnZhbHVlRW5kLnNjb3JlID1cclxuICAgICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXhdLnZhbHVlU3RhcnQuc2NvcmUgKyAxXHJcbiAgICAgIH1cclxuICAgICAgbG9vcFByZUluZGV4LS1cclxuICAgIH1cclxuICB9XHJcbiAgdmFsaWRhdGVHcmFkZUlucHV0KGxldmVsRGV0YWlscykge1xyXG4gICAgLy8oMC0xMDAp55qE5q2j5pW05pWwXHJcbiAgICBsZXQgaW5wdXRSZWcgPSAvXlsxLTldXFxkKiQvXHJcbiAgICBsZXQgaW5kZXggPSArJCh0aGlzKS5hdHRyKCdkYXRhLWluZGV4JylcclxuICAgIGxldCBuYW1lID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJylcclxuICAgIGxldCB2YWwgPSArJCh0aGlzKS52YWwoKVxyXG4gICAgaWYgKCFpbnB1dFJlZy50ZXN0KHZhbCkpIHtcclxuICAgICAgJCh0aGlzKS52YWwobGV2ZWxEZXRhaWxzW2luZGV4XVtuYW1lXS5ncmFkZSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXZlbERldGFpbHNbaW5kZXhdW25hbWVdLmdyYWRlID0gdmFsXHJcbiAgICByZXR1cm5cclxuICAgIGlmIChuYW1lID09PSAndmFsdWVTdGFydCcpIHtcclxuICAgICAgaWYgKCtsZXZlbERldGFpbHNbaW5kZXhdLnZhbHVlRW5kLmdyYWRlIDw9IHZhbCkge1xyXG4gICAgICAgICQodGhpcykudmFsKGxldmVsRGV0YWlsc1tpbmRleF1bbmFtZV0uZ3JhZGUpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh2YWwgPD0gK2xldmVsRGV0YWlsc1tpbmRleF0udmFsdWVTdGFydC5ncmFkZSkge1xyXG4gICAgICAgICQodGhpcykudmFsKGxldmVsRGV0YWlsc1tpbmRleF1bbmFtZV0uZ3JhZGUpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXZlbERldGFpbHNbaW5kZXhdW25hbWVdLmdyYWRlID0gdmFsXHJcbiAgICBsZXQgbG9vcFByZUluZGV4ID0gaW5kZXhcclxuICAgIGxldCBsb29wTmV4dEluZGV4ID0gaW5kZXhcclxuICAgIC8v5ZCR5LiL5YW85a65IOaVsOWtl+i/nue7rVxyXG4gICAgbG9vcFByZUluZGV4LS1cclxuICAgIHdoaWxlIChsb29wUHJlSW5kZXggPj0gMCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF1bJ3ZhbHVlRW5kJ10uZ3JhZGUgPj1cclxuICAgICAgICBsZXZlbERldGFpbHNbbG9vcFByZUluZGV4ICsgMV1bJ3ZhbHVlU3RhcnQnXS5ncmFkZVxyXG4gICAgICApIHtcclxuICAgICAgICBsZXZlbERldGFpbHNbbG9vcFByZUluZGV4XVsndmFsdWVFbmQnXS5ncmFkZSA9XHJcbiAgICAgICAgICBsZXZlbERldGFpbHNbbG9vcFByZUluZGV4ICsgMV1bJ3ZhbHVlU3RhcnQnXS5ncmFkZSAtIDFcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF1bJ3ZhbHVlU3RhcnQnXS5ncmFkZSA+PVxyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXhdWyd2YWx1ZUVuZCddLmdyYWRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wUHJlSW5kZXhdWyd2YWx1ZVN0YXJ0J10uZ3JhZGUgPVxyXG4gICAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BQcmVJbmRleF1bJ3ZhbHVlRW5kJ10uZ3JhZGUgLSAxXHJcbiAgICAgIH1cclxuICAgICAgbG9vcFByZUluZGV4LS1cclxuICAgIH1cclxuICAgIC8v5ZCR5LiK5YW85a655pWw5a2X6L+e57utXHJcbiAgICBsb29wTmV4dEluZGV4KytcclxuICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgIGlmICghbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdKSBicmVha1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdWyd2YWx1ZVN0YXJ0J10uZ3JhZGUgPD1cclxuICAgICAgICBsZXZlbERldGFpbHNbbG9vcE5leHRJbmRleCAtIDFdWyd2YWx1ZUVuZCddLmdyYWRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wTmV4dEluZGV4XVsndmFsdWVTdGFydCddLmdyYWRlID1cclxuICAgICAgICAgIGxldmVsRGV0YWlsc1tsb29wTmV4dEluZGV4IC0gMV1bJ3ZhbHVlRW5kJ10uZ3JhZGUgKyAxXHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wTmV4dEluZGV4XVsndmFsdWVTdGFydCddLmdyYWRlID49XHJcbiAgICAgICAgbGV2ZWxEZXRhaWxzW2xvb3BOZXh0SW5kZXhdWyd2YWx1ZUVuZCddLmdyYWRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxldmVsRGV0YWlsc1tsb29wTmV4dEluZGV4XVsndmFsdWVFbmQnXS5ncmFkZSA9XHJcbiAgICAgICAgICBsZXZlbERldGFpbHNbbG9vcE5leHRJbmRleF1bJ3ZhbHVlU3RhcnQnXS5ncmFkZSArIDFcclxuICAgICAgfVxyXG4gICAgICBsb29wTmV4dEluZGV4KytcclxuICAgIH1cclxuICB9XHJcbiAgLy8g6ZSZ6aKY5o6o6YCB6KeE5YiZ55qEc3dpdGNo5YiH5o2iXHJcbiAgZXZlbnRGb3JFcnJvclB1c2goKSB7XHJcbiAgICBsZXQgeyBsZXZlbERldGFpbHMgfSA9IHRoaXMucGFnZURhdGEuc3R1ZGVudExldmVsRGl2aWRlXHJcbiAgICAvLyDplJnpopjmjqjpgIFcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCAkKCcjZXJyb3JQdXNoTGlzdCAuaF9zd2l0Y2gnKS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgbGV0IGVycm9yUHVzaEl0ZW1zID0gJCgnI2Vycm9yUHVzaExpc3QgLmhfc3dpdGNoJykuZXEoaW5kZXgpXHJcbiAgICAgIGxldCBkZWZhdWx0U3RhdHVzID0gbGV2ZWxEZXRhaWxzW2luZGV4XS5pc1B1c2hUcmFpblxyXG4gICAgICBlcnJvclB1c2hJdGVtc1tkZWZhdWx0U3RhdHVzID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKCdvcGVuJylcclxuXHJcbiAgICAgIG5ldyBTd2l0Y2goXHJcbiAgICAgICAgJChlcnJvclB1c2hJdGVtcyksXHJcbiAgICAgICAgc3RhdHVzID0+IHtcclxuICAgICAgICAgIGxldmVsRGV0YWlsc1tpbmRleF0uaXNQdXNoVHJhaW4gPSBzdGF0dXNcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlZmF1bHRTdGF0dXNcclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuICAvLyDplJnpopjmjpLniYjnmoRzd2l0Y2jliIfmjaJcclxuICBldmVsdEZvclR5cGVTZXR0aW5nKCkge1xyXG4gICAgbGV0IHsgZXJyb3JUeXBlU2V0dGluZyB9ID0gdGhpcy5wYWdlRGF0YVxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuJGVycm9yVHlwZVNldHRpbmdCb3gubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGxldCB0eXBlU2V0dGluZ0l0ZW0gPSB0aGlzLiRlcnJvclR5cGVTZXR0aW5nQm94LmVxKGluZGV4KVxyXG4gICAgICBsZXQgZXJyb3JUeXBlTmFtZSA9IHR5cGVTZXR0aW5nSXRlbS5hdHRyKCdkYXRhLW5hbWUnKVxyXG4gICAgICBsZXQgZGVmYXVsdFN0YXR1cyA9IGVycm9yVHlwZVNldHRpbmdbZXJyb3JUeXBlTmFtZV1cclxuICAgICAgdHlwZVNldHRpbmdJdGVtW2RlZmF1bHRTdGF0dXMgPyAnYWRkQ2xhc3MnIDogJ3JlbW92ZUNsYXNzJ10oJ29wZW4nKVxyXG4gICAgICBuZXcgU3dpdGNoKFxyXG4gICAgICAgICQodHlwZVNldHRpbmdJdGVtKSxcclxuICAgICAgICBzdGF0dXMgPT4ge1xyXG4gICAgICAgICAgZXJyb3JUeXBlU2V0dGluZ1tlcnJvclR5cGVOYW1lXSA9IHN0YXR1c1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3JUeXBlU2V0dGluZ1tlcnJvclR5cGVOYW1lXVxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgLy/lj5jlvI/orq3nu4PpopjmjpLniYjmlrnlvI/nibnmrorlpITnkIZcclxuICAgIGxldCB0cmFpblN0YXR1cyA9IGVycm9yVHlwZVNldHRpbmdbJ2hhc1RyYWluVHlwZXNldHRpbmcnXVxyXG4gICAgJCgnI2hhc1RyYWluVHlwZXNldHRpbmcnKS52YWwodHJhaW5TdGF0dXMgPyAnMScgOiAnMicpXHJcblxyXG4gICAgJCgnI2hhc0RpdmlkZVBhZ2UnKS5jaGFuZ2UoZnVuY3Rpb24oKSB7XHJcbiAgICAgIGxldCBlcnJvclR5cGVOYW1lID0gJCh0aGlzKS5hdHRyKCdkYXRhLW5hbWUnKVxyXG4gICAgICBlcnJvclR5cGVTZXR0aW5nW2Vycm9yVHlwZU5hbWVdID0gJCh0aGlzKS52YWwoKSA9PT0gJ3RydWUnXHJcbiAgICB9KVxyXG4gICAgJCgnI2hhc1RyYWluVHlwZXNldHRpbmcnKS5jaGFuZ2UoZnVuY3Rpb24oKSB7XHJcbiAgICAgIGxldCBlcnJvclR5cGVOYW1lID0gJCh0aGlzKS5hdHRyKCdkYXRhLW5hbWUnKVxyXG4gICAgICBlcnJvclR5cGVTZXR0aW5nW2Vycm9yVHlwZU5hbWVdID0gJCh0aGlzKS52YWwoKSA9PT0gJzEnXHJcbiAgICB9KVxyXG4gIH1cclxuICAgIC8vIOWfueS8mOeJiOiuvue9rnN3aXRjaOWIh+aNolxyXG4gIGV2ZW50Rm9yUHVzaFF1ZXN0aW9uVXBncmFkZSgpIHtcclxuICAgIGxldCB7IGVycm9yVHlwZVNldHRpbmcgfSA9IHRoaXMucGFnZURhdGFcclxuICAgICAgbGV0IGVycm9yUHVzaEl0ZW1zID0gJCgnI1B1c2hRdWVzdGlvblVwZ3JhZGVCb3ggLmhfc3dpdGNoJykuZXEoMClcclxuICAgICAgbGV0IGRlZmF1bHRTdGF0dXMgPSBlcnJvclR5cGVTZXR0aW5nLnB1c2hRdWVzdGlvblVwZ3JhZGVcclxuICAgICAgZXJyb3JQdXNoSXRlbXNbZGVmYXVsdFN0YXR1cyA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXSgnb3BlbicpXHJcbiAgICAgIG5ldyBTd2l0Y2goXHJcbiAgICAgICAgICAkKGVycm9yUHVzaEl0ZW1zKSxcclxuICAgICAgICAgIHN0YXR1cyA9PiB7XHJcbiAgICAgICAgICAgICAgZXJyb3JUeXBlU2V0dGluZy5wdXNoUXVlc3Rpb25VcGdyYWRlID0gc3RhdHVzXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGVmYXVsdFN0YXR1c1xyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICAvL+ePree6p+WxgumdouaJjeS8muacieWtpueUn+Wxgue6p+WIkuWIhlxyXG4gICAgaWYgKHRoaXMuSVNfQ0xBU1MpIHtcclxuICAgICAgdGhpcy5yZW5kZXJTdHVkZW50c0xldmVsKClcclxuICAgIH1cclxuICAgIHRoaXMucmVuZGVyRXJyb3JQdXNoUnVsZSgpXHJcbiAgICAvL+S7jnJlbmRlckVycm9yUHVzaFJ1bGUoKeWJlOmZpO+8jOenu+WIsHJlbmRlclxyXG4gICAgdGhpcy5ldmVudEZvckVycm9yUHVzaCgpXHJcbiAgICBpZiAodGhpcy5JU19BRERQT0lOVCkge1xyXG4gICAgICB0aGlzLnJlbmRlclRyYWluUHVzaFJ1bGUoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudEZvclB1c2hRdWVzdGlvblVwZ3JhZGUoKVxyXG4gIH1cclxuICAvL+WtpueUn+WIkuWIhuWxguasoea4suafk1xyXG4gIHJlbmRlclN0dWRlbnRzTGV2ZWwoKSB7XHJcbiAgICBjb25zdCBzZWxmID0gdGhpc1xyXG4gICAgLy/liJLliIbop4TliJlcclxuICAgIGxldCB7XHJcbiAgICAgIGxldmVsRGV0YWlscyxcclxuICAgICAgcmFua0Jhc2UsXHJcbiAgICAgIHN0YXRpc3RpY3NNZXRob2RzLFxyXG4gICAgICBzdHVkZW50TGV2ZWxcclxuICAgIH0gPSB0aGlzLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZVxyXG4gICAgLy/lpoLmnpzliJLliIbop4TliJnmmK/mjInnhafnj63nuqfmjpLlkI1cclxuICAgIGxldCBpc1J1bGVGb3JHcmFkZSA9IHJhbmtCYXNlID09PSAnZ3JhZGUnXHJcbiAgICAvL+iusOW/huWtpueUn+Wxguasoe+8jOWIkuWIhuS+neaNru+8jOe7n+iuoeaWueW8j+eahOmAieaLqemhuVxyXG4gICAgJCgnI2NsYXNzaWZ5IHNlbGVjdCcpLmVhY2goZnVuY3Rpb24oKSB7XHJcbiAgICAgIGxldCBzZWxlY3ROYW1lID0gJCh0aGlzKS5hdHRyKCdkYXRhLW5hbWUnKVxyXG4gICAgICBsZXQgc2VsZWN0VmFsdWUgPSBzZWxmLnBhZ2VEYXRhLnN0dWRlbnRMZXZlbERpdmlkZVtzZWxlY3ROYW1lXVxyXG4gICAgICAkKHRoaXMpXHJcbiAgICAgICAgLmNoaWxkcmVuKCdvcHRpb25bdmFsdWU9JyArIHNlbGVjdFZhbHVlICsgJ10nKVxyXG4gICAgICAgIC5hdHRyKCdzZWxlY3RlZCcsIHRydWUpXHJcbiAgICB9KVxyXG4gICAgbGV0IHN0dWRlbnRzTGV2ZWxIdG1sID0gbGV2ZWxEZXRhaWxzLnJlZHVjZShcclxuICAgICAgKHRvdGFsU3RyLCBjdXJTdHVkZW50SW5mbywgaW5kZXgpID0+IHtcclxuICAgICAgICBjdXJTdHVkZW50SW5mbyA9IHtcclxuICAgICAgICAgIC4uLmN1clN0dWRlbnRJbmZvLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBsZXZlbDogU3RyaW5nLmZyb21DaGFyQ29kZSg2NSArIGluZGV4KSxcclxuICAgICAgICAgIGdyYWRlQ2xhc3M6IGlzUnVsZUZvckdyYWRlID8gJycgOiAnaGlkZScsXHJcbiAgICAgICAgICBzY29yZUNsYXNzOiBpc1J1bGVGb3JHcmFkZSA/ICdoaWRlJyA6ICcnLFxyXG4gICAgICAgICAgdmFsdWVTdGFyOiBjdXJTdHVkZW50SW5mby52YWx1ZVN0YXJ0W3JhbmtCYXNlXSxcclxuICAgICAgICAgIHZhbHVlRW46IGN1clN0dWRlbnRJbmZvLnZhbHVlRW5kW3JhbmtCYXNlXVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOWIkuWIhuinhOWImeaYr+aMieeFp+W+l+WIhueOh1xyXG4gICAgICAgIGlmICghaXNSdWxlRm9yR3JhZGUpIHtcclxuICAgICAgICAgIGlmICghaW5kZXgpIHtcclxuICAgICAgICAgICAgY3VyU3R1ZGVudEluZm8uaXNTdGFydERpc2FibGVkID0gJ2Rpc2FibGVkJ1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gbGV2ZWxEZXRhaWxzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgY3VyU3R1ZGVudEluZm8uaXNFbmREaXNhYmxlZCA9ICdkaXNhYmxlZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFpbmRleCkge1xyXG4gICAgICAgICAgICBjdXJTdHVkZW50SW5mby5pc0dyYWRlRGlzYWJsZWQgPSAnZGlzYWJsZWQnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0b3RhbFN0ciArPSBUUExTLnN0dWRlbnRMZXZlbExpc3RJdGVtVHBsLnN1YnN0aXR1dGUoY3VyU3R1ZGVudEluZm8pXHJcbiAgICAgICAgcmV0dXJuIHRvdGFsU3RyXHJcbiAgICAgIH0sXHJcbiAgICAgIFRQTFMuc3R1ZGVudExldmVsTGlzdEhlYWRUcGxcclxuICAgIClcclxuXHJcbiAgICAkKCcjc3R1ZGVudExldmVsTGlzdCcpLmh0bWwoc3R1ZGVudHNMZXZlbEh0bWwpXHJcbiAgICAvL2NvbnNvbGUubG9nKHN0dWRlbnRzTGV2ZWxIdG1sKVxyXG4gIH1cclxuICBqdWRnZUlzRGVmYXVsdChlcnJvclB1c2hEZXRhaWwpIHtcclxuICAgIGxldCBkZWZhdWx0T3B0aW9uTWFwID0ge1xyXG4gICAgICBhbnN3ZXI6IFsncHVzaExvc2UnXSxcclxuICAgICAgY2hvb3NlQW5zd2VyOiBbJ3B1c2hMb3NlJ10sXHJcbiAgICAgIGZpbGxJbkJsYW5rOiBbJ3B1c2hMb3NlJ10sXHJcbiAgICAgIHNlbGVjdDogWydwdXNoTG9zZSddLFxyXG4gICAgICBkaWZmaWN1bHR5OiAnMTIzJ1xyXG4gICAgfVxyXG4gICAgbGV0IGlzRGVmYXVsdCA9IHRydWVcclxuICAgIGZvciAobGV0IHR5cGUgaW4gZXJyb3JQdXNoRGV0YWlsKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSAnZGlmZmljdWx0eScpIHtcclxuICAgICAgICBpZiAoZXJyb3JQdXNoRGV0YWlsW3R5cGVdLnNvcnQoKS5qb2luKCcnKSAhPT0gZGVmYXVsdE9wdGlvbk1hcFt0eXBlXSkge1xyXG4gICAgICAgICAgaXNEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgZGVmYXVsdE9wdGlvbk1hcFt0eXBlXS50b1N0cmluZygpICE9PSBlcnJvclB1c2hEZXRhaWxbdHlwZV0udG9TdHJpbmcoKVxyXG4gICAgICApIHtcclxuICAgICAgICBpc0RlZmF1bHQgPSBmYWxzZVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpc0RlZmF1bHRcclxuICB9XHJcbiAgLy/plJnpopjmjqjpgIHop4TliJnmuLLmn5NcclxuICByZW5kZXJFcnJvclB1c2hSdWxlKCkge1xyXG4gICAgLy9wdXNoTG9zZS0t5Lii5YiG5bCx5o6oICBwdXNoWmVyby0t5o6oMOWIhiAgcHVzaE5vbmUtLeS4jeaOqFxyXG4gICAgLy9wdXNoVGhyZWUtLeaJo+S4ieWIhuaJjeaOqCAgcHVzaEhhbGYtLeaJo+S4gOWNiuS7peS4iuWIhuaJjeaOqFxyXG4gICAgbGV0IGVycm9yUHVzaFJ1bGVNYXAgPSB7XHJcbiAgICAgIHB1c2hMb3NlOiAn5omj5LqG5YiG5bCx5o6oJyxcclxuICAgICAgcHVzaFplcm86ICflj6rmjqjlvpcw5YiG55qEJyxcclxuICAgICAgcHVzaE5vbmU6ICfkuI3mjqgnLFxyXG4gICAgICBwdXNoVGhyZWU6ICfmiaMz5YiG5Lul5LiK5omN5o6oJyxcclxuICAgICAgcHVzaEhhbGY6ICfmiaPkuIDljYrku6XkuIrliIbmiY3mjqgnLFxyXG4gICAgICAxOiAn5o6o5Z+656GA6aKYJyxcclxuICAgICAgMjogJ+aOqOS4reaho+mimCcsXHJcbiAgICAgIDM6ICfmjqjln7nkvJjpopgnXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHB1c2hLZXlGaWVsZE1hcCA9IHtcclxuICAgICAgc2VsZWN0OiAn6YCJ5oup6aKYJyxcclxuICAgICAgZmlsbEluQmxhbms6ICfloavnqbrpopgnLFxyXG4gICAgICBhbnN3ZXI6ICfop6PnrZTpopgnLFxyXG4gICAgICBjaG9vc2VBbnN3ZXI6ICfpgInlgZrpopgnLFxyXG4gICAgICBkaWZmaWN1bHR5OiAn5o6o6YCB6Zq+5bqmJ1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB7IGxldmVsRGV0YWlscyB9ID0gdGhpcy5wYWdlRGF0YS5zdHVkZW50TGV2ZWxEaXZpZGVcclxuICAgIC8v5piv5ZCm5a2m55Sf54mI5pys77yM5a2m55Sf54mI5pys5LiN6ZyA6KaB5YiS5YiG5a2m55Sf562J57qnLOmSiOWvuemUmemimOetm+mAieinhOWImeWSjOWPmOW8j+iuree7g+aOqOmAgeinhOWImVxyXG4gICAgbGV0IHN0dWRlbnRIaWRlQ2xhc3MgPSB0aGlzLklTX0NMQVNTID8gJycgOiAnaGlkZSdcclxuICAgIGxldCBlcnJvclB1c2hSdWxlSHRtbCA9IGxldmVsRGV0YWlscy5yZWR1Y2UoKHRvdGFsU3RyLCBjdXJPYmosIGluZGV4KSA9PiB7XHJcbiAgICAgIC8vIOWIpOaWreaYr+WQpuS4uum7mOiupOeKtuaAgVxyXG5cclxuICAgICAgbGV0IGlzRGVmYXVsdEVycm9yUHVzaFJ1bGUgPSB0aGlzLmp1ZGdlSXNEZWZhdWx0KGN1ck9iai5lcnJvclB1c2hEZXRhaWwpXHJcbiAgICAgIGNvbnNvbGUubG9nKGN1ck9iaixpc0RlZmF1bHRFcnJvclB1c2hSdWxlKVxyXG4gICAgICBjdXJPYmogPSB7XHJcbiAgICAgICAgLi4uY3VyT2JqLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIC8v5Y+q5pyJ6buY6K6k54q25oCB5LiL5omN5byA5ZCvXHJcbiAgICAgICAgLy8gZGlzYWJlbGRDbGFzczogaXNEZWZhdWx0RXJyb3JQdXNoUnVsZSA/ICcnIDogJ2Rpc2FibGVkJyxcclxuICAgICAgICBzdHVkZW50SGlkZUNsYXNzLFxyXG4gICAgICAgIGlzQ3VycmVudDogY3VyT2JqLmlzUHVzaFRyYWluID8gJ29wZW4nIDogJycsXHJcbiAgICAgICAgbGV2ZWw6IFN0cmluZy5mcm9tQ2hhckNvZGUoNjUgKyBpbmRleClcclxuICAgICAgfVxyXG4gICAgICAvL+mUmemimOaOqOmAgei/h+a7pOadoeS7tlxyXG4gICAgICBjdXJPYmouZXJyb3JQdXNoTGltaXQgPSAoZnVuY3Rpb24oZXJyb3JQdXNoRGV0YWlsKSB7XHJcbiAgICAgICAgbGV0IHB1c2hMaW1pdEh0bWwgPSAnJ1xyXG5cclxuICAgICAgICBPYmplY3Qua2V5cyhlcnJvclB1c2hEZXRhaWwpLmZvckVhY2gocHVzaEtleSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWVycm9yUHVzaERldGFpbFtwdXNoS2V5XS5sZW5ndGgpIHJldHVyblxyXG5cclxuICAgICAgICAgIHB1c2hMaW1pdEh0bWwgKz0gZXJyb3JQdXNoRGV0YWlsW3B1c2hLZXldLnJlZHVjZSgoc3RyLCBjdXJLZXkpID0+IHtcclxuICAgICAgICAgICAgc3RyICs9IGVycm9yUHVzaFJ1bGVNYXBbY3VyS2V5XSArICc7J1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyXHJcbiAgICAgICAgICB9LCBwdXNoS2V5RmllbGRNYXBbcHVzaEtleV0gKyAnOicpXHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gcHVzaExpbWl0SHRtbFxyXG4gICAgICB9KShjdXJPYmouZXJyb3JQdXNoRGV0YWlsKVxyXG5cclxuICAgICAgdG90YWxTdHIgKz0gVFBMUy5lcnJvclB1c2hJdGVtLnN1YnN0aXR1dGUoY3VyT2JqKVxyXG4gICAgICByZXR1cm4gdG90YWxTdHJcclxuICAgIH0sIFRQTFMuZXJyb3JQdXNoVGFibGVIZWFkVHBsLnN1YnN0aXR1dGUoeyBzdHVkZW50SGlkZUNsYXNzIH0pKVxyXG4gICAgJCgnI2Vycm9yUHVzaExpc3QnKS5odG1sKGVycm9yUHVzaFJ1bGVIdG1sKVxyXG5cclxuICAgIHRoaXMuZXZlbnRGb3JFcnJvclB1c2goKVxyXG4gIH1cclxuICAvL+WPmOW8j+iuree7g+aOqOmAgeinhOWImVxyXG4gIHJlbmRlclRyYWluUHVzaFJ1bGUoKSB7XHJcbiAgICAvKipcclxuICAgICAqIHRyYWluUHVzaFJ1bGVIZWFkVHBsLFxyXG4gICAgICB0cmFpblB1c2hSdWxlSXRlbVRwbCxcclxuICAgICAgdHJhaW5QdXNoRGlmZmljdWx0eUl0ZW1UcGxcclxuICAgICovXHJcblxyXG4gICAgLy/popjlnovpmr7luqYga2V5bWFwXHJcbiAgICBjb25zdCBkaWZmY3VsdHlLZXlNYXAgPSB7XHJcbiAgICAgIDA6ICdkaWZmY3VsdHlEZWZhdWx0U2VsZWN0JyxcclxuICAgICAgMTogJ2RpZmZjdWx0eVplcm9TZWxlY3QnLFxyXG4gICAgICAyOiAnZGlmZmN1bHR5T25lU2VsZWN0JyxcclxuICAgICAgMzogJ2RpZmZjdWx0eVR3b1NlbGVjdCdcclxuICAgIH1cclxuICAgIC8v6YCJ5oup6aKY5Yy56YWN6aKY55uu5pWw6YePa2V5bWFwXHJcbiAgICBjb25zdCBzdWJqZWN0S2V5TWFwID0ge1xyXG4gICAgICBzZWxlY3RLZXlNYXA6IHtcclxuICAgICAgICAxOiAnaXNPbmVTZWxlY3RTZWxlY3RlZCcsXHJcbiAgICAgICAgMjogJ2lzVHdvTm9TZWxlY3RTZWxlY3RlZCcsXHJcbiAgICAgICAgMzogJ2lzVGhyZWVTZWxlY3RTZWxlY3RlZCdcclxuICAgICAgfSxcclxuICAgICAgZmlsbEluQmxhbmtLZXlNYXA6IHtcclxuICAgICAgICAxOiAnaXNPbmVGaWxsSW5CbGFua1NlbGVjdGVkJyxcclxuICAgICAgICAyOiAnaXNUd29GaWxsSW5CbGFua1NlbGVjdGVkJyxcclxuICAgICAgICAzOiAnaXNUaHJlZUZpbGxJbkJsYW5rU2VsZWN0ZWQnXHJcbiAgICAgIH0sXHJcbiAgICAgIGFuc3dlcktleU1hcDoge1xyXG4gICAgICAgIDE6ICdpc09uZUFuc3dlclNlbGVjdGVkJyxcclxuICAgICAgICAyOiAnaXNUd29BbnN3ZXJTZWxlY3RlZCcsXHJcbiAgICAgICAgMzogJ2lzVGhyZWVBbnN3ZXJTZWxlY3RlZCdcclxuICAgICAgfSxcclxuICAgICAgY2hvb3NlQW5zd2VyS2V5TWFwOiB7XHJcbiAgICAgICAgMTogJ2lzT25lQ2hvb3NlQW5zd2VyU2VsZWN0ZWQnLFxyXG4gICAgICAgIDI6ICdpc1R3b0Nob29zZUFuc3dlclNlbGVjdGVkJyxcclxuICAgICAgICAzOiAnaXNUaHJlZUNob29zZUFuc3dlclNlbGVjdGVkJ1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgeyBsZXZlbERldGFpbHMgfSA9IHRoaXMucGFnZURhdGEuc3R1ZGVudExldmVsRGl2aWRlXHJcbiAgICAvL+aYr+WQpuWtpueUn+eJiOacrO+8jOWtpueUn+eJiOacrOS4jemcgOimgeWIkuWIhuWtpueUn+etiee6pyzpkojlr7nplJnpopjnrZvpgInop4TliJnlkozlj5jlvI/orq3nu4PmjqjpgIHop4TliJlcclxuICAgIGxldCBzdHVkZW50SGlkZUNsYXNzID0gdGhpcy5JU19DTEFTUyA/ICcnIDogJ2hpZGUnXHJcbiAgICBsZXQgdHJhaW5QdXNoUnVsZUh0bWwgPSBsZXZlbERldGFpbHMucmVkdWNlKCh0b3RhbFN0ciwgY3VyT2JqLCBpbmRleCkgPT4ge1xyXG4gICAgICBsZXQgeyBwdXNoRGlmZmljdWx0eSwgcHVzaE51bWJlciB9ID0gY3VyT2JqLnRyYWluUHVzaERldGFpbFxyXG4gICAgICAvL+aOqOmAgemimOebruexu+Wei1xyXG5cclxuICAgICAgbGV0IHB1c2hUeXBlID0gT2JqZWN0LmtleXMocHVzaERpZmZpY3VsdHkpWzBdXHJcbiAgICAgIC8v5YW35L2T5o6o6YCB5q+P6aKY55qE5o6o6YCB6Zq+5bqmXHJcbiAgICAgIGxldCBwdXNoU3ViamVjdERpZmZjdWx0eSA9IHB1c2hEaWZmaWN1bHR5W3B1c2hUeXBlXVxyXG4gICAgICAvL+eUn+aIkOaOqOmAgemimOeahOaVsOmHjz09Pj7moLnmja7pgInmi6npopjvvIzloavnqbrpopjnrYnlkITkuKrpopjlnovnmoTmlbDph48g6LCB5Yy56YWN55qE5pWw6YeP5aSa77yM5Y+W6LCBXHJcbiAgICAgIGxldCBwdXNoRGlmZmljdWx0eU51bWJlciA9IE1hdGgubWF4LmFwcGx5KFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgT2JqZWN0LmtleXMocHVzaE51bWJlcikubWFwKHYgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHB1c2hOdW1iZXJbdl1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICAvL+WIpOaWreaYr+WcqOWOn+adpeaOqOmAgemimOebruaVsOmHj+eahOWfuuehgOS4iuWinuWKoOi/mOaYr+WHj+WwkVxyXG4gICAgICBsZXQgb3JpZ2luUHVzaERpZmZjdWx0eUxlbmd0aCA9IHB1c2hTdWJqZWN0RGlmZmN1bHR5Lmxlbmd0aFxyXG4gICAgICBsZXQgcHVzaERpZmZpY3VsdHlEaWZmTGVuZ3RoID0gTWF0aC5hYnMoXHJcbiAgICAgICAgb3JpZ2luUHVzaERpZmZjdWx0eUxlbmd0aCAtIHB1c2hEaWZmaWN1bHR5TnVtYmVyXHJcbiAgICAgIClcclxuICAgICAgaWYgKG9yaWdpblB1c2hEaWZmY3VsdHlMZW5ndGggPiBwdXNoRGlmZmljdWx0eU51bWJlcikge1xyXG4gICAgICAgIHB1c2hTdWJqZWN0RGlmZmN1bHR5LnNwbGljZShcclxuICAgICAgICAgIG9yaWdpblB1c2hEaWZmY3VsdHlMZW5ndGggLSBwdXNoRGlmZmljdWx0eURpZmZMZW5ndGgsXHJcbiAgICAgICAgICBvcmlnaW5QdXNoRGlmZmN1bHR5TGVuZ3RoXHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHVzaERpZmZpY3VsdHlEaWZmTGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHB1c2hTdWJqZWN0RGlmZmN1bHR5LnB1c2goMClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8v55Sf5oiQ5q+P6aKY6aKY5o6o6YCB6Zq+5bqmXHJcbiAgICAgIGxldCB0cmFuRGlmZmljdWx0eUh0bWwgPSBwdXNoU3ViamVjdERpZmZjdWx0eVxyXG4gICAgICAgIC5tYXAoKHYsIGkpID0+IHtcclxuICAgICAgICAgIGxldCBzZWxlY3RJdGVtID0gZGlmZmN1bHR5S2V5TWFwW3ZdXHJcbiAgICAgICAgICByZXR1cm4gVFBMUy50cmFpblB1c2hEaWZmaWN1bHR5SXRlbVRwbC5zdWJzdGl0dXRlKHtcclxuICAgICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICAgIHRpdGxlTnVtYmVyOiBpICsgMSxcclxuICAgICAgICAgICAgcGFyZW50SW5kZXg6IGluZGV4LFxyXG4gICAgICAgICAgICBbc2VsZWN0SXRlbV06ICdzZWxlY3RlZCdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbignJylcclxuXHJcbiAgICAgIGxldCB0cmFpblB1c2hSdWxlRGF0YSA9IHtcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBzdHVkZW50SGlkZUNsYXNzLFxyXG4gICAgICAgIGxhYmVsOiBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgaW5kZXgpLFxyXG4gICAgICAgIHB1c2hEaWZmaWN1bHR5T3B0aW9uczogdHJhbkRpZmZpY3VsdHlIdG1sXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8v6Ieq5Yqo6YCJ5oup5b2T5YmN55qE5Yy56YWN5pWw6YePXHJcbiAgICAgIE9iamVjdC5rZXlzKHB1c2hOdW1iZXIpLmZvckVhY2godiA9PiB7XHJcbiAgICAgICAgdHJhaW5QdXNoUnVsZURhdGFbc3ViamVjdEtleU1hcFt2ICsgJ0tleU1hcCddW3B1c2hOdW1iZXJbdl1dXSA9XHJcbiAgICAgICAgICAnc2VsZWN0ZWQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHRvdGFsU3RyICs9IFRQTFMudHJhaW5QdXNoUnVsZUl0ZW1UcGwuc3Vic3RpdHV0ZSh0cmFpblB1c2hSdWxlRGF0YSlcclxuICAgICAgcmV0dXJuIHRvdGFsU3RyXHJcbiAgICB9LCBUUExTLnRyYWluUHVzaFJ1bGVIZWFkVHBsLnN1YnN0aXR1dGUoeyBzdHVkZW50SGlkZUNsYXNzIH0pKVxyXG5cclxuICAgICQoJyN0cmFpblB1c2hSdWxlQm94JykuaHRtbCh0cmFpblB1c2hSdWxlSHRtbClcclxuICB9XHJcbiAgLy8g6ZSZ6aKY5o6S54mIXHJcbiAgcmVuZGVyRXJyb3JUeXBlU2V0dGluZygpIHtcclxuICAgIC8v6ZSZ6aKY5o6S54mIXHJcbiAgICB0aGlzLmV2ZWx0Rm9yVHlwZVNldHRpbmcoKVxyXG4gIH1cclxufVxyXG5cclxuJChmdW5jdGlvbigpIHtcclxuICBuZXcgQWRkUG9pbnRTZXR0aW5nKClcclxufSlcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7Ozs7O0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7OztBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBOzs7QUFDQTtBQUNBO0FBREE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQUdBOzs7OztBQUNBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFiQTtBQVpBO0FBQ0E7QUE0QkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFBQTtBQUFBO0FBUEE7QUFGQTtBQVlBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQTVEQTtBQTREQTtBQUNBOzs7Ozs7Ozs7OztBQUNBO0FBQUE7QUFBQTtBQUNBOztBQURBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUE7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7OztBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7OztBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTs7O0FBQ0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQURBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUZBO0FBQ0E7QUFJQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQU1BO0FBRUE7QUFDQTtBQUFBO0FBSUE7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUFBO0FBSUE7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFJQTtBQUVBO0FBQ0E7QUFBQTtBQUlBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQVpBO0FBQ0E7QUFFQTtBQUFBO0FBWUE7QUFDQTtBQUNBOzs7QUFDQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBWEE7QUFDQTtBQUNBO0FBQUE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7OztBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBZEE7QUFDQTtBQXVCQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBQ0E7QUFTQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQWhCQTtBQWZBO0FBQ0E7QUFzQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFDQTtBQU9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7OztBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBdndCQTtBQUNBO0FBeXdCQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38\n")}]);