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

@economist/component-blog-post

Package Overview
Dependencies
Maintainers
1
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@economist/component-blog-post - npm Package Compare versions

Comparing version 1.21.1 to 1.22.0

lib/parts/blog-post-siblings-list.js

57

lib/index.js

@@ -43,2 +43,4 @@ 'use strict';

var _blogPostSiblingsList = require('./parts/blog-post-siblings-list');
var _classnames = require('classnames');

@@ -171,3 +173,26 @@

BlogPost.prototype.addSiblingsList = function addSiblingsList(showSiblingArticlesList, flyTitle, siblingsListTitle, elementClassName, content) {
var siblingArticles = showSiblingArticlesList && this.props.issueSiblingsList ? this.props.issueSiblingsList : null;
var siblingArticlesList = showSiblingArticlesList ? (0, _blogPostSiblingsList.siblingList)(siblingArticles, flyTitle, elementClassName, siblingsListTitle, this.props.sideText) : null;
var innerContentElements = showSiblingArticlesList ? content.filter(function (contentElement) {
var innerContent = contentElement.key === 'inner-content';
return innerContent;
})[0].props.children : null;
var blogPostTextElements = showSiblingArticlesList ? innerContentElements.filter(function (contentElement) {
var blogPostText = contentElement.key === 'blog-post__text';
return blogPostText;
})[0].props.text : null;
if (showSiblingArticlesList && (blogPostTextElements || content && this.props.nextArticleLink)) {
blogPostTextElements.splice(this.props.articleListPosition, 0, siblingArticlesList);
content.splice(content.length - 1, 0, this.props.nextArticleLink);
}
};
BlogPost.prototype.render = function render() {
var _props = this.props,
flyTitle = _props.flyTitle,
showSiblingArticlesList = _props.showSiblingArticlesList;
var siblingsListTitle = this.props.sectionName;
var elementClassName = showSiblingArticlesList && this.props.classNameModifier ? 'blog-post__siblings-list--' + this.props.classNameModifier : '';
var content = [];

@@ -234,5 +259,5 @@ // aside and text content are wrapped together into a component.

));
var _props = this.props,
commentCount = _props.commentCount,
commentStatus = _props.commentStatus;
var _props2 = this.props,
commentCount = _props2.commentCount,
commentStatus = _props2.commentStatus;

@@ -256,2 +281,8 @@ var commentSection = null;

var TitleComponent = this.props.TitleComponent;
var articleHeader = showSiblingArticlesList ? _react2.default.createElement(
'span',
{ className: 'blog-post__siblings-list-header ' + elementClassName },
siblingsListTitle
) : null;
this.addSiblingsList(showSiblingArticlesList, flyTitle, siblingsListTitle, elementClassName, content);
return _react2.default.createElement(

@@ -267,3 +298,10 @@ 'article',

},
_react2.default.createElement(TitleComponent, { title: this.props.title, flyTitle: this.props.flyTitle, Heading: "h1" }),
articleHeader,
_react2.default.createElement(TitleComponent, {
title: this.props.title,
flyTitle: this.props.flyTitle,
Heading: "h1",
titleClassName: showSiblingArticlesList ? 'flytitle-and-title__siblings-list-title ' + elementClassName : '',
flyTitleClassName: showSiblingArticlesList ? 'flytitle-and-title__siblings-list-flytitle ' + elementClassName : ''
}),
content

@@ -307,3 +345,10 @@ );

commentsUri: _react2.default.PropTypes.string.isRequired,
blogImage: _react2.default.PropTypes.object
blogImage: _react2.default.PropTypes.object,
sectionName: _react2.default.PropTypes.string,
issueSiblingsList: _react2.default.PropTypes.arrayOf(_react2.default.PropTypes.object),
showSiblingArticlesList: _react2.default.PropTypes.bool,
sideText: _react2.default.PropTypes.string,
nextArticleLink: _react2.default.PropTypes.node,
articleListPosition: _react2.default.PropTypes.number,
classNameModifier: _react2.default.PropTypes.string
};

@@ -355,2 +400,2 @@ }

exports.default = BlogPost;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJ0d29EaWdpdHMiLCJpbnQiLCJCbG9nUG9zdCIsImFkZERhdGVUaW1lIiwic2VjdGlvbkRhdGVBdXRob3IiLCJwcm9wcyIsImRhdGVUaW1lIiwiZGF0ZUZvcm1hdCIsImRhdGVTdHJpbmciLCJ0aW1lc3RhbXBJU08iLCJyZXN1bHQiLCJzbGljZSIsImNvbmNhdCIsImFkZEltYWdlIiwiY29udGVudCIsImltYWdlIiwiYmxvZ0ltYWdlIiwic3JjIiwiY2FwdGlvbiIsImFsdCIsImltYWdlQ2FwdGlvbiIsImFkZFJ1YnJpYyIsInJ1YnJpYyIsImFkZEJsb2dQb3N0U2VjdGlvbiIsInNlY3Rpb24iLCJzZWN0aW9uVXJsIiwidGVzdCIsImJsb2dQb3N0U2VjdGlvbiIsImFkZEJ5TGluZSIsImJ5bGluZSIsInJlbmRlciIsIndyYXBwZWRJbm5lckNvbnRlbnQiLCJhc2lkZWFibGVDb250ZW50IiwibGVuZ3RoIiwicHVzaCIsInNoYXJlQmFyUHVibGljYXRlRGF0ZSIsIkRhdGUiLCJwdWJsaWNhdGlvbkRhdGUiLCJTdHJpbmciLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInJlcGxhY2UiLCJzaGFyZUJhckRlZmF1bHQiLCJ0eXBlIiwidGl0bGUiLCJmbHlUaXRsZSIsImlkIiwiYXV0aG9yIiwidGV4dCIsImFmdGVyVGV4dCIsImNvbW1lbnRDb3VudCIsImNvbW1lbnRTdGF0dXMiLCJjb21tZW50U2VjdGlvbiIsImZpcnN0VG9Db21tZW50TGFiZWwiLCJ2aWV3Q29tbWVudHNMYWJlbCIsImNvbW1lbnRzVXJpIiwiVGl0bGVDb21wb25lbnQiLCJjbGFzc05hbWUiLCJpdGVtUHJvcCIsIml0ZW1UeXBlIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwic2hhcGUiLCJub2RlIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJpbnN0YW5jZU9mIiwib25lT2ZUeXBlIiwibnVtYmVyIiwib25lT2YiLCJvYmplY3QiLCJkYXRlIiwidGVuTWludXRlcyIsImFkZFBvc3RGaXgiLCJkYXkiLCJkYXlzdHIiLCJ0b1N0cmluZyIsImxhc3RDaGFyIiwiY2hhckF0IiwicG9zdEZpeCIsInNob3J0TW9udGhMaXN0IiwibWludXRlcyIsImdldE1pbnV0ZXMiLCJnZXRIb3VycyIsImpvaW4iLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNBLFNBQVQsQ0FBbUJDLEdBQW5CLEVBQXdCO0FBQ3RCLFNBQU9BLE1BQU0sQ0FBTixHQUFVLEtBQUtBLEdBQWYsR0FBcUIsTUFBTUEsR0FBbEMsQ0FEc0IsQ0FDaUI7QUFDeEM7O0lBRW9CQyxROzs7Ozs7Ozs7cUJBdUZuQkMsVyx3QkFBWUMsaUIsRUFBbUJDLEssRUFBTztBQUFBLFFBQzVCQyxRQUQ0QixHQUN1QkQsS0FEdkIsQ0FDNUJDLFFBRDRCO0FBQUEsUUFDbEJDLFVBRGtCLEdBQ3VCRixLQUR2QixDQUNsQkUsVUFEa0I7QUFBQSxRQUNOQyxVQURNLEdBQ3VCSCxLQUR2QixDQUNORyxVQURNO0FBQUEsUUFDTUMsWUFETixHQUN1QkosS0FEdkIsQ0FDTUksWUFETjs7QUFFcEMsUUFBSUMsU0FBU04sa0JBQWtCTyxLQUFsQixFQUFiO0FBQ0EsUUFBSUwsUUFBSixFQUFjO0FBQ1pJLGVBQVNBLE9BQU9FLE1BQVAsQ0FDUDtBQUFBO0FBQUE7QUFDRSxxQkFBVSxxQkFEWjtBQUVFLG9CQUFTLGFBRlg7QUFHRSxvQkFBVSxLQUFLUCxLQUFMLENBQVdDLFFBSHZCO0FBSUUsZUFBSTtBQUpOO0FBS0VDLG1CQUFXRCxRQUFYO0FBTEYsT0FETyxDQUFUO0FBT0Q7QUFDRCxRQUFJRSxjQUFjQyxZQUFsQixFQUFnQztBQUM5QkMsZUFBU0EsT0FBT0UsTUFBUCxDQUNQO0FBQUE7QUFBQTtBQUNFLHFCQUFVLHFC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QUFOLE9BQ0RrQyxXQUFXRixLQUFLL0IsT0FBTCxFQUFYLENBREMsRUFFRCtCLEtBQUtqQyxXQUFMLEVBRkMsUUFHRGlDLEtBQUtZLFFBQUwsRUFIQyxTQUdvQkYsT0FIcEIsRUFHaUNHLElBSGpDLENBR3NDLEdBSHRDLENBQVA7QUFJRDtBQXRDSSxPQUFQO0FBd0NEOzs7O0VBckZtQyxnQkFBTUMsUzs7a0JBQXZCcEYsUSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBdXRob3IgZnJvbSAnLi9wYXJ0cy9hdXRob3InO1xuaW1wb3J0IEJsb2dQb3N0SW1hZ2UgZnJvbSAnLi9wYXJ0cy9ibG9nLXBvc3QtaW1hZ2UnO1xuaW1wb3J0IEJsb2dQb3N0U2VjdGlvbiBmcm9tICcuL3BhcnRzL2Jsb2ctcG9zdC1zZWN0aW9uJztcbmltcG9ydCBDb21tZW50cyBmcm9tICcuL3BhcnRzL2NvbW1lbnRzJztcbmltcG9ydCBJbWFnZUNhcHRpb24gZnJvbSAnLi9wYXJ0cy9pbWFnZS1jYXB0aW9uJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUnVicmljIGZyb20gJy4vcGFydHMvcnVicmljJztcbmltcG9ydCBTaGFyZUJhciBmcm9tICcuL3BhcnRzL2Jsb2ctcG9zdC1zaGFyZWJhcic7XG5pbXBvcnQgVGV4dCBmcm9tICcuL3BhcnRzL3RleHQnO1xuXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB1cmxKb2luIGZyb20gJ3VybC1qb2luJztcblxuZnVuY3Rpb24gdHdvRGlnaXRzKGludCkge1xuICByZXR1cm4gaW50ID4gOSA/ICcnICsgaW50IDogJzAnICsgaW50OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2dQb3N0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIGdldCBwcm9wVHlwZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGltYWdlOiBSZWFjdC5Qcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICBzcmM6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGNhcHRpb246IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGFsdDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIH0pLFxuICAgICAgYXV0aG9yOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgYnlsaW5lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgc2VjdGlvbjogUmVhY3QuUHJvcFR5cGVzLm5vZGUsXG4gICAgICBzZWN0aW9uVXJsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgZmx5VGl0bGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB0aXRsZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdHlwZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgaWQ6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHB1YmxpY2F0aW9uRGF0ZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgVGl0bGVDb21wb25lbnQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBydWJyaWM6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBkYXRlVGltZTogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksXG4gICAgICBkYXRlU3RyaW5nOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdGltZXN0YW1wSVNPOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgZGF0ZUZvcm1hdDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICB0ZXh0OiBSZWFjdC5Qcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUmVhY3QuUHJvcFR5cGVzLm5vZGUsXG4gICAgICBdKS5pc1JlcXVpcmVkLFxuICAgICAgYWZ0ZXJUZXh0OiBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcbiAgICAgIGl0ZW1UeXBlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaXRlbVByb3A6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBjb21tZW50Q291bnQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgIGNvbW1lbnRTdGF0dXM6IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbXG4gICAgICAgICdkaXNhYmxlZCcsXG4gICAgICAgICdyZWFkb25seScsXG4gICAgICAgICdyZWFkd3JpdGUnLFxuICAgICAgICAnZmJjb21tZW50cGx1Z2luJyxcbiAgICAgIF0pLmlzUmVxdWlyZWQsXG4gICAgICBmaXJzdFRvQ29tbWVudExhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB2aWV3Q29tbWVudHNMYWJlbDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgY29tbWVudHNVcmk6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGJsb2dJbWFnZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICB9O1xuICB9XG4gIHN0YXRpYyBnZXQgZGVmYXVsdFByb3BzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtVHlwZTogJ2h0dHA6Ly9zY2hlbWEub3JnL0Jsb2dQb3N0aW5nJyxcbiAgICAgIGl0ZW1Qcm9wOiAnYmxvZ1Bvc3QnLFxuICAgICAgZmlyc3RUb0NvbW1lbnRMYWJlbDogJ0JlIHRoZSBmaXJzdCB0byBjb21tZW50JyxcbiAgICAgIHZpZXdDb21tZW50c0xhYmVsOiAnVmlldyBjb21tZW50cycsXG4gICAgICBkYXRlRm9ybWF0OiAoZGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCB0ZW5NaW51dGVzID0gMTA7XG4gICAgICAgIC8vIFNlcCAxOXRoIDIwMTUsIDk6NDlcbiAgICAgICAgZnVuY3Rpb24gYWRkUG9zdEZpeChkYXkpIHtcbiAgICAgICAgICBjb25zdCBkYXlzdHIgPSBkYXkudG9TdHJpbmcoKTtcbiAgICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGRheXN0ci5jaGFyQXQoZGF5c3RyLmxlbmd0aCAtIDEpO1xuICAgICAgICAgIGxldCBwb3N0Rml4ID0gJyc7XG4gICAgICAgICAgc3dpdGNoIChsYXN0Q2hhcikge1xuICAgICAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgICAgIHBvc3RGaXggPSAnc3QnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgICAgICBwb3N0Rml4ID0gJ25kJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICczJzpcbiAgICAgICAgICAgICAgcG9zdEZpeCA9ICdyZCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcG9zdEZpeCA9ICd0aCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYCR7IGRheSB9JHsgcG9zdEZpeCB9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaG9ydE1vbnRoTGlzdCA9IFtcbiAgICAgICAgICAnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLFxuICAgICAgICAgICdKdWwnLCAnQXVnJywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RlYycsXG4gICAgICAgIF07XG4gICAgICAgIGxldCBtaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCkgPCB0ZW5NaW51dGVzID8gJzAnIDogJyc7XG4gICAgICAgIG1pbnV0ZXMgKz0gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgICAgIHJldHVybiBbIGAkeyBzaG9ydE1vbnRoTGlzdFtkYXRlLmdldE1vbnRoKCldIH1gLFxuICAgICAgICAgIGAkeyBhZGRQb3N0Rml4KGRhdGUuZ2V0RGF0ZSgpKSB9YCxcbiAgICAgICAgICBgJHsgZGF0ZS5nZXRGdWxsWWVhcigpIH0sYCxcbiAgICAgICAgICBgJHsgZGF0ZS5nZXRIb3VycygpIH06JHsgbWludXRlcyB9YCBdLmpvaW4oJyAnKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFkZERhdGVUaW1lKHNlY3Rpb25EYXRlQXV0aG9yLCBwcm9wcykge1xuICAgIGNvbnN0IHsgZGF0ZVRpbWUsIGRhdGVGb3JtYXQsIGRhdGVTdHJpbmcsIHRpbWVzdGFtcElTTyB9ID0gcHJvcHM7XG4gICAgbGV0IHJlc3VsdCA9IHNlY3Rpb25EYXRlQXV0aG9yLnNsaWNlKCk7XG4gICAgaWYgKGRhdGVUaW1lKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KChcbiAgICAgICAgPHRpbWVcbiAgICAgICAgICBjbGFzc05hbWU9XCJibG9nLXBvc3RfX2RhdGV0aW1lXCJcbiAgICAgICAgICBpdGVtUHJvcD1cImRhdGVDcmVhdGVkXCJcbiAgICAgICAgICBkYXRlVGltZT17dGhpcy5wcm9wcy5kYXRlVGltZX1cbiAgICAgICAgICBrZXk9XCJibG9nLXBvc3RfX2RhdGV0aW1lXCJcbiAgICAgICAgPntkYXRlRm9ybWF0KGRhdGVUaW1lKX08L3RpbWU+KSk7XG4gICAgfVxuICAgIGlmIChkYXRlU3RyaW5nICYmIHRpbWVzdGFtcElTTykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCgoXG4gICAgICAgIDx0aW1lXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19kYXRldGltZVwiXG4gICAgICAgICAgaXRlbVByb3A9XCJkYXRlQ3JlYXRlZFwiXG4gICAgICAgICAgZGF0ZVRpbWU9e3RpbWVzdGFtcElTT31cbiAgICAgICAgICBrZXk9XCJibG9nLXBvc3RfX2RhdGV0aW1lSVNPXCJcbiAgICAgICAgPntkYXRlU3RyaW5nfTwvdGltZT4pKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZEltYWdlKGNvbnRlbnQsIGltYWdlID0ge30pIHtcbiAgICBpZiAodGhpcy5wcm9wcy5ibG9nSW1hZ2UpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgIC4uLnRoaXMucHJvcHMuYmxvZ0ltYWdlLFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYgKGltYWdlKSB7XG4gICAgICBjb25zdCB7IHNyYywgY2FwdGlvbiwgYWx0IH0gPSBpbWFnZTtcbiAgICAgIGlmIChzcmMpIHtcbiAgICAgICAgY29uc3QgaW1hZ2VDYXB0aW9uID0gY2FwdGlvbiA/IDxJbWFnZUNhcHRpb24gY2FwdGlvbj17Y2FwdGlvbn0ga2V5PVwiYmxvZy1wb3N0X19pbWFnZS1jYXB0aW9uXCIgLz4gOiBudWxsO1xuICAgICAgICByZXR1cm4gY29udGVudC5jb25jYXQoXG4gICAgICAgICAgPEJsb2dQb3N0SW1hZ2VcbiAgICAgICAgICAgIGtleT1cImJsb2dpbWdcIlxuICAgICAgICAgICAgY2FwdGlvbj17aW1hZ2VDYXB0aW9ufVxuICAgICAgICAgICAgc3JjPXtzcmN9XG4gICAgICAgICAgICBhbHQ9e2FsdH1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFkZFJ1YnJpYyhjb250ZW50LCBydWJyaWMpIHtcbiAgICBpZiAocnVicmljKSB7XG4gICAgICByZXR1cm4gY29udGVudC5jb25jYXQoPFJ1YnJpYyBydWJyaWM9e3J1YnJpY30ga2V5PVwiYmxvZy1wb3N0X19ydWJyaWNcIiAvPik7XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgYWRkQmxvZ1Bvc3RTZWN0aW9uKHNlY3Rpb25EYXRlQXV0aG9yLCBzZWN0aW9uLCBzZWN0aW9uVXJsKSB7XG4gICAgaWYgKHNlY3Rpb24pIHtcbiAgICAgIGlmIChzZWN0aW9uVXJsICYmICEvXihcXHcrOik/XFwvXFwvLy50ZXN0KHNlY3Rpb25VcmwpKSB7XG4gICAgICAgIHNlY3Rpb25VcmwgPSB1cmxKb2luKCcvJywgc2VjdGlvblVybCk7XG4gICAgICB9XG4gICAgICBjb25zdCBibG9nUG9zdFNlY3Rpb24gPSBzZWN0aW9uVXJsID8gKFxuICAgICAgICA8YSBocmVmPXtzZWN0aW9uVXJsfSBjbGFzc05hbWU9XCJibG9nLXBvc3RfX3NlY3Rpb24tbGlua1wiPlxuICAgICAgICAgIHtzZWN0aW9ufVxuICAgICAgICA8L2E+XG4gICAgICApIDogc2VjdGlvbjtcbiAgICAgIHJldHVybiBzZWN0aW9uRGF0ZUF1dGhvci5jb25jYXQoXG4gICAgICAgIDxCbG9nUG9zdFNlY3Rpb24ga2V5PVwiYmxvZy1wb3N0X19zZWN0aW9uXCIgc2VjdGlvbj17YmxvZ1Bvc3RTZWN0aW9ufSAvPlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb25EYXRlQXV0aG9yO1xuICB9XG5cbiAgYWRkQnlMaW5lKHNlY3Rpb25EYXRlQXV0aG9yLCBieWxpbmUpIHtcbiAgICBpZiAoYnlsaW5lKSB7XG4gICAgICByZXR1cm4gc2VjdGlvbkRhdGVBdXRob3IuY29uY2F0KFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJibG9nLXBvc3RfX2J5bGluZS1jb250YWluZXJcIiBrZXk9XCJibG9nLXBvc3RfX2J5bGluZS1jb250YWluZXJcIj5cbiAgICAgICAgICB7XCJieSBcIn1cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19ieWxpbmVcIlxuICAgICAgICAgICAgaXRlbVByb3A9XCJhdXRob3JcIlxuICAgICAgICAgID57YnlsaW5lfTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb25EYXRlQXV0aG9yO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCBjb250ZW50ID0gW107XG4gICAgLy8gYXNpZGUgYW5kIHRleHQgY29udGVudCBhcmUgd3JhcHBlZCB0b2dldGhlciBpbnRvIGEgY29tcG9uZW50LlxuICAgIC8vIHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIG1vdmUgdGhlIGFzaWRlIGFyb3VuZCByZWxhdGl2ZWx5IHRvIGl0cyBjb250YWludGVyXG4gICAgbGV0IHdyYXBwZWRJbm5lckNvbnRlbnQgPSBbXTtcbiAgICBjb25zdCBhc2lkZWFibGVDb250ZW50ID0gW107XG4gICAgbGV0IHNlY3Rpb25EYXRlQXV0aG9yID0gW107XG4gICAgY29udGVudCA9IHRoaXMuYWRkUnVicmljKGNvbnRlbnQsIHRoaXMucHJvcHMucnVicmljKTtcbiAgICBzZWN0aW9uRGF0ZUF1dGhvciA9IHRoaXMuYWRkQmxvZ1Bvc3RTZWN0aW9uKHNlY3Rpb25EYXRlQXV0aG9yLCB0aGlzLnByb3BzLnNlY3Rpb24sIHRoaXMucHJvcHMuc2VjdGlvblVybCk7XG4gICAgc2VjdGlvbkRhdGVBdXRob3IgPSB0aGlzLmFkZERhdGVUaW1lKHNlY3Rpb25EYXRlQXV0aG9yLCB0aGlzLnByb3BzKTtcbiAgICBzZWN0aW9uRGF0ZUF1dGhvciA9IHRoaXMuYWRkQnlMaW5lKHNlY3Rpb25EYXRlQXV0aG9yLCB0aGlzLnByb3BzLmJ5bGluZSk7XG4gICAgaWYgKHNlY3Rpb25EYXRlQXV0aG9yLmxlbmd0aCkge1xuICAgICAgYXNpZGVhYmxlQ29udGVudC5wdXNoKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19zZWN0aW9uLWRhdGUtYXV0aG9yXCJcbiAgICAgICAgICBrZXk9XCJibG9nLXBvc3RfX3NlY3Rpb24tZGF0ZS1hdXRob3JcIlxuICAgICAgICA+XG4gICAgICAgICAge3NlY3Rpb25EYXRlQXV0aG9yfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gU2hhcmUgYmFyIHB1YmxpY2F0aW9uRGF0ZSBmb3JtYXR0ZWRcbiAgICBsZXQgc2hhcmVCYXJQdWJsaWNhdGVEYXRlID0gbmV3IERhdGUodGhpcy5wcm9wcy5wdWJsaWNhdGlvbkRhdGUgKiAxMDAwKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgc2hhcmVCYXJQdWJsaWNhdGVEYXRlID0gYCR7IFN0cmluZyhzaGFyZUJhclB1YmxpY2F0ZURhdGUuZ2V0RnVsbFllYXIoKSkgfVxuICAgICR7IFN0cmluZyh0d29EaWdpdHMoc2hhcmVCYXJQdWJsaWNhdGVEYXRlLmdldE1vbnRoKCkgKyAxKSkgfVxuICAgICR7IFN0cmluZyh0d29EaWdpdHMoc2hhcmVCYXJQdWJsaWNhdGVEYXRlLmdldERhdGUoKSkpIH1gLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgY29uc3Qgc2hhcmVCYXJEZWZhdWx0ID1cbiAgICAgICg8U2hhcmVCYXJcbiAgICAgICAga2V5PVwic2hhcmViYXJcIlxuICAgICAgICB0eXBlPXt0aGlzLnByb3BzLnR5cGUgPT09ICdwb3N0JyA/ICdCTCcgOiAnQSd9XG4gICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLnRpdGxlfVxuICAgICAgICBmbHlUaXRsZT17dGhpcy5wcm9wcy5mbHlUaXRsZX1cbiAgICAgICAgcHVibGljYXRpb25EYXRlPXtzaGFyZUJhclB1YmxpY2F0ZURhdGV9XG4gICAgICAgIGNvbnRlbnRJRD17dGhpcy5wcm9wcy5pZH1cbiAgICAgICAvPik7XG4gICAgYXNpZGVhYmxlQ29udGVudC5wdXNoKFxuICAgICAgc2hhcmVCYXJEZWZhdWx0XG4gICAgKTtcbiAgICB3cmFwcGVkSW5uZXJDb250ZW50ID0gdGhpcy5hZGRJbWFnZSh3cmFwcGVkSW5uZXJDb250ZW50LCB0aGlzLnByb3BzLmltYWdlKTtcbiAgICBpZiAoYXNpZGVhYmxlQ29udGVudC5sZW5ndGgpIHtcbiAgICAgIHdyYXBwZWRJbm5lckNvbnRlbnQucHVzaCgoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19hc2lkZWFibGUtd3JhcHBlclwiIGtleT1cImFzaWRlYWJsZS1jb250ZW50XCJcbiAgICAgICAgICByZWY9XCJhc2lkZWFibGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJibG9nLXBvc3RfX2FzaWRlYWJsZS1jb250ZW50IGJsb2ctcG9zdF9fYXNpZGVhYmxlLWNvbnRlbnQtLW1ldGFcIj5cbiAgICAgICAgICAgIHthc2lkZWFibGVDb250ZW50fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5hdXRob3IpIHtcbiAgICAgIHdyYXBwZWRJbm5lckNvbnRlbnQucHVzaCg8QXV0aG9yIGtleT1cImJsb2ctcG9zdF9fYXV0aG9yXCIgYXV0aG9yPXt0aGlzLnByb3BzLmF1dGhvcn0gLz4pO1xuICAgIH1cbiAgICB3cmFwcGVkSW5uZXJDb250ZW50LnB1c2goPFRleHQgdGV4dD17dGhpcy5wcm9wcy50ZXh0fSBrZXk9XCJibG9nLXBvc3RfX3RleHRcIiAvPik7XG4gICAgd3JhcHBlZElubmVyQ29udGVudC5wdXNoKDxkaXYga2V5PVwiYmxvZy1wb3N0X19hZnRlci10ZXh0XCI+e3RoaXMucHJvcHMuYWZ0ZXJUZXh0fTwvZGl2Pik7XG4gICAgY29udGVudC5wdXNoKDxkaXYgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19pbm5lclwiIGtleT1cImlubmVyLWNvbnRlbnRcIj57d3JhcHBlZElubmVyQ29udGVudH08L2Rpdj4pO1xuICAgIGNvbnN0IHsgY29tbWVudENvdW50LCBjb21tZW50U3RhdHVzIH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCBjb21tZW50U2VjdGlvbiA9IG51bGw7XG4gICAgaWYgKGNvbW1lbnRTdGF0dXMgIT09ICdkaXNhYmxlZCcgJiYgIShjb21tZW50U3RhdHVzID09PSAncmVhZG9ubHknICYmIGNvbW1lbnRDb3VudCA9PT0gMCkpIHtcbiAgICAgIGNvbW1lbnRTZWN0aW9uID0gKFxuICAgICAgICA8Q29tbWVudHNcbiAgICAgICAgICBrZXk9XCJibG9nLXBvc3RfX2NvbW1lbnRzXCJcbiAgICAgICAgICBmaXJzdFRvQ29tbWVudExhYmVsPXt0aGlzLnByb3BzLmZpcnN0VG9Db21tZW50TGFiZWx9XG4gICAgICAgICAgY29tbWVudENvdW50PXtjb21tZW50Q291bnR9XG4gICAgICAgICAgdmlld0NvbW1lbnRzTGFiZWw9e3RoaXMucHJvcHMudmlld0NvbW1lbnRzTGFiZWx9XG4gICAgICAgICAgY29tbWVudHNVcmk9e3RoaXMucHJvcHMuY29tbWVudHNVcml9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgICBjb250ZW50LnB1c2goXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2ctcG9zdF9fYm90dG9tLXBhbmVsXCIga2V5PVwiYmxvZy1wb3N0X19ib3R0b20tcGFuZWxcIj5cbiAgICAgICAge3NoYXJlQmFyRGVmYXVsdH1cbiAgICAgICAge2NvbW1lbnRTZWN0aW9ufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgICBjb25zdCBUaXRsZUNvbXBvbmVudCA9IHRoaXMucHJvcHMuVGl0bGVDb21wb25lbnQ7XG4gICAgcmV0dXJuIChcbiAgICAgIDxhcnRpY2xlXG4gICAgICAgIGl0ZW1TY29wZVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2Jsb2ctcG9zdCcsIHRoaXMucHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgaXRlbVByb3A9e3RoaXMucHJvcHMuaXRlbVByb3B9XG4gICAgICAgIGl0ZW1UeXBlPXt0aGlzLnByb3BzLml0ZW1UeXBlfVxuICAgICAgICByb2xlPVwiYXJ0aWNsZVwiXG4gICAgICAgIHJlZj1cImFydGljbGVcIlxuICAgICAgPlxuICAgICAgICA8VGl0bGVDb21wb25lbnQgdGl0bGU9e3RoaXMucHJvcHMudGl0bGV9IGZseVRpdGxlPXt0aGlzLnByb3BzLmZseVRpdGxlfSBIZWFkaW5nPXtcImgxXCJ9IC8+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9hcnRpY2xlPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJ0d29EaWdpdHMiLCJpbnQiLCJCbG9nUG9zdCIsImFkZERhdGVUaW1lIiwic2VjdGlvbkRhdGVBdXRob3IiLCJwcm9wcyIsImRhdGVUaW1lIiwiZGF0ZUZvcm1hdCIsImRhdGVTdHJpbmciLCJ0aW1lc3RhbXBJU08iLCJyZXN1bHQiLCJzbGljZSIsImNvbmNhdCIsImFkZEltYWdlIiwiY29udGVudCIsImltYWdlIiwiYmxvZ0ltYWdlIiwic3JjIiwiY2FwdGlvbiIsImFsdCIsImltYWdlQ2FwdGlvbiIsImFkZFJ1YnJpYyIsInJ1YnJpYyIsImFkZEJsb2dQb3N0U2VjdGlvbiIsInNlY3Rpb24iLCJzZWN0aW9uVXJsIiwidGVzdCIsImJsb2dQb3N0U2VjdGlvbiIsImFkZEJ5TGluZSIsImJ5bGluZSIsImFkZFNpYmxpbmdzTGlzdCIsInNob3dTaWJsaW5nQXJ0aWNsZXNMaXN0IiwiZmx5VGl0bGUiLCJzaWJsaW5nc0xpc3RUaXRsZSIsImVsZW1lbnRDbGFzc05hbWUiLCJzaWJsaW5nQXJ0aWNsZXMiLCJpc3N1ZVNpYmxpbmdzTGlzdCIsInNpYmxpbmdBcnRpY2xlc0xpc3QiLCJzaWRlVGV4dCIsImlubmVyQ29udGVudEVsZW1lbnRzIiwiZmlsdGVyIiwiY29udGVudEVsZW1lbnQiLCJpbm5lckNvbnRlbnQiLCJrZXkiLCJjaGlsZHJlbiIsImJsb2dQb3N0VGV4dEVsZW1lbnRzIiwiYmxvZ1Bvc3RUZXh0IiwidGV4dCIsIm5leHRBcnRpY2xlTGluayIsInNwbGljZSIsImFydGljbGVMaXN0UG9zaXRpb24iLCJsZW5ndGgiLCJyZW5kZXIiLCJzZWN0aW9uTmFtZSIsImNsYXNzTmFtZU1vZGlmaWVyIiwid3JhcHBlZElubmVyQ29udGVudCIsImFzaWRlYWJsZUNvbnRlbnQiLCJwdXNoIiwic2hhcmVCYXJQdWJsaWNhdGVEYXRlIiwiRGF0ZSIsInB1YmxpY2F0aW9uRGF0ZSIsIlN0cmluZyIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwicmVwbGFjZSIsInNoYXJlQmFyRGVmYXVsdCIsInR5cGUiLCJ0aXRsZSIsImlkIiwiYXV0aG9yIiwiYWZ0ZXJUZXh0IiwiY29tbWVudENvdW50IiwiY29tbWVudFN0YXR1cyIsImNvbW1lbnRTZWN0aW9uIiwiZmlyc3RUb0NvbW1lbnRMYWJlbCIsInZpZXdDb21tZW50c0xhYmVsIiwiY29tbWVudHNVcmkiLCJUaXRsZUNvbXBvbmVudCIsImFydGljbGVIZWFkZXIiLCJjbGFzc05hbWUiLCJpdGVtUHJvcCIsIml0ZW1UeXBlIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwic2hhcGUiLCJub2RlIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJpbnN0YW5jZU9mIiwib25lT2ZUeXBlIiwibnVtYmVyIiwib25lT2YiLCJvYmplY3QiLCJhcnJheU9mIiwiYm9vbCIsImRhdGUiLCJ0ZW5NaW51dGVzIiwiYWRkUG9zdEZpeCIsImRheSIsImRheXN0ciIsInRvU3RyaW5nIiwibGFzdENoYXIiLCJjaGFyQXQiLCJwb3N0Rml4Iiwic2hvcnRNb250aExpc3QiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsImdldEhvdXJzIiwiam9pbiIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBRUE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsR0FBbkIsRUFBd0I7QUFDdEIsU0FBT0EsTUFBTSxDQUFOLEdBQVUsS0FBS0EsR0FBZixHQUFxQixNQUFNQSxHQUFsQyxDQURzQixDQUNpQjtBQUN4Qzs7SUFFb0JDLFE7Ozs7Ozs7OztxQkE4Rm5CQyxXLHdCQUFZQyxpQixFQUFtQkMsSyxFQUFPO0FBQUEsUUFDNUJDLFFBRDRCLEdBQ3VCRCxLQUR2QixDQUM1QkMsUUFENEI7QUFBQSxRQUNsQkMsVUFEa0IsR0FDdUJGLEtB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LE9BQW5CO0FBQ0Q7QUFDRCxjQUFNQyxpQkFBaUIsQ0FDckIsS0FEcUIsRUFDZCxLQURjLEVBQ1AsS0FETyxFQUNBLEtBREEsRUFDTyxLQURQLEVBQ2MsS0FEZCxFQUVyQixLQUZxQixFQUVkLEtBRmMsRUFFUCxLQUZPLEVBRUEsS0FGQSxFQUVPLEtBRlAsRUFFYyxLQUZkLENBQXZCO0FBSUEsY0FBSUMsVUFBVVYsS0FBS1csVUFBTCxLQUFvQlYsVUFBcEIsR0FBaUMsR0FBakMsR0FBdUMsRUFBckQ7QUFDQVMscUJBQVdWLEtBQUtXLFVBQUwsRUFBWDtBQUNBLGlCQUFPLE1BQU1GLGVBQWVULEtBQUtqQyxRQUFMLEVBQWYsQ0FBTixPQUNEbUMsV0FBV0YsS0FBS2hDLE9BQUwsRUFBWCxDQURDLEVBRURnQyxLQUFLbEMsV0FBTCxFQUZDLFFBR0RrQyxLQUFLWSxRQUFMLEVBSEMsU0FHb0JGLE9BSHBCLEVBR2lDRyxJQUhqQyxDQUdzQyxHQUh0QyxDQUFQO0FBSUQ7QUF0Q0ksT0FBUDtBQXdDRDs7OztFQTVGbUMsZ0JBQU1DLFM7O2tCQUF2QjVHLFEiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXV0aG9yIGZyb20gJy4vcGFydHMvYXV0aG9yJztcbmltcG9ydCBCbG9nUG9zdEltYWdlIGZyb20gJy4vcGFydHMvYmxvZy1wb3N0LWltYWdlJztcbmltcG9ydCBCbG9nUG9zdFNlY3Rpb24gZnJvbSAnLi9wYXJ0cy9ibG9nLXBvc3Qtc2VjdGlvbic7XG5pbXBvcnQgQ29tbWVudHMgZnJvbSAnLi9wYXJ0cy9jb21tZW50cyc7XG5pbXBvcnQgSW1hZ2VDYXB0aW9uIGZyb20gJy4vcGFydHMvaW1hZ2UtY2FwdGlvbic7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJ1YnJpYyBmcm9tICcuL3BhcnRzL3J1YnJpYyc7XG5pbXBvcnQgU2hhcmVCYXIgZnJvbSAnLi9wYXJ0cy9ibG9nLXBvc3Qtc2hhcmViYXInO1xuaW1wb3J0IFRleHQgZnJvbSAnLi9wYXJ0cy90ZXh0JztcbmltcG9ydCB7IHNpYmxpbmdMaXN0IH0gZnJvbSAnLi9wYXJ0cy9ibG9nLXBvc3Qtc2libGluZ3MtbGlzdCc7XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVybEpvaW4gZnJvbSAndXJsLWpvaW4nO1xuXG5mdW5jdGlvbiB0d29EaWdpdHMoaW50KSB7XG4gIHJldHVybiBpbnQgPiA5ID8gJycgKyBpbnQgOiAnMCcgKyBpbnQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvZ1Bvc3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BUeXBlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaW1hZ2U6IFJlYWN0LlByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgIHNyYzogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgY2FwdGlvbjogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgYWx0OiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgfSksXG4gICAgICBhdXRob3I6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBieWxpbmU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBzZWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcbiAgICAgIHNlY3Rpb25Vcmw6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBmbHlUaXRsZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHRpdGxlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB0eXBlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBpZDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgcHVibGljYXRpb25EYXRlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBUaXRsZUNvbXBvbmVudDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHJ1YnJpYzogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGRhdGVUaW1lOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihEYXRlKSxcbiAgICAgIGRhdGVTdHJpbmc6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB0aW1lc3RhbXBJU086IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBkYXRlRm9ybWF0OiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgIHRleHQ6IFJlYWN0LlByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcbiAgICAgIF0pLmlzUmVxdWlyZWQsXG4gICAgICBhZnRlclRleHQ6IFJlYWN0LlByb3BUeXBlcy5ub2RlLFxuICAgICAgaXRlbVR5cGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpdGVtUHJvcDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGNvbW1lbnRDb3VudDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgY29tbWVudFN0YXR1czogUmVhY3QuUHJvcFR5cGVzLm9uZU9mKFtcbiAgICAgICAgJ2Rpc2FibGVkJyxcbiAgICAgICAgJ3JlYWRvbmx5JyxcbiAgICAgICAgJ3JlYWR3cml0ZScsXG4gICAgICAgICdmYmNvbW1lbnRwbHVnaW4nLFxuICAgICAgXSkuaXNSZXF1aXJlZCxcbiAgICAgIGZpcnN0VG9Db21tZW50TGFiZWw6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZpZXdDb21tZW50c0xhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBjb21tZW50c1VyaTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgYmxvZ0ltYWdlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgc2VjdGlvbk5hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpc3N1ZVNpYmxpbmdzTGlzdDogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoUmVhY3QuUHJvcFR5cGVzLm9iamVjdCksXG4gICAgICBzaG93U2libGluZ0FydGljbGVzTGlzdDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICBzaWRlVGV4dDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIG5leHRBcnRpY2xlTGluazogUmVhY3QuUHJvcFR5cGVzLm5vZGUsXG4gICAgICBhcnRpY2xlTGlzdFBvc2l0aW9uOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgY2xhc3NOYW1lTW9kaWZpZXI6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgfTtcbiAgfVxuICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbVR5cGU6ICdodHRwOi8vc2NoZW1hLm9yZy9CbG9nUG9zdGluZycsXG4gICAgICBpdGVtUHJvcDogJ2Jsb2dQb3N0JyxcbiAgICAgIGZpcnN0VG9Db21tZW50TGFiZWw6ICdCZSB0aGUgZmlyc3QgdG8gY29tbWVudCcsXG4gICAgICB2aWV3Q29tbWVudHNMYWJlbDogJ1ZpZXcgY29tbWVudHMnLFxuICAgICAgZGF0ZUZvcm1hdDogKGRhdGUpID0+IHtcbiAgICAgICAgY29uc3QgdGVuTWludXRlcyA9IDEwO1xuICAgICAgICAvLyBTZXAgMTl0aCAyMDE1LCA5OjQ5XG4gICAgICAgIGZ1bmN0aW9uIGFkZFBvc3RGaXgoZGF5KSB7XG4gICAgICAgICAgY29uc3QgZGF5c3RyID0gZGF5LnRvU3RyaW5nKCk7XG4gICAgICAgICAgY29uc3QgbGFzdENoYXIgPSBkYXlzdHIuY2hhckF0KGRheXN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgICBsZXQgcG9zdEZpeCA9ICcnO1xuICAgICAgICAgIHN3aXRjaCAobGFzdENoYXIpIHtcbiAgICAgICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgICAgICBwb3N0Rml4ID0gJ3N0JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgcG9zdEZpeCA9ICduZCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnMyc6XG4gICAgICAgICAgICAgIHBvc3RGaXggPSAncmQnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHBvc3RGaXggPSAndGgnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGAkeyBkYXkgfSR7IHBvc3RGaXggfWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2hvcnRNb250aExpc3QgPSBbXG4gICAgICAgICAgJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJyxcbiAgICAgICAgICAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnLFxuICAgICAgICBdO1xuICAgICAgICBsZXQgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpIDwgdGVuTWludXRlcyA/ICcwJyA6ICcnO1xuICAgICAgICBtaW51dGVzICs9IGRhdGUuZ2V0TWludXRlcygpO1xuICAgICAgICByZXR1cm4gWyBgJHsgc2hvcnRNb250aExpc3RbZGF0ZS5nZXRNb250aCgpXSB9YCxcbiAgICAgICAgICBgJHsgYWRkUG9zdEZpeChkYXRlLmdldERhdGUoKSkgfWAsXG4gICAgICAgICAgYCR7IGRhdGUuZ2V0RnVsbFllYXIoKSB9LGAsXG4gICAgICAgICAgYCR7IGRhdGUuZ2V0SG91cnMoKSB9OiR7IG1pbnV0ZXMgfWAgXS5qb2luKCcgJyk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhZGREYXRlVGltZShzZWN0aW9uRGF0ZUF1dGhvciwgcHJvcHMpIHtcbiAgICBjb25zdCB7IGRhdGVUaW1lLCBkYXRlRm9ybWF0LCBkYXRlU3RyaW5nLCB0aW1lc3RhbXBJU08gfSA9IHByb3BzO1xuICAgIGxldCByZXN1bHQgPSBzZWN0aW9uRGF0ZUF1dGhvci5zbGljZSgpO1xuICAgIGlmIChkYXRlVGltZSkge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdCgoXG4gICAgICAgIDx0aW1lXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19kYXRldGltZVwiXG4gICAgICAgICAgaXRlbVByb3A9XCJkYXRlQ3JlYXRlZFwiXG4gICAgICAgICAgZGF0ZVRpbWU9e3RoaXMucHJvcHMuZGF0ZVRpbWV9XG4gICAgICAgICAga2V5PVwiYmxvZy1wb3N0X19kYXRldGltZVwiXG4gICAgICAgID57ZGF0ZUZvcm1hdChkYXRlVGltZSl9PC90aW1lPikpO1xuICAgIH1cbiAgICBpZiAoZGF0ZVN0cmluZyAmJiB0aW1lc3RhbXBJU08pIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoKFxuICAgICAgICA8dGltZVxuICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2ctcG9zdF9fZGF0ZXRpbWVcIlxuICAgICAgICAgIGl0ZW1Qcm9wPVwiZGF0ZUNyZWF0ZWRcIlxuICAgICAgICAgIGRhdGVUaW1lPXt0aW1lc3RhbXBJU099XG4gICAgICAgICAga2V5PVwiYmxvZy1wb3N0X19kYXRldGltZUlTT1wiXG4gICAgICAgID57ZGF0ZVN0cmluZ308L3RpbWU+KSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhZGRJbWFnZShjb250ZW50LCBpbWFnZSA9IHt9KSB7XG4gICAgaWYgKHRoaXMucHJvcHMuYmxvZ0ltYWdlKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAuLi50aGlzLnByb3BzLmJsb2dJbWFnZSxcbiAgICAgIF07XG4gICAgfSBlbHNlIGlmIChpbWFnZSkge1xuICAgICAgY29uc3QgeyBzcmMsIGNhcHRpb24sIGFsdCB9ID0gaW1hZ2U7XG4gICAgICBpZiAoc3JjKSB7XG4gICAgICAgIGNvbnN0IGltYWdlQ2FwdGlvbiA9IGNhcHRpb24gPyA8SW1hZ2VDYXB0aW9uIGNhcHRpb249e2NhcHRpb259IGtleT1cImJsb2ctcG9zdF9faW1hZ2UtY2FwdGlvblwiIC8+IDogbnVsbDtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQuY29uY2F0KFxuICAgICAgICAgIDxCbG9nUG9zdEltYWdlXG4gICAgICAgICAgICBrZXk9XCJibG9naW1nXCJcbiAgICAgICAgICAgIGNhcHRpb249e2ltYWdlQ2FwdGlvbn1cbiAgICAgICAgICAgIHNyYz17c3JjfVxuICAgICAgICAgICAgYWx0PXthbHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBhZGRSdWJyaWMoY29udGVudCwgcnVicmljKSB7XG4gICAgaWYgKHJ1YnJpYykge1xuICAgICAgcmV0dXJuIGNvbnRlbnQuY29uY2F0KDxSdWJyaWMgcnVicmljPXtydWJyaWN9IGtleT1cImJsb2ctcG9zdF9fcnVicmljXCIgLz4pO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFkZEJsb2dQb3N0U2VjdGlvbihzZWN0aW9uRGF0ZUF1dGhvciwgc2VjdGlvbiwgc2VjdGlvblVybCkge1xuICAgIGlmIChzZWN0aW9uKSB7XG4gICAgICBpZiAoc2VjdGlvblVybCAmJiAhL14oXFx3KzopP1xcL1xcLy8udGVzdChzZWN0aW9uVXJsKSkge1xuICAgICAgICBzZWN0aW9uVXJsID0gdXJsSm9pbignLycsIHNlY3Rpb25VcmwpO1xuICAgICAgfVxuICAgICAgY29uc3QgYmxvZ1Bvc3RTZWN0aW9uID0gc2VjdGlvblVybCA/IChcbiAgICAgICAgPGEgaHJlZj17c2VjdGlvblVybH0gY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19zZWN0aW9uLWxpbmtcIj5cbiAgICAgICAgICB7c2VjdGlvbn1cbiAgICAgICAgPC9hPlxuICAgICAgKSA6IHNlY3Rpb247XG4gICAgICByZXR1cm4gc2VjdGlvbkRhdGVBdXRob3IuY29uY2F0KFxuICAgICAgICA8QmxvZ1Bvc3RTZWN0aW9uIGtleT1cImJsb2ctcG9zdF9fc2VjdGlvblwiIHNlY3Rpb249e2Jsb2dQb3N0U2VjdGlvbn0gLz5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9uRGF0ZUF1dGhvcjtcbiAgfVxuXG4gIGFkZEJ5TGluZShzZWN0aW9uRGF0ZUF1dGhvciwgYnlsaW5lKSB7XG4gICAgaWYgKGJ5bGluZSkge1xuICAgICAgcmV0dXJuIHNlY3Rpb25EYXRlQXV0aG9yLmNvbmNhdChcbiAgICAgICAgPHAgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19ieWxpbmUtY29udGFpbmVyXCIga2V5PVwiYmxvZy1wb3N0X19ieWxpbmUtY29udGFpbmVyXCI+XG4gICAgICAgICAge1wiYnkgXCJ9XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2ctcG9zdF9fYnlsaW5lXCJcbiAgICAgICAgICAgIGl0ZW1Qcm9wPVwiYXV0aG9yXCJcbiAgICAgICAgICA+e2J5bGluZX08L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9uRGF0ZUF1dGhvcjtcbiAgfVxuXG4gIGFkZFNpYmxpbmdzTGlzdChzaG93U2libGluZ0FydGljbGVzTGlzdCwgZmx5VGl0bGUsIHNpYmxpbmdzTGlzdFRpdGxlLCBlbGVtZW50Q2xhc3NOYW1lLCBjb250ZW50KSB7XG4gICAgY29uc3Qgc2libGluZ0FydGljbGVzID0gc2hvd1NpYmxpbmdBcnRpY2xlc0xpc3QgJiYgdGhpcy5wcm9wcy5pc3N1ZVNpYmxpbmdzTGlzdCA/XG4gICAgdGhpcy5wcm9wcy5pc3N1ZVNpYmxpbmdzTGlzdCA6IG51bGw7XG4gICAgY29uc3Qgc2libGluZ0FydGljbGVzTGlzdCA9IHNob3dTaWJsaW5nQXJ0aWNsZXNMaXN0ID8gKFxuICAgICAgc2libGluZ0xpc3QoXG4gICAgICAgIHNpYmxpbmdBcnRpY2xlcyxcbiAgICAgICAgZmx5VGl0bGUsXG4gICAgICAgIGVsZW1lbnRDbGFzc05hbWUsXG4gICAgICAgIHNpYmxpbmdzTGlzdFRpdGxlLFxuICAgICAgICB0aGlzLnByb3BzLnNpZGVUZXh0XG4gICAgICApXG4gICAgKSA6IG51bGw7XG4gICAgY29uc3QgaW5uZXJDb250ZW50RWxlbWVudHMgPSBzaG93U2libGluZ0FydGljbGVzTGlzdCA/IChjb250ZW50LmZpbHRlcigoY29udGVudEVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGlubmVyQ29udGVudCA9IGNvbnRlbnRFbGVtZW50LmtleSA9PT0gJ2lubmVyLWNvbnRlbnQnO1xuICAgICAgcmV0dXJuIGlubmVyQ29udGVudDtcbiAgICB9KVswXS5wcm9wcy5jaGlsZHJlbikgOiBudWxsO1xuICAgIGNvbnN0IGJsb2dQb3N0VGV4dEVsZW1lbnRzID0gc2hvd1NpYmxpbmdBcnRpY2xlc0xpc3QgPyAoaW5uZXJDb250ZW50RWxlbWVudHMuZmlsdGVyKChjb250ZW50RWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgYmxvZ1Bvc3RUZXh0ID0gY29udGVudEVsZW1lbnQua2V5ID09PSAnYmxvZy1wb3N0X190ZXh0JztcbiAgICAgIHJldHVybiBibG9nUG9zdFRleHQ7XG4gICAgfSlbMF0ucHJvcHMudGV4dCkgOiBudWxsO1xuICAgIGlmIChzaG93U2libGluZ0FydGljbGVzTGlzdCAmJiAoYmxvZ1Bvc3RUZXh0RWxlbWVudHMgfHwgKGNvbnRlbnQgJiYgdGhpcy5wcm9wcy5uZXh0QXJ0aWNsZUxpbmspKSkge1xuICAgICAgYmxvZ1Bvc3RUZXh0RWxlbWVudHMuc3BsaWNlKHRoaXMucHJvcHMuYXJ0aWNsZUxpc3RQb3NpdGlvbiwgMCwgc2libGluZ0FydGljbGVzTGlzdCk7XG4gICAgICBjb250ZW50LnNwbGljZShjb250ZW50Lmxlbmd0aCAtIDEsIDAsIHRoaXMucHJvcHMubmV4dEFydGljbGVMaW5rKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBmbHlUaXRsZSwgc2hvd1NpYmxpbmdBcnRpY2xlc0xpc3QgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc2libGluZ3NMaXN0VGl0bGUgPSB0aGlzLnByb3BzLnNlY3Rpb25OYW1lO1xuICAgIGNvbnN0IGVsZW1lbnRDbGFzc05hbWUgPSBzaG93U2libGluZ0FydGljbGVzTGlzdCAmJiB0aGlzLnByb3BzLmNsYXNzTmFtZU1vZGlmaWVyID9cbiAgICAgIGBibG9nLXBvc3RfX3NpYmxpbmdzLWxpc3QtLSR7IHRoaXMucHJvcHMuY2xhc3NOYW1lTW9kaWZpZXIgfWAgOiAnJztcbiAgICBsZXQgY29udGVudCA9IFtdO1xuICAgIC8vIGFzaWRlIGFuZCB0ZXh0IGNvbnRlbnQgYXJlIHdyYXBwZWQgdG9nZXRoZXIgaW50byBhIGNvbXBvbmVudC5cbiAgICAvLyB0aGF0IG1ha2VzIGl0IGVhc2llciB0byBtb3ZlIHRoZSBhc2lkZSBhcm91bmQgcmVsYXRpdmVseSB0byBpdHMgY29udGFpbnRlclxuICAgIGxldCB3cmFwcGVkSW5uZXJDb250ZW50ID0gW107XG4gICAgY29uc3QgYXNpZGVhYmxlQ29udGVudCA9IFtdO1xuICAgIGxldCBzZWN0aW9uRGF0ZUF1dGhvciA9IFtdO1xuICAgIGNvbnRlbnQgPSB0aGlzLmFkZFJ1YnJpYyhjb250ZW50LCB0aGlzLnByb3BzLnJ1YnJpYyk7XG4gICAgc2VjdGlvbkRhdGVBdXRob3IgPSB0aGlzLmFkZEJsb2dQb3N0U2VjdGlvbihzZWN0aW9uRGF0ZUF1dGhvciwgdGhpcy5wcm9wcy5zZWN0aW9uLCB0aGlzLnByb3BzLnNlY3Rpb25VcmwpO1xuICAgIHNlY3Rpb25EYXRlQXV0aG9yID0gdGhpcy5hZGREYXRlVGltZShzZWN0aW9uRGF0ZUF1dGhvciwgdGhpcy5wcm9wcyk7XG4gICAgc2VjdGlvbkRhdGVBdXRob3IgPSB0aGlzLmFkZEJ5TGluZShzZWN0aW9uRGF0ZUF1dGhvciwgdGhpcy5wcm9wcy5ieWxpbmUpO1xuICAgIGlmIChzZWN0aW9uRGF0ZUF1dGhvci5sZW5ndGgpIHtcbiAgICAgIGFzaWRlYWJsZUNvbnRlbnQucHVzaChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2ctcG9zdF9fc2VjdGlvbi1kYXRlLWF1dGhvclwiXG4gICAgICAgICAga2V5PVwiYmxvZy1wb3N0X19zZWN0aW9uLWRhdGUtYXV0aG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIHtzZWN0aW9uRGF0ZUF1dGhvcn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFNoYXJlIGJhciBwdWJsaWNhdGlvbkRhdGUgZm9ybWF0dGVkXG4gICAgbGV0IHNoYXJlQmFyUHVibGljYXRlRGF0ZSA9IG5ldyBEYXRlKHRoaXMucHJvcHMucHVibGljYXRpb25EYXRlICogMTAwMCkgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIHNoYXJlQmFyUHVibGljYXRlRGF0ZSA9IGAkeyBTdHJpbmcoc2hhcmVCYXJQdWJsaWNhdGVEYXRlLmdldEZ1bGxZZWFyKCkpIH1cbiAgICAkeyBTdHJpbmcodHdvRGlnaXRzKHNoYXJlQmFyUHVibGljYXRlRGF0ZS5nZXRNb250aCgpICsgMSkpIH1cbiAgICAkeyBTdHJpbmcodHdvRGlnaXRzKHNoYXJlQmFyUHVibGljYXRlRGF0ZS5nZXREYXRlKCkpKSB9YC5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgIGNvbnN0IHNoYXJlQmFyRGVmYXVsdCA9XG4gICAgICAoPFNoYXJlQmFyXG4gICAgICAgIGtleT1cInNoYXJlYmFyXCJcbiAgICAgICAgdHlwZT17dGhpcy5wcm9wcy50eXBlID09PSAncG9zdCcgPyAnQkwnIDogJ0EnfVxuICAgICAgICB0aXRsZT17dGhpcy5wcm9wcy50aXRsZX1cbiAgICAgICAgZmx5VGl0bGU9e3RoaXMucHJvcHMuZmx5VGl0bGV9XG4gICAgICAgIHB1YmxpY2F0aW9uRGF0ZT17c2hhcmVCYXJQdWJsaWNhdGVEYXRlfVxuICAgICAgICBjb250ZW50SUQ9e3RoaXMucHJvcHMuaWR9XG4gICAgICAgLz4pO1xuICAgIGFzaWRlYWJsZUNvbnRlbnQucHVzaChcbiAgICAgIHNoYXJlQmFyRGVmYXVsdFxuICAgICk7XG4gICAgd3JhcHBlZElubmVyQ29udGVudCA9IHRoaXMuYWRkSW1hZ2Uod3JhcHBlZElubmVyQ29udGVudCwgdGhpcy5wcm9wcy5pbWFnZSk7XG4gICAgaWYgKGFzaWRlYWJsZUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICB3cmFwcGVkSW5uZXJDb250ZW50LnB1c2goKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsb2ctcG9zdF9fYXNpZGVhYmxlLXdyYXBwZXJcIiBrZXk9XCJhc2lkZWFibGUtY29udGVudFwiXG4gICAgICAgICAgcmVmPVwiYXNpZGVhYmxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmxvZy1wb3N0X19hc2lkZWFibGUtY29udGVudCBibG9nLXBvc3RfX2FzaWRlYWJsZS1jb250ZW50LS1tZXRhXCI+XG4gICAgICAgICAgICB7YXNpZGVhYmxlQ29udGVudH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0aG9yKSB7XG4gICAgICB3cmFwcGVkSW5uZXJDb250ZW50LnB1c2goPEF1dGhvciBrZXk9XCJibG9nLXBvc3RfX2F1dGhvclwiIGF1dGhvcj17dGhpcy5wcm9wcy5hdXRob3J9IC8+KTtcbiAgICB9XG4gICAgd3JhcHBlZElubmVyQ29udGVudC5wdXNoKDxUZXh0IHRleHQ9e3RoaXMucHJvcHMudGV4dH0ga2V5PVwiYmxvZy1wb3N0X190ZXh0XCIgLz4pO1xuICAgIHdyYXBwZWRJbm5lckNvbnRlbnQucHVzaCg8ZGl2IGtleT1cImJsb2ctcG9zdF9fYWZ0ZXItdGV4dFwiPnt0aGlzLnByb3BzLmFmdGVyVGV4dH08L2Rpdj4pO1xuICAgIGNvbnRlbnQucHVzaCg8ZGl2IGNsYXNzTmFtZT1cImJsb2ctcG9zdF9faW5uZXJcIiBrZXk9XCJpbm5lci1jb250ZW50XCI+e3dyYXBwZWRJbm5lckNvbnRlbnR9PC9kaXY+KTtcbiAgICBjb25zdCB7IGNvbW1lbnRDb3VudCwgY29tbWVudFN0YXR1cyB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQgY29tbWVudFNlY3Rpb24gPSBudWxsO1xuICAgIGlmIChjb21tZW50U3RhdHVzICE9PSAnZGlzYWJsZWQnICYmICEoY29tbWVudFN0YXR1cyA9PT0gJ3JlYWRvbmx5JyAmJiBjb21tZW50Q291bnQgPT09IDApKSB7XG4gICAgICBjb21tZW50U2VjdGlvbiA9IChcbiAgICAgICAgPENvbW1lbnRzXG4gICAgICAgICAga2V5PVwiYmxvZy1wb3N0X19jb21tZW50c1wiXG4gICAgICAgICAgZmlyc3RUb0NvbW1lbnRMYWJlbD17dGhpcy5wcm9wcy5maXJzdFRvQ29tbWVudExhYmVsfVxuICAgICAgICAgIGNvbW1lbnRDb3VudD17Y29tbWVudENvdW50fVxuICAgICAgICAgIHZpZXdDb21tZW50c0xhYmVsPXt0aGlzLnByb3BzLnZpZXdDb21tZW50c0xhYmVsfVxuICAgICAgICAgIGNvbW1lbnRzVXJpPXt0aGlzLnByb3BzLmNvbW1lbnRzVXJpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gICAgY29udGVudC5wdXNoKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJibG9nLXBvc3RfX2JvdHRvbS1wYW5lbFwiIGtleT1cImJsb2ctcG9zdF9fYm90dG9tLXBhbmVsXCI+XG4gICAgICAgIHtzaGFyZUJhckRlZmF1bHR9XG4gICAgICAgIHtjb21tZW50U2VjdGlvbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gICAgY29uc3QgVGl0bGVDb21wb25lbnQgPSB0aGlzLnByb3BzLlRpdGxlQ29tcG9uZW50O1xuICAgIGNvbnN0IGFydGljbGVIZWFkZXIgPSBzaG93U2libGluZ0FydGljbGVzTGlzdCA/IChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGJsb2ctcG9zdF9fc2libGluZ3MtbGlzdC1oZWFkZXIgJHsgZWxlbWVudENsYXNzTmFtZSB9YH0+XG4gICAgICAgIHtzaWJsaW5nc0xpc3RUaXRsZX1cbiAgICAgIDwvc3Bhbj5cbiAgICApIDogbnVsbDtcbiAgICB0aGlzLmFkZFNpYmxpbmdzTGlzdChcbiAgICAgIHNob3dTaWJsaW5nQXJ0aWNsZXNMaXN0LFxuICAgICAgZmx5VGl0bGUsXG4gICAgICBzaWJsaW5nc0xpc3RUaXRsZSxcbiAgICAgIGVsZW1lbnRDbGFzc05hbWUsXG4gICAgICBjb250ZW50XG4gICAgKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGFydGljbGVcbiAgICAgICAgaXRlbVNjb3BlXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnYmxvZy1wb3N0JywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICBpdGVtUHJvcD17dGhpcy5wcm9wcy5pdGVtUHJvcH1cbiAgICAgICAgaXRlbVR5cGU9e3RoaXMucHJvcHMuaXRlbVR5cGV9XG4gICAgICAgIHJvbGU9XCJhcnRpY2xlXCJcbiAgICAgICAgcmVmPVwiYXJ0aWNsZVwiXG4gICAgICA+XG4gICAgICAgIHthcnRpY2xlSGVhZGVyfVxuICAgICAgICA8VGl0bGVDb21wb25lbnRcbiAgICAgICAgICB0aXRsZT17dGhpcy5wcm9wcy50aXRsZX1cbiAgICAgICAgICBmbHlUaXRsZT17dGhpcy5wcm9wcy5mbHlUaXRsZX1cbiAgICAgICAgICBIZWFkaW5nPXtcImgxXCJ9XG4gICAgICAgICAgdGl0bGVDbGFzc05hbWU9e3Nob3dTaWJsaW5nQXJ0aWNsZXNMaXN0ID9cbiAgICAgICAgICAgIGBmbHl0aXRsZS1hbmQtdGl0bGVfX3NpYmxpbmdzLWxpc3QtdGl0bGUgJHsgZWxlbWVudENsYXNzTmFtZSB9YCA6ICcnfVxuICAgICAgICAgIGZseVRpdGxlQ2xhc3NOYW1lPXtzaG93U2libGluZ0FydGljbGVzTGlzdCA/XG4gICAgICAgICAgICBgZmx5dGl0bGUtYW5kLXRpdGxlX19zaWJsaW5ncy1saXN0LWZseXRpdGxlICR7IGVsZW1lbnRDbGFzc05hbWUgfWAgOiAnJ31cbiAgICAgICAgLz5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L2FydGljbGU+XG4gICAgKTtcbiAgfVxufVxuIl19

4

package.json
{
"name": "@economist/component-blog-post",
"version": "1.21.1",
"version": "1.22.0",
"description": "Blog post",

@@ -113,4 +113,4 @@ "homepage": "https://github.com/economist-components/component-blog-post",

"@economist/component-sharebar": "^3.2.0",
"@economist/component-stickyfill": "^1.1.1",
"@economist/component-typography": "^3.1.4",
"@economist/component-stickyfill": "^1.1.1",
"classnames": "^2.2.3",

@@ -117,0 +117,0 @@ "mobile-detect": "^1.3.1",

Sorry, the diff of this file is not supported yet

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