@projectcor/maia-components 2.11.40-9 → 2.11.41-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +13 -7
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +34 -32
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +37 -22
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +3 -2
- package/lib/hooks/useEntitySearch.js +14 -10
- package/package.json +1 -1
|
@@ -112,6 +112,11 @@ var USER_TOOLTIP_AVATAR_GAP_PX = 32;
|
|
|
112
112
|
* para que solo el email ensanche el contenedor.
|
|
113
113
|
*/
|
|
114
114
|
var USER_TOOLTIP_NAME_ROW_MAX_PX = USER_TOOLTIP_MIN_WIDTH_PX - USER_TOOLTIP_PAD_X_PX - USER_TOOLTIP_AVATAR_GAP_PX;
|
|
115
|
+
/**
|
|
116
|
+
* Tope de ancho del nombre en la fila: por debajo del máximo de fila para que el ellipsis
|
|
117
|
+
* del nombre aparezca antes y quede más espacio visible para posición/cargo.
|
|
118
|
+
*/
|
|
119
|
+
var USER_TOOLTIP_NAME_MAX_WIDTH_PX = Math.floor(USER_TOOLTIP_NAME_ROW_MAX_PX * 0.42);
|
|
115
120
|
var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
116
121
|
var _metadata$picture, _metadata$positionNam, _metadata$positionNam2, _metadata$email$trim, _metadata$email, _metadata$name;
|
|
117
122
|
var label = mention.label,
|
|
@@ -203,7 +208,7 @@ var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
|
203
208
|
avatarWrap.appendChild(createInitialsFallback());
|
|
204
209
|
}
|
|
205
210
|
|
|
206
|
-
// Columna de info:
|
|
211
|
+
// Columna de info: ancho = max(fila nombre, email); sin forzar 244px si el contenido es más corto.
|
|
207
212
|
var infoCol = document.createElement('div');
|
|
208
213
|
Object.assign(infoCol.style, {
|
|
209
214
|
display: 'flex',
|
|
@@ -211,26 +216,27 @@ var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
|
211
216
|
justifyContent: 'center',
|
|
212
217
|
alignItems: 'flex-start',
|
|
213
218
|
gap: '2px',
|
|
214
|
-
minWidth:
|
|
219
|
+
minWidth: '0',
|
|
215
220
|
width: 'max-content',
|
|
216
221
|
maxWidth: '100%'
|
|
217
222
|
});
|
|
218
223
|
|
|
219
|
-
// Fila: nombre
|
|
224
|
+
// Fila: nombre | posición — max-content para no dejar hueco entre nombre corto y el pipe (evitar flex 50/50).
|
|
220
225
|
var nameRow = document.createElement('div');
|
|
221
226
|
Object.assign(nameRow.style, {
|
|
222
227
|
display: 'flex',
|
|
223
228
|
alignItems: 'flex-start',
|
|
224
229
|
gap: '4px',
|
|
225
230
|
minWidth: '0',
|
|
226
|
-
width:
|
|
231
|
+
width: 'max-content',
|
|
227
232
|
maxWidth: "".concat(USER_TOOLTIP_NAME_ROW_MAX_PX, "px")
|
|
228
233
|
});
|
|
229
234
|
var nameSpan = document.createElement('span');
|
|
230
235
|
nameSpan.textContent = label;
|
|
231
236
|
Object.assign(nameSpan.style, {
|
|
232
|
-
flex: '
|
|
237
|
+
flex: '0 1 auto',
|
|
233
238
|
minWidth: '0',
|
|
239
|
+
maxWidth: "".concat(USER_TOOLTIP_NAME_MAX_WIDTH_PX, "px"),
|
|
234
240
|
overflow: 'hidden',
|
|
235
241
|
textOverflow: 'ellipsis',
|
|
236
242
|
whiteSpace: 'nowrap',
|
|
@@ -250,7 +256,7 @@ var createUserTooltipEl = function createUserTooltipEl(mention) {
|
|
|
250
256
|
var posSpan = document.createElement('span');
|
|
251
257
|
posSpan.textContent = positionLine;
|
|
252
258
|
Object.assign(posSpan.style, _objectSpread(_objectSpread({}, TOOLTIP_SECONDARY_STYLE), {}, {
|
|
253
|
-
flex: '
|
|
259
|
+
flex: '0 1 auto',
|
|
254
260
|
minWidth: '0',
|
|
255
261
|
overflow: 'hidden',
|
|
256
262
|
textOverflow: 'ellipsis',
|
|
@@ -381,4 +387,4 @@ export var buildChipElement = function buildChipElement(mention) {
|
|
|
381
387
|
}
|
|
382
388
|
return chip;
|
|
383
389
|
};
|
|
384
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiY3JlYXRlUm9vdCIsImkxOG4iLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsIkVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIiwiZGlzcGxheSIsImxpbmVIZWlnaHQiLCJhbGlnblNlbGYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsIkVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJjb2xvciIsImNyZWF0ZUVkaXRhYmxlTWVudGlvbkxhYmVsRWwiLCJpc1Rhc2siLCJtZW50aW9uTGFiZWwiLCJzdHlsZSIsIkVkaXRhYmxlTWVudGlvbkNoaXAiLCJfcmVmIiwibWVudGlvbiIsImxhYmVsIiwiaWNvbkNvbG9yIiwidHlwZSIsImZnIiwiaXNQcm9qZWN0IiwiaWNvblNpemUiLCJsYWJlbEVsIiwib3V0ZXJTdHlsZSIsInBvc2l0aW9uIiwiYm94U2l6aW5nIiwidmVydGljYWxBbGlnbiIsIm1hcmdpblJpZ2h0Iiwid2lkdGgiLCJpZCIsImluaXRpYWxzRnJvbU5hbWUiLCJuYW1lIiwiX3BhcnRzJDIiLCJ0cmltbWVkIiwidHJpbSIsInBhcnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiX3BhcnRzJDAkY2hhckF0IiwiX3BhcnRzJCIsIl9wYXJ0cyRjaGFyQXQiLCJfcGFydHMiLCJmaXJzdCIsImNoYXJBdCIsImxhc3QiLCJjb25jYXQiLCJ0b1VwcGVyQ2FzZSIsInNpbmdsZSIsInNsaWNlIiwiVE9PTFRJUF9GT05UIiwiVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IiLCJUT09MVElQX1NFQ09OREFSWV9TVFlMRSIsImZvbnRGYW1pbHkiLCJVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYIiwiVVNFUl9UT09MVElQX1BBRF9YX1BYIiwiVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFgiLCJVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYIiwiY3JlYXRlVXNlclRvb2x0aXBFbCIsIl9tZXRhZGF0YSRwaWN0dXJlIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtMiIsIl9tZXRhZGF0YSRlbWFpbCR0cmltIiwiX21ldGFkYXRhJGVtYWlsIiwiX21ldGFkYXRhJG5hbWUiLCJtZXRhZGF0YSIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ0IiwiZGVmYXVsdFZhbHVlIiwiZW1haWwiLCJuYW1lRm9ySW5pdGlhbHMiLCJ0b29sdGlwIiwiZG9jdW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJ6SW5kZXgiLCJwYWRkaW5nIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93IiwicG9pbnRlckV2ZW50cyIsIm92ZXJmbG93Iiwicm93IiwiZ2FwIiwiYXZhdGFyV3JhcCIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwiZmxleFNocmluayIsImluaXRpYWxzIiwiY3JlYXRlSW5pdGlhbHNGYWxsYmFjayIsImZiIiwidGV4dENvbnRlbnQiLCJpbWciLCJzcmMiLCJhbHQiLCJkcmFnZ2FibGUiLCJvYmplY3RGaXQiLCJvbmVycm9yIiwicmVtb3ZlIiwiYXBwZW5kQ2hpbGQiLCJpbmZvQ29sIiwibmFtZVJvdyIsIm5hbWVTcGFuIiwiZmxleCIsInRleHRPdmVyZmxvdyIsInNlcCIsIl9vYmplY3RTcHJlYWQiLCJwb3NTcGFuIiwiZW1haWxTcGFuIiwiYnVpbGRDaGlwRWxlbWVudCIsImNoaXAiLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc05hbWUiLCJjb21tb24iLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJtb3VudE5vZGUiLCJyb290IiwicmVuZGVyIiwiY3Vyc29yIiwib25jbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndpbmRvdyIsIm9wZW4iLCJ0b29sdGlwRWwiLCJjaGlwUmVtb3ZlZE9ic2VydmVyIiwicmVtb3ZlVXNlclRvb2x0aXAiLCJfY2hpcFJlbW92ZWRPYnNlcnZlciIsImRpc2Nvbm5lY3QiLCJ3YXRjaENoaXBSZW1vdmVkRnJvbURvbSIsIl9jaGlwUmVtb3ZlZE9ic2VydmVyMiIsInBhcmVudCIsInBhcmVudE5vZGUiLCJNdXRhdGlvbk9ic2VydmVyIiwiaXNDb25uZWN0ZWQiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGVmdCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJpbm5lcldpZHRoIiwidG9wIiwidHJhbnNmb3JtIiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uQ2hpcC9idWlsZENoaXBFbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIHR5cGUgQ1NTUHJvcGVydGllcyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmx1c2hTeW5jIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnXG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi8uLi9sYW5nJ1xuaW1wb3J0IHsgQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1MsIENvbnRleHRNZW50aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgeyBnZXRDb250ZXh0TWVudGlvbkljb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHsgbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uTGFiZWwnXG5pbXBvcnQgeyBvcGVuVGFza0luQ29yUGFuZWwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9vcGVuVGFza0luQ29yUGFuZWwnXG5pbXBvcnQgeyBhcHBseU1lbnRpb25DaGlwU3R5bGVzLCBNRU5USU9OX0NISVBfQ09MT1JTIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkNoaXAuc3R5bGVzJ1xuXG5jb25zdCBFRElUQUJMRV9OT05fVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgYWxpZ25TZWxmOiAnYmFzZWxpbmUnLFxuICBtaW5XaWR0aDogMCxcbiAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgd2hpdGVTcGFjZTogJ25vcm1hbCcsXG4gIG92ZXJmbG93V3JhcDogJ2JyZWFrLXdvcmQnLFxuICB3b3JkQnJlYWs6ICdicmVhay13b3JkJyxcbn1cblxuLyoqIFRleHRvIGRlIHRhcmVhOiBzaW4gYm9yZGUgaW5mZXJpb3I7IGVsIGFzcGVjdG8gZGUgZW5sYWNlIGxvIGRhIGVsIENTUyBnbG9iYWwgKDo6YmVmb3JlICsgY29sb3IpLiAqL1xuY29uc3QgRURJVEFCTEVfVEFTS19MQUJFTF9TVFlMRTogQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2lubGluZScsXG4gIGZvbnRTaXplOiAnMTRweCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgZm9udFdlaWdodDogJzYwMCcsXG4gIGNvbG9yOiAnaW5oZXJpdCcsXG4gIG1pbldpZHRoOiAwLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxufVxuXG5jb25zdCBjcmVhdGVFZGl0YWJsZU1lbnRpb25MYWJlbEVsID0gKGlzVGFzazogYm9vbGVhbiwgbWVudGlvbkxhYmVsOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFpc1Rhc2spIHtcbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIH0sIG1lbnRpb25MYWJlbClcbiAgfVxuICByZXR1cm4gY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IEVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUgfSwgbWVudGlvbkxhYmVsKVxufVxuXG50eXBlIEVkaXRhYmxlTWVudGlvbkNoaXBQcm9wcyA9IHtcbiAgbWVudGlvbjogQ29udGV4dE1lbnRpb25cbn1cblxuY29uc3QgRWRpdGFibGVNZW50aW9uQ2hpcCA9ICh7IG1lbnRpb24gfTogRWRpdGFibGVNZW50aW9uQ2hpcFByb3BzKSA9PiB7XG4gIGNvbnN0IG1lbnRpb25MYWJlbCA9IG5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwobWVudGlvbi5sYWJlbClcbiAgY29uc3QgaWNvbkNvbG9yID0gTUVOVElPTl9DSElQX0NPTE9SU1ttZW50aW9uLnR5cGVdLmZnXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGlzUHJvamVjdCA9IG1lbnRpb24udHlwZSA9PT0gJ3Byb2plY3QnXG4gIGNvbnN0IGljb25TaXplID0gaXNUYXNrID8gMTYgOiAxNFxuICBjb25zdCBsYWJlbEVsID0gY3JlYXRlRWRpdGFibGVNZW50aW9uTGFiZWxFbChpc1Rhc2ssIG1lbnRpb25MYWJlbClcblxuICBjb25zdCBvdXRlclN0eWxlOiBDU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gIH1cblxuICBpZiAoaXNUYXNrIHx8IGlzUHJvamVjdCkge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogb3V0ZXJTdHlsZSB9LCBsYWJlbEVsKVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgJ3NwYW4nLFxuICAgIHsgc3R5bGU6IG91dGVyU3R5bGUgfSxcbiAgICBjcmVhdGVFbGVtZW50KFxuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMnB4JyxcbiAgICAgICAgICBsaW5lSGVpZ2h0OiAnMScsXG4gICAgICAgICAgd2lkdGg6ICcxNHB4JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBnZXRDb250ZXh0TWVudGlvbkljb24obWVudGlvbi50eXBlLCBpY29uQ29sb3IsIG1lbnRpb24uaWQsIGljb25TaXplKVxuICAgICksXG4gICAgbGFiZWxFbFxuICApXG59XG5cbmNvbnN0IGluaXRpYWxzRnJvbU5hbWUgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IG5hbWUudHJpbSgpXG4gIGlmICghdHJpbW1lZCkgcmV0dXJuICc/J1xuICBjb25zdCBwYXJ0cyA9IHRyaW1tZWQuc3BsaXQoL1xccysvKS5maWx0ZXIoQm9vbGVhbilcbiAgaWYgKHBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgY29uc3QgZmlyc3QgPSBwYXJ0c1swXT8uY2hhckF0KDApID8/ICcnXG4gICAgY29uc3QgbGFzdCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdPy5jaGFyQXQoMCkgPz8gJydcbiAgICByZXR1cm4gYCR7Zmlyc3R9JHtsYXN0fWAudG9VcHBlckNhc2UoKVxuICB9XG4gIGNvbnN0IHNpbmdsZSA9IHBhcnRzWzBdID8/ICcnXG4gIHJldHVybiBzaW5nbGUubGVuZ3RoID49IDIgPyBzaW5nbGUuc2xpY2UoMCwgMikudG9VcHBlckNhc2UoKSA6IChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBUT09MVElQX0ZPTlQgPSBgdmFyKC0tY29yLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICdXb3JrIFNhbnMnKWBcbmNvbnN0IFRPT0xUSVBfU0VDT05EQVJZX0NPTE9SID0gJ3ZhcigtLVRleHQtU2Vjb25kYXJ5LURhcmssICM2NjYpJ1xuY29uc3QgVE9PTFRJUF9TRUNPTkRBUllfU1RZTEUgPSB7XG4gIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgZm9udFdlaWdodDogJzQwMCcsXG4gIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgY29sb3I6IFRPT0xUSVBfU0VDT05EQVJZX0NPTE9SLFxufVxuXG4vKiogQW5jaG8gbcOtbmltbyBkZWwgdG9vbHRpcCAoaW5jbC4gcGFkZGluZyBob3Jpem9udGFsIDgrOCkuICovXG5jb25zdCBVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYID0gMjkyXG4vKiogUGFkZGluZyBob3Jpem9udGFsIHRvdGFsIGRlbCB0b29sdGlwLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX1BBRF9YX1BYID0gMTZcbi8qKiBBdmF0YXIgMjRweCArIGdhcCA4cHggcmVzcGVjdG8gYSBsYSBjb2x1bW5hIGRlIHRleHRvLiAqL1xuY29uc3QgVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFggPSAzMlxuLyoqXG4gKiBBbmNobyBtw6F4aW1vIGRlIGxhIGZpbGEgbm9tYnJlIHwgcG9zaWNpw7NuOiBtaXNtbyBodWVjbyBxdWUgY29uIHRvb2x0aXAgZmlqbyAyOTJweCxcbiAqIHBhcmEgcXVlIHNvbG8gZWwgZW1haWwgZW5zYW5jaGUgZWwgY29udGVuZWRvci5cbiAqL1xuY29uc3QgVVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWCA9IFVTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFggLSBVU0VSX1RPT0xUSVBfUEFEX1hfUFggLSBVU0VSX1RPT0xUSVBfQVZBVEFSX0dBUF9QWFxuXG5jb25zdCBjcmVhdGVVc2VyVG9vbHRpcEVsID0gKG1lbnRpb246IENvbnRleHRNZW50aW9uKTogSFRNTEVsZW1lbnQgPT4ge1xuICBjb25zdCB7IGxhYmVsLCBtZXRhZGF0YSB9ID0gbWVudGlvblxuICBjb25zdCBwaWN0dXJlID0gbWV0YWRhdGE/LnBpY3R1cmUgPz8gbnVsbFxuICBjb25zdCBwb3NpdGlvbk5hbWUgPSBtZXRhZGF0YT8ucG9zaXRpb25OYW1lPy50cmltKCkgPz8gJydcbiAgY29uc3QgcG9zaXRpb25MaW5lID1cbiAgICBwb3NpdGlvbk5hbWUgfHxcbiAgICBpMThuLnQoJ2NvbnRleHRNZW50aW9uLnVzZXJOb1Bvc2l0aW9uJywge1xuICAgICAgZGVmYXVsdFZhbHVlOiAnU2luIHBvc2ljacOzbicsXG4gICAgfSlcbiAgY29uc3QgZW1haWwgPSBtZXRhZGF0YT8uZW1haWw/LnRyaW0oKSA/PyAnJ1xuICAvKiogTWlzbWEgZnVlbnRlIHF1ZSBgQ29udGV4dE1lbnRpb25JdGVtYCAoYXZhdGFyKTogbm9tYnJlIGRlIHF1ZXJ5LCBubyBlbCBsYWJlbCBkZWwgY2hpcCAoZWouIFwiWW9cIikuICovXG4gIGNvbnN0IG5hbWVGb3JJbml0aWFscyA9IChtZXRhZGF0YT8ubmFtZT8udHJpbSgpID8gbWV0YWRhdGEubmFtZSA6IGxhYmVsKS50cmltKClcblxuICBjb25zdCB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbih0b29sdGlwLnN0eWxlLCB7XG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgekluZGV4OiAnOTk5OScsXG4gICAgbWluV2lkdGg6IGAke1VTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFh9cHhgLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiAnbWluKDU2MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpJyxcbiAgICBwYWRkaW5nOiAnMTJweCA4cHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tQ29sb3ItTGlnaHQtR3JheSwgI0UwRTBFMCknLFxuICAgIGJhY2tncm91bmQ6ICcjRkZGJyxcbiAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDgpLCAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMDQpJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICB9KVxuXG4gIGNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24ocm93LnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogJzhweCcsXG4gICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICB9KVxuXG4gIC8vIEF2YXRhciBjaXJjdWxhciAoZm90byBvIGluaWNpYWxlcylcbiAgY29uc3QgYXZhdGFyV3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oYXZhdGFyV3JhcC5zdHlsZSwge1xuICAgIHdpZHRoOiAnMjRweCcsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgbWluV2lkdGg6ICcyNHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAvKiogTWlzbW8gZm9uZG8gcXVlIGBTQ01Vc2VyQXZhdGFyRmFsbGJhY2tgIGVuIGxhIGZpbGEgZGUgdXN1YXJpbyBkZWwgbW9kYWwuICovXG4gICAgYmFja2dyb3VuZDogJ3ZhcigtLWNvci1jb2xvci1ncmV5LTIwMCwgI2UwZTBlMCknLFxuICAgIGZsZXhTaHJpbms6ICcwJyxcbiAgfSlcblxuICBjb25zdCBpbml0aWFscyA9IGluaXRpYWxzRnJvbU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIGNvbnN0IGNyZWF0ZUluaXRpYWxzRmFsbGJhY2sgPSAoKTogSFRNTEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGZiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgZmIudGV4dENvbnRlbnQgPSBpbml0aWFsc1xuICAgIE9iamVjdC5hc3NpZ24oZmIuc3R5bGUsIHtcbiAgICAgIGZvbnRTaXplOiAnMTBweCcsXG4gICAgICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgICAgIC8qKiBNaXNtbyBjb2xvciBxdWUgYFNDTVVzZXJBdmF0YXJGYWxsYmFja2AgZW4gbGEgZmlsYSBkZSB1c3VhcmlvIGRlbCBtb2RhbC4gKi9cbiAgICAgIGNvbG9yOiAndmFyKC0tY29yLWNvbG9yLXRleHQtc2Vjb25kYXJ5LCAjNjY2KScsXG4gICAgICBsaW5lSGVpZ2h0OiAnMScsXG4gICAgICBmb250RmFtaWx5OiBUT09MVElQX0ZPTlQsXG4gICAgfSlcbiAgICByZXR1cm4gZmJcbiAgfVxuXG4gIGlmIChwaWN0dXJlKSB7XG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJylcbiAgICBpbWcuc3JjID0gcGljdHVyZVxuICAgIGltZy5hbHQgPSAnJ1xuICAgIGltZy5kcmFnZ2FibGUgPSBmYWxzZVxuICAgIE9iamVjdC5hc3NpZ24oaW1nLnN0eWxlLCB7XG4gICAgICB3aWR0aDogJzI0cHgnLFxuICAgICAgaGVpZ2h0OiAnMjRweCcsXG4gICAgICBvYmplY3RGaXQ6ICdjb3ZlcicsXG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMjRweCcsXG4gICAgfSlcbiAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgIGltZy5yZW1vdmUoKVxuICAgICAgYXZhdGFyV3JhcC5hcHBlbmRDaGlsZChjcmVhdGVJbml0aWFsc0ZhbGxiYWNrKCkpXG4gICAgfVxuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoaW1nKVxuICB9IGVsc2Uge1xuICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoY3JlYXRlSW5pdGlhbHNGYWxsYmFjaygpKVxuICB9XG5cbiAgLy8gQ29sdW1uYSBkZSBpbmZvOiBjcmVjZSBjb24gZWwgZW1haWwgKHVuYSBsw61uZWEpOyBsYSBmaWxhIG5vbWJyZSBtYW50aWVuZSBhbmNobyBiYXNlLlxuICBjb25zdCBpbmZvQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgT2JqZWN0LmFzc2lnbihpbmZvQ29sLnN0eWxlLCB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnMnB4JyxcbiAgICBtaW5XaWR0aDogYCR7VVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWH1weGAsXG4gICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfSlcblxuICAvLyBGaWxhOiBub21icmUgKyBzZXBhcmFkb3IgKyBwb3NpY2nDs24gKGFuY2hvIGZpam8gY29tbyBhbnRlczsgbm8gZW5zYW5jaGEgZWwgdG9vbHRpcClcbiAgY29uc3QgbmFtZVJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24obmFtZVJvdy5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcsXG4gICAgZ2FwOiAnNHB4JyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIHdpZHRoOiBgJHtVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYfXB4YCxcbiAgICBtYXhXaWR0aDogYCR7VVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWH1weGAsXG4gIH0pXG5cbiAgY29uc3QgbmFtZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbmFtZVNwYW4udGV4dENvbnRlbnQgPSBsYWJlbFxuICBPYmplY3QuYXNzaWduKG5hbWVTcGFuLnN0eWxlLCB7XG4gICAgZmxleDogJzEgMSAwJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgY29sb3I6ICd2YXIoLS1UZXh0LVByaW1hcnktRGFyaywgIzIwMjAxRiknLFxuICAgIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6ICc1MDAnLFxuICAgIGxpbmVIZWlnaHQ6ICcxMzAlJyxcbiAgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChuYW1lU3BhbilcblxuICBjb25zdCBzZXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgc2VwLnRleHRDb250ZW50ID0gJ3wnXG4gIE9iamVjdC5hc3NpZ24oc2VwLnN0eWxlLCB7IC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLCBmbGV4U2hyaW5rOiAnMCcgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChzZXApXG5cbiAgY29uc3QgcG9zU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBwb3NTcGFuLnRleHRDb250ZW50ID0gcG9zaXRpb25MaW5lXG4gIE9iamVjdC5hc3NpZ24ocG9zU3Bhbi5zdHlsZSwge1xuICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgIGZsZXg6ICcxIDEgMCcsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKHBvc1NwYW4pXG5cbiAgaW5mb0NvbC5hcHBlbmRDaGlsZChuYW1lUm93KVxuXG4gIGlmIChlbWFpbCkge1xuICAgIGNvbnN0IGVtYWlsU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIGVtYWlsU3Bhbi50ZXh0Q29udGVudCA9IGVtYWlsXG4gICAgT2JqZWN0LmFzc2lnbihlbWFpbFNwYW4uc3R5bGUsIHtcbiAgICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIH0pXG4gICAgaW5mb0NvbC5hcHBlbmRDaGlsZChlbWFpbFNwYW4pXG4gIH1cblxuICByb3cuYXBwZW5kQ2hpbGQoYXZhdGFyV3JhcClcbiAgcm93LmFwcGVuZENoaWxkKGluZm9Db2wpXG4gIHRvb2x0aXAuYXBwZW5kQ2hpbGQocm93KVxuXG4gIHJldHVybiB0b29sdGlwXG59XG5cbi8qKlxuICogQ3JlYSB1biBgPHNwYW4+YCBhdMOzbWljbyBsaXN0byBwYXJhIGluc2VydGFyc2UgZGVudHJvIGRlbCBjb250ZW50ZWRpdGFibGVcbiAqIGRlbCBgQ29udGV4dE1lbnRpb25FZGl0b3JgLiBTZSBtYXJjYSBjb24gbG9zIGBkYXRhLW1lbnRpb24qYCBuZWNlc2FyaW9zIHBhcmFcbiAqIHF1ZSBgdXNlQ29udGV4dE1lbnRpb25zLnNlcmlhbGl6ZSgpYCBwdWVkYSB2b2x2ZXIgYSBleHRyYWVyIGxhIG1lbnRpb24uXG4gKlxuICogQ29tcGFydGUgbG9zIGVzdGlsb3MgY29uIGVsIGNvbXBvbmVudGUgYENvbnRleHRNZW50aW9uQ2hpcGAgdmlhXG4gKiBgYXBwbHlNZW50aW9uQ2hpcFN0eWxlc2AsIGFzZWd1cmFuZG8gdW5hIMO6bmljYSBmdWVudGUgZGUgdmVyZGFkIHZpc3VhbC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQ2hpcEVsZW1lbnQgPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBIVE1MU3BhbkVsZW1lbnQgPT4ge1xuICBjb25zdCBjaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWNoaXAnLCAndHJ1ZScpXG4gIGNoaXAuY2xhc3NOYW1lID0gQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1NcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgbWVudGlvbi50eXBlKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLXN1cmZhY2UnLCAnZWRpdG9yJylcbiAgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyhjaGlwLCBtZW50aW9uLnR5cGUpXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGNvbW1vbiA9IHtcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfSBhcyBjb25zdFxuICBpZiAoaXNUYXNrKSB7XG4gICAgT2JqZWN0LmFzc2lnbihjaGlwLnN0eWxlLCBjb21tb24sIHtcbiAgICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIE9iamVjdC5hc3NpZ24oY2hpcC5zdHlsZSwgY29tbW9uLCB7XG4gICAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgfSlcbiAgfVxuICBjb25zdCBtb3VudE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbW91bnROb2RlLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJ1xuICBtb3VudE5vZGUuc3R5bGUubWF4V2lkdGggPSAnMTAwJSdcbiAgbW91bnROb2RlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnYmFzZWxpbmUnXG4gIG1vdW50Tm9kZS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCdcbiAgY2hpcC5hcHBlbmRDaGlsZChtb3VudE5vZGUpXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KG1vdW50Tm9kZSlcblxuICBmbHVzaFN5bmMoKCkgPT4ge1xuICAgIHJvb3QucmVuZGVyKGNyZWF0ZUVsZW1lbnQoRWRpdGFibGVNZW50aW9uQ2hpcCwgeyBtZW50aW9uIH0pKVxuICB9KVxuXG4gIGlmIChtZW50aW9uLnR5cGUgPT09ICd0YXNrJykge1xuICAgIGNoaXAuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInXG4gICAgY2hpcC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIG9wZW5UYXNrSW5Db3JQYW5lbChtZW50aW9uLmlkLCAnZGV0YWlsJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICBjaGlwLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJ1xuICAgIGNoaXAub25jbGljayA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICB3aW5kb3cub3BlbihgL3Byb2plY3QvJHttZW50aW9uLmlkfS9kYXNoYm9hcmRgLCAnX2JsYW5rJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAndXNlcicpIHtcbiAgICBsZXQgdG9vbHRpcEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsXG4gICAgbGV0IGNoaXBSZW1vdmVkT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3QgcmVtb3ZlVXNlclRvb2x0aXAgPSAoKSA9PiB7XG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBudWxsXG4gICAgICBpZiAodG9vbHRpcEVsKSB7XG4gICAgICAgIHRvb2x0aXBFbC5yZW1vdmUoKVxuICAgICAgICB0b29sdGlwRWwgPSBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNpIGVsIGNoaXAgc2UgYm9ycmEgZGVsIGVkaXRvciAoQmFja3NwYWNlLCBldGMuKSBubyBzaWVtcHJlIGhheSBgbW91c2VsZWF2ZWA7IGNlcnJhciBlbCB0b29sdGlwLiAqL1xuICAgIGNvbnN0IHdhdGNoQ2hpcFJlbW92ZWRGcm9tRG9tID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gY2hpcC5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIGlmICghY2hpcC5pc0Nvbm5lY3RlZCkgcmVtb3ZlVXNlclRvb2x0aXAoKVxuICAgICAgfSlcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIub2JzZXJ2ZShwYXJlbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgY2hpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgaWYgKHRvb2x0aXBFbCkgcmV0dXJuXG4gICAgICB0b29sdGlwRWwgPSBjcmVhdGVVc2VyVG9vbHRpcEVsKG1lbnRpb24pXG4gICAgICBjb25zdCByZWN0ID0gY2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KDgsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gMzAwLCByZWN0LmxlZnQpKVxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRvcCA9IGAke3JlY3QudG9wfXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKGNhbGMoLTEwMCUgLSA0cHgpKSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsKVxuICAgICAgd2F0Y2hDaGlwUmVtb3ZlZEZyb21Eb20oKVxuICAgIH0pXG5cbiAgICBjaGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCByZW1vdmVVc2VyVG9vbHRpcClcbiAgfVxuXG4gIHJldHVybiBjaGlwXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLGFBQWEsUUFBNEIsT0FBTztBQUN6RCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxT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
|
|
390
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVFbGVtZW50IiwiZmx1c2hTeW5jIiwiY3JlYXRlUm9vdCIsImkxOG4iLCJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsImdldENvbnRleHRNZW50aW9uSWNvbiIsIm5vcm1hbGl6ZUNvbnRleHRNZW50aW9uTGFiZWwiLCJvcGVuVGFza0luQ29yUGFuZWwiLCJhcHBseU1lbnRpb25DaGlwU3R5bGVzIiwiTUVOVElPTl9DSElQX0NPTE9SUyIsIkVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFIiwiZGlzcGxheSIsImxpbmVIZWlnaHQiLCJhbGlnblNlbGYiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93V3JhcCIsIndvcmRCcmVhayIsIkVESVRBQkxFX1RBU0tfTEFCRUxfU1RZTEUiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJjb2xvciIsImNyZWF0ZUVkaXRhYmxlTWVudGlvbkxhYmVsRWwiLCJpc1Rhc2siLCJtZW50aW9uTGFiZWwiLCJzdHlsZSIsIkVkaXRhYmxlTWVudGlvbkNoaXAiLCJfcmVmIiwibWVudGlvbiIsImxhYmVsIiwiaWNvbkNvbG9yIiwidHlwZSIsImZnIiwiaXNQcm9qZWN0IiwiaWNvblNpemUiLCJsYWJlbEVsIiwib3V0ZXJTdHlsZSIsInBvc2l0aW9uIiwiYm94U2l6aW5nIiwidmVydGljYWxBbGlnbiIsIm1hcmdpblJpZ2h0Iiwid2lkdGgiLCJpZCIsImluaXRpYWxzRnJvbU5hbWUiLCJuYW1lIiwiX3BhcnRzJDIiLCJ0cmltbWVkIiwidHJpbSIsInBhcnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiX3BhcnRzJDAkY2hhckF0IiwiX3BhcnRzJCIsIl9wYXJ0cyRjaGFyQXQiLCJfcGFydHMiLCJmaXJzdCIsImNoYXJBdCIsImxhc3QiLCJjb25jYXQiLCJ0b1VwcGVyQ2FzZSIsInNpbmdsZSIsInNsaWNlIiwiVE9PTFRJUF9GT05UIiwiVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IiLCJUT09MVElQX1NFQ09OREFSWV9TVFlMRSIsImZvbnRGYW1pbHkiLCJVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYIiwiVVNFUl9UT09MVElQX1BBRF9YX1BYIiwiVVNFUl9UT09MVElQX0FWQVRBUl9HQVBfUFgiLCJVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYIiwiVVNFUl9UT09MVElQX05BTUVfTUFYX1dJRFRIX1BYIiwiTWF0aCIsImZsb29yIiwiY3JlYXRlVXNlclRvb2x0aXBFbCIsIl9tZXRhZGF0YSRwaWN0dXJlIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtIiwiX21ldGFkYXRhJHBvc2l0aW9uTmFtMiIsIl9tZXRhZGF0YSRlbWFpbCR0cmltIiwiX21ldGFkYXRhJGVtYWlsIiwiX21ldGFkYXRhJG5hbWUiLCJtZXRhZGF0YSIsInBpY3R1cmUiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCJ0IiwiZGVmYXVsdFZhbHVlIiwiZW1haWwiLCJuYW1lRm9ySW5pdGlhbHMiLCJ0b29sdGlwIiwiZG9jdW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJ6SW5kZXgiLCJwYWRkaW5nIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93IiwicG9pbnRlckV2ZW50cyIsIm92ZXJmbG93Iiwicm93IiwiZ2FwIiwiYXZhdGFyV3JhcCIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwiZmxleFNocmluayIsImluaXRpYWxzIiwiY3JlYXRlSW5pdGlhbHNGYWxsYmFjayIsImZiIiwidGV4dENvbnRlbnQiLCJpbWciLCJzcmMiLCJhbHQiLCJkcmFnZ2FibGUiLCJvYmplY3RGaXQiLCJvbmVycm9yIiwicmVtb3ZlIiwiYXBwZW5kQ2hpbGQiLCJpbmZvQ29sIiwibmFtZVJvdyIsIm5hbWVTcGFuIiwiZmxleCIsInRleHRPdmVyZmxvdyIsInNlcCIsIl9vYmplY3RTcHJlYWQiLCJwb3NTcGFuIiwiZW1haWxTcGFuIiwiYnVpbGRDaGlwRWxlbWVudCIsImNoaXAiLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc05hbWUiLCJjb21tb24iLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJtb3VudE5vZGUiLCJyb290IiwicmVuZGVyIiwiY3Vyc29yIiwib25jbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndpbmRvdyIsIm9wZW4iLCJ0b29sdGlwRWwiLCJjaGlwUmVtb3ZlZE9ic2VydmVyIiwicmVtb3ZlVXNlclRvb2x0aXAiLCJfY2hpcFJlbW92ZWRPYnNlcnZlciIsImRpc2Nvbm5lY3QiLCJ3YXRjaENoaXBSZW1vdmVkRnJvbURvbSIsIl9jaGlwUmVtb3ZlZE9ic2VydmVyMiIsInBhcmVudCIsInBhcmVudE5vZGUiLCJNdXRhdGlvbk9ic2VydmVyIiwiaXNDb25uZWN0ZWQiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGVmdCIsIm1heCIsIm1pbiIsImlubmVyV2lkdGgiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL2J1aWxkQ2hpcEVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgdHlwZSBDU1NQcm9wZXJ0aWVzIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBmbHVzaFN5bmMgfSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCdcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uLy4uL2xhbmcnXG5pbXBvcnQgeyBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUywgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IGdldENvbnRleHRNZW50aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uSWNvbnMnXG5pbXBvcnQgeyBub3JtYWxpemVDb250ZXh0TWVudGlvbkxhYmVsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29udGV4dE1lbnRpb25MYWJlbCdcbmltcG9ydCB7IG9wZW5UYXNrSW5Db3JQYW5lbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL29wZW5UYXNrSW5Db3JQYW5lbCdcbmltcG9ydCB7IGFwcGx5TWVudGlvbkNoaXBTdHlsZXMsIE1FTlRJT05fQ0hJUF9DT0xPUlMgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uQ2hpcC5zdHlsZXMnXG5cbmNvbnN0IEVESVRBQkxFX05PTl9UQVNLX0xBQkVMX1NUWUxFOiBDU1NQcm9wZXJ0aWVzID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICBhbGlnblNlbGY6ICdiYXNlbGluZScsXG4gIG1pbldpZHRoOiAwLFxuICBtYXhXaWR0aDogJzEwMCUnLFxuICB3aGl0ZVNwYWNlOiAnbm9ybWFsJyxcbiAgb3ZlcmZsb3dXcmFwOiAnYnJlYWstd29yZCcsXG4gIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLFxufVxuXG4vKiogVGV4dG8gZGUgdGFyZWE6IHNpbiBib3JkZSBpbmZlcmlvcjsgZWwgYXNwZWN0byBkZSBlbmxhY2UgbG8gZGEgZWwgQ1NTIGdsb2JhbCAoOjpiZWZvcmUgKyBjb2xvcikuICovXG5jb25zdCBFRElUQUJMRV9UQVNLX0xBQkVMX1NUWUxFOiBDU1NQcm9wZXJ0aWVzID0ge1xuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgZm9udFNpemU6ICcxNHB4JyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICBmb250V2VpZ2h0OiAnNjAwJyxcbiAgY29sb3I6ICdpbmhlcml0JyxcbiAgbWluV2lkdGg6IDAsXG4gIG1heFdpZHRoOiAnMTAwJScsXG4gIHdoaXRlU3BhY2U6ICdub3JtYWwnLFxuICBvdmVyZmxvd1dyYXA6ICdicmVhay13b3JkJyxcbiAgd29yZEJyZWFrOiAnYnJlYWstd29yZCcsXG59XG5cbmNvbnN0IGNyZWF0ZUVkaXRhYmxlTWVudGlvbkxhYmVsRWwgPSAoaXNUYXNrOiBib29sZWFuLCBtZW50aW9uTGFiZWw6IHN0cmluZykgPT4ge1xuICBpZiAoIWlzVGFzaykge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogRURJVEFCTEVfTk9OX1RBU0tfTEFCRUxfU1RZTEUgfSwgbWVudGlvbkxhYmVsKVxuICB9XG4gIHJldHVybiBjcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogRURJVEFCTEVfVEFTS19MQUJFTF9TVFlMRSB9LCBtZW50aW9uTGFiZWwpXG59XG5cbnR5cGUgRWRpdGFibGVNZW50aW9uQ2hpcFByb3BzID0ge1xuICBtZW50aW9uOiBDb250ZXh0TWVudGlvblxufVxuXG5jb25zdCBFZGl0YWJsZU1lbnRpb25DaGlwID0gKHsgbWVudGlvbiB9OiBFZGl0YWJsZU1lbnRpb25DaGlwUHJvcHMpID0+IHtcbiAgY29uc3QgbWVudGlvbkxhYmVsID0gbm9ybWFsaXplQ29udGV4dE1lbnRpb25MYWJlbChtZW50aW9uLmxhYmVsKVxuICBjb25zdCBpY29uQ29sb3IgPSBNRU5USU9OX0NISVBfQ09MT1JTW21lbnRpb24udHlwZV0uZmdcbiAgY29uc3QgaXNUYXNrID0gbWVudGlvbi50eXBlID09PSAndGFzaydcbiAgY29uc3QgaXNQcm9qZWN0ID0gbWVudGlvbi50eXBlID09PSAncHJvamVjdCdcbiAgY29uc3QgaWNvblNpemUgPSBpc1Rhc2sgPyAxNiA6IDE0XG4gIGNvbnN0IGxhYmVsRWwgPSBjcmVhdGVFZGl0YWJsZU1lbnRpb25MYWJlbEVsKGlzVGFzaywgbWVudGlvbkxhYmVsKVxuXG4gIGNvbnN0IG91dGVyU3R5bGU6IENTU1Byb3BlcnRpZXMgPSB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgbGluZUhlaWdodDogJzIwcHgnLFxuICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgIHZlcnRpY2FsQWxpZ246ICdiYXNlbGluZScsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfVxuXG4gIGlmIChpc1Rhc2sgfHwgaXNQcm9qZWN0KSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiBvdXRlclN0eWxlIH0sIGxhYmVsRWwpXG4gIH1cblxuICByZXR1cm4gY3JlYXRlRWxlbWVudChcbiAgICAnc3BhbicsXG4gICAgeyBzdHlsZTogb3V0ZXJTdHlsZSB9LFxuICAgIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3BhbicsXG4gICAgICB7XG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgICAgICAgbWFyZ2luUmlnaHQ6ICcycHgnLFxuICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxJyxcbiAgICAgICAgICB3aWR0aDogJzE0cHgnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGdldENvbnRleHRNZW50aW9uSWNvbihtZW50aW9uLnR5cGUsIGljb25Db2xvciwgbWVudGlvbi5pZCwgaWNvblNpemUpXG4gICAgKSxcbiAgICBsYWJlbEVsXG4gIClcbn1cblxuY29uc3QgaW5pdGlhbHNGcm9tTmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbmFtZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gJz8nXG4gIGNvbnN0IHBhcnRzID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdPy5jaGFyQXQoMCkgPz8gJydcbiAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIHJldHVybiBgJHtmaXJzdH0ke2xhc3R9YC50b1VwcGVyQ2FzZSgpXG4gIH1cbiAgY29uc3Qgc2luZ2xlID0gcGFydHNbMF0gPz8gJydcbiAgcmV0dXJuIHNpbmdsZS5sZW5ndGggPj0gMiA/IHNpbmdsZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpIDogKHNpbmdsZS5jaGFyQXQoMCkgfHwgJz8nKS50b1VwcGVyQ2FzZSgpXG59XG5cbmNvbnN0IFRPT0xUSVBfRk9OVCA9IGB2YXIoLS1jb3ItdHlwb2dyYXBoeS1mb250LWZhbWlseSwgJ1dvcmsgU2FucycpYFxuY29uc3QgVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IgPSAndmFyKC0tVGV4dC1TZWNvbmRhcnktRGFyaywgIzY2NiknXG5jb25zdCBUT09MVElQX1NFQ09OREFSWV9TVFlMRSA9IHtcbiAgZm9udEZhbWlseTogVE9PTFRJUF9GT05ULFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBmb250V2VpZ2h0OiAnNDAwJyxcbiAgbGluZUhlaWdodDogJzIwcHgnLFxuICBjb2xvcjogVE9PTFRJUF9TRUNPTkRBUllfQ09MT1IsXG59XG5cbi8qKiBBbmNobyBtw61uaW1vIGRlbCB0b29sdGlwIChpbmNsLiBwYWRkaW5nIGhvcml6b250YWwgOCs4KS4gKi9cbmNvbnN0IFVTRVJfVE9PTFRJUF9NSU5fV0lEVEhfUFggPSAyOTJcbi8qKiBQYWRkaW5nIGhvcml6b250YWwgdG90YWwgZGVsIHRvb2x0aXAuICovXG5jb25zdCBVU0VSX1RPT0xUSVBfUEFEX1hfUFggPSAxNlxuLyoqIEF2YXRhciAyNHB4ICsgZ2FwIDhweCByZXNwZWN0byBhIGxhIGNvbHVtbmEgZGUgdGV4dG8uICovXG5jb25zdCBVU0VSX1RPT0xUSVBfQVZBVEFSX0dBUF9QWCA9IDMyXG4vKipcbiAqIEFuY2hvIG3DoXhpbW8gZGUgbGEgZmlsYSBub21icmUgfCBwb3NpY2nDs246IG1pc21vIGh1ZWNvIHF1ZSBjb24gdG9vbHRpcCBmaWpvIDI5MnB4LFxuICogcGFyYSBxdWUgc29sbyBlbCBlbWFpbCBlbnNhbmNoZSBlbCBjb250ZW5lZG9yLlxuICovXG5jb25zdCBVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYID0gVVNFUl9UT09MVElQX01JTl9XSURUSF9QWCAtIFVTRVJfVE9PTFRJUF9QQURfWF9QWCAtIFVTRVJfVE9PTFRJUF9BVkFUQVJfR0FQX1BYXG4vKipcbiAqIFRvcGUgZGUgYW5jaG8gZGVsIG5vbWJyZSBlbiBsYSBmaWxhOiBwb3IgZGViYWpvIGRlbCBtw6F4aW1vIGRlIGZpbGEgcGFyYSBxdWUgZWwgZWxsaXBzaXNcbiAqIGRlbCBub21icmUgYXBhcmV6Y2EgYW50ZXMgeSBxdWVkZSBtw6FzIGVzcGFjaW8gdmlzaWJsZSBwYXJhIHBvc2ljacOzbi9jYXJnby5cbiAqL1xuY29uc3QgVVNFUl9UT09MVElQX05BTUVfTUFYX1dJRFRIX1BYID0gTWF0aC5mbG9vcihVU0VSX1RPT0xUSVBfTkFNRV9ST1dfTUFYX1BYICogMC40MilcblxuY29uc3QgY3JlYXRlVXNlclRvb2x0aXBFbCA9IChtZW50aW9uOiBDb250ZXh0TWVudGlvbik6IEhUTUxFbGVtZW50ID0+IHtcbiAgY29uc3QgeyBsYWJlbCwgbWV0YWRhdGEgfSA9IG1lbnRpb25cbiAgY29uc3QgcGljdHVyZSA9IG1ldGFkYXRhPy5waWN0dXJlID8/IG51bGxcbiAgY29uc3QgcG9zaXRpb25OYW1lID0gbWV0YWRhdGE/LnBvc2l0aW9uTmFtZT8udHJpbSgpID8/ICcnXG4gIGNvbnN0IHBvc2l0aW9uTGluZSA9XG4gICAgcG9zaXRpb25OYW1lIHx8XG4gICAgaTE4bi50KCdjb250ZXh0TWVudGlvbi51c2VyTm9Qb3NpdGlvbicsIHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogJ1NpbiBwb3NpY2nDs24nLFxuICAgIH0pXG4gIGNvbnN0IGVtYWlsID0gbWV0YWRhdGE/LmVtYWlsPy50cmltKCkgPz8gJydcbiAgLyoqIE1pc21hIGZ1ZW50ZSBxdWUgYENvbnRleHRNZW50aW9uSXRlbWAgKGF2YXRhcik6IG5vbWJyZSBkZSBxdWVyeSwgbm8gZWwgbGFiZWwgZGVsIGNoaXAgKGVqLiBcIllvXCIpLiAqL1xuICBjb25zdCBuYW1lRm9ySW5pdGlhbHMgPSAobWV0YWRhdGE/Lm5hbWU/LnRyaW0oKSA/IG1ldGFkYXRhLm5hbWUgOiBsYWJlbCkudHJpbSgpXG5cbiAgY29uc3QgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24odG9vbHRpcC5zdHlsZSwge1xuICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgIHpJbmRleDogJzk5OTknLFxuICAgIG1pbldpZHRoOiBgJHtVU0VSX1RPT0xUSVBfTUlOX1dJRFRIX1BYfXB4YCxcbiAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICBtYXhXaWR0aDogJ21pbig1NjBweCwgY2FsYygxMDB2dyAtIDI0cHgpKScsXG4gICAgcGFkZGluZzogJzEycHggOHB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLUNvbG9yLUxpZ2h0LUdyYXksICNFMEUwRTApJyxcbiAgICBiYWNrZ3JvdW5kOiAnI0ZGRicsXG4gICAgYm94U2hhZG93OiAnMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjA4KSwgMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjA0KScsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgfSlcblxuICBjb25zdCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBPYmplY3QuYXNzaWduKHJvdy5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBnYXA6ICc4cHgnLFxuICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgfSlcblxuICAvLyBBdmF0YXIgY2lyY3VsYXIgKGZvdG8gbyBpbmljaWFsZXMpXG4gIGNvbnN0IGF2YXRhcldyYXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBPYmplY3QuYXNzaWduKGF2YXRhcldyYXAuc3R5bGUsIHtcbiAgICB3aWR0aDogJzI0cHgnLFxuICAgIGhlaWdodDogJzI0cHgnLFxuICAgIG1pbldpZHRoOiAnMjRweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnMjRweCcsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgLyoqIE1pc21vIGZvbmRvIHF1ZSBgU0NNVXNlckF2YXRhckZhbGxiYWNrYCBlbiBsYSBmaWxhIGRlIHVzdWFyaW8gZGVsIG1vZGFsLiAqL1xuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1jb3ItY29sb3ItZ3JleS0yMDAsICNlMGUwZTApJyxcbiAgICBmbGV4U2hyaW5rOiAnMCcsXG4gIH0pXG5cbiAgY29uc3QgaW5pdGlhbHMgPSBpbml0aWFsc0Zyb21OYW1lKG5hbWVGb3JJbml0aWFscylcblxuICBjb25zdCBjcmVhdGVJbml0aWFsc0ZhbGxiYWNrID0gKCk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICBjb25zdCBmYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIGZiLnRleHRDb250ZW50ID0gaW5pdGlhbHNcbiAgICBPYmplY3QuYXNzaWduKGZiLnN0eWxlLCB7XG4gICAgICBmb250U2l6ZTogJzEwcHgnLFxuICAgICAgZm9udFdlaWdodDogJzYwMCcsXG4gICAgICAvKiogTWlzbW8gY29sb3IgcXVlIGBTQ01Vc2VyQXZhdGFyRmFsbGJhY2tgIGVuIGxhIGZpbGEgZGUgdXN1YXJpbyBkZWwgbW9kYWwuICovXG4gICAgICBjb2xvcjogJ3ZhcigtLWNvci1jb2xvci10ZXh0LXNlY29uZGFyeSwgIzY2NiknLFxuICAgICAgbGluZUhlaWdodDogJzEnLFxuICAgICAgZm9udEZhbWlseTogVE9PTFRJUF9GT05ULFxuICAgIH0pXG4gICAgcmV0dXJuIGZiXG4gIH1cblxuICBpZiAocGljdHVyZSkge1xuICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpXG4gICAgaW1nLnNyYyA9IHBpY3R1cmVcbiAgICBpbWcuYWx0ID0gJydcbiAgICBpbWcuZHJhZ2dhYmxlID0gZmFsc2VcbiAgICBPYmplY3QuYXNzaWduKGltZy5zdHlsZSwge1xuICAgICAgd2lkdGg6ICcyNHB4JyxcbiAgICAgIGhlaWdodDogJzI0cHgnLFxuICAgICAgb2JqZWN0Rml0OiAnY292ZXInLFxuICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzI0cHgnLFxuICAgIH0pXG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICBpbWcucmVtb3ZlKClcbiAgICAgIGF2YXRhcldyYXAuYXBwZW5kQ2hpbGQoY3JlYXRlSW5pdGlhbHNGYWxsYmFjaygpKVxuICAgIH1cbiAgICBhdmF0YXJXcmFwLmFwcGVuZENoaWxkKGltZylcbiAgfSBlbHNlIHtcbiAgICBhdmF0YXJXcmFwLmFwcGVuZENoaWxkKGNyZWF0ZUluaXRpYWxzRmFsbGJhY2soKSlcbiAgfVxuXG4gIC8vIENvbHVtbmEgZGUgaW5mbzogYW5jaG8gPSBtYXgoZmlsYSBub21icmUsIGVtYWlsKTsgc2luIGZvcnphciAyNDRweCBzaSBlbCBjb250ZW5pZG8gZXMgbcOhcyBjb3J0by5cbiAgY29uc3QgaW5mb0NvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5hc3NpZ24oaW5mb0NvbC5zdHlsZSwge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgIGdhcDogJzJweCcsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICBtYXhXaWR0aDogJzEwMCUnLFxuICB9KVxuXG4gIC8vIEZpbGE6IG5vbWJyZSB8IHBvc2ljacOzbiDigJQgbWF4LWNvbnRlbnQgcGFyYSBubyBkZWphciBodWVjbyBlbnRyZSBub21icmUgY29ydG8geSBlbCBwaXBlIChldml0YXIgZmxleCA1MC81MCkuXG4gIGNvbnN0IG5hbWVSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBPYmplY3QuYXNzaWduKG5hbWVSb3cuc3R5bGUsIHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgIGdhcDogJzRweCcsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICBtYXhXaWR0aDogYCR7VVNFUl9UT09MVElQX05BTUVfUk9XX01BWF9QWH1weGAsXG4gIH0pXG5cbiAgY29uc3QgbmFtZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbmFtZVNwYW4udGV4dENvbnRlbnQgPSBsYWJlbFxuICBPYmplY3QuYXNzaWduKG5hbWVTcGFuLnN0eWxlLCB7XG4gICAgZmxleDogJzAgMSBhdXRvJyxcbiAgICBtaW5XaWR0aDogJzAnLFxuICAgIG1heFdpZHRoOiBgJHtVU0VSX1RPT0xUSVBfTkFNRV9NQVhfV0lEVEhfUFh9cHhgLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgY29sb3I6ICd2YXIoLS1UZXh0LVByaW1hcnktRGFyaywgIzIwMjAxRiknLFxuICAgIGZvbnRGYW1pbHk6IFRPT0xUSVBfRk9OVCxcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6ICc1MDAnLFxuICAgIGxpbmVIZWlnaHQ6ICcxMzAlJyxcbiAgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChuYW1lU3BhbilcblxuICBjb25zdCBzZXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgc2VwLnRleHRDb250ZW50ID0gJ3wnXG4gIE9iamVjdC5hc3NpZ24oc2VwLnN0eWxlLCB7IC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLCBmbGV4U2hyaW5rOiAnMCcgfSlcbiAgbmFtZVJvdy5hcHBlbmRDaGlsZChzZXApXG5cbiAgY29uc3QgcG9zU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICBwb3NTcGFuLnRleHRDb250ZW50ID0gcG9zaXRpb25MaW5lXG4gIE9iamVjdC5hc3NpZ24ocG9zU3Bhbi5zdHlsZSwge1xuICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgIGZsZXg6ICcwIDEgYXV0bycsXG4gICAgbWluV2lkdGg6ICcwJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICB9KVxuICBuYW1lUm93LmFwcGVuZENoaWxkKHBvc1NwYW4pXG5cbiAgaW5mb0NvbC5hcHBlbmRDaGlsZChuYW1lUm93KVxuXG4gIGlmIChlbWFpbCkge1xuICAgIGNvbnN0IGVtYWlsU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIGVtYWlsU3Bhbi50ZXh0Q29udGVudCA9IGVtYWlsXG4gICAgT2JqZWN0LmFzc2lnbihlbWFpbFNwYW4uc3R5bGUsIHtcbiAgICAgIC4uLlRPT0xUSVBfU0VDT05EQVJZX1NUWUxFLFxuICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIH0pXG4gICAgaW5mb0NvbC5hcHBlbmRDaGlsZChlbWFpbFNwYW4pXG4gIH1cblxuICByb3cuYXBwZW5kQ2hpbGQoYXZhdGFyV3JhcClcbiAgcm93LmFwcGVuZENoaWxkKGluZm9Db2wpXG4gIHRvb2x0aXAuYXBwZW5kQ2hpbGQocm93KVxuXG4gIHJldHVybiB0b29sdGlwXG59XG5cbi8qKlxuICogQ3JlYSB1biBgPHNwYW4+YCBhdMOzbWljbyBsaXN0byBwYXJhIGluc2VydGFyc2UgZGVudHJvIGRlbCBjb250ZW50ZWRpdGFibGVcbiAqIGRlbCBgQ29udGV4dE1lbnRpb25FZGl0b3JgLiBTZSBtYXJjYSBjb24gbG9zIGBkYXRhLW1lbnRpb24qYCBuZWNlc2FyaW9zIHBhcmFcbiAqIHF1ZSBgdXNlQ29udGV4dE1lbnRpb25zLnNlcmlhbGl6ZSgpYCBwdWVkYSB2b2x2ZXIgYSBleHRyYWVyIGxhIG1lbnRpb24uXG4gKlxuICogQ29tcGFydGUgbG9zIGVzdGlsb3MgY29uIGVsIGNvbXBvbmVudGUgYENvbnRleHRNZW50aW9uQ2hpcGAgdmlhXG4gKiBgYXBwbHlNZW50aW9uQ2hpcFN0eWxlc2AsIGFzZWd1cmFuZG8gdW5hIMO6bmljYSBmdWVudGUgZGUgdmVyZGFkIHZpc3VhbC5cbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQ2hpcEVsZW1lbnQgPSAobWVudGlvbjogQ29udGV4dE1lbnRpb24pOiBIVE1MU3BhbkVsZW1lbnQgPT4ge1xuICBjb25zdCBjaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gIGNoaXAuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLWNoaXAnLCAndHJ1ZScpXG4gIGNoaXAuY2xhc3NOYW1lID0gQ09OVEVYVF9NRU5USU9OX0NISVBfQ0xBU1NcbiAgY2hpcC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgbWVudGlvbi50eXBlKVxuICBjaGlwLnNldEF0dHJpYnV0ZSgnZGF0YS1tZW50aW9uLXN1cmZhY2UnLCAnZWRpdG9yJylcbiAgYXBwbHlNZW50aW9uQ2hpcFN0eWxlcyhjaGlwLCBtZW50aW9uLnR5cGUpXG4gIGNvbnN0IGlzVGFzayA9IG1lbnRpb24udHlwZSA9PT0gJ3Rhc2snXG4gIGNvbnN0IGNvbW1vbiA9IHtcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnYmFzZWxpbmUnLFxuICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgfSBhcyBjb25zdFxuICBpZiAoaXNUYXNrKSB7XG4gICAgT2JqZWN0LmFzc2lnbihjaGlwLnN0eWxlLCBjb21tb24sIHtcbiAgICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBtYXhIZWlnaHQ6ICdub25lJyxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIE9iamVjdC5hc3NpZ24oY2hpcC5zdHlsZSwgY29tbW9uLCB7XG4gICAgICBsaW5lSGVpZ2h0OiAnMjBweCcsXG4gICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgIG1pbkhlaWdodDogJ2F1dG8nLFxuICAgICAgbWF4SGVpZ2h0OiAnbm9uZScsXG4gICAgfSlcbiAgfVxuICBjb25zdCBtb3VudE5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgbW91bnROb2RlLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJ1xuICBtb3VudE5vZGUuc3R5bGUubWF4V2lkdGggPSAnMTAwJSdcbiAgbW91bnROb2RlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnYmFzZWxpbmUnXG4gIG1vdW50Tm9kZS5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCdcbiAgY2hpcC5hcHBlbmRDaGlsZChtb3VudE5vZGUpXG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KG1vdW50Tm9kZSlcblxuICBmbHVzaFN5bmMoKCkgPT4ge1xuICAgIHJvb3QucmVuZGVyKGNyZWF0ZUVsZW1lbnQoRWRpdGFibGVNZW50aW9uQ2hpcCwgeyBtZW50aW9uIH0pKVxuICB9KVxuXG4gIGlmIChtZW50aW9uLnR5cGUgPT09ICd0YXNrJykge1xuICAgIGNoaXAuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInXG4gICAgY2hpcC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIG9wZW5UYXNrSW5Db3JQYW5lbChtZW50aW9uLmlkLCAnZGV0YWlsJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAncHJvamVjdCcpIHtcbiAgICBjaGlwLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJ1xuICAgIGNoaXAub25jbGljayA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICB3aW5kb3cub3BlbihgL3Byb2plY3QvJHttZW50aW9uLmlkfS9kYXNoYm9hcmRgLCAnX2JsYW5rJylcbiAgICB9XG4gIH0gZWxzZSBpZiAobWVudGlvbi50eXBlID09PSAndXNlcicpIHtcbiAgICBsZXQgdG9vbHRpcEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsXG4gICAgbGV0IGNoaXBSZW1vdmVkT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3QgcmVtb3ZlVXNlclRvb2x0aXAgPSAoKSA9PiB7XG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBudWxsXG4gICAgICBpZiAodG9vbHRpcEVsKSB7XG4gICAgICAgIHRvb2x0aXBFbC5yZW1vdmUoKVxuICAgICAgICB0b29sdGlwRWwgPSBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNpIGVsIGNoaXAgc2UgYm9ycmEgZGVsIGVkaXRvciAoQmFja3NwYWNlLCBldGMuKSBubyBzaWVtcHJlIGhheSBgbW91c2VsZWF2ZWA7IGNlcnJhciBlbCB0b29sdGlwLiAqL1xuICAgIGNvbnN0IHdhdGNoQ2hpcFJlbW92ZWRGcm9tRG9tID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gY2hpcC5wYXJlbnROb2RlXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuXG4gICAgICBjaGlwUmVtb3ZlZE9ic2VydmVyPy5kaXNjb25uZWN0KClcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIGlmICghY2hpcC5pc0Nvbm5lY3RlZCkgcmVtb3ZlVXNlclRvb2x0aXAoKVxuICAgICAgfSlcbiAgICAgIGNoaXBSZW1vdmVkT2JzZXJ2ZXIub2JzZXJ2ZShwYXJlbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgY2hpcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgaWYgKHRvb2x0aXBFbCkgcmV0dXJuXG4gICAgICB0b29sdGlwRWwgPSBjcmVhdGVVc2VyVG9vbHRpcEVsKG1lbnRpb24pXG4gICAgICBjb25zdCByZWN0ID0gY2hpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGVmdCA9IE1hdGgubWF4KDgsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gMzAwLCByZWN0LmxlZnQpKVxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRvcCA9IGAke3JlY3QudG9wfXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLmxlZnQgPSBgJHtsZWZ0fXB4YFxuICAgICAgdG9vbHRpcEVsLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKGNhbGMoLTEwMCUgLSA0cHgpKSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodG9vbHRpcEVsKVxuICAgICAgd2F0Y2hDaGlwUmVtb3ZlZEZyb21Eb20oKVxuICAgIH0pXG5cbiAgICBjaGlwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCByZW1vdmVVc2VyVG9vbHRpcClcbiAgfVxuXG4gIHJldHVybiBjaGlwXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLGFBQWEsUUFBNEIsT0FBTztBQUN6RCxTQUFTQyxTQUFTLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLFNBQVNDLDBCQUEwQixRQUF3QiwrQkFBK0I7QUFDMUYsU0FBU0MscUJBQXFCLFFBQVEsb0NBQW9DO0FBQzFFLFNBQVNDLDRCQUE0QixRQUFRLG9DQUFvQztBQUNqRixTQUFTQyxrQkFBa0IsUUFBUSxtQ0FBbUM7QUFDdEUsU0FBU0Msc0JBQXNCLEVBQUVDLG1CQUFtQixRQUFRLDZCQUE2QjtBQUV6RixJQUFNQyw2QkFBNEMsR0FBRztFQUNuREMsT0FBTyxFQUFFLFFBQVE7RUFDakJDLFVBQVUsRUFBRSxNQUFNO0VBQ2xCQyxTQUFTLEVBQUUsVUFBVTtFQUNyQkMsUUFBUSxFQUFFLENBQUM7RUFDWEMsUUFBUSxFQUFFLE1BQU07RUFDaEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxZQUFZLEVBQUUsWUFBWTtFQUMxQkMsU0FBUyxFQUFFO0FBQ2IsQ0FBQzs7QUFFRDtBQUNBLElBQU1DLHlCQUF3QyxHQUFHO0VBQy9DUixPQUFPLEVBQUUsUUFBUTtFQUNqQlMsUUFBUSxFQUFFLE1BQU07RUFDaEJSLFVBQVUsRUFBRSxNQUFNO0VBQ2xCUyxVQUFVLEVBQUUsS0FBSztFQUNq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
|
|
@@ -7,7 +7,7 @@ import { TASK_LINK_ICON_DATA_URL } from '../../../constants/taskLinkIcon';
|
|
|
7
7
|
import { NotionIcon } from '../icons/NotionIcon';
|
|
8
8
|
import { SubtaskIcon } from '../icons/SubtaskIcon';
|
|
9
9
|
import { getContextMentionIcon, isNotionMcpSlug } from '../../../utils/contextMentionIcons';
|
|
10
|
-
import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconImg, SCMITaskTitle } from './ContextMentionItem.styles';
|
|
10
|
+
import { SCMIRow, SCMIProjectRow, SCMIProjectContent, SCMIName, SCMITitle, SCMIProjectTitle, SCMITitleHighlight, SCMIBreadcrumb, SCMIBreadcrumbParent, SCMIRowUser, SCMUserAvatarWrap, SCMUserAvatarImg, SCMUserAvatarFallback, SCMUserInfo, SCMUserNamePositionRow, SCMUserNameCell, SCMUserNameText, SCMUserPositionText, SCMITaskRowWrap, SCMITaskRowSurface, SCMITaskRowInner, SCMITaskTitleRow, SCMITaskSubtaskIconWrap, SCMITaskProjectName, SCMITaskIconImg, SCMITaskTitle } from './ContextMentionItem.styles';
|
|
11
11
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
var TASK_PROJECT_NAME_MAX_CHARS = 40;
|
|
13
13
|
var truncateWithEllipsis = function truncateWithEllipsis(value, maxChars) {
|
|
@@ -110,38 +110,40 @@ var ContextMentionTaskRow = function ContextMentionTaskRow(_ref2) {
|
|
|
110
110
|
var showTitleTooltip = useOverflowTooltip(titleRef, [primary, projectName, (_primaryHighlight$sta = primaryHighlight === null || primaryHighlight === void 0 ? void 0 : primaryHighlight.start) !== null && _primaryHighlight$sta !== void 0 ? _primaryHighlight$sta : -1, (_primaryHighlight$len = primaryHighlight === null || primaryHighlight === void 0 ? void 0 : primaryHighlight.length) !== null && _primaryHighlight$len !== void 0 ? _primaryHighlight$len : 0, hasFather]);
|
|
111
111
|
var showProjectTooltip = useOverflowTooltip(projectRef, [projectNameDisplay, primary]);
|
|
112
112
|
var shouldShowProjectTooltip = isProjectNameTruncatedByChars || showProjectTooltip;
|
|
113
|
-
return /*#__PURE__*/_jsx(
|
|
114
|
-
$active: active,
|
|
113
|
+
return /*#__PURE__*/_jsx(SCMITaskRowWrap, {
|
|
115
114
|
onMouseDown: onMouseDown,
|
|
116
115
|
onMouseEnter: onHover,
|
|
117
|
-
children: /*#__PURE__*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
children:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
children:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
116
|
+
children: /*#__PURE__*/_jsx(SCMITaskRowSurface, {
|
|
117
|
+
$active: active,
|
|
118
|
+
children: /*#__PURE__*/_jsxs(SCMITaskRowInner, {
|
|
119
|
+
children: [/*#__PURE__*/_jsx(SCMITaskIconImg, {
|
|
120
|
+
src: TASK_LINK_ICON_DATA_URL,
|
|
121
|
+
alt: "",
|
|
122
|
+
draggable: false,
|
|
123
|
+
"aria-hidden": true
|
|
124
|
+
}), /*#__PURE__*/_jsxs(SCMITaskTitleRow, {
|
|
125
|
+
children: [hasFather ? /*#__PURE__*/_jsx(SCMITaskSubtaskIconWrap, {
|
|
126
|
+
children: /*#__PURE__*/_jsx(SubtaskIcon, {
|
|
127
|
+
width: "16px",
|
|
128
|
+
height: "16px",
|
|
129
|
+
color: "#000",
|
|
130
|
+
variant: "regular"
|
|
131
|
+
})
|
|
132
|
+
}) : null, /*#__PURE__*/_jsx(Tooltip, {
|
|
133
|
+
title: showTitleTooltip ? primary : '',
|
|
134
|
+
children: /*#__PURE__*/_jsx(SCMITaskTitle, {
|
|
135
|
+
ref: titleRef,
|
|
136
|
+
children: renderTitle(primary, primaryHighlight)
|
|
137
|
+
})
|
|
138
|
+
}), projectName ? /*#__PURE__*/_jsx(Tooltip, {
|
|
139
|
+
title: shouldShowProjectTooltip ? projectName : '',
|
|
140
|
+
children: /*#__PURE__*/_jsx(SCMITaskProjectName, {
|
|
141
|
+
ref: projectRef,
|
|
142
|
+
children: projectNameDisplay
|
|
143
|
+
})
|
|
144
|
+
}) : null]
|
|
145
|
+
})]
|
|
146
|
+
})
|
|
145
147
|
})
|
|
146
148
|
});
|
|
147
149
|
};
|
|
@@ -277,4 +279,4 @@ export var ContextMentionItem = function ContextMentionItem(_ref3) {
|
|
|
277
279
|
})
|
|
278
280
|
});
|
|
279
281
|
};
|
|
280
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiVEFTS19MSU5LX0lDT05fREFUQV9VUkwiLCJOb3Rpb25JY29uIiwiU3VidGFza0ljb24iLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJpc05vdGlvbk1jcFNsdWciLCJTQ01JUm93IiwiU0NNSVByb2plY3RSb3ciLCJTQ01JUHJvamVjdENvbnRlbnQiLCJTQ01JTmFtZSIsIlNDTUlUaXRsZSIsIlNDTUlQcm9qZWN0VGl0bGUiLCJTQ01JVGl0bGVIaWdobGlnaHQiLCJTQ01JQnJlYWRjcnVtYiIsIlNDTUlCcmVhZGNydW1iUGFyZW50IiwiU0NNSVJvd1VzZXIiLCJTQ01Vc2VyQXZhdGFyV3JhcCIsIlNDTVVzZXJBdmF0YXJJbWciLCJTQ01Vc2VyQXZhdGFyRmFsbGJhY2siLCJTQ01Vc2VySW5mbyIsIlNDTVVzZXJOYW1lUG9zaXRpb25Sb3ciLCJTQ01Vc2VyTmFtZUNlbGwiLCJTQ01Vc2VyTmFtZVRleHQiLCJTQ01Vc2VyUG9zaXRpb25UZXh0IiwiU0NNSVRhc2tSb3dJbm5lciIsIlNDTUlUYXNrVGl0bGVSb3ciLCJTQ01JVGFza1N1YnRhc2tJY29uV3JhcCIsIlNDTUlUYXNrUHJvamVjdE5hbWUiLCJTQ01JVGFza0ljb25JbWciLCJTQ01JVGFza1RpdGxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTIiwidHJ1bmNhdGVXaXRoRWxsaXBzaXMiLCJ2YWx1ZSIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNYXRoIiwibWF4IiwidHJpbUVuZCIsInJlbmRlclRpdGxlIiwicHJpbWFyeSIsImhpZ2hsaWdodCIsInN0YXJ0IiwiZW5kIiwiY2hpbGRyZW4iLCJ1c2VPdmVyZmxvd1Rvb2x0aXAiLCJyZWYiLCJkZXBzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsIm1lYXN1cmUiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicm8iLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwiVXNlclJvd0F2YXRhciIsIl9yZWYiLCJwaWN0dXJlIiwibmFtZUZvckluaXRpYWxzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJicm9rZW4iLCJzZXRCcm9rZW4iLCJpbml0aWFscyIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJsb2FkaW5nIiwiZGVjb2RpbmciLCJDb250ZXh0TWVudGlvblRhc2tSb3ciLCJfcmVmMiIsIl9yYXckcHJvamVjdE5hbWUiLCJfYnJlYWRjcnVtYiRwYXJlbnQiLCJfcHJpbWFyeUhpZ2hsaWdodCRzdGEiLCJfcHJpbWFyeUhpZ2hsaWdodCRsZW4iLCJpdGVtIiwiYWN0aXZlIiwib25Nb3VzZURvd24iLCJvbkhvdmVyIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJyYXciLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsInByb2plY3ROYW1lRGlzcGxheSIsImlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzIiwiaGFzRmF0aGVyIiwiZmF0aGVySWQiLCJ0aXRsZVJlZiIsInByb2plY3RSZWYiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Byb2plY3RUb29sdGlwIiwic2hvdWxkU2hvd1Byb2plY3RUb29sdGlwIiwiJGFjdGl2ZSIsIm9uTW91c2VFbnRlciIsImRyYWdnYWJsZSIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ2YXJpYW50IiwidGl0bGUiLCJDb250ZXh0TWVudGlvbkl0ZW0iLCJfcmVmMyIsIm9uU2VsZWN0IiwiX3VzZVQiLCJ0IiwidHlwZSIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFzQ291bnQiLCJjb3VudCIsImhhc1BhcmVudCIsImNvdW50TGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJfcmF3JHBvc2l0aW9uTmFtZSR0cmkiLCJfcmF3JHBvc2l0aW9uTmFtZSIsInBvc2l0aW9uTmFtZVRyaW1tZWQiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCIkd2l0aERpdmlkZXIiLCJzdHlsZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJmbGV4IiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkl0ZW0vQ29udGV4dE1lbnRpb25JdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQywgTW91c2VFdmVudCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB0eXBlIFJlZk9iamVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9EQVRBX1VSTCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90YXNrTGlua0ljb24nXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gYXMgQ29udGV4dE1lbnRpb25JdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTm90aW9uSWNvbiB9IGZyb20gJy4uL2ljb25zL05vdGlvbkljb24nXG5pbXBvcnQgeyBTdWJ0YXNrSWNvbiB9IGZyb20gJy4uL2ljb25zL1N1YnRhc2tJY29uJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uLCBpc05vdGlvbk1jcFNsdWcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHtcbiAgU0NNSVJvdyxcbiAgU0NNSVByb2plY3RSb3csXG4gIFNDTUlQcm9qZWN0Q29udGVudCxcbiAgU0NNSU5hbWUsXG4gIFNDTUlUaXRsZSxcbiAgU0NNSVByb2plY3RUaXRsZSxcbiAgU0NNSVRpdGxlSGlnaGxpZ2h0LFxuICBTQ01JQnJlYWRjcnVtYixcbiAgU0NNSUJyZWFkY3J1bWJQYXJlbnQsXG4gIFNDTUlSb3dVc2VyLFxuICBTQ01Vc2VyQXZhdGFyV3JhcCxcbiAgU0NNVXNlckF2YXRhckltZyxcbiAgU0NNVXNlckF2YXRhckZhbGxiYWNrLFxuICBTQ01Vc2VySW5mbyxcbiAgU0NNVXNlck5hbWVQb3NpdGlvblJvdyxcbiAgU0NNVXNlck5hbWVDZWxsLFxuICBTQ01Vc2VyTmFtZVRleHQsXG4gIFNDTVVzZXJQb3NpdGlvblRleHQsXG4gIFNDTUlUYXNrUm93SW5uZXIsXG4gIFNDTUlUYXNrVGl0bGVSb3csXG4gIFNDTUlUYXNrU3VidGFza0ljb25XcmFwLFxuICBTQ01JVGFza1Byb2plY3ROYW1lLFxuICBTQ01JVGFza0ljb25JbWcsXG4gIFNDTUlUYXNrVGl0bGUsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25JdGVtLnN0eWxlcydcblxudHlwZSBDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcyA9IHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uU2VsZWN0OiAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZSkgPT4gdm9pZFxuICBvbkhvdmVyPzogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbn1cblxuY29uc3QgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTID0gNDBcblxuY29uc3QgdHJ1bmNhdGVXaXRoRWxsaXBzaXMgPSAodmFsdWU6IHN0cmluZywgbWF4Q2hhcnM6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGlmICh2YWx1ZS5sZW5ndGggPD0gbWF4Q2hhcnMpIHJldHVybiB2YWx1ZVxuICByZXR1cm4gYCR7dmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgoMCwgbWF4Q2hhcnMgLSAxKSkudHJpbUVuZCgpfeKApmBcbn1cblxuY29uc3QgcmVuZGVyVGl0bGUgPSAocHJpbWFyeTogc3RyaW5nLCBoaWdobGlnaHQ/OiB7IHN0YXJ0OiBudW1iZXI7IGxlbmd0aDogbnVtYmVyIH0pID0+IHtcbiAgaWYgKCFoaWdobGlnaHQgfHwgaGlnaGxpZ2h0Lmxlbmd0aCA8PSAwKSByZXR1cm4gcHJpbWFyeVxuICBjb25zdCB7IHN0YXJ0LCBsZW5ndGggfSA9IGhpZ2hsaWdodFxuICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aFxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID4gcHJpbWFyeS5sZW5ndGggfHwgZW5kID4gcHJpbWFyeS5sZW5ndGgpIHJldHVybiBwcmltYXJ5XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtwcmltYXJ5LnNsaWNlKDAsIHN0YXJ0KX1cbiAgICAgIDxTQ01JVGl0bGVIaWdobGlnaHQ+e3ByaW1hcnkuc2xpY2Uoc3RhcnQsIGVuZCl9PC9TQ01JVGl0bGVIaWdobGlnaHQ+XG4gICAgICB7cHJpbWFyeS5zbGljZShlbmQpfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIHVzZU92ZXJmbG93VG9vbHRpcDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KHJlZjogUmVmT2JqZWN0PFQgfCBudWxsPiwgZGVwczogcmVhZG9ubHkgdW5rbm93bltdKSB7XG4gIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHJlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkge1xuICAgICAgc2V0U2hvd1Rvb2x0aXAoZmFsc2UpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgbWVhc3VyZSA9ICgpID0+IHtcbiAgICAgIHNldFNob3dUb29sdGlwKGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGgpXG4gICAgfVxuXG4gICAgbWVhc3VyZSgpXG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIobWVhc3VyZSlcbiAgICByby5vYnNlcnZlKGVsKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByby5kaXNjb25uZWN0KClcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBtZWFzdXJlKVxuICAgIH1cbiAgfSwgZGVwcylcblxuICByZXR1cm4gc2hvd1Rvb2x0aXBcbn1cblxuLyoqIEluaWNpYWxlcyBwYXJhIGF2YXRhciAobm9tYnJlIGxlZ2FsKSwgbm8gZWwgdGV4dG8gdmlzaWJsZSBkZSBsYSBmaWxhIChlai4gXCJZb1wiKS4gKi9cbmNvbnN0IGluaXRpYWxzRnJvbURpc3BsYXlOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBuYW1lLnRyaW0oKVxuICBpZiAoIXRyaW1tZWQpIHJldHVybiAnPydcbiAgY29uc3QgcGFydHMgPSB0cmltbWVkLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pXG4gIGlmIChwYXJ0cy5sZW5ndGggPj0gMikge1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uY2hhckF0KDApID8/ICcnXG4gICAgcmV0dXJuIGAke2ZpcnN0fSR7bGFzdH1gLnRvVXBwZXJDYXNlKClcbiAgfVxuICBjb25zdCBzaW5nbGUgPSBwYXJ0c1swXSA/PyAnJ1xuICBpZiAoc2luZ2xlLmxlbmd0aCA+PSAyKSByZXR1cm4gc2luZ2xlLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIChzaW5nbGUuY2hhckF0KDApIHx8ICc/JykudG9VcHBlckNhc2UoKVxufVxuXG5jb25zdCBVc2VyUm93QXZhdGFyOiBGQzx7IHBpY3R1cmU/OiBzdHJpbmcgfCBudWxsOyBuYW1lRm9ySW5pdGlhbHM6IHN0cmluZyB9PiA9ICh7IHBpY3R1cmUsIG5hbWVGb3JJbml0aWFscyB9KSA9PiB7XG4gIGNvbnN0IFticm9rZW4sIHNldEJyb2tlbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgaW5pdGlhbHMgPSBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZShuYW1lRm9ySW5pdGlhbHMpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNVXNlckF2YXRhcldyYXA+XG4gICAgICB7cGljdHVyZSAmJiAhYnJva2VuID8gKFxuICAgICAgICA8U0NNVXNlckF2YXRhckltZyBzcmM9e3BpY3R1cmV9IGFsdD1cIlwiIG9uRXJyb3I9eygpID0+IHNldEJyb2tlbih0cnVlKX0gbG9hZGluZz1cImxhenlcIiBkZWNvZGluZz1cImFzeW5jXCIgLz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ01Vc2VyQXZhdGFyRmFsbGJhY2sgYXJpYS1oaWRkZW4+e2luaXRpYWxzfTwvU0NNVXNlckF2YXRhckZhbGxiYWNrPlxuICAgICAgKX1cbiAgICA8L1NDTVVzZXJBdmF0YXJXcmFwPlxuICApXG59XG5cbmNvbnN0IENvbnRleHRNZW50aW9uVGFza1JvdzogRkM8e1xuICBpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlXG4gIGFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZURvd246IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkXG4gIG9uSG92ZXI/OiAoKSA9PiB2b2lkXG59PiA9ICh7IGl0ZW0sIGFjdGl2ZSwgb25Nb3VzZURvd24sIG9uSG92ZXIgfSkgPT4ge1xuICBjb25zdCB7IHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQsIGJyZWFkY3J1bWIsIHJhdyB9ID0gaXRlbVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHJhdy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8IGJyZWFkY3J1bWI/LnBhcmVudD8udHJpbSgpIHx8ICcnXG4gIGNvbnN0IHByb2plY3ROYW1lRGlzcGxheSA9IHRydW5jYXRlV2l0aEVsbGlwc2lzKHByb2plY3ROYW1lLCBUQVNLX1BST0pFQ1RfTkFNRV9NQVhfQ0hBUlMpXG4gIGNvbnN0IGlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzID0gcHJvamVjdE5hbWVEaXNwbGF5ICE9PSBwcm9qZWN0TmFtZVxuICBjb25zdCBoYXNGYXRoZXIgPSByYXcuZmF0aGVySWQgIT0gbnVsbFxuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgcHJvamVjdFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHNob3dUaXRsZVRvb2x0aXAgPSB1c2VPdmVyZmxvd1Rvb2x0aXAodGl0bGVSZWYsIFtcbiAgICBwcmltYXJ5LFxuICAgIHByb2plY3ROYW1lLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/LnN0YXJ0ID8/IC0xLFxuICAgIHByaW1hcnlIaWdobGlnaHQ/Lmxlbmd0aCA/PyAwLFxuICAgIGhhc0ZhdGhlcixcbiAgXSlcbiAgY29uc3Qgc2hvd1Byb2plY3RUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHByb2plY3RSZWYsIFtwcm9qZWN0TmFtZURpc3BsYXksIHByaW1hcnldKVxuICBjb25zdCBzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPSBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyB8fCBzaG93UHJvamVjdFRvb2x0aXBcblxuICByZXR1cm4gKFxuICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e29uTW91c2VEb3dufSBvbk1vdXNlRW50ZXI9e29uSG92ZXJ9PlxuICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgIDxTQ01JVGFza0ljb25JbWcgc3JjPXtUQVNLX0xJTktfSUNPTl9EQVRBX1VSTH0gYWx0PVwiXCIgZHJhZ2dhYmxlPXtmYWxzZX0gYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgPFNDTUlUYXNrVGl0bGVSb3c+XG4gICAgICAgICAge2hhc0ZhdGhlciA/IChcbiAgICAgICAgICAgIDxTQ01JVGFza1N1YnRhc2tJY29uV3JhcD5cbiAgICAgICAgICAgICAgPFN1YnRhc2tJY29uIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj1cIiMwMDBcIiB2YXJpYW50PVwicmVndWxhclwiIC8+XG4gICAgICAgICAgICA8L1NDTUlUYXNrU3VidGFza0ljb25XcmFwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gcHJpbWFyeSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHJlZj17dGl0bGVSZWZ9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUYXNrVGl0bGU+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIHtwcm9qZWN0TmFtZSA/IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPyBwcm9qZWN0TmFtZSA6ICcnfT5cbiAgICAgICAgICAgICAgPFNDTUlUYXNrUHJvamVjdE5hbWUgcmVmPXtwcm9qZWN0UmVmfT57cHJvamVjdE5hbWVEaXNwbGF5fTwvU0NNSVRhc2tQcm9qZWN0TmFtZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01JVGFza1RpdGxlUm93PlxuICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgIDwvU0NNSVJvdz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25JdGVtOiBGQzxDb250ZXh0TWVudGlvbkl0ZW1Qcm9wcz4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uU2VsZWN0LCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCB0eXBlLCByYXcgfSA9IGl0ZW1cblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIG9uU2VsZWN0KGl0ZW0pXG4gIH1cblxuICBjb25zdCBoYXNDb3VudCA9IHR5cGVvZiBicmVhZGNydW1iPy5jb3VudCA9PT0gJ251bWJlcidcbiAgY29uc3QgaGFzUGFyZW50ID0gISFicmVhZGNydW1iPy5wYXJlbnRcbiAgY29uc3QgY291bnRMYWJlbCA9XG4gICAgYnJlYWRjcnVtYj8uY291bnRMYWJlbCAmJlxuICAgIHQoYGNvbnRleHRNZW50aW9uLmNvdW50ZXJzLiR7YnJlYWRjcnVtYi5jb3VudExhYmVsfWAsIHsgZGVmYXVsdFZhbHVlOiBicmVhZGNydW1iLmNvdW50TGFiZWwgfSlcblxuICBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgY29uc3QgcG9zaXRpb25OYW1lVHJpbW1lZCA9IHJhdy5wb3NpdGlvbk5hbWU/LnRyaW0oKSA/PyAnJ1xuICAgIGNvbnN0IHBvc2l0aW9uTGluZSA9IHBvc2l0aW9uTmFtZVRyaW1tZWQgfHwgdCgnY29udGV4dE1lbnRpb24udXNlck5vUG9zaXRpb24nLCB7IGRlZmF1bHRWYWx1ZTogJ1NpbiBwb3NpY2nDs24nIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlSb3dVc2VyICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxVc2VyUm93QXZhdGFyIHBpY3R1cmU9e3Jhdy5waWN0dXJlfSBuYW1lRm9ySW5pdGlhbHM9e3Jhdy5uYW1lLnRyaW0oKSA/IHJhdy5uYW1lIDogcHJpbWFyeX0gLz5cbiAgICAgICAgPFNDTVVzZXJJbmZvPlxuICAgICAgICAgIDxTQ01Vc2VyTmFtZVBvc2l0aW9uUm93PlxuICAgICAgICAgICAgPFNDTVVzZXJOYW1lQ2VsbCAkd2l0aERpdmlkZXI+XG4gICAgICAgICAgICAgIDxTQ01Vc2VyTmFtZVRleHQ+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNVXNlck5hbWVUZXh0PlxuICAgICAgICAgICAgPC9TQ01Vc2VyTmFtZUNlbGw+XG4gICAgICAgICAgICA8U0NNVXNlclBvc2l0aW9uVGV4dCB0aXRsZT17cG9zaXRpb25MaW5lfT57cG9zaXRpb25MaW5lfTwvU0NNVXNlclBvc2l0aW9uVGV4dD5cbiAgICAgICAgICA8L1NDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgIDwvU0NNVXNlckluZm8+XG4gICAgICA8L1NDTUlSb3dVc2VyPlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlQcm9qZWN0Um93IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgICA8U0NNSVByb2plY3RDb250ZW50ICRhY3RpdmU9e2FjdGl2ZX0+XG4gICAgICAgICAgPFNDTUlOYW1lPlxuICAgICAgICAgICAgPFNDTUlQcm9qZWN0VGl0bGUgdGl0bGU9e3ByaW1hcnl9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlQcm9qZWN0VGl0bGU+XG4gICAgICAgICAgPC9TQ01JTmFtZT5cbiAgICAgICAgPC9TQ01JUHJvamVjdENvbnRlbnQ+XG4gICAgICA8L1NDTUlQcm9qZWN0Um93PlxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRleHRNZW50aW9uVGFza1JvdyBpdGVtPXtpdGVtfSBhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbkhvdmVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9IC8+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdtY3AnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ01JUm93ICRhY3RpdmU9e2FjdGl2ZX0gb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JVGFza1Jvd0lubmVyPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICB3aWR0aDogMTYsXG4gICAgICAgICAgICAgIGhlaWdodDogMTYsXG4gICAgICAgICAgICAgIGZsZXg6ICcwIDAgMTZweCcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc05vdGlvbk1jcFNsdWcocmF3LmlkKSA/IChcbiAgICAgICAgICAgICAgPE5vdGlvbkljb24gd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgZ2V0Q29udGV4dE1lbnRpb25JY29uKCdtY3AnLCAnIzJkNzdiZCcsIHJhdy5pZCwgMTYpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8U0NNSVRhc2tUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVRhc2tUaXRsZT5cbiAgICAgICAgPC9TQ01JVGFza1Jvd0lubmVyPlxuICAgICAgPC9TQ01JUm93PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTUlSb3cgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgIDxTQ01JTmFtZT5cbiAgICAgICAgPFNDTUlUaXRsZT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGl0bGU+XG4gICAgICAgIHsoaGFzQ291bnQgfHwgaGFzUGFyZW50KSAmJiAoXG4gICAgICAgICAgPFNDTUlCcmVhZGNydW1iPlxuICAgICAgICAgICAge2hhc0NvdW50ICYmIChcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge2JyZWFkY3J1bWI/LmNvdW50fSB7Y291bnRMYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtoYXNQYXJlbnQgJiYgKFxuICAgICAgICAgICAgICA8U0NNSUJyZWFkY3J1bWJQYXJlbnQ+XG4gICAgICAgICAgICAgICAgPENoZXZyb25SaWdodCB3aWR0aD1cIjEycHhcIiBoZWlnaHQ9XCIxMnB4XCIgY29sb3I9XCIjODA4MDgwXCIgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57YnJlYWRjcnVtYj8ucGFyZW50fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9TQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TQ01JQnJlYWRjcnVtYj5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NNSU5hbWU+XG4gICAgPC9TQ01JUm93PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUF5QkEsZUFBZSxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBd0IsT0FBTztBQUN6RixTQUFTQyxZQUFZLFFBQVEsK0NBQStDO0FBQzVFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyx1QkFBdUIsUUFBUSxpQ0FBaUM7QUFFekUsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUNoRCxTQUFTQyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVNDLHFCQUFxQixFQUFFQyxlQUFlLFFBQVEsb0NBQW9DO0FBQzNGLFNBQ0VDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxnQkFBZ0IsRUFDaEJDLGtCQUFrQixFQUNsQkMsY0FBYyxFQUNkQyxvQkFBb0IsRUFDcEJDLFdBQVcsRUFDWEMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixFQUNyQkMsV0FBVyxFQUNYQyxzQkFBc0IsRUFDdEJDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxhQUFhLFFBQ1IsNkJBQTZCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFTcEMsSUFBTUMsMkJBQTJCLEdBQUcsRUFBRTtBQUV0QyxJQUFNQyxvQkFBb0Is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
|
|
282
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNoZXZyb25SaWdodCIsIlRvb2x0aXAiLCJ1c2VUIiwiVEFTS19MSU5LX0lDT05fREFUQV9VUkwiLCJOb3Rpb25JY29uIiwiU3VidGFza0ljb24iLCJnZXRDb250ZXh0TWVudGlvbkljb24iLCJpc05vdGlvbk1jcFNsdWciLCJTQ01JUm93IiwiU0NNSVByb2plY3RSb3ciLCJTQ01JUHJvamVjdENvbnRlbnQiLCJTQ01JTmFtZSIsIlNDTUlUaXRsZSIsIlNDTUlQcm9qZWN0VGl0bGUiLCJTQ01JVGl0bGVIaWdobGlnaHQiLCJTQ01JQnJlYWRjcnVtYiIsIlNDTUlCcmVhZGNydW1iUGFyZW50IiwiU0NNSVJvd1VzZXIiLCJTQ01Vc2VyQXZhdGFyV3JhcCIsIlNDTVVzZXJBdmF0YXJJbWciLCJTQ01Vc2VyQXZhdGFyRmFsbGJhY2siLCJTQ01Vc2VySW5mbyIsIlNDTVVzZXJOYW1lUG9zaXRpb25Sb3ciLCJTQ01Vc2VyTmFtZUNlbGwiLCJTQ01Vc2VyTmFtZVRleHQiLCJTQ01Vc2VyUG9zaXRpb25UZXh0IiwiU0NNSVRhc2tSb3dXcmFwIiwiU0NNSVRhc2tSb3dTdXJmYWNlIiwiU0NNSVRhc2tSb3dJbm5lciIsIlNDTUlUYXNrVGl0bGVSb3ciLCJTQ01JVGFza1N1YnRhc2tJY29uV3JhcCIsIlNDTUlUYXNrUHJvamVjdE5hbWUiLCJTQ01JVGFza0ljb25JbWciLCJTQ01JVGFza1RpdGxlIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTIiwidHJ1bmNhdGVXaXRoRWxsaXBzaXMiLCJ2YWx1ZSIsIm1heENoYXJzIiwibGVuZ3RoIiwiY29uY2F0Iiwic2xpY2UiLCJNYXRoIiwibWF4IiwidHJpbUVuZCIsInJlbmRlclRpdGxlIiwicHJpbWFyeSIsImhpZ2hsaWdodCIsInN0YXJ0IiwiZW5kIiwiY2hpbGRyZW4iLCJ1c2VPdmVyZmxvd1Rvb2x0aXAiLCJyZWYiLCJkZXBzIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsIm1lYXN1cmUiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwicm8iLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSIsIm5hbWUiLCJfcGFydHMkMiIsInRyaW1tZWQiLCJ0cmltIiwicGFydHMiLCJzcGxpdCIsImZpbHRlciIsIkJvb2xlYW4iLCJfcGFydHMkMCRjaGFyQXQiLCJfcGFydHMkIiwiX3BhcnRzJGNoYXJBdCIsIl9wYXJ0cyIsImZpcnN0IiwiY2hhckF0IiwibGFzdCIsInRvVXBwZXJDYXNlIiwic2luZ2xlIiwiVXNlclJvd0F2YXRhciIsIl9yZWYiLCJwaWN0dXJlIiwibmFtZUZvckluaXRpYWxzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJicm9rZW4iLCJzZXRCcm9rZW4iLCJpbml0aWFscyIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJsb2FkaW5nIiwiZGVjb2RpbmciLCJDb250ZXh0TWVudGlvblRhc2tSb3ciLCJfcmVmMiIsIl9yYXckcHJvamVjdE5hbWUiLCJfYnJlYWRjcnVtYiRwYXJlbnQiLCJfcHJpbWFyeUhpZ2hsaWdodCRzdGEiLCJfcHJpbWFyeUhpZ2hsaWdodCRsZW4iLCJpdGVtIiwiYWN0aXZlIiwib25Nb3VzZURvd24iLCJvbkhvdmVyIiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJyYXciLCJwcm9qZWN0TmFtZSIsInBhcmVudCIsInByb2plY3ROYW1lRGlzcGxheSIsImlzUHJvamVjdE5hbWVUcnVuY2F0ZWRCeUNoYXJzIiwiaGFzRmF0aGVyIiwiZmF0aGVySWQiLCJ0aXRsZVJlZiIsInByb2plY3RSZWYiLCJzaG93VGl0bGVUb29sdGlwIiwic2hvd1Byb2plY3RUb29sdGlwIiwic2hvdWxkU2hvd1Byb2plY3RUb29sdGlwIiwib25Nb3VzZUVudGVyIiwiJGFjdGl2ZSIsImRyYWdnYWJsZSIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJ2YXJpYW50IiwidGl0bGUiLCJDb250ZXh0TWVudGlvbkl0ZW0iLCJfcmVmMyIsIm9uU2VsZWN0IiwiX3VzZVQiLCJ0IiwidHlwZSIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFzQ291bnQiLCJjb3VudCIsImhhc1BhcmVudCIsImNvdW50TGFiZWwiLCJkZWZhdWx0VmFsdWUiLCJfcmF3JHBvc2l0aW9uTmFtZSR0cmkiLCJfcmF3JHBvc2l0aW9uTmFtZSIsInBvc2l0aW9uTmFtZVRyaW1tZWQiLCJwb3NpdGlvbk5hbWUiLCJwb3NpdGlvbkxpbmUiLCIkd2l0aERpdmlkZXIiLCJzdHlsZSIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJmbGV4IiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvbkl0ZW0vQ29udGV4dE1lbnRpb25JdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGQywgTW91c2VFdmVudCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlLCB0eXBlIFJlZk9iamVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBUQVNLX0xJTktfSUNPTl9EQVRBX1VSTCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90YXNrTGlua0ljb24nXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gYXMgQ29udGV4dE1lbnRpb25JdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTm90aW9uSWNvbiB9IGZyb20gJy4uL2ljb25zL05vdGlvbkljb24nXG5pbXBvcnQgeyBTdWJ0YXNrSWNvbiB9IGZyb20gJy4uL2ljb25zL1N1YnRhc2tJY29uJ1xuaW1wb3J0IHsgZ2V0Q29udGV4dE1lbnRpb25JY29uLCBpc05vdGlvbk1jcFNsdWcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvbkljb25zJ1xuaW1wb3J0IHtcbiAgU0NNSVJvdyxcbiAgU0NNSVByb2plY3RSb3csXG4gIFNDTUlQcm9qZWN0Q29udGVudCxcbiAgU0NNSU5hbWUsXG4gIFNDTUlUaXRsZSxcbiAgU0NNSVByb2plY3RUaXRsZSxcbiAgU0NNSVRpdGxlSGlnaGxpZ2h0LFxuICBTQ01JQnJlYWRjcnVtYixcbiAgU0NNSUJyZWFkY3J1bWJQYXJlbnQsXG4gIFNDTUlSb3dVc2VyLFxuICBTQ01Vc2VyQXZhdGFyV3JhcCxcbiAgU0NNVXNlckF2YXRhckltZyxcbiAgU0NNVXNlckF2YXRhckZhbGxiYWNrLFxuICBTQ01Vc2VySW5mbyxcbiAgU0NNVXNlck5hbWVQb3NpdGlvblJvdyxcbiAgU0NNVXNlck5hbWVDZWxsLFxuICBTQ01Vc2VyTmFtZVRleHQsXG4gIFNDTVVzZXJQb3NpdGlvblRleHQsXG4gIFNDTUlUYXNrUm93V3JhcCxcbiAgU0NNSVRhc2tSb3dTdXJmYWNlLFxuICBTQ01JVGFza1Jvd0lubmVyLFxuICBTQ01JVGFza1RpdGxlUm93LFxuICBTQ01JVGFza1N1YnRhc2tJY29uV3JhcCxcbiAgU0NNSVRhc2tQcm9qZWN0TmFtZSxcbiAgU0NNSVRhc2tJY29uSW1nLFxuICBTQ01JVGFza1RpdGxlLFxufSBmcm9tICcuL0NvbnRleHRNZW50aW9uSXRlbS5zdHlsZXMnXG5cbnR5cGUgQ29udGV4dE1lbnRpb25JdGVtUHJvcHMgPSB7XG4gIGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGVcbiAgYWN0aXZlPzogYm9vbGVhblxuICBvblNlbGVjdDogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbiAgb25Ib3Zlcj86IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG59XG5cbmNvbnN0IFRBU0tfUFJPSkVDVF9OQU1FX01BWF9DSEFSUyA9IDQwXG5cbmNvbnN0IHRydW5jYXRlV2l0aEVsbGlwc2lzID0gKHZhbHVlOiBzdHJpbmcsIG1heENoYXJzOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBpZiAodmFsdWUubGVuZ3RoIDw9IG1heENoYXJzKSByZXR1cm4gdmFsdWVcbiAgcmV0dXJuIGAke3ZhbHVlLnNsaWNlKDAsIE1hdGgubWF4KDAsIG1heENoYXJzIC0gMSkpLnRyaW1FbmQoKX3igKZgXG59XG5cbmNvbnN0IHJlbmRlclRpdGxlID0gKHByaW1hcnk6IHN0cmluZywgaGlnaGxpZ2h0PzogeyBzdGFydDogbnVtYmVyOyBsZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gIGlmICghaGlnaGxpZ2h0IHx8IGhpZ2hsaWdodC5sZW5ndGggPD0gMCkgcmV0dXJuIHByaW1hcnlcbiAgY29uc3QgeyBzdGFydCwgbGVuZ3RoIH0gPSBoaWdobGlnaHRcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBsZW5ndGhcbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+IHByaW1hcnkubGVuZ3RoIHx8IGVuZCA+IHByaW1hcnkubGVuZ3RoKSByZXR1cm4gcHJpbWFyeVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cHJpbWFyeS5zbGljZSgwLCBzdGFydCl9XG4gICAgICA8U0NNSVRpdGxlSGlnaGxpZ2h0PntwcmltYXJ5LnNsaWNlKHN0YXJ0LCBlbmQpfTwvU0NNSVRpdGxlSGlnaGxpZ2h0PlxuICAgICAge3ByaW1hcnkuc2xpY2UoZW5kKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiB1c2VPdmVyZmxvd1Rvb2x0aXA8VCBleHRlbmRzIEhUTUxFbGVtZW50PihyZWY6IFJlZk9iamVjdDxUIHwgbnVsbD4sIGRlcHM6IHJlYWRvbmx5IHVua25vd25bXSkge1xuICBjb25zdCBbc2hvd1Rvb2x0aXAsIHNldFNob3dUb29sdGlwXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWwgPSByZWYuY3VycmVudFxuICAgIGlmICghZWwpIHtcbiAgICAgIHNldFNob3dUb29sdGlwKGZhbHNlKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IG1lYXN1cmUgPSAoKSA9PiB7XG4gICAgICBzZXRTaG93VG9vbHRpcChlbC5zY3JvbGxXaWR0aCA+IGVsLmNsaWVudFdpZHRoKVxuICAgIH1cblxuICAgIG1lYXN1cmUoKVxuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKG1lYXN1cmUpXG4gICAgcm8ub2JzZXJ2ZShlbClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcm8uZGlzY29ubmVjdCgpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgbWVhc3VyZSlcbiAgICB9XG4gIH0sIGRlcHMpXG5cbiAgcmV0dXJuIHNob3dUb29sdGlwXG59XG5cbi8qKiBJbmljaWFsZXMgcGFyYSBhdmF0YXIgKG5vbWJyZSBsZWdhbCksIG5vIGVsIHRleHRvIHZpc2libGUgZGUgbGEgZmlsYSAoZWouIFwiWW9cIikuICovXG5jb25zdCBpbml0aWFsc0Zyb21EaXNwbGF5TmFtZSA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gbmFtZS50cmltKClcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gJz8nXG4gIGNvbnN0IHBhcnRzID0gdHJpbW1lZC5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcbiAgICBjb25zdCBmaXJzdCA9IHBhcnRzWzBdPy5jaGFyQXQoMCkgPz8gJydcbiAgICBjb25zdCBsYXN0ID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0/LmNoYXJBdCgwKSA/PyAnJ1xuICAgIHJldHVybiBgJHtmaXJzdH0ke2xhc3R9YC50b1VwcGVyQ2FzZSgpXG4gIH1cbiAgY29uc3Qgc2luZ2xlID0gcGFydHNbMF0gPz8gJydcbiAgaWYgKHNpbmdsZS5sZW5ndGggPj0gMikgcmV0dXJuIHNpbmdsZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpXG4gIHJldHVybiAoc2luZ2xlLmNoYXJBdCgwKSB8fCAnPycpLnRvVXBwZXJDYXNlKClcbn1cblxuY29uc3QgVXNlclJvd0F2YXRhcjogRkM8eyBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbDsgbmFtZUZvckluaXRpYWxzOiBzdHJpbmcgfT4gPSAoeyBwaWN0dXJlLCBuYW1lRm9ySW5pdGlhbHMgfSkgPT4ge1xuICBjb25zdCBbYnJva2VuLCBzZXRCcm9rZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGluaXRpYWxzID0gaW5pdGlhbHNGcm9tRGlzcGxheU5hbWUobmFtZUZvckluaXRpYWxzKVxuXG4gIHJldHVybiAoXG4gICAgPFNDTVVzZXJBdmF0YXJXcmFwPlxuICAgICAge3BpY3R1cmUgJiYgIWJyb2tlbiA/IChcbiAgICAgICAgPFNDTVVzZXJBdmF0YXJJbWcgc3JjPXtwaWN0dXJlfSBhbHQ9XCJcIiBvbkVycm9yPXsoKSA9PiBzZXRCcm9rZW4odHJ1ZSl9IGxvYWRpbmc9XCJsYXp5XCIgZGVjb2Rpbmc9XCJhc3luY1wiIC8+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNVXNlckF2YXRhckZhbGxiYWNrIGFyaWEtaGlkZGVuPntpbml0aWFsc308L1NDTVVzZXJBdmF0YXJGYWxsYmFjaz5cbiAgICAgICl9XG4gICAgPC9TQ01Vc2VyQXZhdGFyV3JhcD5cbiAgKVxufVxuXG5jb25zdCBDb250ZXh0TWVudGlvblRhc2tSb3c6IEZDPHtcbiAgaXRlbTogQ29udGV4dE1lbnRpb25JdGVtVHlwZVxuICBhY3RpdmU/OiBib29sZWFuXG4gIG9uTW91c2VEb3duOiAoZTogTW91c2VFdmVudCkgPT4gdm9pZFxuICBvbkhvdmVyPzogKCkgPT4gdm9pZFxufT4gPSAoeyBpdGVtLCBhY3RpdmUsIG9uTW91c2VEb3duLCBvbkhvdmVyIH0pID0+IHtcbiAgY29uc3QgeyBwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0LCBicmVhZGNydW1iLCByYXcgfSA9IGl0ZW1cbiAgY29uc3QgcHJvamVjdE5hbWUgPSByYXcucHJvamVjdE5hbWU/LnRyaW0oKSB8fCBicmVhZGNydW1iPy5wYXJlbnQ/LnRyaW0oKSB8fCAnJ1xuICBjb25zdCBwcm9qZWN0TmFtZURpc3BsYXkgPSB0cnVuY2F0ZVdpdGhFbGxpcHNpcyhwcm9qZWN0TmFtZSwgVEFTS19QUk9KRUNUX05BTUVfTUFYX0NIQVJTKVxuICBjb25zdCBpc1Byb2plY3ROYW1lVHJ1bmNhdGVkQnlDaGFycyA9IHByb2plY3ROYW1lRGlzcGxheSAhPT0gcHJvamVjdE5hbWVcbiAgY29uc3QgaGFzRmF0aGVyID0gcmF3LmZhdGhlcklkICE9IG51bGxcbiAgY29uc3QgdGl0bGVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHByb2plY3RSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCBzaG93VGl0bGVUb29sdGlwID0gdXNlT3ZlcmZsb3dUb29sdGlwKHRpdGxlUmVmLCBbXG4gICAgcHJpbWFyeSxcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5zdGFydCA/PyAtMSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0Py5sZW5ndGggPz8gMCxcbiAgICBoYXNGYXRoZXIsXG4gIF0pXG4gIGNvbnN0IHNob3dQcm9qZWN0VG9vbHRpcCA9IHVzZU92ZXJmbG93VG9vbHRpcChwcm9qZWN0UmVmLCBbcHJvamVjdE5hbWVEaXNwbGF5LCBwcmltYXJ5XSlcbiAgY29uc3Qgc2hvdWxkU2hvd1Byb2plY3RUb29sdGlwID0gaXNQcm9qZWN0TmFtZVRydW5jYXRlZEJ5Q2hhcnMgfHwgc2hvd1Byb2plY3RUb29sdGlwXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVRhc2tSb3dXcmFwIG9uTW91c2VEb3duPXtvbk1vdXNlRG93bn0gb25Nb3VzZUVudGVyPXtvbkhvdmVyfT5cbiAgICAgIDxTQ01JVGFza1Jvd1N1cmZhY2UgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPFNDTUlUYXNrSWNvbkltZyBzcmM9e1RBU0tfTElOS19JQ09OX0RBVEFfVVJMfSBhbHQ9XCJcIiBkcmFnZ2FibGU9e2ZhbHNlfSBhcmlhLWhpZGRlbiAvPlxuICAgICAgICAgIDxTQ01JVGFza1RpdGxlUm93PlxuICAgICAgICAgICAge2hhc0ZhdGhlciA/IChcbiAgICAgICAgICAgICAgPFNDTUlUYXNrU3VidGFza0ljb25XcmFwPlxuICAgICAgICAgICAgICAgIDxTdWJ0YXNrSWNvbiB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCIjMDAwXCIgdmFyaWFudD1cInJlZ3VsYXJcIiAvPlxuICAgICAgICAgICAgICA8L1NDTUlUYXNrU3VidGFza0ljb25XcmFwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1RpdGxlVG9vbHRpcCA/IHByaW1hcnkgOiAnJ30+XG4gICAgICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHJlZj17dGl0bGVSZWZ9PntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUYXNrVGl0bGU+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICB7cHJvamVjdE5hbWUgPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG91bGRTaG93UHJvamVjdFRvb2x0aXAgPyBwcm9qZWN0TmFtZSA6ICcnfT5cbiAgICAgICAgICAgICAgICA8U0NNSVRhc2tQcm9qZWN0TmFtZSByZWY9e3Byb2plY3RSZWZ9Pntwcm9qZWN0TmFtZURpc3BsYXl9PC9TQ01JVGFza1Byb2plY3ROYW1lPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L1NDTUlUYXNrVGl0bGVSb3c+XG4gICAgICAgIDwvU0NNSVRhc2tSb3dJbm5lcj5cbiAgICAgIDwvU0NNSVRhc2tSb3dTdXJmYWNlPlxuICAgIDwvU0NNSVRhc2tSb3dXcmFwPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvbkl0ZW06IEZDPENvbnRleHRNZW50aW9uSXRlbVByb3BzPiA9ICh7IGl0ZW0sIGFjdGl2ZSwgb25TZWxlY3QsIG9uSG92ZXIgfSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQsIGJyZWFkY3J1bWIsIHR5cGUsIHJhdyB9ID0gaXRlbVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgb25TZWxlY3QoaXRlbSlcbiAgfVxuXG4gIGNvbnN0IGhhc0NvdW50ID0gdHlwZW9mIGJyZWFkY3J1bWI/LmNvdW50ID09PSAnbnVtYmVyJ1xuICBjb25zdCBoYXNQYXJlbnQgPSAhIWJyZWFkY3J1bWI/LnBhcmVudFxuICBjb25zdCBjb3VudExhYmVsID1cbiAgICBicmVhZGNydW1iPy5jb3VudExhYmVsICYmXG4gICAgdChgY29udGV4dE1lbnRpb24uY291bnRlcnMuJHticmVhZGNydW1iLmNvdW50TGFiZWx9YCwgeyBkZWZhdWx0VmFsdWU6IGJyZWFkY3J1bWIuY291bnRMYWJlbCB9KVxuXG4gIGlmICh0eXBlID09PSAndXNlcicpIHtcbiAgICBjb25zdCBwb3NpdGlvbk5hbWVUcmltbWVkID0gcmF3LnBvc2l0aW9uTmFtZT8udHJpbSgpID8/ICcnXG4gICAgY29uc3QgcG9zaXRpb25MaW5lID0gcG9zaXRpb25OYW1lVHJpbW1lZCB8fCB0KCdjb250ZXh0TWVudGlvbi51c2VyTm9Qb3NpdGlvbicsIHsgZGVmYXVsdFZhbHVlOiAnU2luIHBvc2ljacOzbicgfSlcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVJvd1VzZXIgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFVzZXJSb3dBdmF0YXIgcGljdHVyZT17cmF3LnBpY3R1cmV9IG5hbWVGb3JJbml0aWFscz17cmF3Lm5hbWUudHJpbSgpID8gcmF3Lm5hbWUgOiBwcmltYXJ5fSAvPlxuICAgICAgICA8U0NNVXNlckluZm8+XG4gICAgICAgICAgPFNDTVVzZXJOYW1lUG9zaXRpb25Sb3c+XG4gICAgICAgICAgICA8U0NNVXNlck5hbWVDZWxsICR3aXRoRGl2aWRlcj5cbiAgICAgICAgICAgICAgPFNDTVVzZXJOYW1lVGV4dD57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01Vc2VyTmFtZVRleHQ+XG4gICAgICAgICAgICA8L1NDTVVzZXJOYW1lQ2VsbD5cbiAgICAgICAgICAgIDxTQ01Vc2VyUG9zaXRpb25UZXh0IHRpdGxlPXtwb3NpdGlvbkxpbmV9Pntwb3NpdGlvbkxpbmV9PC9TQ01Vc2VyUG9zaXRpb25UZXh0PlxuICAgICAgICAgIDwvU0NNVXNlck5hbWVQb3NpdGlvblJvdz5cbiAgICAgICAgPC9TQ01Vc2VySW5mbz5cbiAgICAgIDwvU0NNSVJvd1VzZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NNSVByb2plY3RSb3cgb25Nb3VzZURvd249e2hhbmRsZUNsaWNrfSBvbk1vdXNlRW50ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0+XG4gICAgICAgIDxTQ01JUHJvamVjdENvbnRlbnQgJGFjdGl2ZT17YWN0aXZlfT5cbiAgICAgICAgICA8U0NNSU5hbWU+XG4gICAgICAgICAgICA8U0NNSVByb2plY3RUaXRsZSB0aXRsZT17cHJpbWFyeX0+e3JlbmRlclRpdGxlKHByaW1hcnksIHByaW1hcnlIaWdobGlnaHQpfTwvU0NNSVByb2plY3RUaXRsZT5cbiAgICAgICAgICA8L1NDTUlOYW1lPlxuICAgICAgICA8L1NDTUlQcm9qZWN0Q29udGVudD5cbiAgICAgIDwvU0NNSVByb2plY3RSb3c+XG4gICAgKVxuICB9XG5cbiAgaWYgKHR5cGUgPT09ICd0YXNrJykge1xuICAgIHJldHVybiAoXG4gICAgICA8Q29udGV4dE1lbnRpb25UYXNrUm93IGl0ZW09e2l0ZW19IGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uSG92ZXI9eygpID0+IG9uSG92ZXI/LihpdGVtKX0gLz5cbiAgICApXG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDTUlSb3cgJGFjdGl2ZT17YWN0aXZlfSBvbk1vdXNlRG93bj17aGFuZGxlQ2xpY2t9IG9uTW91c2VFbnRlcj17KCkgPT4gb25Ib3Zlcj8uKGl0ZW0pfT5cbiAgICAgICAgPFNDTUlUYXNrUm93SW5uZXI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgICAgICAgZmxleDogJzAgMCAxNnB4JyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2lzTm90aW9uTWNwU2x1ZyhyYXcuaWQpID8gKFxuICAgICAgICAgICAgICA8Tm90aW9uSWNvbiB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICBnZXRDb250ZXh0TWVudGlvbkljb24oJ21jcCcsICcjMmQ3N2JkJywgcmF3LmlkLCAxNilcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxTQ01JVGFza1RpdGxlIHRpdGxlPXtwcmltYXJ5fT57cmVuZGVyVGl0bGUocHJpbWFyeSwgcHJpbWFyeUhpZ2hsaWdodCl9PC9TQ01JVGFza1RpdGxlPlxuICAgICAgICA8L1NDTUlUYXNrUm93SW5uZXI+XG4gICAgICA8L1NDTUlSb3c+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNSVJvdyAkYWN0aXZlPXthY3RpdmV9IG9uTW91c2VEb3duPXtoYW5kbGVDbGlja30gb25Nb3VzZUVudGVyPXsoKSA9PiBvbkhvdmVyPy4oaXRlbSl9PlxuICAgICAgPFNDTUlOYW1lPlxuICAgICAgICA8U0NNSVRpdGxlPntyZW5kZXJUaXRsZShwcmltYXJ5LCBwcmltYXJ5SGlnaGxpZ2h0KX08L1NDTUlUaXRsZT5cbiAgICAgICAgeyhoYXNDb3VudCB8fCBoYXNQYXJlbnQpICYmIChcbiAgICAgICAgICA8U0NNSUJyZWFkY3J1bWI+XG4gICAgICAgICAgICB7aGFzQ291bnQgJiYgKFxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICB7YnJlYWRjcnVtYj8uY291bnR9IHtjb3VudExhYmVsfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2hhc1BhcmVudCAmJiAoXG4gICAgICAgICAgICAgIDxTQ01JQnJlYWRjcnVtYlBhcmVudD5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPnticmVhZGNydW1iPy5wYXJlbnR9PC9zcGFuPlxuICAgICAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iUGFyZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDTUlCcmVhZGNydW1iPlxuICAgICAgICApfVxuICAgICAgPC9TQ01JTmFtZT5cbiAgICA8L1NDTUlSb3c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQXlCQSxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUF3QixPQUFPO0FBQ3pGLFNBQVNDLFlBQVksUUFBUSwrQ0FBK0M7QUFDNUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLHVCQUF1QixRQUFRLGlDQUFpQztBQUV6RSxTQUFTQyxVQUFVLFFBQVEscUJBQXFCO0FBQ2hELFNBQVNDLFdBQVcsUUFBUSxzQkFBc0I7QUFDbEQsU0FBU0MscUJBQXFCLEVBQUVDLGVBQWUsUUFBUSxvQ0FBb0M7QUFDM0YsU0FDRUMsT0FBTyxFQUNQQyxjQUFjLEVBQ2RDLGtCQUFrQixFQUNsQkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLGdCQUFnQixFQUNoQkMsa0JBQWtCLEVBQ2xCQyxjQUFjLEVBQ2RDLG9CQUFvQixFQUNwQkMsV0FBVyxFQUNYQyxpQkFBaUIsRUFDakJDLGdCQUFnQixFQUNoQkMscUJBQXFCLEVBQ3JCQyxXQUFXLEVBQ1hDLHNCQUFzQixFQUN0QkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxr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
|