adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
151 lines • 21.1 kB
JavaScript
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
import * as React from "react";
import ResizeObserver from "resize-observer-polyfill";
import findDOMNode from "rc-util/lib/Dom/findDOMNode";
import toArray from "rc-util/lib/Children/toArray";
import { composeRef } from "rc-util/lib/ref";
import warning from "../_util/warning";
var supportRef = function supportRef(nodeOrComponent) {
var _nodeOrComponent$type;
if ((_nodeOrComponent$type = nodeOrComponent.type) !== null && _nodeOrComponent$type !== void 0 && _nodeOrComponent$type.$$typeof && nodeOrComponent.type.$$typeof.toString().includes("forward_ref")) {
return false;
}
if (nodeOrComponent.type && nodeOrComponent.type.prototype && !nodeOrComponent.type.prototype.render) {
return false;
}
if (typeof nodeOrComponent === "function") {
return false;
}
return true;
};
var ReactResizeObserver = function (_React$Component) {
function ReactResizeObserver() {
var _this;
_classCallCheck(this, ReactResizeObserver);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _callSuper(this, ReactResizeObserver, [].concat(args));
_this.resizeObserver = null;
_this.childNode = null;
_this.currentElement = null;
_this.state = {
width: 0,
height: 0
};
_this.onResize = function (entries) {
var onResize = _this.props.onResize;
var _this$state = _this.state,
widthState = _this$state.width,
heightState = _this$state.height;
var target = entries[0].target;
var _target$getBoundingCl = target.getBoundingClientRect(),
width = _target$getBoundingCl.width,
height = _target$getBoundingCl.height;
var _ref = [Math.floor(width), Math.floor(height)],
fixedWidth = _ref[0],
fixedHeight = _ref[1];
if (widthState !== fixedWidth || heightState !== fixedHeight) {
var size = {
width: fixedWidth,
height: fixedHeight
};
_this.setState(size);
if (onResize) {
onResize(size);
}
}
};
_this.setChildNode = function (node) {
_this.childNode = node;
};
return _this;
}
_inherits(ReactResizeObserver, _React$Component);
return _createClass(ReactResizeObserver, [{
key: "componentDidMount",
value: function componentDidMount() {
this.onComponentUpdated();
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
this.onComponentUpdated();
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.destroyObserver();
}
}, {
key: "onComponentUpdated",
value: function onComponentUpdated() {
var disabled = this.props.disabled;
if (disabled) {
this.destroyObserver();
return;
}
var element = findDOMNode(this.childNode || this);
var elementChanged = element !== this.currentElement;
if (elementChanged) {
this.destroyObserver();
this.currentElement = element;
}
if (!this.resizeObserver && element) {
this.resizeObserver = new ResizeObserver(this.onResize);
this.resizeObserver.observe(element);
}
}
}, {
key: "destroyObserver",
value: function destroyObserver() {
if (this.resizeObserver) {
this.resizeObserver.disconnect();
this.resizeObserver = null;
}
}
}, {
key: "render",
value: function render() {
var children = this.props.children;
var childNodes = toArray(children);
if (childNodes.length > 1) {
warning(false, "ResizeObserver", "有多个 children,将只会在第一个元素上监听");
} else if (childNodes.length === 0) {
warning(false, "ResizeObserver", "没有 children");
return null;
}
var childNode = childNodes[0];
if (React.isValidElement(childNode) && supportRef(childNode)) {
var _ref2 = childNode,
ref = _ref2.ref;
childNodes[0] = React.cloneElement(childNode, {
ref: composeRef(ref, this.setChildNode)
});
}
return React.createElement(React.Fragment, null, childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {
if (!React.isValidElement(node) || "key" in node && node.key !== null) {
return node;
}
return React.cloneElement(node, {
key: "adui-observer-key-".concat(index)
});
}));
}
}]);
}(React.Component);
ReactResizeObserver.displayName = "ResizeObserver";
export default ReactResizeObserver;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlJlc2l6ZU9ic2VydmVyIiwiZmluZERPTU5vZGUiLCJ0b0FycmF5IiwiY29tcG9zZVJlZiIsIndhcm5pbmciLCJzdXBwb3J0UmVmIiwibm9kZU9yQ29tcG9uZW50IiwiX25vZGVPckNvbXBvbmVudCR0eXBlIiwidHlwZSIsIiQkdHlwZW9mIiwidG9TdHJpbmciLCJpbmNsdWRlcyIsInByb3RvdHlwZSIsInJlbmRlciIsIlJlYWN0UmVzaXplT2JzZXJ2ZXIiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIl9jYWxsU3VwZXIiLCJjb25jYXQiLCJyZXNpemVPYnNlcnZlciIsImNoaWxkTm9kZSIsImN1cnJlbnRFbGVtZW50Iiwic3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsIm9uUmVzaXplIiwiZW50cmllcyIsInByb3BzIiwiX3RoaXMkc3RhdGUiLCJ3aWR0aFN0YXRlIiwiaGVpZ2h0U3RhdGUiLCJ0YXJnZXQiLCJfdGFyZ2V0JGdldEJvdW5kaW5nQ2wiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfcmVmIiwiTWF0aCIsImZsb29yIiwiZml4ZWRXaWR0aCIsImZpeGVkSGVpZ2h0Iiwic2l6ZSIsInNldFN0YXRlIiwic2V0Q2hpbGROb2RlIiwibm9kZSIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJvbkNvbXBvbmVudFVwZGF0ZWQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRlc3Ryb3lPYnNlcnZlciIsImRpc2FibGVkIiwiZWxlbWVudCIsImVsZW1lbnRDaGFuZ2VkIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiLCJjaGlsZHJlbiIsImNoaWxkTm9kZXMiLCJpc1ZhbGlkRWxlbWVudCIsIl9yZWYyIiwicmVmIiwiY2xvbmVFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwibWFwIiwiaW5kZXgiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvcmVzaXplLW9ic2VydmVyL1Jlc2l6ZU9ic2VydmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc2l6ZU9ic2VydmVyIOS8muS7pSBjbGFzcyDnu4Tku7bnmoTlvaLlvI/lrZjlnKjvvIxcbiAqIOWboOS4uuWFtuS9v+eUqCBmaW5kRG9tTm9kZSh0aGlzKSDlrp7njrAgY2hpbGRyZW4g5Li6IGZjIOaXtuS4jeiDvee7mSByZWYg55qE5oOF5Ya1XG4gKiDlpoLmnpwgUmVzaXplT2JzZXJ2ZXIg5Lmf5pivIGZj77yM5bCx5rKh5pyJ5Yqe5rOV5Zyo5LiN5re75Yqg6aKd5aSW57uT5p6E55qE5oOF5Ya15LiL5ou/5YiwIGRvbSDkuoZcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gXCJyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGxcIlxuaW1wb3J0IGZpbmRET01Ob2RlIGZyb20gXCJyYy11dGlsL2xpYi9Eb20vZmluZERPTU5vZGVcIlxuaW1wb3J0IHRvQXJyYXkgZnJvbSBcInJjLXV0aWwvbGliL0NoaWxkcmVuL3RvQXJyYXlcIlxuaW1wb3J0IHsgY29tcG9zZVJlZiB9IGZyb20gXCJyYy11dGlsL2xpYi9yZWZcIlxuaW1wb3J0IHdhcm5pbmcgZnJvbSBcIi4uL191dGlsL3dhcm5pbmdcIlxuXG5pbnRlcmZhY2UgUmVzaXplT2JzZXJ2ZXJFbnRyeSB7XG4gIHJlYWRvbmx5IGJvcmRlckJveFNpemU6IFJlc2l6ZU9ic2VydmVyRW50cnlCb3hTaXplXG4gIHJlYWRvbmx5IGNvbnRlbnRCb3hTaXplOiBSZXNpemVPYnNlcnZlckVudHJ5Qm94U2l6ZVxuICByZWFkb25seSBjb250ZW50UmVjdDogYW55XG4gIHJlYWRvbmx5IHRhcmdldDogRWxlbWVudFxufVxuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyRW50cnlCb3hTaXplIHtcbiAgYmxvY2tTaXplOiBudW1iZXJcbiAgaW5saW5lU2l6ZTogbnVtYmVyXG59XG5cbmNvbnN0IHN1cHBvcnRSZWYgPSAobm9kZU9yQ29tcG9uZW50KSA9PiB7XG4gIGlmIChcbiAgICBub2RlT3JDb21wb25lbnQudHlwZT8uJCR0eXBlb2YgJiZcbiAgICBub2RlT3JDb21wb25lbnQudHlwZS4kJHR5cGVvZi50b1N0cmluZygpLmluY2x1ZGVzKFwiZm9yd2FyZF9yZWZcIilcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBGdW5jdGlvbiBjb21wb25lbnQgbm9kZVxuICBpZiAoXG4gICAgbm9kZU9yQ29tcG9uZW50LnR5cGUgJiZcbiAgICBub2RlT3JDb21wb25lbnQudHlwZS5wcm90b3R5cGUgJiZcbiAgICAhbm9kZU9yQ29tcG9uZW50LnR5cGUucHJvdG90eXBlLnJlbmRlclxuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIENsYXNzIGNvbXBvbmVudFxuICBpZiAodHlwZW9mIG5vZGVPckNvbXBvbmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZXNpemVPYnNlcnZlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25SZXNpemU/OiAoc2l6ZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9KSA9PiB2b2lkXG59XG5cbmludGVyZmFjZSBSZXNpemVPYnNlcnZlclN0YXRlIHtcbiAgaGVpZ2h0OiBudW1iZXJcbiAgd2lkdGg6IG51bWJlclxufVxuXG50eXBlIFJlZk5vZGUgPSBSZWFjdC5SZWFjdEluc3RhbmNlIHwgSFRNTEVsZW1lbnQgfCBudWxsXG5cbmNsYXNzIFJlYWN0UmVzaXplT2JzZXJ2ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIElSZXNpemVPYnNlcnZlclByb3BzLFxuICBSZXNpemVPYnNlcnZlclN0YXRlXG4+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gXCJSZXNpemVPYnNlcnZlclwiXG5cbiAgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGxcblxuICBjaGlsZE5vZGU6IFJlZk5vZGUgPSBudWxsXG5cbiAgY3VycmVudEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuXG4gIHN0YXRlID0ge1xuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMCxcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMub25Db21wb25lbnRVcGRhdGVkKClcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICB0aGlzLm9uQ29tcG9uZW50VXBkYXRlZCgpXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmRlc3Ryb3lPYnNlcnZlcigpXG4gIH1cblxuICBvbkNvbXBvbmVudFVwZGF0ZWQoKSB7XG4gICAgY29uc3QgeyBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgLy8gVW5yZWdpc3RlciBpZiBkaXNhYmxlZFxuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGZpbmRET01Ob2RlKHRoaXMuY2hpbGROb2RlIHx8IHRoaXMpIGFzIEVsZW1lbnRcbiAgICBjb25zdCBlbGVtZW50Q2hhbmdlZCA9IGVsZW1lbnQgIT09IHRoaXMuY3VycmVudEVsZW1lbnRcbiAgICBpZiAoZWxlbWVudENoYW5nZWQpIHtcbiAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKClcbiAgICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSBlbGVtZW50XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnJlc2l6ZU9ic2VydmVyICYmIGVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5vblJlc2l6ZSlcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIG9uUmVzaXplID0gKGVudHJpZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSkgPT4ge1xuICAgIGNvbnN0IHsgb25SZXNpemUgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IHdpZHRoOiB3aWR0aFN0YXRlLCBoZWlnaHQ6IGhlaWdodFN0YXRlIH0gPSB0aGlzLnN0YXRlXG5cbiAgICBjb25zdCB7IHRhcmdldCB9ID0gZW50cmllc1swXVxuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBbZml4ZWRXaWR0aCwgZml4ZWRIZWlnaHRdID0gW01hdGguZmxvb3Iod2lkdGgpLCBNYXRoLmZsb29yKGhlaWdodCldXG5cbiAgICBpZiAod2lkdGhTdGF0ZSAhPT0gZml4ZWRXaWR0aCB8fCBoZWlnaHRTdGF0ZSAhPT0gZml4ZWRIZWlnaHQpIHtcbiAgICAgIGNvbnN0IHNpemUgPSB7IHdpZHRoOiBmaXhlZFdpZHRoLCBoZWlnaHQ6IGZpeGVkSGVpZ2h0IH1cblxuICAgICAgdGhpcy5zZXRTdGF0ZShzaXplKVxuXG4gICAgICBpZiAob25SZXNpemUpIHtcbiAgICAgICAgb25SZXNpemUoc2l6ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDaGlsZE5vZGUgPSAobm9kZTogUmVmTm9kZSkgPT4ge1xuICAgIHRoaXMuY2hpbGROb2RlID0gbm9kZVxuICB9XG5cbiAgZGVzdHJveU9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGxcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0b0FycmF5KGNoaWxkcmVuKVxuXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgd2FybmluZyhcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIFwiUmVzaXplT2JzZXJ2ZXJcIixcbiAgICAgICAgXCLmnInlpJrkuKogY2hpbGRyZW7vvIzlsIblj6rkvJrlnKjnrKzkuIDkuKrlhYPntKDkuIrnm5HlkKxcIlxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHdhcm5pbmcoZmFsc2UsIFwiUmVzaXplT2JzZXJ2ZXJcIiwgXCLmsqHmnIkgY2hpbGRyZW5cIilcblxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZE5vZGUgPSBjaGlsZE5vZGVzWzBdXG5cbiAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSAmJiBzdXBwb3J0UmVmKGNoaWxkTm9kZSkpIHtcbiAgICAgIGNvbnN0IHsgcmVmIH0gPSBjaGlsZE5vZGUgYXMgYW55XG5cbiAgICAgIGNoaWxkTm9kZXNbMF0gPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGROb2RlIGFzIGFueSwge1xuICAgICAgICByZWY6IGNvbXBvc2VSZWYocmVmLCB0aGlzLnNldENoaWxkTm9kZSksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y2hpbGROb2Rlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICA/IGNoaWxkTm9kZXNbMF1cbiAgICAgICAgICA6IGNoaWxkTm9kZXMubWFwKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIVJlYWN0LmlzVmFsaWRFbGVtZW50KG5vZGUpIHx8XG4gICAgICAgICAgICAgICAgKFwia2V5XCIgaW4gbm9kZSAmJiBub2RlLmtleSAhPT0gbnVsbClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQobm9kZSwge1xuICAgICAgICAgICAgICAgIGtleTogYGFkdWktb2JzZXJ2ZXIta2V5LSR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWN0UmVzaXplT2JzZXJ2ZXJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU9BLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0MsY0FBYyxNQUFNLDBCQUEwQjtBQUNyRCxPQUFPQyxXQUFXLE1BQU0sNkJBQTZCO0FBQ3JELE9BQU9DLE9BQU8sTUFBTSw4QkFBOEI7QUFDbEQsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUM1QyxPQUFPQyxPQUFPLE1BQU0sa0JBQWtCO0FBYXRDLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxlQUFlLEVBQUs7RUFBQSxJQUFBQyxxQkFBQTtFQUN0QyxJQUNFLENBQUFBLHFCQUFBLEdBQUFELGVBQWUsQ0FBQ0UsSUFBSSxjQUFBRCxxQkFBQSxlQUFwQkEscUJBQUEsQ0FBc0JFLFFBQVEsSUFDOUJILGVBQWUsQ0FBQ0UsSUFBSSxDQUFDQyxRQUFRLENBQUNDLFFBQVEsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFDaEU7SUFDQSxPQUFPLEtBQUs7RUFDZDtFQUdBLElBQ0VMLGVBQWUsQ0FBQ0UsSUFBSSxJQUNw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