easy-drag-and-drop 1.3.178 → 1.3.179
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/example.js +48 -32
- package/lib/example/view/div/drag.js +182 -0
- package/lib/example/view/div/drop.js +251 -0
- package/lib/mixins/drag.js +21 -11
- package/lib/mixins/drop.js +22 -12
- package/package.json +1 -1
- package/src/example/view/div/drag.js +54 -0
- package/src/example/view/div/drop.js +78 -0
- package/src/mixins/drag.js +25 -11
- package/src/mixins/drop.js +26 -12
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
|
|
12
|
+
var _easy = require("easy");
|
|
13
|
+
var _index = require("../../../index");
|
|
14
|
+
var _style = /*#__PURE__*/ _interop_require_default(require("../../style"));
|
|
15
|
+
function _assert_this_initialized(self) {
|
|
16
|
+
if (self === void 0) {
|
|
17
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
18
|
+
}
|
|
19
|
+
return self;
|
|
20
|
+
}
|
|
21
|
+
function _class_call_check(instance, Constructor) {
|
|
22
|
+
if (!(instance instanceof Constructor)) {
|
|
23
|
+
throw new TypeError("Cannot call a class as a function");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _defineProperties(target, props) {
|
|
27
|
+
for(var i = 0; i < props.length; i++){
|
|
28
|
+
var descriptor = props[i];
|
|
29
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
30
|
+
descriptor.configurable = true;
|
|
31
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
32
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
36
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
37
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
38
|
+
return Constructor;
|
|
39
|
+
}
|
|
40
|
+
function _define_property(obj, key, value) {
|
|
41
|
+
if (key in obj) {
|
|
42
|
+
Object.defineProperty(obj, key, {
|
|
43
|
+
value: value,
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
obj[key] = value;
|
|
50
|
+
}
|
|
51
|
+
return obj;
|
|
52
|
+
}
|
|
53
|
+
function _get_prototype_of(o) {
|
|
54
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
55
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
56
|
+
};
|
|
57
|
+
return _get_prototype_of(o);
|
|
58
|
+
}
|
|
59
|
+
function _inherits(subClass, superClass) {
|
|
60
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
61
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
62
|
+
}
|
|
63
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
64
|
+
constructor: {
|
|
65
|
+
value: subClass,
|
|
66
|
+
writable: true,
|
|
67
|
+
configurable: true
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
71
|
+
}
|
|
72
|
+
function _interop_require_default(obj) {
|
|
73
|
+
return obj && obj.__esModule ? obj : {
|
|
74
|
+
default: obj
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function _possible_constructor_return(self, call) {
|
|
78
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
79
|
+
return call;
|
|
80
|
+
}
|
|
81
|
+
return _assert_this_initialized(self);
|
|
82
|
+
}
|
|
83
|
+
function _set_prototype_of(o, p) {
|
|
84
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
85
|
+
o.__proto__ = p;
|
|
86
|
+
return o;
|
|
87
|
+
};
|
|
88
|
+
return _set_prototype_of(o, p);
|
|
89
|
+
}
|
|
90
|
+
function _tagged_template_literal(strings, raw) {
|
|
91
|
+
if (!raw) {
|
|
92
|
+
raw = strings.slice(0);
|
|
93
|
+
}
|
|
94
|
+
return Object.freeze(Object.defineProperties(strings, {
|
|
95
|
+
raw: {
|
|
96
|
+
value: Object.freeze(raw)
|
|
97
|
+
}
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
function _type_of(obj) {
|
|
101
|
+
"@swc/helpers - typeof";
|
|
102
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
103
|
+
}
|
|
104
|
+
function _is_native_reflect_construct() {
|
|
105
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
106
|
+
if (Reflect.construct.sham) return false;
|
|
107
|
+
if (typeof Proxy === "function") return true;
|
|
108
|
+
try {
|
|
109
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
110
|
+
return true;
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function _create_super(Derived) {
|
|
116
|
+
var hasNativeReflectConstruct = _is_native_reflect_construct();
|
|
117
|
+
return function _createSuperInternal() {
|
|
118
|
+
var Super = _get_prototype_of(Derived), result;
|
|
119
|
+
if (hasNativeReflectConstruct) {
|
|
120
|
+
var NewTarget = _get_prototype_of(this).constructor;
|
|
121
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
122
|
+
} else {
|
|
123
|
+
result = Super.apply(this, arguments);
|
|
124
|
+
}
|
|
125
|
+
return _possible_constructor_return(this, result);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function _templateObject() {
|
|
129
|
+
var data = _tagged_template_literal([
|
|
130
|
+
"\n\n ",
|
|
131
|
+
"\n \n background-color: red;\n \n .dragging {\n z-index: 1;\n position: fixed;\n pointer-events: none;\n }\n\n"
|
|
132
|
+
]);
|
|
133
|
+
_templateObject = function _templateObject() {
|
|
134
|
+
return data;
|
|
135
|
+
};
|
|
136
|
+
return data;
|
|
137
|
+
}
|
|
138
|
+
var DBLCLICK_EVENT_TYPE = _easy.eventTypes.DBLCLICK_EVENT_TYPE;
|
|
139
|
+
var DragDiv = /*#__PURE__*/ function(DragElement) {
|
|
140
|
+
_inherits(DragDiv, DragElement);
|
|
141
|
+
var _super = _create_super(DragDiv);
|
|
142
|
+
function DragDiv() {
|
|
143
|
+
_class_call_check(this, DragDiv);
|
|
144
|
+
var _this;
|
|
145
|
+
_this = _super.apply(this, arguments);
|
|
146
|
+
_define_property(_assert_this_initialized(_this), "doubleClickHandler", function(event, element) {
|
|
147
|
+
console.log("double click!");
|
|
148
|
+
});
|
|
149
|
+
return _this;
|
|
150
|
+
}
|
|
151
|
+
_create_class(DragDiv, [
|
|
152
|
+
{
|
|
153
|
+
key: "didMount",
|
|
154
|
+
value: function didMount() {
|
|
155
|
+
this.enableDrag();
|
|
156
|
+
this.onEvent(DBLCLICK_EVENT_TYPE, this.doubleClickHandler, this);
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "willUnmount",
|
|
161
|
+
value: function willUnmount() {
|
|
162
|
+
this.offEvent(DBLCLICK_EVENT_TYPE, this.doubleClickHandler, this);
|
|
163
|
+
this.disableDrag();
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: "childElements",
|
|
168
|
+
value: function childElements() {
|
|
169
|
+
return "DRAG ELEMENT";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
]);
|
|
173
|
+
return DragDiv;
|
|
174
|
+
}(_index.DragElement);
|
|
175
|
+
_define_property(DragDiv, "tagName", "div");
|
|
176
|
+
_define_property(DragDiv, "defaultProperties", {
|
|
177
|
+
className: "drag"
|
|
178
|
+
});
|
|
179
|
+
Object.assign(DragDiv.prototype, _index.dragMixins);
|
|
180
|
+
var _default = (0, _easywithstyle.default)(DragDiv)(_templateObject(), _style.default);
|
|
181
|
+
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZGl2L2RyYWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiO1xuXG5pbXBvcnQgeyBldmVudFR5cGVzIH0gZnJvbSBcImVhc3lcIjtcbmltcG9ydCB7IGRyYWdNaXhpbnMsIERyYWdFbGVtZW50IH0gZnJvbSBcIi4uLy4uLy4uL2luZGV4XCI7IC8vL1xuXG5pbXBvcnQgc3R5bGUgZnJvbSBcIi4uLy4uL3N0eWxlXCI7XG5cbmNvbnN0IHsgREJMQ0xJQ0tfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcblxuY2xhc3MgRHJhZ0RpdiBleHRlbmRzIERyYWdFbGVtZW50IHtcbiAgZG91YmxlQ2xpY2tIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJkb3VibGUgY2xpY2shXCIpXG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICB0aGlzLmVuYWJsZURyYWcoKTtcblxuICAgIHRoaXMub25FdmVudChEQkxDTElDS19FVkVOVF9UWVBFLCB0aGlzLmRvdWJsZUNsaWNrSGFuZGxlciwgdGhpcyk7XG4gIH1cblxuICB3aWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLm9mZkV2ZW50KERCTENMSUNLX0VWRU5UX1RZUEUsIHRoaXMuZG91YmxlQ2xpY2tIYW5kbGVyLCB0aGlzKTtcblxuICAgIHRoaXMuZGlzYWJsZURyYWcoKTtcbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgcmV0dXJuIChcIkRSQUcgRUxFTUVOVFwiKTtcbiAgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImRyYWdcIlxuICB9O1xufVxuXG5PYmplY3QuYXNzaWduKERyYWdEaXYucHJvdG90eXBlLCBkcmFnTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKERyYWdEaXYpYFxuXG4gICR7c3R5bGV9XG4gIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIFxuICAuZHJhZ2dpbmcge1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbmA7XG4iXSwibmFtZXMiOlsiREJMQ0xJQ0tfRVZFTlRfVFlQRSIsImV2ZW50VHlwZXMiLCJEcmFnRGl2IiwiZG91YmxlQ2xpY2tIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiY29uc29sZSIsImxvZyIsImRpZE1vdW50IiwiZW5hYmxlRHJhZyIsIm9uRXZlbnQiLCJ3aWxsVW5tb3VudCIsIm9mZkV2ZW50IiwiZGlzYWJsZURyYWciLCJjaGlsZEVsZW1lbnRzIiwiRHJhZ0VsZW1lbnQiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJkcmFnTWl4aW5zIiwid2l0aFN0eWxlIiwic3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlDQTs7O2VBQUE7OztvRUF2Q3NCO29CQUVLO3FCQUNhOzREQUV0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQixJQUFNLEFBQUVBLHNCQUF3QkMsZ0JBQVUsQ0FBbENEO0FBRVIsSUFBQSxBQUFNRSx3QkFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztRQUNKQyxrREFBQUEsc0JBQXFCLFNBQUNDLE9BQU9DO1lBQzNCQyxRQUFRQyxHQUFHLENBQUM7UUFDZDs7O2tCQUhJTDs7WUFLSk0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsVUFBVTtnQkFFZixJQUFJLENBQUNDLE9BQU8sQ0FBQ1YscUJBQXFCLElBQUksQ0FBQ0csa0JBQWtCLEVBQUUsSUFBSTtZQUNqRTs7O1lBRUFRLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUNDLFFBQVEsQ0FBQ1oscUJBQXFCLElBQUksQ0FBQ0csa0JBQWtCLEVBQUUsSUFBSTtnQkFFaEUsSUFBSSxDQUFDVSxXQUFXO1lBQ2xCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQVE7WUFDVjs7O1dBbkJJWjtFQUFnQmEsa0JBQVc7QUFxQi9CLGlCQXJCSWIsU0FxQkdjLFdBQVU7QUFFakIsaUJBdkJJZCxTQXVCR2UscUJBQW9CO0lBQ3pCQyxXQUFXO0FBQ2I7QUFHRkMsT0FBT0MsTUFBTSxDQUFDbEIsUUFBUW1CLFNBQVMsRUFBRUMsaUJBQVU7SUFFM0MsV0FBZUMsSUFBQUEsc0JBQVMsRUFBQ3JCLDRCQUVyQnNCLGNBQUsifQ==
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
|
|
12
|
+
var _easy = require("easy");
|
|
13
|
+
var _index = require("../../../index");
|
|
14
|
+
var _style = /*#__PURE__*/ _interop_require_default(require("../../style"));
|
|
15
|
+
function _assert_this_initialized(self) {
|
|
16
|
+
if (self === void 0) {
|
|
17
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
18
|
+
}
|
|
19
|
+
return self;
|
|
20
|
+
}
|
|
21
|
+
function _class_call_check(instance, Constructor) {
|
|
22
|
+
if (!(instance instanceof Constructor)) {
|
|
23
|
+
throw new TypeError("Cannot call a class as a function");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _construct(Parent, args, Class) {
|
|
27
|
+
if (_is_native_reflect_construct()) {
|
|
28
|
+
_construct = Reflect.construct;
|
|
29
|
+
} else {
|
|
30
|
+
_construct = function construct(Parent, args, Class) {
|
|
31
|
+
var a = [
|
|
32
|
+
null
|
|
33
|
+
];
|
|
34
|
+
a.push.apply(a, args);
|
|
35
|
+
var Constructor = Function.bind.apply(Parent, a);
|
|
36
|
+
var instance = new Constructor();
|
|
37
|
+
if (Class) _set_prototype_of(instance, Class.prototype);
|
|
38
|
+
return instance;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return _construct.apply(null, arguments);
|
|
42
|
+
}
|
|
43
|
+
function _defineProperties(target, props) {
|
|
44
|
+
for(var i = 0; i < props.length; i++){
|
|
45
|
+
var descriptor = props[i];
|
|
46
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
47
|
+
descriptor.configurable = true;
|
|
48
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
49
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
53
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
54
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
55
|
+
return Constructor;
|
|
56
|
+
}
|
|
57
|
+
function _define_property(obj, key, value) {
|
|
58
|
+
if (key in obj) {
|
|
59
|
+
Object.defineProperty(obj, key, {
|
|
60
|
+
value: value,
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: true,
|
|
63
|
+
writable: true
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
obj[key] = value;
|
|
67
|
+
}
|
|
68
|
+
return obj;
|
|
69
|
+
}
|
|
70
|
+
function _get_prototype_of(o) {
|
|
71
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
72
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
73
|
+
};
|
|
74
|
+
return _get_prototype_of(o);
|
|
75
|
+
}
|
|
76
|
+
function _inherits(subClass, superClass) {
|
|
77
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
78
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
79
|
+
}
|
|
80
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
81
|
+
constructor: {
|
|
82
|
+
value: subClass,
|
|
83
|
+
writable: true,
|
|
84
|
+
configurable: true
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
88
|
+
}
|
|
89
|
+
function _interop_require_default(obj) {
|
|
90
|
+
return obj && obj.__esModule ? obj : {
|
|
91
|
+
default: obj
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function _is_native_function(fn) {
|
|
95
|
+
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
|
96
|
+
}
|
|
97
|
+
function _possible_constructor_return(self, call) {
|
|
98
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
99
|
+
return call;
|
|
100
|
+
}
|
|
101
|
+
return _assert_this_initialized(self);
|
|
102
|
+
}
|
|
103
|
+
function _set_prototype_of(o, p) {
|
|
104
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
105
|
+
o.__proto__ = p;
|
|
106
|
+
return o;
|
|
107
|
+
};
|
|
108
|
+
return _set_prototype_of(o, p);
|
|
109
|
+
}
|
|
110
|
+
function _tagged_template_literal(strings, raw) {
|
|
111
|
+
if (!raw) {
|
|
112
|
+
raw = strings.slice(0);
|
|
113
|
+
}
|
|
114
|
+
return Object.freeze(Object.defineProperties(strings, {
|
|
115
|
+
raw: {
|
|
116
|
+
value: Object.freeze(raw)
|
|
117
|
+
}
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
function _type_of(obj) {
|
|
121
|
+
"@swc/helpers - typeof";
|
|
122
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
123
|
+
}
|
|
124
|
+
function _wrap_native_super(Class) {
|
|
125
|
+
var _cache = typeof Map === "function" ? new Map() : undefined;
|
|
126
|
+
_wrap_native_super = function wrapNativeSuper(Class) {
|
|
127
|
+
if (Class === null || !_is_native_function(Class)) return Class;
|
|
128
|
+
if (typeof Class !== "function") {
|
|
129
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
130
|
+
}
|
|
131
|
+
if (typeof _cache !== "undefined") {
|
|
132
|
+
if (_cache.has(Class)) return _cache.get(Class);
|
|
133
|
+
_cache.set(Class, Wrapper);
|
|
134
|
+
}
|
|
135
|
+
function Wrapper() {
|
|
136
|
+
return _construct(Class, arguments, _get_prototype_of(this).constructor);
|
|
137
|
+
}
|
|
138
|
+
Wrapper.prototype = Object.create(Class.prototype, {
|
|
139
|
+
constructor: {
|
|
140
|
+
value: Wrapper,
|
|
141
|
+
enumerable: false,
|
|
142
|
+
writable: true,
|
|
143
|
+
configurable: true
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return _set_prototype_of(Wrapper, Class);
|
|
147
|
+
};
|
|
148
|
+
return _wrap_native_super(Class);
|
|
149
|
+
}
|
|
150
|
+
function _is_native_reflect_construct() {
|
|
151
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
152
|
+
if (Reflect.construct.sham) return false;
|
|
153
|
+
if (typeof Proxy === "function") return true;
|
|
154
|
+
try {
|
|
155
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
156
|
+
return true;
|
|
157
|
+
} catch (e) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function _create_super(Derived) {
|
|
162
|
+
var hasNativeReflectConstruct = _is_native_reflect_construct();
|
|
163
|
+
return function _createSuperInternal() {
|
|
164
|
+
var Super = _get_prototype_of(Derived), result;
|
|
165
|
+
if (hasNativeReflectConstruct) {
|
|
166
|
+
var NewTarget = _get_prototype_of(this).constructor;
|
|
167
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
168
|
+
} else {
|
|
169
|
+
result = Super.apply(this, arguments);
|
|
170
|
+
}
|
|
171
|
+
return _possible_constructor_return(this, result);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function _templateObject() {
|
|
175
|
+
var data = _tagged_template_literal([
|
|
176
|
+
"\n\n ",
|
|
177
|
+
"\n\n margin-bottom: 10rem;\n background-color: green;\n \n .drag-over {\n background-color: blue;\n }\n \n"
|
|
178
|
+
]);
|
|
179
|
+
_templateObject = function _templateObject() {
|
|
180
|
+
return data;
|
|
181
|
+
};
|
|
182
|
+
return data;
|
|
183
|
+
}
|
|
184
|
+
var DropDiv = /*#__PURE__*/ function(Element) {
|
|
185
|
+
_inherits(DropDiv, Element);
|
|
186
|
+
var _super = _create_super(DropDiv);
|
|
187
|
+
function DropDiv() {
|
|
188
|
+
_class_call_check(this, DropDiv);
|
|
189
|
+
var _this;
|
|
190
|
+
_this = _super.apply(this, arguments);
|
|
191
|
+
_define_property(_assert_this_initialized(_this), "dropCustomHandler", function(event, element, dragElement, aborted, done) {
|
|
192
|
+
if (dragElement !== null) {
|
|
193
|
+
dragElement.remove();
|
|
194
|
+
}
|
|
195
|
+
done();
|
|
196
|
+
});
|
|
197
|
+
_define_property(_assert_this_initialized(_this), "dragOutCustomHandler", function(event, element) {
|
|
198
|
+
_this.removeClass("drag-over");
|
|
199
|
+
});
|
|
200
|
+
_define_property(_assert_this_initialized(_this), "dragOverCustomHandler", function(event, element) {
|
|
201
|
+
_this.addClass("drag-over");
|
|
202
|
+
});
|
|
203
|
+
return _this;
|
|
204
|
+
}
|
|
205
|
+
_create_class(DropDiv, [
|
|
206
|
+
{
|
|
207
|
+
key: "getReference",
|
|
208
|
+
value: function getReference() {
|
|
209
|
+
var _this_properties = this.properties, _this_properties_reference = _this_properties.reference, reference = _this_properties_reference === void 0 ? null : _this_properties_reference;
|
|
210
|
+
return reference;
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
key: "didMount",
|
|
215
|
+
value: function didMount() {
|
|
216
|
+
this.enableDrop();
|
|
217
|
+
this.onCustomDrop(this.dropCustomHandler);
|
|
218
|
+
this.onCustomDragOut(this.dragOutCustomHandler);
|
|
219
|
+
this.onCustomDragOver(this.dragOverCustomHandler);
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
key: "willUnmount",
|
|
224
|
+
value: function willUnmount() {
|
|
225
|
+
this.disableDrop();
|
|
226
|
+
this.offCustomDrop(this.dropCustomHandler);
|
|
227
|
+
this.offCustomDragOut(this.dragOutCustomHandler);
|
|
228
|
+
this.offCustomDragOver(this.dragOverCustomHandler);
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
key: "childElements",
|
|
233
|
+
value: function childElements() {
|
|
234
|
+
return "DROP ELEMENT";
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
]);
|
|
238
|
+
return DropDiv;
|
|
239
|
+
}(_wrap_native_super(_easy.Element));
|
|
240
|
+
_define_property(DropDiv, "tagName", "div");
|
|
241
|
+
_define_property(DropDiv, "ignoredProperties", [
|
|
242
|
+
"reference"
|
|
243
|
+
]);
|
|
244
|
+
_define_property(DropDiv, "defaultProperties", {
|
|
245
|
+
className: "drop",
|
|
246
|
+
reference: "drop-div"
|
|
247
|
+
});
|
|
248
|
+
Object.assign(DropDiv.prototype, _index.dropMixins);
|
|
249
|
+
var _default = (0, _easywithstyle.default)(DropDiv)(_templateObject(), _style.default);
|
|
250
|
+
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZGl2L2Ryb3AuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcbmltcG9ydCB7IGRyb3BNaXhpbnMgfSBmcm9tIFwiLi4vLi4vLi4vaW5kZXhcIjsgLy8vXG5cbmltcG9ydCBzdHlsZSBmcm9tIFwiLi4vLi4vc3R5bGVcIjtcblxuY2xhc3MgRHJvcERpdiBleHRlbmRzIEVsZW1lbnQge1xuICBkcm9wQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQsIGFib3J0ZWQsIGRvbmUpID0+IHtcbiAgICBpZiAoZHJhZ0VsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGRyYWdFbGVtZW50LnJlbW92ZSgpO1xuICAgIH1cblxuICAgIGRvbmUoKTtcbiAgfVxuXG4gIGRyYWdPdXRDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWctb3ZlclwiKTtcbiAgfVxuXG4gIGRyYWdPdmVyQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIHRoaXMuYWRkQ2xhc3MoXCJkcmFnLW92ZXJcIik7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgY29uc3QgeyByZWZlcmVuY2UgPSBudWxsIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy5lbmFibGVEcm9wKCk7XG5cbiAgICB0aGlzLm9uQ3VzdG9tRHJvcCh0aGlzLmRyb3BDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ091dCh0aGlzLmRyYWdPdXRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ092ZXIodGhpcy5kcmFnT3ZlckN1c3RvbUhhbmRsZXIpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5kaXNhYmxlRHJvcCgpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21Ecm9wKHRoaXMuZHJvcEN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tRHJhZ091dCh0aGlzLmRyYWdPdXRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbURyYWdPdmVyKHRoaXMuZHJhZ092ZXJDdXN0b21IYW5kbGVyKTtcbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgcmV0dXJuIFwiRFJPUCBFTEVNRU5UXCI7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwicmVmZXJlbmNlXCJcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImRyb3BcIixcbiAgICByZWZlcmVuY2U6IFwiZHJvcC1kaXZcIlxuICB9O1xufVxuXG5PYmplY3QuYXNzaWduKERyb3BEaXYucHJvdG90eXBlLCBkcm9wTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKERyb3BEaXYpYFxuXG4gICR7c3R5bGV9XG5cbiAgbWFyZ2luLWJvdHRvbTogMTByZW07XG4gIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuICBcbiAgLmRyYWctb3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcbiAgfVxuICBcbmA7XG4iXSwibmFtZXMiOlsiRHJvcERpdiIsImRyb3BDdXN0b21IYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiZHJhZ0VsZW1lbnQiLCJhYm9ydGVkIiwiZG9uZSIsInJlbW92ZSIsImRyYWdPdXRDdXN0b21IYW5kbGVyIiwicmVtb3ZlQ2xhc3MiLCJkcmFnT3ZlckN1c3RvbUhhbmRsZXIiLCJhZGRDbGFzcyIsImdldFJlZmVyZW5jZSIsInByb3BlcnRpZXMiLCJyZWZlcmVuY2UiLCJkaWRNb3VudCIsImVuYWJsZURyb3AiLCJvbkN1c3RvbURyb3AiLCJvbkN1c3RvbURyYWdPdXQiLCJvbkN1c3RvbURyYWdPdmVyIiwid2lsbFVubW91bnQiLCJkaXNhYmxlRHJvcCIsIm9mZkN1c3RvbURyb3AiLCJvZmZDdXN0b21EcmFnT3V0Iiwib2ZmQ3VzdG9tRHJhZ092ZXIiLCJjaGlsZEVsZW1lbnRzIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZHJvcE1peGlucyIsIndpdGhTdHlsZSIsInN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrRUE7OztlQUFBOzs7b0VBaEVzQjtvQkFFRTtxQkFDRzs0REFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEIsSUFBQSxBQUFNQSx3QkFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztRQUNKQyxrREFBQUEscUJBQW9CLFNBQUNDLE9BQU9DLFNBQVNDLGFBQWFDLFNBQVNDO1lBQ3pELElBQUlGLGdCQUFnQixNQUFNO2dCQUN4QkEsWUFBWUcsTUFBTTtZQUNwQjtZQUVBRDtRQUNGO1FBRUFFLGtEQUFBQSx3QkFBdUIsU0FBQ04sT0FBT0M7WUFDN0IsTUFBS00sV0FBVyxDQUFDO1FBQ25CO1FBRUFDLGtEQUFBQSx5QkFBd0IsU0FBQ1IsT0FBT0M7WUFDOUIsTUFBS1EsUUFBUSxDQUFDO1FBQ2hCOzs7a0JBZklYOztZQWlCSlksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQTZCLG1CQUFBLElBQUksQ0FBQ0MsVUFBVSwrQkFBZixpQkFBckJDLFdBQUFBLG9EQUFZO2dCQUVwQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsVUFBVTtnQkFFZixJQUFJLENBQUNDLFlBQVksQ0FBQyxJQUFJLENBQUNoQixpQkFBaUI7Z0JBQ3hDLElBQUksQ0FBQ2lCLGVBQWUsQ0FBQyxJQUFJLENBQUNWLG9CQUFvQjtnQkFDOUMsSUFBSSxDQUFDVyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUNULHFCQUFxQjtZQUNsRDs7O1lBRUFVLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUNDLFdBQVc7Z0JBRWhCLElBQUksQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQ3JCLGlCQUFpQjtnQkFDekMsSUFBSSxDQUFDc0IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDZixvQkFBb0I7Z0JBQy9DLElBQUksQ0FBQ2dCLGlCQUFpQixDQUFDLElBQUksQ0FBQ2QscUJBQXFCO1lBQ25EOzs7WUFFQWUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU87WUFDVDs7O1dBekNJekI7cUJBQWdCMEIsYUFBTztBQTJDM0IsaUJBM0NJMUIsU0EyQ0cyQixXQUFVO0FBRWpCLGlCQTdDSTNCLFNBNkNHNEIscUJBQW9CO0lBQ3pCO0NBQ0Q7QUFFRCxpQkFqREk1QixTQWlERzZCLHFCQUFvQjtJQUN6QkMsV0FBVztJQUNYaEIsV0FBVztBQUNiO0FBR0ZpQixPQUFPQyxNQUFNLENBQUNoQyxRQUFRaUMsU0FBUyxFQUFFQyxpQkFBVTtJQUUzQyxXQUFlQyxJQUFBQSxzQkFBUyxFQUFDbkMsNEJBRXJCb0MsY0FBSyJ9
|
package/lib/mixins/drag.js
CHANGED
|
@@ -15,10 +15,25 @@ var _reference = require("../utilities/reference");
|
|
|
15
15
|
var _event = require("../utilities/event");
|
|
16
16
|
var _customEventTypes = require("../customEventTypes");
|
|
17
17
|
var ESCAPE_KEY_CODE = _necessary.keyCodes.ESCAPE_KEY_CODE, BLUR_EVENT_TYPE = _easy.eventTypes.BLUR_EVENT_TYPE, LEFT_MOUSE_BUTTON = _easy.mouseButtons.LEFT_MOUSE_BUTTON;
|
|
18
|
-
|
|
18
|
+
function getDragElement() {
|
|
19
|
+
var dragElement = globalThis.dragElement;
|
|
20
|
+
return dragElement;
|
|
21
|
+
}
|
|
22
|
+
function setDragElement(dragElement) {
|
|
23
|
+
Object.assign(globalThis, {
|
|
24
|
+
dragElement: dragElement
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function resetDragElement() {
|
|
28
|
+
var dragElement = null;
|
|
29
|
+
setDragElement(dragElement);
|
|
30
|
+
}
|
|
19
31
|
Object.assign(globalThis, {
|
|
20
|
-
|
|
32
|
+
getDragElement: getDragElement,
|
|
33
|
+
setDragElement: setDragElement,
|
|
34
|
+
resetDragElement: resetDragElement
|
|
21
35
|
});
|
|
36
|
+
resetDragElement();
|
|
22
37
|
function enableDrag() {
|
|
23
38
|
var timeout = null, topOffset = null, leftOffset = null, startMouseTop = null, startMouseLeft = null;
|
|
24
39
|
this.onMouseDown(mouseDownHandler, this);
|
|
@@ -66,9 +81,7 @@ function startDrag(event, element, mouseTop, mouseLeft) {
|
|
|
66
81
|
_easy.window.onKeyDown(keyDownHandler, this);
|
|
67
82
|
_easy.window.onMouseMove(mouseMoveHandler, this);
|
|
68
83
|
this.addClass("dragging");
|
|
69
|
-
|
|
70
|
-
dragElement: dragElement
|
|
71
|
-
});
|
|
84
|
+
setDragElement(dragElement);
|
|
72
85
|
this.setTopOffset(topOffset);
|
|
73
86
|
this.setLeftOffset(leftOffset);
|
|
74
87
|
this.setStartMouseTop(startMouseTop);
|
|
@@ -78,15 +91,12 @@ function startDrag(event, element, mouseTop, mouseLeft) {
|
|
|
78
91
|
}
|
|
79
92
|
function stopDrag(event, element, aborted) {
|
|
80
93
|
var _this = this;
|
|
81
|
-
var dropElement =
|
|
94
|
+
var dropElement = getDropElement(), customEventType = _customEventTypes.STOP_DRAG_CUSTOM_EVENT_TYPE;
|
|
82
95
|
_easy.window.offKeyDown(keyDownHandler, this);
|
|
83
96
|
_easy.window.offMouseMove(mouseMoveHandler, this);
|
|
84
97
|
var done = function() {
|
|
85
98
|
_this.callCustomHandlersAsync(customEventType, event, element, dropElement, aborted, function() {
|
|
86
|
-
|
|
87
|
-
Object.assign(globalThis, {
|
|
88
|
-
dragElement: dragElement
|
|
89
|
-
});
|
|
99
|
+
resetDragElement();
|
|
90
100
|
_this.removeClass("dragging");
|
|
91
101
|
});
|
|
92
102
|
};
|
|
@@ -243,4 +253,4 @@ function mouseMoveHandler(event, element) {
|
|
|
243
253
|
event.stopPropagation();
|
|
244
254
|
}
|
|
245
255
|
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgQkxVUl9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzLFxuICAgICAgeyBMRUZUX01PVVNFX0JVVFRPTiB9ID0gbW91c2VCdXR0b25zO1xuXG5jb25zdCBkcmFnRWxlbWVudCA9IG51bGw7XG5cbk9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICBkcmFnRWxlbWVudFxufSk7XG5cbmZ1bmN0aW9uIGVuYWJsZURyYWcoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsLFxuICAgICAgICB0b3BPZmZzZXQgPSBudWxsLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbnVsbDtcblxuICB0aGlzLm9uTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXQsXG4gICAgdG9wT2Zmc2V0LFxuICAgIGxlZnRPZmZzZXQsXG4gICAgc3RhcnRNb3VzZVRvcCxcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGlzYWJsZURyYWcoKSB7XG4gIHRoaXMub2ZmTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnZ2luZygpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmhhc0NsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgcmV0dXJuIGRyYWdnaW5nO1xufVxuXG5mdW5jdGlvbiBzdGFydERyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpIHtcbiAgY29uc3QgYm91bmRzID0gdGhpcy5nZXRCb3VuZHMoKSxcbiAgICAgICAgYm91bmRzVG9wID0gYm91bmRzLmdldFRvcCgpLFxuICAgICAgICBib3VuZHNMZWZ0ID0gYm91bmRzLmdldExlZnQoKSxcbiAgICAgICAgYm91bmRzUmlnaHQgPSBib3VuZHMuZ2V0UmlnaHQoKSxcbiAgICAgICAgYm91bmRzQm90dG9tID0gYm91bmRzLmdldEJvdHRvbSgpLFxuICAgICAgICBib3VuZHNXaWR0aCA9IGJvdW5kc1JpZ2h0IC0gYm91bmRzTGVmdCxcbiAgICAgICAgYm91bmRzSGVpZ2h0ID0gYm91bmRzQm90dG9tIC0gYm91bmRzVG9wLFxuICAgICAgICB0b3BPZmZzZXQgPSBNYXRoLmZsb29yKGJvdW5kc0hlaWdodCAvIDIpLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gTWF0aC5mbG9vcihib3VuZHNXaWR0aCAvIDIpLFxuICAgICAgICBkcmFnRWxlbWVudCA9IHRoaXMsIC8vL1xuICAgICAgICBzdGFydE1vdXNlVG9wID0gbW91c2VUb3AsIC8vL1xuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG1vdXNlTGVmdCwgLy8vXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEU7XG5cbiAgd2luZG93Lm9uS2V5RG93bihrZXlEb3duSGFuZGxlciwgdGhpcyk7XG5cbiAgd2luZG93Lm9uTW91c2VNb3ZlKG1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xuXG4gIHRoaXMuYWRkQ2xhc3MoXCJkcmFnZ2luZ1wiKTtcblxuICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICBkcmFnRWxlbWVudFxuICB9KTtcblxuICB0aGlzLnNldFRvcE9mZnNldCh0b3BPZmZzZXQpO1xuXG4gIHRoaXMuc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCk7XG5cbiAgdGhpcy5zZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCk7XG5cbiAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XG5cbiAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpIHtcbiAgY29uc3QgeyBkcm9wRWxlbWVudCB9ID0gZ2xvYmFsVGhpcyxcbiAgICAgICAgY3VzdG9tRXZlbnRUeXBlID0gU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gIHdpbmRvdy5vZmZLZXlEb3duKGtleURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB3aW5kb3cub2ZmTW91c2VNb3ZlKG1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xuXG4gIGNvbnN0IGRvbmUgPSAoKSA9PiB7XG4gICAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBkcm9wRWxlbWVudCwgYWJvcnRlZCwgKCkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgICAgZHJhZ0VsZW1lbnRcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZHJhZ2dpbmdcIik7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZHJvcEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICBsZXQgZHJhZ0VsZW1lbnQgPSB0aGlzOyAvLy9cblxuICAgIGNvbnN0IGRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50ID0gY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudChkcmFnRWxlbWVudCwgZHJvcEVsZW1lbnQpO1xuXG4gICAgaWYgKGRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50KSB7XG4gICAgICBkcmFnRWxlbWVudCA9IG51bGw7XG4gICAgfVxuXG4gICAgZHJvcEVsZW1lbnQuZHJvcChldmVudCwgZWxlbWVudCwgZHJhZ0VsZW1lbnQsIGFib3J0ZWQsIGRvbmUpO1xuICB9IGVsc2Uge1xuICAgIGRvbmUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IHdpbmRvdy5nZXRTY3JvbGxUb3AoKSxcbiAgICAgICAgc2Nyb2xsTGVmdCA9IHdpbmRvdy5nZXRTY3JvbGxMZWZ0KCksXG4gICAgICAgIHRvcE9mZnNldCA9IHRoaXMuZ2V0VG9wT2Zmc2V0KCksXG4gICAgICAgIGxlZnRPZmZzZXQgPSB0aGlzLmdldExlZnRPZmZzZXQoKSxcbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IHRoaXMuZ2V0U3RhcnRNb3VzZVRvcCgpLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IHRoaXMuZ2V0U3RhcnRNb3VzZUxlZnQoKSxcbiAgICAgICAgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgcmVsYXRpdmVNb3VzZVRvcCA9IG1vdXNlVG9wIC0gc3RhcnRNb3VzZVRvcCxcbiAgICAgICAgcmVsYXRpdmVNb3VzZUxlZnQgPSBtb3VzZUxlZnQgLSBzdGFydE1vdXNlTGVmdDtcblxuICBsZXQgdG9wID0gc3RhcnRNb3VzZVRvcCArIHJlbGF0aXZlTW91c2VUb3AgLSB0b3BPZmZzZXQgLSBzY3JvbGxUb3AsXG4gICAgICBsZWZ0ID0gc3RhcnRNb3VzZUxlZnQgKyByZWxhdGl2ZU1vdXNlTGVmdCAtIGxlZnRPZmZzZXQgLSBzY3JvbGxMZWZ0O1xuXG4gIHRvcCA9IGAke3RvcH1weGA7IC8vL1xuICBsZWZ0ID0gYCR7bGVmdH1weGA7IC8vL1xuXG4gIGNvbnN0IGNzcyA9IHtcbiAgICB0b3AsXG4gICAgbGVmdFxuICB9O1xuXG4gIHRoaXMuY3NzKGNzcyk7XG5cbiAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgcmVsYXRpdmVNb3VzZVRvcCwgcmVsYXRpdmVNb3VzZUxlZnQpO1xufVxuXG5mdW5jdGlvbiBzdGFydFdhaXRpbmdUb0RyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpIHtcbiAgbGV0IHRpbWVvdXQgPSB0aGlzLmdldFRpbWVvdXQoKTtcblxuICBpZiAodGltZW91dCA9PT0gbnVsbCkge1xuICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRUaW1lb3V0KCk7XG5cbiAgICAgIHRoaXMuc3RhcnREcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9LCBTVEFSVF9EUkFHR0lOR19ERUxBWSk7XG5cbiAgICB0aGlzLnVwZGF0ZVRpbWVvdXQodGltZW91dCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RvcFdhaXRpbmdUb0RyYWcoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSB0aGlzLmdldFRpbWVvdXQoKTtcblxuICBpZiAodGltZW91dCAhPT0gbnVsbCkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblxuICAgIHRoaXMucmVzZXRUaW1lb3V0KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGltZW91dCgpIHtcbiAgY29uc3QgeyB0aW1lb3V0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHRpbWVvdXQ7XG59XG5cbmZ1bmN0aW9uIHJlc2V0VGltZW91dCgpIHtcbiAgY29uc3QgdGltZW91dCA9IG51bGw7XG5cbiAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVUaW1lb3V0KHRpbWVvdXQpIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgdGltZW91dFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VG9wT2Zmc2V0KCkge1xuICBjb25zdCB7IHRvcE9mZnNldCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0b3BPZmZzZXQ7XG59XG5cbmZ1bmN0aW9uIGdldExlZnRPZmZzZXQoKSB7XG4gIGNvbnN0IHsgbGVmdE9mZnNldCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBsZWZ0T2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRTdGFydE1vdXNlVG9wKCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VUb3AgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gc3RhcnRNb3VzZVRvcDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZUxlZnQoKSB7XG4gIGNvbnN0IHsgc3RhcnRNb3VzZUxlZnQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gc3RhcnRNb3VzZUxlZnQ7XG59XG5cbmZ1bmN0aW9uIHNldFRvcE9mZnNldCh0b3BPZmZzZXQpIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgdG9wT2Zmc2V0XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRMZWZ0T2Zmc2V0KGxlZnRPZmZzZXQpIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgbGVmdE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0U3RhcnRNb3VzZVRvcChzdGFydE1vdXNlVG9wKSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHN0YXJ0TW91c2VUb3BcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VMZWZ0KHN0YXJ0TW91c2VMZWZ0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHN0YXJ0TW91c2VMZWZ0XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGVuYWJsZURyYWcsXG4gIGRpc2FibGVEcmFnLFxuICBvbkN1c3RvbURyYWcsXG4gIG9mZkN1c3RvbURyYWcsXG4gIG9uQ3VzdG9tU3RvcERyYWcsXG4gIG9mZkN1c3RvbVN0b3BEcmFnLFxuICBvbkN1c3RvbVN0YXJ0RHJhZyxcbiAgb2ZmQ3VzdG9tU3RhcnREcmFnLFxuICBpc0RyYWdnaW5nLFxuICBzdGFydERyYWcsXG4gIHN0b3BEcmFnLFxuICBkcmFnLFxuICBzdGFydFdhaXRpbmdUb0RyYWcsXG4gIHN0b3BXYWl0aW5nVG9EcmFnLFxuICBnZXRUaW1lb3V0LFxuICByZXNldFRpbWVvdXQsXG4gIHVwZGF0ZVRpbWVvdXQsXG4gIGdldFRvcE9mZnNldCxcbiAgZ2V0TGVmdE9mZnNldCxcbiAgZ2V0U3RhcnRNb3VzZVRvcCxcbiAgZ2V0U3RhcnRNb3VzZUxlZnQsXG4gIHNldFRvcE9mZnNldCxcbiAgc2V0TGVmdE9mZnNldCxcbiAgc2V0U3RhcnRNb3VzZVRvcCxcbiAgc2V0U3RhcnRNb3VzZUxlZnRcbn07XG5cbmZ1bmN0aW9uIGtleURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHsga2V5Q29kZSB9ID0gZXZlbnQsXG4gICAgICAgIGVzY2FwZUtleSA9IChrZXlDb2RlID09PSBFU0NBUEVfS0VZX0NPREUpLFxuICAgICAgICBhYm9ydGVkID0gdHJ1ZTtcblxuICBpZiAoZXNjYXBlS2V5KSB7XG4gICAgdGhpcy5zdG9wRHJhZyhldmVudCwgZWxlbWVudCwgYWJvcnRlZCk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VzZVVwSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZygpLFxuICAgICAgICBhYm9ydGVkID0gZmFsc2U7XG5cbiAgZHJhZ2dpbmcgP1xuICAgIHRoaXMuc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpIDpcbiAgICAgIHRoaXMuc3RvcFdhaXRpbmdUb0RyYWcoKTtcblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub2ZmRXZlbnQoQkxVUl9FVkVOVF9UWVBFLCBtb3VzZVVwSGFuZGxlciwgdGhpcyk7ICAvLy9cblxuICB3aW5kb3cub2ZmTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBidXR0b24gfSA9IGV2ZW50O1xuXG4gIGlmIChidXR0b24gPT09IExFRlRfTU9VU0VfQlVUVE9OKSB7XG4gICAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICAgIGlmICghZHJhZ2dpbmcpIHtcbiAgICAgIGNvbnN0IG1vdXNlVG9wID0gbW91c2VUb3BGcm9tRXZlbnQoZXZlbnQpLFxuICAgICAgICAgICAgbW91c2VMZWZ0ID0gbW91c2VMZWZ0RnJvbUV2ZW50KGV2ZW50KTtcblxuICAgICAgdGhpcy5zdGFydFdhaXRpbmdUb0RyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIHdpbmRvdy5vbkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgbW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cblxuICB3aW5kb3cub25Nb3VzZVVwKG1vdXNlVXBIYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZygpO1xuXG4gIGlmIChkcmFnZ2luZykge1xuICAgIGNvbnN0IG1vdXNlVG9wID0gbW91c2VUb3BGcm9tRXZlbnQoZXZlbnQpLFxuICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICB0aGlzLmRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICB9XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG4iXSwibmFtZXMiOlsiRVNDQVBFX0tFWV9DT0RFIiwia2V5Q29kZXMiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiTEVGVF9NT1VTRV9CVVRUT04iLCJtb3VzZUJ1dHRvbnMiLCJkcmFnRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsImdsb2JhbFRoaXMiLCJlbmFibGVEcmFnIiwidGltZW91dCIsInRvcE9mZnNldCIsImxlZnRPZmZzZXQiLCJzdGFydE1vdXNlVG9wIiwic3RhcnRNb3VzZUxlZnQiLCJvbk1vdXNlRG93biIsIm1vdXNlRG93bkhhbmRsZXIiLCJ1cGRhdGVTdGF0ZSIsImRpc2FibGVEcmFnIiwib2ZmTW91c2VEb3duIiwib25DdXN0b21EcmFnIiwiZHJhZ0N1c3RvbUhhbmRsZXIiLCJlbGVtZW50IiwiY3VzdG9tRXZlbnRUeXBlIiwiRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsImN1c3RvbUhhbmRsZXIiLCJvbkN1c3RvbUV2ZW50Iiwib2ZmQ3VzdG9tRHJhZyIsIm9mZkN1c3RvbUV2ZW50Iiwib25DdXN0b21TdG9wRHJhZyIsInN0b3BEcmFnQ3VzdG9tSGFuZGxlciIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJzdGFydERyYWdDdXN0b21IYW5kbGVyIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsImlzRHJhZ2dpbmciLCJkcmFnZ2luZyIsImhhc0NsYXNzIiwic3RhcnREcmFnIiwiZXZlbnQiLCJtb3VzZVRvcCIsIm1vdXNlTGVmdCIsImJvdW5kcyIsImdldEJvdW5kcyIsImJvdW5kc1RvcCIsImdldFRvcCIsImJvdW5kc0xlZnQiLCJnZXRMZWZ0IiwiYm91bmRzUmlnaHQiLCJnZXRSaWdodCIsImJvdW5kc0JvdHRvbSIsImdldEJvdHRvbSIsImJvdW5kc1dpZHRoIiwiYm91bmRzSGVpZ2h0IiwiTWF0aCIsImZsb29yIiwid2luZG93Iiwib25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJvbk1vdXNlTW92ZSIsIm1vdXNlTW92ZUhhbmRsZXIiLCJhZGRDbGFzcyIsInNldFRvcE9mZnNldCIsInNldExlZnRPZmZzZXQiLCJzZXRTdGFydE1vdXNlVG9wIiwic2V0U3RhcnRNb3VzZUxlZnQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJkcmFnIiwic3RvcERyYWciLCJhYm9ydGVkIiwiZHJvcEVsZW1lbnQiLCJvZmZLZXlEb3duIiwib2ZmTW91c2VNb3ZlIiwiZG9uZSIsImNhbGxDdXN0b21IYW5kbGVyc0FzeW5jIiwicmVtb3ZlQ2xhc3MiLCJkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQiLCJkcm9wIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJnZXRUb3BPZmZzZXQiLCJnZXRMZWZ0T2Zmc2V0IiwiZ2V0U3RhcnRNb3VzZVRvcCIsImdldFN0YXJ0TW91c2VMZWZ0IiwicmVsYXRpdmVNb3VzZVRvcCIsInJlbGF0aXZlTW91c2VMZWZ0IiwidG9wIiwibGVmdCIsImNzcyIsInN0YXJ0V2FpdGluZ1RvRHJhZyIsImdldFRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicmVzZXRUaW1lb3V0IiwiU1RBUlRfRFJBR0dJTkdfREVMQVkiLCJ1cGRhdGVUaW1lb3V0Iiwic3RvcFdhaXRpbmdUb0RyYWciLCJjbGVhclRpbWVvdXQiLCJnZXRTdGF0ZSIsImtleUNvZGUiLCJlc2NhcGVLZXkiLCJzdG9wUHJvcGFnYXRpb24iLCJtb3VzZVVwSGFuZGxlciIsIm9mZkV2ZW50Iiwib2ZmTW91c2VVcCIsImJ1dHRvbiIsIm1vdXNlVG9wRnJvbUV2ZW50IiwibW91c2VMZWZ0RnJvbUV2ZW50Iiwib25FdmVudCIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd1JBOzs7ZUFBQTs7O3lCQXRSeUI7b0JBQ3dCO3lCQUVaO3lCQUNjO3FCQUNHO2dDQUM0QztBQUVsRyxJQUFNLEFBQUVBLGtC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
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgQkxVUl9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzLFxuICAgICAgeyBMRUZUX01PVVNFX0JVVFRPTiB9ID0gbW91c2VCdXR0b25zO1xuXG5mdW5jdGlvbiBnZXREcmFnRWxlbWVudCgpIHtcbiAgY29uc3QgeyBkcmFnRWxlbWVudCB9ID0gZ2xvYmFsVGhpcztcblxuICByZXR1cm4gZHJhZ0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KSB7XG4gIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgIGRyYWdFbGVtZW50XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNldERyYWdFbGVtZW50KCkge1xuICBjb25zdCBkcmFnRWxlbWVudCA9IG51bGw7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xufVxuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgZ2V0RHJhZ0VsZW1lbnQsXG4gIHNldERyYWdFbGVtZW50LFxuICByZXNldERyYWdFbGVtZW50XG59KTtcblxucmVzZXREcmFnRWxlbWVudCgpO1xuXG5mdW5jdGlvbiBlbmFibGVEcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgbGVmdE9mZnNldCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBudWxsLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG51bGw7XG5cbiAgdGhpcy5vbk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0LFxuICAgIHRvcE9mZnNldCxcbiAgICBsZWZ0T2Zmc2V0LFxuICAgIHN0YXJ0TW91c2VUb3AsXG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVEcmFnKCkge1xuICB0aGlzLm9mZk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21EcmFnKGRyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBkcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21EcmFnKGRyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBkcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdG9wRHJhZyhzdG9wRHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RvcERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tU3RhcnREcmFnKHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RhcnREcmFnKHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGlzRHJhZ2dpbmcoKSB7XG4gIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5oYXNDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHJldHVybiBkcmFnZ2luZztcbn1cblxuZnVuY3Rpb24gc3RhcnREcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRzKCksXG4gICAgICAgIGJvdW5kc1RvcCA9IGJvdW5kcy5nZXRUb3AoKSxcbiAgICAgICAgYm91bmRzTGVmdCA9IGJvdW5kcy5nZXRMZWZ0KCksXG4gICAgICAgIGJvdW5kc1JpZ2h0ID0gYm91bmRzLmdldFJpZ2h0KCksXG4gICAgICAgIGJvdW5kc0JvdHRvbSA9IGJvdW5kcy5nZXRCb3R0b20oKSxcbiAgICAgICAgYm91bmRzV2lkdGggPSBib3VuZHNSaWdodCAtIGJvdW5kc0xlZnQsXG4gICAgICAgIGJvdW5kc0hlaWdodCA9IGJvdW5kc0JvdHRvbSAtIGJvdW5kc1RvcCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gTWF0aC5mbG9vcihib3VuZHNIZWlnaHQgLyAyKSxcbiAgICAgICAgbGVmdE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzV2lkdGggLyAyKSxcbiAgICAgICAgZHJhZ0VsZW1lbnQgPSB0aGlzLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG1vdXNlVG9wLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSBtb3VzZUxlZnQsIC8vL1xuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gIHdpbmRvdy5vbktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vbk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLmFkZENsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgc2V0RHJhZ0VsZW1lbnQoZHJhZ0VsZW1lbnQpO1xuXG4gIHRoaXMuc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCk7XG5cbiAgdGhpcy5zZXRMZWZ0T2Zmc2V0KGxlZnRPZmZzZXQpO1xuXG4gIHRoaXMuc2V0U3RhcnRNb3VzZVRvcChzdGFydE1vdXNlVG9wKTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VMZWZ0KHN0YXJ0TW91c2VMZWZ0KTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcblxuICB0aGlzLmRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xufVxuXG5mdW5jdGlvbiBzdG9wRHJhZyhldmVudCwgZWxlbWVudCwgYWJvcnRlZCkge1xuICBjb25zdCBkcm9wRWxlbWVudCA9IGdldERyb3BFbGVtZW50KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub2ZmS2V5RG93bihrZXlEb3duSGFuZGxlciwgdGhpcyk7XG5cbiAgd2luZG93Lm9mZk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsICgpID0+IHtcbiAgICAgIHJlc2V0RHJhZ0VsZW1lbnQoKTtcblxuICAgICAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWdnaW5nXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRyb3BFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGRyYWdFbGVtZW50ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCA9IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQoZHJhZ0VsZW1lbnQsIGRyb3BFbGVtZW50KTtcblxuICAgIGlmIChkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCkge1xuICAgICAgZHJhZ0VsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGRyb3BFbGVtZW50LmRyb3AoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSB3aW5kb3cuZ2V0U2Nyb2xsTGVmdCgpLFxuICAgICAgICB0b3BPZmZzZXQgPSB0aGlzLmdldFRvcE9mZnNldCgpLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gdGhpcy5nZXRMZWZ0T2Zmc2V0KCksXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSB0aGlzLmdldFN0YXJ0TW91c2VUb3AoKSxcbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSB0aGlzLmdldFN0YXJ0TW91c2VMZWZ0KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIHJlbGF0aXZlTW91c2VUb3AgPSBtb3VzZVRvcCAtIHN0YXJ0TW91c2VUb3AsXG4gICAgICAgIHJlbGF0aXZlTW91c2VMZWZ0ID0gbW91c2VMZWZ0IC0gc3RhcnRNb3VzZUxlZnQ7XG5cbiAgbGV0IHRvcCA9IHN0YXJ0TW91c2VUb3AgKyByZWxhdGl2ZU1vdXNlVG9wIC0gdG9wT2Zmc2V0IC0gc2Nyb2xsVG9wLFxuICAgICAgbGVmdCA9IHN0YXJ0TW91c2VMZWZ0ICsgcmVsYXRpdmVNb3VzZUxlZnQgLSBsZWZ0T2Zmc2V0IC0gc2Nyb2xsTGVmdDtcblxuICB0b3AgPSBgJHt0b3B9cHhgOyAvLy9cbiAgbGVmdCA9IGAke2xlZnR9cHhgOyAvLy9cblxuICBjb25zdCBjc3MgPSB7XG4gICAgdG9wLFxuICAgIGxlZnRcbiAgfTtcblxuICB0aGlzLmNzcyhjc3MpO1xuXG4gIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIHJlbGF0aXZlTW91c2VUb3AsIHJlbGF0aXZlTW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGxldCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuXG4gICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfSwgU1RBUlRfRFJBR0dJTkdfREVMQVkpO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BXYWl0aW5nVG9EcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHsgdGltZW91dCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0aW1lb3V0O1xufVxuXG5mdW5jdGlvbiByZXNldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsO1xuXG4gIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVGltZW91dCh0aW1lb3V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcE9mZnNldCgpIHtcbiAgY29uc3QgeyB0b3BPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdG9wT2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0T2Zmc2V0KCkge1xuICBjb25zdCB7IGxlZnRPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gbGVmdE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZVRvcCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlVG9wIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VUb3A7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VMZWZ0KCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VMZWZ0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VMZWZ0O1xufVxuXG5mdW5jdGlvbiBzZXRUb3BPZmZzZXQodG9wT2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRvcE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGxlZnRPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlVG9wXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBlbmFibGVEcmFnLFxuICBkaXNhYmxlRHJhZyxcbiAgb25DdXN0b21EcmFnLFxuICBvZmZDdXN0b21EcmFnLFxuICBvbkN1c3RvbVN0b3BEcmFnLFxuICBvZmZDdXN0b21TdG9wRHJhZyxcbiAgb25DdXN0b21TdGFydERyYWcsXG4gIG9mZkN1c3RvbVN0YXJ0RHJhZyxcbiAgaXNEcmFnZ2luZyxcbiAgc3RhcnREcmFnLFxuICBzdG9wRHJhZyxcbiAgZHJhZyxcbiAgc3RhcnRXYWl0aW5nVG9EcmFnLFxuICBzdG9wV2FpdGluZ1RvRHJhZyxcbiAgZ2V0VGltZW91dCxcbiAgcmVzZXRUaW1lb3V0LFxuICB1cGRhdGVUaW1lb3V0LFxuICBnZXRUb3BPZmZzZXQsXG4gIGdldExlZnRPZmZzZXQsXG4gIGdldFN0YXJ0TW91c2VUb3AsXG4gIGdldFN0YXJ0TW91c2VMZWZ0LFxuICBzZXRUb3BPZmZzZXQsXG4gIHNldExlZnRPZmZzZXQsXG4gIHNldFN0YXJ0TW91c2VUb3AsXG4gIHNldFN0YXJ0TW91c2VMZWZ0XG59O1xuXG5mdW5jdGlvbiBrZXlEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50LFxuICAgICAgICBlc2NhcGVLZXkgPSAoa2V5Q29kZSA9PT0gRVNDQVBFX0tFWV9DT0RFKSxcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG5cbiAgaWYgKGVzY2FwZUtleSkge1xuICAgIHRoaXMuc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91c2VVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKSxcbiAgICAgICAgYWJvcnRlZCA9IGZhbHNlO1xuXG4gIGRyYWdnaW5nID9cbiAgICB0aGlzLnN0b3BEcmFnKGV2ZW50LCBlbGVtZW50LCBhYm9ydGVkKSA6XG4gICAgICB0aGlzLnN0b3BXYWl0aW5nVG9EcmFnKCk7XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgd2luZG93Lm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgbW91c2VVcEhhbmRsZXIsIHRoaXMpOyAgLy8vXG5cbiAgd2luZG93Lm9mZk1vdXNlVXAobW91c2VVcEhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHsgYnV0dG9uIH0gPSBldmVudDtcblxuICBpZiAoYnV0dG9uID09PSBMRUZUX01PVVNFX0JVVFRPTikge1xuICAgIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCk7XG5cbiAgICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub25FdmVudChCTFVSX0VWRU5UX1RZUEUsIG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXG5cbiAgd2luZG93Lm9uTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICBpZiAoZHJhZ2dpbmcpIHtcbiAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuIl0sIm5hbWVzIjpbIkVTQ0FQRV9LRVlfQ09ERSIsImtleUNvZGVzIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIkxFRlRfTU9VU0VfQlVUVE9OIiwibW91c2VCdXR0b25zIiwiZ2V0RHJhZ0VsZW1lbnQiLCJkcmFnRWxlbWVudCIsImdsb2JhbFRoaXMiLCJzZXREcmFnRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInJlc2V0RHJhZ0VsZW1lbnQiLCJlbmFibGVEcmFnIiwidGltZW91dCIsInRvcE9mZnNldCIsImxlZnRPZmZzZXQiLCJzdGFydE1vdXNlVG9wIiwic3RhcnRNb3VzZUxlZnQiLCJvbk1vdXNlRG93biIsIm1vdXNlRG93bkhhbmRsZXIiLCJ1cGRhdGVTdGF0ZSIsImRpc2FibGVEcmFnIiwib2ZmTW91c2VEb3duIiwib25DdXN0b21EcmFnIiwiZHJhZ0N1c3RvbUhhbmRsZXIiLCJlbGVtZW50IiwiY3VzdG9tRXZlbnRUeXBlIiwiRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsImN1c3RvbUhhbmRsZXIiLCJvbkN1c3RvbUV2ZW50Iiwib2ZmQ3VzdG9tRHJhZyIsIm9mZkN1c3RvbUV2ZW50Iiwib25DdXN0b21TdG9wRHJhZyIsInN0b3BEcmFnQ3VzdG9tSGFuZGxlciIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJzdGFydERyYWdDdXN0b21IYW5kbGVyIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsImlzRHJhZ2dpbmciLCJkcmFnZ2luZyIsImhhc0NsYXNzIiwic3RhcnREcmFnIiwiZXZlbnQiLCJtb3VzZVRvcCIsIm1vdXNlTGVmdCIsImJvdW5kcyIsImdldEJvdW5kcyIsImJvdW5kc1RvcCIsImdldFRvcCIsImJvdW5kc0xlZnQiLCJnZXRMZWZ0IiwiYm91bmRzUmlnaHQiLCJnZXRSaWdodCIsImJvdW5kc0JvdHRvbSIsImdldEJvdHRvbSIsImJvdW5kc1dpZHRoIiwiYm91bmRzSGVpZ2h0IiwiTWF0aCIsImZsb29yIiwid2luZG93Iiwib25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJvbk1vdXNlTW92ZSIsIm1vdXNlTW92ZUhhbmRsZXIiLCJhZGRDbGFzcyIsInNldFRvcE9mZnNldCIsInNldExlZnRPZmZzZXQiLCJzZXRTdGFydE1vdXNlVG9wIiwic2V0U3RhcnRNb3VzZUxlZnQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJkcmFnIiwic3RvcERyYWciLCJhYm9ydGVkIiwiZHJvcEVsZW1lbnQiLCJnZXREcm9wRWxlbWVudCIsIm9mZktleURvd24iLCJvZmZNb3VzZU1vdmUiLCJkb25lIiwiY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMiLCJyZW1vdmVDbGFzcyIsImRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImRyb3AiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsImdldFRvcE9mZnNldCIsImdldExlZnRPZmZzZXQiLCJnZXRTdGFydE1vdXNlVG9wIiwiZ2V0U3RhcnRNb3VzZUxlZnQiLCJyZWxhdGl2ZU1vdXNlVG9wIiwicmVsYXRpdmVNb3VzZUxlZnQiLCJ0b3AiLCJsZWZ0IiwiY3NzIiwic3RhcnRXYWl0aW5nVG9EcmFnIiwiZ2V0VGltZW91dCIsInNldFRpbWVvdXQiLCJyZXNldFRpbWVvdXQiLCJTVEFSVF9EUkFHR0lOR19ERUxBWSIsInVwZGF0ZVRpbWVvdXQiLCJzdG9wV2FpdGluZ1RvRHJhZyIsImNsZWFyVGltZW91dCIsImdldFN0YXRlIiwia2V5Q29kZSIsImVzY2FwZUtleSIsInN0b3BQcm9wYWdhdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwib2ZmRXZlbnQiLCJvZmZNb3VzZVVwIiwiYnV0dG9uIiwibW91c2VUb3BGcm9tRXZlbnQiLCJtb3VzZUxlZnRGcm9tRXZlbnQiLCJvbkV2ZW50Iiwib25Nb3VzZVVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzU0E7OztlQUFBOzs7eUJBcFN5QjtvQkFDd0I7eUJBRVo7eUJBQ2M7cUJBQ0c7Z0NBQzRDO0FBRWxHLElBQU0sQUFBRUEsa0JBQW9CQyxtQkFBUSxDQUE1QkQsaUJBQ0YsQUFBRUUsa0JBQW9CQyxnQkFBVSxDQUE5QkQsaUJBQ0YsQUFBRUUsb0JBQXNCQyxrQkFBWSxDQUFsQ0Q7QUFFUixTQUFTRTtJQUNQLElBQU0sQUFBRUMsY0FBZ0JDLFdBQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSxlQUFlRixXQUFXO0lBQ2pDRyxPQUFPQyxNQUFNLENBQUNILFlBQVk7UUFDeEJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNLO0lBQ1AsSUFBTUwsY0FBYztJQUVwQkUsZUFBZUY7QUFDakI7QUFFQUcsT0FBT0MsTUFBTSxDQUFDSCxZQUFZO0lBQ3hCRixnQkFBQUE7SUFDQUcsZ0JBQUFBO0lBQ0FHLGtCQUFBQTtBQUNGO0FBRUFBO0FBRUEsU0FBU0M7SUFDUCxJQUFNQyxVQUFVLE1BQ1ZDLFlBQVksTUFDWkMsYUFBYSxNQUNiQyxnQkFBZ0IsTUFDaEJDLGlCQUFpQjtJQUV2QixJQUFJLENBQUNDLFdBQVcsQ0FBQ0Msa0JBQWtCLElBQUk7SUFFdkMsSUFBSSxDQUFDQyxXQUFXLENBQUM7UUFDZlAsU0FBQUE7UUFDQUMsV0FBQUE7UUFDQUMsWUFBQUE7UUFDQUMsZUFBQUE7UUFDQUMsZ0JBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNJO0lBQ1AsSUFBSSxDQUFDQyxZQUFZLENBQUNILGtCQUFrQixJQUFJO0FBQzFDO0FBRUEsU0FBU0ksYUFBYUMsaUJBQWlCLEVBQUVDLE9BQU87SUFDOUMsSUFBTUMsa0JBQWtCQyx3Q0FBc0IsRUFDeENDLGdCQUFnQkosbUJBQW9CLEdBQUc7SUFFN0MsSUFBSSxDQUFDSyxhQUFhLENBQUNILGlCQUFpQkUsZUFBZUg7QUFDckQ7QUFFQSxTQUFTSyxjQUFjTixpQkFBaUIsRUFBRUMsT0FBTztJQUMvQyxJQUFNQyxrQkFBa0JDLHdDQUFzQixFQUN4Q0MsZ0JBQWdCSixtQkFBb0IsR0FBRztJQUU3QyxJQUFJLENBQUNPLGNBQWMsQ0FBQ0wsaUJBQWlCRSxlQUFlSDtBQUN0RDtBQUVBLFNBQVNPLGlCQUFpQkMscUJBQXFCLEVBQUVSLE9BQU87SUFDdEQsSUFBTUMsa0JBQWtCUSw2Q0FBMkIsRUFDN0NOLGdCQUFnQkssdUJBQXdCLEdBQUc7SUFFakQsSUFBSSxDQUFDSixhQUFhLENBQUNILGlCQUFpQkUsZUFBZUg7QUFDckQ7QUFFQSxTQUFTVSxrQkFBa0JGLHFCQUFxQixFQUFFUixPQUFPO0lBQ3ZELElBQU1DLGtCQUFrQlEsNkNBQTJCLEVBQzdDTixnQkFBZ0JLLHVCQUF3QixHQUFHO0lBRWpELElBQUksQ0FBQ0YsY0FBYyxDQUFDTCxpQkFBaUJFLGVBQWVIO0FBQ3REO0FBRUEsU0FBU1csa0JBQWtCQyxzQkFBc0IsRUFBRVosT0FBTztJQUN4RCxJQUFNQyxrQkFBa0JZLDhDQUE0QixFQUM5Q1YsZ0JBQWdCUyx3QkFBeUIsR0FBRztJQUVsRCxJQUFJLENBQUNSLGFBQWEsQ0FBQ0gsaUJBQWlCRSxlQUFlSDtBQUNyRDtBQUVBLFNBQVNjLG1CQUFtQkYsc0JBQXNCLEVBQUVaLE9BQU87SUFDekQsSUFBTUMsa0JBQWtCWSw4Q0FBNEIsRUFDOUNWLGdCQUFnQlMsd0JBQXlCLEdBQUc7SUFFbEQsSUFBSSxDQUFDTixjQUFjLENBQUNMLGlCQUFpQkUsZUFBZUg7QUFDdEQ7QUFFQSxTQUFTZTtJQUNQLElBQU1DLFdBQVcsSUFBSSxDQUFDQyxRQUFRLENBQUM7SUFFL0IsT0FBT0Q7QUFDVDtBQUVBLFNBQVNFLFVBQVVDLEtBQUssRUFBRW5CLE9BQU8sRUFBRW9CLFFBQVEsRUFBRUMsU0FBUztJQUNwRCxJQUFNQyxTQUFTLElBQUksQ0FBQ0MsU0FBUyxJQUN2QkMsWUFBWUYsT0FBT0csTUFBTSxJQUN6QkMsYUFBYUosT0FBT0ssT0FBTyxJQUMzQkMsY0FBY04sT0FBT08sUUFBUSxJQUM3QkMsZUFBZVIsT0FBT1MsU0FBUyxJQUMvQkMsY0FBY0osY0FBY0YsWUFDNUJPLGVBQWVILGVBQWVOLFdBQzlCbkMsWUFBWTZDLEtBQUtDLEtBQUssQ0FBQ0YsZUFBZSxJQUN0QzNDLGFBQWE0QyxLQUFLQyxLQUFLLENBQUNILGNBQWMsSUFDdENuRCxjQUFjLElBQUksRUFDbEJVLGdCQUFnQjZCLFVBQ2hCNUIsaUJBQWlCNkIsV0FDakJwQixrQkFBa0JZLDhDQUE0QjtJQUVwRHVCLFlBQU0sQ0FBQ0MsU0FBUyxDQUFDQyxnQkFBZ0IsSUFBSTtJQUVyQ0YsWUFBTSxDQUFDRyxXQUFXLENBQUNDLGtCQUFrQixJQUFJO0lBRXpDLElBQUksQ0FBQ0MsUUFBUSxDQUFDO0lBRWQxRCxlQUFlRjtJQUVmLElBQUksQ0FBQzZELFlBQVksQ0FBQ3JEO0lBRWxCLElBQUksQ0FBQ3NELGFBQWEsQ0FBQ3JEO0lBRW5CLElBQUksQ0FBQ3NELGdCQUFnQixDQUFDckQ7SUFFdEIsSUFBSSxDQUFDc0QsaUJBQWlCLENBQUNyRDtJQUV2QixJQUFJLENBQUNzRCxrQkFBa0IsQ0FBQzdDLGlCQUFpQmtCLE9BQU9uQjtJQUVoRCxJQUFJLENBQUMrQyxJQUFJLENBQUM1QixPQUFPbkIsU0FBU29CLFVBQVVDO0FBQ3RDO0FBRUEsU0FBUzJCLFNBQVM3QixLQUFLLEVBQUVuQixPQUFPLEVBQUVpRCxPQUFPOztJQUN2QyxJQUFNQyxjQUFjQyxrQkFDZGxELGtCQUFrQlEsNkNBQTJCO0lBRW5EMkIsWUFBTSxDQUFDZ0IsVUFBVSxDQUFDZCxnQkFBZ0IsSUFBSTtJQUV0Q0YsWUFBTSxDQUFDaUIsWUFBWSxDQUFDYixrQkFBa0IsSUFBSTtJQUUxQyxJQUFNYyxPQUFPO1FBQ1gsTUFBS0MsdUJBQXVCLENBQUN0RCxpQkFBaUJrQixPQUFPbkIsU0FBU2tELGFBQWFELFNBQVM7WUFDbEYvRDtZQUVBLE1BQUtzRSxXQUFXLENBQUM7UUFDbkI7SUFDRjtJQUVBLElBQUlOLGdCQUFnQixNQUFNO1FBQ3hCLElBQUlyRSxjQUFjLElBQUksRUFBRSxHQUFHO1FBRTNCLElBQU00RSxnQ0FBZ0NDLElBQUFBLDZDQUFrQyxFQUFDN0UsYUFBYXFFO1FBRXRGLElBQUlPLCtCQUErQjtZQUNqQzVFLGNBQWM7UUFDaEI7UUFFQXFFLFlBQVlTLElBQUksQ0FBQ3hDLE9BQU9uQixTQUFTbkIsYUFBYW9FLFNBQVNLO0lBQ3pELE9BQU87UUFDTEE7SUFDRjtBQUNGO0FBRUEsU0FBU1AsS0FBSzVCLEtBQUssRUFBRW5CLE9BQU8sRUFBRW9CLFFBQVEsRUFBRUMsU0FBUztJQUMvQyxJQUFNdUMsWUFBWXhCLFlBQU0sQ0FBQ3lCLFlBQVksSUFDL0JDLGFBQWExQixZQUFNLENBQUMyQixhQUFhLElBQ2pDMUUsWUFBWSxJQUFJLENBQUMyRSxZQUFZLElBQzdCMUUsYUFBYSxJQUFJLENBQUMyRSxhQUFhLElBQy9CMUUsZ0JBQWdCLElBQUksQ0FBQzJFLGdCQUFnQixJQUNyQzFFLGlCQUFpQixJQUFJLENBQUMyRSxpQkFBaUIsSUFDdkNsRSxrQkFBa0JDLHdDQUFzQixFQUN4Q2tFLG1CQUFtQmhELFdBQVc3QixlQUM5QjhFLG9CQUFvQmhELFlBQVk3QjtJQUV0QyxJQUFJOEUsTUFBTS9FLGdCQUFnQjZFLG1CQUFtQi9FLFlBQVl1RSxXQUNyRFcsT0FBTy9FLGlCQUFpQjZFLG9CQUFvQi9FLGFBQWF3RTtJQUU3RFEsTUFBTSxBQUFDLEdBQU0sT0FBSkEsS0FBSSxPQUFLLEdBQUc7SUFDckJDLE9BQU8sQUFBQyxHQUFPLE9BQUxBLE1BQUssT0FBSyxHQUFHO0lBRXZCLElBQU1DLE1BQU07UUFDVkYsS0FBQUE7UUFDQUMsTUFBQUE7SUFDRjtJQUVBLElBQUksQ0FBQ0MsR0FBRyxDQUFDQTtJQUVULElBQUksQ0FBQzFCLGtCQUFrQixDQUFDN0MsaUJBQWlCa0IsT0FBT25CLFNBQVNvRSxrQkFBa0JDO0FBQzdFO0FBRUEsU0FBU0ksbUJBQW1CdEQsS0FBSyxFQUFFbkIsT0FBTyxFQUFFb0IsUUFBUSxFQUFFQyxTQUFTOztJQUM3RCxJQUFJakMsVUFBVSxJQUFJLENBQUNzRixVQUFVO0lBRTdCLElBQUl0RixZQUFZLE1BQU07UUFDcEJBLFVBQVV1RixXQUFXO1lBQ25CLE1BQUtDLFlBQVk7WUFFakIsTUFBSzFELFNBQVMsQ0FBQ0MsT0FBT25CLFNBQVNvQixVQUFVQztRQUMzQyxHQUFHd0QsK0JBQW9CO1FBRXZCLElBQUksQ0FBQ0MsYUFBYSxDQUFDMUY7SUFDckI7QUFDRjtBQUVBLFNBQVMyRjtJQUNQLElBQU0zRixVQUFVLElBQUksQ0FBQ3NGLFVBQVU7SUFFL0IsSUFBSXRGLFlBQVksTUFBTTtRQUNwQjRGLGFBQWE1RjtRQUViLElBQUksQ0FBQ3dGLFlBQVk7SUFDbkI7QUFDRjtBQUVBLFNBQVNGO0lBQ1AsSUFBTSxBQUFFdEYsVUFBWSxJQUFJLENBQUM2RixRQUFRLEdBQXpCN0Y7SUFFUixPQUFPQTtBQUNUO0FBRUEsU0FBU3dGO0lBQ1AsSUFBTXhGLFVBQVU7SUFFaEIsSUFBSSxDQUFDMEYsYUFBYSxDQUFDMUY7QUFDckI7QUFFQSxTQUFTMEYsY0FBYzFGLE9BQU87SUFDNUIsSUFBSSxDQUFDTyxXQUFXLENBQUM7UUFDZlAsU0FBQUE7SUFDRjtBQUNGO0FBRUEsU0FBUzRFO0lBQ1AsSUFBTSxBQUFFM0UsWUFBYyxJQUFJLENBQUM0RixRQUFRLEdBQTNCNUY7SUFFUixPQUFPQTtBQUNUO0FBRUEsU0FBUzRFO0lBQ1AsSUFBTSxBQUFFM0UsYUFBZSxJQUFJLENBQUMyRixRQUFRLEdBQTVCM0Y7SUFFUixPQUFPQTtBQUNUO0FBRUEsU0FBUzRFO0lBQ1AsSUFBTSxBQUFFM0UsZ0JBQWtCLElBQUksQ0FBQzBGLFFBQVEsR0FBL0IxRjtJQUVSLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTNEU7SUFDUCxJQUFNLEFBQUUzRSxpQkFBbUIsSUFBSSxDQUFDeUYsUUFBUSxHQUFoQ3pGO0lBRVIsT0FBT0E7QUFDVDtBQUVBLFNBQVNrRCxhQUFhckQsU0FBUztJQUM3QixJQUFJLENBQUNNLFdBQVcsQ0FBQztRQUNmTixXQUFBQTtJQUNGO0FBQ0Y7QUFFQSxTQUFTc0QsY0FBY3JELFVBQVU7SUFDL0IsSUFBSSxDQUFDSyxXQUFXLENBQUM7UUFDZkwsWUFBQUE7SUFDRjtBQUNGO0FBRUEsU0FBU3NELGlCQUFpQnJELGFBQWE7SUFDckMsSUFBSSxDQUFDSSxXQUFXLENBQUM7UUFDZkosZUFBQUE7SUFDRjtBQUNGO0FBRUEsU0FBU3NELGtCQUFrQnJELGNBQWM7SUFDdkMsSUFBSSxDQUFDRyxXQUFXLENBQUM7UUFDZkgsZ0JBQUFBO0lBQ0Y7QUFDRjtJQUVBLFdBQWU7SUFDYkwsWUFBQUE7SUFDQVMsYUFBQUE7SUFDQUUsY0FBQUE7SUFDQU8sZUFBQUE7SUFDQUUsa0JBQUFBO0lBQ0FHLG1CQUFBQTtJQUNBQyxtQkFBQUE7SUFDQUcsb0JBQUFBO0lBQ0FDLFlBQUFBO0lBQ0FHLFdBQUFBO0lBQ0E4QixVQUFBQTtJQUNBRCxNQUFBQTtJQUNBMEIsb0JBQUFBO0lBQ0FNLG1CQUFBQTtJQUNBTCxZQUFBQTtJQUNBRSxjQUFBQTtJQUNBRSxlQUFBQTtJQUNBZCxjQUFBQTtJQUNBQyxlQUFBQTtJQUNBQyxrQkFBQUE7SUFDQUMsbUJBQUFBO0lBQ0F6QixjQUFBQTtJQUNBQyxlQUFBQTtJQUNBQyxrQkFBQUE7SUFDQUMsbUJBQUFBO0FBQ0Y7QUFFQSxTQUFTUCxlQUFlbkIsS0FBSyxFQUFFbkIsT0FBTztJQUNwQyxJQUFNLEFBQUVrRixVQUFZL0QsTUFBWitELFNBQ0ZDLFlBQWFELFlBQVk1RyxpQkFDekIyRSxVQUFVO0lBRWhCLElBQUlrQyxXQUFXO1FBQ2IsSUFBSSxDQUFDbkMsUUFBUSxDQUFDN0IsT0FBT25CLFNBQVNpRDtRQUU5QjlCLE1BQU1pRSxlQUFlO0lBQ3ZCO0FBQ0Y7QUFFQSxTQUFTQyxlQUFlbEUsS0FBSyxFQUFFbkIsT0FBTztJQUNwQyxJQUFNZ0IsV0FBVyxJQUFJLENBQUNELFVBQVUsSUFDMUJrQyxVQUFVO0lBRWhCakMsV0FDRSxJQUFJLENBQUNnQyxRQUFRLENBQUM3QixPQUFPbkIsU0FBU2lELFdBQzVCLElBQUksQ0FBQzhCLGlCQUFpQjtJQUUxQjVELE1BQU1pRSxlQUFlO0lBRXJCaEQsWUFBTSxDQUFDa0QsUUFBUSxDQUFDOUcsaUJBQWlCNkcsZ0JBQWdCLElBQUksR0FBSSxHQUFHO0lBRTVEakQsWUFBTSxDQUFDbUQsVUFBVSxDQUFDRixnQkFBZ0IsSUFBSTtBQUN4QztBQUVBLFNBQVMzRixpQkFBaUJ5QixLQUFLLEVBQUVuQixPQUFPO0lBQ3RDLElBQU0sQUFBRXdGLFNBQVdyRSxNQUFYcUU7SUFFUixJQUFJQSxXQUFXOUcsbUJBQW1CO1FBQ2hDLElBQU1zQyxXQUFXLElBQUksQ0FBQ0QsVUFBVTtRQUVoQyxJQUFJLENBQUNDLFVBQVU7WUFDYixJQUFNSSxXQUFXcUUsSUFBQUEsd0JBQWlCLEVBQUN0RSxRQUM3QkUsWUFBWXFFLElBQUFBLHlCQUFrQixFQUFDdkU7WUFFckMsSUFBSSxDQUFDc0Qsa0JBQWtCLENBQUN0RCxPQUFPbkIsU0FBU29CLFVBQVVDO1FBQ3BEO0lBQ0Y7SUFFQUYsTUFBTWlFLGVBQWU7SUFFckJoRCxZQUFNLENBQUN1RCxPQUFPLENBQUNuSCxpQkFBaUI2RyxnQkFBZ0IsSUFBSSxHQUFHLEdBQUc7SUFFMURqRCxZQUFNLENBQUN3RCxTQUFTLENBQUNQLGdCQUFnQixJQUFJO0FBQ3ZDO0FBRUEsU0FBUzdDLGlCQUFpQnJCLEtBQUssRUFBRW5CLE9BQU87SUFDdEMsSUFBTWdCLFdBQVcsSUFBSSxDQUFDRCxVQUFVO0lBRWhDLElBQUlDLFVBQVU7UUFDWixJQUFNSSxXQUFXcUUsSUFBQUEsd0JBQWlCLEVBQUN0RSxRQUM3QkUsWUFBWXFFLElBQUFBLHlCQUFrQixFQUFDdkU7UUFFckMsSUFBSSxDQUFDNEIsSUFBSSxDQUFDNUIsT0FBT25CLFNBQVNvQixVQUFVQztJQUN0QztJQUVBRixNQUFNaUUsZUFBZTtBQUN2QiJ9
|