@payloadcms/db-postgres 0.1.12 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -3
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +5 -1
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +4 -1
- package/dist/schema/build.d.ts +3 -1
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +8 -5
- package/dist/schema/traverseFields.d.ts +2 -1
- package/dist/schema/traverseFields.d.ts.map +1 -1
- package/dist/schema/traverseFields.js +15 -5
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +2 -1
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
- package/dist/transactions/rollbackTransaction.js +5 -2
- package/dist/transform/write/selects.d.ts +2 -1
- package/dist/transform/write/selects.d.ts.map +1 -1
- package/dist/transform/write/selects.js +3 -2
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +3 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +4 -2
- package/dist/upsertRow/insertArrays.js +2 -2
- package/package.json +4 -3
@@ -343,6 +343,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete
|
|
343
343
|
Object.entries(data[field.name]).forEach(([localeKey, localeData])=>{
|
344
344
|
if (Array.isArray(localeData)) {
|
345
345
|
const newRows = (0, _selects.transformSelects)({
|
346
|
+
id: data._uuid || data.id,
|
346
347
|
data: localeData,
|
347
348
|
locale: localeKey
|
348
349
|
});
|
@@ -352,6 +353,7 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete
|
|
352
353
|
}
|
353
354
|
} else if (Array.isArray(data[field.name])) {
|
354
355
|
const newRows = (0, _selects.transformSelects)({
|
356
|
+
id: data._uuid || data.id,
|
355
357
|
data: data[field.name]
|
356
358
|
});
|
357
359
|
selects[selectTableName] = selects[selectTableName].concat(newRows);
|
@@ -399,4 +401,4 @@ const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksToDelete
|
|
399
401
|
});
|
400
402
|
};
|
401
403
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0b1NuYWtlQ2FzZSBmcm9tICd0by1zbmFrZS1jYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcnJheVJvd1RvSW5zZXJ0LCBCbG9ja1Jvd1RvSW5zZXJ0LCBSZWxhdGlvbnNoaXBUb0RlbGV0ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzQXJyYXlPZlJvd3MgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaXNBcnJheU9mUm93cydcbmltcG9ydCB7IHRyYW5zZm9ybUFycmF5IH0gZnJvbSAnLi9hcnJheSdcbmltcG9ydCB7IHRyYW5zZm9ybUJsb2NrcyB9IGZyb20gJy4vYmxvY2tzJ1xuaW1wb3J0IHsgdHJhbnNmb3JtTnVtYmVycyB9IGZyb20gJy4vbnVtYmVycydcbmltcG9ydCB7IHRyYW5zZm9ybVJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwcydcbmltcG9ydCB7IHRyYW5zZm9ybVNlbGVjdHMgfSBmcm9tICcuL3NlbGVjdHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBiYXNlIHRhYmxlXG4gICAqL1xuICBiYXNlVGFibGVOYW1lOiBzdHJpbmdcbiAgYmxvY2tzOiB7XG4gICAgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdXG4gIH1cbiAgYmxvY2tzVG9EZWxldGU6IFNldDxzdHJpbmc+XG4gIC8qKlxuICAgKiBBIHNuYWtlLWNhc2UgZmllbGQgcHJlZml4LCByZXByZXNlbnRpbmcgcHJpb3IgZmllbGRzXG4gICAqIEV4OiBteV9ncm91cF9teV9uYW1lZF90YWJfXG4gICAqL1xuICBjb2x1bW5QcmVmaXg6IHN0cmluZ1xuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBleGlzdGluZ0xvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIC8qKlxuICAgKiBBIHByZWZpeCB0aGF0IHdpbGwgcmV0YWluIGNhbWVsLWNhc2UgZm9ybWF0dGluZywgcmVwcmVzZW50aW5nIHByaW9yIGZpZWxkc1xuICAgKiBFeDogbXlHcm91cF9teU5hbWVkVGFiX1xuICAgKi9cbiAgZmllbGRQcmVmaXg6IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VkTG9jYWxlPzogc3RyaW5nXG4gIGxvY2FsZXM6IHtcbiAgICBbbG9jYWxlOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9XG4gIG51bWJlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCB0YWJsZVxuICAgKi9cbiAgcGFyZW50VGFibGVOYW1lOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlOiBSZWxhdGlvbnNoaXBUb0RlbGV0ZVtdXG4gIHJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSAoe1xuICBhZGFwdGVyLFxuICBhcnJheXMsXG4gIGJhc2VUYWJsZU5hbWUsXG4gIGJsb2NrcyxcbiAgYmxvY2tzVG9EZWxldGUsXG4gIGNvbHVtblByZWZpeCxcbiAgZGF0YSxcbiAgZXhpc3RpbmdMb2NhbGVzLFxuICBmaWVsZFByZWZpeCxcbiAgZmllbGRzLFxuICBmb3JjZWRMb2NhbGUsXG4gIGxvY2FsZXMsXG4gIG51bWJlcnMsXG4gIHBhcmVudFRhYmxlTmFtZSxcbiAgcGF0aCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICByb3csXG4gIHNlbGVjdHMsXG59OiBBcmdzKSA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGxldCBjb2x1bW5OYW1lID0gJydcbiAgICBsZXQgZmllbGROYW1lID0gJydcbiAgICBsZXQgZmllbGREYXRhOiB1bmtub3duXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG4gICAgICBmaWVsZE5hbWUgPSBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuICAgICAgZmllbGREYXRhID0gZGF0YVtmaWVsZC5uYW1lXVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBjb25zdCBhcnJheVRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcblxuICAgICAgaWYgKCFhcnJheXNbYXJyYXlUYWJsZU5hbWVdKSBhcnJheXNbYXJyYXlUYWJsZU5hbWVdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW2ZpZWxkLm5hbWVdKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYmxvY2tzJykge1xuICAgICAgZmllbGQuYmxvY2tzLmZvckVhY2goKHsgc2x1ZyB9KSA9PiB7XG4gICAgICAgIGJsb2Nrc1RvRGVsZXRlLmFkZCh0b1NuYWtlQ2FzZShzbHVnKSlcbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJiBkYXRhW2ZpZWxkLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVtmaWVsZC5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheU9mUm93cyhmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZ3JvdXAnKSB7XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICBwYXRoOiBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICBibG9ja3MsXG4gICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgIGNvbHVtblByZWZpeDogYCR7Y29sdW1uTmFtZX1fYCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfV9gLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVt0YWIubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbdGFiLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGFiLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW3RhYi5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZSh0YWIubmFtZSl9X2AsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtblByZWZpeCB8fCAnJ30ke3RvU25ha2VDYXNlKHRhYi5uYW1lKX1fYCxcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhW3RhYi5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JvdycgfHwgZmllbGQudHlwZSA9PT0gJ2NvbGxhcHNpYmxlJykge1xuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXMsXG4gICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgIGJsb2NrcyxcbiAgICAgICAgYmxvY2tzVG9EZWxldGUsXG4gICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICByb3csXG4gICAgICAgIHNlbGVjdHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwUGF0aCA9IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkRGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZERhdGEpLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAobG9jYWxlRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzVG9EZWxldGUucHVzaCh7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgcGF0aDogcmVsYXRpb25zaGlwUGF0aCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybVJlbGF0aW9uc2hpcCh7XG4gICAgICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICBwYXRoOiByZWxhdGlvbnNoaXBQYXRoLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YSA9PT0gbnVsbCB8fCAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpICYmIGZpZWxkRGF0YS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLnB1c2goeyBwYXRoOiByZWxhdGlvbnNoaXBQYXRoIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm1SZWxhdGlvbnNoaXAoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IHJlbGF0aW9uc2hpcFBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IG51bWJlclBhdGggPSBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX1gXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtTnVtYmVycyh7XG4gICAgICAgICAgICAgICAgYmFzZVJvdzoge1xuICAgICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgICBwYXRoOiBudW1iZXJQYXRoLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybU51bWJlcnMoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IG51bWJlclBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdFRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcbiAgICAgIGlmICghc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBbXVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCcgJiYgZGF0YVtmaWVsZC5uYW1lXSAhPT0gbnVsbCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhbGVEYXRhKSkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdSb3dzID0gdHJhbnNmb3JtU2VsZWN0cyh7XG4gICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSB0cmFuc2Zvcm1TZWxlY3RzKHtcbiAgICAgICAgICBkYXRhOiBkYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXSA9IHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXS5jb25jYXQobmV3Um93cylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICBjb25zdCB2YWx1ZXNUb1RyYW5zZm9ybTogeyBsb2NhbGVLZXk/OiBzdHJpbmc7IHJlZjogdW5rbm93bjsgdmFsdWU6IHVua25vd24gfVtdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkRGF0YSA9PT0gJ29iamVjdCcgJiYgZmllbGREYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFsb2NhbGVzW2xvY2FsZUtleV0pIGxvY2FsZXNbbG9jYWxlS2V5XSA9IHt9XG5cbiAgICAgICAgICAgIHZhbHVlc1RvVHJhbnNmb3JtLnB1c2goe1xuICAgICAgICAgICAgICBsb2NhbGVLZXksXG4gICAgICAgICAgICAgIHJlZjogbG9jYWxlcyxcbiAgICAgICAgICAgICAgdmFsdWU6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCByZWYgPSByb3dcblxuICAgICAgICBpZiAoZm9yY2VkTG9jYWxlKSB7XG4gICAgICAgICAgaWYgKCFsb2NhbGVzW2ZvcmNlZExvY2FsZV0pIGxvY2FsZXNbZm9yY2VkTG9jYWxlXSA9IHt9XG4gICAgICAgICAgcmVmID0gbG9jYWxlc1tmb3JjZWRMb2NhbGVdXG4gICAgICAgIH1cblxuICAgICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5wdXNoKHsgcmVmLCB2YWx1ZTogZmllbGREYXRhIH0pXG4gICAgICB9XG5cbiAgICAgIHZhbHVlc1RvVHJhbnNmb3JtLmZvckVhY2goKHsgbG9jYWxlS2V5LCByZWYsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdkYXRlJyAmJiBmaWVsZC5uYW1lID09PSAndXBkYXRlZEF0Jykge1xuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobG9jYWxlS2V5KSB7XG4gICAgICAgICAgICByZWZbbG9jYWxlS2V5XVtmaWVsZE5hbWVdID0gZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVmW2ZpZWxkTmFtZV0gPSBmb3JtYXR0ZWRWYWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsidHJhdmVyc2VGaWVsZHMiLCJhZGFwdGVyIiwiYXJyYXlzIiwiYmFzZVRhYmxlTmFtZSIsImJsb2NrcyIsImJsb2Nrc1RvRGVsZXRlIiwiY29sdW1uUHJlZml4IiwiZGF0YSIsImV4aXN0aW5nTG9jYWxlcyIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwiZm9yY2VkTG9jYWxlIiwibG9jYWxlcyIsIm51bWJlcnMiLCJwYXJlbnRUYWJsZU5hbWUiLCJwYXRoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsInJvdyIsInNlbGVjdHMiLCJmb3JFYWNoIiwiZmllbGQiLCJjb2x1bW5OYW1lIiwiZmllbGROYW1lIiwiZmllbGREYXRhIiwiZmllbGRBZmZlY3RzRGF0YSIsInRvU25ha2VDYXNlIiwibmFtZSIsInR5cGUiLCJhcnJheVRhYmxlTmFtZSIsImxvY2FsaXplZCIsIk9iamVjdCIsImVudHJpZXMiLCJsb2NhbGVLZXkiLCJsb2NhbGVEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3Um93cyIsInRyYW5zZm9ybUFycmF5IiwibG9jYWxlIiwiY29uY2F0Iiwic2x1ZyIsImFkZCIsInRyYW5zZm9ybUJsb2NrcyIsImlzQXJyYXlPZlJvd3MiLCJ0YWJzIiwidGFiIiwicmVsYXRpb25zaGlwUGF0aCIsInB1c2giLCJ0cmFuc2Zvcm1SZWxhdGlvbnNoaXAiLCJiYXNlUm93IiwibGVuZ3RoIiwiaGFzTWFueSIsIm51bWJlclBhdGgiLCJ0cmFuc2Zvcm1OdW1iZXJzIiwic2VsZWN0VGFibGVOYW1lIiwidHJhbnNmb3JtU2VsZWN0cyIsInZhbHVlc1RvVHJhbnNmb3JtIiwicmVmIiwidmFsdWUiLCJmb3JtYXR0ZWRWYWx1ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQTREdkJBOzs7ZUFBQUE7Ozt1QkF6RG9CO29FQUNUOytCQUtNO3VCQUNDO3dCQUNDO3lCQUNDOytCQUNLO3lCQUNMOzs7Ozs7QUE4QzFCLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsWUFBWSxFQUNaQyxJQUFJLEVBQ0pDLGVBQWUsRUFDZkMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLFlBQVksRUFDWkMsT0FBTyxFQUNQQyxPQUFPLEVBQ1BDLGVBQWUsRUFDZkMsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLHFCQUFxQixFQUNyQkMsR0FBRyxFQUNIQyxPQUFPLEVBQ0Y7SUFDTFQsT0FBT1UsT0FBTyxDQUFDLENBQUNDO1FBQ2QsSUFBSUMsYUFBYTtRQUNqQixJQUFJQyxZQUFZO1FBQ2hCLElBQUlDO1FBRUosSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNKLFFBQVE7WUFDM0JDLGFBQWEsQ0FBQyxFQUFFaEIsZ0JBQWdCLEdBQUcsRUFBRW9CLElBQUFBLG9CQUFXLEVBQUNMLE1BQU1NLElBQUksRUFBRSxDQUFDO1lBQzlESixZQUFZLENBQUMsRUFBRWQsZUFBZSxHQUFHLEVBQUVZLE1BQU1NLElBQUksQ0FBQyxDQUFDO1lBQy9DSCxZQUFZakIsSUFBSSxDQUFDYyxNQUFNTSxJQUFJLENBQUM7UUFDOUI7UUFFQSxJQUFJTixNQUFNTyxJQUFJLEtBQUssU0FBUztZQUMxQixNQUFNQyxpQkFBaUIsQ0FBQyxFQUFFZixnQkFBZ0IsQ0FBQyxFQUFFUSxXQUFXLENBQUM7WUFFekQsSUFBSSxDQUFDcEIsTUFBTSxDQUFDMkIsZUFBZSxFQUFFM0IsTUFBTSxDQUFDMkIsZUFBZSxHQUFHLEVBQUU7WUFFeEQsSUFBSVIsTUFBTVMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLE9BQU92QixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxLQUFLLFlBQVlwQixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxLQUFLLE1BQU07b0JBQ3JFSSxPQUFPQyxPQUFPLENBQUN6QixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxFQUFFUCxPQUFPLENBQUMsQ0FBQyxDQUFDYSxXQUFXQyxXQUFXO3dCQUMvRCxJQUFJQyxNQUFNQyxPQUFPLENBQUNGLGFBQWE7NEJBQzdCLE1BQU1HLFVBQVVDLElBQUFBLHFCQUFjLEVBQUM7Z0NBQzdCckM7Z0NBQ0E0QjtnQ0FDQTFCO2dDQUNBQztnQ0FDQUM7Z0NBQ0FFLE1BQU0yQjtnQ0FDTmI7Z0NBQ0FrQixRQUFRTjtnQ0FDUnBCO2dDQUNBRTtnQ0FDQUM7Z0NBQ0FDO2dDQUNBRTs0QkFDRjs0QkFFQWpCLE1BQU0sQ0FBQzJCLGVBQWUsR0FBRzNCLE1BQU0sQ0FBQzJCLGVBQWUsQ0FBQ1csTUFBTSxDQUFDSDt3QkFDekQ7b0JBQ0Y7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMLE1BQU1BLFVBQVVDLElBQUFBLHFCQUFjLEVBQUM7b0JBQzdCckM7b0JBQ0E0QjtvQkFDQTFCO29CQUNBQztvQkFDQUM7b0JBQ0FFLE1BQU1BLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDO29CQUN0Qk47b0JBQ0FSO29CQUNBRTtvQkFDQUM7b0JBQ0FDO29CQUNBRTtnQkFDRjtnQkFFQWpCLE1BQU0sQ0FBQzJCLGVBQWUsR0FBRzNCLE1BQU0sQ0FBQzJCLGVBQWUsQ0FBQ1csTUFBTSxDQUFDSDtZQUN6RDtZQUVBO1FBQ0Y7UUFFQSxJQUFJaEIsTUFBTU8sSUFBSSxLQUFLLFVBQVU7WUFDM0JQLE1BQU1qQixNQUFNLENBQUNnQixPQUFPLENBQUMsQ0FBQyxFQUFFcUIsSUFBSSxFQUFFO2dCQUM1QnBDLGVBQWVxQyxHQUFHLENBQUNoQixJQUFBQSxvQkFBVyxFQUFDZTtZQUNqQztZQUVBLElBQUlwQixNQUFNUyxTQUFTLEVBQUU7Z0JBQ25CLElBQUksT0FBT3ZCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEtBQUssWUFBWXBCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEtBQUssTUFBTTtvQkFDckVJLE9BQU9DLE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEVBQUVQLE9BQU8sQ0FBQyxDQUFDLENBQUNhLFdBQVdDLFdBQVc7d0JBQy9ELElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsYUFBYTs0QkFDN0JTLElBQUFBLHVCQUFlLEVBQUM7Z0NBQ2QxQztnQ0FDQUU7Z0NBQ0FDO2dDQUNBQztnQ0FDQUUsTUFBTTJCO2dDQUNOYjtnQ0FDQWtCLFFBQVFOO2dDQUNScEI7Z0NBQ0FFO2dDQUNBQztnQ0FDQUM7Z0NBQ0FFOzRCQUNGO3dCQUNGO29CQUNGO2dCQUNGO1lBQ0YsT0FBTyxJQUFJeUIsSUFBQUEsNEJBQWEsRUFBQ3BCLFlBQVk7Z0JBQ25DbUIsSUFBQUEsdUJBQWUsRUFBQztvQkFDZDFDO29CQUNBRTtvQkFDQUM7b0JBQ0FDO29CQUNBRSxNQUFNaUI7b0JBQ05IO29CQUNBUjtvQkFDQUU7b0JBQ0FDO29CQUNBQztvQkFDQUU7Z0JBQ0Y7WUFDRjtZQUVBO1FBQ0Y7UUFFQSxJQUFJRSxNQUFNTyxJQUFJLEtBQUssU0FBUztZQUMxQixJQUFJLE9BQU9yQixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxLQUFLLFlBQVlwQixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxLQUFLLE1BQU07Z0JBQ3JFLElBQUlOLE1BQU1TLFNBQVMsRUFBRTtvQkFDbkJDLE9BQU9DLE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEVBQUVQLE9BQU8sQ0FBQyxDQUFDLENBQUNhLFdBQVdDLFdBQVc7d0JBQy9EbEMsZUFBZTs0QkFDYkM7NEJBQ0FDOzRCQUNBQzs0QkFDQUM7NEJBQ0FDOzRCQUNBQyxjQUFjLENBQUMsRUFBRWdCLFdBQVcsQ0FBQyxDQUFDOzRCQUM5QmYsTUFBTTJCOzRCQUNOMUI7NEJBQ0FDLGFBQWEsQ0FBQyxFQUFFYyxVQUFVLENBQUMsQ0FBQzs0QkFDNUJiLFFBQVFXLE1BQU1YLE1BQU07NEJBQ3BCQyxjQUFjc0I7NEJBQ2RyQjs0QkFDQUM7NEJBQ0FDOzRCQUNBQyxNQUFNLENBQUMsRUFBRUEsUUFBUSxHQUFHLEVBQUVNLE1BQU1NLElBQUksQ0FBQyxDQUFDLENBQUM7NEJBQ25DWDs0QkFDQUM7NEJBQ0FDOzRCQUNBQzt3QkFDRjtvQkFDRjtnQkFDRixPQUFPO29CQUNMbkIsZUFBZTt3QkFDYkM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQyxjQUFjLENBQUMsRUFBRWdCLFdBQVcsQ0FBQyxDQUFDO3dCQUM5QmYsTUFBTUEsSUFBSSxDQUFDYyxNQUFNTSxJQUFJLENBQUM7d0JBQ3RCbkI7d0JBQ0FDLGFBQWEsQ0FBQyxFQUFFYyxVQUFVLENBQUMsQ0FBQzt3QkFDNUJiLFFBQVFXLE1BQU1YLE1BQU07d0JBQ3BCRTt3QkFDQUM7d0JBQ0FDO3dCQUNBQyxNQUFNLENBQUMsRUFBRUEsUUFBUSxHQUFHLEVBQUVNLE1BQU1NLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ25DWDt3QkFDQUM7d0JBQ0FDO3dCQUNBQztvQkFDRjtnQkFDRjtZQUNGO1lBRUE7UUFDRjtRQUVBLElBQUlFLE1BQU1PLElBQUksS0FBSyxRQUFRO1lBQ3pCUCxNQUFNd0IsSUFBSSxDQUFDekIsT0FBTyxDQUFDLENBQUMwQjtnQkFDbEIsSUFBSSxVQUFVQSxLQUFLO29CQUNqQixJQUFJLE9BQU92QyxJQUFJLENBQUN1QyxJQUFJbkIsSUFBSSxDQUFDLEtBQUssWUFBWXBCLElBQUksQ0FBQ3VDLElBQUluQixJQUFJLENBQUMsS0FBSyxNQUFNO3dCQUNqRSxJQUFJbUIsSUFBSWhCLFNBQVMsRUFBRTs0QkFDakJDLE9BQU9DLE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ3VDLElBQUluQixJQUFJLENBQUMsRUFBRVAsT0FBTyxDQUFDLENBQUMsQ0FBQ2EsV0FBV0MsV0FBVztnQ0FDN0RsQyxlQUFlO29DQUNiQztvQ0FDQUM7b0NBQ0FDO29DQUNBQztvQ0FDQUM7b0NBQ0FDLGNBQWMsQ0FBQyxFQUFFQSxnQkFBZ0IsR0FBRyxFQUFFb0IsSUFBQUEsb0JBQVcsRUFBQ29CLElBQUluQixJQUFJLEVBQUUsQ0FBQyxDQUFDO29DQUM5RHBCLE1BQU0yQjtvQ0FDTjFCO29DQUNBQyxhQUFhLENBQUMsRUFBRUEsZUFBZSxHQUFHLEVBQUVxQyxJQUFJbkIsSUFBSSxDQUFDLENBQUMsQ0FBQztvQ0FDL0NqQixRQUFRb0MsSUFBSXBDLE1BQU07b0NBQ2xCQyxjQUFjc0I7b0NBQ2RyQjtvQ0FDQUM7b0NBQ0FDO29DQUNBQyxNQUFNLENBQUMsRUFBRUEsUUFBUSxHQUFHLEVBQUUrQixJQUFJbkIsSUFBSSxDQUFDLENBQUMsQ0FBQztvQ0FDakNYO29DQUNBQztvQ0FDQUM7b0NBQ0FDO2dDQUNGOzRCQUNGO3dCQUNGLE9BQU87NEJBQ0xuQixlQUFlO2dDQUNiQztnQ0FDQUM7Z0NBQ0FDO2dDQUNBQztnQ0FDQUM7Z0NBQ0FDLGNBQWMsQ0FBQyxFQUFFQSxnQkFBZ0IsR0FBRyxFQUFFb0IsSUFBQUEsb0JBQVcsRUFBQ29CLElBQUluQixJQUFJLEVBQUUsQ0FBQyxDQUFDO2dDQUM5RHBCLE1BQU1BLElBQUksQ0FBQ3VDLElBQUluQixJQUFJLENBQUM7Z0NBQ3BCbkI7Z0NBQ0FDLGFBQWEsQ0FBQyxFQUFFQSxlQUFlLEdBQUcsRUFBRXFDLElBQUluQixJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUMvQ2pCLFFBQVFvQyxJQUFJcEMsTUFBTTtnQ0FDbEJFO2dDQUNBQztnQ0FDQUM7Z0NBQ0FDLE1BQU0sQ0FBQyxFQUFFQSxRQUFRLEdBQUcsRUFBRStCLElBQUluQixJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUNqQ1g7Z0NBQ0FDO2dDQUNBQztnQ0FDQUM7NEJBQ0Y7d0JBQ0Y7b0JBQ0Y7Z0JBQ0YsT0FBTztvQkFDTG5CLGVBQWU7d0JBQ2JDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDLFFBQVFvQyxJQUFJcEMsTUFBTTt3QkFDbEJFO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQzt3QkFDQUM7d0JBQ0FDO3dCQUNBQztvQkFDRjtnQkFDRjtZQUNGO1FBQ0Y7UUFFQSxJQUFJRSxNQUFNTyxJQUFJLEtBQUssU0FBU1AsTUFBTU8sSUFBSSxLQUFLLGVBQWU7WUFDeEQ1QixlQUFlO2dCQUNiQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQyxRQUFRVyxNQUFNWCxNQUFNO2dCQUNwQkU7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO2dCQUNBQztnQkFDQUM7Z0JBQ0FDO1lBQ0Y7UUFDRjtRQUVBLElBQUlFLE1BQU1PLElBQUksS0FBSyxrQkFBa0JQLE1BQU1PLElBQUksS0FBSyxVQUFVO1lBQzVELE1BQU1tQixtQkFBbUIsQ0FBQyxFQUFFaEMsUUFBUSxHQUFHLEVBQUVNLE1BQU1NLElBQUksQ0FBQyxDQUFDO1lBRXJELElBQUlOLE1BQU1TLFNBQVMsRUFBRTtnQkFDbkIsSUFBSSxPQUFPTixjQUFjLFVBQVU7b0JBQ2pDTyxPQUFPQyxPQUFPLENBQUNSLFdBQVdKLE9BQU8sQ0FBQyxDQUFDLENBQUNhLFdBQVdDLFdBQVc7d0JBQ3hELElBQUlBLGVBQWUsTUFBTTs0QkFDdkJqQixzQkFBc0IrQixJQUFJLENBQUM7Z0NBQ3pCVCxRQUFRTjtnQ0FDUmxCLE1BQU1nQzs0QkFDUjs0QkFDQTt3QkFDRjt3QkFFQUUsSUFBQUEsb0NBQXFCLEVBQUM7NEJBQ3BCQyxTQUFTO2dDQUNQWCxRQUFRTjtnQ0FDUmxCLE1BQU1nQzs0QkFDUjs0QkFDQXhDLE1BQU0yQjs0QkFDTmI7NEJBQ0FMO3dCQUNGO29CQUNGO2dCQUNGO1lBQ0YsT0FBTztnQkFDTCxJQUFJUSxjQUFjLFFBQVNXLE1BQU1DLE9BQU8sQ0FBQ1osY0FBY0EsVUFBVTJCLE1BQU0sS0FBSyxHQUFJO29CQUM5RWxDLHNCQUFzQitCLElBQUksQ0FBQzt3QkFBRWpDLE1BQU1nQztvQkFBaUI7b0JBQ3BEO2dCQUNGO2dCQUVBRSxJQUFBQSxvQ0FBcUIsRUFBQztvQkFDcEJDLFNBQVM7d0JBQ1BuQyxNQUFNZ0M7b0JBQ1I7b0JBQ0F4QyxNQUFNaUI7b0JBQ05IO29CQUNBTDtnQkFDRjtZQUNGO1lBRUE7UUFDRjtRQUVBLElBQUlLLE1BQU1PLElBQUksS0FBSyxZQUFZUCxNQUFNK0IsT0FBTyxFQUFFO1lBQzVDLE1BQU1DLGFBQWEsQ0FBQyxFQUFFdEMsUUFBUSxHQUFHLEVBQUVNLE1BQU1NLElBQUksQ0FBQyxDQUFDO1lBRS9DLElBQUlOLE1BQU1TLFNBQVMsRUFBRTtnQkFDbkIsSUFBSSxPQUFPTixjQUFjLFVBQVU7b0JBQ2pDTyxPQUFPQyxPQUFPLENBQUNSLFdBQVdKLE9BQU8sQ0FBQyxDQUFDLENBQUNhLFdBQVdDLFdBQVc7d0JBQ3hELElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsYUFBYTs0QkFDN0JvQixJQUFBQSx5QkFBZ0IsRUFBQztnQ0FDZkosU0FBUztvQ0FDUFgsUUFBUU47b0NBQ1JsQixNQUFNc0M7Z0NBQ1I7Z0NBQ0E5QyxNQUFNMkI7Z0NBQ05yQjs0QkFDRjt3QkFDRjtvQkFDRjtnQkFDRjtZQUNGLE9BQU8sSUFBSXNCLE1BQU1DLE9BQU8sQ0FBQ1osWUFBWTtnQkFDbkM4QixJQUFBQSx5QkFBZ0IsRUFBQztvQkFDZkosU0FBUzt3QkFDUG5DLE1BQU1zQztvQkFDUjtvQkFDQTlDLE1BQU1pQjtvQkFDTlg7Z0JBQ0Y7WUFDRjtZQUVBO1FBQ0Y7UUFFQSxJQUFJUSxNQUFNTyxJQUFJLEtBQUssWUFBWVAsTUFBTStCLE9BQU8sRUFBRTtZQUM1QyxNQUFNRyxrQkFBa0IsQ0FBQyxFQUFFekMsZ0JBQWdCLENBQUMsRUFBRVEsV0FBVyxDQUFDO1lBQzFELElBQUksQ0FBQ0gsT0FBTyxDQUFDb0MsZ0JBQWdCLEVBQUVwQyxPQUFPLENBQUNvQyxnQkFBZ0IsR0FBRyxFQUFFO1lBRTVELElBQUlsQyxNQUFNUyxTQUFTLEVBQUU7Z0JBQ25CLElBQUksT0FBT3ZCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEtBQUssWUFBWXBCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEtBQUssTUFBTTtvQkFDckVJLE9BQU9DLE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ2MsTUFBTU0sSUFBSSxDQUFDLEVBQUVQLE9BQU8sQ0FBQyxDQUFDLENBQUNhLFdBQVdDLFdBQVc7d0JBQy9ELElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsYUFBYTs0QkFDN0IsTUFBTUcsVUFBVW1CLElBQUFBLHlCQUFnQixFQUFDO2dDQUMvQmpELE1BQU0yQjtnQ0FDTkssUUFBUU47NEJBQ1Y7NEJBRUFkLE9BQU8sQ0FBQ29DLGdCQUFnQixHQUFHcEMsT0FBTyxDQUFDb0MsZ0JBQWdCLENBQUNmLE1BQU0sQ0FBQ0g7d0JBQzdEO29CQUNGO2dCQUNGO1lBQ0YsT0FBTyxJQUFJRixNQUFNQyxPQUFPLENBQUM3QixJQUFJLENBQUNjLE1BQU1NLElBQUksQ0FBQyxHQUFHO2dCQUMxQyxNQUFNVSxVQUFVbUIsSUFBQUEseUJBQWdCLEVBQUM7b0JBQy9CakQsTUFBTUEsSUFBSSxDQUFDYyxNQUFNTSxJQUFJLENBQUM7Z0JBQ3hCO2dCQUVBUixPQUFPLENBQUNvQyxnQkFBZ0IsR0FBR3BDLE9BQU8sQ0FBQ29DLGdCQUFnQixDQUFDZixNQUFNLENBQUNIO1lBQzdEO1lBRUE7UUFDRjtRQUVBLElBQUlaLElBQUFBLHVCQUFnQixFQUFDSixRQUFRO1lBQzNCLE1BQU1vQyxvQkFBNEUsRUFBRTtZQUVwRixJQUFJcEMsTUFBTVMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLE9BQU9OLGNBQWMsWUFBWUEsY0FBYyxNQUFNO29CQUN2RE8sT0FBT0MsT0FBTyxDQUFDUixXQUFXSixPQUFPLENBQUMsQ0FBQyxDQUFDYSxXQUFXQyxXQUFXO3dCQUN4RCxJQUFJLENBQUN0QixPQUFPLENBQUNxQixVQUFVLEVBQUVyQixPQUFPLENBQUNxQixVQUFVLEdBQUcsQ0FBQzt3QkFFL0N3QixrQkFBa0JULElBQUksQ0FBQzs0QkFDckJmOzRCQUNBeUIsS0FBSzlDOzRCQUNMK0MsT0FBT3pCO3dCQUNUO29CQUNGO2dCQUNGO1lBQ0YsT0FBTztnQkFDTCxJQUFJd0IsTUFBTXhDO2dCQUVWLElBQUlQLGNBQWM7b0JBQ2hCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxhQUFhLEVBQUVDLE9BQU8sQ0FBQ0QsYUFBYSxHQUFHLENBQUM7b0JBQ3JEK0MsTUFBTTlDLE9BQU8sQ0FBQ0QsYUFBYTtnQkFDN0I7Z0JBRUE4QyxrQkFBa0JULElBQUksQ0FBQztvQkFBRVU7b0JBQUtDLE9BQU9uQztnQkFBVTtZQUNqRDtZQUVBaUMsa0JBQWtCckMsT0FBTyxDQUFDLENBQUMsRUFBRWEsU0FBUyxFQUFFeUIsR0FBRyxFQUFFQyxLQUFLLEVBQUU7Z0JBQ2xELElBQUksT0FBT0EsVUFBVSxhQUFhO29CQUNoQyxJQUFJQyxpQkFBaUJEO29CQUVyQixJQUFJdEMsTUFBTU8sSUFBSSxLQUFLLFVBQVVQLE1BQU1NLElBQUksS0FBSyxhQUFhO3dCQUN2RGlDLGlCQUFpQixJQUFJQyxPQUFPQyxXQUFXO29CQUN6QztvQkFFQSxJQUFJN0IsV0FBVzt3QkFDYnlCLEdBQUcsQ0FBQ3pCLFVBQVUsQ0FBQ1YsVUFBVSxHQUFHcUM7b0JBQzlCLE9BQU87d0JBQ0xGLEdBQUcsQ0FBQ25DLFVBQVUsR0FBR3FDO29CQUNuQjtnQkFDRjtZQUNGO1FBQ0Y7SUFDRjtBQUNGIn0=
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0b1NuYWtlQ2FzZSBmcm9tICd0by1zbmFrZS1jYXNlJ1xuXG5pbXBvcnQgdHlwZSB7IFBvc3RncmVzQWRhcHRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcnJheVJvd1RvSW5zZXJ0LCBCbG9ja1Jvd1RvSW5zZXJ0LCBSZWxhdGlvbnNoaXBUb0RlbGV0ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzQXJyYXlPZlJvd3MgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaXNBcnJheU9mUm93cydcbmltcG9ydCB7IHRyYW5zZm9ybUFycmF5IH0gZnJvbSAnLi9hcnJheSdcbmltcG9ydCB7IHRyYW5zZm9ybUJsb2NrcyB9IGZyb20gJy4vYmxvY2tzJ1xuaW1wb3J0IHsgdHJhbnNmb3JtTnVtYmVycyB9IGZyb20gJy4vbnVtYmVycydcbmltcG9ydCB7IHRyYW5zZm9ybVJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwcydcbmltcG9ydCB7IHRyYW5zZm9ybVNlbGVjdHMgfSBmcm9tICcuL3NlbGVjdHMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9XG4gIC8qKlxuICAgKiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBiYXNlIHRhYmxlXG4gICAqL1xuICBiYXNlVGFibGVOYW1lOiBzdHJpbmdcbiAgYmxvY2tzOiB7XG4gICAgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdXG4gIH1cbiAgYmxvY2tzVG9EZWxldGU6IFNldDxzdHJpbmc+XG4gIC8qKlxuICAgKiBBIHNuYWtlLWNhc2UgZmllbGQgcHJlZml4LCByZXByZXNlbnRpbmcgcHJpb3IgZmllbGRzXG4gICAqIEV4OiBteV9ncm91cF9teV9uYW1lZF90YWJfXG4gICAqL1xuICBjb2x1bW5QcmVmaXg6IHN0cmluZ1xuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBleGlzdGluZ0xvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIC8qKlxuICAgKiBBIHByZWZpeCB0aGF0IHdpbGwgcmV0YWluIGNhbWVsLWNhc2UgZm9ybWF0dGluZywgcmVwcmVzZW50aW5nIHByaW9yIGZpZWxkc1xuICAgKiBFeDogbXlHcm91cF9teU5hbWVkVGFiX1xuICAgKi9cbiAgZmllbGRQcmVmaXg6IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VkTG9jYWxlPzogc3RyaW5nXG4gIGxvY2FsZXM6IHtcbiAgICBbbG9jYWxlOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9XG4gIG51bWJlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCB0YWJsZVxuICAgKi9cbiAgcGFyZW50VGFibGVOYW1lOiBzdHJpbmdcbiAgcGF0aDogc3RyaW5nXG4gIHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlOiBSZWxhdGlvbnNoaXBUb0RlbGV0ZVtdXG4gIHJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSAoe1xuICBhZGFwdGVyLFxuICBhcnJheXMsXG4gIGJhc2VUYWJsZU5hbWUsXG4gIGJsb2NrcyxcbiAgYmxvY2tzVG9EZWxldGUsXG4gIGNvbHVtblByZWZpeCxcbiAgZGF0YSxcbiAgZXhpc3RpbmdMb2NhbGVzLFxuICBmaWVsZFByZWZpeCxcbiAgZmllbGRzLFxuICBmb3JjZWRMb2NhbGUsXG4gIGxvY2FsZXMsXG4gIG51bWJlcnMsXG4gIHBhcmVudFRhYmxlTmFtZSxcbiAgcGF0aCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICByb3csXG4gIHNlbGVjdHMsXG59OiBBcmdzKSA9PiB7XG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGxldCBjb2x1bW5OYW1lID0gJydcbiAgICBsZXQgZmllbGROYW1lID0gJydcbiAgICBsZXQgZmllbGREYXRhOiB1bmtub3duXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gXG4gICAgICBmaWVsZE5hbWUgPSBgJHtmaWVsZFByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuICAgICAgZmllbGREYXRhID0gZGF0YVtmaWVsZC5uYW1lXVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBjb25zdCBhcnJheVRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcblxuICAgICAgaWYgKCFhcnJheXNbYXJyYXlUYWJsZU5hbWVdKSBhcnJheXNbYXJyYXlUYWJsZU5hbWVdID0gW11cblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW2ZpZWxkLm5hbWVdKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsZURhdGEsXG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybUFycmF5KHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0sXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgYXJyYXlzW2FycmF5VGFibGVOYW1lXSA9IGFycmF5c1thcnJheVRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnYmxvY2tzJykge1xuICAgICAgZmllbGQuYmxvY2tzLmZvckVhY2goKHsgc2x1ZyB9KSA9PiB7XG4gICAgICAgIGJsb2Nrc1RvRGVsZXRlLmFkZCh0b1NuYWtlQ2FzZShzbHVnKSlcbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2ZpZWxkLm5hbWVdID09PSAnb2JqZWN0JyAmJiBkYXRhW2ZpZWxkLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVtmaWVsZC5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZURhdGEpKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheU9mUm93cyhmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybUJsb2Nrcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZ3JvdXAnKSB7XG4gICAgICBpZiAodHlwZW9mIGRhdGFbZmllbGQubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbZmllbGQubmFtZV0gIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgIGZpZWxkUHJlZml4OiBgJHtmaWVsZE5hbWV9X2AsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICBwYXRoOiBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX0uYCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgICAgICBibG9ja3MsXG4gICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgIGNvbHVtblByZWZpeDogYCR7Y29sdW1uTmFtZX1fYCxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfV9gLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBsb2NhbGVzLFxuICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVt0YWIubmFtZV0gPT09ICdvYmplY3QnICYmIGRhdGFbdGFiLm5hbWVdICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodGFiLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhW3RhYi5uYW1lXSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHt0b1NuYWtlQ2FzZSh0YWIubmFtZSl9X2AsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBmb3JjZWRMb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgICAgIGFycmF5cyxcbiAgICAgICAgICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgICAgICBibG9ja3NUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBjb2x1bW5QcmVmaXg6IGAke2NvbHVtblByZWZpeCB8fCAnJ30ke3RvU25ha2VDYXNlKHRhYi5uYW1lKX1fYCxcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhW3RhYi5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgICAgICAgICBleGlzdGluZ0xvY2FsZXMsXG4gICAgICAgICAgICAgICAgZmllbGRQcmVmaXg6IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7dGFiLm5hbWV9X2AsXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aCB8fCAnJ30ke3RhYi5uYW1lfS5gLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICBzZWxlY3RzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYXJyYXlzLFxuICAgICAgICAgICAgYmFzZVRhYmxlTmFtZSxcbiAgICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICAgICAgY29sdW1uUHJlZml4LFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGV4aXN0aW5nTG9jYWxlcyxcbiAgICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgICAgZmllbGRzOiB0YWIuZmllbGRzLFxuICAgICAgICAgICAgbG9jYWxlcyxcbiAgICAgICAgICAgIG51bWJlcnMsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgIHNlbGVjdHMsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JvdycgfHwgZmllbGQudHlwZSA9PT0gJ2NvbGxhcHNpYmxlJykge1xuICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXMsXG4gICAgICAgIGJhc2VUYWJsZU5hbWUsXG4gICAgICAgIGJsb2NrcyxcbiAgICAgICAgYmxvY2tzVG9EZWxldGUsXG4gICAgICAgIGNvbHVtblByZWZpeCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZXhpc3RpbmdMb2NhbGVzLFxuICAgICAgICBmaWVsZFByZWZpeCxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICAgICAgICByb3csXG4gICAgICAgIHNlbGVjdHMsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyB8fCBmaWVsZC50eXBlID09PSAndXBsb2FkJykge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwUGF0aCA9IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkRGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZERhdGEpLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAobG9jYWxlRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICByZWxhdGlvbnNoaXBzVG9EZWxldGUucHVzaCh7XG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgcGF0aDogcmVsYXRpb25zaGlwUGF0aCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybVJlbGF0aW9uc2hpcCh7XG4gICAgICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZUtleSxcbiAgICAgICAgICAgICAgICBwYXRoOiByZWxhdGlvbnNoaXBQYXRoLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YSA9PT0gbnVsbCB8fCAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpICYmIGZpZWxkRGF0YS5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLnB1c2goeyBwYXRoOiByZWxhdGlvbnNoaXBQYXRoIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm1SZWxhdGlvbnNoaXAoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IHJlbGF0aW9uc2hpcFBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdudW1iZXInICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IG51bWJlclBhdGggPSBgJHtwYXRoIHx8ICcnfSR7ZmllbGQubmFtZX1gXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZmllbGREYXRhKS5mb3JFYWNoKChbbG9jYWxlS2V5LCBsb2NhbGVEYXRhXSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlRGF0YSkpIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtTnVtYmVycyh7XG4gICAgICAgICAgICAgICAgYmFzZVJvdzoge1xuICAgICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGVLZXksXG4gICAgICAgICAgICAgICAgICBwYXRoOiBudW1iZXJQYXRoLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGF0YTogbG9jYWxlRGF0YSxcbiAgICAgICAgICAgICAgICBudW1iZXJzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZERhdGEpKSB7XG4gICAgICAgIHRyYW5zZm9ybU51bWJlcnMoe1xuICAgICAgICAgIGJhc2VSb3c6IHtcbiAgICAgICAgICAgIHBhdGg6IG51bWJlclBhdGgsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkYXRhOiBmaWVsZERhdGEsXG4gICAgICAgICAgbnVtYmVycyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgIGNvbnN0IHNlbGVjdFRhYmxlTmFtZSA9IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWBcbiAgICAgIGlmICghc2VsZWN0c1tzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBbXVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCcgJiYgZGF0YVtmaWVsZC5uYW1lXSAhPT0gbnVsbCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbZmllbGQubmFtZV0pLmZvckVhY2goKFtsb2NhbGVLZXksIGxvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsb2NhbGVEYXRhKSkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdSb3dzID0gdHJhbnNmb3JtU2VsZWN0cyh7XG4gICAgICAgICAgICAgICAgaWQ6IGRhdGEuX3V1aWQgfHwgZGF0YS5pZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlS2V5LFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXSA9IHNlbGVjdHNbc2VsZWN0VGFibGVOYW1lXS5jb25jYXQobmV3Um93cylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtmaWVsZC5uYW1lXSkpIHtcbiAgICAgICAgY29uc3QgbmV3Um93cyA9IHRyYW5zZm9ybVNlbGVjdHMoe1xuICAgICAgICAgIGlkOiBkYXRhLl91dWlkIHx8IGRhdGEuaWQsXG4gICAgICAgICAgZGF0YTogZGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0gPSBzZWxlY3RzW3NlbGVjdFRhYmxlTmFtZV0uY29uY2F0KG5ld1Jvd3MpXG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgY29uc3QgdmFsdWVzVG9UcmFuc2Zvcm06IHsgbG9jYWxlS2V5Pzogc3RyaW5nOyByZWY6IHVua25vd247IHZhbHVlOiB1bmtub3duIH1bXSA9IFtdXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZERhdGEgPT09ICdvYmplY3QnICYmIGZpZWxkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkRGF0YSkuZm9yRWFjaCgoW2xvY2FsZUtleSwgbG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmICghbG9jYWxlc1tsb2NhbGVLZXldKSBsb2NhbGVzW2xvY2FsZUtleV0gPSB7fVxuXG4gICAgICAgICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5wdXNoKHtcbiAgICAgICAgICAgICAgbG9jYWxlS2V5LFxuICAgICAgICAgICAgICByZWY6IGxvY2FsZXMsXG4gICAgICAgICAgICAgIHZhbHVlOiBsb2NhbGVEYXRhLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVmID0gcm93XG5cbiAgICAgICAgaWYgKGZvcmNlZExvY2FsZSkge1xuICAgICAgICAgIGlmICghbG9jYWxlc1tmb3JjZWRMb2NhbGVdKSBsb2NhbGVzW2ZvcmNlZExvY2FsZV0gPSB7fVxuICAgICAgICAgIHJlZiA9IGxvY2FsZXNbZm9yY2VkTG9jYWxlXVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWVzVG9UcmFuc2Zvcm0ucHVzaCh7IHJlZiwgdmFsdWU6IGZpZWxkRGF0YSB9KVxuICAgICAgfVxuXG4gICAgICB2YWx1ZXNUb1RyYW5zZm9ybS5mb3JFYWNoKCh7IGxvY2FsZUtleSwgcmVmLCB2YWx1ZSB9KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gdmFsdWVcblxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnZGF0ZScgJiYgZmllbGQubmFtZSA9PT0gJ3VwZGF0ZWRBdCcpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGxvY2FsZUtleSkge1xuICAgICAgICAgICAgcmVmW2xvY2FsZUtleV1bZmllbGROYW1lXSA9IGZvcm1hdHRlZFZhbHVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZltmaWVsZE5hbWVdID0gZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYXZlcnNlRmllbGRzIiwiYWRhcHRlciIsImFycmF5cyIsImJhc2VUYWJsZU5hbWUiLCJibG9ja3MiLCJibG9ja3NUb0RlbGV0ZSIsImNvbHVtblByZWZpeCIsImRhdGEiLCJleGlzdGluZ0xvY2FsZXMiLCJmaWVsZFByZWZpeCIsImZpZWxkcyIsImZvcmNlZExvY2FsZSIsImxvY2FsZXMiLCJudW1iZXJzIiwicGFyZW50VGFibGVOYW1lIiwicGF0aCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJyb3ciLCJzZWxlY3RzIiwiZm9yRWFjaCIsImZpZWxkIiwiY29sdW1uTmFtZSIsImZpZWxkTmFtZSIsImZpZWxkRGF0YSIsImZpZWxkQWZmZWN0c0RhdGEiLCJ0b1NuYWtlQ2FzZSIsIm5hbWUiLCJ0eXBlIiwiYXJyYXlUYWJsZU5hbWUiLCJsb2NhbGl6ZWQiLCJPYmplY3QiLCJlbnRyaWVzIiwibG9jYWxlS2V5IiwibG9jYWxlRGF0YSIsIkFycmF5IiwiaXNBcnJheSIsIm5ld1Jvd3MiLCJ0cmFuc2Zvcm1BcnJheSIsImxvY2FsZSIsImNvbmNhdCIsInNsdWciLCJhZGQiLCJ0cmFuc2Zvcm1CbG9ja3MiLCJpc0FycmF5T2ZSb3dzIiwidGFicyIsInRhYiIsInJlbGF0aW9uc2hpcFBhdGgiLCJwdXNoIiwidHJhbnNmb3JtUmVsYXRpb25zaGlwIiwiYmFzZVJvdyIsImxlbmd0aCIsImhhc01hbnkiLCJudW1iZXJQYXRoIiwidHJhbnNmb3JtTnVtYmVycyIsInNlbGVjdFRhYmxlTmFtZSIsInRyYW5zZm9ybVNlbGVjdHMiLCJpZCIsIl91dWlkIiwidmFsdWVzVG9UcmFuc2Zvcm0iLCJyZWYiLCJ2YWx1ZSIsImZvcm1hdHRlZFZhbHVlIiwiRGF0ZSIsInRvSVNPU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBNER2QkE7OztlQUFBQTs7O3VCQXpEb0I7b0VBQ1Q7K0JBS007dUJBQ0M7d0JBQ0M7eUJBQ0M7K0JBQ0s7eUJBQ0w7Ozs7OztBQThDMUIsTUFBTUEsaUJBQWlCLENBQUMsRUFDN0JDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxhQUFhLEVBQ2JDLE1BQU0sRUFDTkMsY0FBYyxFQUNkQyxZQUFZLEVBQ1pDLElBQUksRUFDSkMsZUFBZSxFQUNmQyxXQUFXLEVBQ1hDLE1BQU0sRUFDTkMsWUFBWSxFQUNaQyxPQUFPLEVBQ1BDLE9BQU8sRUFDUEMsZUFBZSxFQUNmQyxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMscUJBQXFCLEVBQ3JCQyxHQUFHLEVBQ0hDLE9BQU8sRUFDRjtJQUNMVCxPQUFPVSxPQUFPLENBQUMsQ0FBQ0M7UUFDZCxJQUFJQyxhQUFhO1FBQ2pCLElBQUlDLFlBQVk7UUFDaEIsSUFBSUM7UUFFSixJQUFJQyxJQUFBQSx1QkFBZ0IsRUFBQ0osUUFBUTtZQUMzQkMsYUFBYSxDQUFDLEVBQUVoQixnQkFBZ0IsR0FBRyxFQUFFb0IsSUFBQUEs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
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAO/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AASnC,eAAO,MAAM,SAAS,mHAYnB,IAAI,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAO/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AASnC,eAAO,MAAM,SAAS,mHAYnB,IAAI,eAkSN,CAAA"}
|
package/dist/upsertRow/index.js
CHANGED
@@ -80,7 +80,9 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
|
|
80
80
|
if (Object.keys(rowToInsert.selects).length > 0) {
|
81
81
|
Object.entries(rowToInsert.selects).forEach(([selectTableName, selectRows])=>{
|
82
82
|
selectRows.forEach((row)=>{
|
83
|
-
row.parent
|
83
|
+
if (typeof row.parent === 'undefined') {
|
84
|
+
row.parent = insertedRow.id;
|
85
|
+
}
|
84
86
|
if (!selectsToInsert[selectTableName]) selectsToInsert[selectTableName] = [];
|
85
87
|
selectsToInsert[selectTableName].push(row);
|
86
88
|
});
|
@@ -255,4 +257,4 @@ const upsertRow = async ({ id, adapter, data, db, fields, operation, path = '',
|
|
255
257
|
return result;
|
256
258
|
};
|
257
259
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IGkxOG5Jbml0IH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgcmVxLFxuICB0YWJsZU5hbWUsXG4gIHVwc2VydFRhcmdldCxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nOlxuICAvLyBiYXNlIHJvdywgbG9jYWxlcywgcmVsYXRpb25zaGlwcywgYmxvY2tzLCBhbmQgYXJyYXlzXG4gIGNvbnN0IHJvd1RvSW5zZXJ0ID0gdHJhbnNmb3JtRm9yV3JpdGUoe1xuICAgIGFkYXB0ZXIsXG4gICAgZGF0YSxcbiAgICBmaWVsZHMsXG4gICAgcGF0aCxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgLy8gRmlyc3QsIHdlIGluc2VydCB0aGUgbWFpbiByb3dcbiAgbGV0IGluc2VydGVkUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIHRyeSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHVwc2VydFRhcmdldCB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkXG5cbiAgICAgIGlmIChpZCkge1xuICAgICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0IH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0LCB3aGVyZSB9KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSlcbiAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZXNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpb25zVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgYmxvY2tzVG9JbnNlcnQ6IHsgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdIH0gPSB7fVxuICAgIGNvbnN0IHNlbGVjdHNUb0luc2VydDogeyBbc2VsZWN0VGFibGVOYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIH0gPSB7fVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmZvckVhY2goKFtsb2NhbGUsIGxvY2FsZVJvd10pID0+IHtcbiAgICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGxvY2FsZVJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICAgIGxvY2FsZXNUb0luc2VydC5wdXNoKGxvY2FsZVJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlbGF0aW9uc2hpcHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgcmVsYXRpb24ucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5udW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0Lm51bWJlcnMuZm9yRWFjaCgobnVtYmVyUm93KSA9PiB7XG4gICAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBudW1iZXJzVG9JbnNlcnQucHVzaChudW1iZXJSb3cpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBzZWxlY3RzLCBhZGQgcGFyZW50IHRvIGVhY2gsIGFuZCB0aGVuXG4gICAgLy8gc3RvcmUgYnkgdGFibGUgbmFtZSBhbmQgcm93c1xuICAgIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhyb3dUb0luc2VydC5zZWxlY3RzKS5mb3JFYWNoKChbc2VsZWN0VGFibGVOYW1lLCBzZWxlY3RSb3dzXSkgPT4ge1xuICAgICAgICBzZWxlY3RSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICAgIGlmICghc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0pIHNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdID0gW11cbiAgICAgICAgICBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXS5wdXNoKHJvdylcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGJsb2NrcywgYWRkIHBhcmVudCB0byBlYWNoLCBhbmQgdGhlblxuICAgIC8vIHN0b3JlIGJ5IHRhYmxlIG5hbWUgYW5kIHJvd3NcbiAgICBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5ibG9ja3MpLmZvckVhY2goKGJsb2NrTmFtZSkgPT4ge1xuICAgICAgcm93VG9JbnNlcnQuYmxvY2tzW2Jsb2NrTmFtZV0uZm9yRWFjaCgoYmxvY2tSb3cpID0+IHtcbiAgICAgICAgYmxvY2tSb3cucm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGlmICghYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSkgYmxvY2tzVG9JbnNlcnRbYmxvY2tOYW1lXSA9IFtdXG4gICAgICAgIGlmIChibG9ja1Jvdy5yb3cudXVpZCkge1xuICAgICAgICAgIGRlbGV0ZSBibG9ja1Jvdy5yb3cudXVpZFxuICAgICAgICB9XG4gICAgICAgIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0ucHVzaChibG9ja1JvdylcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgTE9DQUxFU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChsb2NhbGVzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYWxlVGFibGUgPSBhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2xvY2FsZXNgXVxuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCBkYi5kZWxldGUobG9jYWxlVGFibGUpLndoZXJlKGVxKGxvY2FsZVRhYmxlLl9wYXJlbnRJRCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBkYi5pbnNlcnQobG9jYWxlVGFibGUpLnZhbHVlcyhsb2NhbGVzVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBSRUxBVElPTlNISVBTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgcmVsYXRpb25zaGlwc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fcmVsc2BcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBkYixcbiAgICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICAgIHBhcmVudENvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICAgIHJvd3M6IFsuLi5yZWxhdGlvbnNUb0luc2VydCwgLi4ucm93VG9JbnNlcnQucmVsYXRpb25zaGlwc1RvRGVsZXRlXSxcbiAgICAgICAgdGFibGVOYW1lOiByZWxhdGlvbnNoaXBzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVsYXRpb25zVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3JlbGF0aW9uc2hpcHNUYWJsZU5hbWVdKS52YWx1ZXMocmVsYXRpb25zVG9JbnNlcnQpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IE5VTUJFUlNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBudW1iZXJzVGFibGVOYW1lID0gYCR7dGFibGVOYW1lfV9udW1iZXJzYFxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGRiLFxuICAgICAgICBsb2NhbGVDb2x1bW5OYW1lOiAnbG9jYWxlJyxcbiAgICAgICAgcGFyZW50Q29sdW1uTmFtZTogJ3BhcmVudCcsXG4gICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgcGF0aENvbHVtbk5hbWU6ICdwYXRoJyxcbiAgICAgICAgcm93czogbnVtYmVyc1RvSW5zZXJ0LFxuICAgICAgICB0YWJsZU5hbWU6IG51bWJlcnNUYWJsZU5hbWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChudW1iZXJzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW251bWJlcnNUYWJsZU5hbWVdKS52YWx1ZXMobnVtYmVyc1RvSW5zZXJ0KS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgQkxPQ0tTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgaW5zZXJ0ZWRCbG9ja1Jvd3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGJsb2NrTmFtZSBvZiByb3dUb0luc2VydC5ibG9ja3NUb0RlbGV0ZSkge1xuICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfWBcbiAgICAgICAgY29uc3QgYmxvY2tUYWJsZSA9IGFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXVxuICAgICAgICBhd2FpdCBkYi5kZWxldGUoYmxvY2tUYWJsZSkud2hlcmUoZXEoYmxvY2tUYWJsZS5fcGFyZW50SUQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtibG9ja05hbWUsIGJsb2NrUm93c10gb2YgT2JqZWN0LmVudHJpZXMoYmxvY2tzVG9JbnNlcnQpKSB7XG4gICAgICBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdID0gYXdhaXQgZGJcbiAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1tgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXSlcbiAgICAgICAgLnZhbHVlcyhibG9ja1Jvd3MubWFwKCh7IHJvdyB9KSA9PiByb3cpKVxuICAgICAgICAucmV0dXJuaW5nKClcblxuICAgICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXS5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgYmxvY2tSb3dzW2ldLnJvdyA9IHJvd1xuICAgICAgfSlcblxuICAgICAgY29uc3QgYmxvY2tMb2NhbGVJbmRleE1hcDogbnVtYmVyW10gPSBbXVxuXG4gICAgICBjb25zdCBibG9ja0xvY2FsZVJvd3NUb0luc2VydCA9IGJsb2NrUm93cy5yZWR1Y2UoKGFjYywgYmxvY2tSb3csIGkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5lbnRyaWVzKGJsb2NrUm93LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5mb3JFYWNoKChbYmxvY2tMb2NhbGUsIGJsb2NrTG9jYWxlRGF0YV0pID0+IHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhibG9ja0xvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVEYXRhLl9wYXJlbnRJRCA9IGJsb2NrUm93LnJvdy5pZFxuICAgICAgICAgICAgICBibG9ja0xvY2FsZURhdGEuX2xvY2FsZSA9IGJsb2NrTG9jYWxlXG4gICAgICAgICAgICAgIGFjYy5wdXNoKGJsb2NrTG9jYWxlRGF0YSlcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVJbmRleE1hcC5wdXNoKGkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIFtdKVxuXG4gICAgICBpZiAoYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQubGVuZ3RoID4gMCkge1xuICAgICAgICBhd2FpdCBkYlxuICAgICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja05hbWV9X2xvY2FsZXNgXSlcbiAgICAgICAgICAudmFsdWVzKGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBpbnNlcnRBcnJheXMoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBhcnJheXM6IGJsb2NrUm93cy5tYXAoKHsgYXJyYXlzIH0pID0+IGFycmF5cyksXG4gICAgICAgIGRiLFxuICAgICAgICBwYXJlbnRSb3dzOiBpbnNlcnRlZEJsb2NrUm93c1tibG9ja05hbWVdLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIEFSUkFZUyBSRUNVUlNJVkVMWVxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBmb3IgKGNvbnN0IGFycmF5VGFibGVOYW1lIG9mIE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmFycmF5cykpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdBcnJheVJvd3Moe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgZGIsXG4gICAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgaW5zZXJ0QXJyYXlzKHtcbiAgICAgIGFkYXB0ZXIsXG4gICAgICBhcnJheXM6IFtyb3dUb0luc2VydC5hcnJheXNdLFxuICAgICAgZGIsXG4gICAgICBwYXJlbnRSb3dzOiBbaW5zZXJ0ZWRSb3ddLFxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIGhhc01hbnkgU0VMRUNUU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGZvciAoY29uc3QgW3NlbGVjdFRhYmxlTmFtZSwgdGFibGVSb3dzXSBvZiBPYmplY3QuZW50cmllcyhzZWxlY3RzVG9JbnNlcnQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RUYWJsZSA9IGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV1cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgIGF3YWl0IGRiLmRlbGV0ZShzZWxlY3RUYWJsZSkud2hlcmUoZXEoc2VsZWN0VGFibGUucGFyZW50LCBpbnNlcnRlZFJvdy5pZCkpXG4gICAgICB9XG4gICAgICBhd2FpdCBkYi5pbnNlcnQoc2VsZWN0VGFibGUpLnZhbHVlcyh0YWJsZVJvd3MpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGVycm9yLmNvZGUgPT09ICcyMzUwNSdcbiAgICAgID8gbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiBhZGFwdGVyLmZpZWxkQ29uc3RyYWludHNbdGFibGVOYW1lXVtlcnJvci5jb25zdHJhaW50XSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogcmVxLnQoJ2Vycm9yOnZhbHVlTXVzdEJlVW5pcXVlJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVxPy50ID8/IGkxOG5Jbml0KHJlcS5wYXlsb2FkLmNvbmZpZy5pMThuKS50LFxuICAgICAgICApXG4gICAgICA6IGVycm9yXG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFJFVFJJRVZFIE5FV0xZIFVQREFURUQgUk9XXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCBmaW5kTWFueUFyZ3MgPSBidWlsZEZpbmRNYW55QXJncyh7XG4gICAgYWRhcHRlcixcbiAgICBkZXB0aDogMCxcbiAgICBmaWVsZHMsXG4gICAgdGFibGVOYW1lLFxuICB9KVxuXG4gIGZpbmRNYW55QXJncy53aGVyZSA9IGVxKGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0uaWQsIGluc2VydGVkUm93LmlkKVxuXG4gIGNvbnN0IGRvYyA9IGF3YWl0IGRiLnF1ZXJ5W3RhYmxlTmFtZV0uZmluZEZpcnN0KGZpbmRNYW55QXJncylcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRSQU5TRk9STSBEQVRBXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm08VD4oe1xuICAgIGNvbmZpZzogYWRhcHRlci5wYXlsb2FkLmNvbmZpZyxcbiAgICBkYXRhOiBkb2MsXG4gICAgZmllbGRzLFxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ1cHNlcnRSb3ciLCJpZCIsImFkYXB0ZXIiLCJkYXRhIiwiZGIiLCJmaWVsZHMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwidGFibGVOYW1lIiwidXBzZXJ0VGFyZ2V0Iiwid2hlcmUiLCJyb3dUb0luc2VydCIsInRyYW5zZm9ybUZvcldyaXRlIiwiaW5zZXJ0ZWRSb3ciLCJ0YXJnZXQiLCJ0YWJsZXMiLCJyb3ciLCJpbnNlcnQiLCJ2YWx1ZXMiLCJvbkNvbmZsaWN0RG9VcGRhdGUiLCJzZXQiLCJyZXR1cm5pbmciLCJsb2NhbGVzVG9JbnNlcnQiLCJyZWxhdGlvbnNUb0luc2VydCIsIm51bWJlcnNUb0luc2VydCIsImJsb2Nrc1RvSW5zZXJ0Iiwic2VsZWN0c1RvSW5zZXJ0IiwiT2JqZWN0Iiwia2V5cyIsImxvY2FsZXMiLCJsZW5ndGgiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImxvY2FsZSIsImxvY2FsZVJvdyIsIl9wYXJlbnRJRCIsIl9sb2NhbGUiLCJwdXNoIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uIiwicGFyZW50IiwibnVtYmVycyIsIm51bWJlclJvdyIsInNlbGVjdHMiLCJzZWxlY3RUYWJsZU5hbWUiLCJzZWxlY3RSb3dzIiwiYmxvY2tzIiwiYmxvY2tOYW1lIiwiYmxvY2tSb3ciLCJ1dWlkIiwibG9jYWxlVGFibGUiLCJkZWxldGUiLCJlcSIsInJlbGF0aW9uc2hpcHNUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgiLCJsb2NhbGVDb2x1bW5OYW1lIiwicGFyZW50Q29sdW1uTmFtZSIsInBhcmVudElEIiwicGF0aENvbHVtbk5hbWUiLCJyb3dzIiwicmVsYXRpb25zaGlwc1RvRGVsZXRlIiwibnVtYmVyc1RhYmxlTmFtZSIsImluc2VydGVkQmxvY2tSb3dzIiwiYmxvY2tzVG9EZWxldGUiLCJibG9ja1RhYmxlTmFtZSIsImJsb2NrVGFibGUiLCJibG9ja1Jvd3MiLCJtYXAiLCJpIiwiYmxvY2tMb2NhbGVJbmRleE1hcCIsImJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0IiwicmVkdWNlIiwiYWNjIiwiYmxvY2tMb2NhbGUiLCJibG9ja0xvY2FsZURhdGEiLCJpbnNlcnRBcnJheXMiLCJhcnJheXMiLCJwYXJlbnRSb3dzIiwiYXJyYXlUYWJsZU5hbWUiLCJkZWxldGVFeGlzdGluZ0FycmF5Um93cyIsInRhYmxlUm93cyIsInNlbGVjdFRhYmxlIiwiZXJyb3IiLCJjb2RlIiwiVmFsaWRhdGlvbkVycm9yIiwiZmllbGQiLCJmaWVsZENvbnN0cmFpbnRzIiwiY29uc3RyYWludCIsIm1lc3NhZ2UiLCJ0IiwiaTE4bkluaXQiLCJwYXlsb2FkIiwiY29uZmlnIiwiaTE4biIsImZpbmRNYW55QXJncyIsImJ1aWxkRmluZE1hbnlBcmdzIiwiZGVwdGgiLCJkb2MiLCJxdWVyeSIsImZpbmRGaXJzdCIsInJlc3VsdCIsInRyYW5zZm9ybSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQWlCdkJBOzs7ZUFBQUE7Ozs0QkFkTTt3QkFDYTsyQkFDUDttQ0FLUztzQkFDUjt1QkFDUTt5Q0FDTTswQ0FDQzs4QkFDWjtBQUV0QixNQUFNQSxZQUFZLE9BQTZCLEVBQ3BEQyxFQUFFLEVBQ0ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQUUsRUFDVEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsS0FBSyxFQUNBO0lBQ0wsc0RBQXNEO0lBQ3RELHVEQUF1RDtJQUN2RCxNQUFNQyxjQUFjQyxJQUFBQSx3QkFBaUIsRUFBQztRQUNwQ1g7UUFDQUM7UUFDQUU7UUFDQUU7UUFDQUU7SUFDRjtJQUVBLGdDQUFnQztJQUNoQyxJQUFJSztJQUVKLElBQUk7UUFDRixJQUFJUixjQUFjLFVBQVU7WUFD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
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgVHlwZVdpdGhJRCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGVxIH0gZnJvbSAnZHJpenpsZS1vcm0nXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdwYXlsb2FkL2Vycm9ycydcbmltcG9ydCB7IGkxOG5Jbml0IH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tSb3dUb0luc2VydCB9IGZyb20gJy4uL3RyYW5zZm9ybS93cml0ZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQXJncyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGJ1aWxkRmluZE1hbnlBcmdzIH0gZnJvbSAnLi4vZmluZC9idWlsZEZpbmRNYW55QXJncydcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4uL3RyYW5zZm9ybS9yZWFkJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRm9yV3JpdGUgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ0FycmF5Um93cyB9IGZyb20gJy4vZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MnXG5pbXBvcnQgeyBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGggfSBmcm9tICcuL2RlbGV0ZUV4aXN0aW5nUm93c0J5UGF0aCdcbmltcG9ydCB7IGluc2VydEFycmF5cyB9IGZyb20gJy4vaW5zZXJ0QXJyYXlzJ1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0Um93ID0gYXN5bmMgPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7XG4gIGlkLFxuICBhZGFwdGVyLFxuICBkYXRhLFxuICBkYixcbiAgZmllbGRzLFxuICBvcGVyYXRpb24sXG4gIHBhdGggPSAnJyxcbiAgcmVxLFxuICB0YWJsZU5hbWUsXG4gIHVwc2VydFRhcmdldCxcbiAgd2hlcmUsXG59OiBBcmdzKTogUHJvbWlzZTxUPiA9PiB7XG4gIC8vIFNwbGl0IG91dCB0aGUgaW5jb21pbmcgZGF0YSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nOlxuICAvLyBiYXNlIHJvdywgbG9jYWxlcywgcmVsYXRpb25zaGlwcywgYmxvY2tzLCBhbmQgYXJyYXlzXG4gIGNvbnN0IHJvd1RvSW5zZXJ0ID0gdHJhbnNmb3JtRm9yV3JpdGUoe1xuICAgIGFkYXB0ZXIsXG4gICAgZGF0YSxcbiAgICBmaWVsZHMsXG4gICAgcGF0aCxcbiAgICB0YWJsZU5hbWUsXG4gIH0pXG5cbiAgLy8gRmlyc3QsIHdlIGluc2VydCB0aGUgbWFpbiByb3dcbiAgbGV0IGluc2VydGVkUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG4gIHRyeSB7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHVwc2VydFRhcmdldCB8fCBhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkXG5cbiAgICAgIGlmIChpZCkge1xuICAgICAgICByb3dUb0luc2VydC5yb3cuaWQgPSBpZFxuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0IH0pXG4gICAgICAgICAgLnJldHVybmluZygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgICAgLmluc2VydChhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdKVxuICAgICAgICAgIC52YWx1ZXMocm93VG9JbnNlcnQucm93KVxuICAgICAgICAgIC5vbkNvbmZsaWN0RG9VcGRhdGUoeyBzZXQ6IHJvd1RvSW5zZXJ0LnJvdywgdGFyZ2V0LCB3aGVyZSB9KVxuICAgICAgICAgIC5yZXR1cm5pbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICA7W2luc2VydGVkUm93XSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbdGFibGVOYW1lXSlcbiAgICAgICAgLnZhbHVlcyhyb3dUb0luc2VydC5yb3cpXG4gICAgICAgIC5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsZXNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgcmVsYXRpb25zVG9JbnNlcnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXVxuICAgIGNvbnN0IG51bWJlcnNUb0luc2VydDogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSA9IFtdXG4gICAgY29uc3QgYmxvY2tzVG9JbnNlcnQ6IHsgW2Jsb2NrVHlwZTogc3RyaW5nXTogQmxvY2tSb3dUb0luc2VydFtdIH0gPSB7fVxuICAgIGNvbnN0IHNlbGVjdHNUb0luc2VydDogeyBbc2VsZWN0VGFibGVOYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIH0gPSB7fVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIGxvY2FsZSByb3dzIHdpdGggZGF0YSwgYWRkIHRoZSBwYXJlbnQgYW5kIGxvY2FsZSB0byBlYWNoXG4gICAgaWYgKE9iamVjdC5rZXlzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvd1RvSW5zZXJ0LmxvY2FsZXMpLmZvckVhY2goKFtsb2NhbGUsIGxvY2FsZVJvd10pID0+IHtcbiAgICAgICAgbG9jYWxlUm93Ll9wYXJlbnRJRCA9IGluc2VydGVkUm93LmlkXG4gICAgICAgIGxvY2FsZVJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICAgIGxvY2FsZXNUb0luc2VydC5wdXNoKGxvY2FsZVJvdylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHJlbGF0aW9uc2hpcHMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5yZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgcmVsYXRpb24ucGFyZW50ID0gaW5zZXJ0ZWRSb3cuaWRcbiAgICAgICAgcmVsYXRpb25zVG9JbnNlcnQucHVzaChyZWxhdGlvbilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlcnMsIGFkZCBwYXJlbnQgdG8gZWFjaFxuICAgIGlmIChyb3dUb0luc2VydC5udW1iZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd1RvSW5zZXJ0Lm51bWJlcnMuZm9yRWFjaCgobnVtYmVyUm93KSA9PiB7XG4gICAgICAgIG51bWJlclJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBudW1iZXJzVG9JbnNlcnQucHVzaChudW1iZXJSb3cpXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBzZWxlY3RzLCBhZGQgcGFyZW50IHRvIGVhY2gsIGFuZCB0aGVuXG4gICAgLy8gc3RvcmUgYnkgdGFibGUgbmFtZSBhbmQgcm93c1xuICAgIGlmIChPYmplY3Qua2V5cyhyb3dUb0luc2VydC5zZWxlY3RzKS5sZW5ndGggPiAwKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhyb3dUb0luc2VydC5zZWxlY3RzKS5mb3JFYWNoKChbc2VsZWN0VGFibGVOYW1lLCBzZWxlY3RSb3dzXSkgPT4ge1xuICAgICAgICBzZWxlY3RSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2Ygcm93LnBhcmVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJvdy5wYXJlbnQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXNlbGVjdHNUb0luc2VydFtzZWxlY3RUYWJsZU5hbWVdKSBzZWxlY3RzVG9JbnNlcnRbc2VsZWN0VGFibGVOYW1lXSA9IFtdXG4gICAgICAgICAgc2VsZWN0c1RvSW5zZXJ0W3NlbGVjdFRhYmxlTmFtZV0ucHVzaChyb3cpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBibG9ja3MsIGFkZCBwYXJlbnQgdG8gZWFjaCwgYW5kIHRoZW5cbiAgICAvLyBzdG9yZSBieSB0YWJsZSBuYW1lIGFuZCByb3dzXG4gICAgT2JqZWN0LmtleXMocm93VG9JbnNlcnQuYmxvY2tzKS5mb3JFYWNoKChibG9ja05hbWUpID0+IHtcbiAgICAgIHJvd1RvSW5zZXJ0LmJsb2Nrc1tibG9ja05hbWVdLmZvckVhY2goKGJsb2NrUm93KSA9PiB7XG4gICAgICAgIGJsb2NrUm93LnJvdy5fcGFyZW50SUQgPSBpbnNlcnRlZFJvdy5pZFxuICAgICAgICBpZiAoIWJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0pIGJsb2Nrc1RvSW5zZXJ0W2Jsb2NrTmFtZV0gPSBbXVxuICAgICAgICBpZiAoYmxvY2tSb3cucm93LnV1aWQpIHtcbiAgICAgICAgICBkZWxldGUgYmxvY2tSb3cucm93LnV1aWRcbiAgICAgICAgfVxuICAgICAgICBibG9ja3NUb0luc2VydFtibG9ja05hbWVdLnB1c2goYmxvY2tSb3cpXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIExPQ0FMRVNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAobG9jYWxlc1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxvY2FsZVRhYmxlID0gYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9sb2NhbGVzYF1cblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgYXdhaXQgZGIuZGVsZXRlKGxvY2FsZVRhYmxlKS53aGVyZShlcShsb2NhbGVUYWJsZS5fcGFyZW50SUQsIGluc2VydGVkUm93LmlkKSlcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGxvY2FsZVRhYmxlKS52YWx1ZXMobG9jYWxlc1RvSW5zZXJ0KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgUkVMQVRJT05TSElQU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X3JlbHNgXG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgYXdhaXQgZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgZGIsXG4gICAgICAgIGxvY2FsZUNvbHVtbk5hbWU6ICdsb2NhbGUnLFxuICAgICAgICBwYXJlbnRDb2x1bW5OYW1lOiAncGFyZW50JyxcbiAgICAgICAgcGFyZW50SUQ6IGluc2VydGVkUm93LmlkLFxuICAgICAgICBwYXRoQ29sdW1uTmFtZTogJ3BhdGgnLFxuICAgICAgICByb3dzOiBbLi4ucmVsYXRpb25zVG9JbnNlcnQsIC4uLnJvd1RvSW5zZXJ0LnJlbGF0aW9uc2hpcHNUb0RlbGV0ZV0sXG4gICAgICAgIHRhYmxlTmFtZTogcmVsYXRpb25zaGlwc1RhYmxlTmFtZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHJlbGF0aW9uc1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IGRiLmluc2VydChhZGFwdGVyLnRhYmxlc1tyZWxhdGlvbnNoaXBzVGFibGVOYW1lXSkudmFsdWVzKHJlbGF0aW9uc1RvSW5zZXJ0KVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBJTlNFUlQgaGFzTWFueSBOVU1CRVJTXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgbnVtYmVyc1RhYmxlTmFtZSA9IGAke3RhYmxlTmFtZX1fbnVtYmVyc2BcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICBhd2FpdCBkZWxldGVFeGlzdGluZ1Jvd3NCeVBhdGgoe1xuICAgICAgICBhZGFwdGVyLFxuICAgICAgICBkYixcbiAgICAgICAgbG9jYWxlQ29sdW1uTmFtZTogJ2xvY2FsZScsXG4gICAgICAgIHBhcmVudENvbHVtbk5hbWU6ICdwYXJlbnQnLFxuICAgICAgICBwYXJlbnRJRDogaW5zZXJ0ZWRSb3cuaWQsXG4gICAgICAgIHBhdGhDb2x1bW5OYW1lOiAncGF0aCcsXG4gICAgICAgIHJvd3M6IG51bWJlcnNUb0luc2VydCxcbiAgICAgICAgdGFibGVOYW1lOiBudW1iZXJzVGFibGVOYW1lLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyc1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IGRiLmluc2VydChhZGFwdGVyLnRhYmxlc1tudW1iZXJzVGFibGVOYW1lXSkudmFsdWVzKG51bWJlcnNUb0luc2VydCkucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgLy8gSU5TRVJUIEJMT0NLU1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIGNvbnN0IGluc2VydGVkQmxvY2tSb3dzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiA9IHt9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgZm9yIChjb25zdCBibG9ja05hbWUgb2Ygcm93VG9JbnNlcnQuYmxvY2tzVG9EZWxldGUpIHtcbiAgICAgICAgY29uc3QgYmxvY2tUYWJsZU5hbWUgPSBgJHt0YWJsZU5hbWV9X2Jsb2Nrc18ke2Jsb2NrTmFtZX1gXG4gICAgICAgIGNvbnN0IGJsb2NrVGFibGUgPSBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV1cbiAgICAgICAgYXdhaXQgZGIuZGVsZXRlKGJsb2NrVGFibGUpLndoZXJlKGVxKGJsb2NrVGFibGUuX3BhcmVudElELCBpbnNlcnRlZFJvdy5pZCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbYmxvY2tOYW1lLCBibG9ja1Jvd3NdIG9mIE9iamVjdC5lbnRyaWVzKGJsb2Nrc1RvSW5zZXJ0KSkge1xuICAgICAgaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXSA9IGF3YWl0IGRiXG4gICAgICAgIC5pbnNlcnQoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9ibG9ja3NfJHtibG9ja05hbWV9YF0pXG4gICAgICAgIC52YWx1ZXMoYmxvY2tSb3dzLm1hcCgoeyByb3cgfSkgPT4gcm93KSlcbiAgICAgICAgLnJldHVybmluZygpXG5cbiAgICAgIGluc2VydGVkQmxvY2tSb3dzW2Jsb2NrTmFtZV0uZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgIGJsb2NrUm93c1tpXS5yb3cgPSByb3dcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGJsb2NrTG9jYWxlSW5kZXhNYXA6IG51bWJlcltdID0gW11cblxuICAgICAgY29uc3QgYmxvY2tMb2NhbGVSb3dzVG9JbnNlcnQgPSBibG9ja1Jvd3MucmVkdWNlKChhY2MsIGJsb2NrUm93LCBpKSA9PiB7XG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyhibG9ja1Jvdy5sb2NhbGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYmxvY2tSb3cubG9jYWxlcykuZm9yRWFjaCgoW2Jsb2NrTG9jYWxlLCBibG9ja0xvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYmxvY2tMb2NhbGVEYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGJsb2NrTG9jYWxlRGF0YS5fcGFyZW50SUQgPSBibG9ja1Jvdy5yb3cuaWRcbiAgICAgICAgICAgICAgYmxvY2tMb2NhbGVEYXRhLl9sb2NhbGUgPSBibG9ja0xvY2FsZVxuICAgICAgICAgICAgICBhY2MucHVzaChibG9ja0xvY2FsZURhdGEpXG4gICAgICAgICAgICAgIGJsb2NrTG9jYWxlSW5kZXhNYXAucHVzaChpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBbXSlcblxuICAgICAgaWYgKGJsb2NrTG9jYWxlUm93c1RvSW5zZXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgYXdhaXQgZGJcbiAgICAgICAgICAuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fYmxvY2tzXyR7YmxvY2tOYW1lfV9sb2NhbGVzYF0pXG4gICAgICAgICAgLnZhbHVlcyhibG9ja0xvY2FsZVJvd3NUb0luc2VydClcbiAgICAgICAgICAucmV0dXJuaW5nKClcbiAgICAgIH1cblxuICAgICAgYXdhaXQgaW5zZXJ0QXJyYXlzKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgYXJyYXlzOiBibG9ja1Jvd3MubWFwKCh7IGFycmF5cyB9KSA9PiBhcnJheXMpLFxuICAgICAgICBkYixcbiAgICAgICAgcGFyZW50Um93czogaW5zZXJ0ZWRCbG9ja1Jvd3NbYmxvY2tOYW1lXSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBBUlJBWVMgUkVDVVJTSVZFTFlcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgZm9yIChjb25zdCBhcnJheVRhYmxlTmFtZSBvZiBPYmplY3Qua2V5cyhyb3dUb0luc2VydC5hcnJheXMpKSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZUV4aXN0aW5nQXJyYXlSb3dzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGRiLFxuICAgICAgICAgIHBhcmVudElEOiBpbnNlcnRlZFJvdy5pZCxcbiAgICAgICAgICB0YWJsZU5hbWU6IGFycmF5VGFibGVOYW1lLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICBhZGFwdGVyLFxuICAgICAgYXJyYXlzOiBbcm93VG9JbnNlcnQuYXJyYXlzXSxcbiAgICAgIGRiLFxuICAgICAgcGFyZW50Um93czogW2luc2VydGVkUm93XSxcbiAgICB9KVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIElOU0VSVCBoYXNNYW55IFNFTEVDVFNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBmb3IgKGNvbnN0IFtzZWxlY3RUYWJsZU5hbWUsIHRhYmxlUm93c10gb2YgT2JqZWN0LmVudHJpZXMoc2VsZWN0c1RvSW5zZXJ0KSkge1xuICAgICAgY29uc3Qgc2VsZWN0VGFibGUgPSBhZGFwdGVyLnRhYmxlc1tzZWxlY3RUYWJsZU5hbWVdXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCBkYi5kZWxldGUoc2VsZWN0VGFibGUpLndoZXJlKGVxKHNlbGVjdFRhYmxlLnBhcmVudCwgaW5zZXJ0ZWRSb3cuaWQpKVxuICAgICAgfVxuICAgICAgYXdhaXQgZGIuaW5zZXJ0KHNlbGVjdFRhYmxlKS52YWx1ZXModGFibGVSb3dzKS5yZXR1cm5pbmcoKVxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBFcnJvciBIYW5kbGluZ1xuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvci5jb2RlID09PSAnMjM1MDUnXG4gICAgICA/IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogYWRhcHRlci5maWVsZENvbnN0cmFpbnRzW3RhYmxlTmFtZV1bZXJyb3IuY29uc3RyYWludF0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcS50KCdlcnJvcjp2YWx1ZU11c3RCZVVuaXF1ZScpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlcT8udCA/PyBpMThuSW5pdChyZXEucGF5bG9hZC5jb25maWcuaTE4bikudCxcbiAgICAgICAgKVxuICAgICAgOiBlcnJvclxuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBSRVRSSUVWRSBORVdMWSBVUERBVEVEIFJPV1xuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgZmluZE1hbnlBcmdzID0gYnVpbGRGaW5kTWFueUFyZ3Moe1xuICAgIGFkYXB0ZXIsXG4gICAgZGVwdGg6IDAsXG4gICAgZmllbGRzLFxuICAgIHRhYmxlTmFtZSxcbiAgfSlcblxuICBmaW5kTWFueUFyZ3Mud2hlcmUgPSBlcShhZGFwdGVyLnRhYmxlc1t0YWJsZU5hbWVdLmlkLCBpbnNlcnRlZFJvdy5pZClcblxuICBjb25zdCBkb2MgPSBhd2FpdCBkYi5xdWVyeVt0YWJsZU5hbWVdLmZpbmRGaXJzdChmaW5kTWFueUFyZ3MpXG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBUUkFOU0ZPUk0gREFUQVxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgY29uc3QgcmVzdWx0ID0gdHJhbnNmb3JtPFQ+KHtcbiAgICBjb25maWc6IGFkYXB0ZXIucGF5bG9hZC5jb25maWcsXG4gICAgZGF0YTogZG9jLFxuICAgIGZpZWxkcyxcbiAgfSlcblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsidXBzZXJ0Um93IiwiaWQiLCJhZGFwdGVyIiwiZGF0YSIsImRiIiwiZmllbGRzIiwib3BlcmF0aW9uIiwicGF0aCIsInJlcSIsInRhYmxlTmFtZSIsInVwc2VydFRhcmdldCIsIndoZXJlIiwicm93VG9JbnNlcnQiLCJ0cmFuc2Zvcm1Gb3JXcml0ZSIsImluc2VydGVkUm93IiwidGFyZ2V0IiwidGFibGVzIiwicm93IiwiaW5zZXJ0IiwidmFsdWVzIiwib25Db25mbGljdERvVXBkYXRlIiwic2V0IiwicmV0dXJuaW5nIiwibG9jYWxlc1RvSW5zZXJ0IiwicmVsYXRpb25zVG9JbnNlcnQiLCJudW1iZXJzVG9JbnNlcnQiLCJibG9ja3NUb0luc2VydCIsInNlbGVjdHNUb0luc2VydCIsIk9iamVjdCIsImtleXMiLCJsb2NhbGVzIiwibGVuZ3RoIiwiZW50cmllcyIsImZvckVhY2giLCJsb2NhbGUiLCJsb2NhbGVSb3ciLCJfcGFyZW50SUQiLCJfbG9jYWxlIiwicHVzaCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbiIsInBhcmVudCIsIm51bWJlcnMiLCJudW1iZXJSb3ciLCJzZWxlY3RzIiwic2VsZWN0VGFibGVOYW1lIiwic2VsZWN0Um93cyIsImJsb2NrcyIsImJsb2NrTmFtZSIsImJsb2NrUm93IiwidXVpZCIsImxvY2FsZVRhYmxlIiwiZGVsZXRlIiwiZXEiLCJyZWxhdGlvbnNoaXBzVGFibGVOYW1lIiwiZGVsZXRlRXhpc3RpbmdSb3dzQnlQYXRoIiwibG9jYWxlQ29sdW1uTmFtZSIsInBhcmVudENvbHVtbk5hbWUiLCJwYXJlbnRJRCIsInBhdGhDb2x1bW5OYW1lIiwicm93cyIsInJlbGF0aW9uc2hpcHNUb0RlbGV0ZSIsIm51bWJlcnNUYWJsZU5hbWUiLCJpbnNlcnRlZEJsb2NrUm93cyIsImJsb2Nrc1RvRGVsZXRlIiwiYmxvY2tUYWJsZU5hbWUiLCJibG9ja1RhYmxlIiwiYmxvY2tSb3dzIiwibWFwIiwiaSIsImJsb2NrTG9jYWxlSW5kZXhNYXAiLCJibG9ja0xvY2FsZVJvd3NUb0luc2VydCIsInJlZHVjZSIsImFjYyIsImJsb2NrTG9jYWxlIiwiYmxvY2tMb2NhbGVEYXRhIiwiaW5zZXJ0QXJyYXlzIiwiYXJyYXlzIiwicGFyZW50Um93cyIsImFycmF5VGFibGVOYW1lIiwiZGVsZXRlRXhpc3RpbmdBcnJheVJvd3MiLCJ0YWJsZVJvd3MiLCJzZWxlY3RUYWJsZSIsImVycm9yIiwiY29kZSIsIlZhbGlkYXRpb25FcnJvciIsImZpZWxkIiwiZmllbGRDb25zdHJhaW50cyIsImNvbnN0cmFpbnQiLCJtZXNzYWdlIiwidCIsImkxOG5Jbml0IiwicGF5bG9hZCIsImNvbmZpZyIsImkxOG4iLCJmaW5kTWFueUFyZ3MiLCJidWlsZEZpbmRNYW55QXJncyIsImRlcHRoIiwiZG9jIiwicXVlcnkiLCJmaW5kRmlyc3QiLCJyZXN1bHQiLCJ0cmFuc2Zvcm0iXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFpQnZCQTs7O2VBQUFBOzs7NEJBZE07d0JBQ2E7MkJBQ1A7bUNBS1M7c0JBQ1I7dUJBQ1E7eUNBQ007MENBQ0M7OEJBQ1o7QUFFdEIsTUFBTUEsWUFBWSxPQUE2QixFQUNwREMsRUFBRSxFQUNGQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsRUFBRSxFQUNGQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsT0FBTyxFQUFFLEVBQ1RDLEdBQUcsRUFDSEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLEtBQUssRUFDQTtJQUNMLHNEQUFzRDtJQUN0RCx1REFBdUQ7SUFDdkQsTUFBTUMsY0FBY0MsSUFBQUEsd0JBQWlCLEVBQUM7UUFDcENYO1FBQ0FDO1FBQ0FFO1FBQ0FFO1FB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
|
@@ -21,7 +21,7 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
21
21
|
rows: []
|
22
22
|
};
|
23
23
|
}
|
24
|
-
const parentID = parentRows[parentRowIndex].id;
|
24
|
+
const parentID = parentRows[parentRowIndex].id || parentRows[parentRowIndex]._parentID;
|
25
25
|
// Add any sub arrays that need to be created
|
26
26
|
// We will call this recursively below
|
27
27
|
arrayRows.forEach((arrayRow)=>{
|
@@ -61,4 +61,4 @@ const insertArrays = async ({ adapter, arrays, db, parentRows })=>{
|
|
61
61
|
}
|
62
62
|
};
|
63
63
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5zZXJ0QXJyYXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERyaXp6bGVEQiwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9W11cbiAgZGI6IERyaXp6bGVEQlxuICBwYXJlbnRSb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG59XG5cbnR5cGUgUm93c0J5VGFibGUgPSB7XG4gIFt0YWJsZU5hbWU6IHN0cmluZ106IHtcbiAgICBhcnJheXM6IHtcbiAgICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICAgIH1bXVxuICAgIGxvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydEFycmF5cyA9IGFzeW5jICh7IGFkYXB0ZXIsIGFycmF5cywgZGIsIHBhcmVudFJvd3MgfTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAvLyBNYWludGFpbiBhIG1hcCBvZiBmbGF0dGVuZWQgcm93cyBieSB0YWJsZVxuICBjb25zdCByb3dzQnlUYWJsZTogUm93c0J5VGFibGUgPSB7fVxuXG4gIGFycmF5cy5mb3JFYWNoKChhcnJheXNCeVRhYmxlLCBwYXJlbnRSb3dJbmRleCkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKGFycmF5c0J5VGFibGUpLmZvckVhY2goKFt0YWJsZU5hbWUsIGFycmF5Um93c10pID0+
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cHNlcnRSb3cvaW5zZXJ0QXJyYXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQgfSBmcm9tICcuLi90cmFuc2Zvcm0vd3JpdGUvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERyaXp6bGVEQiwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGFycmF5czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICB9W11cbiAgZGI6IERyaXp6bGVEQlxuICBwYXJlbnRSb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG59XG5cbnR5cGUgUm93c0J5VGFibGUgPSB7XG4gIFt0YWJsZU5hbWU6IHN0cmluZ106IHtcbiAgICBhcnJheXM6IHtcbiAgICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IEFycmF5Um93VG9JbnNlcnRbXVxuICAgIH1bXVxuICAgIGxvY2FsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluc2VydEFycmF5cyA9IGFzeW5jICh7IGFkYXB0ZXIsIGFycmF5cywgZGIsIHBhcmVudFJvd3MgfTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAvLyBNYWludGFpbiBhIG1hcCBvZiBmbGF0dGVuZWQgcm93cyBieSB0YWJsZVxuICBjb25zdCByb3dzQnlUYWJsZTogUm93c0J5VGFibGUgPSB7fVxuXG4gIGFycmF5cy5mb3JFYWNoKChhcnJheXNCeVRhYmxlLCBwYXJlbnRSb3dJbmRleCkgPT4ge1xuICAgIE9iamVjdC5lbnRyaWVzKGFycmF5c0J5VGFibGUpLmZvckVhY2goKFt0YWJsZU5hbWUsIGFycmF5Um93c10pID0+IHtcbiAgICAgIC8vIElmIHRoZSB0YWJsZSBkb2Vzbid0IGV4aXN0IGluIG1hcCwgaW5pdGlhbGl6ZSBpdFxuICAgICAgaWYgKCFyb3dzQnlUYWJsZVt0YWJsZU5hbWVdKSB7XG4gICAgICAgIHJvd3NCeVRhYmxlW3RhYmxlTmFtZV0gPSB7XG4gICAgICAgICAgYXJyYXlzOiBbXSxcbiAgICAgICAgICBsb2NhbGVzOiBbXSxcbiAgICAgICAgICByb3dzOiBbXSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJlbnRJRCA9IHBhcmVudFJvd3NbcGFyZW50Um93SW5kZXhdLmlkIHx8IHBhcmVudFJvd3NbcGFyZW50Um93SW5kZXhdLl9wYXJlbnRJRFxuXG4gICAgICAvLyBBZGQgYW55IHN1YiBhcnJheXMgdGhhdCBuZWVkIHRvIGJlIGNyZWF0ZWRcbiAgICAgIC8vIFdlIHdpbGwgY2FsbCB0aGlzIHJlY3Vyc2l2ZWx5IGJlbG93XG4gICAgICBhcnJheVJvd3MuZm9yRWFjaCgoYXJyYXlSb3cpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGFycmF5Um93LmFycmF5cykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJvd3NCeVRhYmxlW3RhYmxlTmFtZV0uYXJyYXlzLnB1c2goYXJyYXlSb3cuYXJyYXlzKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHVwIHBhcmVudCBJRHMgZm9yIGJvdGggcm93IGFuZCBsb2NhbGUgcm93XG4gICAgICAgIGFycmF5Um93LnJvdy5fcGFyZW50SUQgPSBwYXJlbnRJRFxuICAgICAgICByb3dzQnlUYWJsZVt0YWJsZU5hbWVdLnJvd3MucHVzaChhcnJheVJvdy5yb3cpXG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoYXJyYXlSb3cubG9jYWxlcykuZm9yRWFjaCgoW2FycmF5Um93TG9jYWxlLCBhcnJheVJvd0xvY2FsZURhdGFdKSA9PiB7XG4gICAgICAgICAgYXJyYXlSb3dMb2NhbGVEYXRhLl9wYXJlbnRJRCA9IGFycmF5Um93LnJvdy5pZFxuICAgICAgICAgIGFycmF5Um93TG9jYWxlRGF0YS5fbG9jYWxlID0gYXJyYXlSb3dMb2NhbGVcbiAgICAgICAgICByb3dzQnlUYWJsZVt0YWJsZU5hbWVdLmxvY2FsZXMucHVzaChhcnJheVJvd0xvY2FsZURhdGEpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0pXG4gIH0pXG5cbiAgLy8gSW5zZXJ0IGFsbCBjb3JyZXNwb25kaW5nIGFycmF5c1xuICAvLyAob25lIGluc2VydCBwZXIgYXJyYXkgdGFibGUpXG4gIGZvciAoY29uc3QgW3RhYmxlTmFtZSwgcm93XSBvZiBPYmplY3QuZW50cmllcyhyb3dzQnlUYWJsZSkpIHtcbiAgICBpZiAocm93LnJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW3RhYmxlTmFtZV0pLnZhbHVlcyhyb3cucm93cykucmV0dXJuaW5nKClcbiAgICB9XG5cbiAgICAvLyBJbnNlcnQgbG9jYWxlIHJvd3NcbiAgICBpZiAoYWRhcHRlci50YWJsZXNbYCR7dGFibGVOYW1lfV9sb2NhbGVzYF0gJiYgcm93LmxvY2FsZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgZGIuaW5zZXJ0KGFkYXB0ZXIudGFibGVzW2Ake3RhYmxlTmFtZX1fbG9jYWxlc2BdKS52YWx1ZXMocm93LmxvY2FsZXMpLnJldHVybmluZygpXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHN1YiBhcnJheXMsIGNhbGwgdGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseVxuICAgIGlmIChyb3cuYXJyYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IGluc2VydEFycmF5cyh7XG4gICAgICAgIGFkYXB0ZXIsXG4gICAgICAgIGFycmF5czogcm93LmFycmF5cyxcbiAgICAgICAgZGIsXG4gICAgICAgIHBhcmVudFJvd3M6IHJvdy5yb3dzLFxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbnNlcnRBcnJheXMiLCJhZGFwdGVyIiwiYXJyYXlzIiwiZGIiLCJwYXJlbnRSb3dzIiwicm93c0J5VGFibGUiLCJmb3JFYWNoIiwiYXJyYXlzQnlUYWJsZSIsInBhcmVudFJvd0luZGV4IiwiT2JqZWN0IiwiZW50cmllcyIsInRhYmxlTmFtZSIsImFycmF5Um93cyIsImxvY2FsZXMiLCJyb3dzIiwicGFyZW50SUQiLCJpZCIsIl9wYXJlbnRJRCIsImFycmF5Um93Iiwia2V5cyIsImxlbmd0aCIsInB1c2giLCJyb3ciLCJhcnJheVJvd0xvY2FsZSIsImFycmF5Um93TG9jYWxlRGF0YSIsIl9sb2NhbGUiLCJpbnNlcnQiLCJ0YWJsZXMiLCJ2YWx1ZXMiLCJyZXR1cm5pbmciXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkF1QnZCQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxlQUFlLE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLEVBQUUsRUFBRUMsVUFBVSxFQUFRO0lBQzFFLDRDQUE0QztJQUM1QyxNQUFNQyxjQUEyQixDQUFDO0lBRWxDSCxPQUFPSSxPQUFPLENBQUMsQ0FBQ0MsZUFBZUM7UUFDN0JDLE9BQU9DLE9BQU8sQ0FBQ0gsZUFBZUQsT0FBTyxDQUFDLENBQUMsQ0FBQ0ssV0FBV0MsVUFBVTtZQUMzRCxtREFBbUQ7WUFDbkQsSUFBSSxDQUFDUCxXQUFXLENBQUNNLFVBQVUsRUFBRTtnQkFDM0JOLFdBQVcsQ0FBQ00sVUFBVSxHQUFHO29CQUN2QlQsUUFBUSxFQUFFO29CQUNWVyxTQUFTLEVBQUU7b0JBQ1hDLE1BQU0sRUFBRTtnQkFDVjtZQUNGO1lBRUEsTUFBTUMsV0FBV1gsVUFBVSxDQUFDSSxlQUFlLENBQUNRLEVBQUUsSUFBSVosVUFBVSxDQUFDSSxlQUFlLENBQUNTLFNBQVM7WUFFdEYsNkNBQTZDO1lBQzdDLHNDQUFzQztZQUN0Q0wsVUFBVU4sT0FBTyxDQUFDLENBQUNZO2dCQUNqQixJQUFJVCxPQUFPVSxJQUFJLENBQUNELFNBQVNoQixNQUFNLEVBQUVrQixNQUFNLEdBQUcsR0FBRztvQkFDM0NmLFdBQVcsQ0FBQ00sVUFBVSxDQUFDVCxNQUFNLENBQUNtQixJQUFJLENBQUNILFNBQVNoQixNQUFNO2dCQUNwRDtnQkFFQSxnREFBZ0Q7Z0JBQ2hEZ0IsU0FBU0ksR0FBRyxDQUFDTCxTQUFTLEdBQUdGO2dCQUN6QlYsV0FBVyxDQUFDTSxVQUFVLENBQUNHLElBQUksQ0FBQ08sSUFBSSxDQUFDSCxTQUFTSSxHQUFHO2dCQUU3Q2IsT0FBT0MsT0FBTyxDQUFDUSxTQUFTTCxPQUFPLEVBQUVQLE9BQU8sQ0FBQyxDQUFDLENBQUNpQixnQkFBZ0JDLG1CQUFtQjtvQkFDNUVBLG1CQUFtQlAsU0FBUyxHQUFHQyxTQUFTSSxHQUFHLENBQUNOLEVBQUU7b0JBQzlDUSxtQkFBbUJDLE9BQU8sR0FBR0Y7b0JBQzdCbEIsV0FBVyxDQUFDTSxVQUFVLENBQUNFLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDRztnQkFDdEM7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxrQ0FBa0M7SUFDbEMsK0JBQStCO0lBQy9CLEtBQUssTUFBTSxDQUFDYixXQUFXVyxJQUFJLElBQUliLE9BQU9DLE9BQU8sQ0FBQ0wsYUFBYztRQUMxRCxJQUFJaUIsSUFBSVIsSUFBSSxDQUFDTSxNQUFNLEdBQUcsR0FBRztZQUN2QixNQUFNakIsR0FBR3VCLE1BQU0sQ0FBQ3pCLFFBQVEwQixNQUFNLENBQUNoQixVQUFVLEVBQUVpQixNQUFNLENBQUNOLElBQUlSLElBQUksRUFBRWUsU0FBUztRQUN2RTtRQUVBLHFCQUFxQjtRQUNyQixJQUFJNUIsUUFBUTBCLE1BQU0sQ0FBQyxDQUFDLEVBQUVoQixVQUFVLFFBQVEsQ0FBQyxDQUFDLElBQUlXLElBQUlULE9BQU8sQ0FBQ08sTUFBTSxHQUFHLEdBQUc7WUFDcEUsTUFBTWpCLEdBQUd1QixNQUFNLENBQUN6QixRQUFRMEIsTUFBTSxDQUFDLENBQUMsRUFBRWhCLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFBRWlCLE1BQU0sQ0FBQ04sSUFBSVQsT0FBTyxFQUFFZ0IsU0FBUztRQUN2RjtRQUVBLDBEQUEwRDtRQUMxRCxJQUFJUCxJQUFJcEIsTUFBTSxDQUFDa0IsTUFBTSxHQUFHLEdBQUc7WUFDekIsTUFBTXBCLGFBQWE7Z0JBQ2pCQztnQkFDQUMsUUFBUW9CLElBQUlwQixNQUFNO2dCQUNsQkM7Z0JBQ0FDLFlBQVlrQixJQUFJUixJQUFJO1lBQ3RCO1FBQ0Y7SUFDRjtBQUNGIn0=
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@payloadcms/db-postgres",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.0",
|
4
4
|
"description": "The officially supported Postgres database adapter for Payload",
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
6
6
|
"license": "MIT",
|
@@ -19,13 +19,14 @@
|
|
19
19
|
"drizzle-orm": "0.28.5",
|
20
20
|
"pg": "8.11.3",
|
21
21
|
"prompts": "2.4.2",
|
22
|
-
"to-snake-case": "1.0.0"
|
22
|
+
"to-snake-case": "1.0.0",
|
23
|
+
"uuid": "9.0.0"
|
23
24
|
},
|
24
25
|
"devDependencies": {
|
25
26
|
"@types/pg": "8.10.2",
|
26
27
|
"@types/to-snake-case": "1.0.0",
|
27
28
|
"@payloadcms/eslint-config": "1.0.0",
|
28
|
-
"payload": "2.0
|
29
|
+
"payload": "2.3.0"
|
29
30
|
},
|
30
31
|
"peerDependencies": {
|
31
32
|
"payload": "^2.0.0"
|