New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-linkedinbadge

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-linkedinbadge - npm Package Compare versions

Comparing version 2.0.77 to 2.0.121

68

lib/index.js

@@ -10,5 +10,2 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

//Must match callback on helpers.js
//Keeps track of number of responses recieved for proper cleanup when finished
//Keeps track of number of responses to expect
//Keeps track of scripts added for proper cleanup when finished
static isCNDomain() {

@@ -44,12 +41,2 @@ if (typeof window !== "undefined") {

_defineProperty(this, "responsesReceived", 0);
_defineProperty(this, "expectedResponses", 0);
_defineProperty(this, "scripts", []);
_defineProperty(this, "childScripts", void 0);
_defineProperty(this, "badges", void 0);
this.state = {

@@ -64,13 +51,18 @@ locale: props.locale || "en_US",

title: props.title || "Linkedin.com/in/liu",
className: props.className || this.BASE_NAME + this.BADGE_NAMES[0].replace(".", ""),
className: props.className || `${this.BASE_NAME} ${this.BADGE_NAMES[0].replace('.', '')}`,
linkClassName: props.linkClassName || this.SCRIPT_NAMES.map(name => name.replace(".", "")).join(" "),
trackingParam: props.trackingParam || this.TRACKING_PARAM
trackingParam: props.trackingParam || this.TRACKING_PARAM,
expectedResponses: 0,
responsesReceived: 0,
scripts: [],
childScripts: new Map(),
badges: Array.prototype.slice.call(document.querySelectorAll(this.BADGE_NAMES.join(" ")).values(), 0)
};
this.responseHandler = this.responseHandler.bind(this);
this.childScripts = new Map();
this.tryClean = this.tryClean.bind(this);
this.getBadgeKeyQueryParams = this.getBadgeKeyQueryParams.bind(this);
this.liuRenderAll = this.liuRenderAll.bind(this);
this.replaceScriptTags = this.replaceScriptTags.bind(this);
this.badges = Array.prototype.slice.call(document.querySelectorAll(this.BADGE_NAMES.join(" ")).values(), 0);
this.renderBadge = this.renderBadge.bind(this);
this.jsonp = this.jsonp.bind(this);
window[this.CALLBACK_NAME] = this.responseHandler;

@@ -85,7 +77,9 @@ }

// FROM LINKEDIN TODO -- tracking param for other badge types
for (const badge of this.badges) {
for (const badge of this.state.badges) {
const rendered = badge.getAttribute("data-rendered");
if (rendered !== null && rendered.length > 0) {
this.expectedResponses++;
this.setState({
expectedResponses: this.state.expectedResponses + 1
});
badge.setAttribute("data-rendered", "true");

@@ -164,3 +158,5 @@ this.renderBadge(badge);

responseHandler(badgeHtml, badgeUid) {
this.responsesReceived++;
this.setState({
responsesReceived: this.state.responsesReceived + 1
});
let i, badge, uid, isCreate;

@@ -171,3 +167,3 @@ const defaultWidth = 330; // max possible width

for (const badge of this.badges) {
for (const badge of this.state.badges) {
isCreate = badge.hasAttribute("data-iscreate");

@@ -197,3 +193,7 @@ uid = badge.getAttribute("data-uid");

node.parentNode?.replaceChild(this.cloneScriptNode(node), node);
this.childScripts.set(node, true);
const childScripts = this.state.childScripts;
childScripts.set(node, true);
this.setState({
childScripts
});
} else {

@@ -212,3 +212,3 @@ let i = 0,

shouldReplaceNode(node, isCreate) {
return this.isScriptNode(node) && !this.childScripts.get(node) && (!isCreate || isCreate && !node.getAttribute("data-isartdeco"));
return this.isScriptNode(node) && !this.state.childScripts.get(node) && (!isCreate || isCreate && !node.getAttribute("data-isartdeco"));
}

@@ -234,3 +234,3 @@

return /*#__PURE__*/React.createElement("div", {
className: "badge-base LI-profile-badge",
className: this.state.className,
"data-locale": this.state.locale,

@@ -243,5 +243,5 @@ "data-size": this.state.size,

}, /*#__PURE__*/React.createElement("a", {
className: "badge-base__link LI-simple-link",
className: this.state.linkClassName,
href: `${'https://www.linkedin.com/in/' + this.state.vanity + '?trk=profile-badge'}`
}, "Ziping L."));
}, this.state.title));
} // Gets all incoming responses

@@ -257,3 +257,3 @@

//Accounts for people including script more than once
const done = this.responsesReceived >= this.expectedResponses && this.expectedResponses > 0 || this.responsesReceived >= this.badges.length;
const done = this.state.responsesReceived >= this.state.expectedResponses && this.state.expectedResponses > 0 || this.state.responsesReceived >= this.state.badges.length;

@@ -263,5 +263,9 @@ if (done) {

this.scripts.map(function (script) {
const scripts = this.state.scripts;
scripts.map(function (script) {
document.body.removeChild(script);
});
this.setState({
scripts
});
}

@@ -278,3 +282,7 @@ }

script.src = url;
this.scripts.push(script);
const scripts = this.state.scripts;
scripts.push(script);
this.setState({
scripts
});
document.body.appendChild(script);

@@ -284,2 +292,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImNyZWF0ZVJvb3QiLCJjbG9uZURlZXAiLCJMaW5rZWRpbkJhZGdlTG9hZGVyIiwiaXNDTkRvbWFpbiIsIndpbmRvdyIsImhvc3ROYW1lIiwibG9jYXRpb24iLCJob3N0bmFtZSIsImhyZWYiLCJ1cmwiLCJVUkwiLCJkb21haW4iLCJ0ZXN0IiwiZ2VuZXJhdGVVcmwiLCJpc0VJIiwiZG9tYWluUHJlZml4IiwiZG9tYWluU3VmZml4IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwibG9jYWxlIiwic2l6ZSIsInRoZW1lIiwidHlwZSIsInZhbml0eSIsInZlcnNpb24iLCJiYWRnZUxvYWRlZCIsInRpdGxlIiwiY2xhc3NOYW1lIiwiQkFTRV9OQU1FIiwiQkFER0VfTkFNRVMiLCJyZXBsYWNlIiwibGlua0NsYXNzTmFtZSIsIlNDUklQVF9OQU1FUyIsIm1hcCIsIm5hbWUiLCJqb2luIiwidHJhY2tpbmdQYXJhbSIsIlRSQUNLSU5HX1BBUkFNIiwicmVzcG9uc2VIYW5kbGVyIiwiYmluZCIsImNoaWxkU2NyaXB0cyIsIk1hcCIsInRyeUNsZWFuIiwibGl1UmVuZGVyQWxsIiwicmVwbGFjZVNjcmlwdFRhZ3MiLCJiYWRnZXMiLCJBcnJheSIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInZhbHVlcyIsInJlbmRlckJhZGdlIiwiQ0FMTEJBQ0tfTkFNRSIsImJhZGdlIiwicmVuZGVyZWQiLCJnZXRBdHRyaWJ1dGUiLCJsZW5ndGgiLCJleHBlY3RlZFJlc3BvbnNlcyIsInNldEF0dHJpYnV0ZSIsImdldEJhZGdlS2V5UXVlcnlQYXJhbXMiLCJwYXJhbXMiLCJrZXlfcmVnZXgiLCJhdHRyIiwiYXR0cmlidXRlcyIsInN0YXJ0c1dpdGgiLCJtYXRjaCIsInBhcmFtc0ZvdW5kIiwiZm9yRWFjaCIsInBhcmFtIiwicHVzaCIsInZhbHVlIiwiaGFzQXR0cmlidXRlIiwiZW50aXR5IiwiaXNDcmVhdGVQYWdlIiwidWlkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiYmFzZVVybCIsInF1ZXJ5UGFyYW1zIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiY29uY2F0IiwiU3RyaW5nIiwic2V0U3RhdGUiLCJqc29ucCIsImJhZGdlSHRtbCIsImJhZGdlVWlkIiwicmVzcG9uc2VzUmVjZWl2ZWQiLCJpIiwiaXNDcmVhdGUiLCJkZWZhdWx0V2lkdGgiLCJkZWZhdWx0SGVpZ2h0IiwiYmFkZ2VNYXJrdXAiLCJpbm5lckhUTUwiLCJpZnJhbWUiLCJjcmVhdGVFbGVtZW50Iiwib25sb2FkIiwiaWZyYW1lQm9keSIsImNvbnRlbnRXaW5kb3ciLCJib2R5Iiwic2Nyb2xsSGVpZ2h0Iiwic2Nyb2xsV2lkdGgiLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsIm5vZGUiLCJzaG91bGRSZXBsYWNlTm9kZSIsInBhcmVudE5vZGUiLCJyZXBsYWNlQ2hpbGQiLCJjbG9uZVNjcmlwdE5vZGUiLCJzZXQiLCJjaGlsZHJlbiIsImNoaWxkTm9kZXMiLCJpc1NjcmlwdE5vZGUiLCJnZXQiLCJ0YWdOYW1lIiwic2NyaXB0IiwiY2xvbmVOb2RlIiwiZG9uZSIsInNjcmlwdHMiLCJyZW1vdmVDaGlsZCIsInNyYyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBnZW5lcmF0ZWQsIGhhc2ggPSAyeG5yOTh1MGl1eDY2aDVxOWxreHF1djVxICovXHJcbi8vRnJvbSBMaW5rZWRJbiBUT0RPOiBCcmVhayB0aGlzIGZpbGUgZG93biBzbyB0aGF0IHdlIGNhbiBhY3R1YWxseSB1bml0IHRlc3QgaXQuXHJcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tIFwicmVhY3QtZG9tL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoXCI7XHJcblxyXG5leHBvcnQgdHlwZSBMaW5rZWRpbkJhZGdlTG9hZGVyUHJvcHMgPSB7XHJcbiAgbG9jYWxlPzpzdHJpbmc7XHJcbiAgc2l6ZT86J3NtYWxsJ3wnbWVkaXVtJ3wnbGFyZ2UnO1xyXG4gICB0aGVtZT86J2RhcmsnfCdsaWdodCc7XHJcbiAgIHR5cGU/Oidob3Jpem9udGFsJ3wndmVydGljYWwnO1xyXG4gICB2YW5pdHk/OnN0cmluZztcclxuICAgdmVyc2lvbj86J3YxJ3wndjInO1xyXG4gICBjbGFzc05hbWU/OnN0cmluZztcclxuICAgbGlua0NsYXNzTmFtZT86c3RyaW5nO1xyXG4gICB0cmFja2luZ1BhcmFtPzpzdHJpbmc7XHJcbiAgdGl0bGU/OnN0cmluZztcclxuIH1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlua2VkaW5CYWRnZUxvYWRlciBleHRlbmRzIENvbXBvbmVudDxhbnksUmVxdWlyZWQ8TGlua2VkaW5CYWRnZUxvYWRlclByb3BzICYge2JhZGdlTG9hZGVkOmJvb2xlYW59PiA+IHtcclxuICByZWFkb25seSBDQUxMQkFDS19OQU1FOiBzdHJpbmcgPSBcIkxJQmFkZ2VDYWxsYmFja1wiOyAvL011c3QgbWF0Y2ggY2FsbGJhY2sgb24gaGVscGVycy5qc1xyXG4gIHJlYWRvbmx5IEJBREdFX05BTUVTID0gW1wiLkxJLXByb2ZpbGUtYmFkZ2VcIiwgXCIuTEktZW50aXR5LWJhZGdlXCJdO1xyXG4gIHJlYWRvbmx5IFNDUklQVF9OQU1FUyA9W1wiLmJhZGdlLWJhc2VfX2xpbmtcIiwgXCIuTEktc2ltcGxlLWxpbmtcIl1cclxuICByZWFkb25seSBCQVNFX05BTUUgPSBcImJhZGdlLWJhc2VcIjtcclxuICByZWFkb25seSBUUkFDS0lOR19QQVJBTSA9IFwicHJvZmlsZS1iYWRnZVwiO1xyXG4gIHByaXZhdGUgcmVzcG9uc2VzUmVjZWl2ZWQgPSAwOyAvL0tlZXBzIHRyYWNrIG9mIG51bWJlciBvZiByZXNwb25zZXMgcmVjaWV2ZWQgZm9yIHByb3BlciBjbGVhbnVwIHdoZW4gZmluaXNoZWRcclxuICBwcml2YXRlIGV4cGVjdGVkUmVzcG9uc2VzID0gMDsgLy9LZWVwcyB0cmFjayBvZiBudW1iZXIgb2YgcmVzcG9uc2VzIHRvIGV4cGVjdFxyXG4gIHByaXZhdGUgc2NyaXB0czogSFRNTFNjcmlwdEVsZW1lbnRbXSA9IFtdOyAvL0tlZXBzIHRyYWNrIG9mIHNjcmlwdHMgYWRkZWQgZm9yIHByb3BlciBjbGVhbnVwIHdoZW4gZmluaXNoZWRcclxuICBwcml2YXRlIGNoaWxkU2NyaXB0czogTWFwPE5vZGUsIGJvb2xlYW4+O1xyXG4gIHJlYWRvbmx5IGJhZGdlczogSFRNTEVsZW1lbnRbXTtcclxuXHJcbiAgc3RhdGljIGlzQ05Eb21haW4oKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICBjb25zdCBob3N0TmFtZSA9XHJcbiAgICAgICAgd2luZG93Py5sb2NhdGlvbj8uaG9zdG5hbWUgfHwgd2luZG93Py5sb2NhdGlvbj8uaHJlZiB8fCBcIlwiO1xyXG5cclxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0TmFtZSk7XHJcbiAgICAgIGNvbnN0IGRvbWFpbiA9IHVybC5ob3N0bmFtZTtcclxuICAgICAgcmV0dXJuIC9saW5rZWRpbigtZWkpPy5jbiQvLnRlc3QoZG9tYWluKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZW5lcmF0ZVVybChpc0VJOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBkb21haW5QcmVmaXggPSBpc0VJXHJcbiAgICAgID8gXCJodHRwczovL2JhZGdlcy5saW5rZWRpbi1laVwiXHJcbiAgICAgIDogXCJodHRwczovL2JhZGdlcy5saW5rZWRpblwiO1xyXG4gICAgY29uc3QgZG9tYWluU3VmZml4ID0gTGlua2VkaW5CYWRnZUxvYWRlci5pc0NORG9tYWluKCkgPyBcIi5jblwiIDogXCJcIjtcclxuICAgIHJldHVybiBgJHtkb21haW5QcmVmaXh9JHtkb21haW5TdWZmaXh9L2pzL2xpbmtlZEluQmFkZ2UuanNgO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcm9wczogTGlua2VkaW5CYWRnZUxvYWRlclByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBsb2NhbGU6IHByb3BzLmxvY2FsZSB8fCBcImVuX1VTXCIsXHJcbiAgICAgIHNpemU6IHByb3BzLnNpemUgfHwgXCJtZWRpdW1cIixcclxuICAgICAgdGhlbWU6IHByb3BzLnRoZW1lIHx8IFwibGlnaHRcIixcclxuICAgICAgdHlwZTogcHJvcHMudHlwZSB8fCBcImhvcml6b250YWxcIixcclxuICAgICAgdmFuaXR5OiBwcm9wcy52YW5pdHkgfHwgXCJsaXVcIixcclxuICAgICAgdmVyc2lvbjogcHJvcHMudmVyc2lvbiB8fCBcInYxXCIsXHJcbiAgICAgIGJhZGdlTG9hZGVkOiBmYWxzZSxcclxuICAgICAgdGl0bGU6IHByb3BzLnRpdGxlIHx8IFwiTGlua2VkaW4uY29tL2luL2xpdVwiLFxyXG4gICAgICBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSB8fCB0aGlzLkJBU0VfTkFNRSArIHRoaXMuQkFER0VfTkFNRVNbMF0ucmVwbGFjZShcIi5cIiwgXCJcIiksXHJcbiAgICAgIGxpbmtDbGFzc05hbWU6IHByb3BzLmxpbmtDbGFzc05hbWUgfHwgdGhpcy5TQ1JJUFRfTkFNRVMubWFwKChuYW1lKSA9PiBuYW1lLnJlcGxhY2UoXCIuXCIsXCJcIikpLmpvaW4oXCIgXCIpLFxyXG4gICAgICB0cmFja2luZ1BhcmFtOiBwcm9wcy50cmFja2luZ1BhcmFtIHx8IHRoaXMuVFJBQ0tJTkdfUEFSQU0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNwb25zZUhhbmRsZXIgPSB0aGlzLnJlc3BvbnNlSGFuZGxlci5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5jaGlsZFNjcmlwdHMgPSBuZXcgTWFwPE5vZGUsIGJvb2xlYW4+KCk7XHJcbiAgICB0aGlzLnRyeUNsZWFuID0gdGhpcy50cnlDbGVhbi5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5saXVSZW5kZXJBbGwgPSB0aGlzLmxpdVJlbmRlckFsbC5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5yZXBsYWNlU2NyaXB0VGFncyA9IHRoaXMucmVwbGFjZVNjcmlwdFRhZ3MuYmluZCh0aGlzKTtcclxuICAgIHRoaXMuYmFkZ2VzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoXHJcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5CQURHRV9OQU1FUy5qb2luKFwiIFwiKSkudmFsdWVzKCksXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgICB0aGlzLnJlbmRlckJhZGdlID0gdGhpcy5yZW5kZXJCYWRnZS5iaW5kKHRoaXMpO1xyXG5cclxuICAgICh3aW5kb3cgYXMgYW55KVt0aGlzLkNBTExCQUNLX05BTUVdID0gdGhpcy5yZXNwb25zZUhhbmRsZXI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbmRlcnMgYWxsIHVucmVuZHJlZCBMaW5rZWRJbiBCYWRnZXMgb24gdGhlIHBhZ2VcclxuICAgKi9cclxuICBsaXVSZW5kZXJBbGwoKSB7XHJcbiAgICAvLyBGUk9NIExJTktFRElOIFRPRE8gLS0gdHJhY2tpbmcgcGFyYW0gZm9yIG90aGVyIGJhZGdlIHR5cGVzXHJcblxyXG4gICAgZm9yIChjb25zdCBiYWRnZSBvZiB0aGlzLmJhZGdlcykge1xyXG4gICAgICBjb25zdCByZW5kZXJlZCA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtcmVuZGVyZWRcIik7XHJcbiAgICAgIGlmIChyZW5kZXJlZCAhPT0gbnVsbCAmJiByZW5kZXJlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5leHBlY3RlZFJlc3BvbnNlcysrO1xyXG4gICAgICAgIGJhZGdlLnNldEF0dHJpYnV0ZShcImRhdGEtcmVuZGVyZWRcIiwgXCJ0cnVlXCIpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyQmFkZ2UoYmFkZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCYWRnZUtleVF1ZXJ5UGFyYW1zKGJhZGdlOiBIVE1MRWxlbWVudCkge1xyXG4gICAgY29uc3QgcGFyYW1zOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3Qga2V5X3JlZ2V4ID0gL2RhdGEtKFxcdyspLztcclxuICAgIGZvciAoY29uc3QgYXR0ciBvZiBiYWRnZS5hdHRyaWJ1dGVzKSB7XHJcbiAgICAgIGlmIChhdHRyLm5hbWUuc3RhcnRzV2l0aChcImRhdGEtXCIpICYmIGF0dHIubmFtZS5tYXRjaChrZXlfcmVnZXgpKSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zRm91bmQgPSBhdHRyLm5hbWUubWF0Y2goa2V5X3JlZ2V4KTtcclxuXHJcbiAgICAgICAgcGFyYW1zRm91bmQ/LmZvckVhY2goKHBhcmFtKSA9PiB7XHJcbiAgICAgICAgICBwYXJhbXMucHVzaChgJHtwYXJhbX09JHthdHRyLnZhbHVlfWApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG5cclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmVuZGVycyBhIHNpbmdsZSBiYWRnZSBvbiB0aGUgcGFnZVxyXG4gICAqIEBwYXJhbSBiYWRnZTogZGl2IGVsZW1lbnQgb2YgYmFkZ2UgdG8gcmVuZGVyXHJcbiAgICovXHJcbiAgcmVuZGVyQmFkZ2UoYmFkZ2U6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBsZXQgc2l6ZSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtc2l6ZVwiKSB8fCBcIm1lZGl1bVwiLFxyXG4gICAgICBsb2NhbGUgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWxvY2FsZVwiKSB8fCBcImVuX1VTXCIsXHJcbiAgICAgIHR5cGUgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIikgfHwgXCJ2ZXJ0aWNhbFwiLFxyXG4gICAgICB0aGVtZSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtdGhlbWVcIikgfHwgXCJsaWdodFwiLFxyXG4gICAgICB2YW5pdHkgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbml0eVwiKSB8fCBcIlwiLFxyXG4gICAgICB2ZXJzaW9uID0gYmFkZ2UuZ2V0QXR0cmlidXRlKFwiZGF0YS12ZXJzaW9uXCIpIHx8IFwidjFcIixcclxuICAgICAgaXNFSSA9IGJhZGdlLmhhc0F0dHJpYnV0ZShcImRhdGEtZWlcIikgfHwgZmFsc2UsXHJcbiAgICAgIGVudGl0eSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtZW50aXR5XCIpIHx8IFwiXCIsXHJcbiAgICAgIGlzQ3JlYXRlUGFnZSA9IGJhZGdlLmhhc0F0dHJpYnV0ZShcImRhdGEtaXNjcmVhdGVcIikgfHwgZmFsc2UsXHJcbiAgICAgIHVpZCA9IE1hdGgucm91bmQoMTAwMDAwMCAqIE1hdGgucmFuZG9tKCkpLFxyXG4gICAgICBiYXNlVXJsID0gTGlua2VkaW5CYWRnZUxvYWRlci5nZW5lcmF0ZVVybChpc0VJKSxcclxuICAgICAgcXVlcnlQYXJhbXMgPSBbXHJcbiAgICAgICAgXCJsb2NhbGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQobG9jYWxlKSxcclxuICAgICAgICBcImJhZGdldHlwZT1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh0eXBlKSxcclxuICAgICAgICBcImJhZGdldGhlbWU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodGhlbWUpLFxyXG4gICAgICAgIFwidWlkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHVpZCksXHJcbiAgICAgICAgXCJ2ZXJzaW9uPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHZlcnNpb24pLFxyXG4gICAgICBdO1xyXG5cclxuICAgIGxldCB1cmwgPSBiYXNlVXJsICsgXCI/XCIgKyBxdWVyeVBhcmFtcy5qb2luKFwiJlwiKTtcclxuXHJcbiAgICBpZiAodmVyc2lvbiA9PT0gXCJ2MlwiKSB7XHJcbiAgICAgIGJhc2VVcmwgKz0gXCJ2aWV3XCI7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJiYWRnZXNpemU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc2l6ZSkpO1xyXG4gICAgICBxdWVyeVBhcmFtcy5wdXNoKFwiZW50aXR5PVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGVudGl0eSkpO1xyXG4gICAgICBxdWVyeVBhcmFtcyA9IHF1ZXJ5UGFyYW1zLmNvbmNhdCh0aGlzLmdldEJhZGdlS2V5UXVlcnlQYXJhbXMoYmFkZ2UpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGJhc2VVcmwgKz0gXCJwcm9maWxlXCI7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJtYXhzaXplPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHNpemUpKTtcclxuICAgICAgcXVlcnlQYXJhbXMucHVzaChcInRyaz1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLlRSQUNLSU5HX1BBUkFNKSk7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJ2YW5pdHluYW1lPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbml0eSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0NyZWF0ZVBhZ2UpIHtcclxuICAgICAgcXVlcnlQYXJhbXMucHVzaChcImZyb21DcmVhdGU9dHJ1ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB1cmwgPSBiYXNlVXJsICsgXCI/XCIgKyBxdWVyeVBhcmFtcy5qb2luKFwiJlwiKTtcclxuICAgIGJhZGdlLnNldEF0dHJpYnV0ZShcImRhdGEtdWlkXCIsIFN0cmluZyh1aWQpKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBiYWRnZUxvYWRlZDogdHJ1ZSB9KTtcclxuICAgIHRoaXMuanNvbnAodXJsKTsgLy9DYWxscyByZXNwb25zZUhhbmRsZXIgd2hlbiBkb25lXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLiBGaW5kcyBiYWRnZSBtYXRjaGluZyBiYWRnZVVpZCBhbmQgaW5zZXJ0cyBiYWRnZUh0bWwgdGhlcmVcclxuICAgKiBAcGFyYW0gYmFkZ2VIdG1sOiBTdHJpbmcgcmVwcmVzZW50aW5nIGNvbnRlbnRzIG9mIHRoZSBiYWRnZVxyXG4gICAqIEBwYXJhbSBiYWRnZVVpZDogVUlEIG9mIHRoZSBiYWRnZSB0byB0YXJnZXRcclxuICAgKiovXHJcbiAgcmVzcG9uc2VIYW5kbGVyKGJhZGdlSHRtbDogSFRNTEVsZW1lbnQsIGJhZGdlVWlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmVzcG9uc2VzUmVjZWl2ZWQrKztcclxuXHJcbiAgICBsZXQgaSwgYmFkZ2UsIHVpZCwgaXNDcmVhdGU7XHJcbiAgICBjb25zdCBkZWZhdWx0V2lkdGggPSAzMzA7IC8vIG1heCBwb3NzaWJsZSB3aWR0aFxyXG4gICAgY29uc3QgZGVmYXVsdEhlaWdodCA9IDMwMDsgLy8gbWF4IHBvc3NpYmxlIGhlaWdodFxyXG5cclxuICAgIGZvciAoY29uc3QgYmFkZ2Ugb2YgdGhpcy5iYWRnZXMpIHtcclxuICAgICAgaXNDcmVhdGUgPSBiYWRnZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLWlzY3JlYXRlXCIpO1xyXG4gICAgICB1aWQgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXVpZFwiKTtcclxuICAgICAgaWYgKHVpZCA9PT0gYmFkZ2VVaWQpIHtcclxuICAgICAgICBjb25zdCBiYWRnZU1hcmt1cCA9IGJhZGdlLmlubmVySFRNTDtcclxuXHJcbiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcclxuICAgICAgICBpZnJhbWUub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWZyYW1lQm9keSA9IGlmcmFtZT8uY29udGVudFdpbmRvdz8uZG9jdW1lbnQuYm9keTtcclxuICAgICAgICAgIC8vIDUgcHggYnVmZmVyIHRvIGF2b2lkIHRoZSBiYWRnZSBib3JkZXIgYmVpbmcgY3V0IG9mZi5cclxuICAgICAgICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCIsXHJcbiAgICAgICAgICAgIFN0cmluZygoaWZyYW1lQm9keT8uc2Nyb2xsSGVpZ2h0IHx8IGRlZmF1bHRIZWlnaHQpICsgNSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICBcIndpZHRoXCIsXHJcbiAgICAgICAgICAgIFN0cmluZyhpZnJhbWVCb2R5Py5zY3JvbGxXaWR0aCB8fCBkZWZhdWx0V2lkdGgpICsgNVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjcmVhdGVSb290KGlmcmFtZSkucmVuZGVyKFxyXG4gICAgICAgICAgPGJvZHk+XHJcbiAgICAgICAgICAgIDw+e2JhZGdlSHRtbH08Lz5cclxuICAgICAgICAgIDwvYm9keT5cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZnJhbWUuYXBwZW5kQ2hpbGQoYmFkZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGJhZGdlIG1hcmt1cCBpcyBhZGRlZCB2aWEgaW5uZXJIdG1sIHByb3BlcnR5IHdoaWNoIGRvZXMgbm90IHJ1biBzY3JpcHQgdGFnc1xyXG4gIHJlcGxhY2VTY3JpcHRUYWdzKG5vZGU6IE5vZGUsIGlzQ3JlYXRlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5zaG91bGRSZXBsYWNlTm9kZShub2RlIGFzIEhUTUxFbGVtZW50LCBpc0NyZWF0ZSkpIHtcclxuICAgICAgbm9kZS5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQoXHJcbiAgICAgICAgdGhpcy5jbG9uZVNjcmlwdE5vZGUobm9kZSBhcyBIVE1MRWxlbWVudCksXHJcbiAgICAgICAgbm9kZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNoaWxkU2NyaXB0cy5zZXQobm9kZSwgdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgaSA9IDAsXHJcbiAgICAgICAgY2hpbGRyZW4gPSBub2RlLmNoaWxkTm9kZXM7XHJcbiAgICAgIHdoaWxlIChpIDwgY2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5yZXBsYWNlU2NyaXB0VGFncyhjaGlsZHJlbltpKytdLCBpc0NyZWF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkUmVwbGFjZU5vZGUobm9kZTogSFRNTEVsZW1lbnQsIGlzQ3JlYXRlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmlzU2NyaXB0Tm9kZShub2RlKSAmJlxyXG4gICAgICAhdGhpcy5jaGlsZFNjcmlwdHMuZ2V0KG5vZGUpICYmXHJcbiAgICAgICghaXNDcmVhdGUgfHwgKGlzQ3JlYXRlICYmICFub2RlLmdldEF0dHJpYnV0ZShcImRhdGEtaXNhcnRkZWNvXCIpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpc1NjcmlwdE5vZGUobm9kZTogSFRNTEVsZW1lbnQpIHtcclxuICAgIHJldHVybiBub2RlLnRhZ05hbWUgPT09IFwiU0NSSVBUXCI7XHJcbiAgfVxyXG4gIGNsb25lU2NyaXB0Tm9kZShub2RlOiBIVE1MRWxlbWVudCkge1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcclxuXHJcbiAgICBjb25zdCBjbG9uZU5vZGUgPSBjbG9uZURlZXAobm9kZSk7XHJcbiAgICBmb3IgKGxldCBpID0gY2xvbmVOb2RlLmF0dHJpYnV0ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcclxuICAgICAgICBjbG9uZU5vZGUuYXR0cmlidXRlc1tpXS5uYW1lLFxyXG4gICAgICAgIGNsb25lTm9kZS5hdHRyaWJ1dGVzW2ldLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2NyaXB0O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgdGhpcy5saXVSZW5kZXJBbGwoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9XCJiYWRnZS1iYXNlIExJLXByb2ZpbGUtYmFkZ2VcIlxyXG4gICAgICAgIGRhdGEtbG9jYWxlPXt0aGlzLnN0YXRlLmxvY2FsZX1cclxuICAgICAgICBkYXRhLXNpemU9e3RoaXMuc3RhdGUuc2l6ZX1cclxuICAgICAgICBkYXRhLXRoZW1lPXt0aGlzLnN0YXRlLnRoZW1lfVxyXG4gICAgICAgIGRhdGEtdHlwZT17dGhpcy5zdGF0ZS50eXBlfVxyXG4gICAgICAgIGRhdGEtdmFuaXR5PSAge3RoaXMuc3RhdGUudmFuaXR5fVxyXG4gICAgICAgIGRhdGEtdmVyc2lvbj17dGhpcy5zdGF0ZS52ZXJzaW9ufVxyXG5cdFx0XHJcbiAgICAgID5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmFkZ2UtYmFzZV9fbGluayBMSS1zaW1wbGUtbGlua1wiXHJcbiAgICAgICAgICBocmVmPXtgJHsnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luLycgKyB0aGlzLnN0YXRlLnZhbml0eSArICc/dHJrPXByb2ZpbGUtYmFkZ2UnfWB9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgWmlwaW5nIEwuXHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXRzIGFsbCBpbmNvbWluZyByZXNwb25zZXNcclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZXMgdG8gY2xlYW4gYWRkZWQgdGFnc1xyXG4gICAqKi9cclxuICB0cnlDbGVhbigpIHtcclxuICAgIC8vQ2xlYW4gdXAgYWZ0ZXIgYWxsIHJlcXVlc3RzIGFyZSBkb25lLi5cclxuICAgIC8vQWNjb3VudHMgZm9yIHBlb3BsZSBpbmNsdWRpbmcgc2NyaXB0IG1vcmUgdGhhbiBvbmNlXHJcbiAgICBjb25zdCBkb25lID1cclxuICAgICAgKHRoaXMucmVzcG9uc2VzUmVjZWl2ZWQgPj0gdGhpcy5leHBlY3RlZFJlc3BvbnNlcyAmJlxyXG4gICAgICAgIHRoaXMuZXhwZWN0ZWRSZXNwb25zZXMgPiAwKSB8fFxyXG4gICAgICB0aGlzLnJlc3BvbnNlc1JlY2VpdmVkID49IHRoaXMuYmFkZ2VzLmxlbmd0aDtcclxuICAgIGlmIChkb25lKSB7XHJcbiAgICAgIGRlbGV0ZSAod2luZG93IGFzIGFueSlbYCR7dGhpcy5DQUxMQkFDS19OQU1FfWBdO1xyXG5cclxuICAgICAgLy8gcmVtb3ZlIGFsbCBzY3JpcHQgdGFnc1xyXG4gICAgICB0aGlzLnNjcmlwdHMubWFwKGZ1bmN0aW9uIChzY3JpcHQpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNjcmlwdCk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE1ha2VzIEpzb25wIHJlcXVlc3QsIHJlc3BvbnNlcyBoYW5kbGVzIGJ5IENBTExCQUNLX05BTUVcclxuICAgKiBAcGFyYW0gdXJsIFN0cmluZzogdXJsIG9mIHNlcnZlciB0byBtYWtlIHJlcXVlc3QgdG9cclxuICAgKi9cclxuICBqc29ucCh1cmw6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcclxuICAgIHNjcmlwdC5zcmMgPSB1cmw7XHJcbiAgICB0aGlzLnNjcmlwdHMucHVzaChzY3JpcHQpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gIH1cclxufVxyXG5cclxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQSxPQUFPQSxLQUFQLElBQWdCQyxTQUFoQixRQUFpQyxPQUFqQztBQUVBLFNBQVNDLFVBQVQsUUFBMkIsa0JBQTNC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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImNyZWF0ZVJvb3QiLCJjbG9uZURlZXAiLCJMaW5rZWRpbkJhZGdlTG9hZGVyIiwiaXNDTkRvbWFpbiIsIndpbmRvdyIsImhvc3ROYW1lIiwibG9jYXRpb24iLCJob3N0bmFtZSIsImhyZWYiLCJ1cmwiLCJVUkwiLCJkb21haW4iLCJ0ZXN0IiwiZ2VuZXJhdGVVcmwiLCJpc0VJIiwiZG9tYWluUHJlZml4IiwiZG9tYWluU3VmZml4IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwibG9jYWxlIiwic2l6ZSIsInRoZW1lIiwidHlwZSIsInZhbml0eSIsInZlcnNpb24iLCJiYWRnZUxvYWRlZCIsInRpdGxlIiwiY2xhc3NOYW1lIiwiQkFTRV9OQU1FIiwiQkFER0VfTkFNRVMiLCJyZXBsYWNlIiwibGlua0NsYXNzTmFtZSIsIlNDUklQVF9OQU1FUyIsIm1hcCIsIm5hbWUiLCJqb2luIiwidHJhY2tpbmdQYXJhbSIsIlRSQUNLSU5HX1BBUkFNIiwiZXhwZWN0ZWRSZXNwb25zZXMiLCJyZXNwb25zZXNSZWNlaXZlZCIsInNjcmlwdHMiLCJjaGlsZFNjcmlwdHMiLCJNYXAiLCJiYWRnZXMiLCJBcnJheSIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInZhbHVlcyIsInJlc3BvbnNlSGFuZGxlciIsImJpbmQiLCJ0cnlDbGVhbiIsImdldEJhZGdlS2V5UXVlcnlQYXJhbXMiLCJsaXVSZW5kZXJBbGwiLCJyZXBsYWNlU2NyaXB0VGFncyIsInJlbmRlckJhZGdlIiwianNvbnAiLCJDQUxMQkFDS19OQU1FIiwiYmFkZ2UiLCJyZW5kZXJlZCIsImdldEF0dHJpYnV0ZSIsImxlbmd0aCIsInNldFN0YXRlIiwic2V0QXR0cmlidXRlIiwicGFyYW1zIiwia2V5X3JlZ2V4IiwiYXR0ciIsImF0dHJpYnV0ZXMiLCJzdGFydHNXaXRoIiwibWF0Y2giLCJwYXJhbXNGb3VuZCIsImZvckVhY2giLCJwYXJhbSIsInB1c2giLCJ2YWx1ZSIsImhhc0F0dHJpYnV0ZSIsImVudGl0eSIsImlzQ3JlYXRlUGFnZSIsInVpZCIsIk1hdGgiLCJyb3VuZCIsInJhbmRvbSIsImJhc2VVcmwiLCJxdWVyeVBhcmFtcyIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbmNhdCIsIlN0cmluZyIsImJhZGdlSHRtbCIsImJhZGdlVWlkIiwiaSIsImlzQ3JlYXRlIiwiZGVmYXVsdFdpZHRoIiwiZGVmYXVsdEhlaWdodCIsImJhZGdlTWFya3VwIiwiaW5uZXJIVE1MIiwiaWZyYW1lIiwiY3JlYXRlRWxlbWVudCIsIm9ubG9hZCIsImlmcmFtZUJvZHkiLCJjb250ZW50V2luZG93IiwiYm9keSIsInNjcm9sbEhlaWdodCIsInNjcm9sbFdpZHRoIiwicmVuZGVyIiwiYXBwZW5kQ2hpbGQiLCJub2RlIiwic2hvdWxkUmVwbGFjZU5vZGUiLCJwYXJlbnROb2RlIiwicmVwbGFjZUNoaWxkIiwiY2xvbmVTY3JpcHROb2RlIiwic2V0IiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwiaXNTY3JpcHROb2RlIiwiZ2V0IiwidGFnTmFtZSIsInNjcmlwdCIsImNsb25lTm9kZSIsImRvbmUiLCJyZW1vdmVDaGlsZCIsInNyYyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogQXV0byBnZW5lcmF0ZWQsIGhhc2ggPSAyeG5yOTh1MGl1eDY2aDVxOWxreHF1djVxICovXHJcbi8vRnJvbSBMaW5rZWRJbiBUT0RPOiBCcmVhayB0aGlzIGZpbGUgZG93biBzbyB0aGF0IHdlIGNhbiBhY3R1YWxseSB1bml0IHRlc3QgaXQuXHJcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tIFwicmVhY3QtZG9tL2NsaWVudFwiO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoXCI7XHJcblxyXG5leHBvcnQgdHlwZSBMaW5rZWRpbkJhZGdlTG9hZGVyUHJvcHMgPSB7XHJcbiAgbG9jYWxlPzpzdHJpbmc7XHJcbiAgc2l6ZT86J3NtYWxsJ3wnbWVkaXVtJ3wnbGFyZ2UnO1xyXG4gICB0aGVtZT86J2RhcmsnfCdsaWdodCc7XHJcbiAgIHR5cGU/Oidob3Jpem9udGFsJ3wndmVydGljYWwnO1xyXG4gICB2YW5pdHk/OnN0cmluZztcclxuICAgdmVyc2lvbj86J3YxJ3wndjInO1xyXG4gICBjbGFzc05hbWU/OnN0cmluZztcclxuICAgbGlua0NsYXNzTmFtZT86c3RyaW5nO1xyXG4gICB0cmFja2luZ1BhcmFtPzpzdHJpbmc7XHJcbiAgdGl0bGU/OnN0cmluZztcclxuIH1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlua2VkaW5CYWRnZUxvYWRlciBleHRlbmRzIENvbXBvbmVudDxhbnksUmVxdWlyZWQ8TGlua2VkaW5CYWRnZUxvYWRlclByb3BzICYge2JhZGdlTG9hZGVkOmJvb2xlYW4sICByZXNwb25zZXNSZWNlaXZlZDogbnVtYmVyOyAvL0tlZXBzIHRyYWNrIG9mIG51bWJlciBvZiByZXNwb25zZXMgcmVjaWV2ZWQgZm9yIHByb3BlciBjbGVhbnVwIHdoZW4gZmluaXNoZWRcclxuIGV4cGVjdGVkUmVzcG9uc2VzOiBudW1iZXI7IC8vS2VlcHMgdHJhY2sgb2YgbnVtYmVyIG9mIHJlc3BvbnNlcyB0byBleHBlY3R9PiA+IFxyXG4gIHNjcmlwdHM6IEhUTUxTY3JpcHRFbGVtZW50W107IC8vS2VlcHMgdHJhY2sgb2Ygc2NyaXB0cyBhZGRlZCBmb3IgcHJvcGVyIGNsZWFudXAgd2hlbiBmaW5pc2hlZFxyXG4gIGNoaWxkU2NyaXB0czogTWFwPE5vZGUsIGJvb2xlYW4+O1xyXG4gIGJhZGdlczogSFRNTEVsZW1lbnRbXTtcclxufT4+e1xyXG4gIHJlYWRvbmx5IENBTExCQUNLX05BTUU6IHN0cmluZyA9IFwiTElCYWRnZUNhbGxiYWNrXCI7IC8vTXVzdCBtYXRjaCBjYWxsYmFjayBvbiBoZWxwZXJzLmpzXHJcbiAgcmVhZG9ubHkgQkFER0VfTkFNRVMgPSBbXCIuTEktcHJvZmlsZS1iYWRnZVwiLCBcIi5MSS1lbnRpdHktYmFkZ2VcIl07XHJcbiAgcmVhZG9ubHkgU0NSSVBUX05BTUVTID1bXCIuYmFkZ2UtYmFzZV9fbGlua1wiLCBcIi5MSS1zaW1wbGUtbGlua1wiXVxyXG4gIHJlYWRvbmx5IEJBU0VfTkFNRSA9IFwiYmFkZ2UtYmFzZVwiO1xyXG4gIHJlYWRvbmx5IFRSQUNLSU5HX1BBUkFNID0gXCJwcm9maWxlLWJhZGdlXCI7XHJcblxyXG5cclxuXHJcbiAgc3RhdGljIGlzQ05Eb21haW4oKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICBjb25zdCBob3N0TmFtZSA9XHJcbiAgICAgICAgd2luZG93Py5sb2NhdGlvbj8uaG9zdG5hbWUgfHwgd2luZG93Py5sb2NhdGlvbj8uaHJlZiB8fCBcIlwiO1xyXG5cclxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChob3N0TmFtZSk7XHJcbiAgICAgIGNvbnN0IGRvbWFpbiA9IHVybC5ob3N0bmFtZTtcclxuICAgICAgcmV0dXJuIC9saW5rZWRpbigtZWkpPy5jbiQvLnRlc3QoZG9tYWluKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZW5lcmF0ZVVybChpc0VJOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBkb21haW5QcmVmaXggPSBpc0VJXHJcbiAgICAgID8gXCJodHRwczovL2JhZGdlcy5saW5rZWRpbi1laVwiXHJcbiAgICAgIDogXCJodHRwczovL2JhZGdlcy5saW5rZWRpblwiO1xyXG4gICAgY29uc3QgZG9tYWluU3VmZml4ID0gTGlua2VkaW5CYWRnZUxvYWRlci5pc0NORG9tYWluKCkgPyBcIi5jblwiIDogXCJcIjtcclxuICAgIHJldHVybiBgJHtkb21haW5QcmVmaXh9JHtkb21haW5TdWZmaXh9L2pzL2xpbmtlZEluQmFkZ2UuanNgO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcm9wczogTGlua2VkaW5CYWRnZUxvYWRlclByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBsb2NhbGU6IHByb3BzLmxvY2FsZSB8fCBcImVuX1VTXCIsXHJcbiAgICAgIHNpemU6IHByb3BzLnNpemUgfHwgXCJtZWRpdW1cIixcclxuICAgICAgdGhlbWU6IHByb3BzLnRoZW1lIHx8IFwibGlnaHRcIixcclxuICAgICAgdHlwZTogcHJvcHMudHlwZSB8fCBcImhvcml6b250YWxcIixcclxuICAgICAgdmFuaXR5OiBwcm9wcy52YW5pdHkgfHwgXCJsaXVcIixcclxuICAgICAgdmVyc2lvbjogcHJvcHMudmVyc2lvbiB8fCBcInYxXCIsXHJcbiAgICAgIGJhZGdlTG9hZGVkOiBmYWxzZSxcclxuICAgICAgdGl0bGU6IHByb3BzLnRpdGxlIHx8IFwiTGlua2VkaW4uY29tL2luL2xpdVwiLFxyXG4gICAgICBjbGFzc05hbWU6IHByb3BzLmNsYXNzTmFtZSB8fCBgJHt0aGlzLkJBU0VfTkFNRX0gJHt0aGlzLkJBREdFX05BTUVTWzBdLnJlcGxhY2UoJy4nLCAnJyl9YCxcclxuICAgICAgbGlua0NsYXNzTmFtZTogcHJvcHMubGlua0NsYXNzTmFtZSB8fCB0aGlzLlNDUklQVF9OQU1FUy5tYXAoKG5hbWUpID0+IG5hbWUucmVwbGFjZShcIi5cIixcIlwiKSkuam9pbihcIiBcIiksXHJcbiAgICAgIHRyYWNraW5nUGFyYW06IHByb3BzLnRyYWNraW5nUGFyYW0gfHwgdGhpcy5UUkFDS0lOR19QQVJBTSxcclxuICAgICAgZXhwZWN0ZWRSZXNwb25zZXM6IDAsXHJcbiAgICAgIHJlc3BvbnNlc1JlY2VpdmVkOiAwLFxyXG4gICAgICBzY3JpcHRzIDogW10sXHJcbiAgICAgIGNoaWxkU2NyaXB0czogbmV3IE1hcCgpLFxyXG4gICAgICBiYWRnZXM6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFxyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5CQURHRV9OQU1FUy5qb2luKFwiIFwiKSkudmFsdWVzKCksXHJcbiAgICAgICAgMFxyXG4gICAgICApXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNwb25zZUhhbmRsZXIgPSB0aGlzLnJlc3BvbnNlSGFuZGxlci5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy50cnlDbGVhbiA9IHRoaXMudHJ5Q2xlYW4uYmluZCh0aGlzKTtcclxuICAgIHRoaXMuZ2V0QmFkZ2VLZXlRdWVyeVBhcmFtcyA9IHRoaXMuZ2V0QmFkZ2VLZXlRdWVyeVBhcmFtcy5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5saXVSZW5kZXJBbGwgPSB0aGlzLmxpdVJlbmRlckFsbC5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5yZXBsYWNlU2NyaXB0VGFncyA9IHRoaXMucmVwbGFjZVNjcmlwdFRhZ3MuYmluZCh0aGlzKTtcclxuICAgIHRoaXMucmVuZGVyQmFkZ2UgPSB0aGlzLnJlbmRlckJhZGdlLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmpzb25wID0gdGhpcy5qc29ucC5iaW5kKHRoaXMpO1xyXG4gICAgKHdpbmRvdyBhcyBhbnkpW3RoaXMuQ0FMTEJBQ0tfTkFNRV0gPSB0aGlzLnJlc3BvbnNlSGFuZGxlcjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVuZGVycyBhbGwgdW5yZW5kcmVkIExpbmtlZEluIEJhZGdlcyBvbiB0aGUgcGFnZVxyXG4gICAqL1xyXG4gIGxpdVJlbmRlckFsbCgpIHtcclxuICAgIC8vIEZST00gTElOS0VESU4gVE9ETyAtLSB0cmFja2luZyBwYXJhbSBmb3Igb3RoZXIgYmFkZ2UgdHlwZXNcclxuXHJcbiAgICBmb3IgKGNvbnN0IGJhZGdlIG9mIHRoaXMuc3RhdGUuYmFkZ2VzKSB7XHJcbiAgICAgIGNvbnN0IHJlbmRlcmVkID0gYmFkZ2UuZ2V0QXR0cmlidXRlKFwiZGF0YS1yZW5kZXJlZFwiKTtcclxuICAgICAgaWYgKHJlbmRlcmVkICE9PSBudWxsICYmIHJlbmRlcmVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGV4cGVjdGVkUmVzcG9uc2VzOiB0aGlzLnN0YXRlLmV4cGVjdGVkUmVzcG9uc2VzICsgMSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJhZGdlLnNldEF0dHJpYnV0ZShcImRhdGEtcmVuZGVyZWRcIiwgXCJ0cnVlXCIpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyQmFkZ2UoYmFkZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCYWRnZUtleVF1ZXJ5UGFyYW1zKGJhZGdlOiBIVE1MRWxlbWVudCkge1xyXG4gICAgY29uc3QgcGFyYW1zOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3Qga2V5X3JlZ2V4ID0gL2RhdGEtKFxcdyspLztcclxuICAgIGZvciAoY29uc3QgYXR0ciBvZiBiYWRnZS5hdHRyaWJ1dGVzKSB7XHJcbiAgICAgIGlmIChhdHRyLm5hbWUuc3RhcnRzV2l0aChcImRhdGEtXCIpICYmIGF0dHIubmFtZS5tYXRjaChrZXlfcmVnZXgpKSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zRm91bmQgPSBhdHRyLm5hbWUubWF0Y2goa2V5X3JlZ2V4KTtcclxuXHJcbiAgICAgICAgcGFyYW1zRm91bmQ/LmZvckVhY2goKHBhcmFtKSA9PiB7XHJcbiAgICAgICAgICBwYXJhbXMucHVzaChgJHtwYXJhbX09JHthdHRyLnZhbHVlfWApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG5cclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmVuZGVycyBhIHNpbmdsZSBiYWRnZSBvbiB0aGUgcGFnZVxyXG4gICAqIEBwYXJhbSBiYWRnZTogZGl2IGVsZW1lbnQgb2YgYmFkZ2UgdG8gcmVuZGVyXHJcbiAgICovXHJcbiAgcmVuZGVyQmFkZ2UoYmFkZ2U6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBsZXQgc2l6ZSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtc2l6ZVwiKSB8fCBcIm1lZGl1bVwiLFxyXG4gICAgICBsb2NhbGUgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWxvY2FsZVwiKSB8fCBcImVuX1VTXCIsXHJcbiAgICAgIHR5cGUgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIikgfHwgXCJ2ZXJ0aWNhbFwiLFxyXG4gICAgICB0aGVtZSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtdGhlbWVcIikgfHwgXCJsaWdodFwiLFxyXG4gICAgICB2YW5pdHkgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXZhbml0eVwiKSB8fCBcIlwiLFxyXG4gICAgICB2ZXJzaW9uID0gYmFkZ2UuZ2V0QXR0cmlidXRlKFwiZGF0YS12ZXJzaW9uXCIpIHx8IFwidjFcIixcclxuICAgICAgaXNFSSA9IGJhZGdlLmhhc0F0dHJpYnV0ZShcImRhdGEtZWlcIikgfHwgZmFsc2UsXHJcbiAgICAgIGVudGl0eSA9IGJhZGdlLmdldEF0dHJpYnV0ZShcImRhdGEtZW50aXR5XCIpIHx8IFwiXCIsXHJcbiAgICAgIGlzQ3JlYXRlUGFnZSA9IGJhZGdlLmhhc0F0dHJpYnV0ZShcImRhdGEtaXNjcmVhdGVcIikgfHwgZmFsc2UsXHJcbiAgICAgIHVpZCA9IE1hdGgucm91bmQoMTAwMDAwMCAqIE1hdGgucmFuZG9tKCkpLFxyXG4gICAgICBiYXNlVXJsID0gTGlua2VkaW5CYWRnZUxvYWRlci5nZW5lcmF0ZVVybChpc0VJKSxcclxuICAgICAgcXVlcnlQYXJhbXMgPSBbXHJcbiAgICAgICAgXCJsb2NhbGU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQobG9jYWxlKSxcclxuICAgICAgICBcImJhZGdldHlwZT1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh0eXBlKSxcclxuICAgICAgICBcImJhZGdldGhlbWU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQodGhlbWUpLFxyXG4gICAgICAgIFwidWlkPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHVpZCksXHJcbiAgICAgICAgXCJ2ZXJzaW9uPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHZlcnNpb24pLFxyXG4gICAgICBdO1xyXG5cclxuICAgIGxldCB1cmwgPSBiYXNlVXJsICsgXCI/XCIgKyBxdWVyeVBhcmFtcy5qb2luKFwiJlwiKTtcclxuXHJcbiAgICBpZiAodmVyc2lvbiA9PT0gXCJ2MlwiKSB7XHJcbiAgICAgIGJhc2VVcmwgKz0gXCJ2aWV3XCI7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJiYWRnZXNpemU9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc2l6ZSkpO1xyXG4gICAgICBxdWVyeVBhcmFtcy5wdXNoKFwiZW50aXR5PVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGVudGl0eSkpO1xyXG4gICAgICBxdWVyeVBhcmFtcyA9IHF1ZXJ5UGFyYW1zLmNvbmNhdCh0aGlzLmdldEJhZGdlS2V5UXVlcnlQYXJhbXMoYmFkZ2UpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGJhc2VVcmwgKz0gXCJwcm9maWxlXCI7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJtYXhzaXplPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHNpemUpKTtcclxuICAgICAgcXVlcnlQYXJhbXMucHVzaChcInRyaz1cIiArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLlRSQUNLSU5HX1BBUkFNKSk7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goXCJ2YW5pdHluYW1lPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbml0eSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0NyZWF0ZVBhZ2UpIHtcclxuICAgICAgcXVlcnlQYXJhbXMucHVzaChcImZyb21DcmVhdGU9dHJ1ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB1cmwgPSBiYXNlVXJsICsgXCI/XCIgKyBxdWVyeVBhcmFtcy5qb2luKFwiJlwiKTtcclxuICAgIGJhZGdlLnNldEF0dHJpYnV0ZShcImRhdGEtdWlkXCIsIFN0cmluZyh1aWQpKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBiYWRnZUxvYWRlZDogdHJ1ZSB9KTtcclxuICAgIHRoaXMuanNvbnAodXJsKTsgLy9DYWxscyByZXNwb25zZUhhbmRsZXIgd2hlbiBkb25lXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLiBGaW5kcyBiYWRnZSBtYXRjaGluZyBiYWRnZVVpZCBhbmQgaW5zZXJ0cyBiYWRnZUh0bWwgdGhlcmVcclxuICAgKiBAcGFyYW0gYmFkZ2VIdG1sOiBTdHJpbmcgcmVwcmVzZW50aW5nIGNvbnRlbnRzIG9mIHRoZSBiYWRnZVxyXG4gICAqIEBwYXJhbSBiYWRnZVVpZDogVUlEIG9mIHRoZSBiYWRnZSB0byB0YXJnZXRcclxuICAgKiovXHJcbiAgcmVzcG9uc2VIYW5kbGVyKGJhZGdlSHRtbDogSFRNTEVsZW1lbnQsIGJhZGdlVWlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICByZXNwb25zZXNSZWNlaXZlZDogdGhpcy5zdGF0ZS5yZXNwb25zZXNSZWNlaXZlZCArIDEsXHJcbiAgICB9KTtcclxuICBcclxuXHJcbiAgICBsZXQgaSwgYmFkZ2UsIHVpZCwgaXNDcmVhdGU7XHJcbiAgICBjb25zdCBkZWZhdWx0V2lkdGggPSAzMzA7IC8vIG1heCBwb3NzaWJsZSB3aWR0aFxyXG4gICAgY29uc3QgZGVmYXVsdEhlaWdodCA9IDMwMDsgLy8gbWF4IHBvc3NpYmxlIGhlaWdodFxyXG5cclxuICAgIGZvciAoY29uc3QgYmFkZ2Ugb2YgdGhpcy5zdGF0ZS5iYWRnZXMpIHtcclxuICAgICAgaXNDcmVhdGUgPSBiYWRnZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLWlzY3JlYXRlXCIpO1xyXG4gICAgICB1aWQgPSBiYWRnZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXVpZFwiKTtcclxuICAgICAgaWYgKHVpZCA9PT0gYmFkZ2VVaWQpIHtcclxuICAgICAgICBjb25zdCBiYWRnZU1hcmt1cCA9IGJhZGdlLmlubmVySFRNTDtcclxuXHJcbiAgICAgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtcclxuICAgICAgICBpZnJhbWUub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWZyYW1lQm9keSA9IGlmcmFtZT8uY29udGVudFdpbmRvdz8uZG9jdW1lbnQuYm9keTtcclxuICAgICAgICAgIC8vIDUgcHggYnVmZmVyIHRvIGF2b2lkIHRoZSBiYWRnZSBib3JkZXIgYmVpbmcgY3V0IG9mZi5cclxuICAgICAgICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCIsXHJcbiAgICAgICAgICAgIFN0cmluZygoaWZyYW1lQm9keT8uc2Nyb2xsSGVpZ2h0IHx8IGRlZmF1bHRIZWlnaHQpICsgNSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICBcIndpZHRoXCIsXHJcbiAgICAgICAgICAgIFN0cmluZyhpZnJhbWVCb2R5Py5zY3JvbGxXaWR0aCB8fCBkZWZhdWx0V2lkdGgpICsgNVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjcmVhdGVSb290KGlmcmFtZSkucmVuZGVyKFxyXG4gICAgICAgICAgPGJvZHk+XHJcbiAgICAgICAgICAgIDw+e2JhZGdlSHRtbH08Lz5cclxuICAgICAgICAgIDwvYm9keT5cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZnJhbWUuYXBwZW5kQ2hpbGQoYmFkZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIG5lZWRlZCBiZWNhdXNlIGJhZGdlIG1hcmt1cCBpcyBhZGRlZCB2aWEgaW5uZXJIdG1sIHByb3BlcnR5IHdoaWNoIGRvZXMgbm90IHJ1biBzY3JpcHQgdGFnc1xyXG4gIHJlcGxhY2VTY3JpcHRUYWdzKG5vZGU6IE5vZGUsIGlzQ3JlYXRlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5zaG91bGRSZXBsYWNlTm9kZShub2RlIGFzIEhUTUxFbGVtZW50LCBpc0NyZWF0ZSkpIHtcclxuICAgICAgbm9kZS5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQoXHJcbiAgICAgICAgdGhpcy5jbG9uZVNjcmlwdE5vZGUobm9kZSBhcyBIVE1MRWxlbWVudCksXHJcbiAgICAgICAgbm9kZVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBjaGlsZFNjcmlwdHMgPSB0aGlzLnN0YXRlLmNoaWxkU2NyaXB0cztcclxuICAgICAgY2hpbGRTY3JpcHRzLnNldChub2RlLCB0cnVlKTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkU2NyaXB0cyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBpID0gMCxcclxuICAgICAgICBjaGlsZHJlbiA9IG5vZGUuY2hpbGROb2RlcztcclxuICAgICAgd2hpbGUgKGkgPCBjaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnJlcGxhY2VTY3JpcHRUYWdzKGNoaWxkcmVuW2krK10sIGlzQ3JlYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBzaG91bGRSZXBsYWNlTm9kZShub2RlOiBIVE1MRWxlbWVudCwgaXNDcmVhdGU6IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuaXNTY3JpcHROb2RlKG5vZGUpICYmXHJcbiAgICAgICF0aGlzLnN0YXRlLmNoaWxkU2NyaXB0cy5nZXQobm9kZSkgJiZcclxuICAgICAgKCFpc0NyZWF0ZSB8fCAoaXNDcmVhdGUgJiYgIW5vZGUuZ2V0QXR0cmlidXRlKFwiZGF0YS1pc2FydGRlY29cIikpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzU2NyaXB0Tm9kZShub2RlOiBIVE1MRWxlbWVudCkge1xyXG4gICAgcmV0dXJuIG5vZGUudGFnTmFtZSA9PT0gXCJTQ1JJUFRcIjtcclxuICB9XHJcbiAgY2xvbmVTY3JpcHROb2RlKG5vZGU6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xyXG5cclxuICAgIGNvbnN0IGNsb25lTm9kZSA9IGNsb25lRGVlcChub2RlKTtcclxuICAgIGZvciAobGV0IGkgPSBjbG9uZU5vZGUuYXR0cmlidXRlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgIGNsb25lTm9kZS5hdHRyaWJ1dGVzW2ldLm5hbWUsXHJcbiAgICAgICAgY2xvbmVOb2RlLmF0dHJpYnV0ZXNbaV0udmFsdWVcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzY3JpcHQ7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICB0aGlzLmxpdVJlbmRlckFsbCgpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT0ge3RoaXMuc3RhdGUuY2xhc3NOYW1lfVxyXG4gICAgICAgIGRhdGEtbG9jYWxlPXt0aGlzLnN0YXRlLmxvY2FsZX1cclxuICAgICAgICBkYXRhLXNpemU9e3RoaXMuc3RhdGUuc2l6ZX1cclxuICAgICAgICBkYXRhLXRoZW1lPXt0aGlzLnN0YXRlLnRoZW1lfVxyXG4gICAgICAgIGRhdGEtdHlwZT17dGhpcy5zdGF0ZS50eXBlfVxyXG4gICAgICAgIGRhdGEtdmFuaXR5PSAge3RoaXMuc3RhdGUudmFuaXR5fVxyXG4gICAgICAgIGRhdGEtdmVyc2lvbj17dGhpcy5zdGF0ZS52ZXJzaW9ufVxyXG4gICAgICA+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgIGNsYXNzTmFtZT17dGhpcy5zdGF0ZS5saW5rQ2xhc3NOYW1lfVxyXG4gICAgICAgICAgaHJlZj17YCR7J2h0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi8nICsgdGhpcy5zdGF0ZS52YW5pdHkgKyAnP3Ryaz1wcm9maWxlLWJhZGdlJ31gfVxyXG4gICAgICAgID5cclxuICAgICAgICAge3RoaXMuc3RhdGUudGl0bGV9XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXRzIGFsbCBpbmNvbWluZyByZXNwb25zZXNcclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZXMgdG8gY2xlYW4gYWRkZWQgdGFnc1xyXG4gICAqKi9cclxuICB0cnlDbGVhbigpIHtcclxuICAgIC8vQ2xlYW4gdXAgYWZ0ZXIgYWxsIHJlcXVlc3RzIGFyZSBkb25lLi5cclxuICAgIC8vQWNjb3VudHMgZm9yIHBlb3BsZSBpbmNsdWRpbmcgc2NyaXB0IG1vcmUgdGhhbiBvbmNlXHJcbiAgICBjb25zdCBkb25lID1cclxuICAgICAgKHRoaXMuc3RhdGUucmVzcG9uc2VzUmVjZWl2ZWQgPj0gdGhpcy5zdGF0ZS5leHBlY3RlZFJlc3BvbnNlcyAmJlxyXG4gICAgICAgIHRoaXMuc3RhdGUuZXhwZWN0ZWRSZXNwb25zZXMgPiAwKSB8fFxyXG4gICAgICB0aGlzLnN0YXRlLnJlc3BvbnNlc1JlY2VpdmVkID49IHRoaXMuc3RhdGUuYmFkZ2VzLmxlbmd0aDtcclxuICAgIGlmIChkb25lKSB7XHJcbiAgICAgIGRlbGV0ZSAod2luZG93IGFzIGFueSlbYCR7dGhpcy5DQUxMQkFDS19OQU1FfWBdO1xyXG5cclxuICAgICAgLy8gcmVtb3ZlIGFsbCBzY3JpcHQgdGFnc1xyXG4gICAgICBjb25zdCBzY3JpcHRzID0gdGhpcy5zdGF0ZS5zY3JpcHRzO1xyXG4gICAgICBzY3JpcHRzLm1hcChmdW5jdGlvbiAoc2NyaXB0KSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzY3JpcHQpO1xyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2NyaXB0c30pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBNYWtlcyBKc29ucCByZXF1ZXN0LCByZXNwb25zZXMgaGFuZGxlcyBieSBDQUxMQkFDS19OQU1FXHJcbiAgICogQHBhcmFtIHVybCBTdHJpbmc6IHVybCBvZiBzZXJ2ZXIgdG8gbWFrZSByZXF1ZXN0IHRvXHJcbiAgICovXHJcbiAganNvbnAodXJsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XHJcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xyXG4gICAgY29uc3Qgc2NyaXB0cyA9IHRoaXMuc3RhdGUuc2NyaXB0cztcclxuICAgIHNjcmlwdHMucHVzaChzY3JpcHQpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNjcmlwdHMgfSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBLE9BQU9BLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQWlDLE9BQWpDO0FBRUEsU0FBU0MsVUFBVCxRQUEyQixrQkFBM0I7QUFDQSxTQUFTQyxTQUFULFFBQTBCLFFBQTFCO0FBY0EsZUFBZSxNQUFNQyxtQkFBTixTQUFrQ0gsU0FBbEMsQ0FLWjtFQUNtRDtFQVFuQyxPQUFWSSxVQUFVLEdBQUc7SUFDbEIsSUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO01BQ2pDLE1BQU1DLFFBQVEsR0FDWkQsTUFBTSxFQUFFRSxRQUFSLEVBQWtCQyxRQUFsQixJQUE4QkgsTUFBTSxFQUFFRSxRQUFSLEVBQWtCRSxJQUFoRCxJQUF3RCxFQUQxRDtNQUdBLE1BQU1DLEdBQUcsR0FBRyxJQUFJQyxHQUFKLENBQVFMLFFBQVIsQ0FBWjtNQUNBLE1BQU1NLE1BQU0sR0FBR0YsR0FBRyxDQUFDRixRQUFuQjtNQUNBLE9B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
{
"name": "react-linkedinbadge",
"version": "2.0.77",
"version": "2.0.121",
"description": "Embedded LinkedIn Badges via React fast Reactions as if all your linkedin accounts are being restricted in React-not time",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -16,2 +16,7 @@ import { Component } from "react";

badgeLoaded: boolean;
responsesReceived: number;
expectedResponses: number;
scripts: HTMLScriptElement[];
childScripts: Map<Node, boolean>;
badges: HTMLElement[];
}>> {

@@ -23,7 +28,2 @@ readonly CALLBACK_NAME: string;

readonly TRACKING_PARAM = "profile-badge";
private responsesReceived;
private expectedResponses;
private scripts;
private childScripts;
readonly badges: HTMLElement[];
static isCNDomain(): boolean;

@@ -30,0 +30,0 @@ static generateUrl(isEI: boolean): string;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc