@1money/component-ui 0.0.48 → 0.0.50
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.
- package/es/components/Accordion/style/Accordion.css +94 -1
- package/es/components/Alert/style/Alert.css +101 -1
- package/es/components/Button/style/Button.css +178 -1
- package/es/components/Calendar/style/Calendar.css +400 -1
- package/es/components/Carousel/style/Carousel.css +57 -1
- package/es/components/Cell/style/Cell.css +80 -1
- package/es/components/Checkbox/style/Checkbox.css +191 -1
- package/es/components/CoachMark/style/CoachMark.css +156 -1
- package/es/components/Copy/style/Clipboard.css +45 -1
- package/es/components/Copy/style/Copy.css +48 -1
- package/es/components/Dialog/style/Dialog.css +204 -1
- package/es/components/Divider/style/Divider.css +128 -1
- package/es/components/Drawer/style/Drawer.css +145 -1
- package/es/components/Dropdown/style/Dropdown.css +48 -1
- package/es/components/Empty/style/Empty.css +58 -1
- package/es/components/Flex/style/Flex.css +71 -1
- package/es/components/Grid/style/Grid.css +952 -1
- package/es/components/Icons/style/Icons.css +81 -1
- package/es/components/Input/Amount/style/Amount.css +103 -1
- package/es/components/Input/FieldShell/FieldShell.css +76 -1
- package/es/components/Input/Input/Input.css +124 -1
- package/es/components/Input/OTP/OTP.css +79 -1
- package/es/components/Input/TextArea/TextArea.css +93 -1
- package/es/components/Input/Trade/Trade.css +192 -1
- package/es/components/Link/style/Link.css +70 -1
- package/es/components/Navigation/style/Nav.css +158 -1
- package/es/components/Navigation/style/Navigation.css +373 -1
- package/es/components/Navigation/style/NavigationStepper.css +97 -1
- package/es/components/Notification/NotificationStatic.js +22 -22
- package/es/components/Notification/style/Notification.css +170 -1
- package/es/components/Pagination/style/Pagination.css +89 -1
- package/es/components/Popconfirm/style/Popconfirm.css +137 -1
- package/es/components/ProForm/ProForm.js +38 -38
- package/es/components/ProForm/ProFormDependency.js +5 -5
- package/es/components/ProForm/Submitter.js +4 -4
- package/es/components/ProForm/core/hooks/useForm.js +101 -101
- package/es/components/ProForm/core/useFormItem.js +5 -5
- package/es/components/ProForm/hooks/useFieldRequest.js +12 -12
- package/es/components/ProForm/layouts/useOverlayForm.js +5 -5
- package/es/components/ProForm/style/ProForm.css +168 -1
- package/es/components/Progress/style/Progress.css +103 -1
- package/es/components/Radio/style/Radio.css +362 -1
- package/es/components/Segment/style/Segment.css +79 -1
- package/es/components/Select/style/Select.css +468 -1
- package/es/components/Skeleton/style/Skeleton.css +54 -1
- package/es/components/Slider/style/Slider.css +161 -1
- package/es/components/Space/style/Space.css +47 -1
- package/es/components/Spinner/Spinner.js +7 -7
- package/es/components/Spinner/style/Spinner.css +99 -1
- package/es/components/Step/style/Step.css +107 -1
- package/es/components/Switch/style/Switch.css +102 -1
- package/es/components/Table/style/Table.css +370 -1
- package/es/components/Tabs/style/Tabs.css +118 -1
- package/es/components/Tag/style/Tag.css +87 -1
- package/es/components/Tooltip/style/Tooltip.css +98 -1
- package/es/components/Trigger/style/Trigger.css +35 -1
- package/es/components/Typography/style/Typography.css +444 -1
- package/es/components/Upload/style/Upload.css +55 -1
- package/es/components/Upload/style/UploadFileBar.css +88 -1
- package/es/components/VirtualList/style/VirtualList.css +25 -1
- package/es/index.css +1 -1
- package/es/stories/docs/storybook-docs.css +323 -1
- package/es/styles/index.css +5328 -1
- package/lib/components/Accordion/style/Accordion.css +94 -1
- package/lib/components/Alert/style/Alert.css +101 -1
- package/lib/components/Button/style/Button.css +178 -1
- package/lib/components/Calendar/style/Calendar.css +400 -1
- package/lib/components/Carousel/style/Carousel.css +57 -1
- package/lib/components/Cell/style/Cell.css +80 -1
- package/lib/components/Checkbox/style/Checkbox.css +191 -1
- package/lib/components/CoachMark/style/CoachMark.css +156 -1
- package/lib/components/Copy/style/Clipboard.css +45 -1
- package/lib/components/Copy/style/Copy.css +48 -1
- package/lib/components/Dialog/style/Dialog.css +204 -1
- package/lib/components/Divider/style/Divider.css +128 -1
- package/lib/components/Drawer/style/Drawer.css +145 -1
- package/lib/components/Dropdown/style/Dropdown.css +48 -1
- package/lib/components/Empty/style/Empty.css +58 -1
- package/lib/components/Flex/style/Flex.css +71 -1
- package/lib/components/Grid/style/Grid.css +952 -1
- package/lib/components/Icons/style/Icons.css +81 -1
- package/lib/components/Input/Amount/style/Amount.css +103 -1
- package/lib/components/Input/FieldShell/FieldShell.css +76 -1
- package/lib/components/Input/Input/Input.css +124 -1
- package/lib/components/Input/OTP/OTP.css +79 -1
- package/lib/components/Input/TextArea/TextArea.css +93 -1
- package/lib/components/Input/Trade/Trade.css +192 -1
- package/lib/components/Link/style/Link.css +70 -1
- package/lib/components/Navigation/style/Nav.css +158 -1
- package/lib/components/Navigation/style/Navigation.css +373 -1
- package/lib/components/Navigation/style/NavigationStepper.css +97 -1
- package/lib/components/Notification/NotificationStatic.js +22 -22
- package/lib/components/Notification/style/Notification.css +170 -1
- package/lib/components/Pagination/style/Pagination.css +89 -1
- package/lib/components/Popconfirm/style/Popconfirm.css +137 -1
- package/lib/components/ProForm/ProForm.js +38 -38
- package/lib/components/ProForm/ProFormDependency.js +5 -5
- package/lib/components/ProForm/Submitter.js +4 -4
- package/lib/components/ProForm/core/hooks/useForm.js +101 -101
- package/lib/components/ProForm/core/useFormItem.js +5 -5
- package/lib/components/ProForm/hooks/useFieldRequest.js +12 -12
- package/lib/components/ProForm/layouts/useOverlayForm.js +5 -5
- package/lib/components/ProForm/style/ProForm.css +168 -1
- package/lib/components/Progress/style/Progress.css +103 -1
- package/lib/components/Radio/style/Radio.css +362 -1
- package/lib/components/Segment/style/Segment.css +79 -1
- package/lib/components/Select/style/Select.css +468 -1
- package/lib/components/Skeleton/style/Skeleton.css +54 -1
- package/lib/components/Slider/style/Slider.css +161 -1
- package/lib/components/Space/style/Space.css +47 -1
- package/lib/components/Spinner/Spinner.js +7 -7
- package/lib/components/Spinner/style/Spinner.css +99 -1
- package/lib/components/Step/style/Step.css +107 -1
- package/lib/components/Switch/style/Switch.css +102 -1
- package/lib/components/Table/style/Table.css +370 -1
- package/lib/components/Tabs/style/Tabs.css +118 -1
- package/lib/components/Tag/style/Tag.css +87 -1
- package/lib/components/Tooltip/style/Tooltip.css +98 -1
- package/lib/components/Trigger/style/Trigger.css +35 -1
- package/lib/components/Typography/style/Typography.css +444 -1
- package/lib/components/Upload/style/Upload.css +55 -1
- package/lib/components/Upload/style/UploadFileBar.css +88 -1
- package/lib/components/VirtualList/style/VirtualList.css +25 -1
- package/lib/index.css +1 -1
- package/lib/stories/docs/storybook-docs.css +323 -1
- package/lib/styles/index.css +5328 -1
- package/package.json +65 -34
|
@@ -99,16 +99,16 @@ var getNotificationRoot = function getNotificationRoot() {
|
|
|
99
99
|
};
|
|
100
100
|
var createNotificationRenderer = function createNotificationRenderer(container) {
|
|
101
101
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
102
|
-
var reactDomClient, root, reactDom;
|
|
103
|
-
return _regenerator["default"].wrap(function
|
|
102
|
+
var reactDomClient, root, reactDom, _t;
|
|
103
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
104
104
|
while (1) switch (_context.prev = _context.next) {
|
|
105
105
|
case 0:
|
|
106
106
|
_context.prev = 0;
|
|
107
|
-
_context.next =
|
|
107
|
+
_context.next = 1;
|
|
108
108
|
return Promise.resolve().then(function () {
|
|
109
109
|
return _interopRequireWildcard(require('react-dom/client'));
|
|
110
110
|
});
|
|
111
|
-
case
|
|
111
|
+
case 1:
|
|
112
112
|
reactDomClient = _context.sent;
|
|
113
113
|
root = reactDomClient.createRoot(container);
|
|
114
114
|
return _context.abrupt("return", {
|
|
@@ -119,21 +119,21 @@ var createNotificationRenderer = function createNotificationRenderer(container)
|
|
|
119
119
|
root.unmount();
|
|
120
120
|
}
|
|
121
121
|
});
|
|
122
|
-
case
|
|
123
|
-
_context.prev =
|
|
124
|
-
|
|
125
|
-
_context.next =
|
|
122
|
+
case 2:
|
|
123
|
+
_context.prev = 2;
|
|
124
|
+
_t = _context["catch"](0);
|
|
125
|
+
_context.next = 3;
|
|
126
126
|
return Promise.resolve().then(function () {
|
|
127
127
|
return _interopRequireWildcard(require('react-dom'));
|
|
128
128
|
});
|
|
129
|
-
case
|
|
129
|
+
case 3:
|
|
130
130
|
reactDom = _context.sent;
|
|
131
131
|
if (!(typeof reactDom.render !== 'function' || typeof reactDom.unmountComponentAtNode !== 'function')) {
|
|
132
|
-
_context.next =
|
|
132
|
+
_context.next = 4;
|
|
133
133
|
break;
|
|
134
134
|
}
|
|
135
135
|
return _context.abrupt("return", null);
|
|
136
|
-
case
|
|
136
|
+
case 4:
|
|
137
137
|
return _context.abrupt("return", {
|
|
138
138
|
render: function render(element) {
|
|
139
139
|
var _a;
|
|
@@ -144,11 +144,11 @@ var createNotificationRenderer = function createNotificationRenderer(container)
|
|
|
144
144
|
(_a = reactDom.unmountComponentAtNode) === null || _a === void 0 ? void 0 : _a.call(reactDom, container);
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
|
-
case
|
|
147
|
+
case 5:
|
|
148
148
|
case "end":
|
|
149
149
|
return _context.stop();
|
|
150
150
|
}
|
|
151
|
-
}, _callee, null, [[0,
|
|
151
|
+
}, _callee, null, [[0, 2]]);
|
|
152
152
|
}));
|
|
153
153
|
};
|
|
154
154
|
var NotificationMotionItem = function NotificationMotionItem(_ref) {
|
|
@@ -391,27 +391,27 @@ var NotificationManager = /*#__PURE__*/function () {
|
|
|
391
391
|
value: function ensureRenderer() {
|
|
392
392
|
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
393
393
|
var _this5 = this;
|
|
394
|
-
return _regenerator["default"].wrap(function
|
|
394
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
395
395
|
while (1) switch (_context2.prev = _context2.next) {
|
|
396
396
|
case 0:
|
|
397
397
|
if (canUseDOM()) {
|
|
398
|
-
_context2.next =
|
|
398
|
+
_context2.next = 1;
|
|
399
399
|
break;
|
|
400
400
|
}
|
|
401
401
|
return _context2.abrupt("return", null);
|
|
402
|
-
case
|
|
402
|
+
case 1:
|
|
403
403
|
if (!this.renderer) {
|
|
404
|
-
_context2.next =
|
|
404
|
+
_context2.next = 2;
|
|
405
405
|
break;
|
|
406
406
|
}
|
|
407
407
|
return _context2.abrupt("return", this.renderer);
|
|
408
|
-
case
|
|
408
|
+
case 2:
|
|
409
409
|
if (!this.rendererPromise) {
|
|
410
|
-
_context2.next =
|
|
410
|
+
_context2.next = 3;
|
|
411
411
|
break;
|
|
412
412
|
}
|
|
413
413
|
return _context2.abrupt("return", this.rendererPromise);
|
|
414
|
-
case
|
|
414
|
+
case 3:
|
|
415
415
|
this.container = getNotificationRoot();
|
|
416
416
|
this.rendererPromise = createNotificationRenderer(this.container).then(function (renderer) {
|
|
417
417
|
_this5.renderer = renderer;
|
|
@@ -426,7 +426,7 @@ var NotificationManager = /*#__PURE__*/function () {
|
|
|
426
426
|
return null;
|
|
427
427
|
});
|
|
428
428
|
return _context2.abrupt("return", this.rendererPromise);
|
|
429
|
-
case
|
|
429
|
+
case 4:
|
|
430
430
|
case "end":
|
|
431
431
|
return _context2.stop();
|
|
432
432
|
}
|
|
@@ -512,4 +512,4 @@ var notification = exports.notification = {
|
|
|
512
512
|
}
|
|
513
513
|
};
|
|
514
514
|
var _default = exports["default"] = notification;
|
|
515
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX05vdGlmaWNhdGlvbiIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaW50ZXJmYWNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJOT1RJRklDQVRJT05fUk9PVF9JRCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UIiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHIiwicGxhY2VtZW50IiwiZHVyYXRpb24iLCJtYXhDb3VudCIsImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50Iiwibm9ybWFsaXplRHVyYXRpb24iLCJmYWxsYmFjayIsImlzRmluaXRlIiwibm9ybWFsaXplTWF4Q291bnQiLCJNYXRoIiwiZmxvb3IiLCJncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCIsIml0ZW1zIiwiZ3JvdXBlZEl0ZW1zIiwiTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMiLCJmb3JFYWNoIiwiaXRlbSIsInB1c2giLCJnZXROb3RpZmljYXRpb25Sb290IiwiZXhpc3RpbmdSb290IiwiZ2V0RWxlbWVudEJ5SWQiLCJIVE1MRGl2RWxlbWVudCIsInJvb3QiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVOb3RpZmljYXRpb25SZW5kZXJlciIsImNvbnRhaW5lciIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwicmVhY3REb21DbGllbnQiLCJyZWFjdERvbSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsInNlbnQiLCJjcmVhdGVSb290IiwiYWJydXB0IiwicmVuZGVyIiwiZWxlbWVudCIsInVubW91bnQiLCJ0MCIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJfYSIsInN0b3AiLCJOb3RpZmljYXRpb25Nb3Rpb25JdGVtIiwiX3JlZiIsImNvbGxhcHNlT25FeGl0Iiwib25DbG9zZSIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZW50ZXJlZCIsInNldEVudGVyZWQiLCJ1c2VFZmZlY3QiLCJjbG9zaW5nIiwidW5kZWZpbmVkIiwiZnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImtleSIsIm5vdGlmaWNhdGlvblByb3BzIiwibW90aW9uQ2xhc3NOYW1lIiwiam9pbkNscyIsIl9qc3giLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsIk1lbW9pemVkTm90aWZpY2F0aW9uIiwiYXNzaWduIiwiTm90aWZpY2F0aW9uVmlld3BvcnQiLCJfcmVmMiIsIml0ZW1zQnlQbGFjZW1lbnQiLCJtYXAiLCJwbGFjZW1lbnRJdGVtcyIsImFjdGl2ZUNvdW50IiwiZmlsdGVyIiwiY29uY2F0IiwiU3RyaW5nIiwiTm90aWZpY2F0aW9uTWFuYWdlciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsInJlbmRlcmVyIiwicmVuZGVyZXJQcm9taXNlIiwidGltZXJzIiwiTWFwIiwicmVtb3ZhbFRpbWVycyIsImtleVNlZWQiLCJjb25maWdTdGF0ZSIsIm9wZW4iLCJjb25maWciLCJjcmVhdGVLZXkiLCJjdXJyZW50SXRlbSIsImZpbmQiLCJuZXh0SXRlbSIsImNyZWF0ZVJlY29yZCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJjbGVhclJlbW92YWxUaW1lciIsInN0YXJ0VGltZXIiLCJ0cmltT3ZlcmZsb3ciLCJkZXN0cm95IiwiYmVnaW5DbG9zZSIsIl9iIiwiX2MiLCJoYW5kbGVDbG9zZSIsIl9jcmVhdGVDbGFzczIiLCJfZCIsIm1lcmdlZENvbmZpZyIsIl90aGlzMiIsImNsZWFyVGltZXIiLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiX3RoaXMzIiwib3ZlcmZsb3dLZXlzIiwiZmxhdE1hcCIsIm92ZXJmbG93Q291bnQiLCJzbGljZSIsImtleXMiLCJfdGhpczQiLCJrZXlTZXQiLCJTZXQiLCJjbG9zaW5nS2V5cyIsImZpbmFsaXplUmVtb3ZlIiwicmVtb3ZlZEl0ZW1zIiwiZW5zdXJlUmVuZGVyZXIiLCJfY2FsbGVlMiIsIl90aGlzNSIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInJlbW92ZUNvbnRhaW5lciIsInJlbW92ZSIsInRlYXJkb3duIiwiY2xlYXIiLCJyZW5kZXJOb2RlIiwiX3RoaXM2Iiwibm90aWZpY2F0aW9uTWFuYWdlciIsIm9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzIiwic3RhdHVzIiwibm90aWZpY2F0aW9uIiwiZXhwb3J0cyIsImluZm8iLCJzdWNjZXNzIiwid2FybmluZyIsImVycm9yIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDcEJBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUNBQSxPQUFBO0FBU0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQXNELFNBQUFNLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSCx3QkFBQUcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLG9CQUFBSyxRQUFBLGFBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxN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LENBQUEsQ0FBQSxFQUFNcUIsTUFBTSxDQUFBLEVBQUE7TUFBRWdELE1BQU0sRUFBTkE7SUFBTSxDQUFBLENBQUEsQ0FBRztFQUFBO0FBQUE7QUFFOUMsSUFBTUMsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsR0FBMEI7RUFDakRsRCxJQUFJLEVBQUUsU0FBTkEsSUFBSUEsQ0FBRUMsTUFBTTtJQUFBLE9BQUk4QyxtQkFBbUIsQ0FBQy9DLElBQUksQ0FBQ0MsTUFBTSxDQUFDO0VBQUE7RUFDaERtRCxJQUFJLEVBQUVKLDBCQUEwQixDQUFDLE1BQU0sQ0FBQztFQUN4Q0ssT0FBTyxFQUFFTCwwQkFBMEIsQ0FBQyxTQUFTLENBQUM7RUFDOUNNLE9BQU8sRUFBRU4sMEJBQTBCLENBQUMsU0FBUyxDQUFDO0VBQzlDTyxLQUFLLEVBQUVQLDBCQUEwQixDQUFDLE9BQU8sQ0FBQztFQUMxQ3JDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFdkMsR0FBRztJQUFBLE9BQUkyRSxtQkFBbUIsQ0FBQ3BDLE9BQU8sQ0FBQ3ZDLEdBQUcsQ0FBQztFQUFBO0VBQ2hENkIsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUVBLE9BQU07SUFBQSxPQUFJOEMsbUJBQW1CLENBQUM5QyxNQUFNLENBQUNBLE9BQU0sQ0FBQztFQUFBO0FEM0l0RCxDQzRJQztBQUFDLElBQUF1RCxRQUFBLEdBQUFMLE9BQUEsY0FFYUQsWUFBWSIsImZpbGUiOiJjb21wb25lbnRzL05vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25TdGF0aWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVtb2l6ZWROb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBOT1RJRklDQVRJT05fUExBQ0VNRU5UUyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmNvbnN0IE5PVElGSUNBVElPTl9ST09UX0lEID0gJ29tLWNvbXBvbmVudC11aS1ub3RpZmljYXRpb24tcm9vdCc7XG5jb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9QTEFDRU1FTlQgPSAndG9wUmlnaHQnO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fRFVSQVRJT04gPSA0LjU7XG5jb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9NQVhfQ09VTlQgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5jb25zdCBOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OID0gMjQwO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHID0ge1xuICAgIHBsYWNlbWVudDogREVGQVVMVF9OT1RJRklDQVRJT05fUExBQ0VNRU5ULFxuICAgIGR1cmF0aW9uOiBERUZBVUxUX05PVElGSUNBVElPTl9EVVJBVElPTixcbiAgICBtYXhDb3VudDogREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5ULFxufTtcbmNvbnN0IGNhblVzZURPTSA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG5jb25zdCBub3JtYWxpemVEdXJhdGlvbiA9ICh2YWx1ZSwgZmFsbGJhY2spID0+IHtcbiAgICBpZiAodmFsdWUgPD0gMClcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IGZhbGxiYWNrO1xufTtcbmNvbnN0IG5vcm1hbGl6ZU1heENvdW50ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IHZhbHVlIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIERFRkFVTFRfTk9USUZJQ0FUSU9OX01BWF9DT1VOVDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpO1xufTtcbmNvbnN0IGdyb3VwTm90aWZpY2F0aW9uc0J5UGxhY2VtZW50ID0gKGl0ZW1zKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZEl0ZW1zID0ge307XG4gICAgTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMuZm9yRWFjaChwbGFjZW1lbnQgPT4ge1xuICAgICAgICBncm91cGVkSXRlbXNbcGxhY2VtZW50XSA9IFtdO1xuICAgIH0pO1xuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGdyb3VwZWRJdGVtc1tpdGVtLnBsYWNlbWVudF0ucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZ3JvdXBlZEl0ZW1zO1xufTtcbmNvbnN0IGdldE5vdGlmaWNhdGlvblJvb3QgPSAoKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdSb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoTk9USUZJQ0FUSU9OX1JPT1RfSUQpO1xuICAgIGlmIChleGlzdGluZ1Jvb3QgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdSb290O1xuICAgIH1cbiAgICBjb25zdCByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgcm9vdC5pZCA9IE5PVElGSUNBVElPTl9ST09UX0lEO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7XG4gICAgcmV0dXJuIHJvb3Q7XG59O1xuY29uc3QgY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIgPSAoY29udGFpbmVyKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZWFjdERvbUNsaWVudCA9IHlpZWxkIGltcG9ydCgncmVhY3QtZG9tL2NsaWVudCcpO1xuICAgICAgICBjb25zdCByb290ID0gcmVhY3REb21DbGllbnQuY3JlYXRlUm9vdChjb250YWluZXIpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVuZGVyOiBlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICByb290LnJlbmRlcihlbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bm1vdW50OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdC51bm1vdW50KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgZm9yIFJlYWN0IDwgMTggd2hlcmUgcmVhY3QtZG9tL2NsaWVudCBpcyB1bmF2YWlsYWJsZVxuICAgICAgICBjb25zdCByZWFjdERvbSA9IHlpZWxkIGltcG9ydCgncmVhY3QtZG9tJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVhY3REb20ucmVuZGVyICE9PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICB0eXBlb2YgcmVhY3REb20udW5tb3VudENvbXBvbmVudEF0Tm9kZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbmRlcjogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IHJlYWN0RG9tLnJlbmRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVhY3REb20sIGVsZW1lbnQsIGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5tb3VudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSByZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChyZWFjdERvbSwgY29udGFpbmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufSk7XG5jb25zdCBOb3RpZmljYXRpb25Nb3Rpb25JdGVtID0gKHsgaXRlbSwgY29sbGFwc2VPbkV4aXQsIG9uQ2xvc2UgfSkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKCdub3RpZmljYXRpb24nKTtcbiAgICBjb25zdCBbZW50ZXJlZCwgc2V0RW50ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uY2xvc2luZyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBzZXRFbnRlcmVkKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW2l0ZW0uY2xvc2luZywgaXRlbS5rZXldKTtcbiAgICBjb25zdCB7IGtleSwgZHVyYXRpb24sIHBsYWNlbWVudCwgY2xvc2luZyB9ID0gaXRlbSwgbm90aWZpY2F0aW9uUHJvcHMgPSBfX3Jlc3QoaXRlbSwgW1wia2V5XCIsIFwiZHVyYXRpb25cIiwgXCJwbGFjZW1lbnRcIiwgXCJjbG9zaW5nXCJdKTtcbiAgICBjb25zdCBtb3Rpb25DbGFzc05hbWUgPSBjbG9zaW5nXG4gICAgICAgID8gam9pbkNscyhjbGFzc2VzKCdpdGVtLWV4aXQnKSwgY29sbGFwc2VPbkV4aXQgPyBjbGFzc2VzKCdpdGVtLWV4aXQtY29sbGFwc2UnKSA6ICcnKVxuICAgICAgICA6IGVudGVyZWRcbiAgICAgICAgICAgID8gY2xhc3NlcygnaXRlbS1hY3RpdmUnKVxuICAgICAgICAgICAgOiBjbGFzc2VzKCdpdGVtLWVudGVyJyk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2l0ZW0nKSwgbW90aW9uQ2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taW5uZXInKSwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWROb3RpZmljYXRpb24sIE9iamVjdC5hc3NpZ24oe30sIG5vdGlmaWNhdGlvblByb3BzLCB7IG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZShrZXkpO1xuICAgICAgICAgICAgICAgIH0gfSkpIH0pIH0pKTtcbn07XG5jb25zdCBOb3RpZmljYXRpb25WaWV3cG9ydCA9ICh7IGl0ZW1zLCBvbkNsb3NlIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnbm90aWZpY2F0aW9uJyk7XG4gICAgY29uc3QgaXRlbXNCeVBsYWNlbWVudCA9IGdyb3VwTm90aWZpY2F0aW9uc0J5UGxhY2VtZW50KGl0ZW1zKTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ZpZXdwb3J0JyksIFwiYXJpYS1saXZlXCI6IFwicG9saXRlXCIsIFwiYXJpYS1hdG9taWNcIjogXCJmYWxzZVwiLCBjaGlsZHJlbjogTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMubWFwKHBsYWNlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZW1lbnRJdGVtcyA9IGl0ZW1zQnlQbGFjZW1lbnRbcGxhY2VtZW50XTtcbiAgICAgICAgICAgIGlmICghcGxhY2VtZW50SXRlbXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlQ291bnQgPSBwbGFjZW1lbnRJdGVtcy5maWx0ZXIoaSA9PiAhaS5jbG9zaW5nKS5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3Nlcygnc3RhY2snKSwgY2xhc3Nlcyhgc3RhY2stJHtwbGFjZW1lbnR9YCkpLCBjaGlsZHJlbjogcGxhY2VtZW50SXRlbXMubWFwKGl0ZW0gPT4gKF9qc3goTm90aWZpY2F0aW9uTW90aW9uSXRlbSwgeyBpdGVtOiBpdGVtLCBjb2xsYXBzZU9uRXhpdDogaXRlbS5jbG9zaW5nICYmIGFjdGl2ZUNvdW50ID4gMCwgb25DbG9zZTogb25DbG9zZSB9LCBTdHJpbmcoaXRlbS5rZXkpKSkpIH0sIHBsYWNlbWVudCkpO1xuICAgICAgICB9KSB9KSk7XG59O1xuY2xhc3MgTm90aWZpY2F0aW9uTWFuYWdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnRpbWVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmtleVNlZWQgPSAwO1xuICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlID0gREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHO1xuICAgICAgICB0aGlzLm9wZW4gPSAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSAoX2EgPSBjb25maWcua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNyZWF0ZUtleSgpO1xuICAgICAgICAgICAgaWYgKCFjYW5Vc2VET00oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgICAgICAgICAgY29uc3QgbmV4dEl0ZW0gPSB0aGlzLmNyZWF0ZVJlY29yZChrZXksIGNvbmZpZywgY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgaWYgKCFjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcywgbmV4dEl0ZW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudEl0ZW0ucGxhY2VtZW50ID09PSBuZXh0SXRlbS5wbGFjZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoaXRlbSA9PiAoaXRlbS5rZXkgPT09IGtleSA/IG5leHRJdGVtIDogaXRlbSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ICE9PSBrZXkpLCBuZXh0SXRlbV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsZWFyUmVtb3ZhbFRpbWVyKGtleSk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZXIobmV4dEl0ZW0pO1xuICAgICAgICAgICAgdGhpcy50cmltT3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRlc3Ryb3kgPSBrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbkNsb3NlKHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5rZXkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShba2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZyA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgIHRoaXMuY29uZmlnU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiAoX2EgPSBjb25maWcucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNvbmZpZ1N0YXRlLnBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogbm9ybWFsaXplRHVyYXRpb24oKF9iID0gY29uZmlnLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uLCB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBtYXhDb3VudDogbm9ybWFsaXplTWF4Q291bnQoKF9jID0gY29uZmlnLm1heENvdW50KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnRyaW1PdmVyZmxvdygpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSA9IChrZXkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShba2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjcmVhdGVLZXkoKSB7XG4gICAgICAgIHRoaXMua2V5U2VlZCArPSAxO1xuICAgICAgICByZXR1cm4gYG5vdGlmaWNhdGlvbi0ke3RoaXMua2V5U2VlZH1gO1xuICAgIH1cbiAgICBjcmVhdGVSZWNvcmQoa2V5LCBjb25maWcsIGN1cnJlbnRJdGVtKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3QgbWVyZ2VkQ29uZmlnID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50SXRlbSksIGNvbmZpZyk7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG1lcmdlZENvbmZpZyksIHsga2V5LCBwbGFjZW1lbnQ6IChfYiA9IChfYSA9IGNvbmZpZy5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGN1cnJlbnRJdGVtID09PSBudWxsIHx8IGN1cnJlbnRJdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdXJyZW50SXRlbS5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuY29uZmlnU3RhdGUucGxhY2VtZW50LCBkdXJhdGlvbjogbm9ybWFsaXplRHVyYXRpb24oKF9kID0gKF9jID0gY29uZmlnLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBjdXJyZW50SXRlbSA9PT0gbnVsbCB8fCBjdXJyZW50SXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudEl0ZW0uZHVyYXRpb24pICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHRoaXMuY29uZmlnU3RhdGUuZHVyYXRpb24sIHRoaXMuY29uZmlnU3RhdGUuZHVyYXRpb24pLCBjbG9zaW5nOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgc3RhcnRUaW1lcihpdGVtKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lcihpdGVtLmtleSk7XG4gICAgICAgIGlmIChpdGVtLmR1cmF0aW9uIDw9IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShbaXRlbS5rZXldKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH0sIGl0ZW0uZHVyYXRpb24gKiAxMDAwKTtcbiAgICAgICAgdGhpcy50aW1lcnMuc2V0KGl0ZW0ua2V5LCB0aW1lb3V0SWQpO1xuICAgIH1cbiAgICBjbGVhclRpbWVyKGtleSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB0aGlzLnRpbWVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIHRoaXMudGltZXJzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICB0cmltT3ZlcmZsb3coKSB7XG4gICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHRoaXMuY29uZmlnU3RhdGUubWF4Q291bnQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBvdmVyZmxvd0tleXMgPSBOT1RJRklDQVRJT05fUExBQ0VNRU5UUy5mbGF0TWFwKHBsYWNlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZW1lbnRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wbGFjZW1lbnQgPT09IHBsYWNlbWVudCAmJiAhaXRlbS5jbG9zaW5nKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93Q291bnQgPSBwbGFjZW1lbnRJdGVtcy5sZW5ndGggLSB0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50O1xuICAgICAgICAgICAgaWYgKG92ZXJmbG93Q291bnQgPD0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICByZXR1cm4gcGxhY2VtZW50SXRlbXMuc2xpY2UoMCwgb3ZlcmZsb3dDb3VudCkubWFwKGl0ZW0gPT4gaXRlbS5rZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvdmVyZmxvd0tleXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmJlZ2luQ2xvc2Uob3ZlcmZsb3dLZXlzKTtcbiAgICB9XG4gICAgY2xlYXJSZW1vdmFsVGltZXIoa2V5KSB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHRoaXMucmVtb3ZhbFRpbWVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgYmVnaW5DbG9zZShrZXlzKSB7XG4gICAgICAgIGlmICgha2V5cy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGtleVNldCA9IG5ldyBTZXQoa2V5cyk7XG4gICAgICAgIGNvbnN0IGNsb3NpbmdLZXlzID0gW107XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICgha2V5U2V0LmhhcyhpdGVtLmtleSkgfHwgaXRlbS5jbG9zaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZXIoaXRlbS5rZXkpO1xuICAgICAgICAgICAgY2xvc2luZ0tleXMucHVzaChpdGVtLmtleSk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpdGVtKSwgeyBjbG9zaW5nOiB0cnVlIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgY2xvc2luZ0tleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICAgICAgY29uc3QgdGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVSZW1vdmUoa2V5KTtcbiAgICAgICAgICAgIH0sIE5PVElGSUNBVElPTl9NT1RJT05fRFVSQVRJT04pO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzLnNldChrZXksIHRpbWVvdXRJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaW5hbGl6ZVJlbW92ZShrZXkpIHtcbiAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICBjb25zdCByZW1vdmVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgICAgICBpZiAoIXJlbW92ZWRJdGVtcy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ICE9PSBrZXkpO1xuICAgICAgICByZW1vdmVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGl0ZW0ub25DbG9zZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICBlbnN1cmVSZW5kZXJlcigpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2FuVXNlRE9NKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJlcilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlcjtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyUHJvbWlzZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlclByb21pc2U7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGdldE5vdGlmaWNhdGlvblJvb3QoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIodGhpcy5jb250YWluZXIpXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVuZGVyZXIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyUHJvbWlzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUNvbnRhaW5lcigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSB0aGlzLmNvbnRhaW5lcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgfVxuICAgIHRlYXJkb3duKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMudGltZXJzLmZvckVhY2goaWQgPT4gd2luZG93LmNsZWFyVGltZW91dChpZCkpO1xuICAgICAgICB0aGlzLnRpbWVycy5jbGVhcigpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuZm9yRWFjaChpZCA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGlkKSk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5jbGVhcigpO1xuICAgICAgICAoX2EgPSB0aGlzLnJlbmRlcmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudW5tb3VudCgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZW1vdmVDb250YWluZXIoKTtcbiAgICB9XG4gICAgcmVuZGVyTm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KE5vdGlmaWNhdGlvblZpZXdwb3J0LCB7IGl0ZW1zOiB0aGlzLml0ZW1zLCBvbkNsb3NlOiB0aGlzLmhhbmRsZUNsb3NlIH0pKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAoIWNhblVzZURPTSgpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVuZGVyZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMucmVuZGVyTm9kZSgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2b2lkIHRoaXMuZW5zdXJlUmVuZGVyZXIoKS50aGVuKHJlbmRlcmVyID0+IHtcbiAgICAgICAgICAgIGlmICghcmVuZGVyZXIpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZW5kZXJlci5yZW5kZXIodGhpcy5yZW5kZXJOb2RlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5jb25zdCBub3RpZmljYXRpb25NYW5hZ2VyID0gbmV3IE5vdGlmaWNhdGlvbk1hbmFnZXIoKTtcbmNvbnN0IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzID0gKHN0YXR1cykgPT4gKGNvbmZpZykgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5vcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKSwgeyBzdGF0dXMgfSkpO1xuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICBvcGVuOiBjb25maWcgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5vcGVuKGNvbmZpZyksXG4gICAgaW5mbzogb3Blbk5vdGlmaWNhdGlvbldpdGhTdGF0dXMoJ2luZm8nKSxcbiAgICBzdWNjZXNzOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnc3VjY2VzcycpLFxuICAgIHdhcm5pbmc6IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCd3YXJuaW5nJyksXG4gICAgZXJyb3I6IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCdlcnJvcicpLFxuICAgIGRlc3Ryb3k6IGtleSA9PiBub3RpZmljYXRpb25NYW5hZ2VyLmRlc3Ryb3koa2V5KSxcbiAgICBjb25maWc6IGNvbmZpZyA9PiBub3RpZmljYXRpb25NYW5hZ2VyLmNvbmZpZyhjb25maWcpLFxufTtcbmV4cG9ydCBkZWZhdWx0IG5vdGlmaWNhdGlvbjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
515
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvblN0YXRpYy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX05vdGlmaWNhdGlvbiIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaW50ZXJmYWNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJOT1RJRklDQVRJT05fUk9PVF9JRCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1BMQUNFTUVOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5UIiwiTnVtYmVyIiwiUE9TSVRJVkVfSU5GSU5JVFkiLCJOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OIiwiREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHIiwicGxhY2VtZW50IiwiZHVyYXRpb24iLCJtYXhDb3VudCIsImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50Iiwibm9ybWFsaXplRHVyYXRpb24iLCJmYWxsYmFjayIsImlzRmluaXRlIiwibm9ybWFsaXplTWF4Q291bnQiLCJNYXRoIiwiZmxvb3IiLCJncm91cE5vdGlmaWNhdGlvbnNCeVBsYWNlbWVudCIsIml0ZW1zIiwiZ3JvdXBlZEl0ZW1zIiwiTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMiLCJmb3JFYWNoIiwiaXRlbSIsInB1c2giLCJnZXROb3RpZmljYXRpb25Sb290IiwiZXhpc3RpbmdSb290IiwiZ2V0RWxlbWVudEJ5SWQiLCJIVE1MRGl2RWxlbWVudCIsInJvb3QiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVOb3RpZmljYXRpb25SZW5kZXJlciIsImNvbnRhaW5lciIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwicmVhY3REb21DbGllbnQiLCJyZWFjdERvbSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInNlbnQiLCJjcmVhdGVSb290IiwiYWJydXB0IiwicmVuZGVyIiwiZWxlbWVudCIsInVubW91bnQiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwiX2EiLCJzdG9wIiwiTm90aWZpY2F0aW9uTW90aW9uSXRlbSIsIl9yZWYiLCJjb2xsYXBzZU9uRXhpdCIsIm9uQ2xvc2UiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImVudGVyZWQiLCJzZXRFbnRlcmVkIiwidXNlRWZmZWN0IiwiY2xvc2luZyIsInVuZGVmaW5lZCIsImZyYW1lIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJrZXkiLCJub3RpZmljYXRpb25Qcm9wcyIsIm1vdGlvbkNsYXNzTmFtZSIsImpvaW5DbHMiLCJfanN4IiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJNZW1vaXplZE5vdGlmaWNhdGlvbiIsImFzc2lnbiIsIk5vdGlmaWNhdGlvblZpZXdwb3J0IiwiX3JlZjIiLCJpdGVtc0J5UGxhY2VtZW50IiwibWFwIiwicGxhY2VtZW50SXRlbXMiLCJhY3RpdmVDb3VudCIsImZpbHRlciIsImNvbmNhdCIsIlN0cmluZyIsIk5vdGlmaWNhdGlvbk1hbmFnZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJyZW5kZXJlciIsInJlbmRlcmVyUHJvbWlzZSIsInRpbWVycyIsIk1hcCIsInJlbW92YWxUaW1lcnMiLCJrZXlTZWVkIiwiY29uZmlnU3RhdGUiLCJvcGVuIiwiY29uZmlnIiwiY3JlYXRlS2V5IiwiY3VycmVudEl0ZW0iLCJmaW5kIiwibmV4dEl0ZW0iLCJjcmVhdGVSZWNvcmQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiY2xlYXJSZW1vdmFsVGltZXIiLCJzdGFydFRpbWVyIiwidHJpbU92ZXJmbG93IiwiZGVzdHJveSIsImJlZ2luQ2xvc2UiLCJfYiIsIl9jIiwiaGFuZGxlQ2xvc2UiLCJfY3JlYXRlQ2xhc3MyIiwiX2QiLCJtZXJnZWRDb25maWciLCJfdGhpczIiLCJjbGVhclRpbWVyIiwidGltZW91dElkIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIl90aGlzMyIsIm92ZXJmbG93S2V5cyIsImZsYXRNYXAiLCJvdmVyZmxvd0NvdW50Iiwic2xpY2UiLCJrZXlzIiwiX3RoaXM0Iiwia2V5U2V0IiwiU2V0IiwiY2xvc2luZ0tleXMiLCJmaW5hbGl6ZVJlbW92ZSIsInJlbW92ZWRJdGVtcyIsImVuc3VyZVJlbmRlcmVyIiwiX2NhbGxlZTIiLCJfdGhpczUiLCJfY29udGV4dDIiLCJyZW1vdmVDb250YWluZXIiLCJyZW1vdmUiLCJ0ZWFyZG93biIsImNsZWFyIiwicmVuZGVyTm9kZSIsIl90aGlzNiIsIm5vdGlmaWNhdGlvbk1hbmFnZXIiLCJvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cyIsInN0YXR1cyIsIm5vdGlmaWNhdGlvbiIsImV4cG9ydHMiLCJpbmZvIiwic3VjY2VzcyIsIndhcm5pbmciLCJlcnJvciIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ3BCQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQUEsT0FBQTtBQVNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUFzRCxTQUFBTSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUgsd0JBQUFHLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxvQkFBQUssUUFBQSxhQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixD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RStDLE1BQU0sRUFBTkE7SUFBTSxDQUFBLENBQUEsQ0FBRztFQUFBO0FBQUE7QUFFOUMsSUFBTUMsWUFBWSxHQUFBQyxPQUFBLENBQUFELFlBQUEsR0FBMEI7RUFDakRqRCxJQUFJLEVBQUUsU0FBTkEsSUFBSUEsQ0FBRUMsTUFBTTtJQUFBLE9BQUk2QyxtQkFBbUIsQ0FBQzlDLElBQUksQ0FBQ0MsTUFBTSxDQUFDO0VBQUE7RUFDaERrRCxJQUFJLEVBQUVKLDBCQUEwQixDQUFDLE1BQU0sQ0FBQztFQUN4Q0ssT0FBTyxFQUFFTCwwQkFBMEIsQ0FBQyxTQUFTLENBQUM7RUFDOUNNLE9BQU8sRUFBRU4sMEJBQTBCLENBQUMsU0FBUyxDQUFDO0VBQzlDTyxLQUFLLEVBQUVQLDBCQUEwQixDQUFDLE9BQU8sQ0FBQztFQUMxQ3BDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFdkMsR0FBRztJQUFBLE9BQUkwRSxtQkFBbUIsQ0FBQ25DLE9BQU8sQ0FBQ3ZDLEdBQUcsQ0FBQztFQUFBO0VBQ2hENkIsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUVBLE9BQU07SUFBQSxPQUFJNkMsbUJBQW1CLENBQUM3QyxNQUFNLENBQUNBLE9BQU0sQ0FBQztFQUFBO0FEM0l0RCxDQzRJQztBQUFDLElBQUFzRCxRQUFBLEdBQUFMLE9BQUEsY0FFYUQsWUFBWSIsImZpbGUiOiJjb21wb25lbnRzL05vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25TdGF0aWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVtb2l6ZWROb3RpZmljYXRpb24gfSBmcm9tICcuL05vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5pbXBvcnQgeyBOT1RJRklDQVRJT05fUExBQ0VNRU5UUyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmNvbnN0IE5PVElGSUNBVElPTl9ST09UX0lEID0gJ29tLWNvbXBvbmVudC11aS1ub3RpZmljYXRpb24tcm9vdCc7XG5jb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9QTEFDRU1FTlQgPSAndG9wUmlnaHQnO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fRFVSQVRJT04gPSA0LjU7XG5jb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9NQVhfQ09VTlQgPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG5jb25zdCBOT1RJRklDQVRJT05fTU9USU9OX0RVUkFUSU9OID0gMjQwO1xuY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHID0ge1xuICAgIHBsYWNlbWVudDogREVGQVVMVF9OT1RJRklDQVRJT05fUExBQ0VNRU5ULFxuICAgIGR1cmF0aW9uOiBERUZBVUxUX05PVElGSUNBVElPTl9EVVJBVElPTixcbiAgICBtYXhDb3VudDogREVGQVVMVF9OT1RJRklDQVRJT05fTUFYX0NPVU5ULFxufTtcbmNvbnN0IGNhblVzZURPTSA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG5jb25zdCBub3JtYWxpemVEdXJhdGlvbiA9ICh2YWx1ZSwgZmFsbGJhY2spID0+IHtcbiAgICBpZiAodmFsdWUgPD0gMClcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IGZhbGxiYWNrO1xufTtcbmNvbnN0IG5vcm1hbGl6ZU1heENvdW50ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IHZhbHVlIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIERFRkFVTFRfTk9USUZJQ0FUSU9OX01BWF9DT1VOVDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpO1xufTtcbmNvbnN0IGdyb3VwTm90aWZpY2F0aW9uc0J5UGxhY2VtZW50ID0gKGl0ZW1zKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZEl0ZW1zID0ge307XG4gICAgTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMuZm9yRWFjaChwbGFjZW1lbnQgPT4ge1xuICAgICAgICBncm91cGVkSXRlbXNbcGxhY2VtZW50XSA9IFtdO1xuICAgIH0pO1xuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGdyb3VwZWRJdGVtc1tpdGVtLnBsYWNlbWVudF0ucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZ3JvdXBlZEl0ZW1zO1xufTtcbmNvbnN0IGdldE5vdGlmaWNhdGlvblJvb3QgPSAoKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdSb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoTk9USUZJQ0FUSU9OX1JPT1RfSUQpO1xuICAgIGlmIChleGlzdGluZ1Jvb3QgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdSb290O1xuICAgIH1cbiAgICBjb25zdCByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgcm9vdC5pZCA9IE5PVElGSUNBVElPTl9ST09UX0lEO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7XG4gICAgcmV0dXJuIHJvb3Q7XG59O1xuY29uc3QgY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIgPSAoY29udGFpbmVyKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZWFjdERvbUNsaWVudCA9IHlpZWxkIGltcG9ydCgncmVhY3QtZG9tL2NsaWVudCcpO1xuICAgICAgICBjb25zdCByb290ID0gcmVhY3REb21DbGllbnQuY3JlYXRlUm9vdChjb250YWluZXIpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVuZGVyOiBlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICByb290LnJlbmRlcihlbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bm1vdW50OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdC51bm1vdW50KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgLy8gRmFsbGJhY2sgZm9yIFJlYWN0IDwgMTggd2hlcmUgcmVhY3QtZG9tL2NsaWVudCBpcyB1bmF2YWlsYWJsZVxuICAgICAgICBjb25zdCByZWFjdERvbSA9IHlpZWxkIGltcG9ydCgncmVhY3QtZG9tJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVhY3REb20ucmVuZGVyICE9PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICB0eXBlb2YgcmVhY3REb20udW5tb3VudENvbXBvbmVudEF0Tm9kZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlbmRlcjogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIChfYSA9IHJlYWN0RG9tLnJlbmRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVhY3REb20sIGVsZW1lbnQsIGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5tb3VudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAoX2EgPSByZWFjdERvbS51bm1vdW50Q29tcG9uZW50QXROb2RlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChyZWFjdERvbSwgY29udGFpbmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufSk7XG5jb25zdCBOb3RpZmljYXRpb25Nb3Rpb25JdGVtID0gKHsgaXRlbSwgY29sbGFwc2VPbkV4aXQsIG9uQ2xvc2UgfSkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKCdub3RpZmljYXRpb24nKTtcbiAgICBjb25zdCBbZW50ZXJlZCwgc2V0RW50ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uY2xvc2luZyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBzZXRFbnRlcmVkKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW2l0ZW0uY2xvc2luZywgaXRlbS5rZXldKTtcbiAgICBjb25zdCB7IGtleSwgZHVyYXRpb24sIHBsYWNlbWVudCwgY2xvc2luZyB9ID0gaXRlbSwgbm90aWZpY2F0aW9uUHJvcHMgPSBfX3Jlc3QoaXRlbSwgW1wia2V5XCIsIFwiZHVyYXRpb25cIiwgXCJwbGFjZW1lbnRcIiwgXCJjbG9zaW5nXCJdKTtcbiAgICBjb25zdCBtb3Rpb25DbGFzc05hbWUgPSBjbG9zaW5nXG4gICAgICAgID8gam9pbkNscyhjbGFzc2VzKCdpdGVtLWV4aXQnKSwgY29sbGFwc2VPbkV4aXQgPyBjbGFzc2VzKCdpdGVtLWV4aXQtY29sbGFwc2UnKSA6ICcnKVxuICAgICAgICA6IGVudGVyZWRcbiAgICAgICAgICAgID8gY2xhc3NlcygnaXRlbS1hY3RpdmUnKVxuICAgICAgICAgICAgOiBjbGFzc2VzKCdpdGVtLWVudGVyJyk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ2l0ZW0nKSwgbW90aW9uQ2xhc3NOYW1lKSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taW5uZXInKSwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWROb3RpZmljYXRpb24sIE9iamVjdC5hc3NpZ24oe30sIG5vdGlmaWNhdGlvblByb3BzLCB7IG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZShrZXkpO1xuICAgICAgICAgICAgICAgIH0gfSkpIH0pIH0pKTtcbn07XG5jb25zdCBOb3RpZmljYXRpb25WaWV3cG9ydCA9ICh7IGl0ZW1zLCBvbkNsb3NlIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcygnbm90aWZpY2F0aW9uJyk7XG4gICAgY29uc3QgaXRlbXNCeVBsYWNlbWVudCA9IGdyb3VwTm90aWZpY2F0aW9uc0J5UGxhY2VtZW50KGl0ZW1zKTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ZpZXdwb3J0JyksIFwiYXJpYS1saXZlXCI6IFwicG9saXRlXCIsIFwiYXJpYS1hdG9taWNcIjogXCJmYWxzZVwiLCBjaGlsZHJlbjogTk9USUZJQ0FUSU9OX1BMQUNFTUVOVFMubWFwKHBsYWNlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZW1lbnRJdGVtcyA9IGl0ZW1zQnlQbGFjZW1lbnRbcGxhY2VtZW50XTtcbiAgICAgICAgICAgIGlmICghcGxhY2VtZW50SXRlbXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlQ291bnQgPSBwbGFjZW1lbnRJdGVtcy5maWx0ZXIoaSA9PiAhaS5jbG9zaW5nKS5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3Nlcygnc3RhY2snKSwgY2xhc3Nlcyhgc3RhY2stJHtwbGFjZW1lbnR9YCkpLCBjaGlsZHJlbjogcGxhY2VtZW50SXRlbXMubWFwKGl0ZW0gPT4gKF9qc3goTm90aWZpY2F0aW9uTW90aW9uSXRlbSwgeyBpdGVtOiBpdGVtLCBjb2xsYXBzZU9uRXhpdDogaXRlbS5jbG9zaW5nICYmIGFjdGl2ZUNvdW50ID4gMCwgb25DbG9zZTogb25DbG9zZSB9LCBTdHJpbmcoaXRlbS5rZXkpKSkpIH0sIHBsYWNlbWVudCkpO1xuICAgICAgICB9KSB9KSk7XG59O1xuY2xhc3MgTm90aWZpY2F0aW9uTWFuYWdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG51bGw7XG4gICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnRpbWVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmtleVNlZWQgPSAwO1xuICAgICAgICB0aGlzLmNvbmZpZ1N0YXRlID0gREVGQVVMVF9OT1RJRklDQVRJT05fQ09ORklHO1xuICAgICAgICB0aGlzLm9wZW4gPSAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSAoX2EgPSBjb25maWcua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNyZWF0ZUtleSgpO1xuICAgICAgICAgICAgaWYgKCFjYW5Vc2VET00oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaXRlbXMuZmluZChpdGVtID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgICAgICAgICAgY29uc3QgbmV4dEl0ZW0gPSB0aGlzLmNyZWF0ZVJlY29yZChrZXksIGNvbmZpZywgY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgaWYgKCFjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcywgbmV4dEl0ZW1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudEl0ZW0ucGxhY2VtZW50ID09PSBuZXh0SXRlbS5wbGFjZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5tYXAoaXRlbSA9PiAoaXRlbS5rZXkgPT09IGtleSA/IG5leHRJdGVtIDogaXRlbSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ICE9PSBrZXkpLCBuZXh0SXRlbV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsZWFyUmVtb3ZhbFRpbWVyKGtleSk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZXIobmV4dEl0ZW0pO1xuICAgICAgICAgICAgdGhpcy50cmltT3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRlc3Ryb3kgPSBrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWdpbkNsb3NlKHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5rZXkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShba2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZyA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgICAgIHRoaXMuY29uZmlnU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiAoX2EgPSBjb25maWcucGxhY2VtZW50KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNvbmZpZ1N0YXRlLnBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogbm9ybWFsaXplRHVyYXRpb24oKF9iID0gY29uZmlnLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uLCB0aGlzLmNvbmZpZ1N0YXRlLmR1cmF0aW9uKSxcbiAgICAgICAgICAgICAgICBtYXhDb3VudDogbm9ybWFsaXplTWF4Q291bnQoKF9jID0gY29uZmlnLm1heENvdW50KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiB0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnRyaW1PdmVyZmxvdygpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVDbG9zZSA9IChrZXkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShba2V5XSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBjcmVhdGVLZXkoKSB7XG4gICAgICAgIHRoaXMua2V5U2VlZCArPSAxO1xuICAgICAgICByZXR1cm4gYG5vdGlmaWNhdGlvbi0ke3RoaXMua2V5U2VlZH1gO1xuICAgIH1cbiAgICBjcmVhdGVSZWNvcmQoa2V5LCBjb25maWcsIGN1cnJlbnRJdGVtKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgY29uc3QgbWVyZ2VkQ29uZmlnID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50SXRlbSksIGNvbmZpZyk7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG1lcmdlZENvbmZpZyksIHsga2V5LCBwbGFjZW1lbnQ6IChfYiA9IChfYSA9IGNvbmZpZy5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGN1cnJlbnRJdGVtID09PSBudWxsIHx8IGN1cnJlbnRJdGVtID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdXJyZW50SXRlbS5wbGFjZW1lbnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuY29uZmlnU3RhdGUucGxhY2VtZW50LCBkdXJhdGlvbjogbm9ybWFsaXplRHVyYXRpb24oKF9kID0gKF9jID0gY29uZmlnLmR1cmF0aW9uKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBjdXJyZW50SXRlbSA9PT0gbnVsbCB8fCBjdXJyZW50SXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudEl0ZW0uZHVyYXRpb24pICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHRoaXMuY29uZmlnU3RhdGUuZHVyYXRpb24sIHRoaXMuY29uZmlnU3RhdGUuZHVyYXRpb24pLCBjbG9zaW5nOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgc3RhcnRUaW1lcihpdGVtKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lcihpdGVtLmtleSk7XG4gICAgICAgIGlmIChpdGVtLmR1cmF0aW9uIDw9IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmVnaW5DbG9zZShbaXRlbS5rZXldKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgIH0sIGl0ZW0uZHVyYXRpb24gKiAxMDAwKTtcbiAgICAgICAgdGhpcy50aW1lcnMuc2V0KGl0ZW0ua2V5LCB0aW1lb3V0SWQpO1xuICAgIH1cbiAgICBjbGVhclRpbWVyKGtleSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0SWQgPSB0aGlzLnRpbWVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIHRoaXMudGltZXJzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICB0cmltT3ZlcmZsb3coKSB7XG4gICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHRoaXMuY29uZmlnU3RhdGUubWF4Q291bnQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBvdmVyZmxvd0tleXMgPSBOT1RJRklDQVRJT05fUExBQ0VNRU5UUy5mbGF0TWFwKHBsYWNlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZW1lbnRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wbGFjZW1lbnQgPT09IHBsYWNlbWVudCAmJiAhaXRlbS5jbG9zaW5nKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93Q291bnQgPSBwbGFjZW1lbnRJdGVtcy5sZW5ndGggLSB0aGlzLmNvbmZpZ1N0YXRlLm1heENvdW50O1xuICAgICAgICAgICAgaWYgKG92ZXJmbG93Q291bnQgPD0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICByZXR1cm4gcGxhY2VtZW50SXRlbXMuc2xpY2UoMCwgb3ZlcmZsb3dDb3VudCkubWFwKGl0ZW0gPT4gaXRlbS5rZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvdmVyZmxvd0tleXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmJlZ2luQ2xvc2Uob3ZlcmZsb3dLZXlzKTtcbiAgICB9XG4gICAgY2xlYXJSZW1vdmFsVGltZXIoa2V5KSB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHRoaXMucmVtb3ZhbFRpbWVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHRpbWVvdXRJZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgYmVnaW5DbG9zZShrZXlzKSB7XG4gICAgICAgIGlmICgha2V5cy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGtleVNldCA9IG5ldyBTZXQoa2V5cyk7XG4gICAgICAgIGNvbnN0IGNsb3NpbmdLZXlzID0gW107XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICgha2V5U2V0LmhhcyhpdGVtLmtleSkgfHwgaXRlbS5jbG9zaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZXIoaXRlbS5rZXkpO1xuICAgICAgICAgICAgY2xvc2luZ0tleXMucHVzaChpdGVtLmtleSk7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpdGVtKSwgeyBjbG9zaW5nOiB0cnVlIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgY2xvc2luZ0tleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICAgICAgY29uc3QgdGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVSZW1vdmUoa2V5KTtcbiAgICAgICAgICAgIH0sIE5PVElGSUNBVElPTl9NT1RJT05fRFVSQVRJT04pO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmFsVGltZXJzLnNldChrZXksIHRpbWVvdXRJZCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaW5hbGl6ZVJlbW92ZShrZXkpIHtcbiAgICAgICAgdGhpcy5jbGVhclJlbW92YWxUaW1lcihrZXkpO1xuICAgICAgICBjb25zdCByZW1vdmVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgICAgICBpZiAoIXJlbW92ZWRJdGVtcy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ua2V5ICE9PSBrZXkpO1xuICAgICAgICByZW1vdmVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGl0ZW0ub25DbG9zZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICBlbnN1cmVSZW5kZXJlcigpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2FuVXNlRE9NKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJlcilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlcjtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyUHJvbWlzZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlclByb21pc2U7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGdldE5vdGlmaWNhdGlvblJvb3QoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXJQcm9taXNlID0gY3JlYXRlTm90aWZpY2F0aW9uUmVuZGVyZXIodGhpcy5jb250YWluZXIpXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVuZGVyZXIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyUHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlclByb21pc2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyUHJvbWlzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUNvbnRhaW5lcigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSB0aGlzLmNvbnRhaW5lcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XG4gICAgfVxuICAgIHRlYXJkb3duKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMudGltZXJzLmZvckVhY2goaWQgPT4gd2luZG93LmNsZWFyVGltZW91dChpZCkpO1xuICAgICAgICB0aGlzLnRpbWVycy5jbGVhcigpO1xuICAgICAgICB0aGlzLnJlbW92YWxUaW1lcnMuZm9yRWFjaChpZCA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGlkKSk7XG4gICAgICAgIHRoaXMucmVtb3ZhbFRpbWVycy5jbGVhcigpO1xuICAgICAgICAoX2EgPSB0aGlzLnJlbmRlcmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudW5tb3VudCgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZW1vdmVDb250YWluZXIoKTtcbiAgICB9XG4gICAgcmVuZGVyTm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KE5vdGlmaWNhdGlvblZpZXdwb3J0LCB7IGl0ZW1zOiB0aGlzLml0ZW1zLCBvbkNsb3NlOiB0aGlzLmhhbmRsZUNsb3NlIH0pKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAoIWNhblVzZURPTSgpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVuZGVyZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMucmVuZGVyTm9kZSgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2b2lkIHRoaXMuZW5zdXJlUmVuZGVyZXIoKS50aGVuKHJlbmRlcmVyID0+IHtcbiAgICAgICAgICAgIGlmICghcmVuZGVyZXIpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZW5kZXJlci5yZW5kZXIodGhpcy5yZW5kZXJOb2RlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5jb25zdCBub3RpZmljYXRpb25NYW5hZ2VyID0gbmV3IE5vdGlmaWNhdGlvbk1hbmFnZXIoKTtcbmNvbnN0IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzID0gKHN0YXR1cykgPT4gKGNvbmZpZykgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5vcGVuKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKSwgeyBzdGF0dXMgfSkpO1xuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICBvcGVuOiBjb25maWcgPT4gbm90aWZpY2F0aW9uTWFuYWdlci5vcGVuKGNvbmZpZyksXG4gICAgaW5mbzogb3Blbk5vdGlmaWNhdGlvbldpdGhTdGF0dXMoJ2luZm8nKSxcbiAgICBzdWNjZXNzOiBvcGVuTm90aWZpY2F0aW9uV2l0aFN0YXR1cygnc3VjY2VzcycpLFxuICAgIHdhcm5pbmc6IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCd3YXJuaW5nJyksXG4gICAgZXJyb3I6IG9wZW5Ob3RpZmljYXRpb25XaXRoU3RhdHVzKCdlcnJvcicpLFxuICAgIGRlc3Ryb3k6IGtleSA9PiBub3RpZmljYXRpb25NYW5hZ2VyLmRlc3Ryb3koa2V5KSxcbiAgICBjb25maWc6IGNvbmZpZyA9PiBub3RpZmljYXRpb25NYW5hZ2VyLmNvbmZpZyhjb25maWcpLFxufTtcbmV4cG9ydCBkZWZhdWx0IG5vdGlmaWNhdGlvbjsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1 +1,170 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves the spacing value for a given token key.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} $key - The spacing token key (e.g., '100', '200').
|
|
5
|
+
* @return {length|null} The computed spacing value or null if the key is invalid.
|
|
6
|
+
* @example
|
|
7
|
+
* .element {
|
|
8
|
+
* padding: om-spacing-token('200'); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Computes the spacing value based on a token key or a direct length value.
|
|
13
|
+
*
|
|
14
|
+
* @param {string|length} $value - The spacing token key (e.g., '100') or a direct length value (e.g., '16px').
|
|
15
|
+
* @return {length} The computed spacing value.
|
|
16
|
+
* @example
|
|
17
|
+
* .element {
|
|
18
|
+
* margin: om-spacing-value('300'); // Returns 12px if $om-sys-spacing-unit is 4px
|
|
19
|
+
* padding: om-spacing-value(16px); // Returns 16px
|
|
20
|
+
* gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
.om-component-ui-notification {
|
|
24
|
+
display: flex;
|
|
25
|
+
gap: var(--om-spacing-200, 8px);
|
|
26
|
+
align-items: flex-start;
|
|
27
|
+
padding: var(--om-spacing-300, 12px);
|
|
28
|
+
background-color: var(--om-bg-default-secondary, #f8f8f8);
|
|
29
|
+
border-radius: var(--om-radius-300, 12px);
|
|
30
|
+
box-shadow: var(--om-shadow-200, 0 10px 22px rgba(0, 0, 0, 0.1));
|
|
31
|
+
}
|
|
32
|
+
.om-component-ui-notification-content-wrapper {
|
|
33
|
+
display: flex;
|
|
34
|
+
flex: 1 0 0;
|
|
35
|
+
gap: var(--om-spacing-300, 12px);
|
|
36
|
+
align-items: flex-start;
|
|
37
|
+
min-width: 0;
|
|
38
|
+
}
|
|
39
|
+
.om-component-ui-notification-icon-wrapper {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-shrink: 0;
|
|
42
|
+
align-items: center;
|
|
43
|
+
}
|
|
44
|
+
.om-component-ui-notification-icon {
|
|
45
|
+
display: inline-flex;
|
|
46
|
+
flex-shrink: 0;
|
|
47
|
+
align-items: center;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
}
|
|
50
|
+
.om-component-ui-notification-content {
|
|
51
|
+
display: flex;
|
|
52
|
+
flex: 1 0 0;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
gap: var(--om-spacing-100, 4px);
|
|
55
|
+
align-items: flex-start;
|
|
56
|
+
min-width: 0;
|
|
57
|
+
padding-top: var(--om-spacing-200, 8px);
|
|
58
|
+
}
|
|
59
|
+
.om-component-ui-notification-title {
|
|
60
|
+
display: block;
|
|
61
|
+
}
|
|
62
|
+
.om-component-ui-notification-body {
|
|
63
|
+
display: block;
|
|
64
|
+
}
|
|
65
|
+
.om-component-ui-notification-link {
|
|
66
|
+
font-size: var(--om-body-md-font-size);
|
|
67
|
+
font-family: var(--om-body-md-font-family);
|
|
68
|
+
line-height: var(--om-body-md-line-height);
|
|
69
|
+
letter-spacing: var(--om-body-md-letter-spacing);
|
|
70
|
+
font-weight: var(--om-body-md-strong-font-weight);
|
|
71
|
+
padding: 0;
|
|
72
|
+
color: var(--om-text-brand, #073387);
|
|
73
|
+
text-decoration: underline;
|
|
74
|
+
background: none;
|
|
75
|
+
border: none;
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
}
|
|
78
|
+
.om-component-ui-notification-close {
|
|
79
|
+
display: inline-flex;
|
|
80
|
+
flex-shrink: 0;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
padding: 0;
|
|
84
|
+
color: var(--om-icon-neutral-secondary, #9fa3a3);
|
|
85
|
+
background: none;
|
|
86
|
+
border: none;
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
}
|
|
89
|
+
.om-component-ui-notification-close .om-component-ui-icons-wrapper {
|
|
90
|
+
--icon-color: currentcolor;
|
|
91
|
+
}
|
|
92
|
+
.om-component-ui-notification-close:hover {
|
|
93
|
+
color: var(--om-icon-neutral, #404042);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.om-component-ui-notification-viewport {
|
|
97
|
+
position: fixed;
|
|
98
|
+
inset: 0;
|
|
99
|
+
z-index: 1100;
|
|
100
|
+
pointer-events: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.om-component-ui-notification-stack {
|
|
104
|
+
position: fixed;
|
|
105
|
+
display: flex;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
--notification-motion-offset: calc(100% + var(--om-spacing-300, 12px));
|
|
108
|
+
width: 375px;
|
|
109
|
+
max-width: calc(100vw - var(--om-spacing-400, 16px) * 2);
|
|
110
|
+
pointer-events: none;
|
|
111
|
+
}
|
|
112
|
+
.om-component-ui-notification-stack-topLeft {
|
|
113
|
+
top: var(--om-spacing-400, 16px);
|
|
114
|
+
left: var(--om-spacing-400, 16px);
|
|
115
|
+
--notification-motion-offset: calc(-100% - var(--om-spacing-300, 12px));
|
|
116
|
+
}
|
|
117
|
+
.om-component-ui-notification-stack-topRight {
|
|
118
|
+
top: var(--om-spacing-400, 16px);
|
|
119
|
+
right: var(--om-spacing-400, 16px);
|
|
120
|
+
}
|
|
121
|
+
.om-component-ui-notification-stack-bottomLeft {
|
|
122
|
+
bottom: var(--om-spacing-400, 16px);
|
|
123
|
+
left: var(--om-spacing-400, 16px);
|
|
124
|
+
--notification-motion-offset: calc(-100% - var(--om-spacing-300, 12px));
|
|
125
|
+
}
|
|
126
|
+
.om-component-ui-notification-stack-bottomRight {
|
|
127
|
+
right: var(--om-spacing-400, 16px);
|
|
128
|
+
bottom: var(--om-spacing-400, 16px);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.om-component-ui-notification-item {
|
|
132
|
+
display: grid;
|
|
133
|
+
grid-template-rows: 1fr;
|
|
134
|
+
transition: grid-template-rows 240ms ease, margin-top 240ms ease;
|
|
135
|
+
will-change: grid-template-rows, margin-top;
|
|
136
|
+
}
|
|
137
|
+
.om-component-ui-notification-item + .om-component-ui-notification-item {
|
|
138
|
+
margin-top: var(--om-spacing-300, 12px);
|
|
139
|
+
}
|
|
140
|
+
.om-component-ui-notification-item-inner {
|
|
141
|
+
min-height: 0;
|
|
142
|
+
overflow: visible;
|
|
143
|
+
transform: translate3d(0, 0, 0);
|
|
144
|
+
opacity: 1;
|
|
145
|
+
transition: transform 240ms ease, opacity 240ms ease;
|
|
146
|
+
pointer-events: auto;
|
|
147
|
+
will-change: transform, opacity;
|
|
148
|
+
}
|
|
149
|
+
.om-component-ui-notification-item-enter, .om-component-ui-notification-item-exit + .om-component-ui-notification-item {
|
|
150
|
+
margin-top: 0;
|
|
151
|
+
}
|
|
152
|
+
.om-component-ui-notification-item-active {
|
|
153
|
+
grid-template-rows: 1fr;
|
|
154
|
+
}
|
|
155
|
+
.om-component-ui-notification-item-exit .om-component-ui-notification-item-inner {
|
|
156
|
+
pointer-events: none;
|
|
157
|
+
}
|
|
158
|
+
.om-component-ui-notification-item-exit-collapse {
|
|
159
|
+
grid-template-rows: 0fr;
|
|
160
|
+
}
|
|
161
|
+
.om-component-ui-notification-item-exit-collapse .om-component-ui-notification-item-inner {
|
|
162
|
+
overflow: hidden;
|
|
163
|
+
}
|
|
164
|
+
.om-component-ui-notification-item-enter .om-component-ui-notification-item-inner, .om-component-ui-notification-item-exit .om-component-ui-notification-item-inner {
|
|
165
|
+
transform: translate3d(var(--notification-motion-offset), 0, 0);
|
|
166
|
+
opacity: 0;
|
|
167
|
+
}
|
|
168
|
+
.om-component-ui-notification-item-active .om-component-ui-notification-item-inner {
|
|
169
|
+
transform: translate3d(0, 0, 0);
|
|
170
|
+
}
|
|
@@ -1 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves the spacing value for a given token key.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} $key - The spacing token key (e.g., '100', '200').
|
|
5
|
+
* @return {length|null} The computed spacing value or null if the key is invalid.
|
|
6
|
+
* @example
|
|
7
|
+
* .element {
|
|
8
|
+
* padding: om-spacing-token('200'); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Computes the spacing value based on a token key or a direct length value.
|
|
13
|
+
*
|
|
14
|
+
* @param {string|length} $value - The spacing token key (e.g., '100') or a direct length value (e.g., '16px').
|
|
15
|
+
* @return {length} The computed spacing value.
|
|
16
|
+
* @example
|
|
17
|
+
* .element {
|
|
18
|
+
* margin: om-spacing-value('300'); // Returns 12px if $om-sys-spacing-unit is 4px
|
|
19
|
+
* padding: om-spacing-value(16px); // Returns 16px
|
|
20
|
+
* gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
.om-component-ui-pagination {
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
}
|
|
27
|
+
.om-component-ui-pagination-list {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
gap: var(--om-spacing-200, 8px);
|
|
30
|
+
align-items: center;
|
|
31
|
+
margin: 0;
|
|
32
|
+
padding: 0;
|
|
33
|
+
list-style: none;
|
|
34
|
+
}
|
|
35
|
+
.om-component-ui-pagination-item {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
align-items: center;
|
|
39
|
+
}
|
|
40
|
+
.om-component-ui-pagination-button, .om-component-ui-pagination-ellipsis {
|
|
41
|
+
display: inline-flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
min-height: calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px));
|
|
45
|
+
padding: var(--om-spacing-200, 8px) var(--om-spacing-300, 12px);
|
|
46
|
+
color: var(--om-text-default, #131313);
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
background-color: transparent;
|
|
49
|
+
border: none;
|
|
50
|
+
border-radius: var(--om-radius-200, 8px);
|
|
51
|
+
font-variant-numeric: tabular-nums;
|
|
52
|
+
}
|
|
53
|
+
.om-component-ui-pagination-button {
|
|
54
|
+
gap: var(--om-spacing-200, 8px);
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
}
|
|
57
|
+
.om-component-ui-pagination-button:hover:not(:disabled) {
|
|
58
|
+
background-color: var(--om-bg-default-hover, #f0f0f0);
|
|
59
|
+
}
|
|
60
|
+
.om-component-ui-pagination-button:focus-visible {
|
|
61
|
+
outline: none;
|
|
62
|
+
box-shadow: 0 0 0 2px var(--om-border-brand, #073387);
|
|
63
|
+
}
|
|
64
|
+
.om-component-ui-pagination-button:disabled, .om-component-ui-pagination-button-disabled {
|
|
65
|
+
color: var(--om-text-disabled, #bbbdc1);
|
|
66
|
+
cursor: default;
|
|
67
|
+
pointer-events: none;
|
|
68
|
+
}
|
|
69
|
+
.om-component-ui-pagination-button-page {
|
|
70
|
+
min-width: max(calc(var(--om-spacing-400, 16px) + var(--om-spacing-500, 20px)), 2ch + var(--om-spacing-300, 12px) + var(--om-spacing-300, 12px));
|
|
71
|
+
}
|
|
72
|
+
.om-component-ui-pagination-button-current {
|
|
73
|
+
color: var(--om-text-on-neutral, #fff);
|
|
74
|
+
background-color: var(--om-bg-brand, #073387);
|
|
75
|
+
}
|
|
76
|
+
.om-component-ui-pagination-button-current:hover:not(:disabled) {
|
|
77
|
+
background-color: var(--om-bg-brand-hover, #052561);
|
|
78
|
+
}
|
|
79
|
+
.om-component-ui-pagination-icon {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
flex-shrink: 0;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
}
|
|
85
|
+
.om-component-ui-pagination-ellipsis {
|
|
86
|
+
padding-right: var(--om-spacing-400, 16px);
|
|
87
|
+
padding-left: var(--om-spacing-400, 16px);
|
|
88
|
+
cursor: default;
|
|
89
|
+
}
|