botframework-webchat-component
Version:
React component of botframework-webchat
159 lines (152 loc) • 20.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createBubbleStyle;
var _mirrorStyle = _interopRequireDefault(require("../mirrorStyle"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
function createBubbleStyle(_ref) {
var bubbleBackground = _ref.bubbleBackground,
bubbleBorderColor = _ref.bubbleBorderColor,
bubbleBorderRadius = _ref.bubbleBorderRadius,
bubbleBorderStyle = _ref.bubbleBorderStyle,
bubbleBorderWidth = _ref.bubbleBorderWidth,
bubbleFromUserBackground = _ref.bubbleFromUserBackground,
bubbleFromUserBorderColor = _ref.bubbleFromUserBorderColor,
bubbleFromUserBorderRadius = _ref.bubbleFromUserBorderRadius,
bubbleFromUserBorderStyle = _ref.bubbleFromUserBorderStyle,
bubbleFromUserBorderWidth = _ref.bubbleFromUserBorderWidth,
bubbleFromUserNubOffset = _ref.bubbleFromUserNubOffset,
bubbleFromUserNubSize = _ref.bubbleFromUserNubSize,
bubbleFromUserTextColor = _ref.bubbleFromUserTextColor,
bubbleMinHeight = _ref.bubbleMinHeight,
bubbleNubOffset = _ref.bubbleNubOffset,
bubbleNubSize = _ref.bubbleNubSize,
bubbleTextColor = _ref.bubbleTextColor,
messageActivityWordBreak = _ref.messageActivityWordBreak,
paddingRegular = _ref.paddingRegular,
transitionDuration = _ref.transitionDuration;
var botNubCornerRadius = Math.min(bubbleBorderRadius, Math.abs(bubbleNubOffset));
var userNubCornerRadius = Math.min(bubbleFromUserBorderRadius, Math.abs(bubbleFromUserNubOffset));
return {
'&.webchat__bubble': _objectSpread({
'& .webchat__bubble__content': {
marginLeft: 0,
marginRight: 0,
transitionDuration: transitionDuration,
transitionProperty: 'margin-left, margin-right',
wordBreak: messageActivityWordBreak
},
'& .webchat__bubble__nub': {
overflow: 'hidden',
// This style is for IE11 because it doesn't respect SVG viewport
position: 'absolute'
},
'& .webchat__bubble__nub-pad': {
transitionDuration: transitionDuration,
transitionProperty: 'width',
width: 0
},
'&.webchat__bubble--hide-nub, &.webchat__bubble--show-nub': {
'& .webchat__bubble__nub-pad': {
width: paddingRegular
}
},
'&.webchat__bubble--rtl .webchat__bubble__nub': {
transform: 'scale(-1, 1)'
},
'&:not(.webchat__bubble--from-user)': _objectSpread(_objectSpread({
'& .webchat__bubble__content': {
background: bubbleBackground,
borderColor: bubbleBorderColor,
borderRadius: bubbleBorderRadius,
borderStyle: bubbleBorderStyle,
borderWidth: bubbleBorderWidth,
color: bubbleTextColor,
minHeight: bubbleMinHeight - bubbleBorderWidth * 2
}
}, typeof bubbleNubSize === 'number' ? {
'& .webchat__bubble__nub': {
height: bubbleNubSize,
width: bubbleNubSize
}
} : {}), {}, {
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {
bottom: -bubbleNubOffset
},
'&.webchat__bubble--nub-on-top .webchat__bubble__nub': {
top: bubbleNubOffset
},
'& .webchat__bubble__nub-outline': {
fill: bubbleBackground,
stroke: bubbleBorderColor,
strokeWidth: bubbleBorderWidth
}
}),
'&.webchat__bubble--from-user': _objectSpread(_objectSpread({
flexDirection: 'row-reverse',
'& .webchat__bubble__content': {
background: bubbleFromUserBackground,
borderColor: bubbleFromUserBorderColor,
borderRadius: bubbleFromUserBorderRadius,
borderStyle: bubbleFromUserBorderStyle,
borderWidth: bubbleFromUserBorderWidth,
color: bubbleFromUserTextColor,
minHeight: bubbleMinHeight - bubbleFromUserBorderWidth * 2
}
}, typeof bubbleFromUserNubSize === 'number' ? {
'& .webchat__bubble__nub': {
height: bubbleFromUserNubSize,
width: bubbleFromUserNubSize
}
} : {}), {}, {
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {
bottom: -bubbleFromUserNubOffset
},
'&.webchat__bubble--nub-on-top .webchat__bubble__nub': {
top: bubbleFromUserNubOffset
},
'& .webchat__bubble__nub-outline': {
fill: bubbleFromUserBackground,
stroke: bubbleFromUserBorderColor,
strokeWidth: bubbleFromUserBorderWidth
}
})
}, (0, _mirrorStyle.default)('&.webchat__bubble--rtl', {
'&:not(.webchat__bubble--from-user)': _objectSpread({
'&.webchat__bubble--show-nub': {
// Hide border radius if there is a nub on the top/bottom left corner
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {
borderBottomLeftRadius: botNubCornerRadius
},
'&.webchat__bubble--nub-on-top .webchat__bubble__content': {
borderTopLeftRadius: botNubCornerRadius
}
}
}, typeof bubbleNubSize === 'number' ? {
'& .webchat__bubble__nub': {
left: bubbleBorderWidth - bubbleNubSize + paddingRegular
}
} : {}),
'&.webchat__bubble--from-user': _objectSpread({
'&.webchat__bubble--show-nub': {
// Hide border radius if there is a nub on the top/bottom right corner
'&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {
borderBottomRightRadius: userNubCornerRadius
},
'&.webchat__bubble--nub-on-top .webchat__bubble__content': {
borderTopRightRadius: userNubCornerRadius
}
}
}, typeof bubbleFromUserNubSize === 'number' ? {
'& .webchat__bubble__nub': {
right: bubbleFromUserBorderWidth - bubbleFromUserNubSize + paddingRegular
}
} : {})
}))
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TdHlsZXMvU3R5bGVTZXQvQnViYmxlLmpzIl0sIm5hbWVzIjpbImNyZWF0ZUJ1YmJsZVN0eWxlIiwiYnViYmxlQmFja2dyb3VuZCIsImJ1YmJsZUJvcmRlckNvbG9yIiwiYnViYmxlQm9yZGVyUmFkaXVzIiwiYnViYmxlQm9yZGVyU3R5bGUiLCJidWJibGVCb3JkZXJXaWR0aCIsImJ1YmJsZUZyb21Vc2VyQmFja2dyb3VuZCIsImJ1YmJsZUZyb21Vc2VyQm9yZGVyQ29sb3IiLCJidWJibGVGcm9tVXNlckJvcmRlclJhZGl1cyIsImJ1YmJsZUZyb21Vc2VyQm9yZGVyU3R5bGUiLCJidWJibGVGcm9tVXNlckJvcmRlcldpZHRoIiwiYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQiLCJidWJibGVGcm9tVXNlck51YlNpemUiLCJidWJibGVGcm9tVXNlclRleHRDb2xvciIsImJ1YmJsZU1pbkhlaWdodCIsImJ1YmJsZU51Yk9mZnNldCIsImJ1YmJsZU51YlNpemUiLCJidWJibGVUZXh0Q29sb3IiLCJtZXNzYWdlQWN0aXZpdHlXb3JkQnJlYWsiLCJwYWRkaW5nUmVndWxhciIsInRyYW5zaXRpb25EdXJhdGlvbiIsImJvdE51YkNvcm5lclJhZGl1cyIsIk1hdGgiLCJtaW4iLCJhYnMiLCJ1c2VyTnViQ29ybmVyUmFkaXVzIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwidHJhbnNpdGlvblByb3BlcnR5Iiwid29yZEJyZWFrIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsIndpZHRoIiwidHJhbnNmb3JtIiwiYmFja2dyb3VuZCIsImJvcmRlckNvbG9yIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyU3R5bGUiLCJib3JkZXJXaWR0aCIsImNvbG9yIiwibWluSGVpZ2h0IiwiaGVpZ2h0IiwiYm90dG9tIiwidG9wIiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiZmxleERpcmVjdGlvbiIsImJvcmRlckJvdHRvbUxlZnRSYWRpdXMiLCJib3JkZXJUb3BMZWZ0UmFkaXVzIiwibGVmdCIsImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzIiwiYm9yZGVyVG9wUmlnaHRSYWRpdXMiLCJyaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOzs7Ozs7Ozs7O0FBRWUsU0FBU0EsaUJBQVQsT0FxQlo7QUFBQSxNQXBCREMsZ0JBb0JDLFFBcEJEQSxnQkFvQkM7QUFBQSxNQW5CREMsaUJBbUJDLFFBbkJEQSxpQkFtQkM7QUFBQSxNQWxCREMsa0JBa0JDLFFBbEJEQSxrQkFrQkM7QUFBQSxNQWpCREMsaUJBaUJDLFFBakJEQSxpQkFpQkM7QUFBQSxNQWhCREMsaUJBZ0JDLFFBaEJEQSxpQkFnQkM7QUFBQSxNQWZEQyx3QkFlQyxRQWZEQSx3QkFlQztBQUFBLE1BZERDLHlCQWNDLFFBZERBLHlCQWNDO0FBQUEsTUFiREMsMEJBYUMsUUFiREEsMEJBYUM7QUFBQSxNQVpEQyx5QkFZQyxRQVpEQSx5QkFZQztBQUFBLE1BWERDLHlCQVdDLFFBWERBLHlCQVdDO0FBQUEsTUFWREMsdUJBVUMsUUFWREEsdUJBVUM7QUFBQSxNQVREQyxxQkFTQyxRQVREQSxxQkFTQztBQUFBLE1BUkRDLHVCQVFDLFFBUkRBLHVCQVFDO0FBQUEsTUFQREMsZUFPQyxRQVBEQSxlQU9DO0FBQUEsTUFOREMsZUFNQyxRQU5EQSxlQU1DO0FBQUEsTUFMREMsYUFLQyxRQUxEQSxhQUtDO0FBQUEsTUFKREMsZUFJQyxRQUpEQSxlQUlDO0FBQUEsTUFIREMsd0JBR0MsUUFIREEsd0JBR0M7QUFBQSxNQUZEQyxjQUVDLFFBRkRBLGNBRUM7QUFBQSxNQUREQyxrQkFDQyxRQUREQSxrQkFDQztBQUNELE1BQU1DLGtCQUFrQixHQUFHQyxJQUFJLENBQUNDLEdBQUwsQ0FBU3BCLGtCQUFULEVBQTZCbUIsSUFBSSxDQUFDRSxHQUFMLENBQVNULGVBQVQsQ0FBN0IsQ0FBM0I7QUFDQSxNQUFNVSxtQkFBbUIsR0FBR0gsSUFBSSxDQUFDQyxHQUFMLENBQVNmLDBCQUFULEVBQXFDYyxJQUFJLENBQUNFLEdB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QVcsRUFBRXBDO0FBSG9CO0FBOUJyQztBQWpFRixPQXNHSywwQkFBWSx3QkFBWixFQUFzQztBQUN2QztBQUNFLHVDQUErQjtBQUM3QjtBQUNBLDJFQUFpRTtBQUMvRHNDLFlBQUFBLHNCQUFzQixFQUFFM0I7QUFEdUMsV0FGcEM7QUFNN0IscUVBQTJEO0FBQ3pENEIsWUFBQUEsbUJBQW1CLEVBQUU1QjtBQURvQztBQU45QjtBQURqQyxTQVlNLE9BQU9MLGFBQVAsS0FBeUIsUUFBekIsR0FDQTtBQUNFLG1DQUEyQjtBQUFFa0MsVUFBQUEsSUFBSSxFQUFFN0MsaUJBQWlCLEdBQUdXLGFBQXBCLEdBQW9DRztBQUE1QztBQUQ3QixPQURBLEdBSUEsRUFoQk4sQ0FEdUM7QUFvQnZDO0FBQ0UsdUNBQStCO0FBQzdCO0FBQ0EsMkVBQWlFO0FBQy9EZ0MsWUFBQUEsdUJBQXVCLEVBQUUxQjtBQURzQyxXQUZwQztBQU03QixxRUFBMkQ7QUFDekQyQixZQUFBQSxvQkFBb0IsRUFBRTNCO0FBRG1DO0FBTjlCO0FBRGpDLFNBWU0sT0FBT2IscUJBQVAsS0FBaUMsUUFBakMsR0FDQTtBQUNFLG1DQUEyQjtBQUFFeUMsVUFBQUEsS0FBSyxFQUFFM0MseUJBQXlCLEdBQUdFLHFCQUE1QixHQUFvRE87QUFBN0Q7QUFEN0IsT0FEQSxHQUlBLEVBaEJOO0FBcEJ1QyxLQUF0QyxDQXRHTDtBQURLLEdBQVA7QUFnSkQiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyXSB9XSAqL1xuXG5pbXBvcnQgbWlycm9yU3R5bGUgZnJvbSAnLi4vbWlycm9yU3R5bGUnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdWJibGVTdHlsZSh7XG4gIGJ1YmJsZUJhY2tncm91bmQsXG4gIGJ1YmJsZUJvcmRlckNvbG9yLFxuICBidWJibGVCb3JkZXJSYWRpdXMsXG4gIGJ1YmJsZUJvcmRlclN0eWxlLFxuICBidWJibGVCb3JkZXJXaWR0aCxcbiAgYnViYmxlRnJvbVVzZXJCYWNrZ3JvdW5kLFxuICBidWJibGVGcm9tVXNlckJvcmRlckNvbG9yLFxuICBidWJibGVGcm9tVXNlckJvcmRlclJhZGl1cyxcbiAgYnViYmxlRnJvbVVzZXJCb3JkZXJTdHlsZSxcbiAgYnViYmxlRnJvbVVzZXJCb3JkZXJXaWR0aCxcbiAgYnViYmxlRnJvbVVzZXJOdWJPZmZzZXQsXG4gIGJ1YmJsZUZyb21Vc2VyTnViU2l6ZSxcbiAgYnViYmxlRnJvbVVzZXJUZXh0Q29sb3IsXG4gIGJ1YmJsZU1pbkhlaWdodCxcbiAgYnViYmxlTnViT2Zmc2V0LFxuICBidWJibGVOdWJTaXplLFxuICBidWJibGVUZXh0Q29sb3IsXG4gIG1lc3NhZ2VBY3Rpdml0eVdvcmRCcmVhayxcbiAgcGFkZGluZ1JlZ3VsYXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvblxufSkge1xuICBjb25zdCBib3ROdWJDb3JuZXJSYWRpdXMgPSBNYXRoLm1pbihidWJibGVCb3JkZXJSYWRpdXMsIE1hdGguYWJzKGJ1YmJsZU51Yk9mZnNldCkpO1xuICBjb25zdCB1c2VyTnViQ29ybmVyUmFkaXVzID0gTWF0aC5taW4oYnViYmxlRnJvbVVzZXJCb3JkZXJSYWRpdXMsIE1hdGguYWJzKGJ1YmJsZUZyb21Vc2VyTnViT2Zmc2V0KSk7XG5cbiAgcmV0dXJuIHtcbiAgICAnJi53ZWJjaGF0X19idWJibGUnOiB7XG4gICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgICBtYXJnaW5MZWZ0OiAwLFxuICAgICAgICBtYXJnaW5SaWdodDogMCxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICB0cmFuc2l0aW9uUHJvcGVydHk6ICdtYXJnaW4tbGVmdCwgbWFyZ2luLXJpZ2h0JyxcbiAgICAgICAgd29yZEJyZWFrOiBtZXNzYWdlQWN0aXZpdHlXb3JkQnJlYWtcbiAgICAgIH0sXG5cbiAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yic6IHtcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLCAvLyBUaGlzIHN0eWxlIGlzIGZvciBJRTExIGJlY2F1c2UgaXQgZG9lc24ndCByZXNwZWN0IFNWRyB2aWV3cG9ydFxuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJ1xuICAgICAgfSxcblxuICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViLXBhZCc6IHtcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICB0cmFuc2l0aW9uUHJvcGVydHk6ICd3aWR0aCcsXG4gICAgICAgIHdpZHRoOiAwXG4gICAgICB9LFxuXG4gICAgICAnJi53ZWJjaGF0X19idWJibGUtLWhpZGUtbnViLCAmLndlYmNoYXRfX2J1YmJsZS0tc2hvdy1udWInOiB7XG4gICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yi1wYWQnOiB7XG4gICAgICAgICAgd2lkdGg6IHBhZGRpbmdSZWd1bGFyXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tcnRsIC53ZWJjaGF0X19idWJibGVfX251Yic6IHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLTEsIDEpJ1xuICAgICAgfSxcblxuICAgICAgJyY6bm90KC53ZWJjaGF0X19idWJibGUtLWZyb20tdXNlciknOiB7XG4gICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX2NvbnRlbnQnOiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogYnViYmxlQmFja2dyb3VuZCxcbiAgICAgICAgICBib3JkZXJDb2xvcjogYnViYmxlQm9yZGVyQ29sb3IsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiBidWJibGVCb3JkZXJSYWRpdXMsXG4gICAgICAgICAgYm9yZGVyU3R5bGU6IGJ1YmJsZUJvcmRlclN0eWxlLFxuICAgICAgICAgIGJvcmRlcldpZHRoOiBidWJibGVCb3JkZXJXaWR0aCxcbiAgICAgICAgICBjb2xvcjogYnViYmxlVGV4dENvbG9yLFxuICAgICAgICAgIG1pbkhlaWdodDogYnViYmxlTWluSGVpZ2h0IC0gYnViYmxlQm9yZGVyV2lkdGggKiAyXG4gICAgICAgIH0sXG5cbiAgICAgICAgLi4uKHR5cGVvZiBidWJibGVOdWJTaXplID09PSAnbnVtYmVyJ1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBidWJibGVOdWJTaXplLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBidWJibGVOdWJTaXplXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcblxuICAgICAgICAnJjpub3QoLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCkgLndlYmNoYXRfX2J1YmJsZV9fbnViJzoge1xuICAgICAgICAgIGJvdHRvbTogLWJ1YmJsZU51Yk9mZnNldFxuICAgICAgICB9LFxuXG4gICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgdG9wOiBidWJibGVOdWJPZmZzZXRcbiAgICAgICAgfSxcblxuICAgICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWItb3V0bGluZSc6IHtcbiAgICAgICAgICBmaWxsOiBidWJibGVCYWNrZ3JvdW5kLFxuICAgICAgICAgIHN0cm9rZTogYnViYmxlQm9yZGVyQ29sb3IsXG4gICAgICAgICAgc3Ryb2tlV2lkdGg6IGJ1YmJsZUJvcmRlcldpZHRoXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tZnJvbS11c2VyJzoge1xuICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93LXJldmVyc2UnLFxuXG4gICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX2NvbnRlbnQnOiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogYnViYmxlRnJvbVVzZXJCYWNrZ3JvdW5kLFxuICAgICAgICAgIGJvcmRlckNvbG9yOiBidWJibGVGcm9tVXNlckJvcmRlckNvbG9yLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogYnViYmxlRnJvbVVzZXJCb3JkZXJSYWRpdXMsXG4gICAgICAgICAgYm9yZGVyU3R5bGU6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyU3R5bGUsXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGgsXG4gICAgICAgICAgY29sb3I6IGJ1YmJsZUZyb21Vc2VyVGV4dENvbG9yLFxuICAgICAgICAgIG1pbkhlaWdodDogYnViYmxlTWluSGVpZ2h0IC0gYnViYmxlRnJvbVVzZXJCb3JkZXJXaWR0aCAqIDJcbiAgICAgICAgfSxcblxuICAgICAgICAuLi4odHlwZW9mIGJ1YmJsZUZyb21Vc2VyTnViU2l6ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgJyYgLndlYmNoYXRfX2J1YmJsZV9fbnViJzoge1xuICAgICAgICAgICAgICAgIGhlaWdodDogYnViYmxlRnJvbVVzZXJOdWJTaXplLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBidWJibGVGcm9tVXNlck51YlNpemVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuXG4gICAgICAgICcmOm5vdCgud2ViY2hhdF9fYnViYmxlLS1udWItb24tdG9wKSAud2ViY2hhdF9fYnViYmxlX19udWInOiB7XG4gICAgICAgICAgYm90dG9tOiAtYnViYmxlRnJvbVVzZXJOdWJPZmZzZXRcbiAgICAgICAgfSxcblxuICAgICAgICAnJi53ZWJjaGF0X19idWJibGUtLW51Yi1vbi10b3AgLndlYmNoYXRfX2J1YmJsZV9fbnViJzoge1xuICAgICAgICAgIHRvcDogYnViYmxlRnJvbVVzZXJOdWJPZmZzZXRcbiAgICAgICAgfSxcblxuICAgICAgICAnJiAud2ViY2hhdF9fYnViYmxlX19udWItb3V0bGluZSc6IHtcbiAgICAgICAgICBmaWxsOiBidWJibGVGcm9tVXNlckJhY2tncm91bmQsXG4gICAgICAgICAgc3Ryb2tlOiBidWJibGVGcm9tVXNlckJvcmRlckNvbG9yLFxuICAgICAgICAgIHN0cm9rZVdpZHRoOiBidWJibGVGcm9tVXNlckJvcmRlcldpZHRoXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC4uLm1pcnJvclN0eWxlKCcmLndlYmNoYXRfX2J1YmJsZS0tcnRsJywge1xuICAgICAgICAnJjpub3QoLndlYmNoYXRfX2J1YmJsZS0tZnJvbS11c2VyKSc6IHtcbiAgICAgICAgICAnJi53ZWJjaGF0X19idWJibGUtLXNob3ctbnViJzoge1xuICAgICAgICAgICAgLy8gSGlkZSBib3JkZXIgcmFkaXVzIGlmIHRoZXJlIGlzIGEgbnViIG9uIHRoZSB0b3AvYm90dG9tIGxlZnQgY29ybmVyXG4gICAgICAgICAgICAnJjpub3QoLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCkgLndlYmNoYXRfX2J1YmJsZV9fY29udGVudCc6IHtcbiAgICAgICAgICAgICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogYm90TnViQ29ybmVyUmFkaXVzXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAnJi53ZWJjaGF0X19idWJibGUtLW51Yi1vbi10b3AgLndlYmNoYXRfX2J1YmJsZV9fY29udGVudCc6IHtcbiAgICAgICAgICAgICAgYm9yZGVyVG9wTGVmdFJhZGl1czogYm90TnViQ29ybmVyUmFkaXVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIC4uLih0eXBlb2YgYnViYmxlTnViU2l6ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yic6IHsgbGVmdDogYnViYmxlQm9yZGVyV2lkdGggLSBidWJibGVOdWJTaXplICsgcGFkZGluZ1JlZ3VsYXIgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KVxuICAgICAgICB9LFxuXG4gICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tZnJvbS11c2VyJzoge1xuICAgICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tc2hvdy1udWInOiB7XG4gICAgICAgICAgICAvLyBIaWRlIGJvcmRlciByYWRpdXMgaWYgdGhlcmUgaXMgYSBudWIgb24gdGhlIHRvcC9ib3R0b20gcmlnaHQgY29ybmVyXG4gICAgICAgICAgICAnJjpub3QoLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCkgLndlYmNoYXRfX2J1YmJsZV9fY29udGVudCc6IHtcbiAgICAgICAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IHVzZXJOdWJDb3JuZXJSYWRpdXNcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICcmLndlYmNoYXRfX2J1YmJsZS0tbnViLW9uLXRvcCAud2ViY2hhdF9fYnViYmxlX19jb250ZW50Jzoge1xuICAgICAgICAgICAgICBib3JkZXJUb3BSaWdodFJhZGl1czogdXNlck51YkNvcm5lclJhZGl1c1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG5cbiAgICAgICAgICAuLi4odHlwZW9mIGJ1YmJsZUZyb21Vc2VyTnViU2l6ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICcmIC53ZWJjaGF0X19idWJibGVfX251Yic6IHsgcmlnaHQ6IGJ1YmJsZUZyb21Vc2VyQm9yZGVyV2lkdGggLSBidWJibGVGcm9tVXNlck51YlNpemUgKyBwYWRkaW5nUmVndWxhciB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge30pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufVxuIl19
;