nsc-react-component 2.12.2 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/lib/Interface.js +1 -1
  2. package/lib/Interface.js.map +1 -0
  3. package/lib/base/affix/index.js +5 -46
  4. package/lib/base/affix/index.js.map +1 -0
  5. package/lib/base/alert/index.js +5 -46
  6. package/lib/base/alert/index.js.map +1 -0
  7. package/lib/base/anchor/index.js +8 -49
  8. package/lib/base/anchor/index.js.map +1 -0
  9. package/lib/base/avatar/index.js +8 -49
  10. package/lib/base/avatar/index.js.map +1 -0
  11. package/lib/base/backTop/index.js +5 -46
  12. package/lib/base/backTop/index.js.map +1 -0
  13. package/lib/base/badge/index.js +8 -49
  14. package/lib/base/badge/index.js.map +1 -0
  15. package/lib/base/breadcrumb/index.js +5 -46
  16. package/lib/base/breadcrumb/index.js.map +1 -0
  17. package/lib/base/button/index.d.ts +1 -1
  18. package/lib/base/button/index.js +93 -134
  19. package/lib/base/button/index.js.map +1 -0
  20. package/lib/base/calendar/index.js +5 -46
  21. package/lib/base/calendar/index.js.map +1 -0
  22. package/lib/base/card/index.js +8 -50
  23. package/lib/base/card/index.js.map +1 -0
  24. package/lib/base/carousel/index.js +5 -46
  25. package/lib/base/carousel/index.js.map +1 -0
  26. package/lib/base/cascader/index.d.ts +3 -3
  27. package/lib/base/cascader/index.js +150 -221
  28. package/lib/base/cascader/index.js.map +1 -0
  29. package/lib/base/chart/index.d.ts +2 -2
  30. package/lib/base/chart/index.js +178 -287
  31. package/lib/base/chart/index.js.map +1 -0
  32. package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
  33. package/lib/base/checkbox/CheckboxGroup.js +165 -258
  34. package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
  35. package/lib/base/checkbox/index.d.ts +2 -2
  36. package/lib/base/checkbox/index.js +8 -48
  37. package/lib/base/checkbox/index.js.map +1 -0
  38. package/lib/base/collapse/index.js +8 -49
  39. package/lib/base/collapse/index.js.map +1 -0
  40. package/lib/base/comment/index.js +5 -46
  41. package/lib/base/comment/index.js.map +1 -0
  42. package/lib/base/common/BodyRow/index.js +48 -102
  43. package/lib/base/common/BodyRow/index.js.map +1 -0
  44. package/lib/base/common/EllipseCell/index.d.ts +1 -1
  45. package/lib/base/common/EllipseCell/index.js +16 -57
  46. package/lib/base/common/EllipseCell/index.js.map +1 -0
  47. package/lib/base/common/FileIcon.d.ts +2 -2
  48. package/lib/base/common/FileIcon.js +86 -132
  49. package/lib/base/common/FileIcon.js.map +1 -0
  50. package/lib/base/common/Icon.d.ts +2 -2
  51. package/lib/base/common/Icon.js +42 -96
  52. package/lib/base/common/Icon.js.map +1 -0
  53. package/lib/base/common/IconData.js +2 -2
  54. package/lib/base/common/IconData.js.map +1 -0
  55. package/lib/base/common/IconFont.d.ts +2 -2
  56. package/lib/base/common/IconFont.js +6 -8
  57. package/lib/base/common/IconFont.js.map +1 -0
  58. package/lib/base/common/NoAuthority.d.ts +2 -2
  59. package/lib/base/common/NoAuthority.js +13 -53
  60. package/lib/base/common/NoAuthority.js.map +1 -0
  61. package/lib/base/common/NoData.d.ts +2 -2
  62. package/lib/base/common/NoData.js +34 -74
  63. package/lib/base/common/NoData.js.map +1 -0
  64. package/lib/base/common/NoMessage.d.ts +2 -2
  65. package/lib/base/common/NoMessage.js +30 -70
  66. package/lib/base/common/NoMessage.js.map +1 -0
  67. package/lib/base/common/NoNetWork.d.ts +2 -2
  68. package/lib/base/common/NoNetWork.js +30 -70
  69. package/lib/base/common/NoNetWork.js.map +1 -0
  70. package/lib/base/common/Page404.d.ts +2 -2
  71. package/lib/base/common/Page404.js +30 -70
  72. package/lib/base/common/Page404.js.map +1 -0
  73. package/lib/base/common/PageRequest.js +91 -154
  74. package/lib/base/common/PageRequest.js.map +1 -0
  75. package/lib/base/common/TreePanel.d.ts +1 -1
  76. package/lib/base/common/TreePanel.js +133 -212
  77. package/lib/base/common/TreePanel.js.map +1 -0
  78. package/lib/base/common/iconfontalibaba.js +15 -22
  79. package/lib/base/common/iconfontalibaba.js.map +1 -0
  80. package/lib/base/common/withZhLocale.d.ts +1 -1
  81. package/lib/base/common/withZhLocale.js +3 -7
  82. package/lib/base/common/withZhLocale.js.map +1 -0
  83. package/lib/base/configProvider/index.js +8 -49
  84. package/lib/base/configProvider/index.js.map +1 -0
  85. package/lib/base/datepick/Rangepicker.d.ts +3 -3
  86. package/lib/base/datepick/Rangepicker.js +229 -325
  87. package/lib/base/datepick/Rangepicker.js.map +1 -0
  88. package/lib/base/datepick/index.d.ts +2 -2
  89. package/lib/base/datepick/index.js +56 -113
  90. package/lib/base/datepick/index.js.map +1 -0
  91. package/lib/base/descriptions/index.js +8 -49
  92. package/lib/base/descriptions/index.js.map +1 -0
  93. package/lib/base/divider/index.js +5 -46
  94. package/lib/base/divider/index.js.map +1 -0
  95. package/lib/base/download/index.js +42 -84
  96. package/lib/base/download/index.js.map +1 -0
  97. package/lib/base/drawer/index.js +14 -57
  98. package/lib/base/drawer/index.js.map +1 -0
  99. package/lib/base/dropdown/index.js +19 -65
  100. package/lib/base/dropdown/index.js.map +1 -0
  101. package/lib/base/editor/index.d.ts +1 -1
  102. package/lib/base/editor/index.js +83 -128
  103. package/lib/base/editor/index.js.map +1 -0
  104. package/lib/base/errorboundary/index.js +19 -63
  105. package/lib/base/errorboundary/index.js.map +1 -0
  106. package/lib/base/form/Form.d.ts +2 -2
  107. package/lib/base/form/Form.js +314 -427
  108. package/lib/base/form/Form.js.map +1 -0
  109. package/lib/base/form/filed/Cascader.d.ts +2 -2
  110. package/lib/base/form/filed/Cascader.js +6 -45
  111. package/lib/base/form/filed/Cascader.js.map +1 -0
  112. package/lib/base/form/filed/Checkbox.d.ts +2 -2
  113. package/lib/base/form/filed/Checkbox.js +6 -45
  114. package/lib/base/form/filed/Checkbox.js.map +1 -0
  115. package/lib/base/form/filed/DatePicker.d.ts +2 -2
  116. package/lib/base/form/filed/DatePicker.js +6 -45
  117. package/lib/base/form/filed/DatePicker.js.map +1 -0
  118. package/lib/base/form/filed/FormItem.d.ts +2 -2
  119. package/lib/base/form/filed/FormItem.js +65 -127
  120. package/lib/base/form/filed/FormItem.js.map +1 -0
  121. package/lib/base/form/filed/Input.d.ts +2 -2
  122. package/lib/base/form/filed/Input.js +14 -51
  123. package/lib/base/form/filed/Input.js.map +1 -0
  124. package/lib/base/form/filed/InputEamil.d.ts +2 -2
  125. package/lib/base/form/filed/InputEamil.js +5 -44
  126. package/lib/base/form/filed/InputEamil.js.map +1 -0
  127. package/lib/base/form/filed/InputNumber.d.ts +2 -2
  128. package/lib/base/form/filed/InputNumber.js +5 -44
  129. package/lib/base/form/filed/InputNumber.js.map +1 -0
  130. package/lib/base/form/filed/InputPassword.d.ts +2 -2
  131. package/lib/base/form/filed/InputPassword.js +5 -44
  132. package/lib/base/form/filed/InputPassword.js.map +1 -0
  133. package/lib/base/form/filed/Item.d.ts +3 -3
  134. package/lib/base/form/filed/Item.js +91 -163
  135. package/lib/base/form/filed/Item.js.map +1 -0
  136. package/lib/base/form/filed/Radio.d.ts +2 -2
  137. package/lib/base/form/filed/Radio.js +7 -45
  138. package/lib/base/form/filed/Radio.js.map +1 -0
  139. package/lib/base/form/filed/RangerPicker.d.ts +2 -2
  140. package/lib/base/form/filed/RangerPicker.js +6 -45
  141. package/lib/base/form/filed/RangerPicker.js.map +1 -0
  142. package/lib/base/form/filed/Rate.d.ts +2 -2
  143. package/lib/base/form/filed/Rate.js +6 -46
  144. package/lib/base/form/filed/Rate.js.map +1 -0
  145. package/lib/base/form/filed/Select.d.ts +2 -2
  146. package/lib/base/form/filed/Select.js +9 -49
  147. package/lib/base/form/filed/Select.js.map +1 -0
  148. package/lib/base/form/filed/Slider.d.ts +2 -2
  149. package/lib/base/form/filed/Slider.js +6 -46
  150. package/lib/base/form/filed/Slider.js.map +1 -0
  151. package/lib/base/form/filed/Switch.d.ts +2 -2
  152. package/lib/base/form/filed/Switch.js +6 -46
  153. package/lib/base/form/filed/Switch.js.map +1 -0
  154. package/lib/base/form/filed/TagSelect.d.ts +2 -2
  155. package/lib/base/form/filed/TagSelect.js +6 -45
  156. package/lib/base/form/filed/TagSelect.js.map +1 -0
  157. package/lib/base/form/filed/TextArea.d.ts +2 -2
  158. package/lib/base/form/filed/TextArea.js +5 -44
  159. package/lib/base/form/filed/TextArea.js.map +1 -0
  160. package/lib/base/form/filed/Upload.d.ts +2 -2
  161. package/lib/base/form/filed/Upload.js +9 -45
  162. package/lib/base/form/filed/Upload.js.map +1 -0
  163. package/lib/base/form/index.js +17 -58
  164. package/lib/base/form/index.js.map +1 -0
  165. package/lib/base/grid/Col.js +5 -46
  166. package/lib/base/grid/Col.js.map +1 -0
  167. package/lib/base/grid/Row.js +5 -46
  168. package/lib/base/grid/Row.js.map +1 -0
  169. package/lib/base/grid/index.js +1 -1
  170. package/lib/base/grid/index.js.map +1 -0
  171. package/lib/base/iframe/index.d.ts +1 -1
  172. package/lib/base/iframe/index.js +44 -93
  173. package/lib/base/iframe/index.js.map +1 -0
  174. package/lib/base/image/index.js +163 -261
  175. package/lib/base/image/index.js.map +1 -0
  176. package/lib/base/input/Email.d.ts +2 -2
  177. package/lib/base/input/Email.js +55 -103
  178. package/lib/base/input/Email.js.map +1 -0
  179. package/lib/base/input/Number.d.ts +1 -1
  180. package/lib/base/input/Number.js +48 -104
  181. package/lib/base/input/Number.js.map +1 -0
  182. package/lib/base/input/Password.d.ts +1 -1
  183. package/lib/base/input/Password.js +48 -104
  184. package/lib/base/input/Password.js.map +1 -0
  185. package/lib/base/input/Search.d.ts +1 -1
  186. package/lib/base/input/Search.js +46 -102
  187. package/lib/base/input/Search.js.map +1 -0
  188. package/lib/base/input/TextArea.d.ts +1 -1
  189. package/lib/base/input/TextArea.js +64 -123
  190. package/lib/base/input/TextArea.js.map +1 -0
  191. package/lib/base/input/index.d.ts +2 -2
  192. package/lib/base/input/index.js +121 -195
  193. package/lib/base/input/index.js.map +1 -0
  194. package/lib/base/layout/index.js +14 -56
  195. package/lib/base/layout/index.js.map +1 -0
  196. package/lib/base/list/index.js +8 -49
  197. package/lib/base/list/index.js.map +1 -0
  198. package/lib/base/menu/index.d.ts +5 -5
  199. package/lib/base/menu/index.js +100 -164
  200. package/lib/base/menu/index.js.map +1 -0
  201. package/lib/base/message/index.js +5 -47
  202. package/lib/base/message/index.js.map +1 -0
  203. package/lib/base/modal/Confirm.js +14 -18
  204. package/lib/base/modal/Confirm.js.map +1 -0
  205. package/lib/base/modal/index.d.ts +1 -1
  206. package/lib/base/modal/index.js +274 -359
  207. package/lib/base/modal/index.js.map +1 -0
  208. package/lib/base/notification/index.js +5 -47
  209. package/lib/base/notification/index.js.map +1 -0
  210. package/lib/base/pageHeader/index.js +5 -46
  211. package/lib/base/pageHeader/index.js.map +1 -0
  212. package/lib/base/pagination/index.js +5 -46
  213. package/lib/base/pagination/index.js.map +1 -0
  214. package/lib/base/pdfviwer/index.d.ts +1 -1
  215. package/lib/base/pdfviwer/index.js +67 -92
  216. package/lib/base/pdfviwer/index.js.map +1 -0
  217. package/lib/base/popconfirm/index.js +5 -46
  218. package/lib/base/popconfirm/index.js.map +1 -0
  219. package/lib/base/popover/index.js +19 -65
  220. package/lib/base/popover/index.js.map +1 -0
  221. package/lib/base/progress/index.js +5 -46
  222. package/lib/base/progress/index.js.map +1 -0
  223. package/lib/base/radio/RadioGroup.d.ts +1 -1
  224. package/lib/base/radio/RadioGroup.js +198 -295
  225. package/lib/base/radio/RadioGroup.js.map +1 -0
  226. package/lib/base/radio/index.d.ts +1 -1
  227. package/lib/base/radio/index.js +8 -50
  228. package/lib/base/radio/index.js.map +1 -0
  229. package/lib/base/result/index.js +5 -46
  230. package/lib/base/result/index.js.map +1 -0
  231. package/lib/base/select/index.d.ts +4 -4
  232. package/lib/base/select/index.js +358 -475
  233. package/lib/base/select/index.js.map +1 -0
  234. package/lib/base/skeleton/index.js +5 -46
  235. package/lib/base/skeleton/index.js.map +1 -0
  236. package/lib/base/space/index.js +5 -46
  237. package/lib/base/space/index.js.map +1 -0
  238. package/lib/base/spin/index.js +5 -46
  239. package/lib/base/spin/index.js.map +1 -0
  240. package/lib/base/statistic/index.js +8 -49
  241. package/lib/base/statistic/index.js.map +1 -0
  242. package/lib/base/steps/index.js +8 -49
  243. package/lib/base/steps/index.js.map +1 -0
  244. package/lib/base/switch/index.js +5 -46
  245. package/lib/base/switch/index.js.map +1 -0
  246. package/lib/base/table/index.d.ts +8 -8
  247. package/lib/base/table/index.js +743 -927
  248. package/lib/base/table/index.js.map +1 -0
  249. package/lib/base/tabs/Tabpane.d.ts +1 -1
  250. package/lib/base/tabs/Tabpane.js +22 -58
  251. package/lib/base/tabs/Tabpane.js.map +1 -0
  252. package/lib/base/tabs/index.d.ts +1 -1
  253. package/lib/base/tabs/index.js +110 -156
  254. package/lib/base/tabs/index.js.map +1 -0
  255. package/lib/base/tagSelect/TagSelect.d.ts +3 -3
  256. package/lib/base/tagSelect/TagSelect.js +124 -213
  257. package/lib/base/tagSelect/TagSelect.js.map +1 -0
  258. package/lib/base/tagSelect/index.d.ts +3 -3
  259. package/lib/base/tagSelect/index.js +90 -145
  260. package/lib/base/tagSelect/index.js.map +1 -0
  261. package/lib/base/timeline/index.js +8 -49
  262. package/lib/base/timeline/index.js.map +1 -0
  263. package/lib/base/tooltip/index.js +19 -65
  264. package/lib/base/tooltip/index.js.map +1 -0
  265. package/lib/base/transfer/index.js +5 -46
  266. package/lib/base/transfer/index.js.map +1 -0
  267. package/lib/base/tree/TreeSearch.d.ts +3 -3
  268. package/lib/base/tree/TreeSearch.js +119 -186
  269. package/lib/base/tree/TreeSearch.js.map +1 -0
  270. package/lib/base/tree/index.d.ts +2 -2
  271. package/lib/base/tree/index.js +169 -241
  272. package/lib/base/tree/index.js.map +1 -0
  273. package/lib/base/treeselect/index.js +5 -46
  274. package/lib/base/treeselect/index.js.map +1 -0
  275. package/lib/base/typography/index.js +5 -46
  276. package/lib/base/typography/index.js.map +1 -0
  277. package/lib/base/upload/Dragger.js +370 -605
  278. package/lib/base/upload/Dragger.js.map +1 -0
  279. package/lib/base/upload/Upload.js +352 -529
  280. package/lib/base/upload/Upload.js.map +1 -0
  281. package/lib/base/upload/index copy.d.ts +1 -1
  282. package/lib/base/upload/index copy.js +315 -431
  283. package/lib/base/upload/index copy.js.map +1 -0
  284. package/lib/base/upload/index.js +367 -640
  285. package/lib/base/upload/index.js.map +1 -0
  286. package/lib/config.d.ts +2 -0
  287. package/lib/config.js +7 -9
  288. package/lib/config.js.map +1 -0
  289. package/lib/constants.js +2 -2
  290. package/lib/constants.js.map +1 -0
  291. package/lib/index.js +2 -1
  292. package/lib/index.js.map +1 -0
  293. package/lib/page/BasePage/Form.d.ts +1 -1
  294. package/lib/page/BasePage/Form.js +253 -360
  295. package/lib/page/BasePage/Form.js.map +1 -0
  296. package/lib/page/BasePage/index.d.ts +9 -4
  297. package/lib/page/BasePage/index.js +864 -962
  298. package/lib/page/BasePage/index.js.map +1 -0
  299. package/lib/page/BasePage/index.module copy.less +144 -0
  300. package/lib/page/BasePage/index.module.less +92 -58
  301. package/lib/page/HeaderSearch/index.d.ts +1 -1
  302. package/lib/page/HeaderSearch/index.js +196 -272
  303. package/lib/page/HeaderSearch/index.js.map +1 -0
  304. package/lib/page/PasswordCheck/index.d.ts +1 -1
  305. package/lib/page/PasswordCheck/index.js +53 -109
  306. package/lib/page/PasswordCheck/index.js.map +1 -0
  307. package/lib/treeUtils.js +45 -58
  308. package/lib/treeUtils.js.map +1 -0
  309. package/lib/utils.d.ts +2 -2
  310. package/lib/utils.js +48 -61
  311. package/lib/utils.js.map +1 -0
  312. package/package.json +1 -1
@@ -1,33 +1,9 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
-
5
- function 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; }
6
-
7
- function _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) { _defineProperty(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; }
8
-
9
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10
-
11
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12
-
13
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
14
-
15
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
16
-
17
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
18
-
19
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
20
-
21
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
22
-
23
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
24
-
25
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
-
27
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
28
-
29
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
-
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
31
7
  import React, { PureComponent } from "react";
32
8
  import Form from "../../base/form";
33
9
  import Button from "../../base/button";
@@ -39,222 +15,144 @@ import moment from "moment";
39
15
  import { isEmptyObj } from "@bj-nsc/functions";
40
16
  import { DownOutlined, UpOutlined, ReloadOutlined, SearchOutlined } from "@ant-design/icons";
41
17
  import { getLess, getNode } from "../../utils";
42
-
43
- var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
44
- _inherits(HeaderSearch, _PureComponent);
45
-
46
- var _super = _createSuper(HeaderSearch);
47
-
48
- function HeaderSearch() {
49
- var _this;
50
-
51
- _classCallCheck(this, HeaderSearch);
52
-
53
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54
- args[_key] = arguments[_key];
55
- }
56
-
57
- _this = _super.call.apply(_super, [this].concat(args));
58
-
59
- _defineProperty(_assertThisInitialized(_this), "searchRef", /*#__PURE__*/React.createRef());
60
-
61
- _defineProperty(_assertThisInitialized(_this), "dateFormat", {});
62
-
63
- _defineProperty(_assertThisInitialized(_this), "state", {
18
+ class HeaderSearch extends PureComponent {
19
+ constructor() {
20
+ super(...arguments);
21
+ _defineProperty(this, "searchRef", /*#__PURE__*/React.createRef());
22
+ _defineProperty(this, "dateFormat", {});
23
+ _defineProperty(this, "state", {
64
24
  expand: false
65
25
  });
66
-
67
- return _this;
68
26
  }
69
-
70
- _createClass(HeaderSearch, [{
71
- key: "setSearchParams",
72
- value: function setSearchParams(params, callBack) {
73
- var _this$searchRef$curre;
74
-
75
- (_this$searchRef$curre = this.searchRef.current) === null || _this$searchRef$curre === void 0 ? void 0 : _this$searchRef$curre.setFieldsValue(params);
76
- }
77
- }, {
78
- key: "getSearchValues",
79
- value: function getSearchValues() {
80
- var fromValue = this.formatValue();
81
- return fromValue;
82
- }
83
- }, {
84
- key: "formatValue",
85
- value: function formatValue() {
86
- var _this$searchRef$curre2;
87
-
88
- var fromValue = (_this$searchRef$curre2 = this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getFieldsValue();
89
-
90
- if (!isEmptyObj(this.dateFormat)) {
91
- for (var key in this.dateFormat) {
92
- var olddata = fromValue[key];
93
-
94
- if (Array.isArray(olddata)) {
95
- if (olddata.length > 0 && olddata[0] && olddata[1]) {
96
- fromValue[key] = [moment(olddata[0]).format(this.dateFormat[key]), moment(olddata[1]).format(this.dateFormat[key])];
97
- }
98
- } else if (olddata) {
99
- fromValue[key] = moment(olddata).format(this.dateFormat[key]);
27
+ setSearchParams(params, callBack) {
28
+ var _this$searchRef$curre;
29
+ (_this$searchRef$curre = this.searchRef.current) === null || _this$searchRef$curre === void 0 || _this$searchRef$curre.setFieldsValue(params);
30
+ }
31
+ getSearchValues() {
32
+ const fromValue = this.formatValue();
33
+ return fromValue;
34
+ }
35
+ formatValue() {
36
+ var _this$searchRef$curre2;
37
+ const fromValue = (_this$searchRef$curre2 = this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getFieldsValue();
38
+ if (!isEmptyObj(this.dateFormat)) {
39
+ for (let key in this.dateFormat) {
40
+ let olddata = fromValue[key];
41
+ if (Array.isArray(olddata)) {
42
+ if (olddata.length > 0 && olddata[0] && olddata[1]) {
43
+ fromValue[key] = [moment(olddata[0]).format(this.dateFormat[key]), moment(olddata[1]).format(this.dateFormat[key])];
100
44
  }
45
+ } else if (olddata) {
46
+ fromValue[key] = moment(olddata).format(this.dateFormat[key]);
101
47
  }
102
48
  }
103
-
104
- return fromValue;
105
49
  }
106
- }, {
107
- key: "onSearch",
108
- value: function onSearch() {
109
- var onSearch = this.props.onSearch;
110
- var fromValue = this.formatValue();
111
-
112
- if (onSearch) {
113
- onSearch(fromValue);
114
- return;
115
- }
50
+ return fromValue;
51
+ }
52
+ onSearch() {
53
+ const {
54
+ onSearch
55
+ } = this.props;
56
+ const fromValue = this.formatValue();
57
+ if (onSearch) {
58
+ onSearch(fromValue);
59
+ return;
116
60
  }
117
- }, {
118
- key: "resetFields",
119
- value: function resetFields() {
120
- var _this$searchRef$curre3;
121
-
122
- (_this$searchRef$curre3 = this.searchRef.current) === null || _this$searchRef$curre3 === void 0 ? void 0 : _this$searchRef$curre3.resetFields();
61
+ }
62
+ resetFields() {
63
+ var _this$searchRef$curre3;
64
+ (_this$searchRef$curre3 = this.searchRef.current) === null || _this$searchRef$curre3 === void 0 || _this$searchRef$curre3.resetFields();
65
+ }
66
+ resetSearch() {
67
+ var _this$searchRef$curre4;
68
+ if (this.props.onReset) {
69
+ this.props.onReset();
70
+ return;
123
71
  }
124
- }, {
125
- key: "resetSearch",
126
- value: function resetSearch() {
127
- var _this$searchRef$curre4;
128
-
129
- if (this.props.onReset) {
130
- this.props.onReset();
131
- return;
132
- }
133
-
134
- (_this$searchRef$curre4 = this.searchRef.current) === null || _this$searchRef$curre4 === void 0 ? void 0 : _this$searchRef$curre4.resetFields();
72
+ (_this$searchRef$curre4 = this.searchRef.current) === null || _this$searchRef$curre4 === void 0 || _this$searchRef$curre4.resetFields();
73
+ }
74
+ render() {
75
+ const {
76
+ searchForms = [],
77
+ toolButtonPosition,
78
+ onSearch,
79
+ onReset,
80
+ searchFormProps = {}
81
+ } = this.props;
82
+ let colSpan = 0;
83
+ const headerCount = toolButtonPosition == "right" ? 1 : 2;
84
+ const headerRout = searchForms.length % 4;
85
+ if (headerRout == 0) {
86
+ colSpan = 18;
87
+ } else if (headerRout == 1) {
88
+ colSpan = 12;
89
+ } else if (headerRout == 2) {
90
+ colSpan = 6;
135
91
  }
136
- }, {
137
- key: "render",
138
- value: function render() {
139
- var _this2 = this;
140
-
141
- var _this$props = this.props,
142
- _this$props$searchFor = _this$props.searchForms,
143
- searchForms = _this$props$searchFor === void 0 ? [] : _this$props$searchFor,
144
- toolButtonPosition = _this$props.toolButtonPosition,
145
- onSearch = _this$props.onSearch,
146
- onReset = _this$props.onReset,
147
- _this$props$searchFor2 = _this$props.searchFormProps,
148
- searchFormProps = _this$props$searchFor2 === void 0 ? {} : _this$props$searchFor2;
149
- var colSpan = 0;
150
- var headerCount = toolButtonPosition == "right" ? 1 : 2;
151
- var headerRout = searchForms.length % 4;
152
-
153
- if (headerRout == 0) {
154
- colSpan = 18;
155
- } else if (headerRout == 1) {
156
- colSpan = 12;
157
- } else if (headerRout == 2) {
158
- colSpan = 6;
92
+ return /*#__PURE__*/React.createElement(Row, {
93
+ gutter: 24,
94
+ wrap: true
95
+ }, /*#__PURE__*/React.createElement("div", {
96
+ className: cls(getLess(styles, "header"), {
97
+ [getLess(styles, "header-padding")]: searchForms.length > 3
98
+ }, this.props.className)
99
+ }, /*#__PURE__*/React.createElement("div", {
100
+ className: cls(getLess(styles, "form"))
101
+ }, /*#__PURE__*/React.createElement(Form, _extends({
102
+ ref: this.searchRef,
103
+ labelCol: {},
104
+ wrapperCol: {},
105
+ style: {
106
+ width: "100%",
107
+ display: "flex",
108
+ flexWrap: "wrap"
109
+ },
110
+ onFinish: this.onSearch.bind(this)
111
+ // labelAlign={'left'}
112
+ }, searchFormProps), searchForms.map((item, index) => {
113
+ var _item$props;
114
+ const itemProps = item.props || {};
115
+ let display = "block";
116
+ if (itemProps.valueFormat) {
117
+ this.dateFormat[item.name] = itemProps.valueFormat;
159
118
  }
160
-
161
- return /*#__PURE__*/React.createElement(Row, {
162
- gutter: 24,
163
- wrap: true
164
- }, /*#__PURE__*/React.createElement("div", {
165
- className: cls(getLess(styles, "header"), _defineProperty({}, getLess(styles, "header-padding"), searchForms.length > 3), this.props.className)
166
- }, /*#__PURE__*/React.createElement("div", {
167
- className: cls(getLess(styles, "form"))
168
- }, /*#__PURE__*/React.createElement(Form, _extends({
169
- ref: this.searchRef,
170
- labelCol: {},
171
- wrapperCol: {},
172
- style: {
173
- width: "100%",
174
- display: "flex",
175
- flexWrap: "wrap"
176
- },
177
- onFinish: this.onSearch.bind(this) // labelAlign={'left'}
178
-
179
- }, searchFormProps), searchForms.map(function (item, index) {
180
- var _item$props;
181
-
182
- var itemProps = item.props || {};
183
- var display = "block";
184
-
185
- if (itemProps.valueFormat) {
186
- _this2.dateFormat[item.name] = itemProps.valueFormat;
187
- }
188
-
189
- if (index > headerCount && !_this2.state.expand) {
190
- display = "none"; //return
191
- }
192
-
193
- var allowChars = (item === null || item === void 0 ? void 0 : (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.allowChars) || false;
194
-
195
- var props = _objectSpread({}, itemProps);
196
-
197
- var searchDisabled = props.searchDisabled === true ? true : false;
198
- delete props.searchDisabled;
199
-
200
- if (!item.type || item.type == "Input") {
201
- props.allowChars = true;
202
- } else {
203
- delete props.allowChars;
204
- }
205
-
206
- var defaultItem = {
207
- label: item.label,
208
- name: item.name,
209
- allowChars: allowChars,
210
- rules: item.rules,
211
- componentName: item.type ? item.type : "Input"
212
- };
213
-
214
- if (item.labelCol) {
215
- defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
216
- labelCol: item.labelCol
217
- });
218
- delete item.labelCol;
219
- }
220
-
221
- if (item.wrapperCol) {
222
- defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
223
- wrapperCol: item.wrapperCol
224
- });
225
- delete item.wrapperCol;
226
- }
227
-
228
- var placeholder = item.type == "Select" ? "\u8BF7\u9009\u62E9".concat(item.label) : "\u8BF7\u8F93\u5165".concat(item.label);
229
-
230
- if (item.type == "RangePicker") {
231
- placeholder = ["开始时间", "结束时间"];
232
- }
233
-
234
- return /*#__PURE__*/React.createElement(Col, {
235
- md: {
236
- span: 12
237
- },
238
- sm: {
239
- span: 24
240
- },
241
- lg: {
242
- span: 6
243
- },
244
- key: index,
245
- style: {
246
- paddingRight: 0,
247
- display: display
248
- }
249
- }, /*#__PURE__*/React.createElement(Form.Item, defaultItem, getNode(item.type, _objectSpread(_objectSpread({
250
- placeholder: placeholder,
251
- style: {
252
- width: "100%"
253
- }
254
- }, props), {}, {
255
- disabled: searchDisabled
256
- }))));
257
- }), /*#__PURE__*/React.createElement(Col, {
119
+ if (index > headerCount && !this.state.expand) {
120
+ display = "none";
121
+ //return
122
+ }
123
+ let allowChars = (item === null || item === void 0 || (_item$props = item.props) === null || _item$props === void 0 ? void 0 : _item$props.allowChars) || false;
124
+ let props = _objectSpread({}, itemProps);
125
+ let searchDisabled = props.searchDisabled === true ? true : false;
126
+ delete props.searchDisabled;
127
+ if (!item.type || item.type == "Input") {
128
+ props.allowChars = true;
129
+ } else {
130
+ delete props.allowChars;
131
+ }
132
+ let defaultItem = {
133
+ label: item.label,
134
+ name: item.name,
135
+ allowChars: allowChars,
136
+ rules: item.rules,
137
+ componentName: item.type ? item.type : "Input"
138
+ };
139
+ if (item.labelCol) {
140
+ defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
141
+ labelCol: item.labelCol
142
+ });
143
+ delete item.labelCol;
144
+ }
145
+ if (item.wrapperCol) {
146
+ defaultItem = _objectSpread(_objectSpread({}, defaultItem), {}, {
147
+ wrapperCol: item.wrapperCol
148
+ });
149
+ delete item.wrapperCol;
150
+ }
151
+ let placeholder = item.type == "Select" ? "\u8BF7\u9009\u62E9".concat(item.label) : "\u8BF7\u8F93\u5165".concat(item.label);
152
+ if (item.type == "RangePicker") {
153
+ placeholder = ["开始时间", "结束时间"];
154
+ }
155
+ return /*#__PURE__*/React.createElement(Col, {
258
156
  md: {
259
157
  span: 12
260
158
  },
@@ -262,46 +160,72 @@ var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
262
160
  span: 24
263
161
  },
264
162
  lg: {
265
- span: toolButtonPosition == "right" ? 12 : 6
266
- },
267
- style: {
268
- paddingRight: 0
163
+ span: 6
269
164
  },
270
- offset: (this.state.expand || searchForms.length < 4) && searchForms.length > 1 ? colSpan : 0
271
- }, /*#__PURE__*/React.createElement("div", {
272
- className: cls(getLess(styles, "search-buttons"), _defineProperty({}, getLess(styles, "search-buttons-flex"), searchForms.length > 1)),
165
+ key: index,
273
166
  style: {
274
- marginTop: 0
167
+ paddingRight: 0,
168
+ display: display
275
169
  }
276
- }, /*#__PURE__*/React.createElement("div", {
277
- className: cls(_defineProperty({}, getLess(styles, "button-reverse"), this.props.buttonRevers == true))
278
- }, /*#__PURE__*/React.createElement(Button, {
279
- type: "primary" // onClick={this.onSearch.bind(this)}
280
- ,
281
- icon: /*#__PURE__*/React.createElement(SearchOutlined, null),
170
+ }, /*#__PURE__*/React.createElement(Form.Item, defaultItem, getNode(item.type, _objectSpread(_objectSpread({
171
+ placeholder: placeholder,
282
172
  style: {
283
- marginLeft: 0
284
- },
285
- htmlType: "submit"
286
- }, "\u67E5\u8BE2"), searchForms.length > 1 && /*#__PURE__*/React.createElement(Button // type={"primary"}
287
- , {
288
- onClick: this.resetSearch.bind(this),
289
- icon: /*#__PURE__*/React.createElement(ReloadOutlined, null)
290
- }, "\u91CD\u7F6E")), searchForms.length > 3 && /*#__PURE__*/React.createElement("div", {
291
- className: getLess(styles, "expand_style"),
292
- onClick: function onClick() {
293
- var expand = _this2.state.expand;
294
-
295
- _this2.setState({
296
- expand: !expand
297
- });
173
+ width: "100%"
298
174
  }
299
- }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null))))))));
300
- }
301
- }]);
302
-
303
- return HeaderSearch;
304
- }(PureComponent);
305
-
175
+ }, props), {}, {
176
+ disabled: searchDisabled
177
+ }))));
178
+ }), /*#__PURE__*/React.createElement(Col, {
179
+ md: {
180
+ span: 12
181
+ },
182
+ sm: {
183
+ span: 24
184
+ },
185
+ lg: {
186
+ span: toolButtonPosition == "right" ? 12 : 6
187
+ },
188
+ style: {
189
+ paddingRight: 0
190
+ },
191
+ offset: (this.state.expand || searchForms.length < 4) && searchForms.length > 1 ? colSpan : 0
192
+ }, /*#__PURE__*/React.createElement("div", {
193
+ className: cls(getLess(styles, "search-buttons"), {
194
+ [getLess(styles, "search-buttons-flex")]: searchForms.length > 1
195
+ }),
196
+ style: {
197
+ marginTop: 0
198
+ }
199
+ }, /*#__PURE__*/React.createElement("div", {
200
+ className: cls({
201
+ [getLess(styles, "button-reverse")]: this.props.buttonRevers == true
202
+ })
203
+ }, /*#__PURE__*/React.createElement(Button, {
204
+ type: "primary"
205
+ // onClick={this.onSearch.bind(this)}
206
+ ,
207
+ icon: /*#__PURE__*/React.createElement(SearchOutlined, null),
208
+ style: {
209
+ marginLeft: 0
210
+ },
211
+ htmlType: "submit"
212
+ }, "\u67E5\u8BE2"), searchForms.length > 1 && /*#__PURE__*/React.createElement(Button
213
+ // type={"primary"}
214
+ , {
215
+ onClick: this.resetSearch.bind(this),
216
+ icon: /*#__PURE__*/React.createElement(ReloadOutlined, null)
217
+ }, "\u91CD\u7F6E")), searchForms.length > 3 && /*#__PURE__*/React.createElement("div", {
218
+ className: getLess(styles, "expand_style"),
219
+ onClick: () => {
220
+ const {
221
+ expand
222
+ } = this.state;
223
+ this.setState({
224
+ expand: !expand
225
+ });
226
+ }
227
+ }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null))))))));
228
+ }
229
+ }
306
230
  export default HeaderSearch;
307
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjcmVhdGVSZWYiLCJleHBhbmQiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRGaWVsZHNWYWx1ZSIsImZyb21WYWx1ZSIsImZvcm1hdFZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIm9uUmVzZXQiLCJzZWFyY2hGb3JtcyIsInRvb2xCdXR0b25Qb3NpdGlvbiIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJjbGFzc05hbWUiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzdGF0ZSIsImFsbG93Q2hhcnMiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwicGxhY2Vob2xkZXIiLCJzcGFuIiwicGFkZGluZ1JpZ2h0Iiwic3R5bGUiLCJkaXNhYmxlZCIsIm1hcmdpblRvcCIsImJ1dHRvblJldmVycyIsIm1hcmdp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QVQsQ0FEcEI7QUFFRSxRQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiLGNBQVFhLE1BQVIsR0FBbUIsTUFBSSxDQUFDcUMsS0FBeEIsQ0FBUXJDLE1BQVI7O0FBQ0EsVUFBQSxNQUFJLENBQUN3RCxRQUFMLENBQWM7QUFDWnhELFlBQUFBLE1BQU0sRUFBRSxDQUFDQTtBQURHLFdBQWQ7QUFHRDtBQVBILFNBU0csS0FBS3FDLEtBQUwsQ0FBV3JDLE1BQVgsR0FBb0IsSUFBcEIsR0FBMkIsSUFUOUIsRUFVRyxLQUFLcUMsS0FBTCxDQUFXckMsTUFBWCxnQkFBb0Isb0JBQUMsVUFBRCxPQUFwQixnQkFBcUMsb0JBQUMsWUFBRCxPQVZ4QyxDQWpDSixDQVpGLENBdEVGLENBREYsQ0FQRixDQURGLENBREY7QUFpSkQ7Ozs7RUFwTndCakIsYTs7QUFzTjNCLGVBQWVlLFlBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBvblJlc2V0PzogYW55O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IG9iamVjdDtcclxuICBidXR0b25SZXZlcnM/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxufVxyXG5cclxuY2xhc3MgSGVhZGVyU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxTZWFyY2hQcm9wcywgYW55PiB7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIHN0YXRlID0geyBleHBhbmQ6IGZhbHNlIH07XHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHBhcmFtcyk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIGZvcm1hdFZhbHVlKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGZyb21WYWx1ZVtrZXldO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBpZiAob2xkZGF0YS5sZW5ndGggPiAwICYmIG9sZGRhdGFbMF0gJiYgb2xkZGF0YVsxXSkge1xyXG4gICAgICAgICAgICBmcm9tVmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25SZXNldCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hGb3JtcyA9IFtdLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24sXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBvblJlc2V0LFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBjb2xTcGFuID0gMDtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEgOiAyO1xyXG4gICAgY29uc3QgaGVhZGVyUm91dCA9IHNlYXJjaEZvcm1zLmxlbmd0aCAlIDQ7XHJcbiAgICBpZiAoaGVhZGVyUm91dCA9PSAwKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxODtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAxKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxMjtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAyKSB7XHJcbiAgICAgIGNvbFNwYW4gPSA2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHsgW2dldExlc3Moc3R5bGVzLCBcImhlYWRlci1wYWRkaW5nXCIpXTogc2VhcmNoRm9ybXMubGVuZ3RoID4gMyB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1yZXZlcnNlXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25SZXZlcnMgPT0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFJlbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmRfc3R5bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImV4cGFuZCIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZnJvbVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTMiLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTQiLCJvblJlc2V0IiwicmVuZGVyIiwic2VhcmNoRm9ybXMiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJzZWFyY2hGb3JtUHJvcHMiLCJjb2xTcGFuIiwiaGVhZGVyQ291bnQiLCJoZWFkZXJSb3V0IiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsIndyYXAiLCJjbGFzc05hbWUiLCJfZXh0ZW5kcyIsInJlZiIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInN0eWxlIiwid2lkdGgiLCJkaXNwbGF5IiwiZmxleFdyYXAiLCJvbkZpbmlzaCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInN0YXRlIiwiYWxsb3dDaGFycyIsIl9vYmplY3RTcHJlYWQiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsImRpc2FibGVkIiwib2Zmc2V0IiwibWFyZ2luVG9wIiwiYnV0dG9uUmV2ZXJzIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJodG1sVHlwZSIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBvblJlc2V0PzogYW55O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IG9iamVjdDtcclxuICBidXR0b25SZXZlcnM/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxufVxyXG5cclxuY2xhc3MgSGVhZGVyU2VhcmNoIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxTZWFyY2hQcm9wcywgYW55PiB7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIHN0YXRlID0geyBleHBhbmQ6IGZhbHNlIH07XHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHBhcmFtcyk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIGZvcm1hdFZhbHVlKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGZyb21WYWx1ZVtrZXldO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBpZiAob2xkZGF0YS5sZW5ndGggPiAwICYmIG9sZGRhdGFbMF0gJiYgb2xkZGF0YVsxXSkge1xyXG4gICAgICAgICAgICBmcm9tVmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLmZvcm1hdFZhbHVlKCk7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldEZpZWxkcygpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25SZXNldCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uUmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hGb3JtcyA9IFtdLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24sXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBvblJlc2V0LFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBjb2xTcGFuID0gMDtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEgOiAyO1xyXG4gICAgY29uc3QgaGVhZGVyUm91dCA9IHNlYXJjaEZvcm1zLmxlbmd0aCAlIDQ7XHJcbiAgICBpZiAoaGVhZGVyUm91dCA9PSAwKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxODtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAxKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxMjtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAyKSB7XHJcbiAgICAgIGNvbFNwYW4gPSA2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHsgW2dldExlc3Moc3R5bGVzLCBcImhlYWRlci1wYWRkaW5nXCIpXTogc2VhcmNoRm9ybXMubGVuZ3RoID4gMyB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1yZXZlcnNlXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25SZXZlcnMgPT0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFJlbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmRfc3R5bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQ0VDLFlBQVksRUFDWkMsVUFBVSxFQUNWQyxjQUFjLEVBQ2RDLGNBQWMsUUFDVCxtQkFBbUI7QUFDMUIsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsYUFBYTtBQW9COUMsTUFBTUMsWUFBWSxTQUFTZixhQUFhLENBQW1CO0VBQUFnQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGlDQUM3Q25CLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEscUJBQ3JCLENBQUMsQ0FB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